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

Commit 541dd70d 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

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



Change-Id: I82391c672562507e13af0f86ddc8433c5f8a164d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents d517d2a6 36e4c65c
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);
    }
}