/**
* galaxy inc.
* meetup client for android
*/
package com.galaxy.picasa.sync;
import java.util.Collection;
import java.util.Iterator;
import android.content.Context;
import android.content.SyncResult;
/**
*
* @author sihai
*
*/
public class MetadataSync implements SyncTaskProvider {
private final Context mContext;
private final boolean mIsManual;
public MetadataSync(Context context, boolean flag)
{
mContext = context;
mIsManual = flag;
}
public final void collectTasks(Collection collection)
{
PicasaSyncHelper picasasynchelper = PicasaSyncHelper.getInstance(mContext);
android.database.sqlite.SQLiteDatabase sqlitedatabase = picasasynchelper.getWritableDatabase();
SyncState syncstate;
if(mIsManual)
syncstate = SyncState.METADATA_MANUAL;
else
syncstate = SyncState.METADATA;
Iterator iterator = picasasynchelper.getUsers().iterator();
do
{
if(!iterator.hasNext())
break;
UserEntry userentry = (UserEntry)iterator.next();
if(syncstate.isRequested(sqlitedatabase, userentry.account))
{
String s = userentry.account;
boolean _tmp = mIsManual;
collection.add(new MetadataSyncTask(s));
}
} while(true);
}
public final void resetSyncStates()
{
PicasaSyncHelper picasasynchelper = PicasaSyncHelper.getInstance(mContext);
android.database.sqlite.SQLiteDatabase sqlitedatabase = picasasynchelper.getWritableDatabase();
SyncState syncstate;
Iterator iterator;
if(mIsManual)
syncstate = SyncState.METADATA_MANUAL;
else
syncstate = SyncState.METADATA;
for(iterator = picasasynchelper.getUsers().iterator(); iterator.hasNext(); syncstate.resetSyncToDirty(sqlitedatabase, ((UserEntry)iterator.next()).account));
}
private final class MetadataSyncTask extends SyncTask {
public final synchronized void cancelSync()
{
mSyncCancelled = true;
if(mSyncContext != null)
mSyncContext.stopSync();
}
public final boolean isBackgroundSync()
{
boolean flag;
if(!mIsManual)
flag = true;
else
flag = false;
return flag;
}
public final boolean isSyncOnBattery()
{
return isSyncOnBattery(mContext);
}
public final boolean isSyncOnWifiOnly()
{
boolean flag;
if(mIsManual)
flag = false;
else
flag = isSyncPicasaOnWifiOnly(mContext);
return flag;
}
public final void performSync(SyncResult syncresult)
{
// TODO
}
private boolean mSyncCancelled;
private PicasaSyncHelper.SyncContext mSyncContext;
public MetadataSyncTask(String s)
{
super(s);
mSyncCancelled = false;
}
}
}