package com.galaxy.meetup.client.android.iu;
import java.util.Iterator;
import android.accounts.Account;
import android.app.Service;
import android.content.AbstractThreadedSyncAdapter;
import android.content.BroadcastReceiver;
import android.content.ContentProviderClient;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SyncResult;
import android.os.Bundle;
import android.os.IBinder;
import android.text.TextUtils;
import android.util.Log;
import com.galaxy.meetup.client.util.AccountsUtil;
import com.galaxy.meetup.client.util.EsLog;
public class InstantUploadSyncService extends Service {
private static InstantUploadSyncAdapter sSyncAdapter;
public InstantUploadSyncService()
{
}
public static void activateAccount(Context context, String s)
{
Account account = new Account(s, AccountsUtil.ACCOUNT_TYPE);
ContentResolver.setIsSyncable(account, "com.galaxy.android.apps.meetup.iu.EsGoogleIuProvider", 1);
ContentResolver.setSyncAutomatically(account, "com.galaxy.android.apps.meetup.iu.EsGoogleIuProvider", true);
ContentResolver.requestSync(account, "com.galaxy.android.apps.meetup.iu.EsGoogleIuProvider", new Bundle());
resetSyncStates(context, s);
InstantUploadSyncManager.getInstance(context).onAccountActivated(s);
}
public static void deactivateAccount(Context context, String s)
{
Account account = new Account(s, AccountsUtil.ACCOUNT_TYPE);
ContentResolver.setIsSyncable(account, "com.galaxy.meetup.client.android.iu.EsGalaxyIuProvider", 0);
ContentResolver.cancelSync(account, "com.galaxy.meetup.client.android.iu.EsGalaxyIuProvider");
InstantUploadSyncManager.getInstance(context).onAccountDeactivated(s);
}
private static synchronized InstantUploadSyncAdapter getSyncAdapter(Context context)
{
if(sSyncAdapter == null)
sSyncAdapter = new InstantUploadSyncAdapter(context);
InstantUploadSyncAdapter instantuploadsyncadapter = sSyncAdapter;
return instantuploadsyncadapter;
}
private static void resetSyncStates(Context context, String s)
{
Iterator iterator = AccountsUtil.getAccounts(context).iterator();
do
{
if(!iterator.hasNext())
break;
Account account = (Account)iterator.next();
if(!TextUtils.equals(s, account.name))
deactivateAccount(context, account.name);
} while(true);
}
public final IBinder onBind(Intent intent)
{
return getSyncAdapter(this).getSyncAdapterBinder();
}
public static class CarryOverDummyReceiver extends BroadcastReceiver
{
public void onReceive(Context context, Intent intent)
{
}
public CarryOverDummyReceiver()
{
}
}
private static final class InstantUploadSyncAdapter extends AbstractThreadedSyncAdapter {
private final Context mContext;
private InstantUploadSyncManager.SyncSession mSession;
public InstantUploadSyncAdapter(Context context) {
super(context, false);
mContext = context;
}
private static void carryOverSyncAutomaticallyForAllAccounts(Context context) {
// TODO
}
public final void onPerformSync(Account account, Bundle bundle, String s, ContentProviderClient contentproviderclient, SyncResult syncresult) {
// TODO
}
public final synchronized void onSyncCanceled() {
if(EsLog.isLoggable("InstantUploadSyncSvc", 3))
Log.d("InstantUploadSyncSvc", "receive cancel request");
super.onSyncCanceled();
if(mSession != null)
mSession.cancelSync();
}
}
}