Merge "Restore KeyguardBottomAreaView state"

This commit is contained in:
Lucas Dupin
2018-10-24 17:19:45 +00:00
committed by Android (Google) Code Review
3 changed files with 57 additions and 1 deletions

View File

@@ -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() {

View File

@@ -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);

View File

@@ -0,0 +1,47 @@
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)
}
}