Show default app icon in default app screen.
- Renamed AdvancedAppSettings to DefaultAppSettings. - Add logic to DefaultAppPreferenceController to also display icon. - Modified DefautlAssistPrefController to suppress gear icon, and use the controller in default app setting UI to display icon. - Remove dynamic injected payment setting activity and create the setting statically in xml. - Add DefaultPaymentSettingsPreference to display default payment app title (no icon because we can't get it) Change-Id: I6b8c768da0bafe5ec9a85ba9c79c7993b449be25 Fix: 36458534 Test: robotests
This commit is contained in:
@@ -16,6 +16,16 @@
|
||||
|
||||
package com.android.settings.applications.assist;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyBoolean;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.SearchManager;
|
||||
import android.content.ComponentName;
|
||||
@@ -28,33 +38,29 @@ import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.provider.Settings;
|
||||
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.internal.app.AssistUtils;
|
||||
import com.android.settings.TestConfig;
|
||||
import com.android.settings.applications.defaultapps.DefaultAppInfo;
|
||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||
import com.android.settings.testutils.shadow.ShadowSecureSettings;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.annotation.Config;
|
||||
import org.robolectric.util.ReflectionHelpers;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static org.mockito.Matchers.any;
|
||||
import static org.mockito.Matchers.anyBoolean;
|
||||
import static org.mockito.Matchers.anyInt;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.when;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@RunWith(SettingsRobolectricTestRunner.class)
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||
public class DefaultAssistPreferenceControllerTest {
|
||||
|
||||
private static final String TEST_KEY = "test_pref_key";
|
||||
|
||||
@Mock
|
||||
private Context mContext;
|
||||
@Mock
|
||||
@@ -66,7 +72,8 @@ public class DefaultAssistPreferenceControllerTest {
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mController = new DefaultAssistPreferenceController(mContext);
|
||||
mController = new DefaultAssistPreferenceController(mContext, TEST_KEY,
|
||||
true /* showSetting */);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -74,6 +81,12 @@ public class DefaultAssistPreferenceControllerTest {
|
||||
assertThat(mController.isAvailable()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPrefKey_shouldReturnKey() {
|
||||
assertThat(mController.getPreferenceKey())
|
||||
.isEqualTo(TEST_KEY);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Config(shadows = {ShadowSecureSettings.class})
|
||||
public void getDefaultAppInfo_hasDefaultAssist_shouldReturnKey() {
|
||||
@@ -89,15 +102,15 @@ public class DefaultAssistPreferenceControllerTest {
|
||||
final String flattenKey = "com.android.settings/assist";
|
||||
Settings.Secure.putString(null, Settings.Secure.ASSISTANT, flattenKey);
|
||||
when(mContext.getPackageManager()).thenReturn(mPackageManager);
|
||||
DefaultAssistPreferenceController controller =
|
||||
spy(new DefaultAssistPreferenceController(mContext));
|
||||
DefaultAssistPreferenceController controller = spy(
|
||||
new DefaultAssistPreferenceController(mContext, TEST_KEY, true /* showSetting */));
|
||||
final ResolveInfo resolveInfo = new ResolveInfo();
|
||||
resolveInfo.activityInfo = new ActivityInfo();
|
||||
resolveInfo.activityInfo.name = "assist";
|
||||
resolveInfo.activityInfo.applicationInfo = new ApplicationInfo();
|
||||
resolveInfo.activityInfo.applicationInfo.packageName = "com.android.settings";
|
||||
when(mPackageManager.resolveActivityAsUser(any(Intent.class), anyInt(), anyInt()))
|
||||
.thenReturn(resolveInfo);
|
||||
.thenReturn(resolveInfo);
|
||||
when(mContext.getSystemService(Context.SEARCH_SERVICE)).thenReturn(mSearchManager);
|
||||
when(mSearchManager.getAssistIntent(anyBoolean())).thenReturn(mock(Intent.class));
|
||||
final ServiceInfo serviceInfo = new ServiceInfo();
|
||||
@@ -107,9 +120,21 @@ public class DefaultAssistPreferenceControllerTest {
|
||||
services.add(resolveInfo);
|
||||
when(mPackageManager.queryIntentServices(any(Intent.class), anyInt())).thenReturn(services);
|
||||
doReturn(null).when(controller).getAssistSettingsActivity(
|
||||
ComponentName.unflattenFromString(flattenKey), resolveInfo, mPackageManager);
|
||||
ComponentName.unflattenFromString(flattenKey), resolveInfo, mPackageManager);
|
||||
|
||||
controller.getSettingIntent(null);
|
||||
// should not crash
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSettingIntent_doNotShowSetting_shouldNotTryToGetSettingIntent() {
|
||||
final AssistUtils assistUtils = mock(AssistUtils.class);
|
||||
final DefaultAssistPreferenceController controller = new DefaultAssistPreferenceController(
|
||||
mContext, TEST_KEY, false /* showSetting */);
|
||||
ReflectionHelpers.setField(controller, "mAssistUtils", assistUtils);
|
||||
|
||||
controller.getSettingIntent(null);
|
||||
|
||||
verifyZeroInteractions(assistUtils);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user