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>