package com.gettingmobile.goodnews.sync; import com.gettingmobile.android.app.DialogFactory; import com.gettingmobile.android.app.actions.ActionContext; import com.gettingmobile.android.content.LowDeviceStorageDetector; import com.gettingmobile.goodnews.Application; import com.gettingmobile.goodnews.R; import com.google.inject.Inject; public class FullSyncAction extends SyncAction { @Inject public FullSyncAction(SyncServiceProxy syncServiceProxy) { super(syncServiceProxy); } @Override public int getState(ActionContext context) { final SyncService svc = syncServiceProxy.getService(); return svc == null || svc.isIdle() ? ENABLED : BUSY; } @Override protected void doSync(ActionContext<? extends Application> context, SyncService service) { if (context.getApp().getSettings().cancelSyncOnLowDeviceStorage() && LowDeviceStorageDetector.isDeviceStorageLow(context.getApp())) { DialogFactory.showErrorDialog(context.getActivity(), R.string.sync_title, context.getActivity().getString(R.string.sync_failed_device_storage_low_long)); } else { service.startFullSync(); } } }