Merge "One updateSummary method called by all VPN prefs"

This commit is contained in:
Robin Lee
2016-04-19 21:02:47 +00:00
committed by Android (Google) Code Review
3 changed files with 20 additions and 33 deletions

View File

@@ -32,9 +32,8 @@ import com.android.internal.net.VpnConfig;
*/
public class AppPreference extends ManageablePreference {
public static final int STATE_CONNECTED = LegacyVpnInfo.STATE_CONNECTED;
public static final int STATE_DISCONNECTED = LegacyVpnInfo.STATE_DISCONNECTED;
public static final int STATE_DISCONNECTED = STATE_NONE;
private int mState = STATE_DISCONNECTED;
private String mPackageName;
private String mName;
@@ -70,22 +69,11 @@ public class AppPreference extends ManageablePreference {
update();
}
public int getState() {
return mState;
}
public void setState(int state) {
mState = state;
update();
}
private void update() {
if (mPackageName == null || mUserId == UserHandle.USER_NULL) {
return;
}
setSummary(getSummaryString(mState == STATE_DISCONNECTED ? STATE_NONE : mState));
mName = mPackageName;
Drawable icon = null;
@@ -113,6 +101,7 @@ public class AppPreference extends ManageablePreference {
}
setTitle(mName);
setIcon(icon);
updateSummary();
notifyHierarchyChanged();
}

View File

@@ -31,9 +31,6 @@ import static com.android.internal.net.LegacyVpnInfo.STATE_CONNECTED;
public class LegacyVpnPreference extends ManageablePreference {
private VpnProfile mProfile;
/** One of the STATE_* fields from LegacyVpnInfo, or STATE_NONE */
private int mState = STATE_NONE;
LegacyVpnPreference(Context context) {
super(context, null /* attrs */);
}
@@ -44,16 +41,6 @@ public class LegacyVpnPreference extends ManageablePreference {
public void setProfile(VpnProfile profile) {
mProfile = profile;
update();
}
public void setState(int state) {
mState = state;
update();
}
private void update() {
setSummary(getSummaryString(mState));
if (mProfile != null) {
setIcon(R.mipmap.ic_launcher_settings);
setTitle(mProfile.name);
@@ -93,5 +80,4 @@ public class LegacyVpnPreference extends ManageablePreference {
}
super.onClick(v);
}
}
}

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);
}
}