Get wifi limit from secure settings.
Steve Howard [Wed, 28 Jul 2010 02:47:50 +0000 (19:47 -0700)]
Change-Id: I750654c28cb3d9f9aa67bd56e4d8d770dbfde4b4

src/com/android/providers/downloads/DownloadInfo.java
src/com/android/providers/downloads/RealSystemFacade.java
src/com/android/providers/downloads/SystemFacade.java
tests/src/com/android/providers/downloads/FakeSystemFacade.java
tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java

index ee3ca54..4c08b15 100644 (file)
@@ -345,7 +345,7 @@ public class DownloadInfo {
         if (networkType == ConnectivityManager.TYPE_WIFI) {
             return true; // anything goes over wifi
         }
-        Integer maxBytesOverMobile = mSystemFacade.getMaxBytesOverMobile();
+        Long maxBytesOverMobile = mSystemFacade.getMaxBytesOverMobile();
         if (maxBytesOverMobile == null) {
             return true; // no limit
         }
index adf0107..710da10 100644 (file)
@@ -7,6 +7,8 @@ import android.content.Intent;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
 import android.telephony.TelephonyManager;
 import android.util.Log;
 
@@ -59,8 +61,13 @@ class RealSystemFacade implements SystemFacade {
         return isRoaming;
     }
 
-    public Integer getMaxBytesOverMobile() {
-        return null;
+    public Long getMaxBytesOverMobile() {
+        try {
+            return Settings.Secure.getLong(mContext.getContentResolver(),
+                    Settings.Secure.DOWNLOAD_MAX_BYTES_OVER_MOBILE);
+        } catch (SettingNotFoundException exc) {
+            return null;
+        }
     }
 
     @Override
index 3f8ff26..c194169 100644 (file)
@@ -27,7 +27,7 @@ interface SystemFacade {
      * @return maximum size, in bytes, of downloads that may go over a mobile connection; or null if
      * there's no limit
      */
-    public Integer getMaxBytesOverMobile();
+    public Long getMaxBytesOverMobile();
 
     /**
      * Send a broadcast intent.
index 297c1d3..40b2a90 100644 (file)
@@ -17,7 +17,7 @@ public class FakeSystemFacade implements SystemFacade {
     long mTimeMillis = 0;
     Integer mActiveNetworkType = ConnectivityManager.TYPE_WIFI;
     boolean mIsRoaming = false;
-    Integer mMaxBytesOverMobile = null;
+    Long mMaxBytesOverMobile = null;
     List<Intent> mBroadcastsSent = new ArrayList<Intent>();
     Map<Integer,Notification> mActiveNotifications = new HashMap<Integer,Notification>();
     List<Notification> mCanceledNotifications = new ArrayList<Notification>();
@@ -39,7 +39,7 @@ public class FakeSystemFacade implements SystemFacade {
         return mIsRoaming;
     }
 
-    public Integer getMaxBytesOverMobile() {
+    public Long getMaxBytesOverMobile() {
         return mMaxBytesOverMobile ;
     }
 
index d33e458..b601846 100644 (file)
@@ -277,7 +277,7 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
     }
 
     public void testSizeLimitOverMobile() throws Exception {
-        mSystemFacade.mMaxBytesOverMobile = FILE_CONTENT.length() - 1;
+        mSystemFacade.mMaxBytesOverMobile = (long) FILE_CONTENT.length() - 1;
 
         mSystemFacade.mActiveNetworkType = ConnectivityManager.TYPE_MOBILE;
         enqueueResponse(HTTP_OK, FILE_CONTENT);