| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.signin; | 5 package org.chromium.chrome.browser.signin; |
| 6 | 6 |
| 7 import android.content.Context; |
| 7 import android.content.Intent; | 8 import android.content.Intent; |
| 8 import android.provider.Settings; | 9 import android.provider.Settings; |
| 9 | 10 |
| 10 import org.chromium.base.ContextUtils; | |
| 11 import org.chromium.base.ThreadUtils; | 11 import org.chromium.base.ThreadUtils; |
| 12 import org.chromium.base.annotations.CalledByNative; | 12 import org.chromium.base.annotations.CalledByNative; |
| 13 import org.chromium.chrome.browser.profiles.Profile; | 13 import org.chromium.chrome.browser.profiles.Profile; |
| 14 import org.chromium.chrome.browser.profiles.ProfileAccountManagementMetrics; | 14 import org.chromium.chrome.browser.profiles.ProfileAccountManagementMetrics; |
| 15 | 15 |
| 16 /** | 16 /** |
| 17 * Stub entry points and implementation interface for the account management fra
gment delegate. | 17 * Stub entry points and implementation interface for the account management fra
gment delegate. |
| 18 */ | 18 */ |
| 19 public class AccountManagementScreenHelper { | 19 public class AccountManagementScreenHelper { |
| 20 | 20 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 31 /** | 31 /** |
| 32 * The signin::GAIAServiceType value used when openAndroidAccountCreationScr
een is triggered by | 32 * The signin::GAIAServiceType value used when openAndroidAccountCreationScr
een is triggered by |
| 33 * the GAIA service to create a new account | 33 * the GAIA service to create a new account |
| 34 */ | 34 */ |
| 35 public static final int GAIA_SERVICE_TYPE_SIGNUP = 5; | 35 public static final int GAIA_SERVICE_TYPE_SIGNUP = 5; |
| 36 | 36 |
| 37 private static final String EXTRA_ACCOUNT_TYPES = "account_types"; | 37 private static final String EXTRA_ACCOUNT_TYPES = "account_types"; |
| 38 private static final String EXTRA_VALUE_GOOGLE_ACCOUNTS = "com.google"; | 38 private static final String EXTRA_VALUE_GOOGLE_ACCOUNTS = "com.google"; |
| 39 | 39 |
| 40 @CalledByNative | 40 @CalledByNative |
| 41 private static void openAccountManagementScreen(Profile profile, int gaiaSer
viceType) { | 41 private static void openAccountManagementScreen( |
| 42 Context applicationContext, Profile profile, int gaiaServiceType) { |
| 42 ThreadUtils.assertOnUiThread(); | 43 ThreadUtils.assertOnUiThread(); |
| 43 | 44 |
| 44 if (gaiaServiceType == GAIA_SERVICE_TYPE_SIGNUP) { | 45 if (gaiaServiceType == GAIA_SERVICE_TYPE_SIGNUP) { |
| 45 openAndroidAccountCreationScreen(); | 46 openAndroidAccountCreationScreen(applicationContext); |
| 46 return; | 47 return; |
| 47 } | 48 } |
| 48 | 49 |
| 49 AccountManagementFragment.openAccountManagementScreen(gaiaServiceType); | 50 AccountManagementFragment.openAccountManagementScreen( |
| 51 applicationContext, profile, gaiaServiceType); |
| 50 } | 52 } |
| 51 | 53 |
| 52 /** | 54 /** |
| 53 * Opens the Android account manager for adding or creating a Google account
. | 55 * Opens the Android account manager for adding or creating a Google account
. |
| 56 * @param applicationContext |
| 54 */ | 57 */ |
| 55 private static void openAndroidAccountCreationScreen() { | 58 private static void openAndroidAccountCreationScreen( |
| 59 Context applicationContext) { |
| 56 logEvent(ProfileAccountManagementMetrics.DIRECT_ADD_ACCOUNT, GAIA_SERVIC
E_TYPE_SIGNUP); | 60 logEvent(ProfileAccountManagementMetrics.DIRECT_ADD_ACCOUNT, GAIA_SERVIC
E_TYPE_SIGNUP); |
| 57 | 61 |
| 58 Intent createAccountIntent = new Intent(Settings.ACTION_ADD_ACCOUNT); | 62 Intent createAccountIntent = new Intent(Settings.ACTION_ADD_ACCOUNT); |
| 59 createAccountIntent.putExtra( | 63 createAccountIntent.putExtra( |
| 60 EXTRA_ACCOUNT_TYPES, new String[]{EXTRA_VALUE_GOOGLE_ACCOUNTS}); | 64 EXTRA_ACCOUNT_TYPES, new String[]{EXTRA_VALUE_GOOGLE_ACCOUNTS}); |
| 61 createAccountIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | 65 createAccountIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT |
| 62 | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TAS
K | 66 | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TAS
K |
| 63 | Intent.FLAG_ACTIVITY_CLEAR_TOP); | 67 | Intent.FLAG_ACTIVITY_CLEAR_TOP); |
| 64 | 68 |
| 65 ContextUtils.getApplicationContext().startActivity(createAccountIntent); | 69 applicationContext.startActivity(createAccountIntent); |
| 66 } | 70 } |
| 67 | 71 |
| 68 /** | 72 /** |
| 69 * Log a UMA event for a given metric and a signin type. | 73 * Log a UMA event for a given metric and a signin type. |
| 70 * @param metric One of ProfileAccountManagementMetrics constants. | 74 * @param metric One of ProfileAccountManagementMetrics constants. |
| 71 * @param gaiaServiceType A signin::GAIAServiceType. | 75 * @param gaiaServiceType A signin::GAIAServiceType. |
| 72 */ | 76 */ |
| 73 public static void logEvent(int metric, int gaiaServiceType) { | 77 public static void logEvent(int metric, int gaiaServiceType) { |
| 74 nativeLogEvent(metric, gaiaServiceType); | 78 nativeLogEvent(metric, gaiaServiceType); |
| 75 } | 79 } |
| 76 | 80 |
| 77 // Native methods. | 81 // Native methods. |
| 78 private static native void nativeLogEvent(int metric, int gaiaServiceType); | 82 private static native void nativeLogEvent(int metric, int gaiaServiceType); |
| 79 } | 83 } |
| OLD | NEW |