diff --git a/app/src/main/java/me/datenknoten/tueroeffner/DerivBroadcastReceiver.java b/app/src/main/java/me/datenknoten/tueroeffner/DerivBroadcastReceiver.java index 9123269..88e14a9 100644 --- a/app/src/main/java/me/datenknoten/tueroeffner/DerivBroadcastReceiver.java +++ b/app/src/main/java/me/datenknoten/tueroeffner/DerivBroadcastReceiver.java @@ -5,40 +5,54 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.NetworkInfo; -import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.view.View; import android.widget.Button; import android.widget.Toast; -/** - * Created by tim on 24.01.15. - */ 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 public void onReceive(Context context, Intent intent) { - final String action = intent.getAction(); - if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { - NetworkInfo nwInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); - if (nwInfo.getExtraInfo().equals(MainActivity.networkSSID) && nwInfo.isConnected()) { - View rootView = ((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content); - Button button = (Button) rootView.findViewById(R.id.button_buzzer); - button.setEnabled(true); - button = (Button) rootView.findViewById(R.id.button_door_unlock); - button.setEnabled(true); - button = (Button) rootView.findViewById(R.id.button_door_open); - button.setEnabled(true); +// final String action = intent.getAction(); + + WifiManager wifiManager = (WifiManager) appContext.getSystemService(Context.WIFI_SERVICE); + WifiInfo wifiInfo = wifiManager.getConnectionInfo(); + + NetworkInfo nwInfo = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO); + + if (nwInfo != null && nwInfo.isConnectedOrConnecting()) { + String ssid = wifiInfo.getSSID(); + + if (ssid.equals(targetSSID)){ + buttonActivator((Activity) context, true); Toast.makeText(context, context.getString(R.string.wlan_connected), Toast.LENGTH_SHORT).show(); } else { - View rootView = ((Activity)context).getWindow().getDecorView().findViewById(android.R.id.content); - 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); + buttonActivator((Activity) context, 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); + } } diff --git a/app/src/main/java/me/datenknoten/tueroeffner/MainActivity.java b/app/src/main/java/me/datenknoten/tueroeffner/MainActivity.java index d843ea5..f11d8d2 100644 --- a/app/src/main/java/me/datenknoten/tueroeffner/MainActivity.java +++ b/app/src/main/java/me/datenknoten/tueroeffner/MainActivity.java @@ -55,7 +55,7 @@ import javax.net.ssl.TrustManager; public class MainActivity extends ActionBarActivity { - final static String networkSSID = "\"KrautSpace\""; + final static String networkSSID = "KrautSpace"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -70,7 +70,7 @@ public class MainActivity extends ActionBarActivity { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION) ; intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); - registerReceiver(new DerivBroadcastReceiver(),intentFilter); + registerReceiver(new DerivBroadcastReceiver(this, networkSSID),intentFilter); }