package org.mots.haxsync.activities;
import org.mots.haxsync.R;
import org.mots.haxsync.utilities.DeviceUtil;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.provider.CalendarContract;
import android.provider.ContactsContract;
public class ContinueReceiver extends BroadcastReceiver {
private static final String TAG = "WifiReceiver";
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences prefs = context.getSharedPreferences(context.getPackageName() + "_preferences", Context.MODE_MULTI_PROCESS);
boolean wifiOnly = prefs.getBoolean("wifi_only", false);
boolean chargingOnly = prefs.getBoolean("charging_only", false);
String action = intent.getAction();
if((wifiOnly && DeviceUtil.isWifi(context) && action.equals("android.net.wifi.STATE_CHANGE")) || (chargingOnly && action.equals("android.intent.action.ACTION_POWER_CONNECTED"))){
AccountManager am = AccountManager.get(context);
Account[] accs = am.getAccountsByType(context.getString(R.string.ACCOUNT_TYPE));
if (accs.length > 0){
Account account = accs[0];
SharedPreferences.Editor editor = prefs.edit();
if (prefs.getBoolean("missed_contact_sync", false)){
ContentResolver.requestSync(account, ContactsContract.AUTHORITY, new Bundle());
editor.putBoolean("missed_contact_sync", false);
}
if (prefs.getBoolean("missed_calendar_sync", false)){
ContentResolver.requestSync(account, CalendarContract.AUTHORITY, new Bundle());
editor.putBoolean("missed_calendar_sync", false);
}
editor.commit();
}
}
}
}