package de.ironjan.mensaupb; import android.app.Application; import android.content.ContentResolver; import android.os.Bundle; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EApplication; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import de.ironjan.mensaupb.sync.AccountCreator; /** * Used to set up synchronization on first start. */ @SuppressWarnings("WeakerAccess") @EApplication public class MensaUpbApplication extends Application { private final Logger LOGGER = LoggerFactory.getLogger(MensaUpbApplication.class.getSimpleName() ); @Bean AccountCreator mAccountCreator; @Override public void onCreate() { if (BuildConfig.DEBUG) LOGGER.debug("onCreate()"); super.onCreate(); setupSynchronization(); if (BuildConfig.DEBUG) LOGGER.debug("onCreate() done"); } private void setupSynchronization() { if (BuildConfig.DEBUG) LOGGER.debug("setupSynchronization()"); ContentResolver.addPeriodicSync(mAccountCreator.getAccount(), mAccountCreator.getAuthority(), new Bundle(), BuildConfig.SYNC_INTERVAL); forceFirstSync(); if (BuildConfig.DEBUG) LOGGER.debug("setupSynchronization() done"); } private void forceFirstSync() { Bundle settingsBundle = new Bundle(); settingsBundle.putBoolean( ContentResolver.SYNC_EXTRAS_MANUAL, true); settingsBundle.putBoolean( ContentResolver.SYNC_EXTRAS_EXPEDITED, true); ContentResolver.requestSync(mAccountCreator.getAccount(), mAccountCreator.getAuthority(), settingsBundle); } }