public abstract class android.content.AbstractThreadedSyncAdapter
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: android.content.AbstractThreadedSyncAdapter
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "SyncAdapter"

  public static final int LOG_SYNC_DETAILS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2743
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  private static final boolean ENABLE_LOG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.concurrent.atomic.AtomicInteger mNumSyncStarts;
    descriptor: Ljava/util/concurrent/atomic/AtomicInteger;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl mISyncAdapterImpl;
    descriptor: Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.HashMap<android.accounts.Account, android.content.AbstractThreadedSyncAdapter$SyncThread> mSyncThreads;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Landroid/accounts/Account;Landroid/content/AbstractThreadedSyncAdapter$SyncThread;>;

  private final java.lang.Object mSyncThreadLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mAutoInitialize;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean mAllowParallelSyncs;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 114
            getstatic android.os.Build.IS_DEBUGGABLE:Z
            ifeq 1
            ldc "SyncAdapter"
            iconst_3
            invokestatic android.util.Log.isLoggable:(Ljava/lang/String;I)Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic android.content.AbstractThreadedSyncAdapter.ENABLE_LOG:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.content.Context, boolean);
    descriptor: (Landroid/content/Context;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.content.AbstractThreadedSyncAdapter this
        start local 1 // android.content.Context context
        start local 2 // boolean autoInitialize
         0: .line 137
            aload 0 /* this */
            aload 1 /* context */
            iload 2 /* autoInitialize */
            iconst_0
            invokespecial android.content.AbstractThreadedSyncAdapter.<init>:(Landroid/content/Context;ZZ)V
         1: .line 138
            return
        end local 2 // boolean autoInitialize
        end local 1 // android.content.Context context
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Landroid/content/AbstractThreadedSyncAdapter;
            0    2     1         context  Landroid/content/Context;
            0    2     2  autoInitialize  Z
    MethodParameters:
                Name  Flags
      context         
      autoInitialize  

  public void <init>(android.content.Context, boolean, boolean);
    descriptor: (Landroid/content/Context;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.content.AbstractThreadedSyncAdapter this
        start local 1 // android.content.Context context
        start local 2 // boolean autoInitialize
        start local 3 // boolean allowParallelSyncs
         0: .line 152
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 121
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.content.AbstractThreadedSyncAdapter.mSyncThreads:Ljava/util/HashMap;
         2: .line 122
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.content.AbstractThreadedSyncAdapter.mSyncThreadLock:Ljava/lang/Object;
         3: .line 154
            aload 0 /* this */
            aload 1 /* context */
            putfield android.content.AbstractThreadedSyncAdapter.mContext:Landroid/content/Context;
         4: .line 155
            aload 0 /* this */
            new android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl
            dup
            aload 0 /* this */
            invokespecial android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl.<init>:(Landroid/content/AbstractThreadedSyncAdapter;)V
            putfield android.content.AbstractThreadedSyncAdapter.mISyncAdapterImpl:Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;
         5: .line 156
            aload 0 /* this */
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            putfield android.content.AbstractThreadedSyncAdapter.mNumSyncStarts:Ljava/util/concurrent/atomic/AtomicInteger;
         6: .line 157
            aload 0 /* this */
            iload 2 /* autoInitialize */
            putfield android.content.AbstractThreadedSyncAdapter.mAutoInitialize:Z
         7: .line 158
            aload 0 /* this */
            iload 3 /* allowParallelSyncs */
            putfield android.content.AbstractThreadedSyncAdapter.mAllowParallelSyncs:Z
         8: .line 159
            return
        end local 3 // boolean allowParallelSyncs
        end local 2 // boolean autoInitialize
        end local 1 // android.content.Context context
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    9     0                this  Landroid/content/AbstractThreadedSyncAdapter;
            0    9     1             context  Landroid/content/Context;
            0    9     2      autoInitialize  Z
            0    9     3  allowParallelSyncs  Z
    MethodParameters:
                    Name  Flags
      context             
      autoInitialize      
      allowParallelSyncs  

  public android.content.Context getContext();
    descriptor: ()Landroid/content/Context;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.AbstractThreadedSyncAdapter this
         0: .line 162
            aload 0 /* this */
            getfield android.content.AbstractThreadedSyncAdapter.mContext:Landroid/content/Context;
            areturn
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/AbstractThreadedSyncAdapter;

  private android.accounts.Account toSyncKey(android.accounts.Account);
    descriptor: (Landroid/accounts/Account;)Landroid/accounts/Account;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.content.AbstractThreadedSyncAdapter this
        start local 1 // android.accounts.Account account
         0: .line 166
            aload 0 /* this */
            getfield android.content.AbstractThreadedSyncAdapter.mAllowParallelSyncs:Z
            ifeq 2
         1: .line 167
            aload 1 /* account */
            areturn
         2: .line 169
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // android.accounts.Account account
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/content/AbstractThreadedSyncAdapter;
            0    3     1  account  Landroid/accounts/Account;
    MethodParameters:
         Name  Flags
      account  

  public final android.os.IBinder getSyncAdapterBinder();
    descriptor: ()Landroid/os/IBinder;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.AbstractThreadedSyncAdapter this
         0: .line 386
            aload 0 /* this */
            getfield android.content.AbstractThreadedSyncAdapter.mISyncAdapterImpl:Landroid/content/AbstractThreadedSyncAdapter$ISyncAdapterImpl;
            invokevirtual android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl.asBinder:()Landroid/os/IBinder;
            areturn
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/AbstractThreadedSyncAdapter;

  private void handleOnUnsyncableAccount(android.content.ISyncAdapterUnsyncableAccountCallback);
    descriptor: (Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.content.AbstractThreadedSyncAdapter this
        start local 1 // android.content.ISyncAdapterUnsyncableAccountCallback cb
         0: .line 397
            aload 0 /* this */
            invokevirtual android.content.AbstractThreadedSyncAdapter.onUnsyncableAccount:()Z
            istore 2 /* doSync */
        start local 2 // boolean doSync
         1: .line 398
            goto 5
        end local 2 // boolean doSync
      StackMap locals:
      StackMap stack: java.lang.RuntimeException
         2: astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         3: .line 399
            ldc "SyncAdapter"
            ldc "Exception while calling onUnsyncableAccount, assuming 'true'"
            aload 3 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         4: .line 400
            iconst_1
            istore 2 /* doSync */
        end local 3 // java.lang.RuntimeException e
        start local 2 // boolean doSync
         5: .line 404
      StackMap locals: int
      StackMap stack:
            aload 1 /* cb */
            iload 2 /* doSync */
            invokeinterface android.content.ISyncAdapterUnsyncableAccountCallback.onUnsyncableAccountDone:(Z)V
         6: .line 405
            goto 9
      StackMap locals:
      StackMap stack: android.os.RemoteException
         7: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         8: .line 406
            ldc "SyncAdapter"
            ldc "Could not report result of onUnsyncableAccount"
            aload 3 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // android.os.RemoteException e
         9: .line 408
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean doSync
        end local 1 // android.content.ISyncAdapterUnsyncableAccountCallback cb
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Landroid/content/AbstractThreadedSyncAdapter;
            0   10     1      cb  Landroid/content/ISyncAdapterUnsyncableAccountCallback;
            1    2     2  doSync  Z
            5   10     2  doSync  Z
            3    5     3       e  Ljava/lang/RuntimeException;
            8    9     3       e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.RuntimeException
           5     6       7  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      cb    

  public boolean onUnsyncableAccount();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.content.AbstractThreadedSyncAdapter this
         0: .line 434
            iconst_1
            ireturn
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/content/AbstractThreadedSyncAdapter;

  public abstract void onPerformSync(android.accounts.Account, android.os.Bundle, java.lang.String, android.content.ContentProviderClient, android.content.SyncResult);
    descriptor: (Landroid/accounts/Account;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/ContentProviderClient;Landroid/content/SyncResult;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
            Name  Flags
      account     
      extras      
      authority   
      provider    
      syncResult  

  public void onSecurityException(android.accounts.Account, android.os.Bundle, java.lang.String, android.content.SyncResult);
    descriptor: (Landroid/accounts/Account;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/SyncResult;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // android.content.AbstractThreadedSyncAdapter this
        start local 1 // android.accounts.Account account
        start local 2 // android.os.Bundle extras
        start local 3 // java.lang.String authority
        start local 4 // android.content.SyncResult syncResult
         0: .line 464
            return
        end local 4 // android.content.SyncResult syncResult
        end local 3 // java.lang.String authority
        end local 2 // android.os.Bundle extras
        end local 1 // android.accounts.Account account
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Landroid/content/AbstractThreadedSyncAdapter;
            0    1     1     account  Landroid/accounts/Account;
            0    1     2      extras  Landroid/os/Bundle;
            0    1     3   authority  Ljava/lang/String;
            0    1     4  syncResult  Landroid/content/SyncResult;
    MethodParameters:
            Name  Flags
      account     
      extras      
      authority   
      syncResult  

  public void onSyncCanceled();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.content.AbstractThreadedSyncAdapter this
         0: .line 476
            aload 0 /* this */
            getfield android.content.AbstractThreadedSyncAdapter.mSyncThreadLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 477
            aload 0 /* this */
            getfield android.content.AbstractThreadedSyncAdapter.mSyncThreads:Ljava/util/HashMap;
            aconst_null
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.content.AbstractThreadedSyncAdapter$SyncThread
            astore 1 /* syncThread */
        start local 1 // android.content.AbstractThreadedSyncAdapter$SyncThread syncThread
         2: .line 476
            aload 2
            monitorexit
         3: goto 6
        end local 1 // android.content.AbstractThreadedSyncAdapter$SyncThread syncThread
      StackMap locals: android.content.AbstractThreadedSyncAdapter top java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
        start local 1 // android.content.AbstractThreadedSyncAdapter$SyncThread syncThread
         6: .line 479
      StackMap locals: android.content.AbstractThreadedSyncAdapter android.content.AbstractThreadedSyncAdapter$SyncThread
      StackMap stack:
            aload 1 /* syncThread */
            ifnull 8
         7: .line 480
            aload 1 /* syncThread */
            invokevirtual android.content.AbstractThreadedSyncAdapter$SyncThread.interrupt:()V
         8: .line 482
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.content.AbstractThreadedSyncAdapter$SyncThread syncThread
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Landroid/content/AbstractThreadedSyncAdapter;
            2    4     1  syncThread  Landroid/content/AbstractThreadedSyncAdapter$SyncThread;
            6    9     1  syncThread  Landroid/content/AbstractThreadedSyncAdapter$SyncThread;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public void onSyncCanceled(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.content.AbstractThreadedSyncAdapter this
        start local 1 // java.lang.Thread thread
         0: .line 494
            aload 1 /* thread */
            invokevirtual java.lang.Thread.interrupt:()V
         1: .line 495
            return
        end local 1 // java.lang.Thread thread
        end local 0 // android.content.AbstractThreadedSyncAdapter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/content/AbstractThreadedSyncAdapter;
            0    2     1  thread  Ljava/lang/Thread;
    MethodParameters:
        Name  Flags
      thread  

  static void access$0(android.content.AbstractThreadedSyncAdapter, android.content.ISyncAdapterUnsyncableAccountCallback);
    descriptor: (Landroid/content/AbstractThreadedSyncAdapter;Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 394
            aload 0
            aload 1
            invokespecial android.content.AbstractThreadedSyncAdapter.handleOnUnsyncableAccount:(Landroid/content/ISyncAdapterUnsyncableAccountCallback;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "AbstractThreadedSyncAdapter.java"
NestMembers:
  android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl  android.content.AbstractThreadedSyncAdapter$SyncThread
InnerClasses:
  private ISyncAdapterImpl = android.content.AbstractThreadedSyncAdapter$ISyncAdapterImpl of android.content.AbstractThreadedSyncAdapter
  private SyncThread = android.content.AbstractThreadedSyncAdapter$SyncThread of android.content.AbstractThreadedSyncAdapter