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

Commit d9aa3fa6 authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Restore KeyguardBottomAreaView state"

parents c63d1cc4 cea7deea
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.FrameLayout;
import android.widget.TextView;

import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardUpdateMonitor;
@@ -228,6 +229,11 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
        }
    };

    public void initFrom(KeyguardBottomAreaView oldBottomArea) {
        setKeyguardIndicationController(oldBottomArea.mIndicationController);
        setStatusBar(oldBottomArea.mStatusBar);
    }

    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
@@ -578,7 +584,8 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
        }
    }

    private void launchVoiceAssist() {
    @VisibleForTesting
    void launchVoiceAssist() {
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
+2 −0
Original line number Diff line number Diff line
@@ -467,10 +467,12 @@ public class NotificationPanelView extends PanelView implements
        // Update keyguard bottom area
        index = indexOfChild(mKeyguardBottomArea);
        removeView(mKeyguardBottomArea);
        KeyguardBottomAreaView oldBottomArea = mKeyguardBottomArea;
        mKeyguardBottomArea = (KeyguardBottomAreaView) LayoutInflater.from(mContext).inflate(
                R.layout.keyguard_bottom_area,
                this,
                false);
        mKeyguardBottomArea.initFrom(oldBottomArea);
        addView(mKeyguardBottomArea, index);
        initBottomArea();
        setDarkAmount(mLinearDarkAmount, mInterpolatedDarkAmount);
+47 −0
Original line number Diff line number Diff line
package com.android.systemui.statusbar.phone

import android.support.test.filters.SmallTest
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
import android.view.LayoutInflater

import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.statusbar.KeyguardIndicationController

import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.MockitoAnnotations

@SmallTest
@RunWith(AndroidTestingRunner::class)
@TestableLooper.RunWithLooper
class KeyguardBottomAreaTest : SysuiTestCase() {

    @Mock
    private lateinit var mStatusBar: StatusBar
    @Mock
    private lateinit var mKeyguardIndicationController: KeyguardIndicationController
    private lateinit var mKeyguardBottomArea: KeyguardBottomAreaView

    @Before
    fun setup() {
        MockitoAnnotations.initMocks(this)
        mKeyguardBottomArea = LayoutInflater.from(mContext).inflate(
                R.layout.keyguard_bottom_area, null, false) as KeyguardBottomAreaView
        mKeyguardBottomArea.setStatusBar(mStatusBar)
        mKeyguardBottomArea.setKeyguardIndicationController(mKeyguardIndicationController)
    }

    @Test
    fun initFrom_doesntCrash() {
        val other = LayoutInflater.from(mContext).inflate(
                R.layout.keyguard_bottom_area, null, false) as KeyguardBottomAreaView

        other.initFrom(mKeyguardBottomArea)
        other.launchVoiceAssist()
        other.onLongClick(null)
    }
}
 No newline at end of file