One updateSummary method called by all VPN prefs

Having multiple methods means inevitably when new features are added to
the preferences, the right calls aren't made so information on the
screen lags between updates.

Bug: 28257641
Change-Id: I336aeefd5941ccf808dc9070427209a7d2530032
(cherry picked from commit 903843e6f9)
This commit is contained in:
Robin Lee
2016-04-19 12:29:02 +01:00
parent 0e048a11c7
commit e06d757a0c
3 changed files with 20 additions and 33 deletions

View File

@@ -34,6 +34,7 @@ public abstract class ManageablePreference extends GearPreference {
public static int STATE_NONE = -1;
boolean mIsAlwaysOn = false;
int mState = STATE_NONE;
int mUserId;
public ManageablePreference(Context context, AttributeSet attrs) {
@@ -56,24 +57,35 @@ public abstract class ManageablePreference extends GearPreference {
return mIsAlwaysOn;
}
public int getState() {
return mState;
}
public void setState(int state) {
mState = state;
updateSummary();
}
public void setAlwaysOn(boolean isEnabled) {
mIsAlwaysOn = isEnabled;
updateSummary();
}
/**
* State is not shown for {@code STATE_NONE}
* Update the preference summary string (see {@see Preference#setSummary}) with a string
* reflecting connection status and always-on setting.
*
* @return summary string showing current connection state and always-on-vpn state
* State is not shown for {@code STATE_NONE}.
*/
protected String getSummaryString(int state) {
protected void updateSummary() {
final Resources res = getContext().getResources();
final String[] states = res.getStringArray(R.array.vpn_states);
String summary = state == STATE_NONE ? "" : states[state];
String summary = (mState == STATE_NONE ? "" : states[mState]);
if (mIsAlwaysOn) {
final String alwaysOnString = res.getString(R.string.vpn_always_on_active);
summary = TextUtils.isEmpty(summary) ? alwaysOnString : res.getString(
R.string.join_two_unrelated_items, summary, alwaysOnString);
}
return summary;
setSummary(summary);
}
}