summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/arrays.xml8
-rw-r--r--res/values/strings.xml2
-rw-r--r--res/xml/preferences.xml6
-rw-r--r--src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java40
-rw-r--r--src/com/cyanogenmod/trebuchet/PagedView.java2
-rw-r--r--src/com/cyanogenmod/trebuchet/preference/PreferencesProvider.java4
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);