From 802b2a8df410adeb5942dfc8742225a849b1b6f9 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Sun, 8 Apr 2018 12:17:20 +0300 Subject: [PATCH] Hot fix bundle issue (#1425) * Fixed bug #1399 * Changed visibility from visible to gone * Changed behaviour according to review * Changed bottom sheet visibility from visible to gone * Fix adding bundle to an already created fragment --- .../nrw/commons/nearby/NearbyActivity.java | 8 +++--- .../commons/nearby/NearbyListFragment.java | 9 +++++-- .../nrw/commons/nearby/NearbyMapFragment.java | 25 +++++++++++-------- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 36dee44a9..176c45c36 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -474,17 +474,17 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(this::populatePlaces); - nearbyMapFragment.setArguments(bundle); + nearbyMapFragment.setBundleForUpdtes(bundle); nearbyMapFragment.updateMapSignificantly(); updateListFragment(); return; } if (isSlightUpdate) { - nearbyMapFragment.setArguments(bundle); + nearbyMapFragment.setBundleForUpdtes(bundle); nearbyMapFragment.updateMapSlightly(); } else { - nearbyMapFragment.setArguments(bundle); + nearbyMapFragment.setBundleForUpdtes(bundle); nearbyMapFragment.updateMapSignificantly(); updateListFragment(); } @@ -498,7 +498,7 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp } private void updateListFragment() { - nearbyListFragment.setArguments(bundle); + nearbyListFragment.setBundleForUpdates(bundle); nearbyListFragment.updateNearbyListSignificantly(); } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java index e46bd76e7..4a2be8476 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyListFragment.java @@ -33,6 +33,8 @@ import static android.app.Activity.RESULT_OK; import static android.content.pm.PackageManager.PERMISSION_GRANTED; public class NearbyListFragment extends DaggerFragment { + private Bundle bundleForUpdates; // Carry information from activity about changed nearby places and current location + private static final Type LIST_TYPE = new TypeToken>() { }.getType(); private static final Type CUR_LAT_LNG_TYPE = new TypeToken() { @@ -80,8 +82,7 @@ public class NearbyListFragment extends DaggerFragment { } public void updateNearbyListSignificantly() { - Bundle bundle = this.getArguments(); - adapterFactory.updateAdapterData(getPlaceListFromBundle(bundle), + adapterFactory.updateAdapterData(getPlaceListFromBundle(bundleForUpdates), (RVRendererAdapter) recyclerView.getAdapter()); } @@ -140,4 +141,8 @@ public class NearbyListFragment extends DaggerFragment { } } + public void setBundleForUpdates(Bundle bundleForUpdates) { + this.bundleForUpdates = bundleForUpdates; + } + } \ No newline at end of file diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index d37e67b06..3affb2605 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -110,6 +110,8 @@ public class NearbyMapFragment extends DaggerFragment { private final double CAMERA_TARGET_SHIFT_FACTOR_PORTRAIT = 0.06; private final double CAMERA_TARGET_SHIFT_FACTOR_LANDSCAPE = 0.04; + private Bundle bundleForUpdtes;// Carry information from activity about changed nearby places and current location + @Inject @Named("prefs") SharedPreferences prefs; @@ -191,14 +193,12 @@ public class NearbyMapFragment extends DaggerFragment { } public void updateMapSlightly() { - // Get arguments from bundle for new location - Bundle bundle = this.getArguments(); if (mapboxMap != null) { Gson gson = new GsonBuilder() .registerTypeAdapter(Uri.class, new UriDeserializer()) .create(); - if (bundle != null) { - String gsonLatLng = bundle.getString("CurLatLng"); + if (bundleForUpdtes != null) { + String gsonLatLng = bundleForUpdtes.getString("CurLatLng"); Type curLatLngType = new TypeToken() {}.getType(); curLatLng = gson.fromJson(gsonLatLng, curLatLngType); } @@ -208,17 +208,15 @@ public class NearbyMapFragment extends DaggerFragment { } public void updateMapSignificantly() { - - Bundle bundle = this.getArguments(); if (mapboxMap != null) { - if (bundle != null) { + if (bundleForUpdtes != null) { Gson gson = new GsonBuilder() .registerTypeAdapter(Uri.class, new UriDeserializer()) .create(); - String gsonPlaceList = bundle.getString("PlaceList"); - String gsonLatLng = bundle.getString("CurLatLng"); - String gsonBoundaryCoordinates = bundle.getString("BoundaryCoord"); + String gsonPlaceList = bundleForUpdtes.getString("PlaceList"); + String gsonLatLng = bundleForUpdtes.getString("CurLatLng"); + String gsonBoundaryCoordinates = bundleForUpdtes.getString("BoundaryCoord"); Type listType = new TypeToken>() {}.getType(); List placeList = gson.fromJson(gsonPlaceList, listType); Type curLatLngType = new TypeToken() {}.getType(); @@ -773,7 +771,7 @@ public class NearbyMapFragment extends DaggerFragment { } } - private void closeFabs ( boolean isFabOpen){ + private void closeFabs ( boolean isFabOpen){ if (isFabOpen) { fabPlus.startAnimation(rotate_backward); fabCamera.startAnimation(fab_close); @@ -784,6 +782,11 @@ public class NearbyMapFragment extends DaggerFragment { } } + public void setBundleForUpdtes(Bundle bundleForUpdtes) { + this.bundleForUpdtes = bundleForUpdtes; + } + + @Override public void onStart() { if (mapView != null) {