19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.content; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 19d9d2f1140b52fd0c014e9deac59f6000564b7e84Fred Quintanaimport android.accounts.Account; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ISyncContext; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Interface used to control the sync activity on a SyncAdapter 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @hide 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectoneway interface ISyncAdapter { 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Initiate a sync for this account. SyncAdapter-specific parameters may 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be specified in extras, which is guaranteed to not be null. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param syncContext the ISyncContext used to indicate the progress of the sync. When 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the sync is finished (successfully or not) ISyncContext.onFinished() must be called. 3421bb0deb36af32339521038cdbd827f74468df4aFred Quintana * @param authority the authority that should be synced 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param account the account that should be synced 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param extras SyncAdapter-specific parameters 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3821bb0deb36af32339521038cdbd827f74468df4aFred Quintana void startSync(ISyncContext syncContext, String authority, 3921bb0deb36af32339521038cdbd827f74468df4aFred Quintana in Account account, in Bundle extras); 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Cancel the most recently initiated sync. Due to race conditions, this may arrive 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * after the ISyncContext.onFinished() for that sync was called. 4421bb0deb36af32339521038cdbd827f74468df4aFred Quintana * @param syncContext the ISyncContext that was passed to {@link #startSync} 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4621bb0deb36af32339521038cdbd827f74468df4aFred Quintana void cancelSync(ISyncContext syncContext); 47e7424ffdafb0c18f753f383ebfb121ea5ebf582bFred Quintana 48e7424ffdafb0c18f753f383ebfb121ea5ebf582bFred Quintana /** 49e7424ffdafb0c18f753f383ebfb121ea5ebf582bFred Quintana * Initialize the SyncAdapter for this account and authority. 50e7424ffdafb0c18f753f383ebfb121ea5ebf582bFred Quintana * 51e7424ffdafb0c18f753f383ebfb121ea5ebf582bFred Quintana * @param account the account that should be synced 52e7424ffdafb0c18f753f383ebfb121ea5ebf582bFred Quintana * @param authority the authority that should be synced 53e7424ffdafb0c18f753f383ebfb121ea5ebf582bFred Quintana */ 54e7424ffdafb0c18f753f383ebfb121ea5ebf582bFred Quintana void initialize(in Account account, String authority); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 56