From bd498252e696e16c4b700e9483435720e10e38dd Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 15 Feb 2018 12:49:22 +0100 Subject: [PATCH] Improved LinphoneActivity lifecycle --- .../org/linphone/activities/LinphoneActivity.java | 8 ++++---- .../org/linphone/assistant/AssistantActivity.java | 12 +++++++----- .../linphone/assistant/CreateAccountFragment.java | 1 - 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/android/org/linphone/activities/LinphoneActivity.java b/src/android/org/linphone/activities/LinphoneActivity.java index 5e2727624..23444835a 100644 --- a/src/android/org/linphone/activities/LinphoneActivity.java +++ b/src/android/org/linphone/activities/LinphoneActivity.java @@ -203,10 +203,6 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick } } - if (getIntent() != null && getIntent().getExtras() != null) { - newProxyConfig = getIntent().getExtras().getBoolean("isNewProxyConfig"); - } - if (getResources().getBoolean(R.bool.use_linphone_tag)) { if (getPackageManager().checkPermission(Manifest.permission.WRITE_SYNC_SETTINGS, getPackageName()) != PackageManager.PERMISSION_GRANTED) { checkSyncPermission(); @@ -1165,6 +1161,10 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (getIntent() != null && getIntent().getExtras() != null) { + newProxyConfig = getIntent().getExtras().getBoolean("isNewProxyConfig"); + } + if (resultCode == Activity.RESULT_FIRST_USER && requestCode == SETTINGS_ACTIVITY) { if (data.getExtras().getBoolean("Exit", false)) { quit(); diff --git a/src/android/org/linphone/assistant/AssistantActivity.java b/src/android/org/linphone/assistant/AssistantActivity.java index fe91301f8..409c7f3d6 100644 --- a/src/android/org/linphone/assistant/AssistantActivity.java +++ b/src/android/org/linphone/assistant/AssistantActivity.java @@ -262,6 +262,7 @@ private static AssistantActivity instance; @Override public void onClick(View v) { int id = v.getId(); + boolean firstLaunch = LinphonePreferences.instance().isFirstLaunch(); if (id == R.id.assistant_cancel) { hideKeyboard(); @@ -269,8 +270,7 @@ private static AssistantActivity instance; if (getResources().getBoolean(R.bool.assistant_cancel_move_to_back)) { moveTaskToBack(true); } else { - LinphonePreferences.instance().firstLaunchSuccessful(); - startActivity(new Intent().setClass(this, LinphoneActivity.class)); + if (firstLaunch) startActivity(new Intent().setClass(this, LinphoneActivity.class)); finish(); } } else if (id == R.id.back) { @@ -281,16 +281,17 @@ private static AssistantActivity instance; @Override public void onBackPressed() { - if(isLink){ + if (isLink) { return; } + boolean firstLaunch = LinphonePreferences.instance().isFirstLaunch(); if (currentFragment == firstFragment) { LinphonePreferences.instance().firstLaunchSuccessful(); if (getResources().getBoolean(R.bool.assistant_cancel_move_to_back)) { moveTaskToBack(true); } else { LinphonePreferences.instance().firstLaunchSuccessful(); - startActivity(new Intent().setClass(this, LinphoneActivity.class)); + if (firstLaunch) startActivity(new Intent().setClass(this, LinphoneActivity.class)); finish(); } } else if (currentFragment == AssistantFragmentsEnum.LOGIN @@ -299,6 +300,7 @@ private static AssistantActivity instance; || currentFragment == AssistantFragmentsEnum.REMOTE_PROVISIONING) { displayMenu(); } else if (currentFragment == AssistantFragmentsEnum.WELCOME) { + if (firstLaunch) startActivity(new Intent().setClass(this, LinphoneActivity.class)); finish(); } else if (currentFragment == AssistantFragmentsEnum.COUNTRY_CHOOSER){ if(lastFragment.equals(AssistantFragmentsEnum.LINPHONE_LOGIN)){ @@ -675,7 +677,7 @@ private static AssistantActivity instance; private void goToLinphoneActivity() { mPrefs.firstLaunchSuccessful(); - startActivity(new Intent().setClass(this, LinphoneActivity.class).putExtra("isNewProxyConfig", true)); + setResult(Activity.RESULT_OK, new Intent().putExtra("isNewProxyConfig", true)); finish(); } diff --git a/src/android/org/linphone/assistant/CreateAccountFragment.java b/src/android/org/linphone/assistant/CreateAccountFragment.java index 71d10bdf5..4f4ad8254 100644 --- a/src/android/org/linphone/assistant/CreateAccountFragment.java +++ b/src/android/org/linphone/assistant/CreateAccountFragment.java @@ -296,7 +296,6 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On } else if (id == R.id.assistant_skip){ if (getArguments().getBoolean("LinkFromPref")) { - startActivity(new Intent().setClass(AssistantActivity.instance(), LinphoneActivity.class)); AssistantActivity.instance().finish(); } else { AssistantActivity.instance().success();