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

Commit 274dc9d3 authored by Fred Quintana's avatar Fred Quintana
Browse files

moved the hidden sync helpers out of the framework

parent 15f1bfb0
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