Conflicts:
	app/app.iml
This commit is contained in:
Tim Schumacher 2015-02-11 17:56:28 +01:00
commit a3620f46df
2 changed files with 38 additions and 24 deletions

View file

@ -5,40 +5,54 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiInfo; import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.Toast; import android.widget.Toast;
/**
* Created by tim on 24.01.15.
*/
public class DerivBroadcastReceiver extends BroadcastReceiver { public class DerivBroadcastReceiver extends BroadcastReceiver {
private final Context appContext;
private final String targetSSID;
public DerivBroadcastReceiver(Context appContext, String networkSSID) {
this.appContext = appContext;
this.targetSSID = networkSSID;
}
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
final String action = intent.getAction(); // final String action = intent.getAction();
if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
NetworkInfo nwInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); WifiManager wifiManager = (WifiManager) appContext.getSystemService(Context.WIFI_SERVICE);
if (nwInfo.getExtraInfo().equals(MainActivity.networkSSID) && nwInfo.isConnected()) { WifiInfo wifiInfo = wifiManager.getConnectionInfo();
View rootView = ((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content);
Button button = (Button) rootView.findViewById(R.id.button_buzzer); NetworkInfo nwInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
button.setEnabled(true);
button = (Button) rootView.findViewById(R.id.button_door_unlock); if (nwInfo != null && nwInfo.isConnectedOrConnecting()) {
button.setEnabled(true); String ssid = wifiInfo.getSSID();
button = (Button) rootView.findViewById(R.id.button_door_open);
button.setEnabled(true); if (ssid.equals(targetSSID)){
buttonActivator((Activity) context, true);
Toast.makeText(context, context.getString(R.string.wlan_connected), Toast.LENGTH_SHORT).show(); Toast.makeText(context, context.getString(R.string.wlan_connected), Toast.LENGTH_SHORT).show();
} else { } else {
View rootView = ((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content); buttonActivator((Activity) context, false);
Button button = (Button) rootView.findViewById(R.id.button_buzzer);
button.setEnabled(false);
button = (Button) rootView.findViewById(R.id.button_door_unlock);
button.setEnabled(false);
button = (Button) rootView.findViewById(R.id.button_door_open);
button.setEnabled(false);
} }
} }
} }
private void buttonActivator(Activity context, boolean ssidTrue) {
View rootView = context.getWindow().getDecorView().findViewById(android.R.id.content);
Button button = (Button) rootView.findViewById(R.id.button_buzzer);
button.setEnabled(ssidTrue);
button = (Button) rootView.findViewById(R.id.button_door_open);
button.setEnabled(ssidTrue);
button = (Button) rootView.findViewById(R.id.button_door_unlock);
button.setEnabled(ssidTrue);
button = (Button) rootView.findViewById(R.id.button);
button.setEnabled(ssidTrue);
}
} }

View file

@ -55,7 +55,7 @@ import javax.net.ssl.TrustManager;
public class MainActivity extends ActionBarActivity { public class MainActivity extends ActionBarActivity {
final static String networkSSID = "\"KrautSpace\""; final static String networkSSID = "KrautSpace";
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@ -70,7 +70,7 @@ public class MainActivity extends ActionBarActivity {
IntentFilter intentFilter = new IntentFilter(); IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION) ; intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION) ;
intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
registerReceiver(new DerivBroadcastReceiver(),intentFilter); registerReceiver(new DerivBroadcastReceiver(this, networkSSID),intentFilter);
} }