diff options
author | Raj Yengisetty <rajesh@cyngn.com> | 2014-11-10 10:35:00 -0800 |
---|---|---|
committer | Adnan <adnan@cyngn.com> | 2014-11-19 15:53:46 -0800 |
commit | 0daed36da7dab3172f05aa3dc29b7facac01ce6e (patch) | |
tree | 284e4d166ce0ffaa557c7fe1c99cbd35ac35aa70 /src/com/android/launcher3/OverviewSettingsPanel.java | |
parent | ae5f7ce8ed2e385cba8d65a67d9b108c9c3590e8 (diff) | |
download | android_packages_apps_Trebuchet-0daed36da7dab3172f05aa3dc29b7facac01ce6e.tar.gz android_packages_apps_Trebuchet-0daed36da7dab3172f05aa3dc29b7facac01ce6e.tar.bz2 android_packages_apps_Trebuchet-0daed36da7dab3172f05aa3dc29b7facac01ce6e.zip |
Trebuchet Settings UI Refresh.
- Overview Panel contains all Launcher Settings
- Accessible through long press on Workspace or HW Menu button
- Settings are held in a SlidingPanel in the Overview Panel
- Replace the Settings shortcut in Overview Panel with Themes shortcut
- Replace widgets icon with new widgets icon from Launcher3
- Trebuchet Settings changes no longer require restarting Process
- Transition Effects have PNG Sequence to show animation sequence
- Remove PageIndicator click event to open Overview Panel in AppTray
Contributors:
Adrian Foulk - UX Lead
Abishek Devkota - Project Manager
Hayden Schoen - UX Designer
Change-Id: I2186213960cf12e840e814757894fe104551856b
Diffstat (limited to 'src/com/android/launcher3/OverviewSettingsPanel.java')
-rw-r--r-- | src/com/android/launcher3/OverviewSettingsPanel.java | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/src/com/android/launcher3/OverviewSettingsPanel.java b/src/com/android/launcher3/OverviewSettingsPanel.java new file mode 100644 index 000000000..2c1a7da36 --- /dev/null +++ b/src/com/android/launcher3/OverviewSettingsPanel.java @@ -0,0 +1,199 @@ +package com.android.launcher3; + +import android.content.res.Resources; +import android.database.Cursor; +import android.database.MatrixCursor; +import android.graphics.drawable.AnimationDrawable; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.ImageView; +import android.widget.ListView; +import com.android.launcher3.list.PinnedHeaderListView; +import com.android.launcher3.list.SettingsPinnedHeaderAdapter; + +public class OverviewSettingsPanel { + public static final int HOME_SETTINGS_POSITION = 0; + public static final int DRAWER_SETTINGS_POSITION = 1; + + private Launcher mLauncher; + private View mOverviewPanel; + private SettingsPinnedHeaderAdapter mSettingsAdapter; + private PinnedHeaderListView mListView; + + OverviewSettingsPanel(Launcher launcher, View overviewPanel) { + mLauncher = launcher; + mOverviewPanel = overviewPanel; + } + + // One time initialization of the SettingsPinnedHeaderAdapter + public void initializeAdapter() { + // Settings pane Listview + mListView = (PinnedHeaderListView) mLauncher + .findViewById(R.id.settings_home_screen_listview); + mListView.setOverScrollMode(ListView.OVER_SCROLL_NEVER); + Resources res = mLauncher.getResources(); + String[] headers = new String[] { + res.getString(R.string.home_screen_settings), + res.getString(R.string.drawer_settings)}; + String[] values = new String[] { + res.getString(R.string.home_screen_search_text), + res.getString(R.string.page_scroll_effect_text), + res.getString(R.string.larger_icons_text), + res.getString(R.string.hide_icon_labels)}; + String[] valuesDrawer = new String[] { + res.getString(R.string.drawer_scroll_effect_text), + res.getString(R.string.drawer_sorting_text), + res.getString(R.string.hide_icon_labels)}; + + mSettingsAdapter = new SettingsPinnedHeaderAdapter(mLauncher); + mSettingsAdapter.setHeaders(headers); + mSettingsAdapter.addPartition(false, true); + mSettingsAdapter.addPartition(false, true); + mSettingsAdapter.mPinnedHeaderCount = headers.length; + + mSettingsAdapter.changeCursor(0, createCursor(headers[0], values)); + mSettingsAdapter.changeCursor(1, createCursor(headers[1], valuesDrawer)); + mListView.setAdapter(mSettingsAdapter); + } + + private Cursor createCursor(String header, String[] values) { + MatrixCursor cursor = new MatrixCursor(new String[]{"_id", header}); + int count = values.length; + for (int i = 0; i < count; i++) { + cursor.addRow(new Object[]{i, values[i]}); + } + return cursor; + } + + // One time View setup + public void initializeViews() { + mOverviewPanel.setAlpha(0f); + mOverviewPanel + .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + ((SlidingUpPanelLayout) mOverviewPanel) + .setPanelSlideListener(new SettingsSimplePanelSlideListener()); + + //Quick Settings Buttons + View widgetButton = mLauncher.findViewById(R.id.widget_button); + widgetButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View arg0) { + mLauncher.showAllApps(true, AppsCustomizePagedView.ContentType.Widgets, true); + } + }); + widgetButton.setOnTouchListener(mLauncher.getHapticFeedbackTouchListener()); + + View wallpaperButton = mLauncher.findViewById(R.id.wallpaper_button); + wallpaperButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View arg0) { + mLauncher.startWallpaper(); + } + }); + wallpaperButton.setOnTouchListener(mLauncher.getHapticFeedbackTouchListener()); + + View settingsButton = mLauncher.findViewById(R.id.settings_button); + settingsButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View arg0) { + } + }); + settingsButton.setOnTouchListener(mLauncher.getHapticFeedbackTouchListener()); + + View defaultScreenButton = mLauncher.findViewById(R.id.default_screen_button); + defaultScreenButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View arg0) { + mLauncher.getWorkspace().onClickDefaultScreenButton(); + } + }); + + defaultScreenButton.setOnTouchListener(mLauncher.getHapticFeedbackTouchListener()); + + //Handle + View v = mOverviewPanel.findViewById(R.id.settings_pane_header); + ((SlidingUpPanelLayout) mOverviewPanel).setEnableDragViewTouchEvents(true); + ((SlidingUpPanelLayout) mOverviewPanel).setDragView(v); + v.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (((SlidingUpPanelLayout) mOverviewPanel).isExpanded()) { + ((SlidingUpPanelLayout) mOverviewPanel).collapsePane(); + } else { + ((SlidingUpPanelLayout) mOverviewPanel).expandPane(); + } + } + }); + } + + public void update() { + Resources res = mLauncher.getResources(); + View widgetButton = mOverviewPanel.findViewById(R.id.widget_button); + View wallpaperButton = mOverviewPanel + .findViewById(R.id.wallpaper_button); + View settingsButton = mOverviewPanel.findViewById(R.id.settings_button); + View defaultHomePanel = mOverviewPanel.findViewById(R.id.default_screen_button); + + boolean isAllAppsVisible = mLauncher.isAllAppsVisible(); + + PagedView pagedView = !isAllAppsVisible ? mLauncher.getWorkspace() + : mLauncher.getAppsCustomizeContent(); + + defaultHomePanel.setVisibility((pagedView.getPageCount() > 1) ? + View.VISIBLE : View.GONE); + + if (mLauncher.isAllAppsVisible()) { + mSettingsAdapter.changeCursor(0, createCursor(res + .getString(R.string.home_screen_settings), new String[]{})); + } else { + String[] values = new String[] { + res.getString(R.string.home_screen_search_text), + res.getString(R.string.page_scroll_effect_text), + res.getString(R.string.larger_icons_text), + res.getString(R.string.hide_icon_labels)}; + mSettingsAdapter.changeCursor(0, createCursor(res + .getString(R.string.home_screen_settings), values)); + } + + // Make sure overview panel is drawn above apps customize and collapsed + mOverviewPanel.bringToFront(); + mOverviewPanel.invalidate(); + + ((SlidingUpPanelLayout) mOverviewPanel).setPanelHeight(isAllAppsVisible ? + res.getDimensionPixelSize(R.dimen.settings_pane_handle) + : res.getDimensionPixelSize(R.dimen.sliding_panel_padding)); + + ((SlidingUpPanelLayout) mOverviewPanel).collapsePane(); + } + + public void notifyDataSetInvalidated() { + mSettingsAdapter.notifyDataSetInvalidated(); + } + + + class SettingsSimplePanelSlideListener extends SlidingUpPanelLayout.SimplePanelSlideListener { + ImageView mAnimatedArrow; + + public SettingsSimplePanelSlideListener() { + super(); + mAnimatedArrow = (ImageView) mOverviewPanel.findViewById(R.id.settings_drag_arrow); + } + + @Override + public void onPanelCollapsed(View panel) { + mAnimatedArrow.setBackgroundResource(R.drawable.transition_arrow_reverse); + + AnimationDrawable frameAnimation = (AnimationDrawable) mAnimatedArrow.getBackground(); + frameAnimation.start(); + } + + @Override + public void onPanelExpanded(View panel) { + mAnimatedArrow.setBackgroundResource(R.drawable.transition_arrow); + + AnimationDrawable frameAnimation = (AnimationDrawable) mAnimatedArrow.getBackground(); + frameAnimation.start(); + } + } +} |