Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a374f94 authored by Fred Quintana's avatar Fred Quintana Committed by Android Git Automerger
Browse files

am 274dc9d3: moved the hidden sync helpers out of the framework

Merge commit '274dc9d3' into eclair-mr2-plus-aosp

* commit '274dc9d3':
  moved the hidden sync helpers out of the framework
parents 451c850f 274dc9d3
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -28137,6 +28137,19 @@
<parameter name="syncResult" type="android.content.SyncResult">
</parameter>
</method>
<method name="onSyncCanceled"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="thread" type="java.lang.Thread">
</parameter>
</method>
<field name="LOG_SYNC_DETAILS"
 type="int"
 transient="false"
+0 −758

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −599

File deleted.

Preview size limit exceeded, changes collapsed.

+12 −1
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ public abstract class AbstractThreadedSyncAdapter {
                if (mSyncThread != null
                        && mSyncThread.mSyncContext.getSyncContextBinder()
                        == syncContext.asBinder()) {
                    mSyncThread.interrupt();
                    onSyncCanceled(mSyncThread);
                }
            }
        }
@@ -207,4 +207,15 @@ public abstract class AbstractThreadedSyncAdapter {
     */
    public abstract void onPerformSync(Account account, Bundle extras,
            String authority, ContentProviderClient provider, SyncResult syncResult);

    /**
     * Indicates that a sync operation has been canceled. This will be invoked on a separate
     * thread than the sync thread and so you must consider the multi-threaded implications
     * of the work that you do in this method.
     *
     * @param thread the thread that is running the sync operation to cancel
     */
    public void onSyncCanceled(Thread thread) {
        thread.interrupt();
    }
}
+0 −79
Original line number Diff line number Diff line
/*
 * Copyright (C) 2006 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.content;

import android.os.Bundle;
import android.os.RemoteException;
import android.accounts.Account;

/**
 * @hide
 */
public abstract class SyncAdapter {
    private static final String TAG = "SyncAdapter";

    /** Kernel event log tag. */
    public static final int LOG_SYNC_DETAILS = EventLogTags.SYNC_DETAILS;

    class Transport extends ISyncAdapter.Stub {
        public void startSync(ISyncContext syncContext, String authority, Account account,
                Bundle extras) throws RemoteException {
            SyncAdapter.this.startSync(new SyncContext(syncContext), account, authority, extras);
        }

        public void cancelSync(ISyncContext syncContext) throws RemoteException {
            SyncAdapter.this.cancelSync();
        }

        public void initialize(Account account, String authority) throws RemoteException {
            Bundle extras = new Bundle();
            extras.putBoolean(ContentResolver.SYNC_EXTRAS_INITIALIZE, true);
            startSync(null, authority, account, extras);
        }
    }

    Transport mTransport = new Transport();

    /**
     * Get the Transport object.
     */
    public final ISyncAdapter getISyncAdapter()
    {
        return mTransport;
    }

    /**
     * Initiate a sync for this account. SyncAdapter-specific parameters may
     * be specified in extras, which is guaranteed to not be null. IPC invocations
     * of this method and cancelSync() are guaranteed to be serialized.
     *
     * @param syncContext the ISyncContext used to indicate the progress of the sync. When
     *   the sync is finished (successfully or not) ISyncContext.onFinished() must be called.
     * @param account the account that should be synced
     * @param authority the authority if the sync request
     * @param extras SyncAdapter-specific parameters
     */
    public abstract void startSync(SyncContext syncContext, Account account, String authority, 
            Bundle extras);

    /**
     * Cancel the most recently initiated sync. Due to race conditions, this may arrive
     * after the ISyncContext.onFinished() for that sync was called. IPC invocations
     * of this method and startSync() are guaranteed to be serialized.
     */
    public abstract void cancelSync();
}
Loading