diff options
author | Trumeet <liangyuteng12345@gmail.com> | 2017-09-15 20:28:56 +0800 |
---|---|---|
committer | Trumeet <liangyuteng12345@gmail.com> | 2017-09-15 20:28:56 +0800 |
commit | 6e3f75a9c55de4e9b2c731ec70ced08901aa7862 (patch) | |
tree | 238714a3de3919320b7448bfd60750d895cc8f95 /library/src/main/java/top/trumeet/redirectstorage/wrapper/UserEnvironmentWrapperMarshmallow.java | |
parent | b8c9ff8b8d04a1107405bbcd6539eec05f8a1b4e (diff) | |
download | RedirectStorage-6e3f75a9c55de4e9b2c731ec70ced08901aa7862.tar RedirectStorage-6e3f75a9c55de4e9b2c731ec70ced08901aa7862.tar.gz RedirectStorage-6e3f75a9c55de4e9b2c731ec70ced08901aa7862.tar.bz2 RedirectStorage-6e3f75a9c55de4e9b2c731ec70ced08901aa7862.zip |
refactor: use AbstractWrapper
Diffstat (limited to 'library/src/main/java/top/trumeet/redirectstorage/wrapper/UserEnvironmentWrapperMarshmallow.java')
-rw-r--r-- | library/src/main/java/top/trumeet/redirectstorage/wrapper/UserEnvironmentWrapperMarshmallow.java | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/library/src/main/java/top/trumeet/redirectstorage/wrapper/UserEnvironmentWrapperMarshmallow.java b/library/src/main/java/top/trumeet/redirectstorage/wrapper/UserEnvironmentWrapperMarshmallow.java new file mode 100644 index 0000000..6565631 --- /dev/null +++ b/library/src/main/java/top/trumeet/redirectstorage/wrapper/UserEnvironmentWrapperMarshmallow.java @@ -0,0 +1,91 @@ +package top.trumeet.redirectstorage.wrapper; + +import android.os.Environment; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +/** + * Created by Trumeet on 2017/9/15. + * Wrapper for marshmallow+ + */ + +class UserEnvironmentWrapperMarshmallow extends AbstractWrapper { + + UserEnvironmentWrapperMarshmallow(Environment.UserEnvironment ue, int userId, String customPath) { + super(ue, userId, customPath); + } + + @Override + public File[] getExternalDirs() { + return buildExternalDirs(mEnable); + } + + private File[] buildExternalDirs (boolean mEnable) { + File[] dirs = mBase.getExternalDirs(); + if (!mEnable) + return dirs; + if (dirs == null || dirs.length == 0) + return dirs; + List<File> list = new ArrayList<>(dirs.length); + for (File file : dirs) { + list.add(new File(file.getAbsolutePath() + mCustomPath)); + } + return list.toArray(new File[list.size()]); + } + + public File getRealExternalStorageDirectory () { + return buildExternalDirs(false)[0]; + } + + @Override + public File getExternalStorageDirectory() { + return mBase.getExternalStorageDirectory(); + } + + @Override + public File getExternalStoragePublicDirectory(String type) { + return mBase.getExternalStoragePublicDirectory(type); + } + + @Override + public File[] buildExternalStoragePublicDirs(String type) { + return mBase.buildExternalStoragePublicDirs(type); + } + + @Override + public File[] buildExternalStorageAndroidDataDirs() { + return mBase.buildExternalStorageAndroidDataDirs(); + } + + @Override + public File[] buildExternalStorageAndroidObbDirs() { + return mBase.buildExternalStorageAndroidObbDirs(); + } + + @Override + public File[] buildExternalStorageAppDataDirs(String packageName) { + return mBase.buildExternalStorageAppDataDirs(packageName); + } + + @Override + public File[] buildExternalStorageAppMediaDirs(String packageName) { + return mBase.buildExternalStorageAppMediaDirs(packageName); + } + + @Override + public File[] buildExternalStorageAppObbDirs(String packageName) { + return mBase.buildExternalStorageAppObbDirs(packageName); + } + + @Override + public File[] buildExternalStorageAppFilesDirs(String packageName) { + return mBase.buildExternalStorageAppFilesDirs(packageName); + } + + @Override + public File[] buildExternalStorageAppCacheDirs(String packageName) { + return mBase.buildExternalStorageAppCacheDirs(packageName); + } +}
\ No newline at end of file |