Merge "Restore KeyguardBottomAreaView state"
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user