diff --git a/app/src/main/java/com/fox2code/mmm/MainActivity.java b/app/src/main/java/com/fox2code/mmm/MainActivity.java index 3bc9e6b..90c21ad 100644 --- a/app/src/main/java/com/fox2code/mmm/MainActivity.java +++ b/app/src/main/java/com/fox2code/mmm/MainActivity.java @@ -3,6 +3,8 @@ package com.fox2code.mmm; import static com.fox2code.mmm.MainApplication.isOfficial; import android.Manifest; +import android.animation.Animator; +import android.animation.AnimatorListenerAdapter; import android.annotation.SuppressLint; import android.content.Intent; import android.content.SharedPreferences; @@ -16,7 +18,6 @@ import android.os.Build; import android.os.Bundle; import android.provider.Settings; import android.util.TypedValue; -import android.view.MenuItem; import android.view.View; import android.view.WindowManager; import android.view.inputmethod.EditorInfo; @@ -66,6 +67,7 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe public static boolean doSetupNowRunning = true; public static boolean doSetupRestarting = false; public final ModuleViewListBuilder moduleViewListBuilder; + public final ModuleViewListBuilder moduleViewListBuilderOnline; public LinearProgressIndicator progressIndicator; private ModuleViewAdapter moduleViewAdapter; private ModuleViewAdapter moduleViewAdapterOnline; @@ -87,6 +89,7 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe public MainActivity() { this.moduleViewListBuilder = new ModuleViewListBuilder(this); + this.moduleViewListBuilderOnline = new ModuleViewListBuilder(this); this.moduleViewListBuilder.addNotification(NotificationType.INSTALL_FROM_STORAGE); } @@ -193,19 +196,31 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe // set the bottom padding of the main layout to the height of the bottom nav findViewById(R.id.root_container).setPadding(0, 0, 0, bottomNavigationView.getHeight()); bottomNavigationView.setSelectedItemId(R.id.installed_menu_item); - MenuItem installedMenuItem = bottomNavigationView.getMenu().findItem(R.id.installed_menu_item); - installedMenuItem.setChecked(true); bottomNavigationView.setOnItemSelectedListener(item -> { if (item.getItemId() == R.id.settings_menu_item) { startActivity(new Intent(MainActivity.this, SettingsActivity.class)); } else if (item.getItemId() == R.id.online_menu_item) { - // set module_list_online as visible and module_list as gone - this.moduleList.setVisibility(View.GONE); + // set module_list_online as visible and module_list as gone. fade in/out + this.moduleListOnline.setAlpha(0F); this.moduleListOnline.setVisibility(View.VISIBLE); + this.moduleListOnline.animate().alpha(1F).setDuration(300).setListener(null); + this.moduleList.animate().alpha(0F).setDuration(300).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + MainActivity.this.moduleList.setVisibility(View.GONE); + } + }); } else if (item.getItemId() == R.id.installed_menu_item) { - // set module_list_online as gone and module_list as visible + // set module_list_online as gone and module_list as visible. fade in/out + this.moduleList.setAlpha(0F); this.moduleList.setVisibility(View.VISIBLE); - this.moduleListOnline.setVisibility(View.GONE); + this.moduleList.animate().alpha(1F).setDuration(300).setListener(null); + this.moduleListOnline.animate().alpha(0F).setDuration(300).setListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator animation) { + MainActivity.this.moduleListOnline.setVisibility(View.GONE); + } + }); } return true; }); @@ -322,9 +337,9 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe }); if (BuildConfig.DEBUG) Timber.i("Apply"); - RepoManager.getINSTANCE().runAfterUpdate(moduleViewListBuilder::appendRemoteModules); + RepoManager.getINSTANCE().runAfterUpdate(moduleViewListBuilderOnline::appendRemoteModules); - moduleViewListBuilder.applyTo(moduleListOnline, moduleViewAdapterOnline); + moduleViewListBuilderOnline.applyTo(moduleListOnline, moduleViewAdapterOnline); Timber.i("Finished app opening state!"); } }, true); @@ -455,9 +470,9 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe } if (BuildConfig.DEBUG) Timber.i("Apply"); - RepoManager.getINSTANCE().runAfterUpdate(moduleViewListBuilder::appendRemoteModules); + RepoManager.getINSTANCE().runAfterUpdate(moduleViewListBuilderOnline::appendRemoteModules); Timber.i("Common Before applyTo"); - moduleViewListBuilder.applyTo(moduleListOnline, moduleViewAdapterOnline); + moduleViewListBuilderOnline.applyTo(moduleListOnline, moduleViewAdapterOnline); Timber.i("Common After"); } }); @@ -526,11 +541,8 @@ public class MainActivity extends FoxActivity implements SwipeRefreshLayout.OnRe }); NotificationType.NEED_CAPTCHA_ANDROIDACY.autoAdd(moduleViewListBuilder); RepoManager.getINSTANCE().updateEnabledStates(); - RepoManager.getINSTANCE().runAfterUpdate(moduleViewListBuilder::appendRemoteModules); - this.moduleViewListBuilder.applyTo(moduleList, moduleViewAdapter); - /* - noodleDebug.unbind(); - */ + RepoManager.getINSTANCE().runAfterUpdate(moduleViewListBuilderOnline::appendRemoteModules); + this.moduleViewListBuilderOnline.applyTo(moduleList, moduleViewAdapter); }, "Repo update thread").start(); } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index ecf2544..ea69e84 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -25,13 +25,13 @@