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

Commit 3b43c66b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Use max height attr as backup for device config" into tm-dev am:...

Merge "Use max height attr as backup for device config" into tm-dev am: 248de47f am: b17d87fc am: 36e4c65c am: 541dd70d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18529605



Change-Id: I962e59d82f0ac40279bb03d5e00520cea4d11820
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 402c7d9c 541dd70d
Loading
Loading
Loading
Loading
+17 −17
Original line number Diff line number Diff line
@@ -56,39 +56,41 @@ public class CustomScrollView extends ScrollView {

    private int mWidth = -1;
    private int mHeight = -1;
    private int mMaxPortraitBodyHeightPercent = 20;
    private int mMaxLandscapeBodyHeightPercent = 20;
    private int mMaxPortraitBodyHeightPercent;
    private int mMaxLandscapeBodyHeightPercent;
    private int mAttrBasedMaxHeightPercent;

    public CustomScrollView(Context context) {
        super(context);
        setMaxBodyHeightPercent();
        setMaxBodyHeightPercent(context);
    }

    public CustomScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setMaxBodyHeightPercent();
        setMaxBodyHeightPercent(context);
    }

    public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        setMaxBodyHeightPercent();
        setMaxBodyHeightPercent(context);
    }

    public CustomScrollView(Context context, AttributeSet attrs, int defStyleAttr,
            int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        setMaxBodyHeightPercent();
        setMaxBodyHeightPercent(context);
    }

    private void setMaxBodyHeightPercent() {
    private void setMaxBodyHeightPercent(Context context) {
        mAttrBasedMaxHeightPercent = getAttrBasedMaxHeightPercent(context);
        mMaxPortraitBodyHeightPercent = DeviceConfig.getInt(
                DeviceConfig.NAMESPACE_AUTOFILL,
                DEVICE_CONFIG_SAVE_DIALOG_PORTRAIT_BODY_HEIGHT_MAX_PERCENT,
                mMaxPortraitBodyHeightPercent);
                mAttrBasedMaxHeightPercent);
        mMaxLandscapeBodyHeightPercent = DeviceConfig.getInt(
                DeviceConfig.NAMESPACE_AUTOFILL,
                DEVICE_CONFIG_SAVE_DIALOG_LANDSCAPE_BODY_HEIGHT_MAX_PERCENT,
                mMaxLandscapeBodyHeightPercent);
                mAttrBasedMaxHeightPercent);
    }

    @Override
@@ -117,29 +119,27 @@ public class CustomScrollView extends ScrollView {
        final int contentHeight = content.getMeasuredHeight();
        int displayHeight = point.y;

        int configBasedMaxHeight = (getResources().getConfiguration().orientation
        int maxHeight = (getResources().getConfiguration().orientation
                    == Configuration.ORIENTATION_LANDSCAPE)
                ? (int) (mMaxLandscapeBodyHeightPercent * displayHeight / 100)
                : (int) (mMaxPortraitBodyHeightPercent * displayHeight / 100);
        mHeight = configBasedMaxHeight > 0
                ? Math.min(contentHeight, configBasedMaxHeight)
                : Math.min(contentHeight, getAttrBasedMaxHeight(context, displayHeight));
        mHeight = Math.min(contentHeight, maxHeight);

        if (sDebug) {
            Slog.d(TAG, "calculateDimensions():"
                    + " mMaxPortraitBodyHeightPercent=" + mMaxPortraitBodyHeightPercent
                    + ", mMaxLandscapeBodyHeightPercent=" + mMaxLandscapeBodyHeightPercent
                    + ", configBasedMaxHeight=" + configBasedMaxHeight
                    + ", attrBasedMaxHeight=" + getAttrBasedMaxHeight(context, displayHeight)
                    + ", mAttrBasedMaxHeightPercent=" + mAttrBasedMaxHeightPercent
                    + ", maxHeight=" + maxHeight
                    + ", contentHeight=" + contentHeight
                    + ", w=" + mWidth + ", h=" + mHeight);
        }
    }

    private int getAttrBasedMaxHeight(Context context, int displayHeight) {
    private int getAttrBasedMaxHeightPercent(Context context) {
        final TypedValue maxHeightAttrTypedValue = new TypedValue();
        context.getTheme().resolveAttribute(R.attr.autofillSaveCustomSubtitleMaxHeight,
                maxHeightAttrTypedValue, true);
        return (int) maxHeightAttrTypedValue.getFraction(displayHeight, displayHeight);
        return (int) maxHeightAttrTypedValue.getFraction(100, 100);
    }
}