Merge "Update layout for App info page."
diff --git a/res/xml/ia_display_settings.xml b/res/xml/ia_display_settings.xml
index ed026f1..cb58ef2 100644
--- a/res/xml/ia_display_settings.xml
+++ b/res/xml/ia_display_settings.xml
@@ -110,12 +110,6 @@
android:title="@string/device_theme"
android:summary="%s" />
- <Preference
- android:key="wifi_display"
- android:title="@string/wifi_display_settings_title"
- settings:keywords="@string/keywords_display_cast_screen"
- android:fragment="com.android.settings.wfd.WifiDisplaySettings" />
-
<DropDownPreference
android:key="vr_display_pref"
android:summary="%s"
diff --git a/res/xml/ia_sound_settings.xml b/res/xml/ia_sound_settings.xml
index e63db0d..27fcdda 100644
--- a/res/xml/ia_sound_settings.xml
+++ b/res/xml/ia_sound_settings.xml
@@ -60,32 +60,34 @@
<PreferenceCategory
android:key="ringtones_preferecence_category"
- android:title="@string/ringtones_category_preference_title" />
+ android:title="@string/ringtones_category_preference_title" >
- <!-- Phone ringtone -->
- <com.android.settings.DefaultRingtonePreference
- android:key="ringtone"
- android:title="@string/ringtone_title"
- android:dialogTitle="@string/ringtone_title"
- android:summary="@string/ringtone_summary"
- android:ringtoneType="ringtone" />
+ <!-- Phone ringtone -->
+ <com.android.settings.DefaultRingtonePreference
+ android:key="ringtone"
+ android:title="@string/ringtone_title"
+ android:dialogTitle="@string/ringtone_title"
+ android:summary="@string/ringtone_summary"
+ android:ringtoneType="ringtone" />
- <!-- Default notification ringtone -->
- <com.android.settings.DefaultRingtonePreference
- android:key="notification_ringtone"
- android:title="@string/notification_ringtone_title"
- android:dialogTitle="@string/notification_ringtone_title"
- android:summary="@string/ringtone_summary"
- android:ringtoneType="notification" />
+ <!-- Default notification ringtone -->
+ <com.android.settings.DefaultRingtonePreference
+ android:key="notification_ringtone"
+ android:title="@string/notification_ringtone_title"
+ android:dialogTitle="@string/notification_ringtone_title"
+ android:summary="@string/ringtone_summary"
+ android:ringtoneType="notification" />
- <!-- Default alarm ringtone -->
- <com.android.settings.DefaultRingtonePreference
- android:key="alarm_ringtone"
- android:title="@string/alarm_ringtone_title"
- android:dialogTitle="@string/alarm_ringtone_title"
- android:summary="@string/ringtone_summary"
- android:persistent="false"
- android:ringtoneType="alarm" />
+ <!-- Default alarm ringtone -->
+ <com.android.settings.DefaultRingtonePreference
+ android:key="alarm_ringtone"
+ android:title="@string/alarm_ringtone_title"
+ android:dialogTitle="@string/alarm_ringtone_title"
+ android:summary="@string/ringtone_summary"
+ android:persistent="false"
+ android:ringtoneType="alarm" />
+
+ </PreferenceCategory>
<!-- Other sounds -->
<PreferenceCategory
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index eeb4779..ddf0dec 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -1164,7 +1164,7 @@
void setImsConfigProvisionedState(int configItem, boolean state) {
if (phone != null && mImsManager != null) {
- QueuedWork.singleThreadExecutor().submit(new Runnable() {
+ QueuedWork.queue(new Runnable() {
public void run() {
try {
mImsManager.getConfigInterface().setProvisionedValue(
@@ -1174,7 +1174,7 @@
Log.e(TAG, "setImsConfigProvisioned() exception:", e);
}
}
- });
+ }, false);
}
}
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 51613c7..9168ead 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -527,8 +527,9 @@
}
}
- if (DEBUG_TIMING) Log.d(LOG_TAG, "onCreate took " + (System.currentTimeMillis() - startTime)
- + " ms");
+ if (DEBUG_TIMING) {
+ Log.d(LOG_TAG, "onCreate took " + (System.currentTimeMillis() - startTime) + " ms");
+ }
}
public void setDisplaySearchMenu(boolean displaySearch) {
diff --git a/src/com/android/settings/UserCredentialsSettings.java b/src/com/android/settings/UserCredentialsSettings.java
index c473182..ea9eee9 100644
--- a/src/com/android/settings/UserCredentialsSettings.java
+++ b/src/com/android/settings/UserCredentialsSettings.java
@@ -264,10 +264,16 @@
final SortedMap<String, Credential> aliasMap = new TreeMap<>();
for (final Credential.Type type : Credential.Type.values()) {
for (final String alias : keyStore.list(type.prefix, uid)) {
- // Do not show work profile keys in user credentials
- if (alias.startsWith(LockPatternUtils.PROFILE_KEY_NAME_ENCRYPT) ||
- alias.startsWith(LockPatternUtils.PROFILE_KEY_NAME_DECRYPT)) {
- continue;
+ if (UserHandle.getAppId(uid) == Process.SYSTEM_UID) {
+ // Do not show work profile keys in user credentials
+ if (alias.startsWith(LockPatternUtils.PROFILE_KEY_NAME_ENCRYPT) ||
+ alias.startsWith(LockPatternUtils.PROFILE_KEY_NAME_DECRYPT)) {
+ continue;
+ }
+ // Do not show synthetic password keys in user credential
+ if (alias.startsWith(LockPatternUtils.SYNTHETIC_PASSWORD_KEY_PREFIX)) {
+ continue;
+ }
}
Credential c = aliasMap.get(alias);
if (c == null) {
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index 253ed76..32dc0c3 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -216,56 +216,4 @@
protected int getHelpResource() {
return R.string.help_url_more_networks;
}
-
- /**
- * For Search.
- */
- public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider() {
- @Override
- public List<SearchIndexableResource> getXmlResourcesToIndex(
- Context context, boolean enabled) {
- // Remove wireless settings from search in demo mode
- if (UserManager.isDeviceInDemoMode(context)) {
- return Collections.emptyList();
- }
- SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.wireless_settings;
- return Arrays.asList(sir);
- }
-
- @Override
- public List<String> getNonIndexableKeys(Context context) {
- final ArrayList<String> result = new ArrayList<String>();
-
- final UserManager um = (UserManager) context.getSystemService(
- Context.USER_SERVICE);
- final boolean isSecondaryUser = !um.isAdminUser();
- final boolean isWimaxEnabled = !isSecondaryUser
- && context.getResources().getBoolean(
- com.android.internal.R.bool.config_wimaxEnabled);
- if (!isWimaxEnabled) {
- result.add(KEY_WIMAX_SETTINGS);
- }
-
- new VpnPreferenceController(context).updateNonIndexableKeys(result);
-
- new NfcPreferenceController(context).updateNonIndexableKeys(result);
- new MobilePlanPreferenceController(context, null /* MobilePlanClickHandler */)
- .updateNonIndexableKeys(result);
- new MobileNetworkPreferenceController(context)
- .updateNonIndexableKeys(result);
-
- // Remove Airplane Mode settings if it's a stationary device such as a TV.
- new AirplaneModePreferenceController(context, null /* fragment */)
- .updateNonIndexableKeys(result);
-
- new ProxyPreferenceController(context).updateNonIndexableKeys(result);
-
- new TetherPreferenceController(context).updateNonIndexableKeys(result);
- new WifiCallingPreferenceController(context).updateNonIndexableKeys(result);
-
- return result;
- }
- };
}
diff --git a/src/com/android/settings/core/instrumentation/EventLogWriter.java b/src/com/android/settings/core/instrumentation/EventLogWriter.java
index de37cba..9304512 100644
--- a/src/com/android/settings/core/instrumentation/EventLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/EventLogWriter.java
@@ -17,8 +17,10 @@
package com.android.settings.core.instrumentation;
import android.content.Context;
+import android.metrics.LogMaker;
import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto;
/**
* {@link LogWriter} that writes data to eventlog.
@@ -37,6 +39,15 @@
MetricsLogger.action(context, category, "");
}
+ public void actionWithSource(Context context, int source, int category) {
+ final LogMaker logMaker = new LogMaker(category)
+ .setType(MetricsProto.MetricsEvent.TYPE_ACTION);
+ if (source != MetricsProto.MetricsEvent.VIEW_UNKNOWN) {
+ logMaker.addTaggedData(MetricsProto.MetricsEvent.FIELD_CONTEXT, source);
+ }
+ MetricsLogger.action(logMaker);
+ }
+
public void action(Context context, int category, int value) {
MetricsLogger.action(context, category, Integer.toString(value));
}
diff --git a/src/com/android/settings/core/instrumentation/LogWriter.java b/src/com/android/settings/core/instrumentation/LogWriter.java
index 45f1d57..4a2fc6c 100644
--- a/src/com/android/settings/core/instrumentation/LogWriter.java
+++ b/src/com/android/settings/core/instrumentation/LogWriter.java
@@ -40,6 +40,11 @@
/**
* Logs an user action.
*/
+ void actionWithSource(Context context, int source, int category);
+
+ /**
+ * Logs an user action.
+ */
void action(Context context, int category, int value);
/**
diff --git a/src/com/android/settings/core/instrumentation/MetricsFeatureProvider.java b/src/com/android/settings/core/instrumentation/MetricsFeatureProvider.java
index 1a9a451..13a4d7e 100644
--- a/src/com/android/settings/core/instrumentation/MetricsFeatureProvider.java
+++ b/src/com/android/settings/core/instrumentation/MetricsFeatureProvider.java
@@ -15,8 +15,79 @@
*/
package com.android.settings.core.instrumentation;
+import android.content.Context;
+import android.metrics.LogMaker;
+
+import java.util.ArrayList;
+import java.util.List;
+
/**
* FeatureProvider for metrics.
*/
-public interface MetricsFeatureProvider extends LogWriter {
+public class MetricsFeatureProvider {
+ private List<LogWriter> mLoggerWriters;
+
+ public MetricsFeatureProvider() {
+ mLoggerWriters = new ArrayList<>();
+ installLogWriters();
+ }
+
+ protected void installLogWriters() {
+ mLoggerWriters.add(new EventLogWriter());
+ mLoggerWriters.add(new SettingSuggestionsLogWriter());
+ }
+
+ public void visible(Context context, int category) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.visible(context, category);
+ }
+ }
+
+ public void hidden(Context context, int category) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.hidden(context, category);
+ }
+ }
+
+ public void actionWithSource(Context context, int source, int category) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.actionWithSource(context, source, category);
+ }
+ }
+
+ public void action(Context context, int category) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.action(context, category);
+ }
+ }
+
+ public void action(Context context, int category, int value) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.action(context, category, value);
+ }
+ }
+
+ public void action(Context context, int category, boolean value) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.action(context, category, value);
+ }
+ }
+
+ public void action(Context context, int category, String pkg) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.action(context, category, pkg);
+ }
+ }
+
+ public void count(Context context, String name, int value) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.count(context, name, value);
+ }
+ }
+
+ public void histogram(Context context, String name, int bucket) {
+ for (LogWriter writer : mLoggerWriters) {
+ writer.histogram(context, name, bucket);
+ }
+ }
}
diff --git a/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java b/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java
deleted file mode 100644
index 091eb54..0000000
--- a/src/com/android/settings/core/instrumentation/MetricsFeatureProviderImpl.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * 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
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.core.instrumentation;
-
-import android.content.Context;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Implementation for {@link MetricsFeatureProvider}
- */
-public class MetricsFeatureProviderImpl implements MetricsFeatureProvider {
-
- private List<LogWriter> mLoggerWriters;
-
- public MetricsFeatureProviderImpl() {
- mLoggerWriters = new ArrayList<>();
- installLogWriters();
- }
-
- protected void installLogWriters() {
- mLoggerWriters.add(new EventLogWriter());
- mLoggerWriters.add(new SettingSuggestionsLogWriter());
- }
-
- @Override
- public void visible(Context context, int category) {
- for (LogWriter writer : mLoggerWriters) {
- writer.visible(context, category);
- }
- }
-
- @Override
- public void hidden(Context context, int category) {
- for (LogWriter writer : mLoggerWriters) {
- writer.hidden(context, category);
- }
- }
-
- @Override
- public void action(Context context, int category) {
- for (LogWriter writer : mLoggerWriters) {
- writer.action(context, category);
- }
- }
-
- @Override
- public void action(Context context, int category, int value) {
- for (LogWriter writer : mLoggerWriters) {
- writer.action(context, category, value);
- }
- }
-
- @Override
- public void action(Context context, int category, boolean value) {
- for (LogWriter writer : mLoggerWriters) {
- writer.action(context, category, value);
- }
- }
-
- @Override
- public void action(Context context, int category, String pkg) {
- for (LogWriter writer : mLoggerWriters) {
- writer.action(context, category, pkg);
- }
- }
-
- @Override
- public void count(Context context, String name, int value) {
- for (LogWriter writer : mLoggerWriters) {
- writer.count(context, name, value);
- }
- }
-
- @Override
- public void histogram(Context context, String name, int bucket) {
- for (LogWriter writer : mLoggerWriters) {
- writer.histogram(context, name, bucket);
- }
- }
-}
diff --git a/src/com/android/settings/core/instrumentation/SettingSuggestionsLogWriter.java b/src/com/android/settings/core/instrumentation/SettingSuggestionsLogWriter.java
index 4c277fb..3b94fe7 100644
--- a/src/com/android/settings/core/instrumentation/SettingSuggestionsLogWriter.java
+++ b/src/com/android/settings/core/instrumentation/SettingSuggestionsLogWriter.java
@@ -17,6 +17,8 @@
package com.android.settings.core.instrumentation;
import android.content.Context;
+import android.metrics.LogMaker;
+
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.logging.MetricsLogger;
import com.android.settings.suggestions.EventStore;
@@ -41,6 +43,10 @@
}
@Override
+ public void actionWithSource(Context context, int source, int category) {
+ }
+
+ @Override
public void action(Context context, int category, int value) {
}
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index b6285ad..514eaf2 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -63,6 +63,7 @@
private final MetricsFeatureProvider mMetricsFeatureProvider;
private final DashboardFeatureProvider mDashboardFeatureProvider;
private SuggestionParser mSuggestionParser;
+ private boolean mFirstFrameDrawn;
@VisibleForTesting
DashboardData mDashboardData;
@@ -162,6 +163,15 @@
notifyDashboardDataChanged(prevData);
}
+ public void setCategory(List<DashboardCategory> category) {
+ final DashboardData prevData = mDashboardData;
+ Log.d(TAG, "adapter setCategory called");
+ mDashboardData = new DashboardData.Builder(prevData)
+ .setCategories(category)
+ .build();
+ notifyDashboardDataChanged(prevData);
+ }
+
public void setConditions(List<Condition> conditions) {
final DashboardData prevData = mDashboardData;
Log.d(TAG, "adapter setConditions called");
@@ -304,11 +314,12 @@
}
private void notifyDashboardDataChanged(DashboardData prevData) {
- if (prevData != null) {
+ if (mFirstFrameDrawn && prevData != null) {
final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new DashboardData
.ItemsDataDiffCallback(prevData.getItemList(), mDashboardData.getItemList()));
diffResult.dispatchUpdatesTo(this);
} else {
+ mFirstFrameDrawn = true;
notifyDataSetChanged();
}
}
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index 223d050..395a8bd 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -181,7 +181,7 @@
@Override
public ProgressiveDisclosureMixin getProgressiveDisclosureMixin(Context context,
DashboardFragment fragment) {
- return new ProgressiveDisclosureMixin(context, this, fragment);
+ return new ProgressiveDisclosureMixin(context, this, mMetricsFeatureProvider, fragment);
}
@Override
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 74c8bfa..a5a4f43 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -27,6 +27,7 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
@@ -231,26 +232,25 @@
Log.d(TAG, "onViewCreated took "
+ (System.currentTimeMillis() - startTime) + " ms");
}
- rebuildUI();
+ rebuildUI(true /* rebuildSuggestions */);
}
- private void rebuildUI() {
- if (!isAdded()) {
- Log.w(TAG, "Cannot build the DashboardSummary UI yet as the Fragment is not added");
- return;
- }
-
- // recheck to see if any suggestions have been changed.
- new SuggestionLoader().execute();
- // Set categories on their own if loading suggestions takes too long.
- mHandler.postDelayed(() -> {
+ private void rebuildUI(boolean rebuildSuggestions) {
+ if (rebuildSuggestions) {
+ // recheck to see if any suggestions have been changed.
+ new SuggestionLoader().execute();
+ // Set categories on their own if loading suggestions takes too long.
+ mHandler.postDelayed(() -> {
+ updateCategoryAndSuggestion(null /* tiles */);
+ }, MAX_WAIT_MILLIS);
+ } else {
updateCategoryAndSuggestion(null /* tiles */);
- }, MAX_WAIT_MILLIS);
+ }
}
@Override
public void onCategoriesChanged() {
- rebuildUI();
+ rebuildUI(false /* rebuildSuggestions */);
}
@Override
@@ -264,7 +264,6 @@
}
private class SuggestionLoader extends AsyncTask<Void, Void, List<Tile>> {
-
@Override
protected List<Tile> doInBackground(Void... params) {
final Context context = getContext();
@@ -307,7 +306,7 @@
}
@VisibleForTesting
- void updateCategoryAndSuggestion(List<Tile> tiles) {
+ void updateCategoryAndSuggestion(List<Tile> suggestions) {
final Activity activity = getActivity();
if (activity == null) {
return;
@@ -319,10 +318,14 @@
List<DashboardCategory> categories = new ArrayList<>();
categories.add(mDashboardFeatureProvider.getTilesForCategory(
CategoryKey.CATEGORY_HOMEPAGE));
- mAdapter.setCategoriesAndSuggestions(categories, tiles);
+ if (suggestions != null) {
+ mAdapter.setCategoriesAndSuggestions(categories, suggestions);
+ } else {
+ mAdapter.setCategory(categories);
+ }
} else {
mAdapter.setCategoriesAndSuggestions(
- ((SettingsActivity) activity).getDashboardCategories(), tiles);
+ ((SettingsActivity) activity).getDashboardCategories(), suggestions);
}
}
}
diff --git a/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java b/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
index 2907028..77bd253 100644
--- a/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
+++ b/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
@@ -25,7 +25,10 @@
import android.text.TextUtils;
import android.util.Log;
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
+import com.android.settings.core.instrumentation.Instrumentable;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.core.lifecycle.LifecycleObserver;
import com.android.settings.core.lifecycle.events.OnCreate;
import com.android.settings.core.lifecycle.events.OnSaveInstanceState;
@@ -45,19 +48,23 @@
private final DashboardFeatureProvider mDashboardFeatureProvider;
// Collapsed preference sorted by order.
private final List<Preference> mCollapsedPrefs = new ArrayList<>();
- private /* final */ ExpandPreference mExpandButton;
+ private final MetricsFeatureProvider mMetricsFeatureProvider;
private final PreferenceFragment mFragment;
+ private /* final */ ExpandPreference mExpandButton;
private int mTileLimit = DEFAULT_TILE_LIMIT;
private boolean mUserExpanded;
public ProgressiveDisclosureMixin(Context context,
- DashboardFeatureProvider dashboardFeatureProvider, PreferenceFragment fragment) {
+ DashboardFeatureProvider dashboardFeatureProvider,
+ MetricsFeatureProvider metricsFeatureProvider,
+ PreferenceFragment fragment) {
mContext = context;
mFragment = fragment;
mExpandButton = new ExpandPreference(context);
mExpandButton.setOnPreferenceClickListener(this);
mDashboardFeatureProvider = dashboardFeatureProvider;
+ mMetricsFeatureProvider = metricsFeatureProvider;
}
@Override
@@ -83,6 +90,14 @@
}
mCollapsedPrefs.clear();
mUserExpanded = true;
+ final int metricsCategory;
+ if (mFragment instanceof Instrumentable) {
+ metricsCategory = ((Instrumentable) mFragment).getMetricsCategory();
+ } else {
+ metricsCategory = MetricsProto.MetricsEvent.VIEW_UNKNOWN;
+ }
+ mMetricsFeatureProvider.actionWithSource(mContext, metricsCategory,
+ MetricsProto.MetricsEvent.ACTION_SETTINGS_ADVANCED_BUTTON_EXPAND);
}
}
return false;
diff --git a/src/com/android/settings/fuelgauge/PowerUsageDetail.java b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
index b3f304a..dace4da 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageDetail.java
@@ -829,19 +829,4 @@
}
}
}
-
- public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider() {
- @Override
- public List<SearchIndexableResource> getXmlResourcesToIndex(
- Context context, boolean enabled) {
- if (!FeatureFactory.getFactory(context).getDashboardFeatureProvider(context)
- .isEnabled()) {
- return null;
- }
- final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.power_usage_details;
- return Arrays.asList(sir);
- }
- };
}
diff --git a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
index 213259b..d38902e 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
@@ -64,14 +64,4 @@
Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
return cameraDisabled == 0;
}
-
- @Override
- public ResultPayload getResultPayload() {
- ArrayMap<Integer, Boolean> valueMap = new ArrayMap<>();
- valueMap.put(0, true);
- valueMap.put(1, false);
-
- return new InlineSwitchPayload(Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED,
- ResultPayload.SettingsSource.SECURE, valueMap);
- }
}
diff --git a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
index 02d8dd7..49e8f51 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
@@ -70,14 +70,4 @@
protected boolean isSwitchPrefEnabled() {
return mAmbientConfig.pulseOnDoubleTapEnabled(mUserId);
}
-
- @Override
- public ResultPayload getResultPayload() {
- ArrayMap<Integer, Boolean> valueMap = new ArrayMap<>();
- valueMap.put(1, true);
- valueMap.put(0, false);
-
- return new InlineSwitchPayload(Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP,
- ResultPayload.SettingsSource.SECURE, valueMap);
- }
}
diff --git a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
index fea1c9d..c5174fd 100644
--- a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
@@ -85,14 +85,4 @@
}
return false;
}
-
- @Override
- public ResultPayload getResultPayload() {
- ArrayMap<Integer, Boolean> valueMap = new ArrayMap<>();
- valueMap.put(1, true);
- valueMap.put(0, false);
-
- return new InlineSwitchPayload(Settings.Secure.CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED,
- ResultPayload.SettingsSource.SECURE, valueMap);
- }
}
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index db6925e..df8e37c 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -143,51 +143,4 @@
mPreferences.add((GesturePreference) preference);
}
}
-
- public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
- new BaseSearchIndexProvider() {
- @Override
- public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
- boolean enabled) {
- ArrayList<SearchIndexableResource> result =
- new ArrayList<SearchIndexableResource>();
-
- SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.gesture_settings;
- result.add(sir);
-
- return result;
- }
-
- @Override
- public List<String> getNonIndexableKeys(Context context) {
- ArrayList<String> result = new ArrayList<String>();
-
- List<PreferenceController> preferenceControllers =
- getPreferenceControllers(context);
- for (PreferenceController controller : preferenceControllers) {
- controller.updateNonIndexableKeys(result);
- }
- return result;
- }
-
- @Override
- public List<PreferenceController> getPreferenceControllers(Context context) {
- List<PreferenceController> controllers = new ArrayList<>();
- AmbientDisplayConfiguration ambientConfig
- = new AmbientDisplayConfiguration(context);
-
- controllers.add(new DoubleTapPowerPreferenceController(context,
- null /* lifecycle */));
- controllers.add(new PickupGesturePreferenceController(context,
- null /* lifecycle */, ambientConfig, UserHandle.myUserId()));
- controllers.add(new DoubleTapScreenPreferenceController(context,
- null /* lifecycle */, ambientConfig, UserHandle.myUserId()));
- controllers.add(new SwipeToNotificationPreferenceController(context,
- null /* lifecycle */));
- controllers.add(new DoubleTwistPreferenceController(context,
- null /* lifecycle */));
- return controllers;
- }
- };
}
diff --git a/src/com/android/settings/gestures/PickupGesturePreferenceController.java b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
index f48551e..ce20f15 100644
--- a/src/com/android/settings/gestures/PickupGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
@@ -70,14 +70,4 @@
Settings.Secure.DOZE_PULSE_ON_PICK_UP, enabled ? 1 : 0);
return true;
}
-
- @Override
- public ResultPayload getResultPayload() {
- ArrayMap<Integer, Boolean> valueMap = new ArrayMap<>();
- valueMap.put(1, true);
- valueMap.put(0, false);
-
- return new InlineSwitchPayload(Settings.Secure.DOZE_PULSE_ON_PICK_UP,
- ResultPayload.SettingsSource.SECURE, valueMap);
- }
}
diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
index 67c8e14..22b88fc 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
@@ -63,14 +63,4 @@
Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 0)
== 1;
}
-
- @Override
- public ResultPayload getResultPayload() {
- ArrayMap<Integer, Boolean> valueMap = new ArrayMap<>();
- valueMap.put(1, true);
- valueMap.put(0, false);
-
- return new InlineSwitchPayload(Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED,
- ResultPayload.SettingsSource.SECURE, valueMap);
- }
}
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index c1a2159..c7b0384 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -57,7 +57,7 @@
@Override
public void onAttach(Context context) {
super.onAttach(context);
- mProgressiveDisclosureMixin.setTileLimit(5);
+ mProgressiveDisclosureMixin.setTileLimit(6);
}
@Override
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.java b/src/com/android/settings/overlay/FeatureFactoryImpl.java
index 4c81e30..1b504f4 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.java
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.java
@@ -28,7 +28,6 @@
import com.android.settings.applications.IPackageManagerWrapperImpl;
import com.android.settings.applications.PackageManagerWrapperImpl;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-import com.android.settings.core.instrumentation.MetricsFeatureProviderImpl;
import com.android.settings.dashboard.DashboardFeatureProvider;
import com.android.settings.dashboard.DashboardFeatureProviderImpl;
import com.android.settings.dashboard.SuggestionFeatureProvider;
@@ -70,7 +69,7 @@
@Override
public MetricsFeatureProvider getMetricsFeatureProvider() {
if (mMetricsFeatureProvider == null) {
- mMetricsFeatureProvider = new MetricsFeatureProviderImpl();
+ mMetricsFeatureProvider = new MetricsFeatureProvider();
}
return mMetricsFeatureProvider;
}
diff --git a/src/com/android/settings/wifi/LinkablePreference.java b/src/com/android/settings/wifi/LinkablePreference.java
index 6b1b87d..5bf51ed 100644
--- a/src/com/android/settings/wifi/LinkablePreference.java
+++ b/src/com/android/settings/wifi/LinkablePreference.java
@@ -55,11 +55,15 @@
super.onBindViewHolder(view);
TextView textView = (TextView) view.findViewById(android.R.id.title);
- if (textView == null || mContentTitle == null || mClickListener == null) {
+ if (textView == null) {
+ return;
+ }
+ textView.setSingleLine(false);
+
+ if (mContentTitle == null || mClickListener == null) {
return;
}
- textView.setSingleLine(false);
StringBuilder contentBuilder = new StringBuilder().append(mContentTitle);
if (mContentDescription != null) {
contentBuilder.append("\n\n");
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 118d6eb..c4b90c7 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -179,7 +179,9 @@
super.onViewCreated(view, savedInstanceState);
final Activity activity = getActivity();
if (activity != null) {
- mProgressHeader = (ProgressBar) setPinnedHeaderView(R.layout.wifi_progress_header);
+ if (!isUiRestricted()) {
+ mProgressHeader = (ProgressBar) setPinnedHeaderView(R.layout.wifi_progress_header);
+ }
}
}
@@ -201,6 +203,10 @@
mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_WIFI_SETTINGS);
mSavedNetworksPreference = findPreference(PREF_KEY_SAVED_NETWORKS);
+ if (isUiRestricted()) {
+ getPreferenceScreen().removePreference(mAdditionalSettingsPreferenceCategory);
+ }
+
Context prefContext = getPrefContext();
mAddPreference = new Preference(prefContext);
mAddPreference.setIcon(R.drawable.ic_menu_add_inset);
@@ -818,11 +824,11 @@
private void setOffMessage() {
if (isUiRestricted()) {
+ removeConnectedAccessPointPreference();
+ mAccessPointsPreferenceCategory.removeAll();
if (!isUiRestrictedByOnlyAdmin()) {
addMessagePreference(R.string.wifi_empty_list_user_restricted);
}
- removeConnectedAccessPointPreference();
- mAccessPointsPreferenceCategory.removeAll();
return;
}
diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider
index 05cd93b..5e134bf 100644
--- a/tests/robotests/assets/grandfather_not_implementing_index_provider
+++ b/tests/robotests/assets/grandfather_not_implementing_index_provider
@@ -2,4 +2,6 @@
com.android.settings.language.LanguageAndRegionSettings
com.android.settings.notification.ZenModePrioritySettings
com.android.settings.inputmethod.InputAndGestureSettings
-com.android.settings.accounts.AccountDetailDashboardFragment
\ No newline at end of file
+com.android.settings.accounts.AccountDetailDashboardFragment
+com.android.settings.gestures.GestureSettings
+com.android.settings.fuelgauge.PowerUsageDetail
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java
index 9627e2c..62866c9 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardSummaryTest.java
@@ -17,8 +17,8 @@
package com.android.settings.dashboard;
import android.app.Activity;
-
import android.support.v7.widget.LinearLayoutManager;
+
import com.android.settings.SettingsRobolectricTestRunner;
import com.android.settings.TestConfig;
import com.android.settings.dashboard.conditional.ConditionManager;
@@ -33,6 +33,7 @@
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
+import static org.mockito.Matchers.anyList;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -90,4 +91,13 @@
mSummary.onConditionsChanged();
verify(mDashboard, never()).scrollToPosition(0);
}
+
+ @Test
+ public void onCategoryChanged_updateCategoryOnly() {
+ doReturn(mock(Activity.class)).when(mSummary).getActivity();
+ when(mDashboardFeatureProvider.isEnabled()).thenReturn(true);
+
+ mSummary.onCategoriesChanged();
+ verify(mAdapter).setCategory(anyList());
+ }
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java b/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
index bb00cb8..573b2b5 100644
--- a/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/ProgressiveDisclosureTest.java
@@ -74,7 +74,9 @@
mAppContext = ShadowApplication.getInstance().getApplicationContext();
mFakeFeatureFactory = (FakeFeatureFactory) FeatureFactory.getFactory(mContext);
mMixin = new ProgressiveDisclosureMixin(mAppContext,
- mFakeFeatureFactory.dashboardFeatureProvider, mPreferenceFragment);
+ mFakeFeatureFactory.dashboardFeatureProvider,
+ mFakeFeatureFactory.metricsFeatureProvider,
+ mPreferenceFragment);
ReflectionHelpers.setField(mMixin, "mExpandButton", mExpandButton);
mPreference = new Preference(mAppContext);
mPreference.setKey("test");
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
index 5f7d8b5..bdb3522 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
@@ -93,23 +93,4 @@
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
-
- @Test
- public void testPreferenceController_ProperResultPayloadType() {
- final Context context = ShadowApplication.getInstance().getApplicationContext();
- mController = new DoubleTapPowerPreferenceController(context, null);
- ResultPayload payload = mController.getResultPayload();
- assertThat(payload).isInstanceOf(InlineSwitchPayload.class);
- }
-
- @Test
- public void testPreferenceController_CorrectPayload() {
- final Context context = ShadowApplication.getInstance().getApplicationContext();
- mController = new DoubleTapPowerPreferenceController(context, null);
- InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload();
- assertThat(payload.settingsUri).isEqualTo("camera_double_tap_power_gesture_disabled");
- assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE);
- assertThat(payload.valueMap.get(0)).isEqualTo(true);
- assertThat(payload.valueMap.get(1)).isEqualTo(false);
- }
}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
index 2f922d5..adf8b75 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
@@ -81,19 +81,4 @@
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
-
- @Test
- public void testPreferenceController_ProperResultPayloadType() {
- ResultPayload payload = mController.getResultPayload();
- assertThat(payload).isInstanceOf(InlineSwitchPayload.class);
- }
-
- @Test
- public void testPreferenceController_CorrectPayload() {
- InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload();
- assertThat(payload.settingsUri).isEqualTo("doze_pulse_on_double_tap");
- assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE);
- assertThat(payload.valueMap.get(1)).isEqualTo(true);
- assertThat(payload.valueMap.get(0)).isEqualTo(false);
- }
}
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
index ad682b2..9bf6655 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
@@ -113,19 +113,4 @@
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
-
- @Test
- public void testPreferenceController_ProperResultPayloadType() {
- ResultPayload payload = mController.getResultPayload();
- assertThat(payload).isInstanceOf(InlineSwitchPayload.class);
- }
-
- @Test
- public void testPreferenceController_CorrectPayload() {
- InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload();
- assertThat(payload.settingsUri).isEqualTo("camera_double_twist_to_flip_enabled");
- assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE);
- assertThat(payload.valueMap.get(1)).isEqualTo(true);
- assertThat(payload.valueMap.get(0)).isEqualTo(false);
- }
}
diff --git a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
index f112b9e..9dce074 100644
--- a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
@@ -83,19 +83,4 @@
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
-
- @Test
- public void testPreferenceController_ProperResultPayloadType() {
- ResultPayload payload = mController.getResultPayload();
- assertThat(payload).isInstanceOf(InlineSwitchPayload.class);
- }
-
- @Test
- public void testPreferenceController_CorrectPayload() {
- InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload();
- assertThat(payload.settingsUri).isEqualTo("doze_pulse_on_pick_up");
- assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE);
- assertThat(payload.valueMap.get(1)).isEqualTo(true);
- assertThat(payload.valueMap.get(0)).isEqualTo(false);
- }
}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
index 49d73ea..e909667 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
@@ -89,19 +89,4 @@
assertThat(mController.isSwitchPrefEnabled()).isFalse();
}
-
- @Test
- public void testPreferenceController_ProperResultPayloadType() {
- ResultPayload payload = mController.getResultPayload();
- assertThat(payload).isInstanceOf(InlineSwitchPayload.class);
- }
-
- @Test
- public void testPreferenceController_CorrectPayload() {
- InlineSwitchPayload payload = (InlineSwitchPayload) mController.getResultPayload();
- assertThat(payload.settingsUri).isEqualTo("system_navigation_keys_enabled");
- assertThat(payload.settingSource).isEqualTo(ResultPayload.SettingsSource.SECURE);
- assertThat(payload.valueMap.get(1)).isEqualTo(true);
- assertThat(payload.valueMap.get(0)).isEqualTo(false);
- }
}
diff --git a/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtilsTest.java b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtilsTest.java
index a13a24e..f4370fc 100644
--- a/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseIndexingUtilsTest.java
@@ -73,14 +73,6 @@
}
@Test
- public void testGetPreferenceControllerUriMap_CompatibleClass_ReturnsNotNull() {
- String className = "com.android.settings.gestures.GestureSettings";
-
- Map map = DatabaseIndexingUtils.getPreferenceControllerUriMap(className, mContext);
- assertThat(map).isNotNull();
- }
-
- @Test
public void testGetPreferenceControllerUriMap_CompatibleClass_ReturnsValidMap() {
String className = "com.android.settings.DisplaySettings";
@@ -96,7 +88,7 @@
}
@Test
- public void testGetPayloadFromMap_MatchingKey_ReturnsPayloa() {
+ public void testGetPayloadFromMap_MatchingKey_ReturnsPayload() {
final String key = "key";
PreferenceController prefController = new PreferenceController(mContext) {
@Override