Commit 9c519210 authored by Alice Wang's avatar Alice Wang Committed by Chromium LUCI CQ

[Signin] Move launchSigninActivity to SigninBridge

This CL moves the method called by native code launchSigninActivity()
from SigninPromoUtil to SigninBridge.

Bug: 1165772
Change-Id: Id684316cd759379235651511d34216fcbb74337d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2632950Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Commit-Queue: Alice Wang <aliceywang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#844723}
parent d36e1f95
......@@ -3444,7 +3444,6 @@ generate_jni("chrome_jni_headers") {
"java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
"java/src/org/chromium/chrome/browser/signin/SigninBridge.java",
"java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java",
"java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java",
"java/src/org/chromium/chrome/browser/signin/SigninUtils.java",
"java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java",
"java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorSceneLayer.java",
......
......@@ -10,12 +10,27 @@ import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.browser.sync.settings.AccountManagementFragment;
import org.chromium.components.signin.GAIAServiceType;
import org.chromium.components.signin.metrics.SigninAccessPoint;
import org.chromium.ui.base.WindowAndroid;
/**
* The bridge regroups methods invoked by native code to interact with Android Signin UI.
*/
final class SigninBridge {
/**
* Launches {@link SigninActivity}.
* @param windowAndroid WindowAndroid from which to get the Context.
* @param accessPoint for metrics purposes.
*/
@CalledByNative
private static void launchSigninActivity(
WindowAndroid windowAndroid, @SigninAccessPoint int accessPoint) {
final Context context = windowAndroid.getContext().get();
if (context != null) {
SigninActivityLauncherImpl.get().launchActivityIfAllowed(context, accessPoint);
}
}
/**
* Opens account management screen.
*/
......
......@@ -12,7 +12,6 @@ import android.view.View;
import androidx.annotation.VisibleForTesting;
import androidx.collection.ArraySet;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.profiles.Profile;
......@@ -29,7 +28,6 @@ import org.chromium.components.signin.base.CoreAccountInfo;
import org.chromium.components.signin.identitymanager.ConsentLevel;
import org.chromium.components.signin.metrics.SigninAccessPoint;
import org.chromium.components.user_prefs.UserPrefs;
import org.chromium.ui.base.WindowAndroid;
import java.util.Collections;
import java.util.List;
......@@ -153,18 +151,4 @@ public class SigninPromoUtil {
view.getPrimaryButton().setText(R.string.sync_promo_turn_on_sync);
view.getSecondaryButton().setVisibility(View.GONE);
}
/**
* A convenience method to create an SigninActivity, passing the access point as an
* intent extra.
* @param window WindowAndroid from which to get the Activity/Context.
* @param accessPoint for metrics purposes.
*/
@CalledByNative
private static void openSigninActivityForPromo(WindowAndroid window, int accessPoint) {
Activity activity = window.getActivity().get();
if (activity != null) {
SigninActivityLauncherImpl.get().launchActivityIfAllowed(activity, accessPoint);
}
}
}
......@@ -2893,8 +2893,6 @@ static_library("browser") {
"android/signin/signin_manager_android.cc",
"android/signin/signin_manager_android.h",
"android/signin/signin_metrics_utils.cc",
"android/signin/signin_promo_util_android.cc",
"android/signin/signin_promo_util_android.h",
"android/signin/unified_consent_service_bridge.cc",
"android/signin/web_signin_bridge.cc",
"android/signin/web_signin_bridge.h",
......
......@@ -14,6 +14,16 @@
using base::android::JavaParamRef;
// static
void SigninBridge::LaunchSigninActivity(
ui::WindowAndroid* window,
signin_metrics::AccessPoint access_point) {
if (window) {
Java_SigninBridge_launchSigninActivity(base::android::AttachCurrentThread(),
window->GetJavaObject(),
static_cast<int>(access_point));
}
}
void SigninBridge::OpenAccountManagementScreen(
ui::WindowAndroid* window,
signin::GAIAServiceType service_type) {
......
......@@ -8,6 +8,7 @@
#include <string>
#include "components/signin/core/browser/signin_header_helper.h"
#include "components/signin/public/base/signin_metrics.h"
namespace ui {
class WindowAndroid;
......@@ -16,8 +17,12 @@ class WindowAndroid;
// The glue for Java-side implementation of SigninBridge.
class SigninBridge {
public:
// Opens a signin flow with the specified |access_point| for metrics.
static void LaunchSigninActivity(ui::WindowAndroid* window,
signin_metrics::AccessPoint access_point);
// Opens the account management screen.
static void OpenAccountManagementScreen(ui::WindowAndroid* profile,
static void OpenAccountManagementScreen(ui::WindowAndroid* window,
signin::GAIAServiceType service_type);
// Opens the account picker bottomsheet
......
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/android/signin/signin_promo_util_android.h"
#include "base/android/jni_android.h"
#include "chrome/android/chrome_jni_headers/SigninPromoUtil_jni.h"
#include "ui/android/window_android.h"
namespace chrome {
namespace android {
// static
void SigninPromoUtilAndroid::StartSigninActivityForPromo(
ui::WindowAndroid* window,
signin_metrics::AccessPoint access_point) {
if (window) {
Java_SigninPromoUtil_openSigninActivityForPromo(
base::android::AttachCurrentThread(), window->GetJavaObject(),
jint(access_point));
}
}
} // namespace android
} // namespace chrome
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_ANDROID_SIGNIN_SIGNIN_PROMO_UTIL_ANDROID_H_
#define CHROME_BROWSER_ANDROID_SIGNIN_SIGNIN_PROMO_UTIL_ANDROID_H_
#include "base/android/jni_android.h"
#include "components/signin/public/base/signin_metrics.h"
namespace ui {
class WindowAndroid;
}
namespace chrome {
namespace android {
class SigninPromoUtilAndroid {
public:
// Opens a signin flow with the specified |access_point| for metrics.
static void StartSigninActivityForPromo(
ui::WindowAndroid* window,
signin_metrics::AccessPoint access_point);
};
} // namespace android
} // namespace chrome
#endif // CHROME_BROWSER_ANDROID_SIGNIN_SIGNIN_PROMO_UTIL_ANDROID_H_
......@@ -70,7 +70,7 @@
#if defined(OS_ANDROID)
#include "chrome/browser/android/preferences/autofill/autofill_profile_bridge.h"
#include "chrome/browser/android/signin/signin_promo_util_android.h"
#include "chrome/browser/android/signin/signin_bridge.h"
#include "chrome/browser/autofill/android/internal_authenticator_android.h"
#include "chrome/browser/flags/android/chrome_feature_list.h"
#include "chrome/browser/infobars/infobar_service.h"
......@@ -657,7 +657,7 @@ void ChromeAutofillClient::ExecuteCommand(int id) {
if (id == POPUP_ITEM_ID_CREDIT_CARD_SIGNIN_PROMO) {
auto* window = web_contents()->GetNativeView()->GetWindowAndroid();
if (window) {
chrome::android::SigninPromoUtilAndroid::StartSigninActivityForPromo(
SigninBridge::LaunchSigninActivity(
window, signin_metrics::AccessPoint::ACCESS_POINT_AUTOFILL_DROPDOWN);
}
}
......
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