Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/signin/AccountManagementFragment.java

Issue 2784353002: Android: Remove GetApplicationContext part 2 (Closed)
Patch Set: Fix tests Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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.accounts.Account; 7 import android.accounts.Account;
8 import android.annotation.TargetApi; 8 import android.annotation.TargetApi;
9 import android.app.Activity; 9 import android.app.Activity;
10 import android.app.Dialog; 10 import android.app.Dialog;
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 } 176 }
177 } 177 }
178 178
179 /** 179 /**
180 * Initiate fetching the user accounts data (images and the full name). 180 * Initiate fetching the user accounts data (images and the full name).
181 * Fetched data will be sent to observers of ProfileDownloader. 181 * Fetched data will be sent to observers of ProfileDownloader.
182 * 182 *
183 * @param profile Profile to use. 183 * @param profile Profile to use.
184 */ 184 */
185 private static void startFetchingAccountsInformation(Context context, Profil e profile) { 185 private static void startFetchingAccountsInformation(Context context, Profil e profile) {
186 Account[] accounts = AccountManagerHelper.get(context).getGoogleAccounts (); 186 Account[] accounts = AccountManagerHelper.get().getGoogleAccounts();
187 for (int i = 0; i < accounts.length; i++) { 187 for (int i = 0; i < accounts.length; i++) {
188 startFetchingAccountInformation(context, profile, accounts[i].name); 188 startFetchingAccountInformation(context, profile, accounts[i].name);
189 } 189 }
190 } 190 }
191 191
192 public void update() { 192 public void update() {
193 final Context context = getActivity(); 193 final Context context = getActivity();
194 if (context == null) return; 194 if (context == null) return;
195 195
196 if (getPreferenceScreen() != null) getPreferenceScreen().removeAll(); 196 if (getPreferenceScreen() != null) getPreferenceScreen().removeAll();
197 197
198 ChromeSigninController signInController = ChromeSigninController.get(con text); 198 ChromeSigninController signInController = ChromeSigninController.get();
199 if (!signInController.isSignedIn()) { 199 if (!signInController.isSignedIn()) {
200 // The AccountManagementFragment can only be shown when the user is signed in. If the 200 // The AccountManagementFragment can only be shown when the user is signed in. If the
201 // user is signed out, exit the fragment. 201 // user is signed out, exit the fragment.
202 getActivity().finish(); 202 getActivity().finish();
203 return; 203 return;
204 } 204 }
205 205
206 addPreferencesFromResource(R.xml.account_management_preferences); 206 addPreferencesFromResource(R.xml.account_management_preferences);
207 207
208 String signedInAccountName = 208 String signedInAccountName = ChromeSigninController.get().getSignedInAcc ountName();
209 ChromeSigninController.get(getActivity()).getSignedInAccountName ();
210 String fullName = getCachedUserName(signedInAccountName); 209 String fullName = getCachedUserName(signedInAccountName);
211 if (TextUtils.isEmpty(fullName)) { 210 if (TextUtils.isEmpty(fullName)) {
212 fullName = ProfileDownloader.getCachedFullName(Profile.getLastUsedPr ofile()); 211 fullName = ProfileDownloader.getCachedFullName(Profile.getLastUsedPr ofile());
213 } 212 }
214 if (TextUtils.isEmpty(fullName)) fullName = signedInAccountName; 213 if (TextUtils.isEmpty(fullName)) fullName = signedInAccountName;
215 214
216 getActivity().setTitle(fullName); 215 getActivity().setTitle(fullName);
217 216
218 configureSignOutSwitch(); 217 configureSignOutSwitch();
219 configureAddAccountPreference(); 218 configureAddAccountPreference();
(...skipping 19 matching lines...) Expand all
239 Preference signOutSwitch = findPreference(PREF_SIGN_OUT); 238 Preference signOutSwitch = findPreference(PREF_SIGN_OUT);
240 if (isChildAccount) { 239 if (isChildAccount) {
241 getPreferenceScreen().removePreference(signOutSwitch); 240 getPreferenceScreen().removePreference(signOutSwitch);
242 } else { 241 } else {
243 signOutSwitch.setEnabled(getSignOutAllowedPreferenceValue(getActivit y())); 242 signOutSwitch.setEnabled(getSignOutAllowedPreferenceValue(getActivit y()));
244 signOutSwitch.setOnPreferenceClickListener(new OnPreferenceClickList ener() { 243 signOutSwitch.setOnPreferenceClickListener(new OnPreferenceClickList ener() {
245 @Override 244 @Override
246 public boolean onPreferenceClick(Preference preference) { 245 public boolean onPreferenceClick(Preference preference) {
247 if (!isVisible() || !isResumed()) return false; 246 if (!isVisible() || !isResumed()) return false;
248 247
249 if (ChromeSigninController.get(getActivity()).isSignedIn() 248 if (ChromeSigninController.get().isSignedIn()
250 && getSignOutAllowedPreferenceValue(getActivity())) { 249 && getSignOutAllowedPreferenceValue(getActivity())) {
251 AccountManagementScreenHelper.logEvent( 250 AccountManagementScreenHelper.logEvent(
252 ProfileAccountManagementMetrics.TOGGLE_SIGNOUT, 251 ProfileAccountManagementMetrics.TOGGLE_SIGNOUT,
253 mGaiaServiceType); 252 mGaiaServiceType);
254 253
255 String managementDomain = 254 String managementDomain =
256 SigninManager.get(getActivity()).getManagementDo main(); 255 SigninManager.get(getActivity()).getManagementDo main();
257 if (managementDomain != null) { 256 if (managementDomain != null) {
258 // Show the 'You are signing out of a managed accoun t' dialog. 257 // Show the 'You are signing out of a managed accoun t' dialog.
259 ConfirmManagedSyncDataDialog.showSignOutFromManagedA ccountDialog( 258 ConfirmManagedSyncDataDialog.showSignOutFromManagedA ccountDialog(
(...skipping 15 matching lines...) Expand all
275 274
276 return false; 275 return false;
277 } 276 }
278 277
279 }); 278 });
280 } 279 }
281 } 280 }
282 281
283 private void configureSyncSettings() { 282 private void configureSyncSettings() {
284 final Preferences preferences = (Preferences) getActivity(); 283 final Preferences preferences = (Preferences) getActivity();
285 final Account account = ChromeSigninController.get(getActivity()).getSig nedInUser(); 284 final Account account = ChromeSigninController.get().getSignedInUser();
286 findPreference(PREF_SYNC_SETTINGS) 285 findPreference(PREF_SYNC_SETTINGS)
287 .setOnPreferenceClickListener(new OnPreferenceClickListener() { 286 .setOnPreferenceClickListener(new OnPreferenceClickListener() {
288 @Override 287 @Override
289 public boolean onPreferenceClick(Preference preference) { 288 public boolean onPreferenceClick(Preference preference) {
290 if (!isVisible() || !isResumed()) return false; 289 if (!isVisible() || !isResumed()) return false;
291 290
292 if (ProfileSyncService.get() == null) return true; 291 if (ProfileSyncService.get() == null) return true;
293 292
294 Bundle args = new Bundle(); 293 Bundle args = new Bundle();
295 args.putString(SyncCustomizationFragment.ARGUMENT_ACCOUN T, account.name); 294 args.putString(SyncCustomizationFragment.ARGUMENT_ACCOUN T, account.name);
296 preferences.startFragment(SyncCustomizationFragment.clas s.getName(), args); 295 preferences.startFragment(SyncCustomizationFragment.clas s.getName(), args);
297 296
298 return true; 297 return true;
299 } 298 }
300 }); 299 });
301 } 300 }
302 301
303 private void configureGoogleActivityControls() { 302 private void configureGoogleActivityControls() {
304 Preference pref = findPreference(PREF_GOOGLE_ACTIVITY_CONTROLS); 303 Preference pref = findPreference(PREF_GOOGLE_ACTIVITY_CONTROLS);
305 if (ChildAccountService.isChildAccount()) { 304 if (ChildAccountService.isChildAccount()) {
306 pref.setSummary(R.string.sign_in_google_activity_controls_message_ch ild_account); 305 pref.setSummary(R.string.sign_in_google_activity_controls_message_ch ild_account);
307 } 306 }
308 pref.setOnPreferenceClickListener(new OnPreferenceClickListener() { 307 pref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
309 @Override 308 @Override
310 public boolean onPreferenceClick(Preference preference) { 309 public boolean onPreferenceClick(Preference preference) {
311 Activity activity = getActivity(); 310 Activity activity = getActivity();
312 AppHooks.get().createGoogleActivityController().openWebAndAppAct ivitySettings( 311 AppHooks.get().createGoogleActivityController().openWebAndAppAct ivitySettings(
313 activity, ChromeSigninController.get(activity).getSigned InAccountName()); 312 activity, ChromeSigninController.get().getSignedInAccoun tName());
314 RecordUserAction.record("Signin_AccountSettings_GoogleActivityCo ntrolsClicked"); 313 RecordUserAction.record("Signin_AccountSettings_GoogleActivityCo ntrolsClicked");
315 return true; 314 return true;
316 } 315 }
317 }); 316 });
318 } 317 }
319 318
320 private void configureAddAccountPreference() { 319 private void configureAddAccountPreference() {
321 ChromeBasePreference addAccount = (ChromeBasePreference) findPreference( PREF_ADD_ACCOUNT); 320 ChromeBasePreference addAccount = (ChromeBasePreference) findPreference( PREF_ADD_ACCOUNT);
322 321
323 if (ChildAccountService.isChildAccount()) { 322 if (ChildAccountService.isChildAccount()) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 private void updateAccountsList() { 408 private void updateAccountsList() {
410 PreferenceScreen prefScreen = getPreferenceScreen(); 409 PreferenceScreen prefScreen = getPreferenceScreen();
411 if (prefScreen == null) return; 410 if (prefScreen == null) return;
412 411
413 for (int i = 0; i < mAccountsListPreferences.size(); i++) { 412 for (int i = 0; i < mAccountsListPreferences.size(); i++) {
414 prefScreen.removePreference(mAccountsListPreferences.get(i)); 413 prefScreen.removePreference(mAccountsListPreferences.get(i));
415 } 414 }
416 mAccountsListPreferences.clear(); 415 mAccountsListPreferences.clear();
417 416
418 final Preferences activity = (Preferences) getActivity(); 417 final Preferences activity = (Preferences) getActivity();
419 Account[] accounts = AccountManagerHelper.get(activity).getGoogleAccount s(); 418 Account[] accounts = AccountManagerHelper.get().getGoogleAccounts();
420 int nextPrefOrder = FIRST_ACCOUNT_PREF_ORDER; 419 int nextPrefOrder = FIRST_ACCOUNT_PREF_ORDER;
421 420
422 for (Account account : accounts) { 421 for (Account account : accounts) {
423 ChromeBasePreference pref = new ChromeBasePreference(activity); 422 ChromeBasePreference pref = new ChromeBasePreference(activity);
424 pref.setSelectable(false); 423 pref.setSelectable(false);
425 pref.setTitle(account.name); 424 pref.setTitle(account.name);
426 425
427 boolean isChildAccount = ChildAccountService.isChildAccount(); 426 boolean isChildAccount = ChildAccountService.isChildAccount();
428 pref.setUseReducedPadding(isChildAccount); 427 pref.setUseReducedPadding(isChildAccount);
429 pref.setIcon(new BitmapDrawable(getResources(), 428 pref.setIcon(new BitmapDrawable(getResources(),
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
468 dialog.setMessage(getString(R.string.wiping_profile_data_message)); 467 dialog.setMessage(getString(R.string.wiping_profile_data_message));
469 dialog.setIndeterminate(true); 468 dialog.setIndeterminate(true);
470 return dialog; 469 return dialog;
471 } 470 }
472 } 471 }
473 472
474 @Override 473 @Override
475 public void onSignOutClicked() { 474 public void onSignOutClicked() {
476 // In case the user reached this fragment without being signed in, we gu ard the sign out so 475 // In case the user reached this fragment without being signed in, we gu ard the sign out so
477 // we do not hit a native crash. 476 // we do not hit a native crash.
478 if (!ChromeSigninController.get(getActivity()).isSignedIn()) return; 477 if (!ChromeSigninController.get().isSignedIn()) return;
479 478
480 final Activity activity = getActivity(); 479 final Activity activity = getActivity();
481 final DialogFragment clearDataProgressDialog = new ClearDataProgressDial og(); 480 final DialogFragment clearDataProgressDialog = new ClearDataProgressDial og();
482 SigninManager.get(activity).signOut(null, new SigninManager.WipeDataHook s() { 481 SigninManager.get(activity).signOut(null, new SigninManager.WipeDataHook s() {
483 @Override 482 @Override
484 public void preWipeData() { 483 public void preWipeData() {
485 clearDataProgressDialog.show( 484 clearDataProgressDialog.show(
486 activity.getFragmentManager(), CLEAR_DATA_PROGRESS_DIALO G_TAG); 485 activity.getFragmentManager(), CLEAR_DATA_PROGRESS_DIALO G_TAG);
487 } 486 }
488 @Override 487 @Override
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
536 update(); 535 update();
537 } 536 }
538 537
539 @Override 538 @Override
540 public void onSignedOut() { 539 public void onSignedOut() {
541 update(); 540 update();
542 } 541 }
543 542
544 /** 543 /**
545 * Open the account management UI. 544 * Open the account management UI.
546 * @param applicationContext An application context.
547 * @param profile A user profile.
548 * @param serviceType A signin::GAIAServiceType that triggered the dialog. 545 * @param serviceType A signin::GAIAServiceType that triggered the dialog.
549 */ 546 */
550 public static void openAccountManagementScreen( 547 public static void openAccountManagementScreen(int serviceType) {
551 Context applicationContext, Profile profile, int serviceType) { 548 Intent intent = PreferencesLauncher.createIntentForSettingsPage(
552 Intent intent = PreferencesLauncher.createIntentForSettingsPage(applicat ionContext, 549 ContextUtils.getApplicationContext(), AccountManagementFragment. class.getName());
553 AccountManagementFragment.class.getName());
554 Bundle arguments = new Bundle(); 550 Bundle arguments = new Bundle();
555 arguments.putInt(SHOW_GAIA_SERVICE_TYPE_EXTRA, serviceType); 551 arguments.putInt(SHOW_GAIA_SERVICE_TYPE_EXTRA, serviceType);
556 intent.putExtra(Preferences.EXTRA_SHOW_FRAGMENT_ARGUMENTS, arguments); 552 intent.putExtra(Preferences.EXTRA_SHOW_FRAGMENT_ARGUMENTS, arguments);
557 applicationContext.startActivity(intent); 553 ContextUtils.getApplicationContext().startActivity(intent);
558 } 554 }
559 555
560 /** 556 /**
561 * Converts a square user picture to a round user picture. 557 * Converts a square user picture to a round user picture.
562 * @param bitmap A bitmap to convert. 558 * @param bitmap A bitmap to convert.
563 * @return A rounded picture bitmap. 559 * @return A rounded picture bitmap.
564 */ 560 */
565 public static Bitmap makeRoundUserPicture(Bitmap bitmap) { 561 public static Bitmap makeRoundUserPicture(Bitmap bitmap) {
566 if (bitmap == null) return null; 562 if (bitmap == null) return null;
567 563
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 context, profile, accountName, imageSidePixels, false); 689 context, profile, accountName, imageSidePixels, false);
694 } 690 }
695 691
696 /** 692 /**
697 * Prefetch the primary account image and name. 693 * Prefetch the primary account image and name.
698 * 694 *
699 * @param context A context to use. 695 * @param context A context to use.
700 * @param profile A profile to use. 696 * @param profile A profile to use.
701 */ 697 */
702 public static void prefetchUserNamePicture(Context context, Profile profile) { 698 public static void prefetchUserNamePicture(Context context, Profile profile) {
703 final String accountName = ChromeSigninController.get(context).getSigned InAccountName(); 699 final String accountName = ChromeSigninController.get().getSignedInAccou ntName();
704 if (TextUtils.isEmpty(accountName)) return; 700 if (TextUtils.isEmpty(accountName)) return;
705 if (sToNamePicture.get(accountName) != null) return; 701 if (sToNamePicture.get(accountName) != null) return;
706 702
707 ProfileDownloader.addObserver(new ProfileDownloader.Observer() { 703 ProfileDownloader.addObserver(new ProfileDownloader.Observer() {
708 @Override 704 @Override
709 public void onProfileDownloaded(String accountId, String fullName, S tring givenName, 705 public void onProfileDownloaded(String accountId, String fullName, S tring givenName,
710 Bitmap bitmap) { 706 Bitmap bitmap) {
711 if (TextUtils.equals(accountName, accountId)) { 707 if (TextUtils.equals(accountName, accountId)) {
712 updateUserNamePictureCache(accountId, fullName, bitmap); 708 updateUserNamePictureCache(accountId, fullName, bitmap);
713 ProfileDownloader.removeObserver(this); 709 ProfileDownloader.removeObserver(this);
(...skipping 18 matching lines...) Expand all
732 * @param context A context 728 * @param context A context
733 * @param isAllowed True if the sign out is not disabled due to a child/EDU account 729 * @param isAllowed True if the sign out is not disabled due to a child/EDU account
734 */ 730 */
735 public static void setSignOutAllowedPreferenceValue(Context context, boolean isAllowed) { 731 public static void setSignOutAllowedPreferenceValue(Context context, boolean isAllowed) {
736 ContextUtils.getAppSharedPreferences() 732 ContextUtils.getAppSharedPreferences()
737 .edit() 733 .edit()
738 .putBoolean(SIGN_OUT_ALLOWED, isAllowed) 734 .putBoolean(SIGN_OUT_ALLOWED, isAllowed)
739 .apply(); 735 .apply();
740 } 736 }
741 } 737 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698