Commit 3690b345 authored by Lijin Shen's avatar Lijin Shen Committed by Commit Bot

Add 2nd arm experiment for default browser promo on Q+

2nd experiment for default browser promo on Q+: skip
the primer/dialog and show role manager dialog directly.

Bug: 1090103
Change-Id: I94fc85782deca73702720f909edad3be5e9a27c0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2244032
Commit-Queue: Lijin Shen <lazzzis@google.com>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Reviewed-by: default avatarPavel Yatsuk <pavely@chromium.org>
Cr-Commit-Position: refs/heads/master@{#778602}
parent f19837f5
......@@ -14,11 +14,15 @@ import android.provider.Settings;
import androidx.annotation.VisibleForTesting;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
/**
* Manage all types of default browser promo dialogs and listen to the activity state change to
* trigger dialogs.
*/
public class DefaultBrowserPromoManager {
private static final String SKIP_PRIMER_PARAM = "skip_primer";
private final Activity mActivity;
private DefaultBrowserPromoDialog mDialog;
......@@ -55,7 +59,7 @@ public class DefaultBrowserPromoManager {
@SuppressLint({"WrongConstant", "NewApi"})
private void promoByRoleManager() {
showDialog(DefaultBrowserPromoDialog.DialogStyle.ROLE_MANAGER, () -> {
Runnable onOK = () -> {
RoleManager roleManager =
(RoleManager) mActivity.getSystemService(Context.ROLE_SERVICE);
boolean isRoleAvailable = roleManager.isRoleAvailable(RoleManager.ROLE_BROWSER);
......@@ -67,7 +71,14 @@ public class DefaultBrowserPromoManager {
Intent intent = roleManager.createRequestRoleIntent(RoleManager.ROLE_BROWSER);
mActivity.startActivityForResult(intent, 0);
});
};
boolean shouldSkipPrimer = ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean(
ChromeFeatureList.ANDROID_DEFAULT_BROWSER_PROMO, SKIP_PRIMER_PARAM, false);
if (shouldSkipPrimer) {
onOK.run();
} else {
showDialog(DefaultBrowserPromoDialog.DialogStyle.ROLE_MANAGER, onOK);
}
}
private void promoBySystemSettings() {
......
......@@ -12,7 +12,6 @@ import static androidx.test.espresso.matcher.ViewMatchers.withId;
import android.app.Activity;
import android.os.Build;
import android.support.test.rule.ActivityTestRule;
import androidx.test.filters.MediumTest;
......@@ -27,9 +26,9 @@ import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.flags.ChromeSwitches;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
import org.chromium.components.browser_ui.widget.PromoDialog;
import org.chromium.content_public.browser.test.util.TestThreadUtils;
import org.chromium.ui.test.util.DummyUiActivity;
/**
* Instrument test for {@link DefaultBrowserPromoManager}.
......@@ -37,8 +36,9 @@ import org.chromium.ui.test.util.DummyUiActivity;
@RunWith(ChromeJUnit4ClassRunner.class)
@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
public class DefaultBrowserPromoManagerTest {
// TODO(crbug.com/1090103): change this back to DummyUIActivity.
@Rule
public ActivityTestRule<DummyUiActivity> mRule = new ActivityTestRule<>(DummyUiActivity.class);
public ChromeTabbedActivityTestRule mRule = new ChromeTabbedActivityTestRule();
private DefaultBrowserPromoManager mManager;
private Activity mActivity;
......@@ -46,6 +46,7 @@ public class DefaultBrowserPromoManagerTest {
@Before
public void setUp() {
mRule.startMainActivityOnBlankPage();
mActivity = mRule.getActivity();
mManager = DefaultBrowserPromoManager.create(mActivity);
mAppName = BuildInfo.getInstance().hostPackageLabel;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment