Loading res/xml/ia_display_settings.xml +2 −2 Original line number Diff line number Diff line Loading @@ -19,12 +19,12 @@ android:title="@string/display_settings" settings:keywords="@string/keywords_display"> <PreferenceScreen <Preference android:key="brightness" android:title="@string/brightness" settings:keywords="@string/keywords_display_brightness_level"> <intent android:action="android.intent.action.SHOW_BRIGHTNESS_DIALOG" /> </PreferenceScreen> </Preference> <com.android.settingslib.RestrictedPreference android:key="wallpaper" Loading res/xml/storage_dashboard_fragment.xml +2 −2 Original line number Diff line number Diff line Loading @@ -17,9 +17,9 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/storage_settings"> <com.android.settings.dashboard.DashboardTilePreference <Preference android:key="pref_manage_storage" android:title="@string/storage_menu_manage" android:fragment="com.android.settings.deletionhelper.AutomaticStorageManagerSettings"> </com.android.settings.dashboard.DashboardTilePreference> </Preference> </PreferenceScreen> No newline at end of file res/xml/system_dashboard_fragment.xml +4 −4 Original line number Diff line number Diff line Loading @@ -19,21 +19,21 @@ android:title="@string/header_category_system"> <!-- System updates --> <com.android.settings.dashboard.DashboardTilePreference <Preference android:key="system_update_settings" android:title="@string/system_update_settings_list_item_title" android:summary="@string/system_update_settings_list_item_summary" android:order="-30"> <intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS"/> </com.android.settings.dashboard.DashboardTilePreference> </Preference> <com.android.settings.dashboard.DashboardTilePreference <Preference android:key="additional_system_update_settings" android:title="@string/additional_system_update_settings_list_item_title" android:order="-31"> <intent android:action="android.intent.action.MAIN" android:targetPackage="@string/additional_system_update" android:targetClass="@string/additional_system_update_menu"/> </com.android.settings.dashboard.DashboardTilePreference> </Preference> </PreferenceScreen> No newline at end of file src/com/android/settings/dashboard/DashboardDividerDecoration.java 0 → 100644 +89 −0 Original line number Diff line number Diff line /* * 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.dashboard; import android.content.Context; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.support.v4.view.ViewCompat; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroupAdapter; import android.support.v7.widget.RecyclerView; import android.view.View; import com.android.settings.overlay.FeatureFactory; public class DashboardDividerDecoration extends RecyclerView.ItemDecoration { private final DashboardFeatureProvider mDashboardFeatureProvider; private Drawable mDivider; private int mDividerHeight; public DashboardDividerDecoration(Context context) { mDashboardFeatureProvider = FeatureFactory.getFactory(context) .getDashboardFeatureProvider(context); } public void setDivider(Drawable divider) { if (divider != null) { mDividerHeight = divider.getIntrinsicHeight(); } else { mDividerHeight = 0; } mDivider = divider; } public void setDividerHeight(int dividerHeight) { mDividerHeight = dividerHeight; } @Override public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { if (mDivider == null) { return; } final int childCount = parent.getChildCount(); final int width = parent.getWidth(); for (int childViewIndex = 0; childViewIndex < childCount - 1; childViewIndex++) { final View view = parent.getChildAt(childViewIndex); if (shouldDrawDividerBelow(view, parent)) { int top = (int) ViewCompat.getY(view) + view.getHeight(); mDivider.setBounds(0, top, width, top + mDividerHeight); mDivider.draw(c); } } } private boolean shouldDrawDividerBelow(View view, RecyclerView parent) { final RecyclerView.Adapter adapter = parent.getAdapter(); if (adapter == null || !(adapter instanceof PreferenceGroupAdapter)) { return false; } final PreferenceGroupAdapter prefAdapter = (PreferenceGroupAdapter) adapter; final int adapterPosition = parent.getChildAdapterPosition(view); final Preference pref = prefAdapter.getItem(adapterPosition); final Preference nextPref = prefAdapter.getItem(adapterPosition + 1); if (nextPref == null) { return false; } return mDashboardFeatureProvider.getPriorityGroup(pref) != mDashboardFeatureProvider.getPriorityGroup(nextPref); } } src/com/android/settings/dashboard/DashboardFeatureProvider.java +3 −1 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ package com.android.settings.dashboard; import android.support.v7.preference.Preference; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; Loading Loading @@ -45,7 +47,7 @@ public interface DashboardFeatureProvider { * priority 100 - 199 belongs to priority level 100, tiles with priority 200 - 299 is in * group 200, and so on. */ int getPriorityGroup(Tile tile); int getPriorityGroup(Preference preference); /** * Returns an unique string key for the tile. Loading Loading
res/xml/ia_display_settings.xml +2 −2 Original line number Diff line number Diff line Loading @@ -19,12 +19,12 @@ android:title="@string/display_settings" settings:keywords="@string/keywords_display"> <PreferenceScreen <Preference android:key="brightness" android:title="@string/brightness" settings:keywords="@string/keywords_display_brightness_level"> <intent android:action="android.intent.action.SHOW_BRIGHTNESS_DIALOG" /> </PreferenceScreen> </Preference> <com.android.settingslib.RestrictedPreference android:key="wallpaper" Loading
res/xml/storage_dashboard_fragment.xml +2 −2 Original line number Diff line number Diff line Loading @@ -17,9 +17,9 @@ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/storage_settings"> <com.android.settings.dashboard.DashboardTilePreference <Preference android:key="pref_manage_storage" android:title="@string/storage_menu_manage" android:fragment="com.android.settings.deletionhelper.AutomaticStorageManagerSettings"> </com.android.settings.dashboard.DashboardTilePreference> </Preference> </PreferenceScreen> No newline at end of file
res/xml/system_dashboard_fragment.xml +4 −4 Original line number Diff line number Diff line Loading @@ -19,21 +19,21 @@ android:title="@string/header_category_system"> <!-- System updates --> <com.android.settings.dashboard.DashboardTilePreference <Preference android:key="system_update_settings" android:title="@string/system_update_settings_list_item_title" android:summary="@string/system_update_settings_list_item_summary" android:order="-30"> <intent android:action="android.settings.SYSTEM_UPDATE_SETTINGS"/> </com.android.settings.dashboard.DashboardTilePreference> </Preference> <com.android.settings.dashboard.DashboardTilePreference <Preference android:key="additional_system_update_settings" android:title="@string/additional_system_update_settings_list_item_title" android:order="-31"> <intent android:action="android.intent.action.MAIN" android:targetPackage="@string/additional_system_update" android:targetClass="@string/additional_system_update_menu"/> </com.android.settings.dashboard.DashboardTilePreference> </Preference> </PreferenceScreen> No newline at end of file
src/com/android/settings/dashboard/DashboardDividerDecoration.java 0 → 100644 +89 −0 Original line number Diff line number Diff line /* * 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.dashboard; import android.content.Context; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.support.v4.view.ViewCompat; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceGroupAdapter; import android.support.v7.widget.RecyclerView; import android.view.View; import com.android.settings.overlay.FeatureFactory; public class DashboardDividerDecoration extends RecyclerView.ItemDecoration { private final DashboardFeatureProvider mDashboardFeatureProvider; private Drawable mDivider; private int mDividerHeight; public DashboardDividerDecoration(Context context) { mDashboardFeatureProvider = FeatureFactory.getFactory(context) .getDashboardFeatureProvider(context); } public void setDivider(Drawable divider) { if (divider != null) { mDividerHeight = divider.getIntrinsicHeight(); } else { mDividerHeight = 0; } mDivider = divider; } public void setDividerHeight(int dividerHeight) { mDividerHeight = dividerHeight; } @Override public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { if (mDivider == null) { return; } final int childCount = parent.getChildCount(); final int width = parent.getWidth(); for (int childViewIndex = 0; childViewIndex < childCount - 1; childViewIndex++) { final View view = parent.getChildAt(childViewIndex); if (shouldDrawDividerBelow(view, parent)) { int top = (int) ViewCompat.getY(view) + view.getHeight(); mDivider.setBounds(0, top, width, top + mDividerHeight); mDivider.draw(c); } } } private boolean shouldDrawDividerBelow(View view, RecyclerView parent) { final RecyclerView.Adapter adapter = parent.getAdapter(); if (adapter == null || !(adapter instanceof PreferenceGroupAdapter)) { return false; } final PreferenceGroupAdapter prefAdapter = (PreferenceGroupAdapter) adapter; final int adapterPosition = parent.getChildAdapterPosition(view); final Preference pref = prefAdapter.getItem(adapterPosition); final Preference nextPref = prefAdapter.getItem(adapterPosition + 1); if (nextPref == null) { return false; } return mDashboardFeatureProvider.getPriorityGroup(pref) != mDashboardFeatureProvider.getPriorityGroup(nextPref); } }
src/com/android/settings/dashboard/DashboardFeatureProvider.java +3 −1 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ package com.android.settings.dashboard; import android.support.v7.preference.Preference; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.Tile; Loading Loading @@ -45,7 +47,7 @@ public interface DashboardFeatureProvider { * priority 100 - 199 belongs to priority level 100, tiles with priority 200 - 299 is in * group 200, and so on. */ int getPriorityGroup(Tile tile); int getPriorityGroup(Preference preference); /** * Returns an unique string key for the tile. Loading