package fr.ydelouis.selfoss.sync;
import android.accounts.Account;
import android.content.ContentResolver;
import android.os.Bundle;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EBean;
import fr.ydelouis.selfoss.BuildConfig;
import fr.ydelouis.selfoss.config.model.Config;
import fr.ydelouis.selfoss.config.model.ConfigManager;
@EBean
public class SyncManager {
private static final String AUTHORITY = BuildConfig.AUTHORITY;
public static void setPeriodicSync(ConfigManager configManager, Config config) {
Account account = configManager.getAccountForConfig(config);
if (account != null) {
ContentResolver.setSyncAutomatically(account, AUTHORITY, config.getSyncPeriod() > 0);
ContentResolver.addPeriodicSync(account, AUTHORITY, new Bundle(), config.getSyncPeriod());
}
}
@Bean protected ConfigManager configManager;
public void requestSync() {
Account account = configManager.getAccount();
if (account != null) {
Bundle extras = new Bundle();
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
extras.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
ContentResolver.requestSync(account, AUTHORITY, extras);
}
}
public boolean isActive() {
Account account = configManager.getAccount();
if (account != null) {
return ContentResolver.isSyncActive(account, AUTHORITY);
} else {
return false;
}
}
}