diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityAbout.java b/app/src/main/java/it/reyboz/bustorino/ActivityAbout.java deleted file mode 100644 --- a/app/src/main/java/it/reyboz/bustorino/ActivityAbout.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - BusTO - Arrival times for Turin public transports. - Copyright (C) 2014 Valerio Bozzolan - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - */ -package it.reyboz.bustorino; - -import android.content.Intent; -import android.net.Uri; -import android.util.Log; -import androidx.appcompat.widget.Toolbar; -import androidx.appcompat.app.AppCompatActivity; -import android.text.Html; -import android.text.Spanned; -import android.text.method.LinkMovementMethod; -import android.os.Bundle; -import android.view.MenuItem; -import android.view.View; -import android.widget.Button; -import android.widget.TextView; -import android.widget.Toast; - -import it.reyboz.bustorino.backend.utils; -import it.reyboz.bustorino.middleware.BarcodeScanUtils; - -public class ActivityAbout extends AppCompatActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_about); - Spanned htmlText = utils.convertHtml(getResources().getString( - R.string.about_history)); - TextView aboutTextView = findViewById(R.id.aboutTextView); - assert aboutTextView != null; - aboutTextView.setText(htmlText); - aboutTextView.setMovementMethod(LinkMovementMethod.getInstance()); - - Toolbar mToolbar = findViewById(R.id.default_toolbar); - setSupportActionBar(mToolbar); - if (getSupportActionBar()!=null) - getSupportActionBar().setDisplayHomeAsUpEnabled(true); - - TextView versionText = findViewById(R.id.versionTextView); - Log.d("BusTO About", "The version text view is: "+versionText); - versionText.setText(getResources().getText(R.string.app_version)+": "+BuildConfig.VERSION_NAME); - - Button openTelegramButton = findViewById(R.id.openTelegramButton); - openTelegramButton.setOnClickListener(view -> { - - Intent trueIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("tg://resolve?domain=busto_fdroid")); - if(BarcodeScanUtils.checkTargetPackageExists(this, trueIntent)) - startActivity(trueIntent); - else{ - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/busto_fdroid")); - startActivity(intent); - // Toast.makeText(this, "Install Telegram and retry", Toast.LENGTH_SHORT).show(); - } - - }); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - // Respond to the action bar's Up/Home button - if (item.getItemId() == android.R.id.home) {//NavUtils.navigateUpFromSameTask(this); - onBackPressed(); - return true; - } - return super.onOptionsItemSelected(item); - } -} diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityAbout.kt b/app/src/main/java/it/reyboz/bustorino/ActivityAbout.kt new file mode 100644 --- /dev/null +++ b/app/src/main/java/it/reyboz/bustorino/ActivityAbout.kt @@ -0,0 +1,105 @@ +/* + BusTO - Arrival times for Turin public transports. + Copyright (C) 2014 Valerio Bozzolan + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + */ +package it.reyboz.bustorino + +import android.content.Intent +import android.net.Uri +import android.os.Bundle +import android.text.method.LinkMovementMethod +import android.util.Log +import android.view.MenuItem +import android.view.View +import android.widget.Button +import android.widget.TextView +import androidx.appcompat.app.AppCompatActivity +import it.reyboz.bustorino.backend.utils +import it.reyboz.bustorino.middleware.BarcodeScanUtils + +class ActivityAbout : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_about) + //TOP TEXT VIEW + val topTextView = checkNotNull(findViewById<TextView>(R.id.topTextView)) + val telegramTextView= checkNotNull(findViewById<TextView>(R.id.telegramTextView)) + val howTextView = checkNotNull(findViewById<TextView>(R.id.howDoesItWorkTextView)) + val bottomTextView= checkNotNull(findViewById<TextView>(R.id.bottomAboutTextView)) + + val textviews = arrayOf(topTextView, telegramTextView,howTextView,bottomTextView) + val stringsForTextViews = arrayOf(R.string.about_history_top, R.string.about_channel, R.string.about_how, R.string.about_history_bottom) + + for (i in 0 until 4) { + val htmlText = utils.convertHtml( + resources.getString( + stringsForTextViews[i] + ) + ) + //val aboutTextView = checkNotNull(findViewById<TextView>(R.id.aboutTextView)) + val textView = textviews[i] + textView.text = htmlText + textView.movementMethod = LinkMovementMethod.getInstance() + } + + /*Toolbar mToolbar = findViewById(R.id.default_toolbar); + setSupportActionBar(mToolbar); + + */ + if (supportActionBar != null) supportActionBar!!.setDisplayHomeAsUpEnabled(true) + + val versionText = findViewById<TextView>(R.id.versionTextView) + Log.d("BusTO About", "The version text view is: $versionText") + versionText.text = resources.getText(R.string.app_version).toString() + ": " + BuildConfig.VERSION_NAME + + val openTelegramButton = findViewById<Button>(R.id.openTelegramButton) + openTelegramButton.setOnClickListener { view: View? -> + val trueIntent = Intent(Intent.ACTION_VIEW, Uri.parse("tg://resolve?domain=busto_fdroid")) + if (BarcodeScanUtils.checkTargetPackageExists(this, trueIntent)) startActivity(trueIntent) + else { + val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://t.me/busto_fdroid")) + startActivity(intent) + // Toast.makeText(this, "Install Telegram and retry", Toast.LENGTH_SHORT).show(); + } + } + val openSourceButton = findViewById<Button>(R.id.openSourceButton) + openSourceButton.setOnClickListener { view: View? -> + utils.openIceweasel(utils.SOURCE_CODE_URL, this) + } + val contributeButton = findViewById<Button>(R.id.openContributeButton) + contributeButton.setOnClickListener { view: View? -> + utils.openIceweasel(getString(R.string.hack_url), this) + } + val openTutorialButton = findViewById<Button>(R.id.openTutorialButton) + openTutorialButton.setOnClickListener { + startIntroductionActivity() + } + } + + fun startIntroductionActivity() { + val intent = Intent(this, ActivityIntro::class.java) + intent.putExtra(ActivityIntro.RESTART_MAIN, false) + startActivity(intent) + } + override fun onOptionsItemSelected(item: MenuItem): Boolean { + // Respond to the action bar's Up/Home button + if (item.itemId == android.R.id.home) { //NavUtils.navigateUpFromSameTask(this); + onBackPressed() + return true + } + return super.onOptionsItemSelected(item) + } +} diff --git a/app/src/main/java/it/reyboz/bustorino/backend/utils.java b/app/src/main/java/it/reyboz/bustorino/backend/utils.java --- a/app/src/main/java/it/reyboz/bustorino/backend/utils.java +++ b/app/src/main/java/it/reyboz/bustorino/backend/utils.java @@ -46,6 +46,7 @@ public abstract class utils { private static final double EARTH_RADIUS = 6371.009e3; + public static final String SOURCE_CODE_URL ="https://gitpull.it/source/libre-busto/"; public static Double measuredistanceBetween(double lat1,double long1,double lat2,double long2){ diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/NearbyStopsFragment.java b/app/src/main/java/it/reyboz/bustorino/fragments/NearbyStopsFragment.java --- a/app/src/main/java/it/reyboz/bustorino/fragments/NearbyStopsFragment.java +++ b/app/src/main/java/it/reyboz/bustorino/fragments/NearbyStopsFragment.java @@ -427,6 +427,10 @@ setNoStopsLayout(); return; } + if (location == null){ + // we could do something better, but it's better to do this for now + return; + } double minDistance = Double.POSITIVE_INFINITY; for(Stop s: stops){ diff --git a/app/src/main/res/drawable/cog_8_question_transp.xml b/app/src/main/res/drawable/cog_8_question_transp.xml new file mode 100644 --- /dev/null +++ b/app/src/main/res/drawable/cog_8_question_transp.xml @@ -0,0 +1,11 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="36dp" + android:height="36dp" + android:viewportWidth="64" + android:tint="?attr/colorOnPrimary" + android:viewportHeight="64"> + <path + android:pathData="m31.488,3c-2.725,0 -5.051,1.969 -5.5,4.658l-0.273,1.633c-0.153,0.834 -0.74,1.528 -1.539,1.813 -0.481,0.18 -0.951,0.375 -1.418,0.588 -0.766,0.364 -1.673,0.289 -2.371,-0.193L19.039,10.535C16.82,8.95 13.781,9.204 11.854,11.133l-0.721,0.721c-1.928,1.928 -2.183,4.967 -0.598,7.186l0.963,1.348c0.482,0.698 0.558,1.605 0.193,2.371 -0.213,0.467 -0.408,0.937 -0.588,1.418 -0.285,0.799 -0.978,1.386 -1.813,1.539L7.658,25.988C4.971,26.437 3.001,28.763 3,31.488v1.023c0,2.725 1.969,5.051 4.658,5.5l1.633,0.273c0.836,0.14 1.515,0.745 1.813,1.539 0.178,0.482 0.377,0.951 0.588,1.418 0.364,0.766 0.289,1.673 -0.193,2.371l-0.963,1.348c-1.585,2.219 -1.331,5.258 0.598,7.186l0.721,0.721c1.927,1.927 4.967,2.183 7.186,0.598l1.348,-0.963c0.698,-0.482 1.605,-0.558 2.371,-0.193 0.467,0.211 0.936,0.406 1.418,0.588 0.794,0.297 1.399,0.977 1.539,1.813l0.273,1.633C26.434,59.028 28.761,61 31.488,61h1.023c2.725,0 5.051,-1.969 5.5,-4.658l0.273,-1.633c0.153,-0.834 0.74,-1.528 1.539,-1.813 0.481,-0.18 0.951,-0.375 1.418,-0.588 0.766,-0.364 1.673,-0.289 2.371,0.193l1.348,0.963c2.219,1.585 5.258,1.331 7.186,-0.598l0.721,-0.721c1.927,-1.927 2.183,-4.967 0.598,-7.186l-0.963,-1.348c-0.482,-0.698 -0.558,-1.605 -0.193,-2.371 0.211,-0.467 0.406,-0.936 0.588,-1.418 0.297,-0.794 0.977,-1.399 1.813,-1.539l1.633,-0.273c2.689,-0.449 4.659,-2.774 4.658,-5.5v-1.023c0,-2.725 -1.969,-5.051 -4.658,-5.5l-1.633,-0.273c-0.834,-0.153 -1.528,-0.74 -1.813,-1.539 -0.18,-0.481 -0.375,-0.951 -0.588,-1.418 -0.364,-0.766 -0.289,-1.673 0.193,-2.371l0.963,-1.348c1.585,-2.219 1.331,-5.258 -0.598,-7.186L52.146,11.133C50.219,9.204 47.18,8.95 44.961,10.535l-1.348,0.963c-0.698,0.482 -1.605,0.558 -2.371,0.193 -0.467,-0.213 -0.937,-0.408 -1.418,-0.588 -0.799,-0.285 -1.386,-0.978 -1.539,-1.813L38.012,7.658C37.562,4.969 35.238,2.999 32.512,3ZM32.789,16c1.219,0 2.347,0.178 3.381,0.533 1.05,0.355 1.953,0.856 2.709,1.504 0.756,0.648 1.349,1.435 1.781,2.361 0.432,0.926 0.648,1.969 0.648,3.127 0,1.173 -0.176,2.184 -0.531,3.033 -0.34,0.849 -0.78,1.598 -1.32,2.246 -0.525,0.633 -1.103,1.188 -1.736,1.666l-1.76,1.32c-0.556,0.417 -1.034,0.833 -1.436,1.25 -0.386,0.417 -0.61,0.879 -0.672,1.389L33.438,37.973h-2.824l-0.279,-3.844c-0.062,-0.695 0.07,-1.297 0.395,-1.807 0.324,-0.525 0.749,-1.009 1.273,-1.457 0.525,-0.463 1.103,-0.912 1.736,-1.344 0.633,-0.448 1.22,-0.942 1.76,-1.482 0.556,-0.54 1.018,-1.149 1.389,-1.828 0.37,-0.695 0.557,-1.522 0.557,-2.479 0,-0.664 -0.132,-1.264 -0.395,-1.805 -0.262,-0.54 -0.617,-0.997 -1.064,-1.367 -0.448,-0.386 -0.98,-0.678 -1.598,-0.879 -0.602,-0.201 -1.251,-0.301 -1.945,-0.301 -0.942,0 -1.752,0.116 -2.432,0.348 -0.664,0.232 -1.226,0.486 -1.689,0.764 -0.463,0.278 -0.841,0.532 -1.135,0.764 -0.278,0.232 -0.51,0.348 -0.695,0.348 -0.386,0 -0.686,-0.178 -0.902,-0.533L24.5,19.334c0.479,-0.448 1.003,-0.872 1.574,-1.273 0.587,-0.401 1.219,-0.756 1.898,-1.064 0.695,-0.309 1.435,-0.549 2.223,-0.719C30.998,16.092 31.863,16 32.789,16ZM31.887,42.189c0.401,0 0.778,0.076 1.133,0.23 0.355,0.154 0.665,0.363 0.928,0.625 0.262,0.262 0.471,0.571 0.625,0.926 0.154,0.355 0.23,0.733 0.23,1.135 0,0.417 -0.076,0.803 -0.23,1.158 -0.154,0.34 -0.363,0.64 -0.625,0.902 -0.262,0.262 -0.573,0.463 -0.928,0.602C32.665,47.922 32.288,48 31.887,48c-0.401,0 -0.78,-0.078 -1.135,-0.232 -0.355,-0.139 -0.663,-0.339 -0.926,-0.602 -0.247,-0.262 -0.449,-0.563 -0.604,-0.902 -0.139,-0.355 -0.207,-0.741 -0.207,-1.158 0,-0.401 0.068,-0.78 0.207,-1.135 0.154,-0.355 0.357,-0.663 0.604,-0.926 0.262,-0.262 0.571,-0.471 0.926,-0.625 0.355,-0.154 0.733,-0.23 1.135,-0.23z" + android:strokeWidth="2.97436" + android:fillColor="#000000"/> +</vector> diff --git a/app/src/main/res/drawable/file_earmark_code_fill.xml b/app/src/main/res/drawable/file_earmark_code_fill.xml new file mode 100644 --- /dev/null +++ b/app/src/main/res/drawable/file_earmark_code_fill.xml @@ -0,0 +1,6 @@ +<vector android:height="32dp" android:viewportHeight="16" + android:viewportWidth="16" android:width="32dp" + android:tint="?attr/colorOnPrimary" + xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#000000" android:pathData="M9.293,0L4,0a2,2 0,0 0,-2 2v12a2,2 0,0 0,2 2h8a2,2 0,0 0,2 -2L14,4.707A1,1 0,0 0,13.707 4L10,0.293A1,1 0,0 0,9.293 0M9.5,3.5v-2l3,3h-2a1,1 0,0 1,-1 -1M6.646,7.646a0.5,0.5 0,1 1,0.708 0.708L5.707,10l1.647,1.646a0.5,0.5 0,0 1,-0.708 0.708l-2,-2a0.5,0.5 0,0 1,0 -0.708zM9.354,7.646 L11.354,9.646a0.5,0.5 0,0 1,0 0.708l-2,2a0.5,0.5 0,0 1,-0.708 -0.708L10.293,10 8.646,8.354a0.5,0.5 0,1 1,0.708 -0.708"/> +</vector> diff --git a/app/src/main/res/drawable/journals.xml b/app/src/main/res/drawable/journals.xml new file mode 100644 --- /dev/null +++ b/app/src/main/res/drawable/journals.xml @@ -0,0 +1,7 @@ +<vector android:autoMirrored="true" android:height="32sp" + android:viewportHeight="16" android:viewportWidth="16" + android:width="32sp" xmlns:android="http://schemas.android.com/apk/res/android" + android:tint="?attr/colorOnPrimary"> + <path android:fillColor="#000000 " android:pathData="M5,0h8a2,2 0,0 1,2 2v10a2,2 0,0 1,-2 2,2 2,0 0,1 -2,2H3a2,2 0,0 1,-2 -2h1a1,1 0,0 0,1 1h8a1,1 0,0 0,1 -1V4a1,1 0,0 0,-1 -1H3a1,1 0,0 0,-1 1H1a2,2 0,0 1,2 -2h8a2,2 0,0 1,2 2v9a1,1 0,0 0,1 -1V2a1,1 0,0 0,-1 -1H5a1,1 0,0 0,-1 1H3a2,2 0,0 1,2 -2"/> + <path android:fillColor="#000000" android:pathData="M1,6v-0.5a0.5,0.5 0,0 1,1 0L2,6h0.5a0.5,0.5 0,0 1,0 1h-2a0.5,0.5 0,0 1,0 -1zM1,9v-0.5a0.5,0.5 0,0 1,1 0L2,9h0.5a0.5,0.5 0,0 1,0 1h-2a0.5,0.5 0,0 1,0 -1zM1,11.5v0.5L0.5,12a0.5,0.5 0,0 0,0 1h2a0.5,0.5 0,0 0,0 -1L2,12v-0.5a0.5,0.5 0,0 0,-1 0"/> +</vector> diff --git a/app/src/main/res/drawable/telegram_logo_50.xml b/app/src/main/res/drawable/telegram_logo_50.xml --- a/app/src/main/res/drawable/telegram_logo_50.xml +++ b/app/src/main/res/drawable/telegram_logo_50.xml @@ -1,7 +1,7 @@ <vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt" - android:width="50dp" - android:height="50dp" + android:width="40dp" + android:height="40dp" android:viewportWidth="50" android:viewportHeight="50"> <path diff --git a/app/src/main/res/drawable/telegram_logo_white.xml b/app/src/main/res/drawable/telegram_logo_white.xml new file mode 100644 --- /dev/null +++ b/app/src/main/res/drawable/telegram_logo_white.xml @@ -0,0 +1,10 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="32sp" + android:height="32sp" + android:viewportWidth="16" + android:tint="?attr/colorOnPrimary" + android:viewportHeight="16"> + <path + android:pathData="M16,8A8,8 0,1 1,0 8a8,8 0,0 1,16 0M8.287,5.906q-1.168,0.486 -4.666,2.01 -0.567,0.225 -0.595,0.442c-0.03,0.243 0.275,0.339 0.69,0.47l0.175,0.055c0.408,0.133 0.958,0.288 1.243,0.294q0.39,0.01 0.868,-0.32 3.269,-2.206 3.374,-2.23c0.05,-0.012 0.12,-0.026 0.166,0.016s0.042,0.12 0.037,0.141c-0.03,0.129 -1.227,1.241 -1.846,1.817 -0.193,0.18 -0.33,0.307 -0.358,0.336a8,8 0,0 1,-0.188 0.186c-0.38,0.366 -0.664,0.64 0.015,1.088 0.327,0.216 0.589,0.393 0.85,0.571 0.284,0.194 0.568,0.387 0.936,0.629q0.14,0.092 0.27,0.187c0.331,0.236 0.63,0.448 0.997,0.414 0.214,-0.02 0.435,-0.22 0.547,-0.82 0.265,-1.417 0.786,-4.486 0.906,-5.751a1.4,1.4 0,0 0,-0.013 -0.315,0.34 0.34,0 0,0 -0.114,-0.217 0.53,0.53 0,0 0,-0.31 -0.093c-0.3,0.005 -0.763,0.166 -2.984,1.09" + android:fillColor="#000000"/> +</vector> diff --git a/app/src/main/res/drawable/volunteer_36.xml b/app/src/main/res/drawable/volunteer_36.xml new file mode 100644 --- /dev/null +++ b/app/src/main/res/drawable/volunteer_36.xml @@ -0,0 +1,9 @@ +<vector android:autoMirrored="true" + android:height="36dp" + android:tint="?attr/colorOnPrimary" android:viewportHeight="24" + android:viewportWidth="24" + android:width="36dp" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="@android:color/white" android:pathData="M1,11h4v11h-4z"/> + <path android:fillColor="@android:color/white" android:pathData="M16,3.25C16.65,2.49 17.66,2 18.7,2C20.55,2 22,3.45 22,5.3c0,2.27 -2.91,4.9 -6,7.7c-3.09,-2.81 -6,-5.44 -6,-7.7C10,3.45 11.45,2 13.3,2C14.34,2 15.35,2.49 16,3.25z"/> + <path android:fillColor="@android:color/white" android:pathData="M20,17h-7l-2.09,-0.73l0.33,-0.94L13,16h2.82c0.65,0 1.18,-0.53 1.18,-1.18v0c0,-0.49 -0.31,-0.93 -0.77,-1.11L8.97,11H7v9.02L14,22l8.01,-3v0C22,17.9 21.11,17 20,17z"/> +</vector> diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -6,23 +6,168 @@ android:gravity="center"> <!-- The ActionBar displayed at the top --> - <include + <!-- <include layout="@layout/default_toobar" android:layout_width="match_parent" android:layout_height="wrap_content"/> + --> + <androidx.core.widget.NestedScrollView + android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.9" + android:scrollbars="vertical" + > + <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" + android:paddingTop="10dp"> + <TextView + android:id="@+id/topTextView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="5dip" + android:layout_marginLeft="@dimen/activity_horizontal_margin" + android:layout_marginRight="@dimen/activity_horizontal_margin" + android:textAppearance="?android:attr/textAppearanceMedium" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintBottom_toTopOf="@id/openTutorialButton" + android:autoLink="web" + android:fontFamily="@font/nevermind_compact" + android:textColor="@color/grey_700" + /> + <com.google.android.material.button.MaterialButton + style="@style/Widget.MaterialComponents.Button.Icon" + android:id="@+id/openTutorialButton" + android:paddingTop="5dp" + android:paddingBottom="5dp" + app:icon="@drawable/cog_8_question_transp" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/topTextView" + app:iconGravity="start" + android:text="@string/show_introduction" + android:fontFamily="@font/pitagon_semibold" + /> + <TextView + android:id="@+id/telegramTextView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="5dip" + android:layout_marginLeft="@dimen/activity_horizontal_margin" + android:layout_marginRight="@dimen/activity_horizontal_margin" + android:textAppearance="?android:attr/textAppearanceMedium" + app:layout_constraintTop_toBottomOf="@id/openTutorialButton" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + android:autoLink="web" + android:fontFamily="@font/nevermind_compact" + android:textColor="@color/grey_700" + /> + <com.google.android.material.button.MaterialButton + style="@style/Widget.MaterialComponents.Button.Icon" + android:id="@+id/openTelegramButton" + android:paddingBottom="8dp" + android:paddingTop="8dp" + app:icon="@drawable/telegram_logo_white" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/telegramTextView" + app:iconGravity="start" + android:text="@string/open_telegram" + android:fontFamily="@font/pitagon_semibold" + + /> + <TextView + android:id="@+id/howDoesItWorkTextView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="5dip" + android:layout_marginBottom="5dip" + android:layout_marginLeft="@dimen/activity_horizontal_margin" + android:layout_marginRight="@dimen/activity_horizontal_margin" + android:textAppearance="?android:attr/textAppearanceMedium" + app:layout_constraintTop_toBottomOf="@id/openTelegramButton" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + android:autoLink="web" + android:fontFamily="@font/nevermind_compact" + android:textColor="@color/grey_700" + /> + + <com.google.android.material.button.MaterialButton + style="@style/Widget.MaterialComponents.Button.Icon" + android:id="@+id/openContributeButton" + android:paddingTop="8dp" + android:paddingBottom="8dp" + app:icon="@drawable/journals" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/howDoesItWorkTextView" + app:iconGravity="start" + android:text="@string/action_wiki" + android:fontFamily="@font/pitagon_semibold" + + /> + <com.google.android.material.button.MaterialButton + style="@style/Widget.MaterialComponents.Button.Icon" + android:id="@+id/openSourceButton" + android:paddingTop="8dp" + android:paddingBottom="8dp" + app:icon="@drawable/file_earmark_code_fill" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/openContributeButton" + app:iconGravity="start" + android:text="@string/action_source" + android:fontFamily="@font/pitagon_semibold" + + /> + <TextView + android:id="@+id/bottomAboutTextView" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="5dip" + android:layout_marginLeft="@dimen/activity_horizontal_margin" + android:layout_marginRight="@dimen/activity_horizontal_margin" + android:textAppearance="?android:attr/textAppearanceMedium" + app:layout_constraintTop_toBottomOf="@id/openSourceButton" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + android:autoLink="web" + android:fontFamily="@font/nevermind_compact" + android:textColor="@color/grey_700" + /><!--android:layout_weight="0.85"--> + + <!--<Button + android:text="@string/open_telegram" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:padding="10dp" + android:layout_below="@id/aboutTextView" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + android:id="@+id/openTelegramButton" + android:drawableEnd="@drawable/telegram_logo_50" + android:fontFamily="@font/pitagon_semibold" + android:backgroundTint="@color/orange_500" + android:textColor="@color/white" + app:layout_constraintBottom_toTopOf="@id/newTelegramButton" + /> + --> + + + </androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.core.widget.NestedScrollView> + - <TextView - android:id="@+id/aboutTextView" - android:layout_width="match_parent" - android:layout_height="0dp" - android:layout_marginTop="5dip" - android:layout_marginLeft="@dimen/activity_horizontal_margin" - android:layout_marginRight="@dimen/activity_horizontal_margin" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_weight="0.85" - android:fontFamily="@font/nevermind_compact" - android:textColor="@color/grey_700" - /> <View android:layout_width="match_parent" android:layout_height="1dp" @@ -31,18 +176,12 @@ android:layout_marginRight="8dp" android:layout_marginEnd="8dp" android:layout_marginTop="2dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" android:id="@+id/theDivider" - android:background="@android:color/darker_gray"/> - - <Button - android:text="@string/open_telegram" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:paddingLeft="10dp" - android:id="@+id/openTelegramButton" - android:drawableLeft = "@drawable/telegram_logo_50" - android:drawableStart="@drawable/telegram_logo_50" - android:fontFamily="@font/pitagon_semibold"/> + android:background="@android:color/darker_gray" + app:layout_constraintBottom_toTopOf="@id/versionTextView" + /> <TextView android:text="@string/app_version" @@ -50,11 +189,13 @@ android:layout_height="wrap_content" android:id="@+id/versionTextView" android:textAppearance="@style/TextAppearance.AppCompat.Medium" android:gravity="center_horizontal|center_vertical" - android:layout_margin="10dp" android:layout_marginLeft="20dp" - android:layout_marginStart="20dp" - - android:textColor="@color/black"/> - + android:layout_marginStart="10dp" + android:layout_below="@id/openTelegramButton" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + android:textColor="@color/black" android:layout_marginTop="10dp" android:layout_marginEnd="10dp" + android:layout_marginBottom="10dp"/> </LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -57,21 +57,26 @@ \n<b>Tocca a lungo</b> su <b>Fonte Orari</b> per cambiare sorgente degli orari di arrivo. </string> <string name="hint_button">OK!</string> - <string name="about_history"> + <string name="about_history_top"> <![CDATA[ - <h1>Benvenuto!</h1> + <h1>Benvenuto/a/ə!</h1> - <p>Grazie per aver scelto BusTO, un\'app <b>indipendente</b> da GTT/5T, per spostarsi a Torino attraverso <b>software libero</b>:</p> - <br> - <p>Perché usare BusTO?</p> - <p> - - Non sei <b>monitorato</b><br> - - Non ci sono <b>pubblicità</b><br> - - La tua <b>privacy</b> è al sicuro<br> - - Inoltre l\'app è molto leggera!<br> - </p> + <p>Grazie per aver scelto BusTO, un\'app <b>open source</b> e <b>indipendente</b> da GTT/5T, per spostarsi a Torino attraverso <b>software libero</b>!</p> + <p>BusTO rispetta la tua <b>privacy</b> non raccogliendo nessun dato sull\'utilizzo, ed è <b>leggera</b> e senza <b>pubblicità</b>!</p> <br> - <h2>Come funziona?</h2> + <p>Qui puoi trovare più informazioni e link riguardo al progetto.</p> + <br> + <h2>Schermata iniziale</h2> + <p>Se vuoi rivedere la schermata iniziale, usa il pulsante qui sotto:</b> + ]]></string> + <string name="about_channel"> + <![CDATA[ + <h2>Notizie e aggiornamenti</h2> + <p>Nel canale Telegram puoi trovare informazioni sugli ultimi aggiornamenti dell\'app</p> + ]]></string> + <string name="about_how"> + <![CDATA[ + <h2>Ma come funziona?</h2> <p>Quest\'app ottiene i passaggi dei bus, le fermate e altre informazioni utili unendo dati forniti dal sito <b>www.gtt.to.it</b>, <i>www.5t.torino.it</i>, <b>muoversiatorino.it</b> "per uso personale" e altre fonti Open Data (aperto.comune.torino.it).</p> <br> <p>Ingredienti:<br> @@ -83,13 +88,19 @@ - <b>Valerio Bozzolan</b> attuale manutentore.<br> - <b>Marco Gagino</b> apprezzato ex collaboratore, ideatore icona e grafica.<br> - <b>JSoup</b> libreria per "<i>web scaping</i>".<br> - - <b>Google</b> icone e libreria di supporto per il Material Design.<br> + - <b>Google</b> icone e librerie di supporto e design.<br> + - Altre icone da <b>Bootstrap</b>, <b>Feather</b> e <b>Hero Icons</b><br> - Tutti i contributori e i beta tester! </p> <br> + Se vuoi avere più informazioni tecniche e contribuire allo sviluppo, usa i pulsanti qui sotto!</b> + + ]]></string> + <string name="about_history_bottom"> + <![CDATA[ <h2>Licenze</h2> - <p>L\'app e il relativo codice sorgente sono distribuiti sotto la licenza <i>GNU General Public License v3+</i>. - Ciò <b>significa</b> che puoi usare, studiare, migliorare e ricondividere quest\'app con <b>qualunque mezzo</b> e per <b>qualsiasi scopo</b>: a patto di mantenere sempre questi diritti a tua volta e di dare credito a Valerio Bozzolan. + <p>L\'app e il relativo codice sorgente sono distribuiti sotto la licenza <i>GNU General Public License v3</i> (https://www.gnu.org/licenses/gpl-3.0.html). + Ciò <b>significa</b> che puoi usare, studiare, migliorare e ricondividere quest\'app con <b>qualunque mezzo</b> e per <b>qualsiasi scopo</b>: a patto di mantenere sempre questi diritti a tua volta e di dare credito a Valerio Bozzolan e agli altri autori del codice dell\'app. </p> <br> @@ -143,7 +154,9 @@ <!-- Mixed button strings !--> - <string name="open_telegram"> Canale Telegram</string> + <string name="open_telegram">Canale telegram</string> + <string name="show_introduction">Mostra introduzione</string> + <!-- Map view buttons strings diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -17,11 +17,14 @@ <color name="blue_extra">#2F59CC</color> <color name="brown_mattone">#CC5E43</color> - <color name="green_dark">#548017</color> + <color name="olivegreen">#548017</color> + <color name="forest_green">#228b22</color> + <color name="green_extra">#0ABA34</color> <color name="teal_500">#009688</color> <color name="teal_300">#4DB6AC</color> <color name="teal_200">#80cbc4</color> + <color name="teal_900">#008175</color> <color name="grey_100">#F5F5F5</color> <color name="grey_200">#dddddd</color> <color name="grey_050">#f8f8f8</color> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -76,11 +76,11 @@ <string name="hint_button">GOT IT!</string> <string name="arrival_times">Arrival times</string> <string name="no_passages_title">No arrivals found for lines:</string> - <string name="about_history"> + <string name="about_history_top"> <![CDATA[ <h1>Welcome!</h1> - <p>Thanks for using BusTO, a "politically" <b>independent</b> app useful to move around Torino using a <b>Free/Libre software</b>.</p> + <p>Thanks for using BusTO, an <b>open source</b> and <b>independent</b> app useful to move around Torino using a <b>Free/Libre software</b>.</p> <br> <p>Why use this app?</p> <p> @@ -90,7 +90,17 @@ - Moreover, it\'s lightweight!<br> </p> <br> - <h2>How does it work?</h2> + <h2>Introductory tutorial</h2> + <p>If you want to see the introduction again, use the button below:</p> + ]]></string> + <string name="about_channel"> + <![CDATA[ + <h2>News and Updates</h2> + <p>On the Telegram channel, you can find information about the latest app updates</p> + ]]></string> + <string name="about_how"> + <![CDATA[ + <h2>How does it work?</h2> <p>This app is able to do all the amazing things it does by pulling data from <b>www.gtt.to.it</b>, <b>www.5t.torino.it</b> or <b>muoversiatorino.it</b> "for personal use", along with open data from the AperTO (aperto.comune.torino.it) website.</p> <br> <p>The work of several people is behind this app, in particular:<br> @@ -103,11 +113,15 @@ - <b>Marco Gagino</b>, contributor and first icon creator.<br> - <b>JSoup</b> web scraper library.<br> - <b>makovkastar</b> floating buttons.<br> - - <b>Google</b> Material Design icons and Volley framework.<br> - - <b>Android</b> app components.<br> + - <b>Google</b> for icons and support and design libraries.<br> + - Other icons from <b>Bootstrap</b>, <b>Feather</b>, and <b>Hero Icons</b>.<br> - All the contributors, and the beta testers, too! </p> <br> + If you want more technical information or to contribute to development, use the buttons below!</b> + ]]></string> + <string name="about_history_bottom"> + <![CDATA[ <h2>Licenses</h2> <p>The app and the related source code are released by Valerio Bozzolan and the other authors under the terms of the <i>GNU General Public License v3+</i>). So everyone is allowed to use, to study, to improve and to share this app by <b>any kind of means</b> and for <b>any purpose</b>: under the conditions of maintaining this rights and of attributing the original work to Valerio Bozzolan.</p> @@ -165,6 +179,7 @@ Mixed button strings !--> <string name="open_telegram">Join Telegram channel</string> + <string name="show_introduction">Show introduction</string> <!-- Map view buttons strings !--> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -20,6 +20,7 @@ <item name="colorPrimary">@color/orange_500</item> <item name="colorPrimaryDark">@color/orange_700</item> <item name="colorAccent">@color/teal_500</item> + <item name="colorOnPrimary">@color/white</item> <!-- For the preferences Fragment --> <item name="preferenceTheme">@style/PreferenceThemeOverlay</item> diff --git a/app/src/main/res/values/theme.xml b/app/src/main/res/values/theme.xml --- a/app/src/main/res/values/theme.xml +++ b/app/src/main/res/values/theme.xml @@ -7,10 +7,12 @@ <item name="colorAccent">@color/teal_500</item> </style> - <style name="AboutTheme" parent="AppTheme.NoActionBar"> - <item name="colorPrimary">@color/teal_300</item> - <item name="colorPrimaryDark">@color/teal_500</item> + <style name="AboutTheme" parent="Theme.MaterialComponents.Light.DarkActionBar"> + <item name="colorPrimary">@color/teal_500</item> + <item name="colorPrimaryDark">@color/teal_900</item> <item name="colorAccent">@color/blue_700</item> + <item name="colorOnPrimary">@color/white</item> + </style> <style name="MapTheme" parent="Theme.AppCompat.Light.DarkActionBar">