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

Commit 5eb25044 authored by John Spurlock's avatar John Spurlock Committed by Android Git Automerger
Browse files

am e5b14ee1: Merge "Restore scrim views to former place in view hierarchy." into klp-dev

* commit 'e5b14ee1':
  Restore scrim views to former place in view hierarchy.
parents 25419efa e5b14ee1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -51,6 +51,11 @@
            androidprv:layout_maxHeight="480dp" />
        <include layout="@layout/keyguard_multi_user_selector"/>

        <View android:layout_width="match_parent"
              android:layout_height="match_parent"
              androidprv:layout_childType="scrim"
              android:background="#99000000" />

        <com.android.keyguard.KeyguardSecurityContainer
            android:id="@+id/keyguard_security_container"
            android:layout_width="wrap_content"
+5 −0
Original line number Diff line number Diff line
@@ -55,6 +55,11 @@
                android:layout_gravity="center"/>
        </FrameLayout>

        <View android:layout_width="match_parent"
              android:layout_height="match_parent"
              androidprv:layout_childType="scrim"
              android:background="#99000000" />

        <com.android.keyguard.KeyguardSecurityContainer
            android:id="@+id/keyguard_security_container"
            android:layout_width="wrap_content"
+5 −0
Original line number Diff line number Diff line
@@ -52,6 +52,11 @@

        <include layout="@layout/keyguard_multi_user_selector"/>

        <View android:layout_width="match_parent"
              android:layout_height="match_parent"
              androidprv:layout_childType="scrim"
              android:background="#99000000" />

        <com.android.keyguard.KeyguardSecurityContainer
            android:id="@+id/keyguard_security_container"
            android:layout_width="wrap_content"
