From 171056ebb2fe95000bd66224dde8cca7809ffd38 Mon Sep 17 00:00:00 2001 From: Sylvain Emery Date: Thu, 20 Nov 2014 11:27:56 +0100 Subject: [PATCH] added menu and activity to toggel WiFi state --- app/src/main/AndroidManifest.xml | 7 ++ .../glassnetinfo/MainActivity.java | 5 +- .../glassnetinfo/ToggleWifiActivity.java | 118 ++++++++++++++++++ app/src/main/res/menu/main.xml | 3 +- app/src/main/res/values/strings.xml | 6 +- 5 files changed, 131 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/hackncheese/glassnetinfo/ToggleWifiActivity.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3cddc9b..102e25b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,6 +8,8 @@ + + + + diff --git a/app/src/main/java/com/hackncheese/glassnetinfo/MainActivity.java b/app/src/main/java/com/hackncheese/glassnetinfo/MainActivity.java index e192d07..f326a54 100644 --- a/app/src/main/java/com/hackncheese/glassnetinfo/MainActivity.java +++ b/app/src/main/java/com/hackncheese/glassnetinfo/MainActivity.java @@ -2,6 +2,7 @@ import android.app.Activity; import android.content.Context; +import android.content.Intent; import android.media.AudioManager; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; @@ -12,8 +13,6 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; -import android.view.View; -import android.widget.AdapterView; import com.google.android.glass.media.Sounds; import com.google.android.glass.widget.CardScrollView; @@ -95,7 +94,7 @@ public boolean onOptionsItemSelected(MenuItem item) { updateInfo(); return true; case R.id.toggle_wifi: - /*startActivity(new Intent(this, ToggleWifiActivity.class));*/ + startActivity(new Intent(this, ToggleWifiActivity.class)); return true; default: return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/com/hackncheese/glassnetinfo/ToggleWifiActivity.java b/app/src/main/java/com/hackncheese/glassnetinfo/ToggleWifiActivity.java new file mode 100644 index 0000000..f8913d7 --- /dev/null +++ b/app/src/main/java/com/hackncheese/glassnetinfo/ToggleWifiActivity.java @@ -0,0 +1,118 @@ +package com.hackncheese.glassnetinfo; + +import com.google.android.glass.media.Sounds; +import com.google.android.glass.widget.CardBuilder; +import com.google.android.glass.widget.CardScrollAdapter; +import com.google.android.glass.widget.CardScrollView; + +import android.app.Activity; +import android.content.Context; +import android.media.AudioManager; +import android.net.wifi.WifiManager; +import android.os.Bundle; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; + +/** + * Toggles the WiFi state + */ +public class ToggleWifiActivity extends Activity { + + private CardScrollView mCardScroller; + + private View mView; + + private boolean wifiState; + + @Override + protected void onCreate(Bundle bundle) { + super.onCreate(bundle); + + toggleWifiState(); + mView = buildView(); + + mCardScroller = new CardScrollView(this); + mCardScroller.setAdapter(new CardScrollAdapter() { + @Override + public int getCount() { + return 1; + } + + @Override + public Object getItem(int position) { + return mView; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + return mView; + } + + @Override + public int getPosition(Object item) { + if (mView.equals(item)) { + return 0; + } + return AdapterView.INVALID_POSITION; + } + }); + // Handle the TAP event. + mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + toggleWifiState(); + mView = buildView(); + mCardScroller.getAdapter().notifyDataSetChanged(); + // play a nice sound + AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); + am.playSoundEffect(Sounds.SUCCESS); + } + }); + setContentView(mCardScroller); + + // play a nice sound + AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); + am.playSoundEffect(Sounds.SUCCESS); + + } + + @Override + protected void onResume() { + super.onResume(); + mCardScroller.activate(); + } + + @Override + protected void onPause() { + mCardScroller.deactivate(); + super.onPause(); + } + + /** + * Toggles the state of WiFi + */ + private void toggleWifiState() { + WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); + wifiState = !wifiManager.isWifiEnabled(); + wifiManager.setWifiEnabled(wifiState); + } + + /** + * Builds a Glass styled view showing the WiFi state. + */ + private View buildView() { + CardBuilder card = new CardBuilder(this, CardBuilder.Layout.TEXT); + + String txt; + if (wifiState) { + txt = "WiFi is now enabled"; + } else { + txt = "WiFi is now disabled"; + } + + card.setText(txt); + return card.getView(); + } + +} diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml index f0af3b3..a617957 100644 --- a/app/src/main/res/menu/main.xml +++ b/app/src/main/res/menu/main.xml @@ -5,7 +5,6 @@ android:title="@string/menu_refresh" /> + android:title="@string/menu_toggle_wifi" /> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f0e6848..c30b2a1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,19 +2,19 @@ GlassNetInfo - Show Network Info + Show Network Info Show network info + Toggle WiFi + WiFi IP SSID Ext IP Provider retrieving… - n/a n/a - n/a (timed out)