IContentService.aidl revision 231cc608d06ffc31c24bf8aa8c8275bdd2636581
1231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn/* 2231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * Copyright (C) 2009 The Android Open Source Project 3231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * 4231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 5231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * you may not use this file except in compliance with the License. 6231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * You may obtain a copy of the License at 7231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * 8231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 9231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * 10231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 11231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 12231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * See the License for the specific language governing permissions and 14231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * limitations under the License. 15231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn */ 16231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 17231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackbornpackage android.content; 18231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 19231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackbornimport android.content.ActiveSyncInfo; 20231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackbornimport android.content.ISyncStatusObserver; 21231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackbornimport android.content.SyncStatusInfo; 22231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackbornimport android.net.Uri; 23231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackbornimport android.os.Bundle; 24231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackbornimport android.database.IContentObserver; 25231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 26231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn/** 27231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * @hide 28231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn */ 29231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborninterface IContentService { 30231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void registerContentObserver(in Uri uri, boolean notifyForDescendentsn, 31231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn IContentObserver observer); 32231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void unregisterContentObserver(IContentObserver observer); 33231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 34231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void notifyChange(in Uri uri, IContentObserver observer, 35231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn boolean observerWantsSelfNotifications, boolean syncToNetwork); 36231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 37231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void startSync(in Uri url, in Bundle extras); 38231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void cancelSync(in Uri uri); 39231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 40231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn /** 41231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * Check if the provider should be synced when a network tickle is received 42231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * @param providerName the provider whose setting we are querying 43231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * @return true of the provider should be synced when a network tickle is received 44231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn */ 45231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn boolean getSyncProviderAutomatically(String providerName); 46231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 47231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn /** 48231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * Set whether or not the provider is synced when it receives a network tickle. 49231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * 50231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * @param providerName the provider whose behavior is being controlled 51231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * @param sync true if the provider should be synced when tickles are received for it 52231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn */ 53231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void setSyncProviderAutomatically(String providerName, boolean sync); 54231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 55231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void setListenForNetworkTickles(boolean flag); 56231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 57231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn boolean getListenForNetworkTickles(); 58231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 59231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn /** 60231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * Returns true if there is currently a sync operation for the given 61231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * account or authority in the pending list, or actively being processed. 62231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn */ 63231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn boolean isSyncActive(String account, String authority); 64231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 65231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn ActiveSyncInfo getActiveSync(); 66231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 67231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn /** 68231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * Returns the status that matches the authority. If there are multiples accounts for 69231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * the authority, the one with the latest "lastSuccessTime" status is returned. 70231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * @param authority the authority whose row should be selected 71231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * @return the SyncStatusInfo for the authority, or null if none exists 72231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn */ 73231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn SyncStatusInfo getStatusByAuthority(String authority); 74231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 75231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn /** 76231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn * Return true if the pending status is true of any matching authorities. 77231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn */ 78231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn boolean isAuthorityPending(String account, String authority); 79231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 80231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void addStatusChangeListener(int mask, ISyncStatusObserver callback); 81231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn 82231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn void removeStatusChangeListener(ISyncStatusObserver callback); 83231cc608d06ffc31c24bf8aa8c8275bdd2636581Dianne Hackborn} 84