diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5e4f1e8f110..1951afd82ea 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -92,6 +92,7 @@
+
diff --git a/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java b/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
index d116f91d601..30835fb2297 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultAutofillPicker.java
@@ -195,6 +195,14 @@ public class DefaultAutofillPicker extends DefaultAppPickerFragment {
candidates.add(new DefaultAppInfo(context, mPm, mUserId, new ComponentName(
info.serviceInfo.packageName, info.serviceInfo.name)));
}
+ if (Manifest.permission.BIND_AUTOFILL.equals(permission)) {
+ // Let it go for now...
+ Log.w(TAG, "AutofillService from '" + info.serviceInfo.packageName
+ + "' uses unsupported permission " + Manifest.permission.BIND_AUTOFILL
+ + ". It works for now, but might not be supported on future releases");
+ candidates.add(new DefaultAppInfo(context, mPm, mUserId, new ComponentName(
+ info.serviceInfo.packageName, info.serviceInfo.name)));
+ }
}
return candidates;
}
diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerDescriptionPreferenceController.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerDescriptionPreferenceController.java
index 261f66cea6e..23fc35b3619 100644
--- a/src/com/android/settings/deletionhelper/AutomaticStorageManagerDescriptionPreferenceController.java
+++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerDescriptionPreferenceController.java
@@ -23,6 +23,7 @@ import android.text.format.Formatter;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController;
/**
@@ -57,7 +58,7 @@ public class AutomaticStorageManagerDescriptionPreferenceController
cr, Settings.Secure.AUTOMATIC_STORAGE_MANAGER_BYTES_CLEARED, 0);
long lastRunMillis =
Settings.Secure.getLong(cr, Settings.Secure.AUTOMATIC_STORAGE_MANAGER_LAST_RUN, 0);
- if (freedBytes == 0 || lastRunMillis == 0 || !isStorageManagerEnabled(cr)) {
+ if (freedBytes == 0 || lastRunMillis == 0 || !Utils.isStorageManagerEnabled(context)) {
preference.setSummary(R.string.automatic_storage_manager_text);
} else {
preference.setSummary(
@@ -68,9 +69,4 @@ public class AutomaticStorageManagerDescriptionPreferenceController
context, lastRunMillis, DateUtils.FORMAT_SHOW_DATE)));
}
}
-
- private boolean isStorageManagerEnabled(ContentResolver cr) {
- return Settings.Secure.getInt(cr, Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, 0)
- != 0;
- }
}
diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
index 184c0c57ae7..22ecb0939c2 100644
--- a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
+++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSettings.java
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -96,7 +96,7 @@ public class AutomaticStorageManagerSettings extends DashboardFragment
@Override
public void onResume() {
super.onResume();
- mDaysToRetain.setEnabled(isStorageManagerEnabled());
+ mDaysToRetain.setEnabled(Utils.isStorageManagerEnabled(getContext()));
}
@Override
@@ -153,12 +153,6 @@ public class AutomaticStorageManagerSettings extends DashboardFragment
return indices.length - 1;
}
- private boolean isStorageManagerEnabled() {
- return Settings.Secure.getInt(
- getContentResolver(), Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, 0)
- != 0;
- }
-
private static List buildPreferenceControllers(Context context) {
final List controllers = new ArrayList<>();
controllers.add(new AutomaticStorageManagerDescriptionPreferenceController(context));
diff --git a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java
index a20afa1060a..c02fb102833 100644
--- a/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java
+++ b/src/com/android/settings/deletionhelper/AutomaticStorageManagerSwitchBarController.java
@@ -27,6 +27,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.util.Preconditions;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import com.android.settingslib.Utils;
/** Handles the logic for flipping the storage management toggle on a {@link SwitchBar}. */
public class AutomaticStorageManagerSwitchBarController
@@ -56,13 +57,7 @@ public class AutomaticStorageManagerSwitchBarController
}
private void initializeCheckedStatus() {
- boolean isStorageManagerChecked =
- Settings.Secure.getInt(
- mContext.getContentResolver(),
- Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED,
- 0)
- != 0;
- mSwitchBar.setChecked(isStorageManagerChecked);
+ mSwitchBar.setChecked(Utils.isStorageManagerEnabled(mContext));
mSwitchBar.addOnSwitchChangeListener(this);
}
diff --git a/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java b/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
index 8ab21b36fdb..7724b009f71 100644
--- a/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,12 +23,14 @@ import android.os.SystemProperties;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.PreferenceScreen;
+
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.deletionhelper.ActivationWarningFragment;
import com.android.settings.widget.MasterSwitchController;
import com.android.settings.widget.MasterSwitchPreference;
import com.android.settings.widget.SwitchWidgetController;
+import com.android.settingslib.Utils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -74,9 +76,7 @@ public class AutomaticStorageManagementSwitchPreferenceController extends
if (!isAvailable()) {
return;
}
- boolean isStorageManagerEnabled = Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.AUTOMATIC_STORAGE_MANAGER_ENABLED, 0) != 0;
- mSwitch.setChecked(isStorageManagerEnabled);
+ mSwitch.setChecked(Utils.isStorageManagerEnabled(mContext));
if (mSwitch != null) {
mSwitchController = new MasterSwitchController(mSwitch);
@@ -97,9 +97,9 @@ public class AutomaticStorageManagementSwitchPreferenceController extends
SystemProperties.getBoolean(STORAGE_MANAGER_ENABLED_BY_DEFAULT_PROPERTY, false);
final boolean storageManagerDisabledByPolicy =
Settings.Secure.getInt(
- mContext.getContentResolver(),
- Settings.Secure.AUTOMATIC_STORAGE_MANAGER_TURNED_OFF_BY_POLICY,
- 0)
+ mContext.getContentResolver(),
+ Settings.Secure.AUTOMATIC_STORAGE_MANAGER_TURNED_OFF_BY_POLICY,
+ 0)
!= 0;
// Show warning if it is disabled by default and turning it on or if it was disabled by
// policy and we're turning it on.
diff --git a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java
index 1c787abd5d4..1cc72a79fbb 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/AutoBatterySeekBarPreferenceController.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
+import android.os.Looper;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
@@ -46,7 +47,7 @@ public class AutoBatterySeekBarPreferenceController extends BasePreferenceContro
public AutoBatterySeekBarPreferenceController(Context context, Lifecycle lifecycle) {
super(context, KEY_AUTO_BATTERY_SEEK_BAR);
- mContentObserver = new AutoBatterySaverSettingObserver(new Handler());
+ mContentObserver = new AutoBatterySaverSettingObserver(new Handler(Looper.getMainLooper()));
if (lifecycle != null) {
lifecycle.addObserver(this);
}
diff --git a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
index aa1b55fc29e..dd275913677 100644
--- a/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
+++ b/tests/unit/src/com/android/settings/core/UniquePreferenceTest.java
@@ -90,7 +90,16 @@ public class UniquePreferenceTest {
"imei_info",
"wifi_ip_address",
"wifi_mac_address",
- "safety_info"
+ "safety_info",
+ // Dupe keys from data usage v2.
+ "data_usage_screen",
+ "cellular_data_usage",
+ "data_usage_wifi_screen",
+ "status_header",
+ "billing_preference",
+ "data_usage_cellular_screen",
+ "wifi_data_usage",
+ "data_usage_enable"
);
private Context mContext;