ANR observed under settings when trying to reset network settings

- Move reset network settings code to async task.

Test: manual, Robolectric
Fixes: 130772994
Change-Id: I59345f48ed840ecfd64c29c2c20ab8caf2679f63
Merged-In: I59345f48ed840ecfd64c29c2c20ab8caf2679f63
This commit is contained in:
Raff Tsai
2019-04-22 14:52:28 +08:00
parent 27e0c844ae
commit 1f0a1171b7
3 changed files with 112 additions and 88 deletions

View File

@@ -18,12 +18,12 @@ package com.android.settings;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.spy;
import android.app.Activity;
import android.view.LayoutInflater;
import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.testutils.shadow.ShadowRecoverySystem;
import com.android.settings.testutils.shadow.ShadowWifiP2pManager;
@@ -38,18 +38,21 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowRecoverySystem.class, ShadowWifiP2pManager.class})
@Config(shadows = {ShadowRecoverySystem.class,
ShadowWifiP2pManager.class, ShadowBluetoothAdapter.class
})
public class ResetNetworkConfirmTest {
private Activity mActivity;
private FragmentActivity mActivity;
@Mock
private ResetNetworkConfirm mResetNetworkConfirm;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mResetNetworkConfirm = spy(new ResetNetworkConfirm());
mActivity = Robolectric.setupActivity(Activity.class);
mResetNetworkConfirm = new ResetNetworkConfirm();
mActivity = Robolectric.setupActivity(FragmentActivity.class);
mResetNetworkConfirm.mActivity = mActivity;
}
@After
@@ -62,10 +65,9 @@ public class ResetNetworkConfirmTest {
public void testResetNetworkData_resetEsim() {
mResetNetworkConfirm.mEraseEsim = true;
mResetNetworkConfirm.esimFactoryReset(mActivity, "" /* packageName */);
mResetNetworkConfirm.mFinalClickListener.onClick(null /* View */);
Robolectric.getBackgroundThreadScheduler().advanceToLastPostedRunnable();
assertThat(mResetNetworkConfirm.mEraseEsimTask).isNotNull();
assertThat(ShadowRecoverySystem.getWipeEuiccCalledCount()).isEqualTo(1);
}
@@ -73,9 +75,9 @@ public class ResetNetworkConfirmTest {
public void testResetNetworkData_notResetEsim() {
mResetNetworkConfirm.mEraseEsim = false;
mResetNetworkConfirm.esimFactoryReset(mActivity, "" /* packageName */);
mResetNetworkConfirm.mFinalClickListener.onClick(null /* View */);
Robolectric.getBackgroundThreadScheduler().advanceToLastPostedRunnable();
assertThat(mResetNetworkConfirm.mEraseEsimTask).isNull();
assertThat(ShadowRecoverySystem.getWipeEuiccCalledCount()).isEqualTo(0);
}
@@ -93,25 +95,25 @@ public class ResetNetworkConfirmTest {
public void setSubtitle_eraseEsim() {
mResetNetworkConfirm.mEraseEsim = true;
mResetNetworkConfirm.mContentView =
LayoutInflater.from(mActivity).inflate(R.layout.reset_network_confirm, null);
LayoutInflater.from(mActivity).inflate(R.layout.reset_network_confirm, null);
mResetNetworkConfirm.setSubtitle();
assertThat(((TextView) mResetNetworkConfirm.mContentView
.findViewById(R.id.reset_network_confirm)).getText())
.isEqualTo(mActivity.getString(R.string.reset_network_final_desc_esim));
.findViewById(R.id.reset_network_confirm)).getText())
.isEqualTo(mActivity.getString(R.string.reset_network_final_desc_esim));
}
@Test
public void setSubtitle_notEraseEsim() {
mResetNetworkConfirm.mEraseEsim = false;
mResetNetworkConfirm.mContentView =
LayoutInflater.from(mActivity).inflate(R.layout.reset_network_confirm, null);
LayoutInflater.from(mActivity).inflate(R.layout.reset_network_confirm, null);
mResetNetworkConfirm.setSubtitle();
assertThat(((TextView) mResetNetworkConfirm.mContentView
.findViewById(R.id.reset_network_confirm)).getText())
.isEqualTo(mActivity.getString(R.string.reset_network_final_desc));
.findViewById(R.id.reset_network_confirm)).getText())
.isEqualTo(mActivity.getString(R.string.reset_network_final_desc));
}
}