Skip to content

Commit 8bee94c

Browse files
authored
[path_provider]: Migrated path_provider for android to pigeon. (flutter#5959)
1 parent 5847653 commit 8bee94c

File tree

10 files changed

+760
-260
lines changed

10 files changed

+760
-260
lines changed

packages/path_provider/path_provider_android/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2.0.15
2+
3+
* Switches the medium from MethodChannels to Pigeon.
4+
15
## 2.0.14
26

37
* Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
// Copyright 2013 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
// Autogenerated from Pigeon (v3.1.5), do not edit directly.
5+
// See also: https://pub.dev/packages/pigeon
6+
7+
package io.flutter.plugins.pathprovider;
8+
9+
import android.util.Log;
10+
import androidx.annotation.NonNull;
11+
import androidx.annotation.Nullable;
12+
import io.flutter.plugin.common.BasicMessageChannel;
13+
import io.flutter.plugin.common.BinaryMessenger;
14+
import io.flutter.plugin.common.MessageCodec;
15+
import io.flutter.plugin.common.StandardMessageCodec;
16+
import java.util.ArrayList;
17+
import java.util.HashMap;
18+
import java.util.List;
19+
import java.util.Map;
20+
21+
/** Generated class from Pigeon. */
22+
@SuppressWarnings({"unused", "unchecked", "CodeBlock2Expr", "RedundantSuppression"})
23+
public class Messages {
24+
25+
public enum StorageDirectory {
26+
music(0),
27+
podcasts(1),
28+
ringtones(2),
29+
alarms(3),
30+
notifications(4),
31+
pictures(5),
32+
movies(6),
33+
downloads(7),
34+
dcim(8),
35+
documents(9);
36+
37+
private int index;
38+
39+
private StorageDirectory(final int index) {
40+
this.index = index;
41+
}
42+
}
43+
44+
private static class PathProviderApiCodec extends StandardMessageCodec {
45+
public static final PathProviderApiCodec INSTANCE = new PathProviderApiCodec();
46+
47+
private PathProviderApiCodec() {}
48+
}
49+
50+
/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
51+
public interface PathProviderApi {
52+
@Nullable
53+
String getTemporaryPath();
54+
55+
@Nullable
56+
String getApplicationSupportPath();
57+
58+
@Nullable
59+
String getApplicationDocumentsPath();
60+
61+
@Nullable
62+
String getExternalStoragePath();
63+
64+
@NonNull
65+
List<String> getExternalCachePaths();
66+
67+
@NonNull
68+
List<String> getExternalStoragePaths(@NonNull StorageDirectory directory);
69+
70+
/** The codec used by PathProviderApi. */
71+
static MessageCodec<Object> getCodec() {
72+
return PathProviderApiCodec.INSTANCE;
73+
}
74+
75+
/**
76+
* Sets up an instance of `PathProviderApi` to handle messages through the `binaryMessenger`.
77+
*/
78+
static void setup(BinaryMessenger binaryMessenger, PathProviderApi api) {
79+
{
80+
BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue();
81+
BasicMessageChannel<Object> channel =
82+
new BasicMessageChannel<>(
83+
binaryMessenger,
84+
"dev.flutter.pigeon.PathProviderApi.getTemporaryPath",
85+
getCodec(),
86+
taskQueue);
87+
if (api != null) {
88+
channel.setMessageHandler(
89+
(message, reply) -> {
90+
Map<String, Object> wrapped = new HashMap<>();
91+
try {
92+
String output = api.getTemporaryPath();
93+
wrapped.put("result", output);
94+
} catch (Error | RuntimeException exception) {
95+
wrapped.put("error", wrapError(exception));
96+
}
97+
reply.reply(wrapped);
98+
});
99+
} else {
100+
channel.setMessageHandler(null);
101+
}
102+
}
103+
{
104+
BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue();
105+
BasicMessageChannel<Object> channel =
106+
new BasicMessageChannel<>(
107+
binaryMessenger,
108+
"dev.flutter.pigeon.PathProviderApi.getApplicationSupportPath",
109+
getCodec(),
110+
taskQueue);
111+
if (api != null) {
112+
channel.setMessageHandler(
113+
(message, reply) -> {
114+
Map<String, Object> wrapped = new HashMap<>();
115+
try {
116+
String output = api.getApplicationSupportPath();
117+
wrapped.put("result", output);
118+
} catch (Error | RuntimeException exception) {
119+
wrapped.put("error", wrapError(exception));
120+
}
121+
reply.reply(wrapped);
122+
});
123+
} else {
124+
channel.setMessageHandler(null);
125+
}
126+
}
127+
{
128+
BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue();
129+
BasicMessageChannel<Object> channel =
130+
new BasicMessageChannel<>(
131+
binaryMessenger,
132+
"dev.flutter.pigeon.PathProviderApi.getApplicationDocumentsPath",
133+
getCodec(),
134+
taskQueue);
135+
if (api != null) {
136+
channel.setMessageHandler(
137+
(message, reply) -> {
138+
Map<String, Object> wrapped = new HashMap<>();
139+
try {
140+
String output = api.getApplicationDocumentsPath();
141+
wrapped.put("result", output);
142+
} catch (Error | RuntimeException exception) {
143+
wrapped.put("error", wrapError(exception));
144+
}
145+
reply.reply(wrapped);
146+
});
147+
} else {
148+
channel.setMessageHandler(null);
149+
}
150+
}
151+
{
152+
BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue();
153+
BasicMessageChannel<Object> channel =
154+
new BasicMessageChannel<>(
155+
binaryMessenger,
156+
"dev.flutter.pigeon.PathProviderApi.getExternalStoragePath",
157+
getCodec(),
158+
taskQueue);
159+
if (api != null) {
160+
channel.setMessageHandler(
161+
(message, reply) -> {
162+
Map<String, Object> wrapped = new HashMap<>();
163+
try {
164+
String output = api.getExternalStoragePath();
165+
wrapped.put("result", output);
166+
} catch (Error | RuntimeException exception) {
167+
wrapped.put("error", wrapError(exception));
168+
}
169+
reply.reply(wrapped);
170+
});
171+
} else {
172+
channel.setMessageHandler(null);
173+
}
174+
}
175+
{
176+
BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue();
177+
BasicMessageChannel<Object> channel =
178+
new BasicMessageChannel<>(
179+
binaryMessenger,
180+
"dev.flutter.pigeon.PathProviderApi.getExternalCachePaths",
181+
getCodec(),
182+
taskQueue);
183+
if (api != null) {
184+
channel.setMessageHandler(
185+
(message, reply) -> {
186+
Map<String, Object> wrapped = new HashMap<>();
187+
try {
188+
List<String> output = api.getExternalCachePaths();
189+
wrapped.put("result", output);
190+
} catch (Error | RuntimeException exception) {
191+
wrapped.put("error", wrapError(exception));
192+
}
193+
reply.reply(wrapped);
194+
});
195+
} else {
196+
channel.setMessageHandler(null);
197+
}
198+
}
199+
{
200+
BinaryMessenger.TaskQueue taskQueue = binaryMessenger.makeBackgroundTaskQueue();
201+
BasicMessageChannel<Object> channel =
202+
new BasicMessageChannel<>(
203+
binaryMessenger,
204+
"dev.flutter.pigeon.PathProviderApi.getExternalStoragePaths",
205+
getCodec(),
206+
taskQueue);
207+
if (api != null) {
208+
channel.setMessageHandler(
209+
(message, reply) -> {
210+
Map<String, Object> wrapped = new HashMap<>();
211+
try {
212+
ArrayList<Object> args = (ArrayList<Object>) message;
213+
StorageDirectory directoryArg =
214+
args.get(0) == null ? null : StorageDirectory.values()[(int) args.get(0)];
215+
if (directoryArg == null) {
216+
throw new NullPointerException("directoryArg unexpectedly null.");
217+
}
218+
List<String> output = api.getExternalStoragePaths(directoryArg);
219+
wrapped.put("result", output);
220+
} catch (Error | RuntimeException exception) {
221+
wrapped.put("error", wrapError(exception));
222+
}
223+
reply.reply(wrapped);
224+
});
225+
} else {
226+
channel.setMessageHandler(null);
227+
}
228+
}
229+
}
230+
}
231+
232+
private static Map<String, Object> wrapError(Throwable exception) {
233+
Map<String, Object> errorMap = new HashMap<>();
234+
errorMap.put("message", exception.toString());
235+
errorMap.put("code", exception.getClass().getSimpleName());
236+
errorMap.put(
237+
"details",
238+
"Cause: " + exception.getCause() + ", Stacktrace: " + Log.getStackTraceString(exception));
239+
return errorMap;
240+
}
241+
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy