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

Commit 5fa473cd authored by Daniel Sandler's avatar Daniel Sandler Committed by Android Git Automerger
Browse files

am 782dbb85: am 69f49434: Merge "Limit transient nav cling to 380dp on...

am 782dbb85: am 69f49434: Merge "Limit transient nav cling to 380dp on large/land devices." into klp-dev

* commit '782dbb85':
  Limit transient nav cling to 380dp on large/land devices.
parents c07f048d 782dbb85
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -61,4 +61,6 @@
    Landscape's layout allows this to be smaller than for portrait. -->
    <dimen name="kg_squashed_layout_threshold">400dp</dimen>

    <!-- width of TransientNavigationConfirmation (-1 for match_parent) -->
    <dimen name="immersive_mode_cling_width">380dp</dimen>
</resources>
+2 −0
Original line number Diff line number Diff line
@@ -113,4 +113,6 @@
    <!-- Margin around the various security views -->
    <dimen name="keyguard_muliuser_selector_margin">12dp</dimen>

    <!-- width of TransientNavigationConfirmation (-1 for match_parent) -->
    <dimen name="immersive_mode_cling_width">380dp</dimen>
</resources>
+2 −0
Original line number Diff line number Diff line
@@ -356,4 +356,6 @@
    <!-- Outline width for video subtitles. -->
    <dimen name="subtitle_outline_width">2dp</dimen>

    <!-- width of TransientNavigationConfirmation (-1 for match_parent) -->
    <dimen name="immersive_mode_cling_width">-1px</dimen>
</resources>
+1 −0
Original line number Diff line number Diff line
@@ -346,6 +346,7 @@
  <java-symbol type="dimen" name="notification_text_size" />
  <java-symbol type="dimen" name="notification_title_text_size" />
  <java-symbol type="dimen" name="notification_subtext_size" />
  <java-symbol type="dimen" name="immersive_mode_cling_width" />

  <java-symbol type="string" name="add_account_button_label" />
  <java-symbol type="string" name="addToDictionary" />
+52 −21
Original line number Diff line number Diff line
@@ -16,11 +16,13 @@

package com.android.internal.policy.impl;

import android.animation.Animator;
import android.animation.ArgbEvaluator;
import android.animation.ValueAnimator;
import android.app.ActivityManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.PixelFormat;
import android.graphics.drawable.ColorDrawable;
import android.os.Handler;
@@ -166,6 +168,31 @@ public class TransientNavigationConfirmation {
        }
    }

    public WindowManager.LayoutParams getClingWindowLayoutParams() {
        final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_TOAST,
                0
                        | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                        | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
                ,
                PixelFormat.TRANSLUCENT);
        lp.setTitle("TransientNavigationConfirmation");
        lp.windowAnimations = com.android.internal.R.style.Animation_RecentApplications;
        lp.gravity = Gravity.FILL;
        return lp;
    }

    public FrameLayout.LayoutParams getBubbleLayoutParams() {
        return new FrameLayout.LayoutParams(
                mContext.getResources().getDimensionPixelSize(
                        R.dimen.immersive_mode_cling_width),
                ViewGroup.LayoutParams.WRAP_CONTENT,
                Gravity.CENTER_HORIZONTAL | Gravity.TOP);
    }

    private class ClingWindowView extends FrameLayout {
        private static final int BGCOLOR = 0x80000000;
        private static final int OFFSET_DP = 48;
@@ -173,6 +200,18 @@ public class TransientNavigationConfirmation {
        private final Runnable mConfirm;
        private final ColorDrawable mColor = new ColorDrawable(0);
        private ValueAnimator mColorAnim;
        private ViewGroup mClingLayout;

        private BroadcastReceiver mReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (intent.getAction().equals(Intent.ACTION_CONFIGURATION_CHANGED)) {
                    if (mClingLayout != null && mClingLayout.getParent() != null) {
                        mClingLayout.setLayoutParams(getBubbleLayoutParams());
                    }
                }
            }
        };

        public ClingWindowView(Context context, Runnable confirm) {
            super(context);
@@ -190,23 +229,20 @@ public class TransientNavigationConfirmation {
            float density = metrics.density;

            // create the confirmation cling
            final ViewGroup clingLayout = (ViewGroup)
            mClingLayout = (ViewGroup)
                    View.inflate(getContext(), R.layout.transient_navigation_cling, null);

            final Button ok = (Button) clingLayout.findViewById(R.id.ok);
            final Button ok = (Button) mClingLayout.findViewById(R.id.ok);
            ok.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    mConfirm.run();
                }
            });
            addView(clingLayout, new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.MATCH_PARENT,
                    FrameLayout.LayoutParams.WRAP_CONTENT
            ));
            addView(mClingLayout, getBubbleLayoutParams());

            if (ActivityManager.isHighEndGfx()) {
                final View bubble = clingLayout.findViewById(R.id.text);
                final View bubble = mClingLayout.findViewById(R.id.text);
                bubble.setAlpha(0f);
                bubble.setTranslationY(-OFFSET_DP*density);
                bubble.animate()
@@ -238,6 +274,13 @@ public class TransientNavigationConfirmation {
            } else {
                mColor.setColor(BGCOLOR);
            }

            mContext.registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED));
        }

        @Override
        public void onDetachedFromWindow() {
            mContext.unregisterReceiver(mReceiver);
        }

        @Override
@@ -259,19 +302,7 @@ public class TransientNavigationConfirmation {
              | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

        // show the confirmation
        WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_TOAST,
                0
                        | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                        | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED
                ,
                PixelFormat.TRANSLUCENT);
        lp.setTitle("TransientNavigationConfirmation");
        lp.windowAnimations = com.android.internal.R.style.Animation_RecentApplications;
        lp.gravity = Gravity.FILL;
        WindowManager.LayoutParams lp = getClingWindowLayoutParams();
        mWindowManager.addView(mClingWindow, lp);
    }