| 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_array.h" | 8 #include "base/android/jni_array.h" |
| 9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 void ProfileSyncServiceAndroid::OnStateChanged() { | 117 void ProfileSyncServiceAndroid::OnStateChanged() { |
| 118 // Notify the java world that our sync state has changed. | 118 // Notify the java world that our sync state has changed. |
| 119 JNIEnv* env = AttachCurrentThread(); | 119 JNIEnv* env = AttachCurrentThread(); |
| 120 Java_ProfileSyncService_syncStateChanged( | 120 Java_ProfileSyncService_syncStateChanged( |
| 121 env, weak_java_profile_sync_service_.get(env).obj()); | 121 env, weak_java_profile_sync_service_.get(env).obj()); |
| 122 } | 122 } |
| 123 | 123 |
| 124 // Pure ProfileSyncService calls. | 124 // Pure ProfileSyncService calls. |
| 125 | 125 |
| 126 jboolean ProfileSyncServiceAndroid::IsSyncRequested( | 126 jboolean ProfileSyncServiceAndroid::IsSyncRequested( |
| 127 JNIEnv* env, jobject obj) { | 127 JNIEnv* env, |
| 128 const JavaParamRef<jobject>& obj) { |
| 128 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 129 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 129 return sync_service_->IsSyncRequested(); | 130 return sync_service_->IsSyncRequested(); |
| 130 } | 131 } |
| 131 | 132 |
| 132 void ProfileSyncServiceAndroid::RequestStart(JNIEnv* env, jobject) { | 133 void ProfileSyncServiceAndroid::RequestStart(JNIEnv* env, |
| 134 const JavaParamRef<jobject>&) { |
| 133 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 135 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 134 sync_service_->RequestStart(); | 136 sync_service_->RequestStart(); |
| 135 } | 137 } |
| 136 | 138 |
| 137 void ProfileSyncServiceAndroid::RequestStop(JNIEnv* env, jobject) { | 139 void ProfileSyncServiceAndroid::RequestStop(JNIEnv* env, |
| 140 const JavaParamRef<jobject>&) { |
| 138 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 141 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 139 sync_service_->RequestStop(ProfileSyncService::KEEP_DATA); | 142 sync_service_->RequestStop(ProfileSyncService::KEEP_DATA); |
| 140 } | 143 } |
| 141 | 144 |
| 142 void ProfileSyncServiceAndroid::SignOutSync(JNIEnv* env, jobject) { | 145 void ProfileSyncServiceAndroid::SignOutSync(JNIEnv* env, |
| 146 const JavaParamRef<jobject>&) { |
| 143 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 147 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 144 DCHECK(profile_); | 148 DCHECK(profile_); |
| 145 sync_service_->RequestStop(ProfileSyncService::CLEAR_DATA); | 149 sync_service_->RequestStop(ProfileSyncService::CLEAR_DATA); |
| 146 } | 150 } |
| 147 | 151 |
| 148 jboolean ProfileSyncServiceAndroid::IsSyncActive(JNIEnv* env, jobject obj) { | 152 jboolean ProfileSyncServiceAndroid::IsSyncActive( |
| 153 JNIEnv* env, |
| 154 const JavaParamRef<jobject>& obj) { |
| 149 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 155 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 150 return sync_service_->IsSyncActive(); | 156 return sync_service_->IsSyncActive(); |
| 151 } | 157 } |
| 152 | 158 |
| 153 jboolean ProfileSyncServiceAndroid::IsBackendInitialized(JNIEnv* env, jobject) { | 159 jboolean ProfileSyncServiceAndroid::IsBackendInitialized( |
| 160 JNIEnv* env, |
| 161 const JavaParamRef<jobject>&) { |
| 154 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 162 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 155 return sync_service_->IsBackendInitialized(); | 163 return sync_service_->IsBackendInitialized(); |
| 156 } | 164 } |
| 157 | 165 |
| 158 jboolean ProfileSyncServiceAndroid::IsFirstSetupInProgress( | 166 jboolean ProfileSyncServiceAndroid::IsFirstSetupInProgress( |
| 159 JNIEnv* env, jobject) { | 167 JNIEnv* env, |
| 168 const JavaParamRef<jobject>&) { |
| 160 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 169 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 161 return sync_service_->IsFirstSetupInProgress(); | 170 return sync_service_->IsFirstSetupInProgress(); |
| 162 } | 171 } |
| 163 | 172 |
| 164 void ProfileSyncServiceAndroid::SetSetupInProgress( | 173 void ProfileSyncServiceAndroid::SetSetupInProgress( |
| 165 JNIEnv* env, jobject obj, jboolean in_progress) { | 174 JNIEnv* env, |
| 175 const JavaParamRef<jobject>& obj, |
| 176 jboolean in_progress) { |
| 166 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 177 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 167 sync_service_->SetSetupInProgress(in_progress); | 178 sync_service_->SetSetupInProgress(in_progress); |
| 168 } | 179 } |
| 169 | 180 |
| 170 jboolean ProfileSyncServiceAndroid::HasSyncSetupCompleted( | 181 jboolean ProfileSyncServiceAndroid::HasSyncSetupCompleted( |
| 171 JNIEnv* env, jobject obj) { | 182 JNIEnv* env, |
| 183 const JavaParamRef<jobject>& obj) { |
| 172 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 184 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 173 return sync_service_->HasSyncSetupCompleted(); | 185 return sync_service_->HasSyncSetupCompleted(); |
| 174 } | 186 } |
| 175 | 187 |
| 176 void ProfileSyncServiceAndroid::SetSyncSetupCompleted( | 188 void ProfileSyncServiceAndroid::SetSyncSetupCompleted( |
| 177 JNIEnv* env, jobject obj) { | 189 JNIEnv* env, |
| 190 const JavaParamRef<jobject>& obj) { |
| 178 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 191 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 179 sync_service_->SetSyncSetupCompleted(); | 192 sync_service_->SetSyncSetupCompleted(); |
| 180 } | 193 } |
| 181 | 194 |
| 182 ScopedJavaLocalRef<jintArray> ProfileSyncServiceAndroid::GetActiveDataTypes( | 195 ScopedJavaLocalRef<jintArray> ProfileSyncServiceAndroid::GetActiveDataTypes( |
| 183 JNIEnv* env, jobject obj) { | 196 JNIEnv* env, |
| 197 const JavaParamRef<jobject>& obj) { |
| 184 syncer::ModelTypeSet types = sync_service_->GetActiveDataTypes(); | 198 syncer::ModelTypeSet types = sync_service_->GetActiveDataTypes(); |
| 185 return ModelTypeSetToJavaIntArray(env, types); | 199 return ModelTypeSetToJavaIntArray(env, types); |
| 186 } | 200 } |
| 187 | 201 |
| 188 ScopedJavaLocalRef<jintArray> ProfileSyncServiceAndroid::GetPreferredDataTypes( | 202 ScopedJavaLocalRef<jintArray> ProfileSyncServiceAndroid::GetPreferredDataTypes( |
| 189 JNIEnv* env, jobject obj) { | 203 JNIEnv* env, |
| 204 const JavaParamRef<jobject>& obj) { |
| 190 syncer::ModelTypeSet types = sync_service_->GetPreferredDataTypes(); | 205 syncer::ModelTypeSet types = sync_service_->GetPreferredDataTypes(); |
| 191 return ModelTypeSetToJavaIntArray(env, types); | 206 return ModelTypeSetToJavaIntArray(env, types); |
| 192 } | 207 } |
| 193 | 208 |
| 194 void ProfileSyncServiceAndroid::SetPreferredDataTypes( | 209 void ProfileSyncServiceAndroid::SetPreferredDataTypes( |
| 195 JNIEnv* env, jobject obj, | 210 JNIEnv* env, |
| 211 const JavaParamRef<jobject>& obj, |
| 196 jboolean sync_everything, | 212 jboolean sync_everything, |
| 197 jintArray model_type_array) { | 213 const JavaParamRef<jintArray>& model_type_array) { |
| 198 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 214 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 199 std::vector<int> types_vector; | 215 std::vector<int> types_vector; |
| 200 base::android::JavaIntArrayToIntVector(env, model_type_array, &types_vector); | 216 base::android::JavaIntArrayToIntVector(env, model_type_array, &types_vector); |
| 201 syncer::ModelTypeSet types; | 217 syncer::ModelTypeSet types; |
| 202 for (size_t i = 0; i < types_vector.size(); i++) { | 218 for (size_t i = 0; i < types_vector.size(); i++) { |
| 203 types.Put(static_cast<syncer::ModelType>(types_vector[i])); | 219 types.Put(static_cast<syncer::ModelType>(types_vector[i])); |
| 204 } | 220 } |
| 205 sync_service_->OnUserChoseDatatypes(sync_everything, types); | 221 sync_service_->OnUserChoseDatatypes(sync_everything, types); |
| 206 } | 222 } |
| 207 | 223 |
| 208 jboolean ProfileSyncServiceAndroid::IsCryptographerReady(JNIEnv* env, jobject) { | 224 jboolean ProfileSyncServiceAndroid::IsCryptographerReady( |
| 225 JNIEnv* env, |
| 226 const JavaParamRef<jobject>&) { |
| 209 syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); | 227 syncer::ReadTransaction trans(FROM_HERE, sync_service_->GetUserShare()); |
| 210 return sync_service_->IsCryptographerReady(&trans); | 228 return sync_service_->IsCryptographerReady(&trans); |
| 211 } | 229 } |
| 212 | 230 |
| 213 jboolean ProfileSyncServiceAndroid::IsEncryptEverythingAllowed( | 231 jboolean ProfileSyncServiceAndroid::IsEncryptEverythingAllowed( |
| 214 JNIEnv* env, jobject obj) { | 232 JNIEnv* env, |
| 233 const JavaParamRef<jobject>& obj) { |
| 215 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 234 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 216 return sync_service_->IsEncryptEverythingAllowed(); | 235 return sync_service_->IsEncryptEverythingAllowed(); |
| 217 } | 236 } |
| 218 | 237 |
| 219 jboolean ProfileSyncServiceAndroid::IsEncryptEverythingEnabled( | 238 jboolean ProfileSyncServiceAndroid::IsEncryptEverythingEnabled( |
| 220 JNIEnv* env, jobject) { | 239 JNIEnv* env, |
| 240 const JavaParamRef<jobject>&) { |
| 221 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 241 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 222 return sync_service_->IsEncryptEverythingEnabled(); | 242 return sync_service_->IsEncryptEverythingEnabled(); |
| 223 } | 243 } |
| 224 | 244 |
| 225 void ProfileSyncServiceAndroid::EnableEncryptEverything( | 245 void ProfileSyncServiceAndroid::EnableEncryptEverything( |
| 226 JNIEnv* env, jobject obj) { | 246 JNIEnv* env, |
| 247 const JavaParamRef<jobject>& obj) { |
| 227 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 248 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 228 sync_service_->EnableEncryptEverything(); | 249 sync_service_->EnableEncryptEverything(); |
| 229 } | 250 } |
| 230 | 251 |
| 231 jboolean ProfileSyncServiceAndroid::IsPassphraseRequired(JNIEnv* env, jobject) { | 252 jboolean ProfileSyncServiceAndroid::IsPassphraseRequired(JNIEnv* env, jobject) { |
| 232 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 253 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 233 return sync_service_->IsPassphraseRequired(); | 254 return sync_service_->IsPassphraseRequired(); |
| 234 } | 255 } |
| 235 | 256 |
| 236 jboolean ProfileSyncServiceAndroid::IsPassphraseRequiredForDecryption( | 257 jboolean ProfileSyncServiceAndroid::IsPassphraseRequiredForDecryption( |
| 237 JNIEnv* env, jobject obj) { | 258 JNIEnv* env, |
| 259 const JavaParamRef<jobject>& obj) { |
| 238 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 260 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 239 return sync_service_->IsPassphraseRequiredForDecryption(); | 261 return sync_service_->IsPassphraseRequiredForDecryption(); |
| 240 } | 262 } |
| 241 | 263 |
| 242 jboolean ProfileSyncServiceAndroid::IsUsingSecondaryPassphrase( | 264 jboolean ProfileSyncServiceAndroid::IsUsingSecondaryPassphrase( |
| 243 JNIEnv* env, jobject) { | 265 JNIEnv* env, |
| 266 const JavaParamRef<jobject>&) { |
| 244 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 267 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 245 return sync_service_->IsUsingSecondaryPassphrase(); | 268 return sync_service_->IsUsingSecondaryPassphrase(); |
| 246 } | 269 } |
| 247 | 270 |
| 248 ScopedJavaLocalRef<jbyteArray> | 271 ScopedJavaLocalRef<jbyteArray> |
| 249 ProfileSyncServiceAndroid::GetCustomPassphraseKey(JNIEnv* env, jobject obj) { | 272 ProfileSyncServiceAndroid::GetCustomPassphraseKey( |
| 273 JNIEnv* env, |
| 274 const JavaParamRef<jobject>& obj) { |
| 250 std::string key = sync_service_->GetCustomPassphraseKey(); | 275 std::string key = sync_service_->GetCustomPassphraseKey(); |
| 251 return base::android::ToJavaByteArray( | 276 return base::android::ToJavaByteArray( |
| 252 env, reinterpret_cast<const uint8_t*>(key.data()), key.size()); | 277 env, reinterpret_cast<const uint8_t*>(key.data()), key.size()); |
| 253 } | 278 } |
| 254 | 279 |
| 255 jint ProfileSyncServiceAndroid::GetPassphraseType(JNIEnv* env, jobject) { | 280 jint ProfileSyncServiceAndroid::GetPassphraseType( |
| 281 JNIEnv* env, |
| 282 const JavaParamRef<jobject>&) { |
| 256 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 283 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 257 return sync_service_->GetPassphraseType(); | 284 return sync_service_->GetPassphraseType(); |
| 258 } | 285 } |
| 259 | 286 |
| 260 void ProfileSyncServiceAndroid::SetEncryptionPassphrase( | 287 void ProfileSyncServiceAndroid::SetEncryptionPassphrase( |
| 261 JNIEnv* env, jobject obj, jstring passphrase) { | 288 JNIEnv* env, |
| 289 const JavaParamRef<jobject>& obj, |
| 290 const JavaParamRef<jstring>& passphrase) { |
| 262 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 291 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 263 std::string key = ConvertJavaStringToUTF8(env, passphrase); | 292 std::string key = ConvertJavaStringToUTF8(env, passphrase); |
| 264 sync_service_->SetEncryptionPassphrase(key, ProfileSyncService::EXPLICIT); | 293 sync_service_->SetEncryptionPassphrase(key, ProfileSyncService::EXPLICIT); |
| 265 } | 294 } |
| 266 | 295 |
| 267 jboolean ProfileSyncServiceAndroid::SetDecryptionPassphrase( | 296 jboolean ProfileSyncServiceAndroid::SetDecryptionPassphrase( |
| 268 JNIEnv* env, jobject obj, jstring passphrase) { | 297 JNIEnv* env, |
| 298 const JavaParamRef<jobject>& obj, |
| 299 const JavaParamRef<jstring>& passphrase) { |
| 269 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 300 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 270 std::string key = ConvertJavaStringToUTF8(env, passphrase); | 301 std::string key = ConvertJavaStringToUTF8(env, passphrase); |
| 271 return sync_service_->SetDecryptionPassphrase(key); | 302 return sync_service_->SetDecryptionPassphrase(key); |
| 272 } | 303 } |
| 273 | 304 |
| 274 jboolean ProfileSyncServiceAndroid::HasExplicitPassphraseTime( | 305 jboolean ProfileSyncServiceAndroid::HasExplicitPassphraseTime( |
| 275 JNIEnv* env, jobject) { | 306 JNIEnv* env, |
| 307 const JavaParamRef<jobject>&) { |
| 276 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 308 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 277 base::Time passphrase_time = sync_service_->GetExplicitPassphraseTime(); | 309 base::Time passphrase_time = sync_service_->GetExplicitPassphraseTime(); |
| 278 return !passphrase_time.is_null(); | 310 return !passphrase_time.is_null(); |
| 279 } | 311 } |
| 280 | 312 |
| 281 jlong ProfileSyncServiceAndroid::GetExplicitPassphraseTime( | 313 jlong ProfileSyncServiceAndroid::GetExplicitPassphraseTime( |
| 282 JNIEnv* env, jobject) { | 314 JNIEnv* env, |
| 315 const JavaParamRef<jobject>&) { |
| 283 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 316 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 284 base::Time passphrase_time = sync_service_->GetExplicitPassphraseTime(); | 317 base::Time passphrase_time = sync_service_->GetExplicitPassphraseTime(); |
| 285 return passphrase_time.ToJavaTime(); | 318 return passphrase_time.ToJavaTime(); |
| 286 } | 319 } |
| 287 | 320 |
| 288 void ProfileSyncServiceAndroid::FlushDirectory(JNIEnv* env, jobject) { | 321 void ProfileSyncServiceAndroid::FlushDirectory(JNIEnv* env, |
| 322 const JavaParamRef<jobject>&) { |
| 289 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 323 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 290 sync_service_->FlushDirectory(); | 324 sync_service_->FlushDirectory(); |
| 291 } | 325 } |
| 292 | 326 |
| 293 ScopedJavaLocalRef<jstring> ProfileSyncServiceAndroid::QuerySyncStatusSummary( | 327 ScopedJavaLocalRef<jstring> ProfileSyncServiceAndroid::QuerySyncStatusSummary( |
| 294 JNIEnv* env, jobject) { | 328 JNIEnv* env, |
| 329 const JavaParamRef<jobject>&) { |
| 295 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 330 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 296 DCHECK(profile_); | 331 DCHECK(profile_); |
| 297 std::string status(sync_service_->QuerySyncStatusSummaryString()); | 332 std::string status(sync_service_->QuerySyncStatusSummaryString()); |
| 298 return ConvertUTF8ToJavaString(env, status); | 333 return ConvertUTF8ToJavaString(env, status); |
| 299 } | 334 } |
| 300 | 335 |
| 301 void ProfileSyncServiceAndroid::GetAllNodes(JNIEnv* env, | 336 void ProfileSyncServiceAndroid::GetAllNodes( |
| 302 jobject obj, | 337 JNIEnv* env, |
| 303 jobject callback) { | 338 const JavaParamRef<jobject>& obj, |
| 339 const JavaParamRef<jobject>& callback) { |
| 304 base::android::ScopedJavaGlobalRef<jobject> java_callback; | 340 base::android::ScopedJavaGlobalRef<jobject> java_callback; |
| 305 java_callback.Reset(env, callback); | 341 java_callback.Reset(env, callback); |
| 306 | 342 |
| 307 base::Callback<void(scoped_ptr<base::ListValue>)> native_callback = | 343 base::Callback<void(scoped_ptr<base::ListValue>)> native_callback = |
| 308 base::Bind(&NativeGetAllNodesCallback, java_callback); | 344 base::Bind(&NativeGetAllNodesCallback, java_callback); |
| 309 sync_service_->GetAllNodes(native_callback); | 345 sync_service_->GetAllNodes(native_callback); |
| 310 } | 346 } |
| 311 | 347 |
| 312 jint ProfileSyncServiceAndroid::GetAuthError(JNIEnv* env, jobject) { | 348 jint ProfileSyncServiceAndroid::GetAuthError(JNIEnv* env, |
| 349 const JavaParamRef<jobject>&) { |
| 313 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 350 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 314 return sync_service_->GetAuthError().state(); | 351 return sync_service_->GetAuthError().state(); |
| 315 } | 352 } |
| 316 | 353 |
| 317 jboolean ProfileSyncServiceAndroid::HasUnrecoverableError( | 354 jboolean ProfileSyncServiceAndroid::HasUnrecoverableError( |
| 318 JNIEnv* env, jobject) { | 355 JNIEnv* env, |
| 356 const JavaParamRef<jobject>&) { |
| 319 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 357 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 320 return sync_service_->HasUnrecoverableError(); | 358 return sync_service_->HasUnrecoverableError(); |
| 321 } | 359 } |
| 322 | 360 |
| 323 // Pure SyncPrefs calls. | 361 // Pure SyncPrefs calls. |
| 324 | 362 |
| 325 jboolean ProfileSyncServiceAndroid::IsPassphrasePrompted(JNIEnv* env, | 363 jboolean ProfileSyncServiceAndroid::IsPassphrasePrompted( |
| 326 jobject obj) { | 364 JNIEnv* env, |
| 365 const JavaParamRef<jobject>& obj) { |
| 327 return sync_prefs_->IsPassphrasePrompted(); | 366 return sync_prefs_->IsPassphrasePrompted(); |
| 328 } | 367 } |
| 329 | 368 |
| 330 void ProfileSyncServiceAndroid::SetPassphrasePrompted(JNIEnv* env, | 369 void ProfileSyncServiceAndroid::SetPassphrasePrompted( |
| 331 jobject obj, | 370 JNIEnv* env, |
| 332 jboolean prompted) { | 371 const JavaParamRef<jobject>& obj, |
| 372 jboolean prompted) { |
| 333 sync_prefs_->SetPassphrasePrompted(prompted); | 373 sync_prefs_->SetPassphrasePrompted(prompted); |
| 334 } | 374 } |
| 335 | 375 |
| 336 void ProfileSyncServiceAndroid::SetSyncSessionsId( | 376 void ProfileSyncServiceAndroid::SetSyncSessionsId( |
| 337 JNIEnv* env, jobject obj, jstring tag) { | 377 JNIEnv* env, |
| 378 const JavaParamRef<jobject>& obj, |
| 379 const JavaParamRef<jstring>& tag) { |
| 338 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 380 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 339 DCHECK(profile_); | 381 DCHECK(profile_); |
| 340 std::string machine_tag = ConvertJavaStringToUTF8(env, tag); | 382 std::string machine_tag = ConvertJavaStringToUTF8(env, tag); |
| 341 sync_prefs_->SetSyncSessionsGUID(machine_tag); | 383 sync_prefs_->SetSyncSessionsGUID(machine_tag); |
| 342 } | 384 } |
| 343 | 385 |
| 344 jboolean ProfileSyncServiceAndroid::HasKeepEverythingSynced( | 386 jboolean ProfileSyncServiceAndroid::HasKeepEverythingSynced( |
| 345 JNIEnv* env, jobject) { | 387 JNIEnv* env, |
| 388 const JavaParamRef<jobject>&) { |
| 346 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 389 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 347 return sync_prefs_->HasKeepEverythingSynced(); | 390 return sync_prefs_->HasKeepEverythingSynced(); |
| 348 } | 391 } |
| 349 | 392 |
| 350 // UI string getters. | 393 // UI string getters. |
| 351 | 394 |
| 352 ScopedJavaLocalRef<jstring> | 395 ScopedJavaLocalRef<jstring> |
| 353 ProfileSyncServiceAndroid::GetSyncEnterGooglePassphraseBodyWithDateText( | 396 ProfileSyncServiceAndroid::GetSyncEnterGooglePassphraseBodyWithDateText( |
| 354 JNIEnv* env, jobject) { | 397 JNIEnv* env, |
| 398 const JavaParamRef<jobject>&) { |
| 355 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 399 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 356 base::Time passphrase_time = sync_service_->GetExplicitPassphraseTime(); | 400 base::Time passphrase_time = sync_service_->GetExplicitPassphraseTime(); |
| 357 base::string16 passphrase_time_str = | 401 base::string16 passphrase_time_str = |
| 358 base::TimeFormatShortDate(passphrase_time); | 402 base::TimeFormatShortDate(passphrase_time); |
| 359 return base::android::ConvertUTF16ToJavaString(env, | 403 return base::android::ConvertUTF16ToJavaString(env, |
| 360 l10n_util::GetStringFUTF16( | 404 l10n_util::GetStringFUTF16( |
| 361 IDS_SYNC_ENTER_GOOGLE_PASSPHRASE_BODY_WITH_DATE, | 405 IDS_SYNC_ENTER_GOOGLE_PASSPHRASE_BODY_WITH_DATE, |
| 362 passphrase_time_str)); | 406 passphrase_time_str)); |
| 363 } | 407 } |
| 364 | 408 |
| 365 ScopedJavaLocalRef<jstring> | 409 ScopedJavaLocalRef<jstring> |
| 366 ProfileSyncServiceAndroid::GetSyncEnterCustomPassphraseBodyWithDateText( | 410 ProfileSyncServiceAndroid::GetSyncEnterCustomPassphraseBodyWithDateText( |
| 367 JNIEnv* env, jobject) { | 411 JNIEnv* env, |
| 412 const JavaParamRef<jobject>&) { |
| 368 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 413 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 369 base::Time passphrase_time = sync_service_->GetExplicitPassphraseTime(); | 414 base::Time passphrase_time = sync_service_->GetExplicitPassphraseTime(); |
| 370 base::string16 passphrase_time_str = | 415 base::string16 passphrase_time_str = |
| 371 base::TimeFormatShortDate(passphrase_time); | 416 base::TimeFormatShortDate(passphrase_time); |
| 372 return base::android::ConvertUTF16ToJavaString(env, | 417 return base::android::ConvertUTF16ToJavaString(env, |
| 373 l10n_util::GetStringFUTF16(IDS_SYNC_ENTER_PASSPHRASE_BODY_WITH_DATE, | 418 l10n_util::GetStringFUTF16(IDS_SYNC_ENTER_PASSPHRASE_BODY_WITH_DATE, |
| 374 passphrase_time_str)); | 419 passphrase_time_str)); |
| 375 } | 420 } |
| 376 | 421 |
| 377 ScopedJavaLocalRef<jstring> | 422 ScopedJavaLocalRef<jstring> |
| 378 ProfileSyncServiceAndroid::GetCurrentSignedInAccountText( | 423 ProfileSyncServiceAndroid::GetCurrentSignedInAccountText( |
| 379 JNIEnv* env, jobject) { | 424 JNIEnv* env, |
| 425 const JavaParamRef<jobject>&) { |
| 380 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 426 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 381 const std::string& sync_username = | 427 const std::string& sync_username = |
| 382 SigninManagerFactory::GetForProfile(profile_) | 428 SigninManagerFactory::GetForProfile(profile_) |
| 383 ->GetAuthenticatedAccountInfo() | 429 ->GetAuthenticatedAccountInfo() |
| 384 .email; | 430 .email; |
| 385 return base::android::ConvertUTF16ToJavaString(env, | 431 return base::android::ConvertUTF16ToJavaString(env, |
| 386 l10n_util::GetStringFUTF16( | 432 l10n_util::GetStringFUTF16( |
| 387 IDS_SYNC_ACCOUNT_SYNCING_TO_USER, | 433 IDS_SYNC_ACCOUNT_SYNCING_TO_USER, |
| 388 base::ASCIIToUTF16(sync_username))); | 434 base::ASCIIToUTF16(sync_username))); |
| 389 } | 435 } |
| 390 | 436 |
| 391 ScopedJavaLocalRef<jstring> | 437 ScopedJavaLocalRef<jstring> |
| 392 ProfileSyncServiceAndroid::GetSyncEnterCustomPassphraseBodyText( | 438 ProfileSyncServiceAndroid::GetSyncEnterCustomPassphraseBodyText( |
| 393 JNIEnv* env, jobject) { | 439 JNIEnv* env, |
| 440 const JavaParamRef<jobject>&) { |
| 394 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 441 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 395 return ConvertUTF8ToJavaString( | 442 return ConvertUTF8ToJavaString( |
| 396 env, l10n_util::GetStringUTF8(IDS_SYNC_ENTER_PASSPHRASE_BODY)); | 443 env, l10n_util::GetStringUTF8(IDS_SYNC_ENTER_PASSPHRASE_BODY)); |
| 397 } | 444 } |
| 398 | 445 |
| 399 // Functionality only available for testing purposes. | 446 // Functionality only available for testing purposes. |
| 400 | 447 |
| 401 ScopedJavaLocalRef<jstring> ProfileSyncServiceAndroid::GetAboutInfoForTest( | 448 ScopedJavaLocalRef<jstring> ProfileSyncServiceAndroid::GetAboutInfoForTest( |
| 402 JNIEnv* env, jobject) { | 449 JNIEnv* env, |
| 450 const JavaParamRef<jobject>&) { |
| 403 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 451 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 404 | 452 |
| 405 scoped_ptr<base::DictionaryValue> about_info = | 453 scoped_ptr<base::DictionaryValue> about_info = |
| 406 sync_driver::sync_ui_util::ConstructAboutInformation( | 454 sync_driver::sync_ui_util::ConstructAboutInformation( |
| 407 sync_service_, sync_service_->signin(), chrome::GetChannel()); | 455 sync_service_, sync_service_->signin(), chrome::GetChannel()); |
| 408 std::string about_info_json; | 456 std::string about_info_json; |
| 409 base::JSONWriter::Write(*about_info, &about_info_json); | 457 base::JSONWriter::Write(*about_info, &about_info_json); |
| 410 | 458 |
| 411 return ConvertUTF8ToJavaString(env, about_info_json); | 459 return ConvertUTF8ToJavaString(env, about_info_json); |
| 412 } | 460 } |
| 413 | 461 |
| 414 jlong ProfileSyncServiceAndroid::GetLastSyncedTimeForTest( | 462 jlong ProfileSyncServiceAndroid::GetLastSyncedTimeForTest( |
| 415 JNIEnv* env, jobject obj) { | 463 JNIEnv* env, |
| 464 const JavaParamRef<jobject>& obj) { |
| 416 // Use profile preferences here instead of SyncPrefs to avoid an extra | 465 // Use profile preferences here instead of SyncPrefs to avoid an extra |
| 417 // conversion, since SyncPrefs::GetLastSyncedTime() converts the stored value | 466 // conversion, since SyncPrefs::GetLastSyncedTime() converts the stored value |
| 418 // to to base::Time. | 467 // to to base::Time. |
| 419 return static_cast<jlong>( | 468 return static_cast<jlong>( |
| 420 profile_->GetPrefs()->GetInt64(sync_driver::prefs::kSyncLastSyncedTime)); | 469 profile_->GetPrefs()->GetInt64(sync_driver::prefs::kSyncLastSyncedTime)); |
| 421 } | 470 } |
| 422 | 471 |
| 423 void ProfileSyncServiceAndroid::OverrideNetworkResourcesForTest( | 472 void ProfileSyncServiceAndroid::OverrideNetworkResourcesForTest( |
| 424 JNIEnv* env, | 473 JNIEnv* env, |
| 425 jobject obj, | 474 const JavaParamRef<jobject>& obj, |
| 426 jlong network_resources) { | 475 jlong network_resources) { |
| 427 syncer::NetworkResources* resources = | 476 syncer::NetworkResources* resources = |
| 428 reinterpret_cast<syncer::NetworkResources*>(network_resources); | 477 reinterpret_cast<syncer::NetworkResources*>(network_resources); |
| 429 sync_service_->OverrideNetworkResourcesForTest( | 478 sync_service_->OverrideNetworkResourcesForTest( |
| 430 make_scoped_ptr<syncer::NetworkResources>(resources)); | 479 make_scoped_ptr<syncer::NetworkResources>(resources)); |
| 431 } | 480 } |
| 432 | 481 |
| 433 // static | 482 // static |
| 434 ProfileSyncServiceAndroid* | 483 ProfileSyncServiceAndroid* |
| 435 ProfileSyncServiceAndroid::GetProfileSyncServiceAndroid() { | 484 ProfileSyncServiceAndroid::GetProfileSyncServiceAndroid() { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 446 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { | 495 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) { |
| 447 ProfileSyncServiceAndroid* profile_sync_service_android = | 496 ProfileSyncServiceAndroid* profile_sync_service_android = |
| 448 new ProfileSyncServiceAndroid(env, obj); | 497 new ProfileSyncServiceAndroid(env, obj); |
| 449 if (profile_sync_service_android->Init()) { | 498 if (profile_sync_service_android->Init()) { |
| 450 return reinterpret_cast<intptr_t>(profile_sync_service_android); | 499 return reinterpret_cast<intptr_t>(profile_sync_service_android); |
| 451 } else { | 500 } else { |
| 452 delete profile_sync_service_android; | 501 delete profile_sync_service_android; |
| 453 return 0; | 502 return 0; |
| 454 } | 503 } |
| 455 } | 504 } |
| OLD | NEW |