1 package com.android.launcher3;
3 import android.content.res.Resources;
4 import android.database.Cursor;
5 import android.database.MatrixCursor;
6 import android.widget.ListView;
7 import com.android.launcher3.list.PinnedHeaderListView;
8 import com.android.launcher3.list.SettingsPinnedHeaderAdapter;
10 import java.util.ArrayList;
11 import java.util.Arrays;
13 public class OverviewSettingsPanel {
14 public static final String ANDROID_SETTINGS = "com.android.settings";
15 public static final String ANDROID_PROTECTED_APPS =
16 "com.android.settings.applications.ProtectedAppsActivity";
17 public static final int HOME_SETTINGS_POSITION = 0;
18 public static final int DRAWER_SETTINGS_POSITION = 1;
19 public static final int APP_SETTINGS_POSITION = 2;
21 private Launcher mLauncher;
22 private SettingsPinnedHeaderAdapter mSettingsAdapter;
23 private PinnedHeaderListView mListView;
25 OverviewSettingsPanel(Launcher launcher) {
29 // One time initialization of the SettingsPinnedHeaderAdapter
30 public void initializeAdapter() {
31 // Settings pane Listview
32 mListView = (PinnedHeaderListView) mLauncher
33 .findViewById(R.id.settings_home_screen_listview);
34 mListView.setOverScrollMode(ListView.OVER_SCROLL_NEVER);
35 Resources res = mLauncher.getResources();
36 String[] headers = new String[] {
37 res.getString(R.string.home_screen_settings),
38 res.getString(R.string.drawer_settings),
39 res.getString(R.string.app_settings)};
41 String[] valuesApp = new String[] {
42 res.getString(R.string.larger_icons_text),
43 res.getString(R.string.protected_app_settings),
44 res.getString(R.string.allow_rotation_title)};
46 mSettingsAdapter = new SettingsPinnedHeaderAdapter(mLauncher);
47 mSettingsAdapter.setHeaders(headers);
48 mSettingsAdapter.addPartition(false, true);
49 mSettingsAdapter.addPartition(false, true);
50 mSettingsAdapter.addPartition(false, true);
51 mSettingsAdapter.mPinnedHeaderCount = headers.length;
53 mSettingsAdapter.changeCursor(HOME_SETTINGS_POSITION,
54 createCursor(headers[0], getValuesHome()));
55 mSettingsAdapter.changeCursor(DRAWER_SETTINGS_POSITION,
56 createCursor(headers[1], getValuesDrawer()));
57 mSettingsAdapter.changeCursor(APP_SETTINGS_POSITION, createCursor(headers[2], valuesApp));
58 mListView.setAdapter(mSettingsAdapter);
61 private Cursor createCursor(String header, String[] values) {
62 MatrixCursor cursor = new MatrixCursor(new String[]{"_id", header});
63 int count = values.length;
64 for (int i = 0; i < count; i++) {
65 cursor.addRow(new Object[]{i, values[i]});
70 private String[] getValuesHome() {
71 Resources res = mLauncher.getResources();
72 ArrayList<String> values = new ArrayList<String>(Arrays.asList(new String[]{
73 res.getString(R.string.home_screen_search_text),
74 res.getString(R.string.icon_labels),
75 res.getString(R.string.scrolling_wallpaper),
76 res.getString(R.string.grid_size_text)}));
78 // Add additional external settings.
79 RemoteFolderManager.onInitializeHomeSettings(values, mLauncher);
81 String[] valuesArr = new String[values.size()];
82 values.toArray(valuesArr);
86 private String[] getValuesDrawer() {
87 Resources res = mLauncher.getResources();
88 ArrayList<String> values = new ArrayList<String>(Arrays.asList(new String[]{
89 res.getString(R.string.icon_labels),
90 res.getString(R.string.app_drawer_style),
91 res.getString(R.string.app_drawer_color),
92 res.getString(R.string.fast_scroller),
93 res.getString(R.string.fast_scroller_type),
94 res.getString(R.string.home_screen_search_text)}));
96 // Add additional external settings.
97 RemoteFolderManager.onInitializeDrawerSettings(values, mLauncher);
99 String[] valuesArr = new String[values.size()];
100 values.toArray(valuesArr);
104 public void notifyDataSetInvalidated() {
105 mSettingsAdapter.notifyDataSetInvalidated();