Mholloway has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/281950

Change subject: Don't widen images on metered connections
......................................................................

Don't widen images on metered connections

Adds a check for ConnectivityManagerCompat.isActiveNetworkMetered, which
reports if the user is likely to be sensitive to data use.  Only widens
images if not.

Bug: T127015
Change-Id: I85697989455a937720555d064fd7f80aedd41ec2
---
M app/src/main/assets/bundle.js
M app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
M app/src/main/java/org/wikipedia/util/DeviceUtil.java
M www/js/sections.js
4 files changed, 26 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/50/281950/1

diff --git a/app/src/main/assets/bundle.js b/app/src/main/assets/bundle.js
index 357e66e..8c1c4ea 100644
--- a/app/src/main/assets/bundle.js
+++ b/app/src/main/assets/bundle.js
@@ -482,7 +482,10 @@
     if (!window.isMainPage) {
         transformer.transform( "hideTables", content ); // clickHandler
         transformer.transform( "addImageOverflowXContainers", content ); // 
offsetWidth
-        transformer.transform( "widenImages", content ); // offsetWidth
+
+        if (!window.isNetworkMetered) {
+            transformer.transform( "widenImages", content ); // offsetWidth
+        }
     }
 
     // insert the edit pencil
@@ -551,10 +554,13 @@
 
     transformer.transform( "hideRefs", content ); // clickHandler
 
-    if (!window.isMainPage) {
+    if (!window.issMainPage) {
         transformer.transform( "hideTables", content ); // clickHandler
         transformer.transform( "addImageOverflowXContainers", content ); // 
offsetWidth
-        transformer.transform( "widenImages", content ); // offsetWidth
+
+        if (!window.isNetworkMetered) {
+            transformer.transform( "widenImages", content ); // offsetWidth
+        }
     }
 
     return [ heading, content ];
diff --git a/app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java 
b/app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
index 242b5d3..bc7dcd5 100644
--- a/app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
+++ b/app/src/main/java/org/wikipedia/page/JsonPageLoadStrategy.java
@@ -34,6 +34,7 @@
 import org.wikipedia.server.PageLead;
 import org.wikipedia.server.PageRemaining;
 import org.wikipedia.server.ServiceError;
+import org.wikipedia.util.DeviceUtil;
 import org.wikipedia.util.DimenUtil;
 import org.wikipedia.util.L10nUtil;
 import org.wikipedia.util.ResourceUtil;
@@ -647,6 +648,7 @@
                     .put("siteLanguage", 
model.getTitle().getSite().languageCode())
                     .put("isMainPage", page.isMainPage())
                     .put("fromRestBase", page.isFromRestBase())
+                    .put("isNetworkMetered", DeviceUtil.isNetworkMetered(app))
                     .put("apiLevel", Build.VERSION.SDK_INT);
         } catch (JSONException e) {
             throw new RuntimeException(e);
diff --git a/app/src/main/java/org/wikipedia/util/DeviceUtil.java 
b/app/src/main/java/org/wikipedia/util/DeviceUtil.java
index 1273e80..db6f48a 100644
--- a/app/src/main/java/org/wikipedia/util/DeviceUtil.java
+++ b/app/src/main/java/org/wikipedia/util/DeviceUtil.java
@@ -4,8 +4,10 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
+import android.net.ConnectivityManager;
 import android.net.Uri;
 import android.support.annotation.NonNull;
+import android.support.v4.net.ConnectivityManagerCompat;
 import android.view.KeyEvent;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;
@@ -66,6 +68,11 @@
         keyboard.hideSoftInputFromWindow(view.getWindowToken(), 0);
     }
 
+    public static boolean isNetworkMetered(Context context) {
+        return ConnectivityManagerCompat.isActiveNetworkMetered(
+                (ConnectivityManager) 
context.getSystemService(Context.CONNECTIVITY_SERVICE));
+    }
+
     private DeviceUtil() {
 
     }
diff --git a/www/js/sections.js b/www/js/sections.js
index 3214df7..da06a5a 100644
--- a/www/js/sections.js
+++ b/www/js/sections.js
@@ -110,7 +110,10 @@
     if (!window.isMainPage) {
         transformer.transform( "hideTables", content ); // clickHandler
         transformer.transform( "addImageOverflowXContainers", content ); // 
offsetWidth
-        transformer.transform( "widenImages", content ); // offsetWidth
+
+        if (!window.isNetworkMetered) {
+            transformer.transform( "widenImages", content ); // offsetWidth
+        }
     }
 
     // insert the edit pencil
@@ -182,7 +185,10 @@
     if (!window.isMainPage) {
         transformer.transform( "hideTables", content ); // clickHandler
         transformer.transform( "addImageOverflowXContainers", content ); // 
offsetWidth
-        transformer.transform( "widenImages", content ); // offsetWidth
+
+        if (!window.isNetworkMetered) {
+            transformer.transform( "widenImages", content ); // offsetWidth
+        }
     }
 
     return [ heading, content ];

-- 
To view, visit https://gerrit.wikimedia.org/r/281950
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I85697989455a937720555d064fd7f80aedd41ec2
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Mholloway <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to