Merge "Warn users when selecting non-Direct Boot apps." into nyc-mr1-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 021e502..0e516f0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2139,7 +2139,11 @@
<!-- Night display screen, setting option name to enable night display (renamed "Night Light" with title caps). [CHAR LIMIT=30] -->
<string name="night_display_title">Night Light</string>
<!-- Night display screen, description of night display feature (renamed "Night Light" with title caps). [CHAR LIMIT=NONE] -->
- <string name="night_display_text">Night Light tints your screen red at night. This makes it easier to look at your screen or read in dim light, and may help you fall asleep more easily.</string>
+ <string name="night_display_text">Night Light tints your screen red. This makes it easier to look at your screen or read in dim light, and may help you fall asleep more easily.</string>
+ <!-- Night display screen, category title for settings to schedule when night display activates automatically. [CHAR LIMIT=30] -->
+ <string name="night_display_category_schedule">Schedule</string>
+ <!-- Night display screen, category title for settings to manually activate night display. [CHAR LIMIT=30] -->
+ <string name="night_display_category_status">Status</string>
<!-- Night display screen, setting option name to configure whether night display turn on/off automatically. [CHAR LIMIT=30] -->
<string name="night_display_auto_mode_title">Turn on automatically</string>
<!-- Night display screen, setting option value for night display to *never* turn on/off automatically. [CHAR LIMIT=30] -->
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index a89d687..6f55982 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -36,6 +36,7 @@
android:key="night_display"
android:title="@string/night_display_title"
android:fragment="com.android.settings.display.NightDisplaySettings"
+ android:widgetLayout="@null"
settings:keywords="@string/keywords_display_night_display" />
<!-- Hide night mode for now
diff --git a/res/xml/night_display_settings.xml b/res/xml/night_display_settings.xml
index 531f606..76b9323 100644
--- a/res/xml/night_display_settings.xml
+++ b/res/xml/night_display_settings.xml
@@ -19,19 +19,32 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/night_display_title">
- <DropDownPreference
- android:key="night_display_auto_mode"
- android:title="@string/night_display_auto_mode_title"
- android:persistent="false"
- android:summary="%s" />
+ <PreferenceCategory
+ android:title="@string/night_display_category_schedule">
- <Preference
- android:key="night_display_start_time"
- android:title="@string/night_display_start_time_title" />
+ <DropDownPreference
+ android:key="night_display_auto_mode"
+ android:title="@string/night_display_auto_mode_title"
+ android:summary="%s" />
- <Preference
- android:key="night_display_end_time"
- android:title="@string/night_display_end_time_title" />
+ <Preference
+ android:key="night_display_start_time"
+ android:title="@string/night_display_start_time_title" />
+
+ <Preference
+ android:key="night_display_end_time"
+ android:title="@string/night_display_end_time_title" />
+
+ </PreferenceCategory>
+
+ <PreferenceCategory
+ android:title="@string/night_display_category_status">
+
+ <com.android.settings.display.NightDisplayPreference
+ android:key="night_display_activated"
+ android:title="@string/night_display_title" />
+
+ </PreferenceCategory>
<com.android.settings.fuelgauge.WallOfTextPreference
android:summary="@string/night_display_text"
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index 0143fa8..45fdc1d 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -38,6 +38,7 @@
import android.support.v7.preference.PreferenceCategory;
import android.text.format.Formatter;
import android.util.ArraySet;
+import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import com.android.internal.logging.MetricsProto.MetricsEvent;
@@ -50,11 +51,19 @@
import com.android.settingslib.net.ChartDataLoader;
import com.android.settingslib.net.UidDetailProvider;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.RejectedExecutionException;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
public class AppDataUsage extends DataUsageBase implements Preference.OnPreferenceChangeListener,
DataSaverBackend.Listener {
+ private static final String TAG = "AppDataUsage";
+
public static final String ARG_APP_ITEM = "app_item";
public static final String ARG_NETWORK_TEMPLATE = "network_template";
@@ -94,6 +103,12 @@
private SwitchPreference mUnrestrictedData;
private DataSaverBackend mDataSaverBackend;
+ // Parameters to construct an efficient ThreadPoolExecutor
+ private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
+ private static final int CORE_POOL_SIZE = Math.max(2, Math.min(CPU_COUNT - 1, 4));
+ private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
+ private static final int KEEP_ALIVE_SECONDS = 30;
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -180,9 +195,13 @@
if (mPackages.size() > 1) {
mAppList = (PreferenceCategory) findPreference(KEY_APP_LIST);
- for (int i = 1 ; i < mPackages.size(); i++) {
- new AppPrefLoader().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,
- mPackages.valueAt(i));
+ final int packageSize = mPackages.size();
+ final BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>(packageSize);
+ final ThreadPoolExecutor executor = new ThreadPoolExecutor(CORE_POOL_SIZE,
+ MAXIMUM_POOL_SIZE, KEEP_ALIVE_SECONDS, TimeUnit.SECONDS, workQueue);
+ for (int i = 1; i < mPackages.size(); i++) {
+ final AppPrefLoader loader = new AppPrefLoader();
+ loader.executeOnExecutor(executor, mPackages.valueAt(i));
}
} else {
removePreference(KEY_APP_LIST);
diff --git a/src/com/android/settings/display/NightDisplayPreference.java b/src/com/android/settings/display/NightDisplayPreference.java
index 73ecf49..38b57a2 100644
--- a/src/com/android/settings/display/NightDisplayPreference.java
+++ b/src/com/android/settings/display/NightDisplayPreference.java
@@ -15,7 +15,7 @@
package com.android.settings.display;
import android.content.Context;
-import android.support.v7.preference.Preference;
+import android.support.v14.preference.SwitchPreference;
import android.util.AttributeSet;
import com.android.internal.app.NightDisplayController;
@@ -25,7 +25,8 @@
import java.util.Calendar;
import java.util.TimeZone;
-public class NightDisplayPreference extends Preference implements NightDisplayController.Callback {
+public class NightDisplayPreference extends SwitchPreference
+ implements NightDisplayController.Callback {
private NightDisplayController mController;
private DateFormat mTimeFormatter;
diff --git a/src/com/android/settings/display/NightDisplaySettings.java b/src/com/android/settings/display/NightDisplaySettings.java
index 5048272..7eb1217 100644
--- a/src/com/android/settings/display/NightDisplaySettings.java
+++ b/src/com/android/settings/display/NightDisplaySettings.java
@@ -22,15 +22,13 @@
import android.os.Bundle;
import android.support.v7.preference.DropDownPreference;
import android.support.v7.preference.Preference;
-import android.widget.Switch;
+import android.support.v7.preference.TwoStatePreference;
import android.widget.TimePicker;
import com.android.internal.app.NightDisplayController;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
-import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.widget.SwitchBar;
import java.text.DateFormat;
import java.util.Calendar;
@@ -39,14 +37,13 @@
/**
* Settings screen for Night display.
*/
-public class NightDisplaySettings extends SettingsPreferenceFragment implements
- NightDisplayController.Callback,
- Preference.OnPreferenceChangeListener,
- SwitchBar.OnSwitchChangeListener {
+public class NightDisplaySettings extends SettingsPreferenceFragment
+ implements NightDisplayController.Callback, Preference.OnPreferenceChangeListener {
private static final String KEY_NIGHT_DISPLAY_AUTO_MODE = "night_display_auto_mode";
private static final String KEY_NIGHT_DISPLAY_START_TIME = "night_display_start_time";
private static final String KEY_NIGHT_DISPLAY_END_TIME = "night_display_end_time";
+ private static final String KEY_NIGHT_DISPLAY_ACTIVATED = "night_display_activated";
private static final int DIALOG_START_TIME = 0;
private static final int DIALOG_END_TIME = 1;
@@ -57,8 +54,7 @@
private DropDownPreference mAutoModePreference;
private Preference mStartTimePreference;
private Preference mEndTimePreference;
-
- private SwitchBar mSwitchBar;
+ private TwoStatePreference mActivatedPreference;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -81,6 +77,7 @@
mAutoModePreference = (DropDownPreference) findPreference(KEY_NIGHT_DISPLAY_AUTO_MODE);
mStartTimePreference = findPreference(KEY_NIGHT_DISPLAY_START_TIME);
mEndTimePreference = findPreference(KEY_NIGHT_DISPLAY_END_TIME);
+ mActivatedPreference = (TwoStatePreference) findPreference(KEY_NIGHT_DISPLAY_ACTIVATED);
mAutoModePreference.setEntries(new CharSequence[] {
getString(R.string.night_display_auto_mode_never),
@@ -93,15 +90,7 @@
String.valueOf(NightDisplayController.AUTO_MODE_TWILIGHT)
});
mAutoModePreference.setOnPreferenceChangeListener(this);
- }
-
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
-
- mSwitchBar = ((SettingsActivity) getActivity()).getSwitchBar();
- mSwitchBar.addOnSwitchChangeListener(this);
- mSwitchBar.show();
+ mActivatedPreference.setOnPreferenceChangeListener(this);
}
@Override
@@ -168,7 +157,7 @@
@Override
public void onActivated(boolean activated) {
- mSwitchBar.setChecked(activated);
+ mActivatedPreference.setChecked(activated);
}
@Override
@@ -201,20 +190,11 @@
}
@Override
- public void onSwitchChanged(Switch switchView, boolean isChecked) {
- // Attempt to update the NIGHT_DISPLAY_ACTIVATED setting if necessary.
- final boolean isActivated = mController.isActivated();
- if (isActivated != isChecked) {
- if (mController.setActivated(isChecked)) {
- switchView.setChecked(isActivated);
- }
- }
- }
-
- @Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == mAutoModePreference) {
return mController.setAutoMode(Integer.parseInt((String) newValue));
+ } else if (preference == mActivatedPreference) {
+ return mController.setActivated((Boolean) newValue);
}
return false;
}
diff --git a/src/com/android/settings/search/Index.java b/src/com/android/settings/search/Index.java
index 976c6fb..ccedd62 100644
--- a/src/com/android/settings/search/Index.java
+++ b/src/com/android/settings/search/Index.java
@@ -177,8 +177,8 @@
public List<SearchIndexableData> dataToDelete;
public Map<String, List<String>> nonIndexableKeys;
- public boolean forceUpdate = false;
- public boolean fullIndex = true;
+ public boolean forceUpdate;
+ public boolean fullIndex;
public UpdateData() {
dataToUpdate = new ArrayList<SearchIndexableData>();