diff --git a/android/java/org/chromium/chrome/browser/brave_origin/BraveOriginSettingsLauncherHelper.java b/android/java/org/chromium/chrome/browser/brave_origin/BraveOriginSettingsLauncherHelper.java index 699b10b4ea8..f1ed3e3aba0 100644 --- a/android/java/org/chromium/chrome/browser/brave_origin/BraveOriginSettingsLauncherHelper.java +++ b/android/java/org/chromium/chrome/browser/brave_origin/BraveOriginSettingsLauncherHelper.java @@ -16,13 +16,14 @@ import org.chromium.chrome.browser.settings.BraveOriginPreferences; import org.chromium.chrome.browser.settings.SettingsNavigationFactory; /** - * Opens the Brave Origin settings screen from native when a purchase is first detected, so the user - * can restart to apply the newly enforced policies. + * Opens the Brave Origin settings screen when a purchase is first detected (from native for web + * purchases, or from Java when a Play Store purchase is auto-restored), so the user can restart to + * apply the newly enforced policies. */ @NullMarked public class BraveOriginSettingsLauncherHelper { @CalledByNative - private static void showOriginSettingsForRestart() { + public static void showOriginSettingsForRestart() { Activity activity = ApplicationStatus.getLastTrackedFocusedActivity(); if (activity == null) { return; diff --git a/android/java/org/chromium/chrome/browser/brave_origin/BraveOriginSubscriptionPrefs.java b/android/java/org/chromium/chrome/browser/brave_origin/BraveOriginSubscriptionPrefs.java index b9b53bb9e12..9479fc6c5ff 100644 --- a/android/java/org/chromium/chrome/browser/brave_origin/BraveOriginSubscriptionPrefs.java +++ b/android/java/org/chromium/chrome/browser/brave_origin/BraveOriginSubscriptionPrefs.java @@ -145,6 +145,13 @@ public class BraveOriginSubscriptionPrefs { setOriginPackageName(profile); setOriginProductId(profile, activePurchaseModel.getProductId()); setOriginPurchaseToken(profile, activePurchaseModel.getPurchaseToken()); + // We only reach verifyPurchase() while the subscription pref is inactive + // (see the BraveActivity guard), so a found purchase means a prior Play + // Store purchase is being auto-restored. setOriginPurchaseToken() above + // already started the credential fetch, so open the Origin settings screen: + // it shows the spinner while credentials are fetched and prompts a restart + // once the policies are enforced. + BraveOriginSettingsLauncherHelper.showOriginSettingsForRestart(); } else { setOriginProductId(profile, ""); setOriginPurchaseToken(profile, "");