OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |