private void access$200() { List requestList = null; synchronized (this) { requestList = mSyncRequests; mSyncRequests = new ArrayList(); } boolean flag = false; SQLiteDatabase sqlitedatabase = mSyncHelper.getWritableDatabase(); ArrayList arraylist1 = null; for (Iterator iterator = requestList.iterator(); iterator.hasNext(); ) { SyncRequest syncrequest = (SyncRequest) iterator.next(); Exception exception; if (syncrequest.account == null) { if (arraylist1 == null) arraylist1 = mSyncHelper.getUsers(); Iterator iterator1 = arraylist1.iterator(); while (iterator1.hasNext()) { UserEntry userentry = (UserEntry) iterator1.next(); flag |= syncrequest.state.onSyncRequested(sqlitedatabase, userentry.account); } } else { flag |= syncrequest.state.onSyncRequested(sqlitedatabase, syncrequest.account); } } if (flag) updateTasks(1000L); return; }
private PicasaSyncManager(Context context) { mHasWifiConnectivity = false; mIsRoaming = false; mIsPlugged = false; mBackgroundData = false; mSyncRequests = new ArrayList(); mContext = context.getApplicationContext(); mFacade = PicasaFacade.get(mContext); mSyncHelper = PicasaSyncHelper.getInstance(mContext); HandlerThread handlerthread = new HandlerThread("picasa-sync-manager", 10); handlerthread.start(); mSyncHandler = new Handler(handlerthread.getLooper()) { public final void handleMessage(Message message) { switch (message.what) { case 1: access$200(); break; case 2: access$300(); break; case 3: updateTasksInternal(); break; case 4: mSyncHelper.syncAccounts(mFacade.getAuthority()); break; case 5: access$400((Boolean) message.obj); break; case 6: access$100(); break; default: throw new AssertionError( (new StringBuilder("unknown message: ")).append(message.what).toString()); } } }; mSyncHandler.sendEmptyMessage(6); mSyncHandler.sendEmptyMessage(4); mSyncHandler.sendEmptyMessage(2); mSyncHandler.sendEmptyMessage(5); OnAccountsUpdateListener onaccountsupdatelistener = new OnAccountsUpdateListener() { public final void onAccountsUpdated(Account aaccount[]) { Log.i("gp.PicasaSyncManager", "account change detect - update database"); mSyncHandler.sendEmptyMessage(4); } }; AccountManager.get(mContext) .addOnAccountsUpdatedListener(onaccountsupdatelistener, null, false); }