|
|
|
@ -25,8 +25,8 @@ import com.todoroo.andlib.utility.DateUtilities;
|
|
|
|
|
import com.todoroo.andlib.utility.Preferences;
|
|
|
|
|
import com.todoroo.astrid.actfm.TagViewActivity;
|
|
|
|
|
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
|
|
|
|
|
import com.todoroo.astrid.actfm.sync.ActFmSyncProvider;
|
|
|
|
|
import com.todoroo.astrid.actfm.sync.ActFmSyncService;
|
|
|
|
|
import com.todoroo.astrid.actfm.sync.ActFmSyncV2Provider;
|
|
|
|
|
import com.todoroo.astrid.activity.ShortcutActivity;
|
|
|
|
|
import com.todoroo.astrid.activity.TaskListActivity;
|
|
|
|
|
import com.todoroo.astrid.api.AstridApiConstants;
|
|
|
|
@ -36,6 +36,7 @@ import com.todoroo.astrid.dao.UpdateDao;
|
|
|
|
|
import com.todoroo.astrid.data.TagData;
|
|
|
|
|
import com.todoroo.astrid.data.Task;
|
|
|
|
|
import com.todoroo.astrid.data.Update;
|
|
|
|
|
import com.todoroo.astrid.helper.SyncResultCallbackAdapter;
|
|
|
|
|
import com.todoroo.astrid.reminders.Notifications;
|
|
|
|
|
import com.todoroo.astrid.service.AstridDependencyInjector;
|
|
|
|
|
import com.todoroo.astrid.service.TagDataService;
|
|
|
|
@ -52,18 +53,25 @@ public class C2DMReceiver extends BroadcastReceiver {
|
|
|
|
|
private static final String PREF_REGISTRATION = "c2dm_key";
|
|
|
|
|
private static final String PREF_LAST_C2DM = "c2dm_last";
|
|
|
|
|
|
|
|
|
|
private static final long MIN_MILLIS_BETWEEN_FULL_SYNCS = 5 * DateUtilities.ONE_MINUTE;
|
|
|
|
|
private static final long MIN_MILLIS_BETWEEN_FULL_SYNCS = DateUtilities.ONE_HOUR;
|
|
|
|
|
|
|
|
|
|
@Autowired ActFmSyncService actFmSyncService;
|
|
|
|
|
@Autowired TaskService taskService;
|
|
|
|
|
@Autowired TagDataService tagDataService;
|
|
|
|
|
@Autowired UpdateDao updateDao;
|
|
|
|
|
@Autowired ActFmPreferenceService actFmPreferenceService;
|
|
|
|
|
@Autowired ActFmSyncService actFmSyncService;
|
|
|
|
|
|
|
|
|
|
static {
|
|
|
|
|
AstridDependencyInjector.initialize();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private final SyncResultCallbackAdapter refreshOnlyCallback = new SyncResultCallbackAdapter() {
|
|
|
|
|
@Override
|
|
|
|
|
public void finished() {
|
|
|
|
|
ContextManager.getContext().sendBroadcast(new Intent(AstridApiConstants.BROADCAST_EVENT_REFRESH));
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void onReceive(Context context, final Intent intent) {
|
|
|
|
|
ContextManager.setContext(context);
|
|
|
|
@ -74,13 +82,15 @@ public class C2DMReceiver extends BroadcastReceiver {
|
|
|
|
|
new Thread(new Runnable() {
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
|
if(intent.hasExtra("web_update") && actFmPreferenceService.isLoggedIn())
|
|
|
|
|
if (DateUtilities.now() - actFmPreferenceService.getLastSyncDate() > MIN_MILLIS_BETWEEN_FULL_SYNCS && !actFmPreferenceService.isOngoing())
|
|
|
|
|
new ActFmSyncProvider().synchronize(ContextManager.getContext());
|
|
|
|
|
if (actFmPreferenceService.isLoggedIn()) {
|
|
|
|
|
if(intent.hasExtra("web_update"))
|
|
|
|
|
if (DateUtilities.now() - actFmPreferenceService.getLastSyncDate() > MIN_MILLIS_BETWEEN_FULL_SYNCS && !actFmPreferenceService.isOngoing())
|
|
|
|
|
new ActFmSyncV2Provider().synchronizeActiveTasks(false, refreshOnlyCallback);
|
|
|
|
|
else
|
|
|
|
|
handleWebUpdate(intent);
|
|
|
|
|
else
|
|
|
|
|
handleWebUpdate(intent);
|
|
|
|
|
else
|
|
|
|
|
handleMessage(intent);
|
|
|
|
|
handleMessage(intent);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}).start();
|
|
|
|
|
}
|
|
|
|
@ -106,7 +116,7 @@ public class C2DMReceiver extends BroadcastReceiver {
|
|
|
|
|
tagData.readFromCursor(cursor);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
actFmSyncService.fetchTag(tagData);
|
|
|
|
|
new ActFmSyncV2Provider().synchronizeList(tagData, false, refreshOnlyCallback);
|
|
|
|
|
} finally {
|
|
|
|
|
cursor.close();
|
|
|
|
|
}
|
|
|
|
@ -281,13 +291,7 @@ public class C2DMReceiver extends BroadcastReceiver {
|
|
|
|
|
new Thread(new Runnable() {
|
|
|
|
|
@Override
|
|
|
|
|
public void run() {
|
|
|
|
|
try {
|
|
|
|
|
actFmSyncService.fetchTag(tagData);
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
Log.e("c2dm-tag-rx", "io-exception", e);
|
|
|
|
|
} catch (JSONException e) {
|
|
|
|
|
Log.e("c2dm-tag-rx", "json-exception", e);
|
|
|
|
|
}
|
|
|
|
|
new ActFmSyncV2Provider().synchronizeList(tagData, false, refreshOnlyCallback);
|
|
|
|
|
}
|
|
|
|
|
}).start();
|
|
|
|
|
} else {
|
|
|
|
|