package com.jadn.cc.core;
import com.jadn.cc.services.ContentService;
import com.jadn.cc.util.Recording;
import com.jadn.cc.util.RecordingSet;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.net.wifi.WifiManager;
import android.os.IBinder;
import android.preference.PreferenceManager;
import android.util.Log;
public class WifiConnectedReceiver extends BroadcastReceiver {
public static void registerForWifiBroadcasts(Context context) {
context.registerReceiver(new WifiConnectedReceiver(), new IntentFilter(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION));
}
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) {
if (intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, false)) {
// if sending recordings on wifi connect
Log.i("carcast", "connected");
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(context);
String username = app_preferences.getString("smtp_username", null);
String password = app_preferences.getString("smtp_password", null);
if (username == null || username.trim().length() == 0 || password == null && password.trim().length() == 0) {
return;
}
if (new RecordingSet(context).getRecordings().size() == 0)
return;
//
// Start emailing recorded audio
ServiceConnection conn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
ContentService contentService = ((ContentService.LocalBinder) service).getService();
contentService.publishRecordings(null);
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
};
Intent csIntent = new Intent(context, ContentService.class);
context.bindService(csIntent, conn, Context.BIND_AUTO_CREATE);
}
} else {
// wifi connection was lost
}
}
}