package com.idunnolol.sotm.sync;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
import android.os.Bundle;
import com.danlew.utils.Log;
public class AccountUtils {
public static final Uri SYNC_URI = Uri.parse("content://" + PointContentProvider.CONTENT_AUTHORITY + "/points");
public static final String ACCOUNT_TYPE = "com.idunnolol.sotm";
public static final String ACCOUNT_NAME = "Data Updater";
private static final long SYNC_INTERVAL = 24 * 60 * 60;
public static Account getSyncAccount() {
return new Account(ACCOUNT_NAME, ACCOUNT_TYPE);
}
public static void addSyncAccount(Context context) {
AccountManager manager = AccountManager.get(context);
Account[] accounts = manager.getAccountsByType(ACCOUNT_TYPE);
if (accounts.length != 0) {
Log.d("Tried to add sync account, but one already existed!");
}
else {
Log.i("Adding sync account...");
Account account = getSyncAccount();
manager.addAccountExplicitly(account, null, null);
ContentResolver.setIsSyncable(account, PointContentProvider.CONTENT_AUTHORITY, 1);
ContentResolver.setSyncAutomatically(account, PointContentProvider.CONTENT_AUTHORITY, true);
}
}
public static void startPeriodicSync() {
Log.i("Adding periodic syncs every " + SYNC_INTERVAL + " seconds...");
ContentResolver.addPeriodicSync(getSyncAccount(), PointContentProvider.CONTENT_AUTHORITY, new Bundle(),
SYNC_INTERVAL);
}
}