diff options
-rw-r--r-- | res/drawable-hdpi/ic_menu_overflow.png | bin | 0 -> 144 bytes | |||
-rw-r--r-- | res/drawable-mdpi/ic_menu_overflow.png | bin | 0 -> 122 bytes | |||
-rw-r--r-- | res/drawable-xhdpi/ic_menu_overflow.png | bin | 0 -> 167 bytes | |||
-rw-r--r-- | res/layout/dialog_title_overflow_menu.xml | 35 | ||||
-rw-r--r-- | res/menu/scrolling_settings.xml | 10 | ||||
-rw-r--r-- | res/values/cm_strings.xml | 6 | ||||
-rw-r--r-- | res/values/preferences_defaults.xml | 2 | ||||
-rw-r--r-- | res/xml/preferences_homescreen.xml | 6 | ||||
-rw-r--r-- | src/com/android/launcher3/AppsCustomizePagedView.java | 30 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 163 | ||||
-rw-r--r-- | src/com/android/launcher3/PagedView.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher3/WallpaperPickerActivity.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 29 | ||||
-rw-r--r-- | src/com/android/launcher3/settings/SettingsProvider.java | 2 |
14 files changed, 217 insertions, 72 deletions
diff --git a/res/drawable-hdpi/ic_menu_overflow.png b/res/drawable-hdpi/ic_menu_overflow.png Binary files differnew file mode 100644 index 000000000..2abc45809 --- /dev/null +++ b/res/drawable-hdpi/ic_menu_overflow.png diff --git a/res/drawable-mdpi/ic_menu_overflow.png b/res/drawable-mdpi/ic_menu_overflow.png Binary files differnew file mode 100644 index 000000000..ba704b67e --- /dev/null +++ b/res/drawable-mdpi/ic_menu_overflow.png diff --git a/res/drawable-xhdpi/ic_menu_overflow.png b/res/drawable-xhdpi/ic_menu_overflow.png Binary files differnew file mode 100644 index 000000000..a92fb1d4a --- /dev/null +++ b/res/drawable-xhdpi/ic_menu_overflow.png diff --git a/res/layout/dialog_title_overflow_menu.xml b/res/layout/dialog_title_overflow_menu.xml new file mode 100644 index 000000000..636384223 --- /dev/null +++ b/res/layout/dialog_title_overflow_menu.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal"> + <LinearLayout android:id="@+id/title_template" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:gravity="center_vertical" + android:minHeight="64dip" + android:layout_marginStart="16dip" + android:layout_marginEnd="16dip"> + <ImageView android:id="@android:id/icon" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingEnd="8dip" + android:src="@null" /> + <TextView android:id="@android:id/title" + android:textAppearance="@android:style/TextAppearance.Holo.DialogWindowTitle" + android:singleLine="true" + android:ellipsize="end" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_weight="1" + android:textAlignment="viewStart" /> + <ImageButton android:id="@+id/overflow_menu_button" + android:background="?android:actionBarItemBackground" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical|right" + android:padding="6dip" + android:src="@drawable/ic_menu_overflow"/> + </LinearLayout> +</LinearLayout>
\ No newline at end of file diff --git a/res/menu/scrolling_settings.xml b/res/menu/scrolling_settings.xml new file mode 100644 index 000000000..e29a3cac6 --- /dev/null +++ b/res/menu/scrolling_settings.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="utf-8"?> + +<menu xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:id="@+id/scrolling_page_outlines" + android:checkable="true" + android:title="@string/scrolling_page_outlines"/> + <item android:id="@+id/scrolling_fade_adjacent" + android:checkable="true" + android:title="@string/scrolling_fade_adjacent"/> +</menu>
\ No newline at end of file diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index 028426970..fbaa53143 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -19,6 +19,9 @@ <string name="sort_mode_launch_count">Launch Count</string> <string name="sort_mode_install_time">Install Time</string> + <string name="scrolling_page_outlines">Page outlines</string> + <string name="scrolling_fade_adjacent">Fade side pages</string> + <string name="wallpaper_scroll">Scroll wallpaper</string> @@ -35,9 +38,6 @@ <string name="preferences_interface_homescreen_summary">Screens and wallpaper</string> <string name="preferences_interface_homescreen_search_title">Search bar</string> <string name="preferences_interface_homescreen_search_summary">Show persistent search bar at top of screen</string> - <string name="preferences_interface_homescreen_scrolling_category">Scrolling</string> - <string name="preferences_interface_homescreen_scrolling_page_outlines_title">Page outlines</string> - <string name="preferences_interface_homescreen_scrolling_page_outlines_summary">Show page outlines while scrolling homescreens</string> <!-- Drawer --> <string name="preferences_interface_drawer_title">Drawer</string> diff --git a/res/values/preferences_defaults.xml b/res/values/preferences_defaults.xml index ebb1650f4..288157381 100644 --- a/res/values/preferences_defaults.xml +++ b/res/values/preferences_defaults.xml @@ -4,7 +4,9 @@ <string name="preferences_interface_homescreen_scrolling_transition_effect">none</string> <bool name="preferences_interface_homescreen_scrolling_wallpaper_scroll_default">true</bool> <bool name="preferences_interface_homescreen_scrolling_page_outlines_default">@bool/config_workspaceDefaultShowOutlines</bool> + <bool name="preferences_interface_homescreen_scrolling_fade_adjacent_default">@bool/config_workspaceFadeAdjacentScreens</bool> <string name="preferences_interface_drawer_scrolling_transition_effect">stack</string> + <bool name="preferences_interface_drawer_scrolling_fade_adjacent_default">false</bool> <bool name="preferences_interface_general_icons_large_default">@bool/config_largeIcons</bool> <string name="preferences_interface_general_icons_text_font_family_default">sans-serif-condensed</string> <integer name="preferences_interface_general_icons_text_font_style_default">0</integer> diff --git a/res/xml/preferences_homescreen.xml b/res/xml/preferences_homescreen.xml index 438611808..8b2652b9a 100644 --- a/res/xml/preferences_homescreen.xml +++ b/res/xml/preferences_homescreen.xml @@ -22,10 +22,4 @@ android:title="@string/preferences_interface_homescreen_search_title" android:summary="@string/preferences_interface_homescreen_search_summary" android:defaultValue="@bool/preferences_interface_homescreen_search_default" /> - <PreferenceCategory android:title="@string/preferences_interface_homescreen_scrolling_category"> - <CheckBoxPreference android:key="ui_homescreen_scrolling_page_outlines" - android:title="@string/preferences_interface_homescreen_scrolling_page_outlines_title" - android:summary="@string/preferences_interface_homescreen_scrolling_page_outlines_summary" - android:defaultValue="@bool/preferences_interface_homescreen_scrolling_page_outlines_default" /> - </PreferenceCategory> </PreferenceScreen> diff --git a/src/com/android/launcher3/AppsCustomizePagedView.java b/src/com/android/launcher3/AppsCustomizePagedView.java index 44f50b200..28bc4e477 100644 --- a/src/com/android/launcher3/AppsCustomizePagedView.java +++ b/src/com/android/launcher3/AppsCustomizePagedView.java @@ -210,6 +210,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen enum State { NORMAL, OVERVIEW}; private State mState = State.NORMAL; private boolean mIsSwitchingState = false; + private boolean mAppsCustomizeFadeInAdjacentScreens; // Animation values private float mNewScale; @@ -297,7 +298,8 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // The padding on the non-matched dimension for the default widget preview icons // (top + bottom) - mFadeInAdjacentScreens = false; + mAppsCustomizeFadeInAdjacentScreens = SettingsProvider.getBoolean(context, SettingsProvider.SETTINGS_UI_DRAWER_SCROLLING_FADE_ADJACENT, + R.bool.preferences_interface_drawer_scrolling_fade_adjacent_default); TransitionEffect.setFromString(this, SettingsProvider.getString(context, SettingsProvider.SETTINGS_UI_DRAWER_SCROLLING_TRANSITION_EFFECT, @@ -1437,14 +1439,21 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen return getChildCount() - index - 1; } - // In apps customize, we have a scrolling effect which emulates pulling cards off of a stack. + @Override + public void setFadeInAdjacentScreens(boolean fade) { + mAppsCustomizeFadeInAdjacentScreens = fade; + } + @Override protected void screenScrolled(int screenCenter) { final boolean isRtl = isLayoutRtl(); mUseTransitionEffect = !isInOverviewMode() && !mIsSwitchingState; + updatePageAlphaValues(screenCenter); + super.screenScrolled(screenCenter); + enableHwLayersOnVisiblePages(); boolean isInOverscroll = mOverScrollX < 0 || mOverScrollX > mMaxScrollX; @@ -1530,6 +1539,23 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen acceleratedOverScroll(amount); } + private void updatePageAlphaValues(int screenCenter) { + boolean isInOverscroll = mOverScrollX < 0 || mOverScrollX > mMaxScrollX; + if (mAppsCustomizeFadeInAdjacentScreens && + mState == State.NORMAL && + !mIsSwitchingState && + !isInOverscroll) { + for (int i = 0; i < getChildCount(); i++) { + View child = getPageAt(i); + if (child != null) { + float scrollProgress = getScrollProgress(screenCenter, child, i); + float alpha = 1 - Math.abs(scrollProgress); + setChildAlpha(child, alpha); + } + } + } + } + public boolean isInOverviewMode() { return mState == State.OVERVIEW; } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index d0df9c371..0084b7182 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -50,7 +50,9 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Configuration; import android.content.res.Resources; +import android.content.res.TypedArray; import android.database.ContentObserver; +import android.database.DataSetObserver; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Point; @@ -95,9 +97,14 @@ import android.view.animation.AccelerateDecelerateInterpolator; import android.view.animation.DecelerateInterpolator; import android.view.inputmethod.InputMethodManager; +import android.widget.AbsListView; +import android.widget.AdapterView; import android.widget.Advanceable; +import android.widget.ArrayAdapter; import android.widget.FrameLayout; +import android.widget.GridView; import android.widget.ImageView; +import android.widget.ListAdapter; import android.widget.PopupMenu; import android.widget.TextView; import android.widget.Toast; @@ -116,6 +123,7 @@ import java.io.IOException; import java.io.PrintWriter; import java.text.DateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.HashMap; @@ -1003,17 +1011,9 @@ public class Launcher extends Activity final Menu menu = popupMenu.getMenu(); popupMenu.inflate(R.menu.apps_customize_sort_mode); AppsCustomizePagedView.SortMode sortMode = mAppsCustomizeContent.getSortMode(); - switch (sortMode) { - case Title: - menu.findItem(R.id.sort_mode_title).setChecked(true); - break; - case LaunchCount: - menu.findItem(R.id.sort_mode_launch_count).setChecked(true); - break; - case InstallTime: - menu.findItem(R.id.sort_mode_install_time).setChecked(true); - break; - } + menu.findItem(R.id.sort_mode_title).setChecked(sortMode == AppsCustomizePagedView.SortMode.Title); + menu.findItem(R.id.sort_mode_launch_count).setChecked(sortMode == AppsCustomizePagedView.SortMode.LaunchCount); + menu.findItem(R.id.sort_mode_install_time).setChecked(sortMode == AppsCustomizePagedView.SortMode.InstallTime); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { @@ -1035,20 +1035,14 @@ public class Launcher extends Activity public void onClickTransitionEffectButton(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(R.string.transition_effect_button_text); - - if (isAllAppsVisible()) { - mAppsCustomizeContent.exitOverviewMode(true); - } else { - mWorkspace.exitOverviewMode(true); - } + // Load values final PagedView pagedView = isAllAppsVisible() ? mAppsCustomizeContent : mWorkspace; final PagedView.TransitionEffect oldEffect = pagedView.getTransitionEffect(); final String oldEffectName = oldEffect != null ? oldEffect.getName() : PagedView.TransitionEffect.TRANSITION_EFFECT_NONE; - final String[] entries = getResources().getStringArray(R.array.transition_effect_entries); + final String[] titles = getResources().getStringArray(R.array.transition_effect_entries); final String[] values = getResources().getStringArray(R.array.transition_effect_values); int selected = -1; @@ -1059,50 +1053,53 @@ public class Launcher extends Activity } } - builder.setSingleChoiceItems(entries, selected, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - String effect = values[which]; - PagedView.TransitionEffect.setFromString(pagedView, effect); + // Create title view with overflow menu + View customTitle = getLayoutInflater().inflate(R.layout.dialog_title_overflow_menu, null); + TextView title = (TextView) customTitle.findViewById(android.R.id.title); + title.setText(R.string.transition_effect_button_text); - final int currentPage = pagedView.getNextPage(); - final int nextPage = currentPage + (currentPage != pagedView.getPageCount() - 1 ? 1 : -1); + View overflowMenu = customTitle.findViewById(R.id.overflow_menu_button); + overflowMenu.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + onClickTransitionEffectOverflowMenuButton(v); + } + }); + builder.setCustomTitle(customTitle); - pagedView.snapToPageImmediately(currentPage); - pagedView.snapToPage(nextPage, new Runnable() { - @Override - public void run() { - pagedView.snapToPage(currentPage); - } - }); + builder.setSingleChoiceItems(titles, selected, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + String effect = values[which]; + PagedView.TransitionEffect.setFromString(pagedView, effect); + + // Show the changes immediately + final int currentPage = pagedView.getNextPage(); + final int nextPage = currentPage + (currentPage != pagedView.getPageCount() - 1 ? 1 : -1); + pagedView.snapToPageImmediately(currentPage); + pagedView.snapToPage(nextPage, new Runnable() { + @Override + public void run() { + pagedView.snapToPage(currentPage); } - }) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - PagedView.TransitionEffect effect = pagedView.getTransitionEffect(); - String name = effect != null ? effect.getName() : PagedView.TransitionEffect.TRANSITION_EFFECT_NONE; + }); - SettingsProvider.get(Launcher.this).edit() - .putString(!isAllAppsVisible() ? - SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_TRANSITION_EFFECT : - SettingsProvider.SETTINGS_UI_DRAWER_SCROLLING_TRANSITION_EFFECT, name) - .commit(); + SettingsProvider.get(Launcher.this).edit() + .putString(!isAllAppsVisible() ? + SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_TRANSITION_EFFECT : + SettingsProvider.SETTINGS_UI_DRAWER_SCROLLING_TRANSITION_EFFECT, effect) + .commit(); + } + }); - dialog.dismiss(); - } - }) - .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.cancel(); - } - }) - .setOnCancelListener(new DialogInterface.OnCancelListener() { - @Override - public void onCancel(DialogInterface dialog) { - pagedView.setTransitionEffect(oldEffect); - } - }) + if (isAllAppsVisible()) { + mAppsCustomizeContent.exitOverviewMode(true); + } else { + mWorkspace.exitOverviewMode(true); + } + + builder.setPositiveButton(android.R.string.ok, null) .setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { @@ -1115,6 +1112,58 @@ public class Launcher extends Activity mTransitionEffectDialog.getWindow().getDecorView().setAlpha(0.6f); } + public void onClickTransitionEffectOverflowMenuButton(View v) { + final PopupMenu popupMenu = new PopupMenu(this, v); + + final Menu menu = popupMenu.getMenu(); + popupMenu.inflate(R.menu.scrolling_settings); + MenuItem pageOutlines = menu.findItem(R.id.scrolling_page_outlines); + MenuItem fadeAdjacent = menu.findItem(R.id.scrolling_fade_adjacent); + + pageOutlines.setVisible(!isAllAppsVisible()); + pageOutlines.setChecked(SettingsProvider.getBoolean(this, + SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_PAGE_OUTLINES, + R.bool.preferences_interface_homescreen_scrolling_page_outlines_default + )); + + fadeAdjacent.setChecked(SettingsProvider.getBoolean(this, + !isAllAppsVisible() ? + SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_FADE_ADJACENT : + SettingsProvider.SETTINGS_UI_DRAWER_SCROLLING_FADE_ADJACENT, + !isAllAppsVisible() ? + R.bool.preferences_interface_homescreen_scrolling_fade_adjacent_default : + R.bool.preferences_interface_drawer_scrolling_fade_adjacent_default + )); + + final PagedView pagedView = !isAllAppsVisible() ? mWorkspace : mAppsCustomizeContent; + + popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + switch (item.getItemId()) { + case R.id.scrolling_page_outlines: + SettingsProvider.get(Launcher.this).edit() + .putBoolean(SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_PAGE_OUTLINES, !item.isChecked()).commit(); + mWorkspace.setShowOutlines(!item.isChecked()); + break; + case R.id.scrolling_fade_adjacent: + SettingsProvider.get(Launcher.this).edit() + .putBoolean(!isAllAppsVisible() ? + SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_FADE_ADJACENT : + SettingsProvider.SETTINGS_UI_DRAWER_SCROLLING_FADE_ADJACENT, !item.isChecked()).commit(); + pagedView.setFadeInAdjacentScreens(!item.isChecked()); + break; + default: + return false; + } + + return true; + } + }); + + popupMenu.show(); + } + public interface QSBScroller { public void setScrollY(int scrollY); } diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index b70175ee8..59b62604c 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -1040,6 +1040,10 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } } + public void setFadeInAdjacentScreens(boolean fade) { + mFadeInAdjacentScreens = fade; + } + protected void screenScrolled(int screenCenter) { boolean isInOverscroll = mOverScrollX < 0 || mOverScrollX > mMaxScrollX; // Apply transition effect and adjacent screen fade if enabled diff --git a/src/com/android/launcher3/WallpaperPickerActivity.java b/src/com/android/launcher3/WallpaperPickerActivity.java index de540f899..1dd4db7e4 100644 --- a/src/com/android/launcher3/WallpaperPickerActivity.java +++ b/src/com/android/launcher3/WallpaperPickerActivity.java @@ -66,7 +66,7 @@ import android.widget.ListAdapter; import com.android.gallery3d.exif.ExifInterface; import com.android.photos.BitmapRegionTileSource; -import org.cyanogenmod.trebuchet.settings.SettingsProvider; +import com.android.launcher3.settings.SettingsProvider; import java.io.BufferedInputStream; import java.io.File; diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 087d6d85f..a4b625185 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -261,8 +261,10 @@ public class Workspace extends SmoothPagedView private float mCurrentScale; private float mNewScale; private float[] mOldBackgroundAlphas; + private float[] mOldBackgroundAlphaMultipliers; private float[] mOldAlphas; private float[] mNewBackgroundAlphas; + private float[] mNewBackgroundAlphaMultipliers; private float[] mNewAlphas; private int mLastChildCount = -1; private float mTransitionProgress; @@ -313,13 +315,15 @@ public class Workspace extends SmoothPagedView mShowOutlines = SettingsProvider.getBoolean(context, SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_PAGE_OUTLINES, R.bool.preferences_interface_homescreen_scrolling_page_outlines_default); + mWorkspaceFadeInAdjacentScreens = SettingsProvider.getBoolean(context, + SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_FADE_ADJACENT, + R.bool.preferences_interface_homescreen_scrolling_fade_adjacent_default); TransitionEffect.setFromString(this, SettingsProvider.getString(context, SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_TRANSITION_EFFECT, R.string.preferences_interface_homescreen_scrolling_transition_effect)); mLauncher = (Launcher) context; final Resources res = getResources(); - mWorkspaceFadeInAdjacentScreens = res.getBoolean(R.bool.config_workspaceFadeAdjacentScreens); mFadeInAdjacentScreens = false; mWallpaperManager = WallpaperManager.getInstance(context); @@ -1427,7 +1431,7 @@ public class Workspace extends SmoothPagedView float scrollProgress = getScrollProgress(screenCenter, child, i); float alpha = 1 - Math.abs(scrollProgress); child.getShortcutsAndWidgets().setAlpha(alpha); - if (!mIsDragOccuring) { + if (!mIsDragOccuring && !mShowOutlines) { child.setBackgroundAlphaMultiplier( backgroundAlphaInterpolator(Math.abs(scrollProgress))); } else { @@ -1517,6 +1521,15 @@ public class Workspace extends SmoothPagedView return listener; } + public void setShowOutlines(boolean show) { + mShowOutlines = show; + } + + @Override + public void setFadeInAdjacentScreens(boolean fade) { + mWorkspaceFadeInAdjacentScreens = fade; + } + @Override protected void screenScrolled(int screenCenter) { final boolean isRtl = isLayoutRtl(); @@ -1529,9 +1542,10 @@ public class Workspace extends SmoothPagedView } mUseTransitionEffect = !isOnLastPageBeforeCustomContent && mState == State.NORMAL && !mIsSwitchingState; + updatePageAlphaValues(screenCenter); + super.screenScrolled(screenCenter); - updatePageAlphaValues(screenCenter); updateStateForCustomContent(screenCenter); enableHwLayersOnVisiblePages(); @@ -1856,8 +1870,10 @@ public class Workspace extends SmoothPagedView if (mLastChildCount == childCount) return; mOldBackgroundAlphas = new float[childCount]; + mOldBackgroundAlphaMultipliers = new float[childCount]; mOldAlphas = new float[childCount]; mNewBackgroundAlphas = new float[childCount]; + mNewBackgroundAlphaMultipliers = new float[childCount]; mNewAlphas = new float[childCount]; } @@ -2034,6 +2050,7 @@ public class Workspace extends SmoothPagedView final boolean stateIsSmall = (state == State.SMALL); final boolean stateIsOverview = (state == State.OVERVIEW); float finalBackgroundAlpha = (stateIsSpringLoaded || stateIsOverview) ? 1.0f : 0f; + float finalBackgroundAlphaMultiplier = (stateIsSpringLoaded || stateIsOverview || mShowOutlines) ? 1.0f : 0f; float finalHotseatAndPageIndicatorAlpha = (stateIsOverview || stateIsSmall) ? 0f : 1f; float finalOverviewPanelAlpha = stateIsOverview ? 1f : 0f; float finalSearchBarAlpha = !stateIsNormal ? 0f : 1f; @@ -2111,9 +2128,12 @@ public class Workspace extends SmoothPagedView mNewAlphas[i] = finalAlpha; if (animated) { mOldBackgroundAlphas[i] = cl.getBackgroundAlpha(); + mOldBackgroundAlphaMultipliers[i] = cl.getBackgroundAlphaMultiplier(); mNewBackgroundAlphas[i] = finalBackgroundAlpha; + mNewBackgroundAlphaMultipliers[i] = finalBackgroundAlphaMultiplier; } else { cl.setBackgroundAlpha(finalBackgroundAlpha); + cl.setBackgroundAlphaMultiplier(finalBackgroundAlphaMultiplier); cl.setShortcutAndWidgetAlpha(finalAlpha); } } @@ -2154,6 +2174,9 @@ public class Workspace extends SmoothPagedView cl.setBackgroundAlpha( a * mOldBackgroundAlphas[i] + b * mNewBackgroundAlphas[i]); + cl.setBackgroundAlphaMultiplier( + a * mOldBackgroundAlphaMultipliers[i] + + b * mNewBackgroundAlphaMultipliers[i]); } }); anim.play(bgAnim); diff --git a/src/com/android/launcher3/settings/SettingsProvider.java b/src/com/android/launcher3/settings/SettingsProvider.java index 472124684..501a7ea73 100644 --- a/src/com/android/launcher3/settings/SettingsProvider.java +++ b/src/com/android/launcher3/settings/SettingsProvider.java @@ -29,7 +29,9 @@ public final class SettingsProvider { public static final String SETTINGS_UI_HOMESCREEN_SCROLLING_TRANSITION_EFFECT = "ui_homescreen_scrolling_transition_effect"; public static final String SETTINGS_UI_HOMESCREEN_SCROLLING_WALLPAPER_SCROLL = "ui_homescreen_scrolling_wallpaper_scroll"; public static final String SETTINGS_UI_HOMESCREEN_SCROLLING_PAGE_OUTLINES = "ui_homescreen_scrolling_page_outlines"; + public static final String SETTINGS_UI_HOMESCREEN_SCROLLING_FADE_ADJACENT = "ui_homescreen_scrolling_fade_adjacent"; public static final String SETTINGS_UI_DRAWER_SCROLLING_TRANSITION_EFFECT = "ui_drawer_scrolling_transition_effect"; + public static final String SETTINGS_UI_DRAWER_SCROLLING_FADE_ADJACENT = "ui_drawer_scrolling_fade_adjacent"; public static final String SETTINGS_UI_GENERAL_ICONS_LARGE = "ui_general_icons_large"; public static final String SETTINGS_UI_GENERAL_ICONS_TEXT_FONT_FAMILY = "ui_general_icons_text_font"; public static final String SETTINGS_UI_GENERAL_ICONS_TEXT_FONT_STYLE = "ui_general_icons_text_font_style"; |