From ac35db0d56c280745a1faef732bfa02299663ba3 Mon Sep 17 00:00:00 2001 From: "Mr. Dragon" Date: Fri, 26 Jul 2019 02:38:35 +0530 Subject: [PATCH] UI : Improve consistency https://gitlab.com/AuroraOSS/AuroraStore/issues/92 --- .../store/fragment/CategoriesFragment.java | 11 - .../store/fragment/CategoryAppsFragment.java | 13 +- .../aurora/store/fragment/HomeFragment.java | 7 - .../store/fragment/InstalledFragment.java | 32 +- .../aurora/store/fragment/TopFreeApps.java | 3 +- .../store/fragment/UpdatesFragment.java | 22 +- .../main/res/layout/fragment_categories.xml | 9 +- .../layout/fragment_category_container.xml | 15 +- .../main/res/layout/fragment_dev_applist.xml | 8 - app/src/main/res/layout/fragment_home.xml | 345 +++++++++--------- .../main/res/layout/fragment_installed.xml | 15 +- .../res/layout/fragment_search_applist.xml | 5 +- app/src/main/res/layout/fragment_updates.xml | 17 +- 13 files changed, 200 insertions(+), 302 deletions(-) diff --git a/app/src/main/java/com/aurora/store/fragment/CategoriesFragment.java b/app/src/main/java/com/aurora/store/fragment/CategoriesFragment.java index 9410ac2df..76cdaffca 100644 --- a/app/src/main/java/com/aurora/store/fragment/CategoriesFragment.java +++ b/app/src/main/java/com/aurora/store/fragment/CategoriesFragment.java @@ -35,7 +35,6 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.aurora.store.R; -import com.aurora.store.activity.AuroraActivity; import com.aurora.store.adapter.CategoriesListAdapter; import com.aurora.store.manager.CategoryManager; import com.aurora.store.task.CategoryList; @@ -66,8 +65,6 @@ public class CategoriesFragment extends Fragment { private CategoryManager categoryManager; private CompositeDisposable disposable = new CompositeDisposable(); private CategoriesListAdapter categoriesListAdapter; - private BottomNavigationView bottomNavigationView; - private ActionBar actionBar; private String categoryType = APPS; @Override @@ -101,10 +98,6 @@ public class CategoriesFragment extends Fragment { @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - if (getActivity() instanceof AuroraActivity) { - bottomNavigationView = ((AuroraActivity) getActivity()).getBottomNavigation(); - actionBar = ((AuroraActivity) getActivity()).getSupportActionBar(); - } } @Override @@ -117,10 +110,6 @@ public class CategoriesFragment extends Fragment { @Override public void onDestroy() { Glide.with(this).pauseAllRequests(); - if (actionBar != null) - actionBar.setTitle(getString(R.string.app_name)); - if (bottomNavigationView != null) - ViewUtil.showBottomNav(bottomNavigationView, true); super.onDestroy(); } diff --git a/app/src/main/java/com/aurora/store/fragment/CategoryAppsFragment.java b/app/src/main/java/com/aurora/store/fragment/CategoryAppsFragment.java index 0c435fd1a..10e9b8897 100644 --- a/app/src/main/java/com/aurora/store/fragment/CategoryAppsFragment.java +++ b/app/src/main/java/com/aurora/store/fragment/CategoryAppsFragment.java @@ -39,9 +39,9 @@ import com.aurora.store.adapter.SubCategoryAdapter; import com.aurora.store.sheet.FilterBottomSheet; import com.aurora.store.utility.Log; import com.aurora.store.utility.Util; -import com.aurora.store.utility.ViewUtil; import com.bumptech.glide.Glide; import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.tabs.TabLayout; @@ -57,13 +57,12 @@ public class CategoryAppsFragment extends Fragment { @BindView(R.id.category_tabs) TabLayout tabLayout; @BindView(R.id.filter_fab) - FloatingActionButton filterFab; + ExtendedFloatingActionButton filterFab; private Context context; - private BottomNavigationView bottomNavigationView; private ActionBar actionBar; - public FloatingActionButton getFilterFab() { + public ExtendedFloatingActionButton getFilterFab() { return filterFab; } @@ -99,10 +98,6 @@ public class CategoryAppsFragment extends Fragment { filterFab.setOnClickListener(v -> { getFilterDialog(); }); - if (getActivity() instanceof AuroraActivity) { - bottomNavigationView = ((AuroraActivity) getActivity()).getBottomNavigation(); - ViewUtil.hideBottomNav(bottomNavigationView, true); - } } @Override @@ -110,8 +105,6 @@ public class CategoryAppsFragment extends Fragment { Glide.with(this).pauseAllRequests(); if (actionBar != null) actionBar.setTitle(getString(R.string.app_name)); - if (bottomNavigationView != null) - ViewUtil.showBottomNav(bottomNavigationView, true); if (Util.filterSearchNonPersistent(context)) new Filter(context).resetFilterPreferences(); super.onDestroy(); diff --git a/app/src/main/java/com/aurora/store/fragment/HomeFragment.java b/app/src/main/java/com/aurora/store/fragment/HomeFragment.java index aa5dc9d71..eec951d4d 100644 --- a/app/src/main/java/com/aurora/store/fragment/HomeFragment.java +++ b/app/src/main/java/com/aurora/store/fragment/HomeFragment.java @@ -36,7 +36,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.aurora.store.ErrorType; import com.aurora.store.R; import com.aurora.store.SharedPreferencesTranslator; -import com.aurora.store.activity.AuroraActivity; import com.aurora.store.adapter.FeaturedAppsAdapter; import com.aurora.store.adapter.TopCategoriesAdapter; import com.aurora.store.manager.CategoryManager; @@ -46,7 +45,6 @@ import com.aurora.store.utility.ContextUtil; import com.aurora.store.utility.Log; import com.aurora.store.utility.Util; import com.dragons.aurora.playstoreapiv2.GooglePlayAPI; -import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.android.material.button.MaterialButton; import butterknife.BindView; @@ -80,7 +78,6 @@ public class HomeFragment extends BaseFragment { private FeaturedAppsAdapter topAppsAdapter; private FeaturedAppsAdapter topGamesAdapter; private FeaturedAppsAdapter topFamilyAdapter; - private BottomNavigationView bottomNavigationView; private CategoryManager categoryManager; private FeaturedAppsTask featuredAppsTask; private SharedPreferencesTranslator translator; @@ -119,10 +116,6 @@ public class HomeFragment extends BaseFragment { super.onViewCreated(view, savedInstanceState); setErrorView(ErrorType.UNKNOWN); init(); - if (getActivity() instanceof AuroraActivity) { - bottomNavigationView = ((AuroraActivity) getActivity()).getBottomNavigation(); - setBaseBottomNavigationView(bottomNavigationView); - } } @Override diff --git a/app/src/main/java/com/aurora/store/fragment/InstalledFragment.java b/app/src/main/java/com/aurora/store/fragment/InstalledFragment.java index 0b2e2f743..d4b6865bc 100644 --- a/app/src/main/java/com/aurora/store/fragment/InstalledFragment.java +++ b/app/src/main/java/com/aurora/store/fragment/InstalledFragment.java @@ -37,14 +37,11 @@ import com.aurora.store.Constants; import com.aurora.store.ErrorType; import com.aurora.store.ListType; import com.aurora.store.R; -import com.aurora.store.activity.AuroraActivity; import com.aurora.store.adapter.InstalledAppsAdapter; import com.aurora.store.task.InstalledAppsTask; import com.aurora.store.utility.Log; import com.aurora.store.utility.PrefUtil; -import com.aurora.store.utility.ViewUtil; import com.aurora.store.view.CustomSwipeToRefresh; -import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.android.material.switchmaterial.SwitchMaterial; import org.jetbrains.annotations.NotNull; @@ -58,14 +55,13 @@ import io.reactivex.schedulers.Schedulers; public class InstalledFragment extends BaseFragment { @BindView(R.id.swipe_layout) - CustomSwipeToRefresh mSwipeRefreshLayout; + CustomSwipeToRefresh customSwipeToRefresh; @BindView(R.id.recycler) RecyclerView recyclerView; @BindView(R.id.switch_system) SwitchMaterial switchSystem; private Context context; - private BottomNavigationView bottomNavigationView; private View view; private InstalledAppsAdapter adapter; private InstalledAppsTask installedAppTask; @@ -98,19 +94,14 @@ public class InstalledFragment extends BaseFragment { fetchData(); }); - mSwipeRefreshLayout.setOnRefreshListener(() -> fetchData()); - if (getActivity() instanceof AuroraActivity) { - bottomNavigationView = ((AuroraActivity) getActivity()).getBottomNavigation(); - setBaseBottomNavigationView(bottomNavigationView); - } - + customSwipeToRefresh.setOnRefreshListener(() -> fetchData()); setupRecycler(); } @Override public void onPause() { super.onPause(); - mSwipeRefreshLayout.setRefreshing(false); + customSwipeToRefresh.setRefreshing(false); } @Override @@ -134,8 +125,8 @@ public class InstalledFragment extends BaseFragment { .getInstalledApps(switchSystem.isChecked())) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .doOnSubscribe(subscription -> mSwipeRefreshLayout.setRefreshing(true)) - .doOnTerminate(() -> mSwipeRefreshLayout.setRefreshing(false)) + .doOnSubscribe(subscription -> customSwipeToRefresh.setRefreshing(true)) + .doOnTerminate(() -> customSwipeToRefresh.setRefreshing(false)) .subscribe((appList) -> { if (view != null) { if (appList.isEmpty()) { @@ -158,19 +149,6 @@ public class InstalledFragment extends BaseFragment { recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(context, RecyclerView.VERTICAL, false)); recyclerView.setLayoutAnimation(AnimationUtils.loadLayoutAnimation(context, R.anim.anim_falldown)); - recyclerView.setOnFlingListener(new RecyclerView.OnFlingListener() { - @Override - public boolean onFling(int velocityX, int velocityY) { - if (velocityY < 0) { - if (bottomNavigationView != null) - ViewUtil.showBottomNav(bottomNavigationView, true); - } else if (velocityY > 0) { - if (bottomNavigationView != null) - ViewUtil.hideBottomNav(bottomNavigationView, true); - } - return false; - } - }); } @Override diff --git a/app/src/main/java/com/aurora/store/fragment/TopFreeApps.java b/app/src/main/java/com/aurora/store/fragment/TopFreeApps.java index 05d90292d..d1e9ecbe5 100644 --- a/app/src/main/java/com/aurora/store/fragment/TopFreeApps.java +++ b/app/src/main/java/com/aurora/store/fragment/TopFreeApps.java @@ -45,6 +45,7 @@ import com.aurora.store.task.CategoryAppsTask; import com.aurora.store.utility.ContextUtil; import com.dragons.aurora.playstoreapiv2.GooglePlayAPI; import com.dragons.aurora.playstoreapiv2.IteratorGooglePlayException; +import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton; import com.google.android.material.floatingactionbutton.FloatingActionButton; import java.util.List; @@ -61,7 +62,7 @@ public class TopFreeApps extends BaseFragment { @BindView(R.id.endless_apps_list) RecyclerView recyclerView; private Context context; - private FloatingActionButton filterFab; + private ExtendedFloatingActionButton filterFab; private EndlessAppsAdapter endlessAppsAdapter; public CustomAppListIterator getIterator() { diff --git a/app/src/main/java/com/aurora/store/fragment/UpdatesFragment.java b/app/src/main/java/com/aurora/store/fragment/UpdatesFragment.java index 10a0f2d1e..9478584ca 100644 --- a/app/src/main/java/com/aurora/store/fragment/UpdatesFragment.java +++ b/app/src/main/java/com/aurora/store/fragment/UpdatesFragment.java @@ -37,7 +37,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.aurora.store.ErrorType; import com.aurora.store.R; -import com.aurora.store.activity.AuroraActivity; import com.aurora.store.adapter.UpdatableAppsAdapter; import com.aurora.store.download.DownloadManager; import com.aurora.store.exception.MalformedRequestException; @@ -50,7 +49,6 @@ import com.aurora.store.utility.ContextUtil; import com.aurora.store.utility.Log; import com.aurora.store.utility.ViewUtil; import com.aurora.store.view.CustomSwipeToRefresh; -import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.android.material.snackbar.Snackbar; import com.tonyodev.fetch2.Fetch; @@ -80,7 +78,6 @@ public class UpdatesFragment extends BaseFragment { TextView txtUpdateAll; private Context context; - private BottomNavigationView bottomNavigationView; private View view; private List updatableAppList = new ArrayList<>(); private UpdatableAppsAdapter adapter; @@ -110,10 +107,6 @@ public class UpdatesFragment extends BaseFragment { updatableAppTask = new UpdatableAppsTask(context); setErrorView(ErrorType.UNKNOWN); customSwipeToRefresh.setOnRefreshListener(() -> fetchData()); - if (getActivity() instanceof AuroraActivity) { - bottomNavigationView = ((AuroraActivity) getActivity()).getBottomNavigation(); - setBaseBottomNavigationView(bottomNavigationView); - } setupRecycler(); } @@ -168,19 +161,6 @@ public class UpdatesFragment extends BaseFragment { recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(context, RecyclerView.VERTICAL, false)); recyclerView.setLayoutAnimation(AnimationUtils.loadLayoutAnimation(context, R.anim.anim_falldown)); - recyclerView.setOnFlingListener(new RecyclerView.OnFlingListener() { - @Override - public boolean onFling(int velocityX, int velocityY) { - if (velocityY < 0) { - if (bottomNavigationView != null) - ViewUtil.showBottomNav(bottomNavigationView, true); - } else if (velocityY > 0) { - if (bottomNavigationView != null) - ViewUtil.hideBottomNav(bottomNavigationView, true); - } - return false; - } - }); } @Override @@ -245,7 +225,7 @@ public class UpdatesFragment extends BaseFragment { .doOnError(throwable -> { if (throwable instanceof MalformedRequestException) { ContextUtil.runOnUiThread(() -> btnUpdateAll.setOnClickListener(updateAllListener())); - notifyStatusBlacklist(coordinatorLayout, bottomNavigationView, throwable.getMessage()); + notifyStatusBlacklist(coordinatorLayout, null, throwable.getMessage()); } else Log.e(throwable.getMessage()); }) diff --git a/app/src/main/res/layout/fragment_categories.xml b/app/src/main/res/layout/fragment_categories.xml index fb40b536b..ec82ac081 100644 --- a/app/src/main/res/layout/fragment_categories.xml +++ b/app/src/main/res/layout/fragment_categories.xml @@ -31,22 +31,17 @@ android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_category_container.xml b/app/src/main/res/layout/fragment_category_container.xml index 8f39cd462..b0f8aab09 100644 --- a/app/src/main/res/layout/fragment_category_container.xml +++ b/app/src/main/res/layout/fragment_category_container.xml @@ -51,15 +51,18 @@ android:layout_height="match_parent" /> - + android:text="@string/action_filter" + android:textAppearance="@style/TextAppearance.Aurora.Button" + android:textColor="@color/colorWhite" + app:backgroundTint="@color/colorAccent" + app:icon="@drawable/ic_filter" + app:iconTint="@color/colorWhite" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_dev_applist.xml b/app/src/main/res/layout/fragment_dev_applist.xml index eb60db955..beb9687b1 100644 --- a/app/src/main/res/layout/fragment_dev_applist.xml +++ b/app/src/main/res/layout/fragment_dev_applist.xml @@ -54,18 +54,10 @@ android:layout_height="match_parent" android:orientation="vertical"> - - - + android:clipToPadding="false" + android:overScrollMode="never" + android:paddingTop="@dimen/margin_small" + android:paddingBottom="@dimen/bottom_nav_padding" + android:scrollbars="none"> - - - + android:orientation="vertical"> - + android:layout_height="wrap_content"> - + + + + + android:layout_height="wrap_content" + android:layout_below="@id/btn_all_categories" + android:clipToPadding="false" + android:orientation="horizontal" + android:paddingStart="@dimen/margin_small" + android:splitMotionEvents="false" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + tool:listitem="@layout/item_category_top" /> + - + - + - - + - + android:layout_height="wrap_content" + android:layout_below="@id/btn_top_apps" + android:clipToPadding="false" + android:orientation="horizontal" + android:paddingStart="@dimen/margin_small" + android:splitMotionEvents="false" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + tool:listitem="@layout/item_featured" /> + - + - + - - + - + android:layout_height="wrap_content" + android:layout_below="@id/btn_top_games" + android:clipToPadding="false" + android:orientation="horizontal" + android:paddingStart="@dimen/margin_small" + android:splitMotionEvents="false" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + tool:listitem="@layout/item_featured" /> + - + - + - - + - + android:layout_height="wrap_content" + android:layout_below="@id/btn_top_family" + android:clipToPadding="false" + android:orientation="horizontal" + android:paddingStart="@dimen/margin_small" + android:splitMotionEvents="false" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + tool:listitem="@layout/item_featured" /> + - - - - - - - - - - + + - - + android:layout_height="match_parent"> - diff --git a/app/src/main/res/layout/fragment_search_applist.xml b/app/src/main/res/layout/fragment_search_applist.xml index d460e8ba2..74575cd1c 100644 --- a/app/src/main/res/layout/fragment_search_applist.xml +++ b/app/src/main/res/layout/fragment_search_applist.xml @@ -100,12 +100,11 @@ android:layout_gravity="center_horizontal|bottom" android:layout_marginEnd="@dimen/margin_normal" android:layout_marginBottom="@dimen/margin_bottom" - android:text="Filter" + android:text="@string/action_filter" android:textAppearance="@style/TextAppearance.Aurora.Button" android:textColor="@color/colorWhite" android:visibility="gone" app:backgroundTint="@color/colorAccent" app:icon="@drawable/ic_filter" - app:iconTint="@color/colorWhite" - app:layout_anchorGravity="top|end" /> + app:iconTint="@color/colorWhite" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_updates.xml b/app/src/main/res/layout/fragment_updates.xml index 1309610d3..51462d910 100644 --- a/app/src/main/res/layout/fragment_updates.xml +++ b/app/src/main/res/layout/fragment_updates.xml @@ -68,30 +68,23 @@ android:layout_marginEnd="@dimen/margin_small" android:maxLines="1" android:text="@string/list_update_all" /> - - - + android:layout_height="match_parent"> - @@ -109,5 +101,4 @@ android:layout_height="match_parent" android:orientation="vertical" /> - \ No newline at end of file