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

Commit 4a762bc6 authored by Stanley Wang's avatar Stanley Wang Committed by Android (Google) Code Review
Browse files

Merge "Update the IllustrationPreference of SettingsLib." into sc-dev

parents 09d0cbaf 4f59c38d
Loading
Loading
Loading
Loading
+20 −17
Original line number Diff line number Diff line
@@ -20,35 +20,38 @@
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="?android:attr/colorBackground"
    android:importantForAccessibility="noHideDescendants"
    android:gravity="center"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="match_parent"
    <FrameLayout
        android:id="@+id/illustration_frame"
        android:layout_width="wrap_content"
        android:layout_height="@dimen/settingslib_illustration_height"
        android:layout_gravity="center"
        android:gravity="center_vertical"
        android:padding="@dimen/settingslib_illustration_padding"
        android:orientation="vertical">

        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/protection_background"/>

        <com.airbnb.lottie.LottieAnimationView
            android:id="@+id/lottie_view"
            android:adjustViewBounds="true"
            android:maxWidth="@dimen/settingslib_illustration_width"
            android:layout_width="wrap_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:clipToOutline="true"
            android:background="@drawable/protection_background"
            android:importantForAccessibility="no"/>
    </LinearLayout>
            android:layout_gravity="center" />

        <FrameLayout
            android:id="@+id/middleground_layout"
        android:layout_width="@dimen/settingslib_illustration_width"
        android:layout_height="@dimen/settingslib_illustration_height"
        android:padding="@dimen/settingslib_illustration_padding"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/transparent"
            android:layout_gravity="center"
            android:visibility="gone"/>
    </FrameLayout>

</FrameLayout>
+20 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;

@@ -68,6 +69,18 @@ public class IllustrationPreference extends Preference {
            Log.w(TAG, "Invalid illustration resource id.");
            return;
        }

        // To solve the problem of non-compliant illustrations, we set the frame height
        // to 300dp and set the length of the short side of the screen to
        // the width of the frame.
        final int screenWidth = getContext().getResources().getDisplayMetrics().widthPixels;
        final int screenHeight = getContext().getResources().getDisplayMetrics().heightPixels;
        final FrameLayout illustrationFrame = (FrameLayout) holder.findViewById(
                R.id.illustration_frame);
        final LayoutParams lp = (LayoutParams) illustrationFrame.getLayoutParams();
        lp.width = screenWidth < screenHeight ? screenWidth : screenHeight;
        illustrationFrame.setLayoutParams(lp);

        mMiddleGroundLayout = (FrameLayout) holder.findViewById(R.id.middleground_layout);
        mIllustrationView = (LottieAnimationView) holder.findViewById(R.id.lottie_view);
        mIllustrationView.setAnimation(mAnimationId);
@@ -124,6 +137,13 @@ public class IllustrationPreference extends Preference {
                mIsAutoScale ? ImageView.ScaleType.CENTER_CROP : ImageView.ScaleType.CENTER_INSIDE);
    }

    /**
     * Set the lottie illustration resource id.
     */
    public void setLottieAnimationResId(int resId) {
        mAnimationId = resId;
    }

    private void enableMiddleGroundView() {
        mMiddleGroundLayout.removeAllViews();
        mMiddleGroundLayout.addView(mMiddleGroundView);