Merge "Correctly restrict UI for WifiSettings in Guest profile."
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/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/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/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/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/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