summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2015-10-06 11:27:04 -0700
committerTony Wickham <twickham@google.com>2015-10-06 13:07:23 -0700
commit3a3517fb6c17120c6d11e5c95a0de4e81205d0ae (patch)
tree6c4262f0f15f4b79726528a1814bdf7c4edeec91
parentc84e6e19363c590bbfbac17e9ab7cc61a04d552a (diff)
downloadandroid_packages_apps_Trebuchet-3a3517fb6c17120c6d11e5c95a0de4e81205d0ae.tar.gz
android_packages_apps_Trebuchet-3a3517fb6c17120c6d11e5c95a0de4e81205d0ae.tar.bz2
android_packages_apps_Trebuchet-3a3517fb6c17120c6d11e5c95a0de4e81205d0ae.zip
Add widget size options for QSB.
Bug: 24704753 Change-Id: I3e16c1f67a67b08b3843f7f38312447bdfa6a91e
-rw-r--r--src/com/android/launcher3/DeviceProfile.java6
-rw-r--r--src/com/android/launcher3/Launcher.java27
2 files changed, 28 insertions, 5 deletions
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index 774594fe2..47c5ccc9e 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -250,7 +250,7 @@ public class DeviceProfile {
/** Returns the search bar bounds in the current orientation */
public Rect getSearchBarBounds(boolean isLayoutRtl) {
Rect bounds = new Rect();
- if (isLandscape && transposeLayoutWithOrientation) {
+ if (isVerticalBarLayout()) {
if (isLayoutRtl) {
bounds.set(availableWidthPx - searchBarSpaceHeightPx, edgeMarginPx,
availableWidthPx, availableHeightPx - edgeMarginPx);
@@ -284,7 +284,7 @@ public class DeviceProfile {
Rect getWorkspacePadding(boolean isLayoutRtl) {
Rect searchBarBounds = getSearchBarBounds(isLayoutRtl);
Rect padding = new Rect();
- if (isLandscape && transposeLayoutWithOrientation) {
+ if (isVerticalBarLayout()) {
// Pad the left and right of the workspace with search/hotseat bar sizes
if (isLayoutRtl) {
padding.set(hotseatBarHeightPx, edgeMarginPx,
@@ -320,7 +320,7 @@ public class DeviceProfile {
}
private int getWorkspacePageSpacing(boolean isLayoutRtl) {
- if ((isLandscape && transposeLayoutWithOrientation) || isLargeTablet) {
+ if (isVerticalBarLayout() || isLargeTablet) {
// In landscape mode the page spacing is set to the default.
return defaultPageSpacingPx;
} else {
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 5a5bad7e5..bf9a42681 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -430,8 +430,8 @@ public class Launcher extends Activity
// Load configuration-specific DeviceProfile
mDeviceProfile = getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE ?
- app.getInvariantDeviceProfile().landscapeProfile
- : app.getInvariantDeviceProfile().portraitProfile;
+ app.getInvariantDeviceProfile().landscapeProfile
+ : app.getInvariantDeviceProfile().portraitProfile;
mSharedPrefs = getSharedPreferences(LauncherAppState.getSharedPreferencesKey(),
Context.MODE_PRIVATE);
@@ -3494,6 +3494,28 @@ public class Launcher extends Activity
opts.putInt(AppWidgetManager.OPTION_APPWIDGET_HOST_CATEGORY,
AppWidgetProviderInfo.WIDGET_CATEGORY_SEARCHBOX);
+ // Determine the min and max dimensions of the widget.
+ LauncherAppState app = LauncherAppState.getInstance();
+ DeviceProfile portraitProfile = app.getInvariantDeviceProfile().portraitProfile;
+ DeviceProfile landscapeProfile = app.getInvariantDeviceProfile().landscapeProfile;
+ float density = getResources().getDisplayMetrics().density;
+ Rect searchBounds = portraitProfile.getSearchBarBounds(Utilities.isRtl(getResources()));
+ int maxHeight = (int) (searchBounds.height() / density);
+ int minHeight = maxHeight;
+ int maxWidth = (int) (searchBounds.width() / density);
+ int minWidth = maxWidth;
+ if (!landscapeProfile.isVerticalBarLayout()) {
+ searchBounds = landscapeProfile.getSearchBarBounds(Utilities.isRtl(getResources()));
+ maxHeight = (int) Math.max(maxHeight, searchBounds.height() / density);
+ minHeight = (int) Math.min(minHeight, searchBounds.height() / density);
+ maxWidth = (int) Math.max(maxWidth, searchBounds.width() / density);
+ minWidth = (int) Math.min(minWidth, searchBounds.width() / density);
+ }
+ opts.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT, maxHeight);
+ opts.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT, minHeight);
+ opts.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH, maxWidth);
+ opts.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, minWidth);
+
SharedPreferences sp = getSharedPreferences(
LauncherAppState.getSharedPreferencesKey(), MODE_PRIVATE);
int widgetId = sp.getInt(QSB_WIDGET_ID, -1);
@@ -4110,6 +4132,7 @@ public class Launcher extends Activity
return mDeviceProfile.isVerticalBarLayout();
}
+ /** Returns the search bar bounds in pixels. */
protected Rect getSearchBarBounds() {
return mDeviceProfile.getSearchBarBounds(Utilities.isRtl(getResources()));
}