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