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

Side by Side Diff: chrome/browser/sync/profile_sync_service_android.cc

Issue 13109002: [Sync] Move Android enabled types logic into native (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix Created 7 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "chrome/browser/sync/profile_sync_service_android.h" 5 #include "chrome/browser/sync/profile_sync_service_android.h"
6 6
7 #include "base/android/jni_android.h" 7 #include "base/android/jni_android.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/i18n/time_formatting.h" 10 #include "base/i18n/time_formatting.h"
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 391 }
392 392
393 jboolean ProfileSyncServiceAndroid::IsSyncKeystoreMigrationDone( 393 jboolean ProfileSyncServiceAndroid::IsSyncKeystoreMigrationDone(
394 JNIEnv* env, jobject) { 394 JNIEnv* env, jobject) {
395 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 395 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
396 syncer::SyncStatus status; 396 syncer::SyncStatus status;
397 bool is_status_valid = sync_service_->QueryDetailedSyncStatus(&status); 397 bool is_status_valid = sync_service_->QueryDetailedSyncStatus(&status);
398 return is_status_valid && !status.keystore_migration_time.is_null(); 398 return is_status_valid && !status.keystore_migration_time.is_null();
399 } 399 }
400 400
401 jlong ProfileSyncServiceAndroid::GetEnabledDataTypes(JNIEnv* env,
402 jobject obj) {
403 jlong model_type_selection = 0;
404 syncer::ModelTypeSet types = sync_service_->GetPreferredDataTypes();
405 types.PutAll(syncer::ControlTypes());
406 if (types.Has(syncer::BOOKMARKS)) {
407 model_type_selection |= BOOKMARK;
408 }
409 if (types.Has(syncer::AUTOFILL)) {
410 model_type_selection |= AUTOFILL;
411 }
412 if (types.Has(syncer::AUTOFILL_PROFILE)) {
413 model_type_selection |= AUTOFILL_PROFILE;
414 }
415 if (types.Has(syncer::PASSWORDS)) {
416 model_type_selection |= PASSWORD;
417 }
418 if (types.Has(syncer::TYPED_URLS)) {
419 model_type_selection |= TYPED_URL;
420 }
421 if (types.Has(syncer::SESSIONS)) {
422 model_type_selection |= SESSION;
423 }
424 if (types.Has(syncer::HISTORY_DELETE_DIRECTIVES)) {
425 model_type_selection |= HISTORY_DELETE_DIRECTIVE;
426 }
427 if (types.Has(syncer::PROXY_TABS)) {
428 model_type_selection |= PROXY_TABS;
429 }
430 if (types.Has(syncer::FAVICON_IMAGES)) {
431 model_type_selection |= FAVICON_IMAGE;
432 }
433 if (types.Has(syncer::FAVICON_TRACKING)) {
434 model_type_selection |= FAVICON_TRACKING;
435 }
436 if (types.Has(syncer::DEVICE_INFO)) {
437 model_type_selection |= DEVICE_INFO;
438 }
439 if (types.Has(syncer::NIGORI)) {
440 model_type_selection |= NIGORI;
441 }
442 if (types.Has(syncer::EXPERIMENTS)) {
443 model_type_selection |= EXPERIMENTS;
444 }
445 return model_type_selection;
446 }
447
401 void ProfileSyncServiceAndroid::SetPreferredDataTypes( 448 void ProfileSyncServiceAndroid::SetPreferredDataTypes(
402 JNIEnv* env, jobject obj, 449 JNIEnv* env, jobject obj,
403 jboolean sync_everything, 450 jboolean sync_everything,
404 jlong model_type_selection) { 451 jlong model_type_selection) {
405 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 452 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
406 syncer::ModelTypeSet types; 453 syncer::ModelTypeSet types;
454 // Note: only user selectable types should be included here.
407 if (model_type_selection & AUTOFILL) 455 if (model_type_selection & AUTOFILL)
408 types.Put(syncer::AUTOFILL); 456 types.Put(syncer::AUTOFILL);
409 if (model_type_selection & BOOKMARK) 457 if (model_type_selection & BOOKMARK)
410 types.Put(syncer::BOOKMARKS); 458 types.Put(syncer::BOOKMARKS);
411 if (model_type_selection & PASSWORD) 459 if (model_type_selection & PASSWORD)
412 types.Put(syncer::PASSWORDS); 460 types.Put(syncer::PASSWORDS);
413 if (model_type_selection & SESSION) 461 if (model_type_selection & SESSION)
414 types.Put(syncer::SESSIONS); 462 types.Put(syncer::SESSIONS);
415 if (model_type_selection & TYPED_URL) 463 if (model_type_selection & TYPED_URL)
416 types.Put(syncer::TYPED_URLS); 464 types.Put(syncer::TYPED_URLS);
465 DCHECK(syncer::UserSelectableTypes().HasAll(types));
417 sync_service_->OnUserChoseDatatypes(sync_everything, types); 466 sync_service_->OnUserChoseDatatypes(sync_everything, types);
418 } 467 }
419 468
420 void ProfileSyncServiceAndroid::SetSetupInProgress( 469 void ProfileSyncServiceAndroid::SetSetupInProgress(
421 JNIEnv* env, jobject obj, jboolean in_progress) { 470 JNIEnv* env, jobject obj, jboolean in_progress) {
422 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 471 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
423 sync_service_->SetSetupInProgress(in_progress); 472 sync_service_->SetSetupInProgress(in_progress);
424 } 473 }
425 474
426 void ProfileSyncServiceAndroid::SetSyncSetupCompleted( 475 void ProfileSyncServiceAndroid::SetSyncSetupCompleted(
(...skipping 14 matching lines...) Expand all
441 sync_service_->EnableEncryptEverything(); 490 sync_service_->EnableEncryptEverything();
442 } 491 }
443 492
444 jboolean ProfileSyncServiceAndroid::HasKeepEverythingSynced( 493 jboolean ProfileSyncServiceAndroid::HasKeepEverythingSynced(
445 JNIEnv* env, jobject) { 494 JNIEnv* env, jobject) {
446 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 495 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
447 browser_sync::SyncPrefs prefs(profile_->GetPrefs()); 496 browser_sync::SyncPrefs prefs(profile_->GetPrefs());
448 return prefs.HasKeepEverythingSynced(); 497 return prefs.HasKeepEverythingSynced();
449 } 498 }
450 499
451 jboolean ProfileSyncServiceAndroid::IsAutofillSyncEnabled(
452 JNIEnv* env, jobject obj) {
453 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
454 return HasKeepEverythingSynced(env, obj) ||
455 sync_service_->GetPreferredDataTypes().Has(syncer::AUTOFILL);
456 }
457
458 jboolean ProfileSyncServiceAndroid::IsBookmarkSyncEnabled(
459 JNIEnv* env, jobject obj) {
460 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
461 return HasKeepEverythingSynced(env, obj) ||
462 sync_service_->GetPreferredDataTypes().Has(syncer::BOOKMARKS);
463 }
464
465 jboolean ProfileSyncServiceAndroid::IsPasswordSyncEnabled(
466 JNIEnv* env, jobject obj) {
467 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
468 return HasKeepEverythingSynced(env, obj) ||
469 sync_service_->GetPreferredDataTypes().Has(syncer::PASSWORDS);
470 }
471
472 jboolean ProfileSyncServiceAndroid::IsTypedUrlSyncEnabled(
473 JNIEnv* env, jobject obj) {
474 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
475 return HasKeepEverythingSynced(env, obj) ||
476 sync_service_->GetPreferredDataTypes().Has(syncer::TYPED_URLS);
477 }
478
479 jboolean ProfileSyncServiceAndroid::IsSessionSyncEnabled(
480 JNIEnv* env, jobject obj) {
481 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
482 return HasKeepEverythingSynced(env, obj) ||
483 sync_service_->GetPreferredDataTypes().Has(syncer::SESSIONS);
484 }
485
486 jboolean ProfileSyncServiceAndroid::HasUnrecoverableError( 500 jboolean ProfileSyncServiceAndroid::HasUnrecoverableError(
487 JNIEnv* env, jobject) { 501 JNIEnv* env, jobject) {
488 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 502 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
489 return sync_service_->HasUnrecoverableError(); 503 return sync_service_->HasUnrecoverableError();
490 } 504 }
491 505
492 ScopedJavaLocalRef<jstring> ProfileSyncServiceAndroid::GetAboutInfoForTest( 506 ScopedJavaLocalRef<jstring> ProfileSyncServiceAndroid::GetAboutInfoForTest(
493 JNIEnv* env, jobject) { 507 JNIEnv* env, jobject) {
494 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 508 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
495 509
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 ProfileSyncServiceAndroid* profile_sync_service_android = 552 ProfileSyncServiceAndroid* profile_sync_service_android =
539 new ProfileSyncServiceAndroid(env, obj); 553 new ProfileSyncServiceAndroid(env, obj);
540 profile_sync_service_android->Init(); 554 profile_sync_service_android->Init();
541 return reinterpret_cast<jint>(profile_sync_service_android); 555 return reinterpret_cast<jint>(profile_sync_service_android);
542 } 556 }
543 557
544 // static 558 // static
545 bool ProfileSyncServiceAndroid::Register(JNIEnv* env) { 559 bool ProfileSyncServiceAndroid::Register(JNIEnv* env) {
546 return RegisterNativesImpl(env); 560 return RegisterNativesImpl(env);
547 } 561 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698