summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNebojsa Cvetkovic <nebkat@gmail.com>2014-01-19 12:05:57 +0000
committerDanesh M <daneshm90@gmail.com>2014-01-24 16:25:20 -0800
commit4428b065d9d674a84b066015ab873f8849f2a922 (patch)
tree548870602e578b13a07c9d1f696a2acbdaaa8008
parent912a62bc58b967e097aa35b13c092a48401a810f (diff)
downloadandroid_packages_apps_Trebuchet-4428b065d9d674a84b066015ab873f8849f2a922.tar.gz
android_packages_apps_Trebuchet-4428b065d9d674a84b066015ab873f8849f2a922.tar.bz2
android_packages_apps_Trebuchet-4428b065d9d674a84b066015ab873f8849f2a922.zip
Workspace/AppsCustomizePagedView: Improved transition effect dialog
Change-Id: I7c611ee9702c3a5b945644721948c4724f7639a7
-rw-r--r--res/drawable-hdpi/ic_menu_overflow.pngbin0 -> 144 bytes
-rw-r--r--res/drawable-mdpi/ic_menu_overflow.pngbin0 -> 122 bytes
-rw-r--r--res/drawable-xhdpi/ic_menu_overflow.pngbin0 -> 167 bytes
-rw-r--r--res/layout/dialog_title_overflow_menu.xml35
-rw-r--r--res/menu/scrolling_settings.xml10
-rw-r--r--res/values/cm_strings.xml6
-rw-r--r--res/values/preferences_defaults.xml2
-rw-r--r--res/xml/preferences_homescreen.xml6
-rw-r--r--src/com/android/launcher3/AppsCustomizePagedView.java30
-rw-r--r--src/com/android/launcher3/Launcher.java163
-rw-r--r--src/com/android/launcher3/PagedView.java4
-rw-r--r--src/com/android/launcher3/WallpaperPickerActivity.java2
-rw-r--r--src/com/android/launcher3/Workspace.java29
-rw-r--r--src/com/android/launcher3/settings/SettingsProvider.java2
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
new file mode 100644
index 000000000..2abc45809
--- /dev/null
+++ b/res/drawable-hdpi/ic_menu_overflow.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_menu_overflow.png b/res/drawable-mdpi/ic_menu_overflow.png
new file mode 100644
index 000000000..ba704b67e
--- /dev/null
+++ b/res/drawable-mdpi/ic_menu_overflow.png
Binary files differ
diff --git a/res/drawable-xhdpi/ic_menu_overflow.png b/res/drawable-xhdpi/ic_menu_overflow.png
new file mode 100644
index 000000000..a92fb1d4a
--- /dev/null
+++ b/res/drawable-xhdpi/ic_menu_overflow.png
Binary files differ
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";