Fix bug where app list says "No app" in multi-window mode

Move updateUi logic from onPause/onResume to onStop/onStart.

Change-Id: Iebe38d201d531058472cd033a0408239d36d32e4
Fix: 36305836
Test: instrumentation test
This commit is contained in:
Fan Zhang
2017-05-18 14:09:19 -07:00
parent 867c68e76c
commit 462d852808
3 changed files with 69 additions and 15 deletions

View File

@@ -506,10 +506,9 @@ public class ManageApplications extends InstrumentedPreferenceFragment
}
@Override
public void onResume() {
super.onResume();
public void onStart() {
super.onStart();
updateView();
updateOptionsMenu();
if (mApplications != null) {
mApplications.resume(mSortOrder);
mApplications.updateLoading();
@@ -527,16 +526,11 @@ public class ManageApplications extends InstrumentedPreferenceFragment
}
@Override
public void onPause() {
super.onPause();
public void onStop() {
super.onStop();
if (mApplications != null) {
mApplications.pause();
}
}
@Override
public void onStop() {
super.onStop();
mResetAppsHelper.stop();
}

View File

@@ -0,0 +1,56 @@
/*
* Copyright (C) 2017 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.applications;
import android.app.Instrumentation;
import android.content.Intent;
import android.provider.Settings;
import android.support.test.InstrumentationRegistry;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static android.support.test.espresso.Espresso.onView;
import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import static org.hamcrest.Matchers.allOf;
@SmallTest
@RunWith(AndroidJUnit4.class)
public class ManageApplicationsLaunchTest {
private Instrumentation mInstrumentation;
@Before
public void setUp() {
mInstrumentation = InstrumentationRegistry.getInstrumentation();
}
@Test
public void launchAppsSettings_shouldShowAppList() throws Exception {
final Intent appsSettingsIntent = new
Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
mInstrumentation.startActivitySync(appsSettingsIntent);
onView(allOf(withText("Calculator"))).check(matches(isDisplayed()));
}
}

View File

@@ -16,18 +16,22 @@
package com.android.settings.applications;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import android.content.pm.ApplicationInfo;
import android.support.test.filters.SmallTest;
import android.support.test.runner.AndroidJUnit4;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppFilter;
import org.junit.Test;
import org.junit.runner.RunWith;
public class ManageApplicationsTest {
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
@SmallTest
@RunWith(AndroidJUnit4.class)
public class ManageApplicationsUnitTest {
@Test
public void getOverrideFilter_filtersVolumeForAudio() {
AppFilter filter =