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

Unified Diff: chrome/browser/sync/profile_sync_service_android.cc

Issue 1247853007: [Sync] Add auto-generated ModelType in Java. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add SYNC_EXPORT and rebase. Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync/profile_sync_service_android.cc
diff --git a/chrome/browser/sync/profile_sync_service_android.cc b/chrome/browser/sync/profile_sync_service_android.cc
index d88fd22c21aca43d6ea137f5a05c4c546cf3a7f8..3bfdc6b7ac30a1bce17a10caecd97da68c8900e8 100644
--- a/chrome/browser/sync/profile_sync_service_android.cc
+++ b/chrome/browser/sync/profile_sync_service_android.cc
@@ -5,6 +5,7 @@
#include "chrome/browser/sync/profile_sync_service_android.h"
#include "base/android/jni_android.h"
+#include "base/android/jni_array.h"
#include "base/android/jni_string.h"
#include "base/bind.h"
#include "base/i18n/time_formatting.h"
@@ -44,33 +45,6 @@ using content::BrowserThread;
namespace {
-// This enum contains the list of sync ModelTypes that Android can register for
-// invalidations for.
-//
-// A Java counterpart will be generated for this enum.
-// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.sync
-enum ModelTypeSelection {
- AUTOFILL = 1 << 0,
- BOOKMARK = 1 << 1,
- PASSWORD = 1 << 2,
- SESSION = 1 << 3,
- TYPED_URL = 1 << 4,
- AUTOFILL_PROFILE = 1 << 5,
- HISTORY_DELETE_DIRECTIVE = 1 << 6,
- PROXY_TABS = 1 << 7,
- FAVICON_IMAGE = 1 << 8,
- FAVICON_TRACKING = 1 << 9,
- NIGORI = 1 << 10,
- DEVICE_INFO = 1 << 11,
- EXPERIMENTS = 1 << 12,
- SUPERVISED_USER_SETTING = 1 << 13,
- SUPERVISED_USER_WHITELIST = 1 << 14,
- AUTOFILL_WALLET = 1 << 15,
- AUTOFILL_WALLET_METADATA = 1 << 16,
- PREFERENCE = 1 << 17,
- PRIORITY_PREFERENCE = 1 << 18,
-};
-
// Native callback for the JNI GetAllNodes method. When
// ProfileSyncService::GetAllNodes completes, this method is called and the
// results are sent to the Java callback.
@@ -361,40 +335,32 @@ jboolean ProfileSyncServiceAndroid::IsSyncKeystoreMigrationDone(
return is_status_valid && !status.keystore_migration_time.is_null();
}
-jlong ProfileSyncServiceAndroid::GetActiveDataTypes(
+ScopedJavaLocalRef<jintArray> ProfileSyncServiceAndroid::GetActiveDataTypes(
JNIEnv* env, jobject obj) {
syncer::ModelTypeSet types = sync_service_->GetActiveDataTypes();
types.PutAll(syncer::ControlTypes());
- return ModelTypeSetToSelection(types);
+ return ModelTypeSetToJavaIntArray(env, types);
}
-jlong ProfileSyncServiceAndroid::GetPreferredDataTypes(
+ScopedJavaLocalRef<jintArray> ProfileSyncServiceAndroid::GetPreferredDataTypes(
JNIEnv* env, jobject obj) {
syncer::ModelTypeSet types = sync_service_->GetPreferredDataTypes();
types.PutAll(syncer::ControlTypes());
- return ModelTypeSetToSelection(types);
+ return ModelTypeSetToJavaIntArray(env, types);
}
void ProfileSyncServiceAndroid::SetPreferredDataTypes(
JNIEnv* env, jobject obj,
jboolean sync_everything,
- jlong model_type_selection) {
+ jintArray model_type_array) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
+ std::vector<int> types_vector;
+ base::android::JavaIntArrayToIntVector(env, model_type_array, &types_vector);
syncer::ModelTypeSet types;
- // Note: only user selectable types should be included here.
- if (model_type_selection & AUTOFILL)
- types.Put(syncer::AUTOFILL);
- if (model_type_selection & BOOKMARK)
- types.Put(syncer::BOOKMARKS);
- if (model_type_selection & PASSWORD)
- types.Put(syncer::PASSWORDS);
- if (model_type_selection & PROXY_TABS)
- types.Put(syncer::PROXY_TABS);
- if (model_type_selection & TYPED_URL)
- types.Put(syncer::TYPED_URLS);
- if (model_type_selection & PREFERENCE)
- types.Put(syncer::PREFERENCES);
- DCHECK(syncer::UserSelectableTypes().HasAll(types));
+ for (size_t i = 0; i < types_vector.size(); i++) {
+ types.Put(static_cast<syncer::ModelType>(types_vector[i]));
+ }
+ types.RetainAll(syncer::UserSelectableTypes());
sync_service_->OnUserChoseDatatypes(sync_everything, types);
}
@@ -477,76 +443,15 @@ void ProfileSyncServiceAndroid::OverrideNetworkResourcesForTest(
}
// static
-jlong ProfileSyncServiceAndroid::ModelTypeSetToSelection(
+ScopedJavaLocalRef<jintArray>
+ProfileSyncServiceAndroid::ModelTypeSetToJavaIntArray(
+ JNIEnv* env,
syncer::ModelTypeSet types) {
- jlong model_type_selection = 0;
- if (types.Has(syncer::BOOKMARKS)) {
- model_type_selection |= BOOKMARK;
- }
- if (types.Has(syncer::AUTOFILL)) {
- model_type_selection |= AUTOFILL;
- }
- if (types.Has(syncer::AUTOFILL_PROFILE)) {
- model_type_selection |= AUTOFILL_PROFILE;
- }
- if (types.Has(syncer::AUTOFILL_WALLET_DATA)) {
- model_type_selection |= AUTOFILL_WALLET;
- }
- if (types.Has(syncer::AUTOFILL_WALLET_METADATA)) {
- model_type_selection |= AUTOFILL_WALLET_METADATA;
- }
- if (types.Has(syncer::PASSWORDS)) {
- model_type_selection |= PASSWORD;
- }
- if (types.Has(syncer::PREFERENCES)) {
- model_type_selection |= PREFERENCE;
- }
- if (types.Has(syncer::PRIORITY_PREFERENCES)) {
- model_type_selection |= PRIORITY_PREFERENCE;
- }
- if (types.Has(syncer::TYPED_URLS)) {
- model_type_selection |= TYPED_URL;
- }
- if (types.Has(syncer::SESSIONS)) {
- model_type_selection |= SESSION;
+ std::vector<int> type_vector;
+ for (syncer::ModelTypeSet::Iterator it = types.First(); it.Good(); it.Inc()) {
+ type_vector.push_back(it.Get());
}
- if (types.Has(syncer::HISTORY_DELETE_DIRECTIVES)) {
- model_type_selection |= HISTORY_DELETE_DIRECTIVE;
- }
- if (types.Has(syncer::PROXY_TABS)) {
- model_type_selection |= PROXY_TABS;
- }
- if (types.Has(syncer::FAVICON_IMAGES)) {
- model_type_selection |= FAVICON_IMAGE;
- }
- if (types.Has(syncer::FAVICON_TRACKING)) {
- model_type_selection |= FAVICON_TRACKING;
- }
- if (types.Has(syncer::DEVICE_INFO)) {
- model_type_selection |= DEVICE_INFO;
- }
- if (types.Has(syncer::NIGORI)) {
- model_type_selection |= NIGORI;
- }
- if (types.Has(syncer::EXPERIMENTS)) {
- model_type_selection |= EXPERIMENTS;
- }
- if (types.Has(syncer::SUPERVISED_USER_SETTINGS)) {
- model_type_selection |= SUPERVISED_USER_SETTING;
- }
- if (types.Has(syncer::SUPERVISED_USER_WHITELISTS)) {
- model_type_selection |= SUPERVISED_USER_WHITELIST;
- }
- return model_type_selection;
-}
-
-// static
-std::string ProfileSyncServiceAndroid::ModelTypeSelectionToStringForTest(
- jlong model_type_selection) {
- ScopedJavaLocalRef<jstring> string =
- Java_ProfileSyncService_modelTypeSelectionToStringForTest(
- AttachCurrentThread(), model_type_selection);
- return ConvertJavaStringToUTF8(string);
+ return base::android::ToJavaIntArray(env, type_vector);
}
// static

Powered by Google App Engine
This is Rietveld 408576698