From 7c7f2343553855511bb01e86911244d05c6fb5b6 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Thu, 8 Jun 2017 15:50:18 -0700 Subject: [PATCH] Use support feature provider to provide intro url. Change-Id: I3d2493ec8c84fdc61c04fd63537f959fbd589e98 Fix: 62034077 Test: make RunSettingsRoboTests --- res/values/strings.xml | 3 --- .../overlay/SupportFeatureProvider.java | 12 ++++++++--- .../NewDeviceIntroSuggestionActivity.java | 9 +++++++-- tests/robotests/res/values-mcc999/strings.xml | 20 ------------------- .../NewDeviceIntroSuggestionActivityTest.java | 20 +++++++------------ 5 files changed, 23 insertions(+), 41 deletions(-) delete mode 100644 tests/robotests/res/values-mcc999/strings.xml diff --git a/res/values/strings.xml b/res/values/strings.xml index ef6e9bbe298..fbf703c01c2 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -8963,7 +8963,4 @@ " • " - - - diff --git a/src/com/android/settings/overlay/SupportFeatureProvider.java b/src/com/android/settings/overlay/SupportFeatureProvider.java index 18314861bba..55d5d0e9854 100644 --- a/src/com/android/settings/overlay/SupportFeatureProvider.java +++ b/src/com/android/settings/overlay/SupportFeatureProvider.java @@ -24,8 +24,8 @@ import android.app.Activity; import android.app.FragmentManager; import android.content.Context; import android.content.Intent; - import android.os.Bundle; + import com.android.settings.support.SupportPhone; import java.lang.annotation.Retention; @@ -123,8 +123,8 @@ public interface SupportFeatureProvider { * Starts support activity of specified type * * @param activity Calling activity - * @param account A account that selected by user - * @param type The type of support account needs. + * @param account A account that selected by user + * @param type The type of support account needs. */ void startSupport(Activity activity, Account account, @SupportType int type); @@ -137,6 +137,7 @@ public interface SupportFeatureProvider { /** * Checks if support v2 is enabled for this device. + * * @return a boolean indicating if support v2 is enabled. */ boolean isSupportV2Enabled(); @@ -166,4 +167,9 @@ public interface SupportFeatureProvider { * launches the fragment that displays the system information being sent to support agents. */ void launchSystemInfoFragment(Bundle args, FragmentManager manager); + + /** + * Returns a url with information to introduce user to new device. + */ + String getNewDeviceIntroUrl(Context context); } diff --git a/src/com/android/settings/support/NewDeviceIntroSuggestionActivity.java b/src/com/android/settings/support/NewDeviceIntroSuggestionActivity.java index d301099ec13..2189184441c 100644 --- a/src/com/android/settings/support/NewDeviceIntroSuggestionActivity.java +++ b/src/com/android/settings/support/NewDeviceIntroSuggestionActivity.java @@ -28,9 +28,9 @@ import android.text.TextUtils; import android.text.format.DateUtils; import android.util.Log; -import com.android.settings.R; import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider; import com.android.settings.overlay.FeatureFactory; +import com.android.settings.overlay.SupportFeatureProvider; import java.util.List; @@ -107,7 +107,12 @@ public class NewDeviceIntroSuggestionActivity extends Activity { @VisibleForTesting static Intent getLaunchIntent(Context context) { - final String url = context.getString(R.string.new_device_suggestion_intro_url); + final SupportFeatureProvider supportProvider = FeatureFactory.getFactory(context) + .getSupportFeatureProvider(context); + if (supportProvider == null) { + return null; + } + final String url = supportProvider.getNewDeviceIntroUrl(context); if (TextUtils.isEmpty(url)) { return null; } diff --git a/tests/robotests/res/values-mcc999/strings.xml b/tests/robotests/res/values-mcc999/strings.xml deleted file mode 100644 index fb14b44c87d..00000000000 --- a/tests/robotests/res/values-mcc999/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - http://www.com.android.settings.test.com - diff --git a/tests/robotests/src/com/android/settings/support/NewDeviceIntroSuggestionActivityTest.java b/tests/robotests/src/com/android/settings/support/NewDeviceIntroSuggestionActivityTest.java index 33927135aa0..311c297d032 100644 --- a/tests/robotests/src/com/android/settings/support/NewDeviceIntroSuggestionActivityTest.java +++ b/tests/robotests/src/com/android/settings/support/NewDeviceIntroSuggestionActivityTest.java @@ -22,7 +22,6 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.ResolveInfo; -import com.android.settings.R; import com.android.settings.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.testutils.FakeFeatureFactory; @@ -82,32 +81,27 @@ public class NewDeviceIntroSuggestionActivityTest { @Test public void isSuggestionComplete_noUrl_shouldReturnTrue() { - assertThat(mContext.getString(R.string.new_device_suggestion_intro_url)) - .isEqualTo(""); + when(mFeatureFactory.supportFeatureProvider.getNewDeviceIntroUrl(any(Context.class))) + .thenReturn(null); assertThat(isSuggestionComplete(mContext)) .isTrue(); } - // Use a non-default resource qualifier to load the test string in - // res/values-mcc999/strings.xml. - @Config(qualifiers = "mcc999") @Test public void isSuggestionComplete_alreadyLaunchedBefore_shouldReturnTrue() { - assertThat(mContext.getString(R.string.new_device_suggestion_intro_url)) - .startsWith("http"); + when(mFeatureFactory.supportFeatureProvider.getNewDeviceIntroUrl(any(Context.class))) + .thenReturn("https://com.android.settings"); + getSharedPreferences().edit().putBoolean(PREF_KEY_SUGGGESTION_COMPLETE, true).commit(); assertThat(isSuggestionComplete(mContext)) .isTrue(); } - // Use a non-default resource qualifier to load the test string in - // res/values-mcc999/strings.xml. - @Config(qualifiers = "mcc999") @Test public void isSuggestionComplete_notExpiredAndCanOpenUrlInBrowser_shouldReturnFalse() { - assertThat(mContext.getString(R.string.new_device_suggestion_intro_url)) - .startsWith("http"); + when(mFeatureFactory.supportFeatureProvider.getNewDeviceIntroUrl(any(Context.class))) + .thenReturn("https://com.android.settings"); final Intent intent = NewDeviceIntroSuggestionActivity.getLaunchIntent(mContext); mRobolectricPackageManager.addResolveInfoForIntent(intent, new ResolveInfo());