Merge "Fix battery history details" into nyc-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 210ed5e..5f8ad59 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7385,4 +7385,7 @@
<!-- Title of screen controlling which apps have access to send premium SMS messages [CHAR LIMIT=60] -->
<string name="premium_sms_access">Premium SMS access</string>
+ <!-- [CHAR LIMIT=25] Bluetooth is disabled. -->
+ <string name="bluetooth_disabled">Disabled</string>
+
</resources>
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 7e8d2be..7415464 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -323,12 +323,6 @@
android:entries="@array/track_frame_time_entries"
android:entryValues="@array/track_frame_time_values" />
- <ListPreference
- android:key="enable_opengl_traces"
- android:title="@string/enable_opengl_traces_title"
- android:entries="@array/enable_opengl_traces_entries"
- android:entryValues="@array/enable_opengl_traces_values" />
-
</PreferenceCategory>
<PreferenceCategory android:key="debug_applications_category"
diff --git a/src/com/android/settings/CredentialStorage.java b/src/com/android/settings/CredentialStorage.java
index 03bf7b3..6cdf0b9 100644
--- a/src/com/android/settings/CredentialStorage.java
+++ b/src/com/android/settings/CredentialStorage.java
@@ -344,13 +344,12 @@
// Clear all the users credentials could have been installed in for this user.
final UserManager um = (UserManager) getSystemService(USER_SERVICE);
- for (UserInfo pi : um.getProfiles(UserHandle.getUserId(Process.myUid()))) {
+ for (int userId : um.getProfileIdsWithDisabled(UserHandle.myUserId())) {
for (int uid : SYSTEM_CREDENTIAL_UIDS) {
- mKeyStore.clearUid(UserHandle.getUid(pi.id, uid));
+ mKeyStore.clearUid(UserHandle.getUid(userId, uid));
}
}
-
try {
KeyChainConnection keyChainConnection = KeyChain.bind(CredentialStorage.this);
try {
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index c9d07f6..1551bcf 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -186,8 +186,6 @@
private static final String INACTIVE_APPS_KEY = "inactive_apps";
- private static final String OPENGL_TRACES_KEY = "enable_opengl_traces";
-
private static final String IMMEDIATELY_DESTROY_ACTIVITIES_KEY
= "immediately_destroy_activities";
private static final String APP_PROCESS_LIMIT_KEY = "app_process_limit";
@@ -278,7 +276,6 @@
private ListPreference mTransitionAnimationScale;
private ListPreference mAnimatorDurationScale;
private ListPreference mOverlayDisplayDevices;
- private ListPreference mOpenGLTraces;
private SwitchPreference mWebViewMultiprocess;
private ListPreference mWebViewProvider;
@@ -432,7 +429,6 @@
mTransitionAnimationScale = addListPreference(TRANSITION_ANIMATION_SCALE_KEY);
mAnimatorDurationScale = addListPreference(ANIMATOR_DURATION_SCALE_KEY);
mOverlayDisplayDevices = addListPreference(OVERLAY_DISPLAY_DEVICES_KEY);
- mOpenGLTraces = addListPreference(OPENGL_TRACES_KEY);
mSimulateColorSpace = addListPreference(SIMULATE_COLOR_SPACE);
mUSBAudio = findAndInitSwitchPref(USB_AUDIO_KEY);
mForceResizable = findAndInitSwitchPref(FORCE_RESIZABLE_KEY);
@@ -680,7 +676,6 @@
updateDebugLayoutOptions();
updateAnimationScaleOptions();
updateOverlayDisplayDevicesOptions();
- updateOpenGLTracesOptions();
updateImmediatelyDestroyActivitiesOptions();
updateAppProcessLimitOptions();
updateShowAllANRsOptions();
@@ -1640,30 +1635,6 @@
updateOverlayDisplayDevicesOptions();
}
- private void updateOpenGLTracesOptions() {
- String value = SystemProperties.get(OPENGL_TRACES_PROPERTY);
- if (value == null) {
- value = "";
- }
-
- CharSequence[] values = mOpenGLTraces.getEntryValues();
- for (int i = 0; i < values.length; i++) {
- if (value.contentEquals(values[i])) {
- mOpenGLTraces.setValueIndex(i);
- mOpenGLTraces.setSummary(mOpenGLTraces.getEntries()[i]);
- return;
- }
- }
- mOpenGLTraces.setValueIndex(0);
- mOpenGLTraces.setSummary(mOpenGLTraces.getEntries()[0]);
- }
-
- private void writeOpenGLTracesOptions(Object newValue) {
- SystemProperties.set(OPENGL_TRACES_PROPERTY, newValue == null ? "" : newValue.toString());
- pokeSystemProperties();
- updateOpenGLTracesOptions();
- }
-
private void updateAppProcessLimitOptions() {
try {
int limit = ActivityManagerNative.getDefault().getProcessLimit();
@@ -1995,9 +1966,6 @@
} else if (preference == mOverlayDisplayDevices) {
writeOverlayDisplayDevicesOptions(newValue);
return true;
- } else if (preference == mOpenGLTraces) {
- writeOpenGLTracesOptions(newValue);
- return true;
} else if (preference == mTrackFrameTime) {
writeTrackFrameTimeOptions(newValue);
return true;
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 84bb2dd..527194f 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -615,12 +615,10 @@
* @return the managed profile id or UserHandle.USER_NULL if there is none.
*/
public static int getManagedProfileId(UserManager um, int parentUserId) {
- List<UserInfo> profiles = um.getProfiles(parentUserId);
- int numProfiles = profiles.size();
- for (int i = 0; i < numProfiles; ++i) {
- UserInfo profile = profiles.get(i);
- if (profile.id != parentUserId) {
- return profile.id;
+ int[] profileIds = um.getProfileIdsWithDisabled(parentUserId);
+ for (int profileId : profileIds) {
+ if (profileId != parentUserId) {
+ return profileId;
}
}
return UserHandle.USER_NULL;
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index e565a61..cc46fba 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -518,7 +518,7 @@
}
private CharSequence getSummary() {
- return mContext.getString(!mEnabled ? R.string.disabled
+ return mContext.getString(!mEnabled ? R.string.bluetooth_disabled
: mConnected ? R.string.bluetooth_connected
: R.string.bluetooth_disconnected);
}
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index 277f59f..9774db9 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -478,6 +478,9 @@
continue;
}
final File path = info.getPath();
+ if (path == null) {
+ continue;
+ }
privateUsedBytes += path.getTotalSpace() - path.getFreeSpace();
privateTotalBytes += path.getTotalSpace();
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index 60b6dc5..79ce204 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -279,7 +279,6 @@
protected void refreshStats() {
super.refreshStats();
- PowerWhitelistBackend powerWhiteist = PowerWhitelistBackend.getInstance();
updatePreference(mHistPref);
cacheRemoveAllPrefs(mAppListGroup);
mAppListGroup.setOrderingAsAdded(false);
@@ -360,12 +359,6 @@
pref.setTitle(entry.getLabel());
pref.setOrder(i + 1);
pref.setPercent(percentOfMax, percentOfTotal);
- if (sipper.drainType == DrainType.APP) {
- pref.setSummary(powerWhiteist.isWhitelisted(entry.defaultPackageName)
- || powerWhiteist.isSysWhitelisted(entry.defaultPackageName)
- ? getString(R.string.not_battery_optimizing)
- : null);
- }
if (sipper.uidObj != null) {
pref.setKey(Integer.toString(sipper.uidObj.getUid()));
}
diff --git a/src/com/android/settings/widget/LabeledSeekBar.java b/src/com/android/settings/widget/LabeledSeekBar.java
index 00df09c..bf6983e 100644
--- a/src/com/android/settings/widget/LabeledSeekBar.java
+++ b/src/com/android/settings/widget/LabeledSeekBar.java
@@ -24,12 +24,10 @@
import android.support.v4.widget.ExploreByTouchHelper;
import android.util.AttributeSet;
import android.view.MotionEvent;
-import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SeekBar;
-import android.widget.SeekBar.OnSeekBarChangeListener;
import java.util.List;
@@ -40,9 +38,90 @@
*/
public class LabeledSeekBar extends SeekBar {
+ private final ExploreByTouchHelper mAccessHelper;
+
+ /** Seek bar change listener set via public method. */
+ private OnSeekBarChangeListener mOnSeekBarChangeListener;
+
+ /** Labels for discrete progress values. */
+ private String[] mLabels;
+
+ public LabeledSeekBar(Context context, AttributeSet attrs) {
+ this(context, attrs, com.android.internal.R.attr.seekBarStyle);
+ }
+
+ public LabeledSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
+ this(context, attrs, defStyleAttr, 0);
+ }
+
+ public LabeledSeekBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+
+ mAccessHelper = new LabeledSeekBarExploreByTouchHelper(this);
+ ViewCompat.setAccessibilityDelegate(this, mAccessHelper);
+
+ super.setOnSeekBarChangeListener(mProxySeekBarListener);
+ }
+
+ @Override
+ public synchronized void setProgress(int progress) {
+ // This method gets called from the constructor, so mAccessHelper may
+ // not have been assigned yet.
+ if (mAccessHelper != null) {
+ mAccessHelper.invalidateRoot();
+ }
+
+ super.setProgress(progress);
+ }
+
+ public void setLabels(String[] labels) {
+ mLabels = labels;
+ }
+
+ @Override
+ public void setOnSeekBarChangeListener(OnSeekBarChangeListener l) {
+ // The callback set in the constructor will proxy calls to this
+ // listener.
+ mOnSeekBarChangeListener = l;
+ }
+
+ @Override
+ protected boolean dispatchHoverEvent(MotionEvent event) {
+ return mAccessHelper.dispatchHoverEvent(event) || super.dispatchHoverEvent(event);
+ }
+
+ private void sendClickEventForAccessibility(int progress) {
+ mAccessHelper.invalidateRoot();
+ mAccessHelper.sendEventForVirtualView(progress, AccessibilityEvent.TYPE_VIEW_CLICKED);
+ }
+
+ private final OnSeekBarChangeListener mProxySeekBarListener = new OnSeekBarChangeListener() {
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ if (mOnSeekBarChangeListener != null) {
+ mOnSeekBarChangeListener.onStopTrackingTouch(seekBar);
+ }
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {
+ if (mOnSeekBarChangeListener != null) {
+ mOnSeekBarChangeListener.onStartTrackingTouch(seekBar);
+ }
+ }
+
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+ if (mOnSeekBarChangeListener != null) {
+ mOnSeekBarChangeListener.onProgressChanged(seekBar, progress, fromUser);
+ sendClickEventForAccessibility(progress);
+ }
+ }
+ };
+
private class LabeledSeekBarExploreByTouchHelper extends ExploreByTouchHelper {
- public LabeledSeekBarExploreByTouchHelper(View forView) {
+ public LabeledSeekBarExploreByTouchHelper(LabeledSeekBar forView) {
super(forView);
}
@@ -134,125 +213,4 @@
return r;
}
}
-
- private String[] mLabels;
-
- private ExploreByTouchHelper mAccessHelper;
-
- private boolean mOnMeasureCalled;
- private boolean mOnAttachedWindowCalled;
-
- public LabeledSeekBar(Context context, AttributeSet attrs) {
- this(context, attrs, com.android.internal.R.attr.seekBarStyle);
- }
-
- public LabeledSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
- this(context, attrs, defStyleAttr, 0);
- }
-
- public LabeledSeekBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- super.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- // Do nothing
- }
-
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- // Do nothing
- }
-
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- sendClickEventForAccessibility(progress);
- }
- });
- }
-
- @Override
- public synchronized void setProgress(int progress) {
- if (mAccessHelper != null) {
- mAccessHelper.invalidateRoot();
- }
-
- super.setProgress(progress);
- }
-
- public void setLabels(String[] labels) {
- mLabels = labels;
- }
-
- @Override
- public void setOnSeekBarChangeListener(final OnSeekBarChangeListener l) {
- // Tweak the listener to send accessibility event on progress changed.
- OnSeekBarChangeListener l2 = new OnSeekBarChangeListener() {
- @Override
- public void onStopTrackingTouch(SeekBar seekBar) {
- l.onStopTrackingTouch(seekBar);
- }
-
- @Override
- public void onStartTrackingTouch(SeekBar seekBar) {
- l.onStartTrackingTouch(seekBar);
- }
-
- @Override
- public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- l.onProgressChanged(seekBar, progress, fromUser);
- sendClickEventForAccessibility(progress);
- }
- };
-
- super.setOnSeekBarChangeListener(l2);
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- mOnMeasureCalled = true;
- tryInitAccessHelper();
- }
-
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- mOnAttachedWindowCalled = true;
- tryInitAccessHelper();
- }
-
- @Override
- protected void onDetachedFromWindow() {
- ViewCompat.setAccessibilityDelegate(this, null);
- mAccessHelper = null;
- super.onDetachedFromWindow();
- }
-
- @Override
- protected boolean dispatchHoverEvent(MotionEvent event) {
- if (mAccessHelper != null && mAccessHelper.dispatchHoverEvent(event)) {
- return true;
- }
-
- return super.dispatchHoverEvent(event);
- }
-
- /**
- * Initialize accessibility delegation only when both onAttachedWindow and onMeasure
- * has been called.
- */
- private void tryInitAccessHelper() {
- if (mOnAttachedWindowCalled && mOnMeasureCalled) {
- mAccessHelper = new LabeledSeekBarExploreByTouchHelper(this);
- ViewCompat.setAccessibilityDelegate(this, mAccessHelper);
- mOnAttachedWindowCalled = mOnMeasureCalled = false;
- }
- }
-
- private void sendClickEventForAccessibility(int progress) {
- if (mAccessHelper != null) {
- mAccessHelper.invalidateRoot();
- mAccessHelper.sendEventForVirtualView(progress, AccessibilityEvent.TYPE_VIEW_CLICKED);
- }
- }
}
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 17cc3b6..08e27ec 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -984,7 +984,7 @@
private CharSequence getSummary() {
if (!mWifiTracker.enabled) {
- return mContext.getString(R.string.disabled);
+ return mContext.getString(R.string.wifi_disabled_generic);
}
if (!mWifiTracker.connected) {
return mContext.getString(R.string.disconnected);