mirror of
https://github.com/moparisthebest/k-9
synced 2024-12-17 21:32:26 -05:00
Save/Restore activity state
This assures that changes made to the port setting and to the chosen client certificate are saved and restored.
This commit is contained in:
parent
2e981e0c7d
commit
acab554ee5
@ -2,12 +2,16 @@
|
||||
<merge xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<Button
|
||||
android:id="@+id/client_certificate_spinner_button"
|
||||
style="?android:attr/spinnerStyle"
|
||||
android:layout_width="0dip"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
android:layout_weight="1"
|
||||
android:text="@string/client_certificate_spinner_empty"
|
||||
android:freezesText="true" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/client_certificate_spinner_delete"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?android:attr/selectableItemBackground"
|
||||
|
@ -278,19 +278,21 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
|
||||
mSubscribedFoldersOnly.setChecked(mAccount.subscribedFoldersOnly());
|
||||
|
||||
initializeViewListeners();
|
||||
|
||||
validateFields();
|
||||
if (savedInstanceState == null) {
|
||||
initializeViewListeners();
|
||||
validateFields();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
failure(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Called at the end of {@code onCreate()}, after the views have been
|
||||
* initialized, so that the listeners are not triggered during the view
|
||||
* initialization. This avoids needless calls to {@code validateFields()}
|
||||
* which is called at the end of {@code onCreate()}.
|
||||
* Called at the end of either {@code onCreate()} or
|
||||
* {@code onRestoreInstanceState()}, after the views have been initialized,
|
||||
* so that the listeners are not triggered during the view initialization.
|
||||
* This avoids needless calls to {@code validateFields()} which is called
|
||||
* immediately after this is called.
|
||||
*/
|
||||
private void initializeViewListeners() {
|
||||
|
||||
@ -341,6 +343,19 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener
|
||||
outState.putString(EXTRA_ACCOUNT, mAccount.getUuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
|
||||
/*
|
||||
* We didn't want the listeners active while the state was being restored
|
||||
* because they could overwrite the restored port with a default port when
|
||||
* the security type was restored.
|
||||
*/
|
||||
initializeViewListeners();
|
||||
validateFields();
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows/hides password field and client certificate spinner
|
||||
*/
|
||||
|
@ -174,9 +174,10 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
}
|
||||
mCurrentPortViewSetting = mPortView.getText().toString();
|
||||
|
||||
initializeViewListeners();
|
||||
|
||||
validateFields();
|
||||
if (savedInstanceState == null) {
|
||||
initializeViewListeners();
|
||||
validateFields();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
/*
|
||||
* We should always be able to parse our own settings.
|
||||
@ -187,10 +188,11 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
}
|
||||
|
||||
/**
|
||||
* Called at the end of {@code onCreate()}, after the views have been
|
||||
* initialized, so that the listeners are not triggered during the view
|
||||
* initialization. This avoids needless calls to {@code validateFields()}
|
||||
* which is called at the end of {@code onCreate()}.
|
||||
* Called at the end of either {@code onCreate()} or
|
||||
* {@code onRestoreInstanceState()}, after the views have been initialized,
|
||||
* so that the listeners are not triggered during the view initialization.
|
||||
* This avoids needless calls to {@code validateFields()} which is called
|
||||
* immediately after this is called.
|
||||
*/
|
||||
private void initializeViewListeners() {
|
||||
|
||||
@ -242,6 +244,19 @@ public class AccountSetupOutgoing extends K9Activity implements OnClickListener,
|
||||
outState.putString(EXTRA_ACCOUNT, mAccount.getUuid());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||
super.onRestoreInstanceState(savedInstanceState);
|
||||
|
||||
/*
|
||||
* We didn't want the listeners active while the state was being restored
|
||||
* because they could overwrite the restored port with a default port when
|
||||
* the security type was restored.
|
||||
*/
|
||||
initializeViewListeners();
|
||||
validateFields();
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows/hides password field and client certificate spinner
|
||||
*/
|
||||
|
@ -47,8 +47,7 @@ public class ClientCertificateSpinner extends LinearLayout {
|
||||
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
inflater.inflate(R.layout.client_certificate_spinner, this, true);
|
||||
|
||||
mSelection = (Button) getChildAt(0);
|
||||
updateView();
|
||||
mSelection = (Button) findViewById(R.id.client_certificate_spinner_button);
|
||||
mSelection.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -56,7 +55,7 @@ public class ClientCertificateSpinner extends LinearLayout {
|
||||
}
|
||||
});
|
||||
|
||||
mDeleteButton = (ImageButton) getChildAt(1);
|
||||
mDeleteButton = (ImageButton) findViewById(R.id.client_certificate_spinner_delete);
|
||||
mDeleteButton.setOnClickListener(new OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -65,10 +64,6 @@ public class ClientCertificateSpinner extends LinearLayout {
|
||||
});
|
||||
}
|
||||
|
||||
public ClientCertificateSpinner(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public void setAlias(String alias) {
|
||||
// Note: KeyChainAliasCallback gives back "" on cancel
|
||||
if (alias != null && alias.equals("")) {
|
||||
@ -80,16 +75,21 @@ public class ClientCertificateSpinner extends LinearLayout {
|
||||
mActivity.runOnUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
updateView();
|
||||
if (mListener != null) {
|
||||
mListener.onClientCertificateChanged(mAlias);
|
||||
}
|
||||
updateView();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public String getAlias() {
|
||||
return mAlias;
|
||||
String alias = mSelection.getText().toString();
|
||||
if (alias.equals(mActivity.getString(R.string.client_certificate_spinner_empty))) {
|
||||
return null;
|
||||
} else {
|
||||
return alias;
|
||||
}
|
||||
}
|
||||
|
||||
private void onDelete() {
|
||||
|
Loading…
Reference in New Issue
Block a user