fix app Crash when tapping on the nearbyNotification (#4139)

* bugfix-#4086
-> implement CallBack interface in MainActivity centerMapToPlace() function

* update previous  commit

* reformed the codechanges
This commit is contained in:
Prince kushwaha 2021-01-01 22:03:35 +05:30 committed by GitHub
parent 7730112807
commit 86c571ceee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 1 deletions

View file

@ -32,6 +32,7 @@ import fr.free.nrw.commons.navtab.NavTabLoggedOut;
import fr.free.nrw.commons.nearby.NearbyNotificationCardView;
import fr.free.nrw.commons.nearby.Place;
import fr.free.nrw.commons.nearby.fragments.NearbyParentFragment;
import fr.free.nrw.commons.nearby.fragments.NearbyParentFragment.NearbyParentFragmentInstanceReadyCallback;
import fr.free.nrw.commons.notification.NotificationActivity;
import fr.free.nrw.commons.notification.NotificationController;
import fr.free.nrw.commons.quiz.QuizChecker;
@ -298,7 +299,14 @@ public class MainActivity extends BaseActivity
public void centerMapToPlace(Place place) {
setSelectedItemId(NavTab.NEARBY.code());
nearbyParentFragment.centerMapToPlace(place);
nearbyParentFragment.setNearbyParentFragmentInstanceReadyCallback(new NearbyParentFragmentInstanceReadyCallback() {
// if mapBox initialize in nearbyParentFragment then MapReady() function called
// so that nearbyParentFragemt.centerMaptoPlace(place) not throw any null pointer exception
@Override
public void onReady() {
nearbyParentFragment.centerMapToPlace(place);
}
});
}
@Override

View file

@ -214,6 +214,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
private fr.free.nrw.commons.location.LatLng lastFocusLocation;
private LatLngBounds latLngBounds;
private PlaceAdapter adapter;
private NearbyParentFragmentInstanceReadyCallback nearbyParentFragmentInstanceReadyCallback;
@NonNull
public static NearbyParentFragment newInstance() {
@ -271,6 +272,9 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
uiSettings.setAttributionEnabled(false);
uiSettings.setRotateGesturesEnabled(false);
isMapBoxReady =true;
if(nearbyParentFragmentInstanceReadyCallback!=null){
nearbyParentFragmentInstanceReadyCallback.onReady();
}
performMapReadyActions();
final CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(51.50550, -0.07520))
@ -1531,4 +1535,12 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment
mapView.onStart();
performMapReadyActions();
}
public interface NearbyParentFragmentInstanceReadyCallback{
void onReady();
}
public void setNearbyParentFragmentInstanceReadyCallback(NearbyParentFragmentInstanceReadyCallback nearbyParentFragmentInstanceReadyCallback) {
this.nearbyParentFragmentInstanceReadyCallback = nearbyParentFragmentInstanceReadyCallback;
}
}