+19 −5
Original line number Diff line number Diff line
@@ -123,6 +123,8 @@ public class KeyguardHostView extends KeyguardViewBase {

    protected boolean mShowSecurityWhenReturn;

    private final Rect mInsets = new Rect();

    /*package*/ interface UserSwitcherCallback {
        void hideSecurityView(int duration);
        void showSecurityView();
@@ -405,11 +407,6 @@ public class KeyguardHostView extends KeyguardViewBase {
        updateSecurityViews();
    }

    public void setScrimView(View scrim) {
        if (mSlidingChallengeLayout != null) mSlidingChallengeLayout.setScrimView(scrim);
        if (mMultiPaneChallengeLayout != null) mMultiPaneChallengeLayout.setScrimView(scrim);
    }

    private void setBackButtonEnabled(boolean enabled) {
        if (mContext instanceof Activity) return;  // always enabled in activity mode
        setSystemUiVisibility(enabled ?
@@ -1351,6 +1348,7 @@ public class KeyguardHostView extends KeyguardViewBase {
    static class SavedState extends BaseSavedState {
        int transportState;
        int appWidgetToShow = AppWidgetManager.INVALID_APPWIDGET_ID;
        Rect insets = new Rect();

        SavedState(Parcelable superState) {
            super(superState);
@@ -1360,6 +1358,7 @@ public class KeyguardHostView extends KeyguardViewBase {
            super(in);
            this.transportState = in.readInt();
            this.appWidgetToShow = in.readInt();
            this.insets = in.readParcelable(null);
        }

        @Override
@@ -1367,6 +1366,7 @@ public class KeyguardHostView extends KeyguardViewBase {
            super.writeToParcel(out, flags);
            out.writeInt(this.transportState);
            out.writeInt(this.appWidgetToShow);
            out.writeParcelable(insets, 0);
        }

        public static final Parcelable.Creator<SavedState> CREATOR
@@ -1391,6 +1391,7 @@ public class KeyguardHostView extends KeyguardViewBase {
                && mAppWidgetContainer.getWidgetPageIndex(mTransportControl) >= 0;
        ss.transportState =  showing ? TRANSPORT_VISIBLE : mTransportState;
        ss.appWidgetToShow = mAppWidgetToShow;
        ss.insets.set(mInsets);
        return ss;
    }

@@ -1404,10 +1405,23 @@ public class KeyguardHostView extends KeyguardViewBase {
        super.onRestoreInstanceState(ss.getSuperState());
        mTransportState = (ss.transportState);
        mAppWidgetToShow = ss.appWidgetToShow;
        setInsets(ss.insets);
        if (DEBUG) Log.d(TAG, "onRestoreInstanceState, transport=" + mTransportState);
        post(mSwitchPageRunnable);
    }

    @Override
    protected boolean fitSystemWindows(Rect insets) {
        setInsets(insets);
        return true;
    }

    private void setInsets(Rect insets) {
        mInsets.set(insets);
        if (mSlidingChallengeLayout != null) mSlidingChallengeLayout.setInsets(mInsets);
        if (mMultiPaneChallengeLayout != null) mMultiPaneChallengeLayout.setInsets(mInsets);
    }

    @Override
    public void onWindowFocusChanged(boolean hasWindowFocus) {
        super.onWindowFocusChanged(hasWindowFocus);
+4 −48
Original line number Diff line number Diff line
@@ -139,6 +139,7 @@ public class KeyguardViewManager {

    class ViewManagerHost extends FrameLayout {
        private static final int BACKGROUND_COLOR = 0x70000000;

        // This is a faster way to draw the background on devices without hardware acceleration
        private final Drawable mBackgroundDrawable = new Drawable() {
            @Override
@@ -159,54 +160,10 @@ public class KeyguardViewManager {
                return PixelFormat.TRANSLUCENT;
            }
        };
        private final View mScrimView;
        private boolean mExtendIntoPadding;
        public ViewManagerHost(Context context, boolean extendIntoPadding) {

        public ViewManagerHost(Context context) {
            super(context);
            mExtendIntoPadding = extendIntoPadding;
            setFitsSystemWindows(true);
            setClipToPadding(!mExtendIntoPadding);
            setBackground(mBackgroundDrawable);

            mScrimView = new View(context);
            mScrimView.setVisibility(View.GONE);
            mScrimView.setBackgroundColor(0x99000000);
            addView(mScrimView);
        }

        private boolean considerPadding(View child) {
            return !mExtendIntoPadding || child instanceof KeyguardHostView;
        }

        @Override
        protected void measureChildWithMargins(View child,
                int parentWidthMeasureSpec, int widthUsed,
                int parentHeightMeasureSpec, int heightUsed) {
            if (considerPadding(child)) {
                // don't extend into padding (default behavior)
                super.measureChildWithMargins(child,
                        parentWidthMeasureSpec, widthUsed,
                        parentHeightMeasureSpec, heightUsed);
            } else {
                // allowed to extend into padding (scrim / camera preview)
                child.measure(parentWidthMeasureSpec, parentHeightMeasureSpec);
            }
        }

        @Override
        protected void onLayout(boolean changed, int l, int t, int r, int b) {
            final int count = getChildCount();
            for (int i = 0; i < count; i++) {
                final View child = getChildAt(i);
                int cl = l, ct = t, cr = r, cb = b;
                if (considerPadding(child)) {
                    cl += mPaddingLeft;
                    ct += mPaddingTop;
                    cr -= mPaddingRight;
                    cb -= mPaddingBottom;
                }
                child.layout(cl, ct, cr, cb);
            }
        }

        @Override
@@ -252,7 +209,7 @@ public class KeyguardViewManager {
        if (mKeyguardHost == null) {
            if (DEBUG) Log.d(TAG, "keyguard host is null, creating it...");

            mKeyguardHost = new ViewManagerHost(mContext, shouldEnableTransparentBars());
            mKeyguardHost = new ViewManagerHost(mContext);

            int flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                    | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR
@@ -306,7 +263,6 @@ public class KeyguardViewManager {
        mKeyguardView.setViewMediatorCallback(mViewMediatorCallback);
        mKeyguardView.initializeSwitchingUserState(options != null &&
                options.getBoolean(IS_SWITCHING_USER));
        mKeyguardView.setScrimView(mKeyguardHost.mScrimView);

        // HACK
        // The keyguard view will have set up window flags in onFinishInflate before we set
Loading