diff --git a/app-debug.apk b/app-debug.apk index 029f951e5a4eb6e33c980a110a2b7981e18e0479..2b662656ed8939d5bb384cf7f4c98346f85e0bb9 100644 Binary files a/app-debug.apk and b/app-debug.apk differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 92322cabc74dafce06c27835317543f9d51d92dd..55e8f595d4d506cf16d8f6676bfff7f81f19dbbc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,6 +3,7 @@ package="com.mcdz.seeip" android:installLocation="auto"> + <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application @@ -10,6 +11,7 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher" + android:usesCleartextTraffic="true" android:supportsRtl="true"> <service android:name=".TileView" diff --git a/app/src/main/java/com/mcdz/seeip/TileView.java b/app/src/main/java/com/mcdz/seeip/TileView.java index 6f597da8e051bbb9e832db09e8daeb21488f5892..2d88bb4ec29e853738c2093b1a2dc5de98cec32d 100644 --- a/app/src/main/java/com/mcdz/seeip/TileView.java +++ b/app/src/main/java/com/mcdz/seeip/TileView.java @@ -5,12 +5,20 @@ import android.service.quicksettings.Tile; import android.service.quicksettings.TileService; import android.net.wifi.WifiManager; +import android.widget.Toast; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; import java.math.BigInteger; import java.net.InetAddress; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; import java.net.UnknownHostException; import java.nio.ByteOrder; + public class TileView extends TileService { @Override @@ -31,13 +39,36 @@ public class TileView extends TileService { tile.updateTile(); } + boolean sw; + public void displayIp() { // will be playing with active/inactive later, it's pointless for now. - getQsTile().setLabel(getLocalWifiIpAddress()); - getQsTile().updateTile(); + sw = !sw; + if (sw) { + getQsTile().setLabel(getLocalWifiIpAddress()); + getQsTile().updateTile(); + } else { + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + try { + try { + getQsTile().setLabel(getPublicIpAddress()); + } catch (IOException e) { + e.printStackTrace(); + getQsTile().setLabel("Error"); + } + getQsTile().updateTile(); + } catch (Exception e) { + e.printStackTrace(); + getQsTile().setLabel("Error"); + } + } + }); + thread.start(); + } } - // found this on web private String getLocalWifiIpAddress() { WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE); @@ -59,4 +90,17 @@ public class TileView extends TileService { return ipAddressString; } + + public String getPublicIpAddress() throws MalformedURLException, IOException { + + URL connection = new URL("http://checkip.amazonaws.com/"); + URLConnection con = connection.openConnection(); + String str = null; + BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream())); + str = reader.readLine(); + + + return str; + } + } \ 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 f682682afe03de5ce7f1b7aab906dca5f02eafa9..899384b25d53925b9e8adb19a488aa5c7fc52718 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,4 +1,4 @@ <resources> <string name="app_name">Local IP</string> - <string name="tile_name">SeeIP</string> + <string name="tile_name">Fetching</string> </resources>