Improved LinphoneActivity lifecycle

This commit is contained in:
Sylvain Berfini 2018-02-15 12:49:22 +01:00
parent 3dd96e828e
commit bd498252e6
3 changed files with 11 additions and 10 deletions

View file

@ -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 (getResources().getBoolean(R.bool.use_linphone_tag)) {
if (getPackageManager().checkPermission(Manifest.permission.WRITE_SYNC_SETTINGS, getPackageName()) != PackageManager.PERMISSION_GRANTED) { if (getPackageManager().checkPermission(Manifest.permission.WRITE_SYNC_SETTINGS, getPackageName()) != PackageManager.PERMISSION_GRANTED) {
checkSyncPermission(); checkSyncPermission();
@ -1165,6 +1161,10 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 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 (resultCode == Activity.RESULT_FIRST_USER && requestCode == SETTINGS_ACTIVITY) {
if (data.getExtras().getBoolean("Exit", false)) { if (data.getExtras().getBoolean("Exit", false)) {
quit(); quit();

View file

@ -262,6 +262,7 @@ private static AssistantActivity instance;
@Override @Override
public void onClick(View v) { public void onClick(View v) {
int id = v.getId(); int id = v.getId();
boolean firstLaunch = LinphonePreferences.instance().isFirstLaunch();
if (id == R.id.assistant_cancel) { if (id == R.id.assistant_cancel) {
hideKeyboard(); hideKeyboard();
@ -269,8 +270,7 @@ private static AssistantActivity instance;
if (getResources().getBoolean(R.bool.assistant_cancel_move_to_back)) { if (getResources().getBoolean(R.bool.assistant_cancel_move_to_back)) {
moveTaskToBack(true); moveTaskToBack(true);
} else { } else {
LinphonePreferences.instance().firstLaunchSuccessful(); if (firstLaunch) startActivity(new Intent().setClass(this, LinphoneActivity.class));
startActivity(new Intent().setClass(this, LinphoneActivity.class));
finish(); finish();
} }
} else if (id == R.id.back) { } else if (id == R.id.back) {
@ -281,16 +281,17 @@ private static AssistantActivity instance;
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if(isLink){ if (isLink) {
return; return;
} }
boolean firstLaunch = LinphonePreferences.instance().isFirstLaunch();
if (currentFragment == firstFragment) { if (currentFragment == firstFragment) {
LinphonePreferences.instance().firstLaunchSuccessful(); LinphonePreferences.instance().firstLaunchSuccessful();
if (getResources().getBoolean(R.bool.assistant_cancel_move_to_back)) { if (getResources().getBoolean(R.bool.assistant_cancel_move_to_back)) {
moveTaskToBack(true); moveTaskToBack(true);
} else { } else {
LinphonePreferences.instance().firstLaunchSuccessful(); LinphonePreferences.instance().firstLaunchSuccessful();
startActivity(new Intent().setClass(this, LinphoneActivity.class)); if (firstLaunch) startActivity(new Intent().setClass(this, LinphoneActivity.class));
finish(); finish();
} }
} else if (currentFragment == AssistantFragmentsEnum.LOGIN } else if (currentFragment == AssistantFragmentsEnum.LOGIN
@ -299,6 +300,7 @@ private static AssistantActivity instance;
|| currentFragment == AssistantFragmentsEnum.REMOTE_PROVISIONING) { || currentFragment == AssistantFragmentsEnum.REMOTE_PROVISIONING) {
displayMenu(); displayMenu();
} else if (currentFragment == AssistantFragmentsEnum.WELCOME) { } else if (currentFragment == AssistantFragmentsEnum.WELCOME) {
if (firstLaunch) startActivity(new Intent().setClass(this, LinphoneActivity.class));
finish(); finish();
} else if (currentFragment == AssistantFragmentsEnum.COUNTRY_CHOOSER){ } else if (currentFragment == AssistantFragmentsEnum.COUNTRY_CHOOSER){
if(lastFragment.equals(AssistantFragmentsEnum.LINPHONE_LOGIN)){ if(lastFragment.equals(AssistantFragmentsEnum.LINPHONE_LOGIN)){
@ -675,7 +677,7 @@ private static AssistantActivity instance;
private void goToLinphoneActivity() { private void goToLinphoneActivity() {
mPrefs.firstLaunchSuccessful(); mPrefs.firstLaunchSuccessful();
startActivity(new Intent().setClass(this, LinphoneActivity.class).putExtra("isNewProxyConfig", true)); setResult(Activity.RESULT_OK, new Intent().putExtra("isNewProxyConfig", true));
finish(); finish();
} }

View file

@ -296,7 +296,6 @@ public class CreateAccountFragment extends Fragment implements CompoundButton.On
} }
else if (id == R.id.assistant_skip){ else if (id == R.id.assistant_skip){
if (getArguments().getBoolean("LinkFromPref")) { if (getArguments().getBoolean("LinkFromPref")) {
startActivity(new Intent().setClass(AssistantActivity.instance(), LinphoneActivity.class));
AssistantActivity.instance().finish(); AssistantActivity.instance().finish();
} else { } else {
AssistantActivity.instance().success(); AssistantActivity.instance().success();