diff options
Diffstat (limited to 'src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java')
-rw-r--r-- | src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java | 84 |
1 files changed, 78 insertions, 6 deletions
diff --git a/src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java b/src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java index 4e25a3b15..c4b5dee47 100644 --- a/src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java +++ b/src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java @@ -6,7 +6,9 @@ import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; import android.database.Cursor; +import android.graphics.Color; import android.graphics.Typeface; +import android.util.Log; import android.util.TypedValue; import android.view.Gravity; import android.view.LayoutInflater; @@ -14,6 +16,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.TextView; +import com.android.launcher3.AppDrawerListAdapter; import com.android.launcher3.AppsCustomizePagedView; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; @@ -24,6 +27,8 @@ import com.android.launcher3.settings.SettingsProvider; public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter { private static final int PARTITION_TAG = 0; private static final int POSITION_TAG = 1; + private static final float ENABLED_ALPHA = 1f; + private static final float DISABLED_ALPHA = 1f; private Launcher mLauncher; private Context mContext; @@ -90,6 +95,7 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter { Resources res = mLauncher.getResources(); + boolean current = false; String state = ""; @@ -131,14 +137,21 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter { case OverviewSettingsPanel.DRAWER_SETTINGS_POSITION: switch (position) { case 0: - state = mLauncher.getAppsCustomizeTransitionEffect(); - state = mapEffectToValue(state); - ((TextView) v.findViewById(R.id.item_state)).setText(state); + updateDrawerTypeSettingsItem(v); break; case 1: - updateDrawerSortSettingsItem(v); + if (!setDisabled(v)) { + state = mLauncher.getAppsCustomizeTransitionEffect(); + state = mapEffectToValue(state); + ((TextView) v.findViewById(R.id.item_state)).setText(state); + } break; case 2: + if (!setDisabled(v)) { + updateDrawerSortSettingsItem(v); + } + break; + case 3: current = SettingsProvider.getBoolean(mContext, SettingsProvider.SETTINGS_UI_DRAWER_HIDE_ICON_LABELS, R.bool.preferences_interface_drawer_hide_icon_labels_default); @@ -209,6 +222,20 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter { ((TextView) v.findViewById(R.id.item_state)).setText(state); } + public void updateDrawerTypeSettingsItem(View v) { + String state = ""; + AppDrawerListAdapter.DrawerType type = mLauncher.getDrawerType(); + switch (type) { + case Drawer: + state = mLauncher.getResources().getString(R.string.drawer_type_drawer); + break; + case Pager: + state = mLauncher.getResources().getString(R.string.drawer_type_pager); + break; + } + ((TextView) v.findViewById(R.id.item_state)).setText(state); + } + public void updateDynamicGridSizeSettingsItem(View v) { DeviceProfile.GridSize gridSize = DeviceProfile.GridSize.getModeForValue( SettingsProvider.getIntCustomDefault(mLauncher, @@ -295,12 +322,17 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter { case OverviewSettingsPanel.DRAWER_SETTINGS_POSITION: switch (position) { case 0: - mLauncher.onClickTransitionEffectButton(v, true); + onClickDrawerTypeButton(); break; case 1: - onClickSortButton(); + mLauncher.onClickTransitionEffectButton(v, true); + break; case 2: + onClickSortButton(); + + break; + case 3: onIconLabelsBooleanChanged(v, SettingsProvider.SETTINGS_UI_DRAWER_HIDE_ICON_LABELS, R.bool.preferences_interface_drawer_hide_icon_labels_default); @@ -384,4 +416,44 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter { notifyDataSetChanged(); } + + private void onClickDrawerTypeButton() { + int type = SettingsProvider.getInt(mLauncher, + SettingsProvider.SETTINGS_UI_DRAWER_TYPE, + R.integer.preferences_interface_drawer_type_default); + + type = (type + 1) % AppDrawerListAdapter.DrawerType.values().length; + SettingsProvider.putInt(mLauncher, SettingsProvider.SETTINGS_UI_DRAWER_TYPE, type); + + mLauncher.updateDrawerType(); + + notifyDataSetChanged(); + } + + private boolean setDisabled(View v) { + TextView itemState = ((TextView) v.findViewById(R.id.item_state)); + TextView itemName = ((TextView) v.findViewById(R.id.item_name)); + + AppDrawerListAdapter.DrawerType type = mLauncher.getDrawerType(); + + boolean isDisabled = false; + + switch (type) { + case Drawer: + itemState.setAlpha(DISABLED_ALPHA); + itemState.setText(mLauncher.getResources() + .getString(R.string.setting_state_disabled)); + itemName.setAlpha(DISABLED_ALPHA); + v.setEnabled(false); + isDisabled = true; + break; + case Pager: + itemState.setAlpha(ENABLED_ALPHA); + itemName.setAlpha(ENABLED_ALPHA); + v.setEnabled(true); + break; + } + + return isDisabled; + } } |