Merge "Allow Talkback to speak the permission name in the bar chart."
diff --git a/res/layout/homepage_slice_deferred_setup_tile.xml b/res/layout/homepage_slice_deferred_setup_tile.xml
index 73199d4..68916ee 100644
--- a/res/layout/homepage_slice_deferred_setup_tile.xml
+++ b/res/layout/homepage_slice_deferred_setup_tile.xml
@@ -21,59 +21,49 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
- <ViewFlipper
- android:id="@+id/view_flipper"
+ <LinearLayout
+ android:id="@+id/content"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:gravity="left"
+ android:orientation="vertical"
+ android:paddingStart="@dimen/homepage_card_padding_start"
+ android:paddingEnd="@dimen/homepage_card_padding_end"
+ android:paddingTop="@dimen/homepage_deferred_setup_card_padding_top"
+ android:paddingBottom="@dimen/homepage_deferred_setup_card_padding_bottom">
- <LinearLayout
- android:id="@+id/content"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="left"
- android:orientation="vertical"
- android:paddingStart="@dimen/homepage_card_padding_start"
- android:paddingEnd="@dimen/homepage_card_padding_end"
- android:paddingTop="@dimen/homepage_deferred_setup_card_padding_top"
- android:paddingBottom="@dimen/homepage_deferred_setup_card_padding_bottom">
+ <ImageView
+ android:id="@android:id/icon"
+ android:layout_width="@dimen/homepage_card_icon_size"
+ android:layout_height="@dimen/homepage_card_icon_size"/>
- <ImageView
- android:id="@android:id/icon"
- android:layout_width="@dimen/homepage_card_icon_size"
- android:layout_height="@dimen/homepage_card_icon_size"/>
+ <TextView
+ android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/homepage_deferred_setup_card_title_margin_top"
+ android:ellipsize="end"
+ android:maxLines="2"
+ android:minLines="1"
+ android:textAppearance="@style/TextAppearance.DeferredSetupCardTitle"/>
- <TextView
- android:id="@android:id/title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/homepage_deferred_setup_card_title_margin_top"
- android:ellipsize="end"
- android:maxLines="2"
- android:minLines="1"
- android:textAppearance="@style/TextAppearance.DeferredSetupCardTitle"/>
+ <TextView
+ android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
+ android:ellipsize="end"
+ android:maxLines="2"
+ android:minLines="1"
+ android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
- <TextView
- android:id="@android:id/summary"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/homepage_deferred_setup_card_summary_margin_top"
- android:ellipsize="end"
- android:maxLines="2"
- android:minLines="1"
- android:textAppearance="@style/TextAppearance.DeferredSetupCardSummary"/>
+ <Button
+ android:id="@+id/finish_setup"
+ style="@style/DeferredSetupCardButton"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="@dimen/homepage_deferred_setup_card_button_margin_top"
+ android:text="@string/suggestion_button_text"/>
- <Button
- android:id="@+id/finish_setup"
- style="@style/DeferredSetupCardButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/homepage_deferred_setup_card_button_margin_top"
- android:text="@string/suggestion_button_text"/>
-
- </LinearLayout>
-
- <!--dismissal view-->
- <include layout="@layout/homepage_dismissal_view"/>
-
- </ViewFlipper>
+ </LinearLayout>
</com.google.android.material.card.MaterialCardView>
\ No newline at end of file
diff --git a/res/layout/search_bar.xml b/res/layout/search_bar.xml
index 64ddb6d..dbd61df 100644
--- a/res/layout/search_bar.xml
+++ b/res/layout/search_bar.xml
@@ -27,6 +27,7 @@
android:id="@+id/search_action_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/search_bar_height"
+ android:layout_marginStart="-2dp"
android:background="?android:attr/selectableItemBackground"
android:contentInsetStartWithNavigation="@dimen/search_bar_content_inset"
android:navigationIcon="@drawable/ic_homepage_search">
diff --git a/res/values/styles.xml b/res/values/styles.xml
index a778f76..46e2cef 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -303,6 +303,11 @@
<item name="android:textSize">16sp</item>
</style>
+ <style name="TextAppearance.DialogMessage"
+ parent="@*android:style/TextAppearance.DeviceDefault.Body1">
+ <item name="android:textSize">16sp</item>
+ </style>
+
<style name="SuggestionCardText">
<item name="android:textAlignment">viewStart</item>
</style>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 991e376..a8ae506 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -128,8 +128,11 @@
<!-- Redefine the ActionBar style for contentInsetStart -->
<item name="android:actionBarStyle">@style/Widget.ActionBar</item>
- <!-- copied from Theme.DeviceDefault.Light.Dialog.Alert -->
+ <!-- copied from Theme.DeviceDefault.Dialog.Alert -->
<item name="dialogCornerRadius">@*android:dimen/config_dialogCornerRadius</item>
+ <item name="android:windowTitleStyle">@*android:style/DialogWindowTitle.DeviceDefault</item>
+ <item name="android:textAppearanceMedium">@style/TextAppearance.DialogMessage</item>
+ <item name="buttonBarButtonStyle">@*android:style/Widget.DeviceDefault.Button.ButtonBar.AlertDialog</item>
</style>
<style name="Theme.ConfirmDeviceCredentials" parent="Theme.SubSettings">
diff --git a/src/com/android/settings/RestrictedListPreference.java b/src/com/android/settings/RestrictedListPreference.java
index 2e9ec14..bd3cd17 100644
--- a/src/com/android/settings/RestrictedListPreference.java
+++ b/src/com/android/settings/RestrictedListPreference.java
@@ -157,8 +157,8 @@
return null;
}
- protected ListAdapter createListAdapter() {
- return new RestrictedArrayAdapter(getContext(), getEntries(),
+ protected ListAdapter createListAdapter(Context context) {
+ return new RestrictedArrayAdapter(context, getEntries(),
getSelectedValuePos());
}
@@ -172,10 +172,9 @@
@Override
protected void onPrepareDialogBuilder(Builder builder,
DialogInterface.OnClickListener listener) {
- builder.setAdapter(createListAdapter(), listener);
+ builder.setAdapter(createListAdapter(builder.getContext()), listener);
}
-
public class RestrictedArrayAdapter extends ArrayAdapter<CharSequence> {
private final int mSelectedIndex;
public RestrictedArrayAdapter(Context context, CharSequence[] objects, int selectedIndex) {
diff --git a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
index 48e9f1e..b9170a9 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRenderer.java
@@ -139,6 +139,8 @@
switch (holder.getItemViewType()) {
case VIEW_TYPE_DEFERRED_SETUP:
+ // Deferred setup is never dismissible.
+ break;
case VIEW_TYPE_HALF_WIDTH:
initDismissalActions(holder, card, R.id.content);
break;
diff --git a/src/com/android/settings/network/SubscriptionsChangeListener.java b/src/com/android/settings/network/SubscriptionsChangeListener.java
index c3bb22b..1ecd770 100644
--- a/src/com/android/settings/network/SubscriptionsChangeListener.java
+++ b/src/com/android/settings/network/SubscriptionsChangeListener.java
@@ -59,7 +59,9 @@
mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- subscriptionsChangedCallback();
+ if (!isInitialStickyBroadcast()) {
+ subscriptionsChangedCallback();
+ }
}
};
}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkActivity.java b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
index 3c0940d..47eb66b 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkActivity.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkActivity.java
@@ -85,7 +85,14 @@
setContentView(R.layout.mobile_network_settings_container);
}
setActionBar(findViewById(R.id.mobile_action_bar));
- mPhoneChangeReceiver = new PhoneChangeReceiver();
+ mPhoneChangeReceiver = new PhoneChangeReceiver(this, () -> {
+ if (mCurSubscriptionId != SUB_ID_NULL) {
+ // When the radio changes (ex: CDMA->GSM), refresh the fragment.
+ // This is very rare.
+ switchFragment(new MobileNetworkSettings(), mCurSubscriptionId,
+ true /* forceUpdate */);
+ }
+ });
mSubscriptionManager = getSystemService(SubscriptionManager.class);
mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList(true);
mCurSubscriptionId = savedInstanceState != null
@@ -103,16 +110,14 @@
@Override
protected void onStart() {
super.onStart();
- final IntentFilter intentFilter = new IntentFilter(
- TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
- registerReceiver(mPhoneChangeReceiver, intentFilter);
+ mPhoneChangeReceiver.register();
mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
}
@Override
protected void onStop() {
super.onStop();
- unregisterReceiver(mPhoneChangeReceiver);
+ mPhoneChangeReceiver.unregister();
mSubscriptionManager.removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
}
@@ -235,14 +240,35 @@
return MOBILE_SETTINGS_TAG + subscriptionId;
}
- private class PhoneChangeReceiver extends BroadcastReceiver {
+ @VisibleForTesting
+ static class PhoneChangeReceiver extends BroadcastReceiver {
+ private static final IntentFilter RADIO_TECHNOLOGY_CHANGED_FILTER = new IntentFilter(
+ TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+
+ private Context mContext;
+ private Client mClient;
+
+ interface Client {
+ void onPhoneChange();
+ }
+
+ public PhoneChangeReceiver(Context context, Client client) {
+ mContext = context;
+ mClient = client;
+ }
+
+ public void register() {
+ mContext.registerReceiver(this, RADIO_TECHNOLOGY_CHANGED_FILTER);
+ }
+
+ public void unregister() {
+ mContext.unregisterReceiver(this);
+ }
+
@Override
public void onReceive(Context context, Intent intent) {
- // When the radio changes (ex: CDMA->GSM), refresh the fragment.
- // This is very rare to happen.
- if (mCurSubscriptionId != SUB_ID_NULL) {
- switchFragment(new MobileNetworkSettings(), mCurSubscriptionId,
- true /* forceUpdate */);
+ if (!isInitialStickyBroadcast()) {
+ mClient.onPhoneChange();
}
}
}
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index 2495ca5..088bfbf 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -132,7 +132,8 @@
@Override
public void onStart() {
super.onStart();
- mForbiddenPlmns = Arrays.asList(mTelephonyManager.getForbiddenPlmns());
+
+ updateForbiddenPlmns();
setProgressBarVisible(true);
mNetworkScanHelper.startNetworkScan(
@@ -141,6 +142,17 @@
: NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
}
+ /**
+ * Update forbidden PLMNs from the USIM App
+ */
+ @VisibleForTesting
+ void updateForbiddenPlmns() {
+ final String[] forbiddenPlmns = mTelephonyManager.getForbiddenPlmns();
+ mForbiddenPlmns = forbiddenPlmns != null
+ ? Arrays.asList(forbiddenPlmns)
+ : new ArrayList<>();
+ }
+
@Override
public void onStop() {
super.onStop();
diff --git a/src/com/android/settings/notification/NotificationLockscreenPreference.java b/src/com/android/settings/notification/NotificationLockscreenPreference.java
index 8c04e16..b236014 100644
--- a/src/com/android/settings/notification/NotificationLockscreenPreference.java
+++ b/src/com/android/settings/notification/NotificationLockscreenPreference.java
@@ -27,7 +27,6 @@
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
-import android.widget.ListAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AlertDialog;
@@ -78,7 +77,8 @@
DialogInterface.OnClickListener innerListener) {
mListener = new Listener(innerListener);
- builder.setSingleChoiceItems(createListAdapter(), getSelectedValuePos(), mListener);
+ builder.setSingleChoiceItems(createListAdapter(builder.getContext()), getSelectedValuePos(),
+ mListener);
mShowRemoteInput = getEntryValues().length == 3;
mAllowRemoteInput = Settings.Secure.getInt(getContext().getContentResolver(),
Settings.Secure.LOCK_SCREEN_ALLOW_REMOTE_INPUT, 0) != 0;
@@ -117,11 +117,6 @@
}
@Override
- protected ListAdapter createListAdapter() {
- return new RestrictedArrayAdapter(getContext(), getEntries(), -1);
- }
-
- @Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
Settings.Secure.putInt(getContext().getContentResolver(),
diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java
index 7a685ab..baefa09 100644
--- a/src/com/android/settings/password/BiometricFragment.java
+++ b/src/com/android/settings/password/BiometricFragment.java
@@ -125,7 +125,7 @@
.setUseDefaultTitle() // use default title if title is null/empty
.setSubtitle(mBundle.getString(BiometricPrompt.KEY_SUBTITLE))
.setDescription(mBundle.getString(BiometricPrompt.KEY_DESCRIPTION))
- .setRequireConfirmation(
+ .setConfirmationRequired(
mBundle.getBoolean(BiometricPrompt.KEY_REQUIRE_CONFIRMATION, true))
.setNegativeButton(getResources().getString(
R.string.confirm_device_credential_use_alternate_method),
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index bc33f4f..01673e3 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -635,7 +635,7 @@
.setDescription(description);
if (keyguardManager.isDeviceSecure()) {
- builder.setAllowDeviceCredential(true);
+ builder.setDeviceCredentialAllowed(true);
}
final BiometricPrompt bp = builder.build();
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
index b156782..e08d845 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/SliceContextualCardRendererTest.java
@@ -16,11 +16,13 @@
package com.android.settings.homepage.contextualcards.slices;
+import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_DEFERRED_SETUP;
import static com.android.settings.homepage.contextualcards.slices.SliceContextualCardRenderer.VIEW_TYPE_FULL_WIDTH;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import android.app.Activity;
@@ -129,6 +131,15 @@
}
@Test
+ public void longClick_deferredSetupCard_shouldNotBeClickable() {
+ final RecyclerView.ViewHolder viewHolder = getDeferredSetupViewHolder();
+ final View contentView = viewHolder.itemView.findViewById(R.id.content);
+ mRenderer.bindView(viewHolder, buildContextualCard(TEST_SLICE_URI));
+
+ assertThat(contentView.isLongClickable()).isFalse();
+ }
+
+ @Test
public void longClick_shouldAddViewHolderToSet() {
final RecyclerView.ViewHolder viewHolder = getSliceViewHolder();
final View card = viewHolder.itemView.findViewById(R.id.slice_view);
@@ -221,6 +232,18 @@
return mRenderer.createViewHolder(view, VIEW_TYPE_FULL_WIDTH);
}
+ private RecyclerView.ViewHolder getDeferredSetupViewHolder() {
+ final RecyclerView recyclerView = new RecyclerView(mActivity);
+ recyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
+ final View view = LayoutInflater.from(mActivity).inflate(VIEW_TYPE_DEFERRED_SETUP,
+ recyclerView, false);
+ final RecyclerView.ViewHolder viewHolder = spy(
+ mRenderer.createViewHolder(view, VIEW_TYPE_DEFERRED_SETUP));
+ doReturn(VIEW_TYPE_DEFERRED_SETUP).when(viewHolder).getItemViewType();
+
+ return viewHolder;
+ }
+
private ContextualCard buildContextualCard(Uri sliceUri) {
return new ContextualCard.Builder()
.setName("test_name")
diff --git a/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java b/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
index 79d3fdc..9f302df 100644
--- a/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
+++ b/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
@@ -23,17 +23,20 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
+import android.content.Intent;
import android.database.ContentObserver;
import android.net.Uri;
import android.provider.Settings;
import android.telephony.SubscriptionManager;
+import com.android.internal.telephony.TelephonyIntents;
import com.android.settings.network.SubscriptionsChangeListener.SubscriptionsChangeListenerClient;
import org.junit.Before;
@@ -95,6 +98,19 @@
}
@Test
+ public void
+ onSubscriptionsChangedEvent_ignoresStickyBroadcastFromBeforeRegistering() {
+ final Intent intent = new Intent(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+ mContext.sendStickyBroadcast(intent);
+
+ initListener(true);
+ verify(mClient, never()).onSubscriptionsChanged();
+
+ mContext.sendStickyBroadcast(intent);
+ verify(mClient, times(1)).onSubscriptionsChanged();
+ }
+
+ @Test
public void onSubscriptionsChangedEvent_radioTechnologyChangedBroadcast_eventDeliveredToUs() {
initListener(true);
final ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
index 3b5cdf9..68f8c91 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
@@ -26,6 +26,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
@@ -35,10 +36,7 @@
import android.view.Menu;
import android.view.View;
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-
+import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.view.menu.ContextMenuBuilder;
import com.android.settings.R;
@@ -56,6 +54,10 @@
import java.util.ArrayList;
import java.util.List;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
@RunWith(RobolectricTestRunner.class)
public class MobileNetworkActivityTest {
@@ -142,6 +144,25 @@
}
@Test
+ public void phoneChangeReceiver_ignoresStickyBroadcastFromBeforeRegistering() {
+ Activity activity = Robolectric.setupActivity(Activity.class);
+ final int[] onChangeCallbackCount = {0};
+ MobileNetworkActivity.PhoneChangeReceiver receiver =
+ new MobileNetworkActivity.PhoneChangeReceiver(activity, () -> {
+ onChangeCallbackCount[0]++;
+ });
+ Intent intent = new Intent(TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+ activity.sendStickyBroadcast(intent);
+
+ receiver.register();
+ assertThat(onChangeCallbackCount[0]).isEqualTo(0);
+
+ activity.sendStickyBroadcast(intent);
+ assertThat(onChangeCallbackCount[0]).isEqualTo(1);
+ }
+
+
+ @Test
public void getSubscriptionId_hasIntent_getIdFromIntent() {
final Intent intent = new Intent();
intent.putExtra(Settings.EXTRA_SUB_ID, CURRENT_SUB_ID);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
index 2aa68f7..7dfc8a3 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
@@ -102,4 +102,12 @@
(NetworkOperatorPreference) mPreferenceCategory.getPreference(0);
assertThat(preference.getCellInfo()).isEqualTo(mCellInfo2);
}
+
+ @Test
+ public void updateForbiddenPlmns_forbiddenPlmnsNull_shouldNotCrash() {
+ when(mTelephonyManager.getForbiddenPlmns()).thenReturn(null);
+
+ // Should not Crash
+ mNetworkSelectSettings.updateForbiddenPlmns();
+ }
}
diff --git a/tests/unit/src/com/android/settings/core/LifecycleEventHandlingTest.java b/tests/unit/src/com/android/settings/core/LifecycleEventHandlingTest.java
index e601171..57d5662 100644
--- a/tests/unit/src/com/android/settings/core/LifecycleEventHandlingTest.java
+++ b/tests/unit/src/com/android/settings/core/LifecycleEventHandlingTest.java
@@ -50,8 +50,10 @@
private UiDevice mDevice;
@Before
- public void setUp() {
+ public void setUp() throws Exception {
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
+ mDevice.wakeUp();
+ mDevice.executeShellCommand("wm dismiss-keyguard");
mContext = InstrumentationRegistry.getTargetContext();
mTargetPackage = mContext.getPackageName();
}