From 2817fcae452bbda40086452531b1db574f2b61a9 Mon Sep 17 00:00:00 2001 From: dkanada Date: Fri, 23 Oct 2020 05:41:55 +0900 Subject: [PATCH] improve activity transitions --- .../gramophone/ui/activities/LoginActivity.java | 9 +++++++-- .../gramophone/ui/activities/MainActivity.java | 13 +++++++++++++ .../gramophone/ui/activities/SplashActivity.java | 7 +++++++ app/src/main/res/anim/fade_delay.xml | 9 +++++++++ app/src/main/res/anim/fade_quick.xml | 8 ++++++++ app/src/main/res/anim/fade_slow.xml | 9 +++++++++ 6 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/anim/fade_delay.xml create mode 100644 app/src/main/res/anim/fade_quick.xml create mode 100644 app/src/main/res/anim/fade_slow.xml diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/LoginActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/LoginActivity.java index 69fcb054..923285e1 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/LoginActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/LoginActivity.java @@ -39,6 +39,12 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen setUpViews(); } + @Override + public void onPause() { + super.onPause(); + overridePendingTransition(0, R.anim.fade_quick); + } + private void setUpViews() { setUpToolbar(); setUpOnClickListeners(); @@ -104,10 +110,9 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen PreferenceUtil.getInstance(LoginActivity.this).setUser(user); PreferenceUtil.getInstance(LoginActivity.this).setToken(token); - Intent intent = new Intent(LoginActivity.this, MainActivity.class); + Intent intent = new Intent(LoginActivity.this, SplashActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent); - finish(); } else { Toast.makeText(LoginActivity.this, getResources().getString(R.string.error_version), Toast.LENGTH_SHORT).show(); } diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/MainActivity.java index 0876a53d..646cfa67 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/MainActivity.java @@ -39,6 +39,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { private ActivityMainDrawerLayoutBinding binding; private ActivityMainContentBinding contentBinding; private NavigationDrawerHeaderBinding navigationBinding; + private boolean onLogout; @Nullable MainActivityFragmentCallbacks currentFragment; @@ -88,6 +89,17 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { }); } + @Override + public void onPause() { + super.onPause(); + + // only override when logout selected + if (onLogout) { + overridePendingTransition(0, R.anim.fade_slow); + onLogout = false; + } + } + private void setCurrentFragment(Fragment fragment) { getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment, null).commit(); currentFragment = (MainActivityFragmentCallbacks) fragment; @@ -123,6 +135,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { new Handler().postDelayed(() -> startActivity(new Intent(MainActivity.this, AboutActivity.class)), 200); break; case R.id.nav_logout: + onLogout = true; ConfirmLogoutDialog.create().show(getSupportFragmentManager(), "CONFIRM_LOGOUT_DIALOG"); break; } diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/SplashActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/SplashActivity.java index ea19a38b..bbb545a6 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/SplashActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/SplashActivity.java @@ -24,6 +24,7 @@ public class SplashActivity extends AbsBaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + setContentView(R.layout.activity_splash); setDrawUnderStatusbar(); @@ -32,6 +33,12 @@ public class SplashActivity extends AbsBaseActivity { setTaskDescriptionColorAuto(); } + @Override + public void onPause() { + super.onPause(); + overridePendingTransition(0, R.anim.fade_delay); + } + @Override protected void onResume() { super.onResume(); diff --git a/app/src/main/res/anim/fade_delay.xml b/app/src/main/res/anim/fade_delay.xml new file mode 100644 index 00000000..77264243 --- /dev/null +++ b/app/src/main/res/anim/fade_delay.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/anim/fade_quick.xml b/app/src/main/res/anim/fade_quick.xml new file mode 100644 index 00000000..eb15ecfa --- /dev/null +++ b/app/src/main/res/anim/fade_quick.xml @@ -0,0 +1,8 @@ + + + + diff --git a/app/src/main/res/anim/fade_slow.xml b/app/src/main/res/anim/fade_slow.xml new file mode 100644 index 00000000..2dd1e40a --- /dev/null +++ b/app/src/main/res/anim/fade_slow.xml @@ -0,0 +1,9 @@ + + + +