Page Menu
Home
GitPull.it
Search
Configure Global Search
Log In
Files
F13400545
D179.1780511085.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Authored By
Unknown
Size
12 KB
Referenced Files
None
Subscribers
None
D179.1780511085.diff
View Options
diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java b/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java
--- a/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java
+++ b/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java
@@ -27,15 +27,18 @@
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
+import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
+import android.widget.FrameLayout;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.widget.Toolbar;
+import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
@@ -433,14 +436,24 @@
private void createDefaultSnackbar() {
View baseView = null;
+ boolean showSnackbar = true;
final Fragment frag = getSupportFragmentManager().findFragmentById(R.id.mainActContentFrame);
if (frag instanceof ScreenBaseFragment){
baseView = ((ScreenBaseFragment) frag).getBaseViewForSnackBar();
+ showSnackbar = ((ScreenBaseFragment) frag).showSnackbarOnDBUpdate();
}
if (baseView == null) baseView = findViewById(R.id.mainActContentFrame);
- if (baseView == null) Log.e(DEBUG_TAG, "baseView null for default snackbar, probably exploding now");
- snackbar = Snackbar.make(baseView, R.string.database_update_msg_inapp, Snackbar.LENGTH_INDEFINITE);
- snackbar.show();
+ //if (baseView == null) Log.e(DEBUG_TAG, "baseView null for default snackbar, probably exploding now");
+ if (baseView !=null && showSnackbar) {
+ this.snackbar = Snackbar.make(baseView, R.string.database_update_msg_inapp, Snackbar.LENGTH_INDEFINITE);
+ if (frag instanceof ScreenBaseFragment){
+ ((ScreenBaseFragment) frag).setSnackbarPropertiesBeforeShowing(this.snackbar);
+ }
+ this.snackbar.show();
+
+ } else{
+ Log.e(DEBUG_TAG, "Asked to show the snackbar but the baseView is null");
+ }
}
/**
diff --git a/app/src/main/java/it/reyboz/bustorino/data/MatoTripsDownloadWorker.kt b/app/src/main/java/it/reyboz/bustorino/data/MatoTripsDownloadWorker.kt
--- a/app/src/main/java/it/reyboz/bustorino/data/MatoTripsDownloadWorker.kt
+++ b/app/src/main/java/it/reyboz/bustorino/data/MatoTripsDownloadWorker.kt
@@ -57,7 +57,7 @@
for(trip in tripsList){
queriedMatoTrips.add(trip)
matoRepository.requestTripUpdate(trip,{error->
- Log.e(DEBUG_TAG, "Cannot download Gtfs Trip $trip", error)
+ Log.e(DEBUG_TAG, "Cannot download Gtfs Trip $trip, error: $error")
//val stacktrace = error.stackTrace.take(5)
//Log.w(DEBUG_TAG, "Stacktrace:\n$stacktrace")
failedMatoTripsDownload.add(trip)
diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/FavoritesFragment.java b/app/src/main/java/it/reyboz/bustorino/fragments/FavoritesFragment.java
--- a/app/src/main/java/it/reyboz/bustorino/fragments/FavoritesFragment.java
+++ b/app/src/main/java/it/reyboz/bustorino/fragments/FavoritesFragment.java
@@ -256,7 +256,7 @@
// If no data is found show a friendly message
if(BuildConfig.DEBUG)
Log.d("BusTO - Favorites", "We have "+busStops.size()+" favorites in the list");
- if (busStops.size() == 0) {
+ if (busStops.isEmpty()) {
favoriteRecyclerView.setVisibility(View.INVISIBLE);
// TextView favoriteTipTextView = (TextView) findViewById(R.id.favoriteTipTextView);
//assert favoriteTipTextView != null;
@@ -298,7 +298,7 @@
String oldUserName = busStop.getStopUserName();
// changed to none
- if(busStopUsername.length() == 0) {
+ if(busStopUsername.isEmpty()) {
// unless it was already empty, set new
if(oldUserName != null) {
busStop.setStopUserName(null);
@@ -330,4 +330,14 @@
//Toast.makeText(getApplicationContext(), R.string.tip_add_favorite, Toast.LENGTH_SHORT).show();
}).execute(busStop);
}
+ /*
+ THIS LOOKS TERRIBLE
+ @Override
+ public void setSnackbarPropertiesBeforeShowing(Snackbar snackbar) {
+ final View view = snackbar.getView();
+ FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) view.getLayoutParams();
+ params.gravity = Gravity.TOP;
+ view.setLayoutParams(params);
+ }
+ */
}
diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/LinesGridShowingFragment.kt b/app/src/main/java/it/reyboz/bustorino/fragments/LinesGridShowingFragment.kt
--- a/app/src/main/java/it/reyboz/bustorino/fragments/LinesGridShowingFragment.kt
+++ b/app/src/main/java/it/reyboz/bustorino/fragments/LinesGridShowingFragment.kt
@@ -15,11 +15,14 @@
import androidx.fragment.app.viewModels
import androidx.lifecycle.Lifecycle
import androidx.recyclerview.widget.RecyclerView
+import androidx.work.WorkInfo
+import androidx.work.WorkManager
import it.reyboz.bustorino.R
import it.reyboz.bustorino.adapters.RouteAdapter
import it.reyboz.bustorino.adapters.RouteOnlyLineAdapter
import it.reyboz.bustorino.adapters.StringListAdapter
import it.reyboz.bustorino.backend.utils
+import it.reyboz.bustorino.data.DBUpdateWorker
import it.reyboz.bustorino.data.PreferencesHolder
import it.reyboz.bustorino.data.gtfs.GtfsRoute
import it.reyboz.bustorino.middleware.AutoFitGridLayoutManager
@@ -43,6 +46,7 @@
private lateinit var urbanLinesTitle: TextView
private lateinit var extrurbanLinesTitle: TextView
private lateinit var touristLinesTitle: TextView
+ private lateinit var updateMessageTextView: TextView
//private lateinit var searchBar: SearchView
@@ -69,6 +73,7 @@
private val lastQueryEmptyForAgency = HashMap<String, Boolean>(3)
private var openRecyclerView = "AG_URBAN"
+
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@@ -79,6 +84,7 @@
urbanRecyclerView = rootView.findViewById(R.id.urbanLinesRecyclerView)
extraurbanRecyclerView = rootView.findViewById(R.id.extraurbanLinesRecyclerView)
touristRecyclerView = rootView.findViewById(R.id.touristLinesRecyclerView)
+ updateMessageTextView = rootView.findViewById(R.id.updateMessageTextView)
favoritesTitle = rootView.findViewById(R.id.favoritesTitleView)
urbanLinesTitle = rootView.findViewById(R.id.urbanLinesTitleView)
@@ -178,6 +184,24 @@
//k is either AG_TOUR, AG_EXTRAURBAN, AG_URBAN
arrows[k]?.setOnClickListener { openLinesAndCloseOthersIfNeeded(k) }
}
+ // watch for the db update
+ WorkManager.getInstance(requireContext()).getWorkInfosForUniqueWorkLiveData(DBUpdateWorker.DEBUG_TAG).observe(viewLifecycleOwner){
+ workInfoList ->
+ if (workInfoList == null || workInfoList.isEmpty()) {
+ return@observe
+ }
+
+ var showProgress = false
+ for (workInfo in workInfoList) {
+ if (workInfo.state == WorkInfo.State.RUNNING) {
+ updateMessageTextView.visibility = View.VISIBLE
+
+ } else{
+ updateMessageTextView.visibility = View.GONE
+ }
+ break
+ }
+ }
return rootView
@@ -400,4 +424,7 @@
}
}
+ override fun showSnackbarOnDBUpdate(): Boolean {
+ return false
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java b/app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java
--- a/app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java
+++ b/app/src/main/java/it/reyboz/bustorino/fragments/ScreenBaseFragment.java
@@ -4,6 +4,7 @@
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
+import android.view.Gravity;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
@@ -14,6 +15,7 @@
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
+import com.google.android.material.snackbar.Snackbar;
import it.reyboz.bustorino.BuildConfig;
import java.util.Map;
@@ -59,6 +61,17 @@
@Nullable
public abstract View getBaseViewForSnackBar();
+ /**
+ * Empty method to override properties of the Snackbar before showing it
+ * @param snackbar the Snackbar to be possibly modified
+ */
+ public void setSnackbarPropertiesBeforeShowing(Snackbar snackbar){
+
+ }
+ public boolean showSnackbarOnDBUpdate() {
+ return true;
+ }
+
public static boolean getOption(Context context, String optionName, boolean optDefault){
SharedPreferences preferences = context.getSharedPreferences(PREF_FILE, MODE_PRIVATE);
return preferences.getBoolean(optionName, optDefault);
diff --git a/app/src/main/res/drawable/backgroud_box_round.xml b/app/src/main/res/drawable/backgroud_box_round.xml
new file mode 100644
--- /dev/null
+++ b/app/src/main/res/drawable/backgroud_box_round.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/grey_900" /> <!-- Colore di sfondo rosso -->
+ <corners android:radius="6dp" /> <!-- Raggio per i bordi arrotondati -->
+ <stroke
+ android:width="2dp"
+ android:color="@color/grey_900" /> <!-- Bordi bianchi -->
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_lines_grid.xml b/app/src/main/res/layout/fragment_lines_grid.xml
--- a/app/src/main/res/layout/fragment_lines_grid.xml
+++ b/app/src/main/res/layout/fragment_lines_grid.xml
@@ -15,6 +15,25 @@
android:layout_width="match_parent" android:layout_height="match_parent"
android:animateLayoutChanges="true"
>
+ <TextView
+ android:text="@string/database_update_msg_inapp"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" android:id="@+id/updateMessageTextView"
+ android:paddingTop="10dp"
+ android:paddingBottom="10dp"
+ android:layout_margin="5dp"
+
+ android:paddingStart="20dp"
+ android:paddingEnd="20dp"
+ android:textColor="@color/grey_200"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+ android:background="@drawable/backgroud_box_round"
+ android:visibility="gone"
+
+ app:layout_constraintBottom_toTopOf="@id/favoritesTitleView"
+ app:layout_constraintEnd_toEndOf="parent"/>
<ImageView
android:src="@drawable/baseline_chevron_right_24"
android:layout_width="wrap_content"
@@ -34,7 +53,7 @@
android:textColor="@color/black_900"
android:gravity="center"
android:id="@+id/favoritesTitleView"
- app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/updateMessageTextView"
app:layout_constraintLeft_toRightOf="@id/arrowFavorites"
app:layout_constraintBottom_toTopOf="@id/favoritesRecyclerView"
android:layout_marginStart="6dp"
@@ -172,6 +191,7 @@
/>
+
</androidx.constraintlayout.widget.ConstraintLayout>
<!--</androidx.core.widget.NestedScrollView>-->
</FrameLayout>
\ No newline at end of file
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Jun 3, 20:24 (23 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1933088
Default Alt Text
D179.1780511085.diff (12 KB)
Attached To
Mode
D179: Make more explicit message in line fragment
Attached
Detach File
Event Timeline