package tv.piratemedia.lightcontroler.wear; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.util.Log; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.common.api.ResultCallback; import com.google.android.gms.wearable.Node; import com.google.android.gms.wearable.NodeApi; import com.google.android.gms.wearable.Wearable; import java.util.List; import tv.piratemedia.lightcontroler.utils; /** * Created by mrwhale on 19/01/15. * This class will listen for changes in state of wifi, as to know whether we are connected to the correct SSID so then we can display a card on the watch */ public class wifiConnectionListener extends BroadcastReceiver { //private Context mCtx; private GoogleApiClient mApiClient; public void connectToWatch(Context context){ //setup google API connnection to wearable mApiClient = new GoogleApiClient.Builder(context) .addApi( Wearable.API ) .build(); mApiClient.connect(); } @Override public void onReceive(Context context, Intent intent) { utils cmd = new utils(context); final SharedPreferences prefs = context.getSharedPreferences(WearSettings.NETWORKS_PREFS, Context.MODE_PRIVATE); //Log.d("wear", "connecting to: "+cmd.getWifiName()); // commenting out commit 69dfcb9ee4b2f33a44db2ad6cd1f30ac5ccf16e5 // cmd.getWifiName() != null && if(prefs.getBoolean(cmd.getWifiName(), false)) { connectToWatch(context); final com.google.android.gms.common.api.PendingResult<NodeApi.GetConnectedNodesResult> nodes = Wearable.NodeApi.getConnectedNodes(mApiClient); nodes.setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() { @Override public void onResult(NodeApi.GetConnectedNodesResult result) { final List<Node> nodes = result.getNodes(); if (nodes != null) { for (int i = 0; i < nodes.size(); i++) { final Node node = nodes.get(i); Wearable.MessageApi.sendMessage(mApiClient, node.getId(), "/wifi-connected", null); } } } }); } else { connectToWatch(context); final com.google.android.gms.common.api.PendingResult<NodeApi.GetConnectedNodesResult> nodes = Wearable.NodeApi.getConnectedNodes(mApiClient); nodes.setResultCallback(new ResultCallback<NodeApi.GetConnectedNodesResult>() { @Override public void onResult(NodeApi.GetConnectedNodesResult result) { final List<Node> nodes = result.getNodes(); if (nodes != null) { for (int i = 0; i < nodes.size(); i++) { final Node node = nodes.get(i); Wearable.MessageApi.sendMessage(mApiClient, node.getId(), "/wifi-disconnected", null); } } } }); } } }