diff --git a/android/src/com/mapswithme/maps/bookmarks/AuthCompleteListener.java b/android/src/com/mapswithme/maps/bookmarks/AuthCompleteListener.java new file mode 100644 index 0000000000..64f389cdda --- /dev/null +++ b/android/src/com/mapswithme/maps/bookmarks/AuthCompleteListener.java @@ -0,0 +1,6 @@ +package com.mapswithme.maps.bookmarks; + +public interface AuthCompleteListener +{ + void onAuthCompleted(); +} diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarkBackupController.java b/android/src/com/mapswithme/maps/bookmarks/BookmarkBackupController.java index 073e749b16..f00cd8e5e1 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarkBackupController.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarkBackupController.java @@ -53,6 +53,8 @@ public class BookmarkBackupController implements Authorizer.Callback, @NonNull private final Authorizer mAuthorizer; @NonNull + private final AuthCompleteListener mAuthCompleteListener; + @NonNull private final View.OnClickListener mSignInClickListener = new View.OnClickListener() { @Override @@ -88,11 +90,13 @@ public class BookmarkBackupController implements Authorizer.Callback, }; BookmarkBackupController(@NonNull FragmentActivity context, @NonNull BookmarkBackupView backupView, - @NonNull Authorizer authorizer) + @NonNull Authorizer authorizer, + @NonNull AuthCompleteListener authCompleteListener) { mContext = context; mBackupView = backupView; mAuthorizer = authorizer; + mAuthCompleteListener = authCompleteListener; } private void requestRestoring() @@ -229,6 +233,7 @@ public class BookmarkBackupController implements Authorizer.Callback, notifier.cancelNotification(Notifier.ID_IS_NOT_AUTHENTICATED); BookmarkManager.INSTANCE.setCloudEnabled(true); Statistics.INSTANCE.trackEvent(Statistics.EventName.BM_SYNC_PROPOSAL_ENABLED); + mAuthCompleteListener.onAuthCompleted(); } else { diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesFragment.java b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesFragment.java index 30d3cfa2bd..e9cdf323c1 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesFragment.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesFragment.java @@ -3,6 +3,7 @@ package com.mapswithme.maps.bookmarks; import android.content.Intent; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.FragmentManager; import android.view.View; import com.cocosw.bottomsheet.BottomSheet; @@ -25,7 +26,12 @@ public class BookmarkCategoriesFragment extends BaseBookmarkCategoriesFragment super.onPrepareControllers(view); Authorizer authorizer = new Authorizer(this); BookmarkBackupView backupView = view.findViewById(R.id.backup); - mBackupController = new BookmarkBackupController(getActivity(), backupView, authorizer); + FragmentManager fm = requireActivity().getSupportFragmentManager(); + BookmarkCategoriesPagerFragment fragment = + (BookmarkCategoriesPagerFragment) fm.findFragmentByTag(BookmarkCategoriesPagerFragment.class.getName()); + + mBackupController = new BookmarkBackupController(requireActivity(), backupView, authorizer, + new AuthCompleteListenerWrapper(fragment)); } @Override @@ -73,4 +79,22 @@ public class BookmarkCategoriesFragment extends BaseBookmarkCategoriesFragment setEnableForMenuItem(R.id.sharing_options, bottomSheet, getSelectedCategory().isSharingOptionsAllowed()); } + + private static class AuthCompleteListenerWrapper implements AuthCompleteListener + { + @Nullable + private final AuthCompleteListener mFragment; + + AuthCompleteListenerWrapper(@Nullable BookmarkCategoriesPagerFragment fragment) + { + mFragment = fragment; + } + + @Override + public void onAuthCompleted() + { + if (mFragment != null) + mFragment.onAuthCompleted(); + } + } } diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesPagerFragment.java b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesPagerFragment.java index 281e4236e1..d619cc67b2 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesPagerFragment.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesPagerFragment.java @@ -24,7 +24,7 @@ import java.util.Arrays; import java.util.List; public class BookmarkCategoriesPagerFragment extends BaseMwmFragment - implements TargetFragmentCallback, AlertDialogCallback + implements TargetFragmentCallback, AlertDialogCallback, AuthCompleteListener { final static String ARG_CATEGORIES_PAGE = "arg_categories_page"; final static String ARG_CATALOG_DEEPLINK = "arg_catalog_deeplink"; @@ -188,6 +188,12 @@ public class BookmarkCategoriesPagerFragment extends BaseMwmFragment mInvalidSubsDialogCallback.onAlertDialogCancel(requestCode); } + @Override + public void onAuthCompleted() + { + mViewPager.setAdapter(mAdapter); + } + private class PageChangeListener extends ViewPager.SimpleOnPageChangeListener { @Override