OSDN Git Service

Adding resizeMinWidth/Height to AppWidgetProviderInfo
authorAdam Cohen <adamcohen@google.com>
Wed, 20 Jul 2011 01:05:33 +0000 (18:05 -0700)
committerAdam Cohen <adamcohen@google.com>
Wed, 20 Jul 2011 01:39:40 +0000 (18:39 -0700)
Change-Id: I17dc27829938a3f25a664d8255965cf9b67cb17e

api/current.txt
core/java/android/appwidget/AppWidgetHost.java
core/java/android/appwidget/AppWidgetProviderInfo.java
core/res/res/values/attrs.xml
core/res/res/values/public.xml
services/java/com/android/server/AppWidgetService.java

index a9aaf38..a437640 100644 (file)
@@ -673,6 +673,8 @@ package android {
     field public static final int minHeight = 16843072; // 0x1010140
     field public static final int minLevel = 16843185; // 0x10101b1
     field public static final int minLines = 16843094; // 0x1010156
+    field public static final int minResizeHeight = 16843690; // 0x10103aa
+    field public static final int minResizeWidth = 16843689; // 0x10103a9
     field public static final int minSdkVersion = 16843276; // 0x101020c
     field public static final int minWidth = 16843071; // 0x101013f
     field public static final int mode = 16843134; // 0x101017e
@@ -3929,6 +3931,8 @@ package android.appwidget {
     field public int initialLayout;
     field public java.lang.String label;
     field public int minHeight;
+    field public int minResizeHeight;
+    field public int minResizeWidth;
     field public int minWidth;
     field public int previewImage;
     field public android.content.ComponentName provider;
index 8204a4f..08bc0ac 100644 (file)
@@ -261,6 +261,10 @@ public class AppWidgetHost {
             TypedValue.complexToDimensionPixelSize(appWidget.minWidth, mDisplayMetrics);
         appWidget.minHeight =
             TypedValue.complexToDimensionPixelSize(appWidget.minHeight, mDisplayMetrics);
+        appWidget.minResizeWidth =
+            TypedValue.complexToDimensionPixelSize(appWidget.minResizeWidth, mDisplayMetrics);
+        appWidget.minResizeHeight =
+            TypedValue.complexToDimensionPixelSize(appWidget.minResizeHeight, mDisplayMetrics);
 
         synchronized (mViews) {
             v = mViews.get(appWidgetId);
index b46802e..b8c5b02 100644 (file)
@@ -54,7 +54,8 @@ public class AppWidgetProviderInfo implements Parcelable {
     public ComponentName provider;
 
     /**
-     * Minimum width of the AppWidget, in dp.
+     * The default height of the widget when added to a host, in dp. The widget will get
+     * at least this width, and will often be given more, depending on the host.
      *
      * <p>This field corresponds to the <code>android:minWidth</code> attribute in
      * the AppWidget meta-data file.
@@ -62,7 +63,8 @@ public class AppWidgetProviderInfo implements Parcelable {
     public int minWidth;
 
     /**
-     * Minimum height of the AppWidget, in dp.
+     * The default height of the widget when added to a host, in dp. The widget will get
+     * at least this height, and will often be given more, depending on the host.
      *
      * <p>This field corresponds to the <code>android:minHeight</code> attribute in
      * the AppWidget meta-data file.
@@ -70,6 +72,24 @@ public class AppWidgetProviderInfo implements Parcelable {
     public int minHeight;
 
     /**
+     * Minimum width (in dp) which the widget can be resized to. This field has no effect if it
+     * is greater than minWidth or if horizontal resizing isn't enabled (see {@link #resizeMode}).
+     *
+     * <p>This field corresponds to the <code>android:minResizeWidth</code> attribute in
+     * the AppWidget meta-data file.
+     */
+    public int minResizeWidth;
+
+    /**
+     * Minimum height (in dp) which the widget can be resized to. This field has no effect if it
+     * is greater than minHeight or if vertical resizing isn't enabled (see {@link #resizeMode}).
+     *
+     * <p>This field corresponds to the <code>android:minResizeHeight</code> attribute in
+     * the AppWidget meta-data file.
+     */
+    public int minResizeHeight;
+
+    /**
      * How often, in milliseconds, that this AppWidget wants to be updated.
      * The AppWidget manager may place a limit on how often a AppWidget is updated.
      *
index d0361ca..082284a 100755 (executable)
         <attr name="minWidth"/>
         <!-- Minimum height of the AppWidget. -->
         <attr name="minHeight"/>
+        <!-- Minimum width that the AppWidget can be resized to. -->
+        <attr name="minResizeWidth" format="dimension"/>
+        <!-- Minimum height that the AppWidget can be resized to. -->
+        <attr name="minResizeHeight" format="dimension"/>
         <!-- Update period in milliseconds, or 0 if the AppWidget will update itself. -->
         <attr name="updatePeriodMillis" format="integer" />
         <!-- A resource id of a layout. -->
index f464623..ba2a036 100644 (file)
   <public type="color" name="holo_purple" />
   <public type="color" name="holo_blue_bright" />
 
+  <public type="attr" name="minResizeWidth" />
+  <public type="attr" name="minResizeHeight" />
 </resources>
index 0b15221..438883e 100644 (file)
@@ -1022,6 +1022,12 @@ class AppWidgetService extends IAppWidgetService.Stub
             info.minWidth = value != null ? value.data : 0; 
             value = sa.peekValue(com.android.internal.R.styleable.AppWidgetProviderInfo_minHeight);
             info.minHeight = value != null ? value.data : 0;
+            value = sa.peekValue(
+                    com.android.internal.R.styleable.AppWidgetProviderInfo_minResizeWidth);
+            info.minResizeWidth = value != null ? value.data : info.minWidth;
+            value = sa.peekValue(
+                    com.android.internal.R.styleable.AppWidgetProviderInfo_minResizeHeight);
+            info.minResizeHeight = value != null ? value.data : info.minHeight;
 
             info.updatePeriodMillis = sa.getInt(
                     com.android.internal.R.styleable.AppWidgetProviderInfo_updatePeriodMillis, 0);