diff options
-rw-r--r-- | Android.mk | 2 | ||||
-rw-r--r-- | AndroidManifest.xml | 2 | ||||
-rw-r--r-- | src/com/android/exchange/adapter/ProvisionParser.java | 35 |
3 files changed, 8 insertions, 31 deletions
@@ -40,7 +40,7 @@ LOCAL_PACKAGE_NAME := Exchange2 LOCAL_OVERRIDES_PACKAGES := Exchange LOCAL_PROGUARD_FLAG_FILES := proguard.flags -LOCAL_SDK_VERSION := 18 +LOCAL_SDK_VERSION := 19 LOCAL_EMMA_COVERAGE_FILTER += +com.android.exchange.* diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c057dae4..0f9392c5 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -62,7 +62,7 @@ <uses-permission android:name="com.android.email.permission.ACCESS_PROVIDER"/> - <uses-sdk android:targetSdkVersion="18" android:minSdkVersion="14" /> + <uses-sdk android:targetSdkVersion="19" android:minSdkVersion="14" /> <!-- additional uses --> diff --git a/src/com/android/exchange/adapter/ProvisionParser.java b/src/com/android/exchange/adapter/ProvisionParser.java index d7be0d8d..436a0a48 100644 --- a/src/com/android/exchange/adapter/ProvisionParser.java +++ b/src/com/android/exchange/adapter/ProvisionParser.java @@ -18,7 +18,8 @@ package com.android.exchange.adapter; import android.app.admin.DevicePolicyManager; import android.content.Context; import android.content.res.Resources; -import android.os.storage.StorageManager; +import android.os.Environment; +import android.support.v4.content.ContextCompat; import com.android.emailcommon.provider.Policy; import com.android.exchange.Eas; @@ -31,10 +32,9 @@ import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; import java.io.ByteArrayInputStream; +import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.util.ArrayList; /** @@ -616,31 +616,8 @@ public class ProvisionParser extends Parser { * TODO: Rewrite this when an appropriate API is available from the framework */ private boolean hasRemovableStorage() { - try { - StorageManager sm = (StorageManager)mContext.getSystemService(Context.STORAGE_SERVICE); - Class<?> svClass = Class.forName("android.os.storage.StorageVolume"); - Class<?> svManager = Class.forName("android.os.storage.StorageManager"); - Method gvl = svManager.getDeclaredMethod("getVolumeList"); - Object[] volumeList = (Object[]) gvl.invoke(sm); - for (Object volume: volumeList) { - Method isRemovable = svClass.getDeclaredMethod("isRemovable"); - Method getDescription = svClass.getDeclaredMethod("getDescription"); - String desc = (String)getDescription.invoke(volume); - if ((Boolean)isRemovable.invoke(volume)) { - log("Removable: " + desc); - return true; - } else { - log("Not Removable: " + desc); - } - } - return false; - } catch (ClassNotFoundException e) { - } catch (NoSuchMethodException e) { - } catch (IllegalArgumentException e) { - } catch (IllegalAccessException e) { - } catch (InvocationTargetException e) { - } - // To be safe, we'll always indicate that there IS removable storage - return true; + final File[] cacheDirs = ContextCompat.getExternalCacheDirs(mContext); + return Environment.isExternalStorageRemovable() + || (cacheDirs != null && cacheDirs.length > 1); } } |