diff options
-rw-r--r-- | res/values/arrays.xml | 8 | ||||
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | res/xml/preferences.xml | 6 | ||||
-rw-r--r-- | src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java | 40 | ||||
-rw-r--r-- | src/com/cyanogenmod/trebuchet/PagedView.java | 2 | ||||
-rw-r--r-- | src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java | 4 |
6 files changed, 43 insertions, 19 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 19eac93..fe14c4c 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -74,4 +74,12 @@ <item>Stack</item> <item>Accordian</item> </string-array> + <string-array name="preferences_interface_drawer_orientation_entries"> + <item>Horizontal</item> + <item>Vertical</item> + </string-array> + <string-array name="preferences_interface_drawer_orientation_values"> + <item>horizontal</item> + <item>vertical</item> + </string-array> </resources> diff --git a/res/values/strings.xml b/res/values/strings.xml index 652fe2c..ea6a0f5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -344,6 +344,8 @@ s --> <!-- Drawer --> <string name="preferences_interface_drawer_title">Drawer</string> + <string name="preferences_interface_drawer_orientation_title">Orientation</string> + <string name="preferences_interface_drawer_orientation_summary">Choose which way the drawer scrolls</string> <string name="preferences_interface_drawer_widgets_category">Widgets</string> <string name="preferences_interface_drawer_widgets_join_apps_title">Join with apps</string> <string name="preferences_interface_drawer_widgets_join_apps_summary">Swipe from apps drawer to widgets drawer without changing tabs</string> diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index e575da0..2e14d2f 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -113,6 +113,12 @@ <!-- Drawer --> <PreferenceScreen android:key="ui_drawer" android:title="@string/preferences_interface_drawer_title"> + <ListPreference android:key="ui_drawer_orientation" + android:title="@string/preferences_interface_drawer_orientation_title" + android:summary="@string/preferences_interface_drawer_orientation_summary" + android:entries="@array/preferences_interface_drawer_orientation_entries" + android:entryValues="@array/preferences_interface_drawer_orientation_values" + android:defaultValue="horizontal" /> <PreferenceCategory android:title="@string/preferences_interface_drawer_widgets_category"> <CheckBoxPreference android:key="ui_drawer_widgets_join_apps" android:title="@string/preferences_interface_drawer_widgets_join_apps_title" diff --git a/src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java b/src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java index 9564b22..791490d 100644 --- a/src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java +++ b/src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java @@ -380,6 +380,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // Preferences mJoinWidgetsApps = PreferencesProvider.Interface.Drawer.getJoinWidgetsApps(context); + mVertical = PreferencesProvider.Interface.Drawer.getVertical(context); mTransitionEffect = PreferencesProvider.Interface.Drawer.Scrolling.getTransitionEffect(context, resources.getString(R.string.config_drawerDefaultTransitionEffect)); mFadeInAdjacentScreens = PreferencesProvider.Interface.Drawer.Scrolling.getFadeInAdjacentScreens(context); @@ -412,15 +413,6 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // preview can be before applying the widget scaling mMinWidgetSpan = 1; mMaxWidgetSpan = 3; - - // The padding on the non-matched dimension for the default widget preview icons - // (top + bottom) - mFadeInAdjacentScreens = false; - - // Unless otherwise specified this view is important for accessibility. - if (getImportantForAccessibility() == View.IMPORTANT_FOR_ACCESSIBILITY_AUTO) { - setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES); - } } @Override @@ -1915,7 +1907,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } else { v.setPivotY(scrollProgress < 0 ? 0 : v.getMeasuredHeight()); v.setPivotX(v.getMeasuredWidth() * 0.5f); - v.setRotationX(rotation); + v.setRotationX(-rotation); } v.setAlpha(alpha); } @@ -2014,8 +2006,13 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen if (scrollProgress >= -0.5f && scrollProgress <= 0.5f) { v.setPivotX(v.getMeasuredWidth() * 0.5f); v.setPivotY(v.getMeasuredHeight() * 0.5f); - v.setRotationY(rotation); - v.setTranslationX(v.getMeasuredWidth() * scrollProgress); + if (!mVertical) { + v.setTranslationX(v.getMeasuredWidth() * scrollProgress); + v.setRotationY(rotation); + } else { + v.setTranslationY(v.getMeasuredHeight() * scrollProgress); + v.setRotationX(-rotation); + } if (v.getVisibility() != VISIBLE) { v.setVisibility(VISIBLE); } @@ -2042,7 +2039,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } if (!isInOverscroll || mScrollTransformsDirty) { // Limit the "normal" effects to mScrollX/Y - int scroll = mScrollX; + int scroll = !mVertical ? mScrollX : mScrollY; // Reset transforms when we aren't in overscroll if (mOverscrollTransformsDirty) { mOverscrollTransformsDirty = false; @@ -2108,16 +2105,23 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } if (isInOverscroll) { - int index = mOverScrollX < 0 ? 0 : getChildCount() - 1; + int index = (!mVertical ? mOverScrollX : mOverScrollY) < 0 ? 0 : getChildCount() - 1; View v = getPageAt(index); if (v != null) { float scrollProgress = getScrollProgress(screenScroll, v, index); float rotation = - TRANSITION_MAX_ROTATION * scrollProgress; v.setCameraDistance(mDensity * CAMERA_DISTANCE); - v.setPivotX(v.getMeasuredWidth() * (index == 0 ? TRANSITION_PIVOT : 1 - TRANSITION_PIVOT)); - v.setPivotY(v.getMeasuredHeight() * 0.5f); - v.setRotationY(rotation); - v.setTranslationX(0); + if (!mVertical) { + v.setPivotX(v.getMeasuredWidth() * (index == 0 ? TRANSITION_PIVOT : 1 - TRANSITION_PIVOT)); + v.setPivotY(v.getMeasuredHeight() * 0.5f); + v.setRotationY(rotation); + v.setTranslationX(0); + } else { + v.setPivotX(v.getMeasuredWidth() * 0.5f); + v.setPivotY(v.getMeasuredHeight() * (index == 0 ? TRANSITION_PIVOT : 1 - TRANSITION_PIVOT)); + v.setRotationX(-rotation); + v.setTranslationY(0); + } mOverscrollTransformsDirty = true; } } diff --git a/src/com/cyanogenmod/trebuchet/PagedView.java b/src/com/cyanogenmod/trebuchet/PagedView.java index aa74521..47159a5 100644 --- a/src/com/cyanogenmod/trebuchet/PagedView.java +++ b/src/com/cyanogenmod/trebuchet/PagedView.java @@ -2113,7 +2113,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc int pageSize = !mVertical ? getMeasuredWidth() : getMeasuredHeight(); int lastChildIndex = Math.max(0, getChildCount() - 1); int maxScroll = getChildOffset(lastChildIndex) - getRelativeChildOffset(lastChildIndex); - int trackWidth = pageSize - mScrollIndicatorPaddingLeft - mScrollIndicatorPaddingRight; + int trackWidth = getMeasuredWidth() - mScrollIndicatorPaddingLeft - mScrollIndicatorPaddingRight; int indicatorWidth = mScrollIndicator.getMeasuredWidth() - mScrollIndicator.getPaddingLeft() - mScrollIndicator.getPaddingRight(); diff --git a/src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java b/src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java index 8109289..8cd84c1 100644 --- a/src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java +++ b/src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java @@ -117,6 +117,10 @@ public final class PreferencesProvider { } public static class Drawer { + public static boolean getVertical(Context context) { + final SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_KEY, 0); + return preferences.getString("ui_drawer_orientation", "horizontal").equals("vertical"); + } public static boolean getJoinWidgetsApps(Context context) { final SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_KEY, 0); return preferences.getBoolean("ui_drawer_widgets_join_apps", true); |