diff --git a/packages/path_provider/path_provider_android/CHANGELOG.md b/packages/path_provider/path_provider_android/CHANGELOG.md index 44f692ed79a..b5e2335b368 100644 --- a/packages/path_provider/path_provider_android/CHANGELOG.md +++ b/packages/path_provider/path_provider_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.2.15 + +* Removes unnecessary native code. + ## 2.2.14 * Updates annotations lib to 1.9.1. diff --git a/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java b/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java index 1140875fd2b..b7e0825e2e5 100644 --- a/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java +++ b/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/PathProviderPlugin.java @@ -8,6 +8,7 @@ import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.pathprovider.Messages.PathProviderApi; @@ -44,17 +45,17 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { @Override public @Nullable String getTemporaryPath() { - return getPathProviderTemporaryDirectory(); + return context.getCacheDir().getPath(); } @Override public @Nullable String getApplicationSupportPath() { - return getApplicationSupportDirectory(); + return PathUtils.getFilesDir(context); } @Override public @Nullable String getApplicationDocumentsPath() { - return getPathProviderApplicationDocumentsDirectory(); + return PathUtils.getDataDirectory(context); } @Override @@ -64,33 +65,6 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { @Override public @Nullable String getExternalStoragePath() { - return getPathProviderStorageDirectory(); - } - - @Override - public @NonNull List getExternalCachePaths() { - return getPathProviderExternalCacheDirectories(); - } - - @Override - public @NonNull List getExternalStoragePaths( - @NonNull Messages.StorageDirectory directory) { - return getPathProviderExternalStorageDirectories(directory); - } - - private String getPathProviderTemporaryDirectory() { - return context.getCacheDir().getPath(); - } - - private String getApplicationSupportDirectory() { - return PathUtils.getFilesDir(context); - } - - private String getPathProviderApplicationDocumentsDirectory() { - return PathUtils.getDataDirectory(context); - } - - private String getPathProviderStorageDirectory() { final File dir = context.getExternalFilesDir(null); if (dir == null) { return null; @@ -98,19 +72,31 @@ private String getPathProviderStorageDirectory() { return dir.getAbsolutePath(); } - private List getPathProviderExternalCacheDirectories() { + @Override + public @NonNull List getExternalCachePaths() { final List paths = new ArrayList<>(); - for (File dir : context.getExternalCacheDirs()) { if (dir != null) { paths.add(dir.getAbsolutePath()); } } + return paths; + } + @Override + public @NonNull List getExternalStoragePaths( + @NonNull Messages.StorageDirectory directory) { + final List paths = new ArrayList<>(); + for (File dir : context.getExternalFilesDirs(getStorageDirectoryString(directory))) { + if (dir != null) { + paths.add(dir.getAbsolutePath()); + } + } return paths; } - private String getStorageDirectoryString(@NonNull Messages.StorageDirectory directory) { + @VisibleForTesting + String getStorageDirectoryString(@NonNull Messages.StorageDirectory directory) { switch (directory) { case ROOT: return null; @@ -138,17 +124,4 @@ private String getStorageDirectoryString(@NonNull Messages.StorageDirectory dire throw new RuntimeException("Unrecognized directory: " + directory); } } - - private List getPathProviderExternalStorageDirectories( - @NonNull Messages.StorageDirectory directory) { - final List paths = new ArrayList<>(); - - for (File dir : context.getExternalFilesDirs(getStorageDirectoryString(directory))) { - if (dir != null) { - paths.add(dir.getAbsolutePath()); - } - } - - return paths; - } } diff --git a/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/StorageDirectoryMapper.java b/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/StorageDirectoryMapper.java deleted file mode 100644 index 4cc12ddf5a9..00000000000 --- a/packages/path_provider/path_provider_android/android/src/main/java/io/flutter/plugins/pathprovider/StorageDirectoryMapper.java +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.pathprovider; - -import android.os.Environment; - -/** Helps to map the Dart `StorageDirectory` enum to a Android system constant. */ -class StorageDirectoryMapper { - /** - * Return a Android Environment constant for a Dart Index. - * - * @return The correct Android Environment constant or null, if the index is null. - * @throws IllegalArgumentException If `dartIndex` is not null but also not matches any known - * index. - */ - static String androidType(Integer dartIndex) throws IllegalArgumentException { - if (dartIndex == null) { - return null; - } - - switch (dartIndex) { - case 0: - return Environment.DIRECTORY_MUSIC; - case 1: - return Environment.DIRECTORY_PODCASTS; - case 2: - return Environment.DIRECTORY_RINGTONES; - case 3: - return Environment.DIRECTORY_ALARMS; - case 4: - return Environment.DIRECTORY_NOTIFICATIONS; - case 5: - return Environment.DIRECTORY_PICTURES; - case 6: - return Environment.DIRECTORY_MOVIES; - case 7: - return Environment.DIRECTORY_DOWNLOADS; - case 8: - return Environment.DIRECTORY_DCIM; - case 9: - return Environment.DIRECTORY_DOCUMENTS; - default: - throw new IllegalArgumentException("Unknown index: " + dartIndex); - } - } -} diff --git a/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/PathProviderPluginTest.java b/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/PathProviderPluginTest.java new file mode 100644 index 00000000000..d19b7cab6a8 --- /dev/null +++ b/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/PathProviderPluginTest.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.pathprovider; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +public class PathProviderPluginTest { + @org.junit.Test + public void testStorageDirectoryTypeTranslation() { + final PathProviderPlugin plugin = new PathProviderPlugin(); + assertNull(plugin.getStorageDirectoryString(Messages.StorageDirectory.ROOT)); + assertEquals("music", plugin.getStorageDirectoryString(Messages.StorageDirectory.MUSIC)); + assertEquals("podcasts", plugin.getStorageDirectoryString(Messages.StorageDirectory.PODCASTS)); + assertEquals( + "ringtones", plugin.getStorageDirectoryString(Messages.StorageDirectory.RINGTONES)); + assertEquals("alarms", plugin.getStorageDirectoryString(Messages.StorageDirectory.ALARMS)); + assertEquals( + "notifications", plugin.getStorageDirectoryString(Messages.StorageDirectory.NOTIFICATIONS)); + assertEquals("pictures", plugin.getStorageDirectoryString(Messages.StorageDirectory.PICTURES)); + assertEquals("movies", plugin.getStorageDirectoryString(Messages.StorageDirectory.MOVIES)); + assertEquals( + "downloads", plugin.getStorageDirectoryString(Messages.StorageDirectory.DOWNLOADS)); + assertEquals("dcim", plugin.getStorageDirectoryString(Messages.StorageDirectory.DCIM)); + } +} diff --git a/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/StorageDirectoryMapperTest.java b/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/StorageDirectoryMapperTest.java deleted file mode 100644 index 7469c545b81..00000000000 --- a/packages/path_provider/path_provider_android/android/src/test/java/io/flutter/plugins/pathprovider/StorageDirectoryMapperTest.java +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.pathprovider; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; - -import android.os.Environment; -import org.junit.Test; - -public class StorageDirectoryMapperTest { - @org.junit.Test - public void testAndroidType_null() { - assertNull(StorageDirectoryMapper.androidType(null)); - } - - @org.junit.Test - public void testAndroidType_valid() { - assertEquals(Environment.DIRECTORY_MUSIC, StorageDirectoryMapper.androidType(0)); - assertEquals(Environment.DIRECTORY_PODCASTS, StorageDirectoryMapper.androidType(1)); - assertEquals(Environment.DIRECTORY_RINGTONES, StorageDirectoryMapper.androidType(2)); - assertEquals(Environment.DIRECTORY_ALARMS, StorageDirectoryMapper.androidType(3)); - assertEquals(Environment.DIRECTORY_NOTIFICATIONS, StorageDirectoryMapper.androidType(4)); - assertEquals(Environment.DIRECTORY_PICTURES, StorageDirectoryMapper.androidType(5)); - assertEquals(Environment.DIRECTORY_MOVIES, StorageDirectoryMapper.androidType(6)); - assertEquals(Environment.DIRECTORY_DOWNLOADS, StorageDirectoryMapper.androidType(7)); - assertEquals(Environment.DIRECTORY_DCIM, StorageDirectoryMapper.androidType(8)); - } - - @Test - public void testAndroidType_invalid() { - try { - assertEquals(Environment.DIRECTORY_DCIM, StorageDirectoryMapper.androidType(10)); - fail(); - } catch (IllegalArgumentException e) { - assertEquals("Unknown index: " + 10, e.getMessage()); - } - } -} diff --git a/packages/path_provider/path_provider_android/pubspec.yaml b/packages/path_provider/path_provider_android/pubspec.yaml index 35b708386f2..9674e6a1703 100644 --- a/packages/path_provider/path_provider_android/pubspec.yaml +++ b/packages/path_provider/path_provider_android/pubspec.yaml @@ -2,7 +2,7 @@ name: path_provider_android description: Android implementation of the path_provider plugin. repository: https://github.com/flutter/packages/tree/main/packages/path_provider/path_provider_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+path_provider%22 -version: 2.2.14 +version: 2.2.15 environment: sdk: ^3.5.0