Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2f1d94f authored by Filip Gruszczynski's avatar Filip Gruszczynski
Browse files

API for minimal width/height of an activity.

Bug: 21409825

Change-Id: Id6286064713672366dd4dc1f80258450a8039c36
parent 7d4f5b32
Loading
Loading
Loading
Loading
+19 −17
Original line number Diff line number Diff line
@@ -241,10 +241,8 @@ package android {
    field public static final int activatedBackgroundIndicator = 16843517; // 0x10102fd
    field public static final int activityCloseEnterAnimation = 16842938; // 0x10100ba
    field public static final int activityCloseExitAnimation = 16842939; // 0x10100bb
    field public static final int activityHeight = 16844021; // 0x10104f5
    field public static final int activityOpenEnterAnimation = 16842936; // 0x10100b8
    field public static final int activityOpenExitAnimation = 16842937; // 0x10100b9
    field public static final int activityWidth = 16844020; // 0x10104f4
    field public static final int addPrintersActivity = 16843750; // 0x10103e6
    field public static final int addStatesFromChildren = 16842992; // 0x10100f0
    field public static final int adjustViewBounds = 16843038; // 0x101011e
@@ -323,7 +321,7 @@ package android {
    field public static final int buttonBarNeutralButtonStyle = 16843914; // 0x101048a
    field public static final int buttonBarPositiveButtonStyle = 16843913; // 0x1010489
    field public static final int buttonBarStyle = 16843566; // 0x101032e
    field public static final int buttonGravity = 16844029; // 0x10104fd
    field public static final int buttonGravity = 16844030; // 0x10104fe
    field public static final int buttonStyle = 16842824; // 0x1010048
    field public static final int buttonStyleInset = 16842826; // 0x101004a
    field public static final int buttonStyleSmall = 16842825; // 0x1010049
@@ -373,7 +371,7 @@ package android {
    field public static final int codes = 16843330; // 0x1010242
    field public static final int collapseColumns = 16843083; // 0x101014b
    field public static final int collapseContentDescription = 16843984; // 0x10104d0
    field public static final int collapseIcon = 16844030; // 0x10104fe
    field public static final int collapseIcon = 16844031; // 0x10104ff
    field public static final int color = 16843173; // 0x10101a5
    field public static final int colorAccent = 16843829; // 0x1010435
    field public static final int colorActivatedHighlight = 16843664; // 0x1010390
@@ -414,7 +412,7 @@ package android {
    field public static final int contentInsetRight = 16843862; // 0x1010456
    field public static final int contentInsetStart = 16843859; // 0x1010453
    field public static final int contextClickable = 16844007; // 0x10104e7
    field public static final int contextPopupMenuStyle = 16844032; // 0x1010500
    field public static final int contextPopupMenuStyle = 16844033; // 0x1010501
    field public static final int controlX1 = 16843772; // 0x10103fc
    field public static final int controlX2 = 16843774; // 0x10103fe
    field public static final int controlY1 = 16843773; // 0x10103fd
@@ -673,8 +671,10 @@ package android {
    field public static final int indicatorStart = 16843729; // 0x10103d1
    field public static final int inflatedId = 16842995; // 0x10100f3
    field public static final int initOrder = 16842778; // 0x101001a
    field public static final int initialHeight = 16844021; // 0x10104f5
    field public static final int initialKeyguardLayout = 16843714; // 0x10103c2
    field public static final int initialLayout = 16843345; // 0x1010251
    field public static final int initialWidth = 16844020; // 0x10104f4
    field public static final int innerRadius = 16843359; // 0x101025f
    field public static final int innerRadiusRatio = 16843163; // 0x101019b
    field public static final deprecated int inputMethod = 16843112; // 0x1010168
@@ -780,7 +780,7 @@ package android {
    field public static final int layout_y = 16843136; // 0x1010180
    field public static final int left = 16843181; // 0x10101ad
    field public static final int letterSpacing = 16843958; // 0x10104b6
    field public static final int level = 16844031; // 0x10104ff
    field public static final int level = 16844032; // 0x1010500
    field public static final int lineSpacingExtra = 16843287; // 0x1010217
    field public static final int lineSpacingMultiplier = 16843288; // 0x1010218
    field public static final int lines = 16843092; // 0x1010154
@@ -813,7 +813,7 @@ package android {
    field public static final int marqueeRepeatLimit = 16843293; // 0x101021d
    field public static final int matchOrder = 16843855; // 0x101044f
    field public static final int max = 16843062; // 0x1010136
    field public static final int maxButtonHeight = 16844028; // 0x10104fc
    field public static final int maxButtonHeight = 16844029; // 0x10104fd
    field public static final int maxDate = 16843584; // 0x1010340
    field public static final int maxEms = 16843095; // 0x1010157
    field public static final int maxHeight = 16843040; // 0x1010120
@@ -841,6 +841,7 @@ package android {
    field public static final int minResizeWidth = 16843669; // 0x1010395
    field public static final int minSdkVersion = 16843276; // 0x101020c
    field public static final int minWidth = 16843071; // 0x101013f
    field public static final int minimalSize = 16844022; // 0x10104f6
    field public static final int minimumHorizontalAngle = 16843901; // 0x101047d
    field public static final int minimumVerticalAngle = 16843902; // 0x101047e
    field public static final int mipMap = 16843725; // 0x10103cd
@@ -997,7 +998,7 @@ package android {
    field public static final int resizeClip = 16843983; // 0x10104cf
    field public static final int resizeMode = 16843619; // 0x1010363
    field public static final int resizeable = 16843405; // 0x101028d
    field public static final int resizeableActivity = 16844022; // 0x10104f6
    field public static final int resizeableActivity = 16844023; // 0x10104f7
    field public static final int resource = 16842789; // 0x1010025
    field public static final int restoreAnyVersion = 16843450; // 0x10102ba
    field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d
@@ -1221,7 +1222,7 @@ package android {
    field public static final int textAppearanceListItemSmall = 16843679; // 0x101039f
    field public static final int textAppearanceMedium = 16842817; // 0x1010041
    field public static final int textAppearanceMediumInverse = 16842820; // 0x1010044
    field public static final int textAppearancePopupMenuHeader = 16844033; // 0x1010501
    field public static final int textAppearancePopupMenuHeader = 16844034; // 0x1010502
    field public static final int textAppearanceSearchResultSubtitle = 16843424; // 0x10102a0
    field public static final int textAppearanceSearchResultTitle = 16843425; // 0x10102a1
    field public static final int textAppearanceSmall = 16842818; // 0x1010042
@@ -1290,11 +1291,11 @@ package android {
    field public static final int tintMode = 16843771; // 0x10103fb
    field public static final int title = 16843233; // 0x10101e1
    field public static final int titleCondensed = 16843234; // 0x10101e2
    field public static final int titleMargin = 16844023; // 0x10104f7
    field public static final int titleMarginBottom = 16844027; // 0x10104fb
    field public static final int titleMarginEnd = 16844025; // 0x10104f9
    field public static final int titleMarginStart = 16844024; // 0x10104f8
    field public static final int titleMarginTop = 16844026; // 0x10104fa
    field public static final int titleMargin = 16844024; // 0x10104f8
    field public static final int titleMarginBottom = 16844028; // 0x10104fc
    field public static final int titleMarginEnd = 16844026; // 0x10104fa
    field public static final int titleMarginStart = 16844025; // 0x10104f9
    field public static final int titleMarginTop = 16844027; // 0x10104fb
    field public static final int titleTextAppearance = 16843822; // 0x101042e
    field public static final int titleTextColor = 16844003; // 0x10104e3
    field public static final int titleTextStyle = 16843512; // 0x10102f8
@@ -8924,8 +8925,8 @@ package android.content.pm {
    field public int configChanges;
    field public int documentLaunchMode;
    field public int flags;
    field public android.content.pm.ActivityInfo.InitialLayout initialLayout;
    field public int launchMode;
    field public android.content.pm.ActivityInfo.Layout layout;
    field public int maxRecents;
    field public java.lang.String parentActivityName;
    field public java.lang.String permission;
@@ -8938,11 +8939,12 @@ package android.content.pm {
    field public int uiOptions;
  }
  public static final class ActivityInfo.InitialLayout {
    ctor public ActivityInfo.InitialLayout(int, float, int, float, int);
  public static final class ActivityInfo.Layout {
    ctor public ActivityInfo.Layout(int, float, int, float, int, int);
    field public final int gravity;
    field public final int height;
    field public final float heightFraction;
    field public final int minimalSize;
    field public final int width;
    field public final float widthFraction;
  }
+19 −17
Original line number Diff line number Diff line
@@ -333,10 +333,8 @@ package android {
    field public static final int activatedBackgroundIndicator = 16843517; // 0x10102fd
    field public static final int activityCloseEnterAnimation = 16842938; // 0x10100ba
    field public static final int activityCloseExitAnimation = 16842939; // 0x10100bb
    field public static final int activityHeight = 16844021; // 0x10104f5
    field public static final int activityOpenEnterAnimation = 16842936; // 0x10100b8
    field public static final int activityOpenExitAnimation = 16842937; // 0x10100b9
    field public static final int activityWidth = 16844020; // 0x10104f4
    field public static final int addPrintersActivity = 16843750; // 0x10103e6
    field public static final int addStatesFromChildren = 16842992; // 0x10100f0
    field public static final int adjustViewBounds = 16843038; // 0x101011e
@@ -415,7 +413,7 @@ package android {
    field public static final int buttonBarNeutralButtonStyle = 16843914; // 0x101048a
    field public static final int buttonBarPositiveButtonStyle = 16843913; // 0x1010489
    field public static final int buttonBarStyle = 16843566; // 0x101032e
    field public static final int buttonGravity = 16844029; // 0x10104fd
    field public static final int buttonGravity = 16844030; // 0x10104fe
    field public static final int buttonStyle = 16842824; // 0x1010048
    field public static final int buttonStyleInset = 16842826; // 0x101004a
    field public static final int buttonStyleSmall = 16842825; // 0x1010049
@@ -465,7 +463,7 @@ package android {
    field public static final int codes = 16843330; // 0x1010242
    field public static final int collapseColumns = 16843083; // 0x101014b
    field public static final int collapseContentDescription = 16843984; // 0x10104d0
    field public static final int collapseIcon = 16844030; // 0x10104fe
    field public static final int collapseIcon = 16844031; // 0x10104ff
    field public static final int color = 16843173; // 0x10101a5
    field public static final int colorAccent = 16843829; // 0x1010435
    field public static final int colorActivatedHighlight = 16843664; // 0x1010390
@@ -506,7 +504,7 @@ package android {
    field public static final int contentInsetRight = 16843862; // 0x1010456
    field public static final int contentInsetStart = 16843859; // 0x1010453
    field public static final int contextClickable = 16844007; // 0x10104e7
    field public static final int contextPopupMenuStyle = 16844032; // 0x1010500
    field public static final int contextPopupMenuStyle = 16844033; // 0x1010501
    field public static final int controlX1 = 16843772; // 0x10103fc
    field public static final int controlX2 = 16843774; // 0x10103fe
    field public static final int controlY1 = 16843773; // 0x10103fd
@@ -765,8 +763,10 @@ package android {
    field public static final int indicatorStart = 16843729; // 0x10103d1
    field public static final int inflatedId = 16842995; // 0x10100f3
    field public static final int initOrder = 16842778; // 0x101001a
    field public static final int initialHeight = 16844021; // 0x10104f5
    field public static final int initialKeyguardLayout = 16843714; // 0x10103c2
    field public static final int initialLayout = 16843345; // 0x1010251
    field public static final int initialWidth = 16844020; // 0x10104f4
    field public static final int innerRadius = 16843359; // 0x101025f
    field public static final int innerRadiusRatio = 16843163; // 0x101019b
    field public static final deprecated int inputMethod = 16843112; // 0x1010168
@@ -872,7 +872,7 @@ package android {
    field public static final int layout_y = 16843136; // 0x1010180
    field public static final int left = 16843181; // 0x10101ad
    field public static final int letterSpacing = 16843958; // 0x10104b6
    field public static final int level = 16844031; // 0x10104ff
    field public static final int level = 16844032; // 0x1010500
    field public static final int lineSpacingExtra = 16843287; // 0x1010217
    field public static final int lineSpacingMultiplier = 16843288; // 0x1010218
    field public static final int lines = 16843092; // 0x1010154
@@ -905,7 +905,7 @@ package android {
    field public static final int marqueeRepeatLimit = 16843293; // 0x101021d
    field public static final int matchOrder = 16843855; // 0x101044f
    field public static final int max = 16843062; // 0x1010136
    field public static final int maxButtonHeight = 16844028; // 0x10104fc
    field public static final int maxButtonHeight = 16844029; // 0x10104fd
    field public static final int maxDate = 16843584; // 0x1010340
    field public static final int maxEms = 16843095; // 0x1010157
    field public static final int maxHeight = 16843040; // 0x1010120
@@ -933,6 +933,7 @@ package android {
    field public static final int minResizeWidth = 16843669; // 0x1010395
    field public static final int minSdkVersion = 16843276; // 0x101020c
    field public static final int minWidth = 16843071; // 0x101013f
    field public static final int minimalSize = 16844022; // 0x10104f6
    field public static final int minimumHorizontalAngle = 16843901; // 0x101047d
    field public static final int minimumVerticalAngle = 16843902; // 0x101047e
    field public static final int mipMap = 16843725; // 0x10103cd
@@ -1089,7 +1090,7 @@ package android {
    field public static final int resizeClip = 16843983; // 0x10104cf
    field public static final int resizeMode = 16843619; // 0x1010363
    field public static final int resizeable = 16843405; // 0x101028d
    field public static final int resizeableActivity = 16844022; // 0x10104f6
    field public static final int resizeableActivity = 16844023; // 0x10104f7
    field public static final int resource = 16842789; // 0x1010025
    field public static final int restoreAnyVersion = 16843450; // 0x10102ba
    field public static final deprecated int restoreNeedsApplication = 16843421; // 0x101029d
@@ -1317,7 +1318,7 @@ package android {
    field public static final int textAppearanceListItemSmall = 16843679; // 0x101039f
    field public static final int textAppearanceMedium = 16842817; // 0x1010041
    field public static final int textAppearanceMediumInverse = 16842820; // 0x1010044
    field public static final int textAppearancePopupMenuHeader = 16844033; // 0x1010501
    field public static final int textAppearancePopupMenuHeader = 16844034; // 0x1010502
    field public static final int textAppearanceSearchResultSubtitle = 16843424; // 0x10102a0
    field public static final int textAppearanceSearchResultTitle = 16843425; // 0x10102a1
    field public static final int textAppearanceSmall = 16842818; // 0x1010042
@@ -1386,11 +1387,11 @@ package android {
    field public static final int tintMode = 16843771; // 0x10103fb
    field public static final int title = 16843233; // 0x10101e1
    field public static final int titleCondensed = 16843234; // 0x10101e2
    field public static final int titleMargin = 16844023; // 0x10104f7
    field public static final int titleMarginBottom = 16844027; // 0x10104fb
    field public static final int titleMarginEnd = 16844025; // 0x10104f9
    field public static final int titleMarginStart = 16844024; // 0x10104f8
    field public static final int titleMarginTop = 16844026; // 0x10104fa
    field public static final int titleMargin = 16844024; // 0x10104f8
    field public static final int titleMarginBottom = 16844028; // 0x10104fc
    field public static final int titleMarginEnd = 16844026; // 0x10104fa
    field public static final int titleMarginStart = 16844025; // 0x10104f9
    field public static final int titleMarginTop = 16844027; // 0x10104fb
    field public static final int titleTextAppearance = 16843822; // 0x101042e
    field public static final int titleTextColor = 16844003; // 0x10104e3
    field public static final int titleTextStyle = 16843512; // 0x10102f8
@@ -9181,8 +9182,8 @@ package android.content.pm {
    field public int configChanges;
    field public int documentLaunchMode;
    field public int flags;
    field public android.content.pm.ActivityInfo.InitialLayout initialLayout;
    field public int launchMode;
    field public android.content.pm.ActivityInfo.Layout layout;
    field public int maxRecents;
    field public java.lang.String parentActivityName;
    field public java.lang.String permission;
@@ -9195,11 +9196,12 @@ package android.content.pm {
    field public int uiOptions;
  }
  public static final class ActivityInfo.InitialLayout {
    ctor public ActivityInfo.InitialLayout(int, float, int, float, int);
  public static final class ActivityInfo.Layout {
    ctor public ActivityInfo.Layout(int, float, int, float, int, int);
    field public final int gravity;
    field public final int height;
    field public final float heightFraction;
    field public final int minimalSize;
    field public final int width;
    field public final float widthFraction;
  }
+29 −25
Original line number Diff line number Diff line
@@ -702,7 +702,7 @@ public class ActivityInfo extends ComponentInfo
     */
    public int lockTaskLaunchMode;

    public InitialLayout initialLayout;
    public Layout layout;

    public ActivityInfo() {
    }
@@ -724,7 +724,7 @@ public class ActivityInfo extends ComponentInfo
        maxRecents = orig.maxRecents;
        resizeable = orig.resizeable;
        lockTaskLaunchMode = orig.lockTaskLaunchMode;
        initialLayout = orig.initialLayout;
        layout = orig.layout;
    }

    /**
@@ -771,10 +771,10 @@ public class ActivityInfo extends ComponentInfo
        }
        pw.println(prefix + "resizeable=" + resizeable + " lockTaskLaunchMode="
                + lockTaskLaunchModeToString(lockTaskLaunchMode));
        if (initialLayout != null) {
            pw.println(prefix + "initialLayout=" + initialLayout.width + "|"
                    + initialLayout.widthFraction + ", " + initialLayout.height + "|"
                    + initialLayout.heightFraction + ", " + initialLayout.gravity);
        if (layout != null) {
            pw.println(prefix + "initialLayout=" + layout.width + "|"
                    + layout.widthFraction + ", " + layout.height + "|"
                    + layout.heightFraction + ", " + layout.gravity);
        }
        super.dumpBack(pw, prefix);
    }
@@ -807,13 +807,14 @@ public class ActivityInfo extends ComponentInfo
        dest.writeInt(maxRecents);
        dest.writeInt(resizeable ? 1 : 0);
        dest.writeInt(lockTaskLaunchMode);
        if (initialLayout != null) {
        if (layout != null) {
            dest.writeInt(1);
            dest.writeInt(initialLayout.width);
            dest.writeFloat(initialLayout.widthFraction);
            dest.writeInt(initialLayout.height);
            dest.writeFloat(initialLayout.heightFraction);
            dest.writeInt(initialLayout.gravity);
            dest.writeInt(layout.width);
            dest.writeFloat(layout.widthFraction);
            dest.writeInt(layout.height);
            dest.writeFloat(layout.heightFraction);
            dest.writeInt(layout.gravity);
            dest.writeInt(layout.minimalSize);
        } else {
            dest.writeInt(0);
        }
@@ -848,26 +849,28 @@ public class ActivityInfo extends ComponentInfo
        resizeable = (source.readInt() == 1);
        lockTaskLaunchMode = source.readInt();
        if (source.readInt() == 1) {
            initialLayout = new InitialLayout(source);
            layout = new Layout(source);
        }
    }

    public static final class InitialLayout {
        public InitialLayout(int width, float widthFraction, int height, float heightFraction,
                int gravity) {
    public static final class Layout {
        public Layout(int width, float widthFraction, int height, float heightFraction, int gravity,
                int minimalSize) {
            this.width = width;
            this.widthFraction = widthFraction;
            this.height = height;
            this.heightFraction = heightFraction;
            this.gravity = gravity;
            this.minimalSize = minimalSize;
        }

        InitialLayout(Parcel source) {
        Layout(Parcel source) {
            width = source.readInt();
            widthFraction = source.readFloat();
            height = source.readInt();
            heightFraction = source.readFloat();
            gravity = source.readInt();
            minimalSize = source.readInt();
        }

        public final int width;
@@ -875,5 +878,6 @@ public class ActivityInfo extends ComponentInfo
        public final int height;
        public final float heightFraction;
        public final int gravity;
        public final int minimalSize;
    }
}
+77 −74
Original line number Diff line number Diff line
@@ -3282,8 +3282,8 @@ public class PackageParser {
                        outError)) == null) {
                    return null;
                }
            } else if (!receiver && parser.getName().equals("initial-layout")) {
                parseInitialLayout(res, attrs, a);
            } else if (!receiver && parser.getName().equals("layout")) {
                parseLayout(res, attrs, a);
            } else {
                if (!RIGID_PARSER) {
                    Slog.w(TAG, "Problem in package " + mArchiveSourcePath + ":");
@@ -3316,41 +3316,44 @@ public class PackageParser {
        return a;
    }

    private void parseInitialLayout(Resources res, AttributeSet attrs, Activity a) {
    private void parseLayout(Resources res, AttributeSet attrs, Activity a) {
        TypedArray sw = res.obtainAttributes(attrs,
                com.android.internal.R.styleable.AndroidManifestInitialLayout);
                com.android.internal.R.styleable.AndroidManifestLayout);
        int width = -1;
        float widthFraction = -1f;
        int height = -1;
        float heightFraction = -1f;
        final int widthType = sw.getType(
                com.android.internal.R.styleable.AndroidManifestInitialLayout_activityWidth);
                com.android.internal.R.styleable.AndroidManifestLayout_initialWidth);
        if (widthType == TypedValue.TYPE_FRACTION) {
            widthFraction = sw.getFraction(
                    com.android.internal.R.styleable.AndroidManifestInitialLayout_activityWidth,
                    com.android.internal.R.styleable.AndroidManifestLayout_initialWidth,
                    1, 1, -1);
        } else if (widthType == TypedValue.TYPE_DIMENSION) {
            width = sw.getDimensionPixelSize(
                    com.android.internal.R.styleable.AndroidManifestInitialLayout_activityWidth,
                    com.android.internal.R.styleable.AndroidManifestLayout_initialWidth,
                    -1);
        }
        final int heightType = sw.getType(
                com.android.internal.R.styleable.AndroidManifestInitialLayout_activityHeight);
                com.android.internal.R.styleable.AndroidManifestLayout_initialHeight);
        if (heightType == TypedValue.TYPE_FRACTION) {
            heightFraction = sw.getFraction(
                    com.android.internal.R.styleable.AndroidManifestInitialLayout_activityHeight,
                    com.android.internal.R.styleable.AndroidManifestLayout_initialHeight,
                    1, 1, -1);
        } else if (heightType == TypedValue.TYPE_DIMENSION) {
            height = sw.getDimensionPixelSize(
                    com.android.internal.R.styleable.AndroidManifestInitialLayout_activityHeight,
                    com.android.internal.R.styleable.AndroidManifestLayout_initialHeight,
                    -1);
        }
        int gravity = sw.getInt(
                com.android.internal.R.styleable.AndroidManifestInitialLayout_gravity,
                com.android.internal.R.styleable.AndroidManifestLayout_gravity,
                Gravity.CENTER);
        int minimalSize = sw.getDimensionPixelSize(
                com.android.internal.R.styleable.AndroidManifestLayout_minimalSize,
                -1);
        sw.recycle();
        a.info.initialLayout = new ActivityInfo.InitialLayout(width, widthFraction,
                height, heightFraction, gravity);
        a.info.layout = new ActivityInfo.Layout(width, widthFraction,
                height, heightFraction, gravity, minimalSize);
    }

    private Activity parseActivityAlias(Package owner, Resources res,
@@ -3432,7 +3435,7 @@ public class PackageParser {
        info.uiOptions = target.info.uiOptions;
        info.parentActivityName = target.info.parentActivityName;
        info.maxRecents = target.info.maxRecents;
        info.initialLayout = target.info.initialLayout;
        info.layout = target.info.layout;

        Activity a = new Activity(mParseActivityAliasArgs, info);
        if (outError[0] != null) {
+12 −5

File changed.

Preview size limit exceeded, changes collapsed.

Loading