From 8e1fb8203f00945dc37b0462938f21b009607de5 Mon Sep 17 00:00:00 2001 From: Dmitry Donskoy Date: Mon, 6 Aug 2018 13:41:58 +0300 Subject: [PATCH] [android] Added pageIndex selection for bookmarks catalog, optimized code --- .../src/com/mapswithme/maps/MwmActivity.java | 14 +++-- .../bookmarks/BookmarkCategoriesActivity.java | 26 +++++---- .../CachedBookmarkCategoriesFragment.java | 56 ++++++++++--------- .../ShowOnMapCatalogCategoryFragment.java | 4 +- .../util/SharedPropertiesUtils.java | 4 +- 5 files changed, 59 insertions(+), 45 deletions(-) diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 4c9bf7de74..004f62d645 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -415,7 +415,7 @@ public class MwmActivity extends BaseMwmFragmentActivity private void showBookmarks() { - BookmarkCategoriesActivity.startForResult(this, BookmarksPageFactory.PRIVATE.ordinal()); + BookmarkCategoriesActivity.startForResult(this); } private void showTabletSearch(@Nullable Intent data, @NonNull String query) @@ -1055,10 +1055,14 @@ public class MwmActivity extends BaseMwmFragmentActivity if (category == null) throw new IllegalArgumentException("Category not found in bundle"); - addTask((MapTask) target -> { - Framework.nativeShowBookmarkCategory(category.getId()); - return true; - }); + MapTask mapTask = target -> showBookmarkCategory(category); + addTask(mapTask); + } + + private boolean showBookmarkCategory(BookmarkCategory category) + { + Framework.nativeShowBookmarkCategory(category.getId()); + return true; } private void handleDiscoveryResult(@NonNull Intent data) diff --git a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java index 15dea93c20..efc77d304c 100644 --- a/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java +++ b/android/src/com/mapswithme/maps/bookmarks/BookmarkCategoriesActivity.java @@ -12,22 +12,13 @@ import android.support.v4.app.Fragment; import com.mapswithme.maps.R; import com.mapswithme.maps.base.BaseToolbarActivity; import com.mapswithme.maps.bookmarks.data.BookmarkManager; +import com.mapswithme.util.SharedPropertiesUtils; import com.mapswithme.util.ThemeUtils; public class BookmarkCategoriesActivity extends BaseToolbarActivity { public static final int REQ_CODE_DOWNLOAD_BOOKMARK_CATEGORY = 102; - public static void startForResult(@NonNull Activity context, int initialPage) - { - Intent intent = new Intent(context, BookmarkCategoriesActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - Bundle args = new Bundle(); - args.putInt(BookmarkCategoriesPagerFragment.ARG_CATEGORIES_PAGE, initialPage); - intent.putExtras(args); - context.startActivityForResult(intent, REQ_CODE_DOWNLOAD_BOOKMARK_CATEGORY); - } - public static void start(@NonNull Context context, int initialPage) { context.startActivity(new Intent(context, BookmarkCategoriesActivity.class)); @@ -73,4 +64,19 @@ public class BookmarkCategoriesActivity extends BaseToolbarActivity { return R.layout.bookmarks_activity; } + + public static void startForResult(@NonNull Activity context, int initialPage) + { + Bundle args = new Bundle(); + args.putInt(BookmarkCategoriesPagerFragment.ARG_CATEGORIES_PAGE, initialPage); + Intent intent = new Intent(context, BookmarkCategoriesActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtras(args); + context.startActivityForResult(intent, REQ_CODE_DOWNLOAD_BOOKMARK_CATEGORY); + } + + public static void startForResult(@NonNull Activity context) + { + int initialPage = SharedPropertiesUtils.getLastVisibleBookmarkCategoriesPage(context); + startForResult(context, initialPage); + } } diff --git a/android/src/com/mapswithme/maps/bookmarks/CachedBookmarkCategoriesFragment.java b/android/src/com/mapswithme/maps/bookmarks/CachedBookmarkCategoriesFragment.java index 2355ea441f..7c5af33c79 100644 --- a/android/src/com/mapswithme/maps/bookmarks/CachedBookmarkCategoriesFragment.java +++ b/android/src/com/mapswithme/maps/bookmarks/CachedBookmarkCategoriesFragment.java @@ -142,33 +142,7 @@ public class CachedBookmarkCategoriesFragment extends BaseBookmarkCategoriesFrag @Override BookmarkManager.BookmarksCatalogListener createCatalogListener() { - return new BookmarkManager.BookmarksCatalogListener() - { - @Override - public void onImportStarted(@NonNull String serverId) - { - UiUtils.show(mProgressContainer); - UiUtils.hide(mEmptyViewContainer, mPayloadContainer); - } - - @Override - public void onImportFinished(@NonNull String serverId, long catId, boolean successful) - { - if (successful) - { - UiUtils.show(mPayloadContainer); - UiUtils.hide(mProgressContainer, mEmptyViewContainer); - getAdapter().notifyDataSetChanged(); - } - else - { - boolean isEmptyAdapter = getAdapter().getItemCount() == 0; - UiUtils.hide(mProgressContainer); - UiUtils.showIf(isEmptyAdapter, mEmptyViewContainer); - UiUtils.hideIf(isEmptyAdapter, mPayloadContainer); - } - } - }; + return new BookmarkCategoriesCatalogListener(); } @Override @@ -197,4 +171,32 @@ public class CachedBookmarkCategoriesFragment extends BaseBookmarkCategoriesFrag openBookmarksCatalogScreen(); } } + + private class BookmarkCategoriesCatalogListener implements BookmarkManager.BookmarksCatalogListener + { + @Override + public void onImportStarted(@NonNull String serverId) + { + UiUtils.show(mProgressContainer); + UiUtils.hide(mEmptyViewContainer, mPayloadContainer); + } + + @Override + public void onImportFinished(@NonNull String serverId, long catId, boolean successful) + { + if (successful) + { + UiUtils.show(mPayloadContainer); + UiUtils.hide(mProgressContainer, mEmptyViewContainer); + getAdapter().notifyDataSetChanged(); + } + else + { + boolean isEmptyAdapter = getAdapter().getItemCount() == 0; + UiUtils.hide(mProgressContainer); + UiUtils.showIf(isEmptyAdapter, mEmptyViewContainer); + UiUtils.hideIf(isEmptyAdapter, mPayloadContainer); + } + } + } } diff --git a/android/src/com/mapswithme/maps/bookmarks/ShowOnMapCatalogCategoryFragment.java b/android/src/com/mapswithme/maps/bookmarks/ShowOnMapCatalogCategoryFragment.java index 0b33045acc..99ff8210b1 100644 --- a/android/src/com/mapswithme/maps/bookmarks/ShowOnMapCatalogCategoryFragment.java +++ b/android/src/com/mapswithme/maps/bookmarks/ShowOnMapCatalogCategoryFragment.java @@ -28,10 +28,10 @@ public class ShowOnMapCatalogCategoryFragment extends DialogFragment { super.onCreate(savedInstanceState); Bundle args = getArguments(); - mCategory = getArgsOrThrow(args); + mCategory = getCategoryOrThrow(args); } - private BookmarkCategory getArgsOrThrow(@Nullable Bundle args) + private BookmarkCategory getCategoryOrThrow(@Nullable Bundle args) { BookmarkCategory category; if (args == null || ((category = args.getParcelable(ARGS_CATEGORY)) == null)) diff --git a/android/src/com/mapswithme/util/SharedPropertiesUtils.java b/android/src/com/mapswithme/util/SharedPropertiesUtils.java index 6146b511d8..5956045250 100644 --- a/android/src/com/mapswithme/util/SharedPropertiesUtils.java +++ b/android/src/com/mapswithme/util/SharedPropertiesUtils.java @@ -8,6 +8,7 @@ import android.support.annotation.Nullable; import com.mapswithme.maps.MwmApplication; import com.mapswithme.maps.R; +import com.mapswithme.maps.bookmarks.BookmarksPageFactory; import static com.mapswithme.util.Config.KEY_PREF_STATISTICS; @@ -97,7 +98,8 @@ public final class SharedPropertiesUtils public static int getLastVisibleBookmarkCategoriesPage(@NonNull Context context) { return MwmApplication.prefs(context) - .getInt(PREFS_BOOKMARK_CATEGORIES_LAST_VISIBLE_PAGE, 0); + .getInt(PREFS_BOOKMARK_CATEGORIES_LAST_VISIBLE_PAGE, + BookmarksPageFactory.PRIVATE.ordinal()); } public static void setLastVisibleBookmarkCategoriesPage(@NonNull Context context, int pageIndex)