From b736087697e3110f4b9d2704755a25e8f7993590 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Tue, 3 Sep 2019 16:16:56 +0300 Subject: [PATCH] Markers loads at correct time --- .../NearbyTestFragmentLayersActivity.java | 10 ++- .../nearby/NearbyTestLayersFragment.java | 64 ++++++++++++++++++- .../NearbyParentFragmentPresenter.java | 2 +- 3 files changed, 72 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyTestFragmentLayersActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyTestFragmentLayersActivity.java index 7edd621b8..fc3fb7cae 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyTestFragmentLayersActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyTestFragmentLayersActivity.java @@ -1,7 +1,10 @@ package fr.free.nrw.commons.nearby; +import android.content.BroadcastReceiver; +import android.content.Context; import android.content.Intent; import android.os.Bundle; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -28,7 +31,7 @@ import timber.log.Timber; import static android.content.ContentResolver.requestSync; -public class NearbyTestFragmentLayersActivity extends AuthenticatedActivity { +public class NearbyTestFragmentLayersActivity extends AuthenticatedActivity implements FragmentManager.OnBackStackChangedListener { @Inject public SessionManager sessionManager; @@ -55,6 +58,7 @@ public class NearbyTestFragmentLayersActivity extends AuthenticatedActivity { } + @Override protected void onAuthCookieAcquired(String authCookie) { // Do a sync everytime we get here! @@ -142,6 +146,10 @@ public class NearbyTestFragmentLayersActivity extends AuthenticatedActivity { }); } + @Override + public void onBackStackChanged() { + + } public class ContributionsActivityPagerAdapter extends FragmentPagerAdapter { FragmentManager fragmentManager; diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyTestLayersFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyTestLayersFragment.java index 09a4c02cd..90f003497 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyTestLayersFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyTestLayersFragment.java @@ -1,6 +1,10 @@ package fr.free.nrw.commons.nearby; import android.Manifest; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; @@ -12,6 +16,7 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; +import com.google.android.material.snackbar.Snackbar; import com.mapbox.mapboxsdk.Mapbox; import com.mapbox.mapboxsdk.camera.CameraPosition; import com.mapbox.mapboxsdk.geometry.LatLng; @@ -29,6 +34,8 @@ import fr.free.nrw.commons.di.CommonsDaggerSupportFragment; import fr.free.nrw.commons.location.LocationServiceManager; import fr.free.nrw.commons.nearby.mvp.contract.NearbyParentFragmentContract; import fr.free.nrw.commons.nearby.mvp.presenter.NearbyParentFragmentPresenter; +import fr.free.nrw.commons.utils.FragmentUtils; +import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.PermissionUtils; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; @@ -36,6 +43,7 @@ import io.reactivex.schedulers.Schedulers; import timber.log.Timber; import static fr.free.nrw.commons.contributions.ContributionsFragment.CONTRIBUTION_LIST_FRAGMENT_TAG; +import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SIGNIFICANTLY_CHANGED; import static fr.free.nrw.commons.nearby.NearbyTestFragmentLayersActivity.CONTRIBUTIONS_TAB_POSITION; @@ -47,13 +55,19 @@ public class NearbyTestLayersFragment extends CommonsDaggerSupportFragment imple @Inject NearbyController nearbyController; + private final String NETWORK_INTENT_ACTION = "android.net.conn.CONNECTIVITY_CHANGE"; + private BroadcastReceiver broadcastReceiver; + private boolean isNetworkErrorOccurred = false; + private Snackbar snackbar; + View view; + NearbyParentFragmentPresenter nearbyParentFragmentPresenter; SupportMapFragment mapFragment; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_simple, container, false); + view = inflater.inflate(R.layout.fragment_simple, container, false); ButterKnife.bind(this, view); // Inflate the layout for this fragment return view; @@ -144,12 +158,58 @@ public class NearbyTestLayersFragment extends CommonsDaggerSupportFragment imple @Override public boolean isNetworkConnectionEstablished() { - return false; + return NetworkUtils.isInternetConnectionEstablished(getActivity()); } + + /** + * Adds network broadcast receiver to recognize connection established + */ @Override public void addNetworkBroadcastReceiver() { + Log.d("denemeTest","addNetworkBroadcastReceiver"); + if (!FragmentUtils.isFragmentUIActive(this)) { + Log.d("denemeTest","!FragmentUtils.isFragmentUIActive(this)"); + return; + } + if (broadcastReceiver != null) { + Log.d("denemeTest","broadcastReceiver != null"); + return; + } + + IntentFilter intentFilter = new IntentFilter(NETWORK_INTENT_ACTION); + + broadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (getActivity() != null) { + if (NetworkUtils.isInternetConnectionEstablished(getActivity())) { + Log.d("denemeTest","NetworkUtils.isInternetConnectionEstablished(getActivity())"); + if (isNetworkErrorOccurred) { + Log.d("denemeTest","isNetworkErrorOccurred"); + nearbyParentFragmentPresenter.updateMapAndList(LOCATION_SIGNIFICANTLY_CHANGED, null); + isNetworkErrorOccurred = false; + } + + if (snackbar != null) { + snackbar.dismiss(); + snackbar = null; + } + } else { + if (snackbar == null) { + snackbar = Snackbar.make(view, R.string.no_internet, Snackbar.LENGTH_INDEFINITE); + // TODO make search this area button invisible + } + + isNetworkErrorOccurred = true; + snackbar.show(); + } + } + } + }; + + getActivity().registerReceiver(broadcastReceiver, intentFilter); } @Override diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/mvp/presenter/NearbyParentFragmentPresenter.java b/app/src/main/java/fr/free/nrw/commons/nearby/mvp/presenter/NearbyParentFragmentPresenter.java index 0c31a88df..b3f43570d 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/mvp/presenter/NearbyParentFragmentPresenter.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/mvp/presenter/NearbyParentFragmentPresenter.java @@ -198,7 +198,7 @@ public class NearbyParentFragmentPresenter if (!nearbyParentFragmentView.isNetworkConnectionEstablished()) { Timber.d("Network connection is not established"); - Log.d("denemeTest","nearbyParentFragmentView.isNetworkConnectionEstablished()"); + Log.d("denemeTest","!nearbyParentFragmentView.isNetworkConnectionEstablished()"); return; }