Loading src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +7 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.text.TextUtils; import com.android.settings.SettingsActivity; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.ProfileSelectDialog; import com.android.settingslib.drawer.Tile; import java.util.List; Loading Loading @@ -97,6 +98,12 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { } if (!TextUtils.isEmpty(clsName)) { pref.setFragment(clsName); } else if (tile.userHandle != null && tile.userHandle.size() > 1) { pref.setOnPreferenceClickListener(preference -> { ProfileSelectDialog.updateUserHandlesIfNeeded(activity, tile); ProfileSelectDialog.show(activity.getFragmentManager(), tile); return true; }); } else if (tile.intent != null) { final Intent intent = new Intent(tile.intent); pref.setOnPreferenceClickListener(preference -> { Loading tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +29 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,13 @@ package com.android.settings.dashboard; import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; import android.support.v7.preference.Preference; import com.android.settings.SettingsActivity; Loading @@ -38,7 +41,12 @@ import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; import java.util.ArrayList; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) Loading @@ -47,6 +55,9 @@ public class DashboardFeatureProviderImplTest { @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Activity mActivity; @Mock(answer = Answers.RETURNS_DEEP_STUBS) private UserManager mUserManager; private DashboardFeatureProviderImpl mImpl; @Before Loading Loading @@ -91,6 +102,24 @@ public class DashboardFeatureProviderImplTest { assertThat(preference.getOrder()).isEqualTo(-tile.priority); } @Test public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() { final Preference preference = new Preference( ShadowApplication.getInstance().getApplicationContext()); final Tile tile = new Tile(); tile.metaData = new Bundle(); tile.userHandle = new ArrayList<>(); tile.userHandle.add(mock(UserHandle.class)); tile.userHandle.add(mock(UserHandle.class)); tile.intent = new Intent(); when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); mImpl.bindPreferenceToTile(mActivity, preference, tile, "123"); preference.getOnPreferenceClickListener().onPreferenceClick(null); verify(mActivity).getFragmentManager(); } @Test public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() { final Preference preference = new Preference( Loading Loading
src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java +7 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.text.TextUtils; import com.android.settings.SettingsActivity; import com.android.settingslib.drawer.CategoryManager; import com.android.settingslib.drawer.DashboardCategory; import com.android.settingslib.drawer.ProfileSelectDialog; import com.android.settingslib.drawer.Tile; import java.util.List; Loading Loading @@ -97,6 +98,12 @@ public class DashboardFeatureProviderImpl implements DashboardFeatureProvider { } if (!TextUtils.isEmpty(clsName)) { pref.setFragment(clsName); } else if (tile.userHandle != null && tile.userHandle.size() > 1) { pref.setOnPreferenceClickListener(preference -> { ProfileSelectDialog.updateUserHandlesIfNeeded(activity, tile); ProfileSelectDialog.show(activity.getFragmentManager(), tile); return true; }); } else if (tile.intent != null) { final Intent intent = new Intent(tile.intent); pref.setOnPreferenceClickListener(preference -> { Loading
tests/robotests/src/com/android/settings/dashboard/DashboardFeatureProviderImplTest.java +29 −0 Original line number Diff line number Diff line Loading @@ -18,10 +18,13 @@ package com.android.settings.dashboard; import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Icon; import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; import android.support.v7.preference.Preference; import com.android.settings.SettingsActivity; Loading @@ -38,7 +41,12 @@ import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; import java.util.ArrayList; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @RunWith(SettingsRobolectricTestRunner.class) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) Loading @@ -47,6 +55,9 @@ public class DashboardFeatureProviderImplTest { @Mock(answer = Answers.RETURNS_DEEP_STUBS) private Activity mActivity; @Mock(answer = Answers.RETURNS_DEEP_STUBS) private UserManager mUserManager; private DashboardFeatureProviderImpl mImpl; @Before Loading Loading @@ -91,6 +102,24 @@ public class DashboardFeatureProviderImplTest { assertThat(preference.getOrder()).isEqualTo(-tile.priority); } @Test public void bindPreference_noFragmentMetadata_shouldBindToProfileSelector() { final Preference preference = new Preference( ShadowApplication.getInstance().getApplicationContext()); final Tile tile = new Tile(); tile.metaData = new Bundle(); tile.userHandle = new ArrayList<>(); tile.userHandle.add(mock(UserHandle.class)); tile.userHandle.add(mock(UserHandle.class)); tile.intent = new Intent(); when(mActivity.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); mImpl.bindPreferenceToTile(mActivity, preference, tile, "123"); preference.getOnPreferenceClickListener().onPreferenceClick(null); verify(mActivity).getFragmentManager(); } @Test public void bindPreference_withNullKeyNullPriority_shouldGenerateKeyAndPriority() { final Preference preference = new Preference( Loading