From 521d8ef3889c29a632a4c52c18abdd8eca4be546 Mon Sep 17 00:00:00 2001 From: dkanada Date: Thu, 30 Apr 2020 13:26:01 +0900 Subject: [PATCH] start main activity as new task to reset activity history --- .../gramophone/ui/activities/LoginActivity.java | 5 ++++- .../gramophone/ui/activities/MainActivity.java | 3 +++ .../gramophone/ui/activities/SplashActivity.java | 15 ++++++++++++--- settings.gradle | 8 ++++---- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/LoginActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/LoginActivity.java index d67d33ca..3f49b2c5 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/LoginActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/LoginActivity.java @@ -106,7 +106,10 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen if (result.getAccessToken() == null) return; serverCredentials.GetServer(result.getServerId()).setAccessToken(result.getAccessToken()); credentialProvider.SaveCredentials(serverCredentials); - context.startActivity(new Intent(context, MainActivity.class)); + + Intent intent = new Intent(context, MainActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(intent); } }); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index c6c4cd41..3f5acd39 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -200,8 +200,10 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { } else { drawerLayout.openDrawer(navigationView); } + return true; } + return super.onOptionsItemSelected(item); } @@ -211,6 +213,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity { drawerLayout.closeDrawers(); return true; } + return super.handleBackPress() || (currentFragment != null && currentFragment.handleBackPress()); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SplashActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SplashActivity.java index 6207ccc1..352e6932 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SplashActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SplashActivity.java @@ -15,6 +15,7 @@ import org.jellyfin.apiclient.interaction.VolleyHttpClient; import org.jellyfin.apiclient.interaction.connectionmanager.ConnectionManager; import org.jellyfin.apiclient.interaction.http.IAsyncHttpClient; import org.jellyfin.apiclient.logging.AndroidLogger; +import org.jellyfin.apiclient.model.apiclient.ConnectionState; import org.jellyfin.apiclient.model.logging.ILogger; import org.jellyfin.apiclient.model.serialization.GsonJsonSerializer; import org.jellyfin.apiclient.model.serialization.IJsonSerializer; @@ -49,9 +50,17 @@ public class SplashActivity extends AbsBaseActivity { connectionManager.Connect(credentialProvider.GetCredentials().getServers().get(0), new Response() { @Override public void onResponse(ConnectionResult result) { - //if (result.getState() != ConnectionState.SignedIn) return; - App.setApiClient(result.getApiClient()); - context.startActivity(new Intent(context, MainActivity.class)); + if (result.getState() != ConnectionState.SignedIn) { + Intent intent = new Intent(context, LoginActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(intent); + } else { + App.setApiClient(result.getApiClient()); + + Intent intent = new Intent(context, MainActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + context.startActivity(intent); + } } }); } diff --git a/settings.gradle b/settings.gradle index 7f71ecbe..0f7f4c2c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,7 +1,7 @@ include ':app' -include ':apiclient' -project(':apiclient').projectDir = new File(settingsDir, '../jellyfin-apiclient-java/android') +// include ':apiclient' +// project(':apiclient').projectDir = new File(settingsDir, '../jellyfin-apiclient-java/android') -include ':library' -project(':library').projectDir = new File(settingsDir, '../jellyfin-apiclient-java/library') \ No newline at end of file +// include ':library' +// project(':library').projectDir = new File(settingsDir, '../jellyfin-apiclient-java/library') \ No newline at end of file