/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.picasa.sync;
import java.io.IOException;
import android.content.Context;
import android.content.SyncResult;
import android.database.Cursor;
import com.android.gallery3d.common.Utils;
/**
*
* @author sihai
*
*/
public abstract class SyncTask {
protected int mPriority;
public final String syncAccount;
protected SyncTask(String s) {
syncAccount = (String) Utils.checkNotNull(s);
}
protected static boolean isSyncOnBattery(Context context) {
return queryBooleanSetting(context, "sync_on_battery", true);
}
protected static boolean isSyncOnRoaming(Context context) {
return queryBooleanSetting(context, "sync_on_roaming", false);
}
protected static boolean isSyncPicasaOnWifiOnly(Context context) {
return queryBooleanSetting(context, "sync_picasa_on_wifi_only", true);
}
private static boolean queryBooleanSetting(Context context, String s,
boolean flag) {
Cursor cursor = null;
int i = 0;
try {
cursor = context.getContentResolver().query(
PicasaFacade.get(context).getSettingsUri(),
new String[] { s }, null, null, null);
if (cursor.moveToNext())
i = cursor.getInt(0);
if (i != 0)
flag = true;
else
flag = false;
return flag;
} finally {
if (cursor != null)
cursor.close();
}
}
public abstract void cancelSync();
public abstract boolean isBackgroundSync();
public abstract boolean isSyncOnBattery();
public boolean isSyncOnExternalStorageOnly() {
return false;
}
public boolean isSyncOnRoaming() {
return true;
}
public abstract boolean isSyncOnWifiOnly();
public abstract void performSync(SyncResult syncresult) throws IOException;
public String toString() {
Object aobj[] = new Object[2];
aobj[0] = getClass().getSimpleName();
aobj[1] = Utils.maskDebugInfo(syncAccount);
return String.format("%s (%s)", aobj);
}
}