1082815dcSEvan Bacon"use strict";
2082815dcSEvan Bacon
3082815dcSEvan BaconObject.defineProperty(exports, "__esModule", {
4082815dcSEvan Bacon  value: true
5082815dcSEvan Bacon});
6082815dcSEvan Baconexports.getAndroidModFileProviders = getAndroidModFileProviders;
7082815dcSEvan Baconexports.sortAndroidManifest = sortAndroidManifest;
8082815dcSEvan Baconexports.withAndroidBaseMods = withAndroidBaseMods;
9082815dcSEvan Baconfunction _fs() {
10082815dcSEvan Bacon  const data = require("fs");
11082815dcSEvan Bacon  _fs = function () {
12082815dcSEvan Bacon    return data;
13082815dcSEvan Bacon  };
14082815dcSEvan Bacon  return data;
15082815dcSEvan Bacon}
16082815dcSEvan Baconfunction _path() {
17082815dcSEvan Bacon  const data = _interopRequireDefault(require("path"));
18082815dcSEvan Bacon  _path = function () {
19082815dcSEvan Bacon    return data;
20082815dcSEvan Bacon  };
21082815dcSEvan Bacon  return data;
22082815dcSEvan Bacon}
23*8a424bebSJames Idefunction _createBaseMod() {
24*8a424bebSJames Ide  const data = require("./createBaseMod");
25*8a424bebSJames Ide  _createBaseMod = function () {
26*8a424bebSJames Ide    return data;
27*8a424bebSJames Ide  };
28*8a424bebSJames Ide  return data;
29*8a424bebSJames Ide}
30082815dcSEvan Baconfunction _android() {
31082815dcSEvan Bacon  const data = require("../android");
32082815dcSEvan Bacon  _android = function () {
33082815dcSEvan Bacon    return data;
34082815dcSEvan Bacon  };
35082815dcSEvan Bacon  return data;
36082815dcSEvan Bacon}
37082815dcSEvan Baconfunction _XML() {
38082815dcSEvan Bacon  const data = require("../utils/XML");
39082815dcSEvan Bacon  _XML = function () {
40082815dcSEvan Bacon    return data;
41082815dcSEvan Bacon  };
42082815dcSEvan Bacon  return data;
43082815dcSEvan Bacon}
44082815dcSEvan Baconfunction _sortObject() {
45082815dcSEvan Bacon  const data = require("../utils/sortObject");
46082815dcSEvan Bacon  _sortObject = function () {
47082815dcSEvan Bacon    return data;
48082815dcSEvan Bacon  };
49082815dcSEvan Bacon  return data;
50082815dcSEvan Bacon}
51082815dcSEvan Baconfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
52082815dcSEvan Baconconst {
53082815dcSEvan Bacon  readFile,
54082815dcSEvan Bacon  writeFile
55082815dcSEvan Bacon} = _fs().promises;
56082815dcSEvan Baconfunction getAndroidManifestTemplate(config) {
57082815dcSEvan Bacon  var _config$android$packa, _config$android;
58082815dcSEvan Bacon  // Keep in sync with https://github.com/expo/expo/blob/master/templates/expo-template-bare-minimum/android/app/src/main/AndroidManifest.xml
59082815dcSEvan Bacon  // TODO: Read from remote template when possible
60082815dcSEvan Bacon  return (0, _XML().parseXMLAsync)(`
61082815dcSEvan Bacon  <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="${(_config$android$packa = (_config$android = config.android) === null || _config$android === void 0 ? void 0 : _config$android.package) !== null && _config$android$packa !== void 0 ? _config$android$packa : 'com.placeholder.appid'}">
62082815dcSEvan Bacon
63082815dcSEvan Bacon    <uses-permission android:name="android.permission.INTERNET"/>
64082815dcSEvan Bacon    <!-- OPTIONAL PERMISSIONS, REMOVE WHATEVER YOU DO NOT NEED -->
65082815dcSEvan Bacon    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
66082815dcSEvan Bacon    <!-- These require runtime permissions on M -->
67082815dcSEvan Bacon    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
68082815dcSEvan Bacon    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
69082815dcSEvan Bacon    <!-- END OPTIONAL PERMISSIONS -->
70082815dcSEvan Bacon
71082815dcSEvan Bacon    <queries>
72082815dcSEvan Bacon      <!-- Support checking for http(s) links via the Linking API -->
73082815dcSEvan Bacon      <intent>
74082815dcSEvan Bacon        <action android:name="android.intent.action.VIEW" />
75082815dcSEvan Bacon        <category android:name="android.intent.category.BROWSABLE" />
76082815dcSEvan Bacon        <data android:scheme="https" />
77082815dcSEvan Bacon      </intent>
78082815dcSEvan Bacon    </queries>
79082815dcSEvan Bacon
80082815dcSEvan Bacon    <application
81082815dcSEvan Bacon      android:name=".MainApplication"
82082815dcSEvan Bacon      android:label="@string/app_name"
83082815dcSEvan Bacon      android:icon="@mipmap/ic_launcher"
84082815dcSEvan Bacon      android:roundIcon="@mipmap/ic_launcher_round"
85082815dcSEvan Bacon      android:allowBackup="false"
86082815dcSEvan Bacon      android:theme="@style/AppTheme"
87082815dcSEvan Bacon      android:usesCleartextTraffic="true"
88082815dcSEvan Bacon    >
89082815dcSEvan Bacon      <meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="YOUR-APP-URL-HERE"/>
90082815dcSEvan Bacon      <meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="YOUR-APP-SDK-VERSION-HERE"/>
91082815dcSEvan Bacon      <activity
92082815dcSEvan Bacon        android:name=".MainActivity"
93082815dcSEvan Bacon        android:label="@string/app_name"
94082815dcSEvan Bacon        android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
95082815dcSEvan Bacon        android:launchMode="singleTask"
96082815dcSEvan Bacon        android:windowSoftInputMode="adjustResize"
97082815dcSEvan Bacon        android:theme="@style/Theme.App.SplashScreen"
98082815dcSEvan Bacon      >
99082815dcSEvan Bacon        <intent-filter>
100082815dcSEvan Bacon          <action android:name="android.intent.action.MAIN"/>
101082815dcSEvan Bacon          <category android:name="android.intent.category.LAUNCHER"/>
102082815dcSEvan Bacon        </intent-filter>
103082815dcSEvan Bacon      </activity>
104082815dcSEvan Bacon      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
105082815dcSEvan Bacon    </application>
106082815dcSEvan Bacon  </manifest>
107082815dcSEvan Bacon  `);
108082815dcSEvan Bacon}
109082815dcSEvan Baconfunction sortAndroidManifest(obj) {
110082815dcSEvan Bacon  if (obj.manifest) {
111082815dcSEvan Bacon    // Reverse sort so application is last and permissions are first
112082815dcSEvan Bacon    obj.manifest = (0, _sortObject().sortObject)(obj.manifest, _sortObject().reverseSortString);
113082815dcSEvan Bacon    if (Array.isArray(obj.manifest['uses-permission'])) {
114082815dcSEvan Bacon      // Sort permissions alphabetically
115082815dcSEvan Bacon      obj.manifest['uses-permission'].sort((a, b) => {
116082815dcSEvan Bacon        if (a.$['android:name'] < b.$['android:name']) return -1;
117082815dcSEvan Bacon        if (a.$['android:name'] > b.$['android:name']) return 1;
118082815dcSEvan Bacon        return 0;
119082815dcSEvan Bacon      });
120082815dcSEvan Bacon    }
121082815dcSEvan Bacon    if (Array.isArray(obj.manifest.application)) {
122082815dcSEvan Bacon      // reverse sort applications so activity is towards the end and meta-data is towards the front.
123082815dcSEvan Bacon      obj.manifest.application = obj.manifest.application.map(application => {
124082815dcSEvan Bacon        application = (0, _sortObject().sortObjWithOrder)(application, ['meta-data', 'service', 'activity']);
125082815dcSEvan Bacon        if (Array.isArray(application['meta-data'])) {
126082815dcSEvan Bacon          // Sort metadata alphabetically
127082815dcSEvan Bacon          application['meta-data'].sort((a, b) => {
128082815dcSEvan Bacon            if (a.$['android:name'] < b.$['android:name']) return -1;
129082815dcSEvan Bacon            if (a.$['android:name'] > b.$['android:name']) return 1;
130082815dcSEvan Bacon            return 0;
131082815dcSEvan Bacon          });
132082815dcSEvan Bacon        }
133082815dcSEvan Bacon        return application;
134082815dcSEvan Bacon      });
135082815dcSEvan Bacon    }
136082815dcSEvan Bacon  }
137082815dcSEvan Bacon  return obj;
138082815dcSEvan Bacon}
139082815dcSEvan Baconconst defaultProviders = {
140082815dcSEvan Bacon  dangerous: (0, _createBaseMod().provider)({
141082815dcSEvan Bacon    getFilePath() {
142082815dcSEvan Bacon      return '';
143082815dcSEvan Bacon    },
144082815dcSEvan Bacon    async read() {
145082815dcSEvan Bacon      return {
146082815dcSEvan Bacon        filePath: '',
147082815dcSEvan Bacon        modResults: {}
148082815dcSEvan Bacon      };
149082815dcSEvan Bacon    },
150082815dcSEvan Bacon    async write() {}
151082815dcSEvan Bacon  }),
152082815dcSEvan Bacon  // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`
153082815dcSEvan Bacon  manifest: (0, _createBaseMod().provider)({
154082815dcSEvan Bacon    isIntrospective: true,
155082815dcSEvan Bacon    getFilePath({
156082815dcSEvan Bacon      modRequest: {
157082815dcSEvan Bacon        platformProjectRoot
158082815dcSEvan Bacon      }
159082815dcSEvan Bacon    }) {
160082815dcSEvan Bacon      return _path().default.join(platformProjectRoot, 'app/src/main/AndroidManifest.xml');
161082815dcSEvan Bacon    },
162082815dcSEvan Bacon    async read(filePath, config) {
163082815dcSEvan Bacon      try {
164082815dcSEvan Bacon        return await _android().Manifest.readAndroidManifestAsync(filePath);
165082815dcSEvan Bacon      } catch (error) {
166082815dcSEvan Bacon        if (!config.modRequest.introspect) {
167082815dcSEvan Bacon          throw error;
168082815dcSEvan Bacon        }
169082815dcSEvan Bacon      }
170082815dcSEvan Bacon      return await getAndroidManifestTemplate(config);
171082815dcSEvan Bacon    },
172082815dcSEvan Bacon    async write(filePath, {
173082815dcSEvan Bacon      modResults,
174082815dcSEvan Bacon      modRequest: {
175082815dcSEvan Bacon        introspect
176082815dcSEvan Bacon      }
177082815dcSEvan Bacon    }) {
178082815dcSEvan Bacon      if (introspect) return;
179082815dcSEvan Bacon      await _android().Manifest.writeAndroidManifestAsync(filePath, sortAndroidManifest(modResults));
180082815dcSEvan Bacon    }
181082815dcSEvan Bacon  }),
182082815dcSEvan Bacon  // Append a rule to supply gradle.properties data to mods on `mods.android.gradleProperties`
183082815dcSEvan Bacon  gradleProperties: (0, _createBaseMod().provider)({
184082815dcSEvan Bacon    isIntrospective: true,
185082815dcSEvan Bacon    getFilePath({
186082815dcSEvan Bacon      modRequest: {
187082815dcSEvan Bacon        platformProjectRoot
188082815dcSEvan Bacon      }
189082815dcSEvan Bacon    }) {
190082815dcSEvan Bacon      return _path().default.join(platformProjectRoot, 'gradle.properties');
191082815dcSEvan Bacon    },
192082815dcSEvan Bacon    async read(filePath, config) {
193082815dcSEvan Bacon      try {
194082815dcSEvan Bacon        return await _android().Properties.parsePropertiesFile(await readFile(filePath, 'utf8'));
195082815dcSEvan Bacon      } catch (error) {
196082815dcSEvan Bacon        if (!config.modRequest.introspect) {
197082815dcSEvan Bacon          throw error;
198082815dcSEvan Bacon        }
199082815dcSEvan Bacon      }
200082815dcSEvan Bacon      return [];
201082815dcSEvan Bacon    },
202082815dcSEvan Bacon    async write(filePath, {
203082815dcSEvan Bacon      modResults,
204082815dcSEvan Bacon      modRequest: {
205082815dcSEvan Bacon        introspect
206082815dcSEvan Bacon      }
207082815dcSEvan Bacon    }) {
208082815dcSEvan Bacon      if (introspect) return;
209082815dcSEvan Bacon      await writeFile(filePath, _android().Properties.propertiesListToString(modResults));
210082815dcSEvan Bacon    }
211082815dcSEvan Bacon  }),
212082815dcSEvan Bacon  // Append a rule to supply strings.xml data to mods on `mods.android.strings`
213082815dcSEvan Bacon  strings: (0, _createBaseMod().provider)({
214082815dcSEvan Bacon    isIntrospective: true,
215082815dcSEvan Bacon    async getFilePath({
216082815dcSEvan Bacon      modRequest: {
217082815dcSEvan Bacon        projectRoot,
218082815dcSEvan Bacon        introspect
219082815dcSEvan Bacon      }
220082815dcSEvan Bacon    }) {
221082815dcSEvan Bacon      try {
222082815dcSEvan Bacon        return await _android().Strings.getProjectStringsXMLPathAsync(projectRoot);
223082815dcSEvan Bacon      } catch (error) {
224082815dcSEvan Bacon        if (!introspect) {
225082815dcSEvan Bacon          throw error;
226082815dcSEvan Bacon        }
227082815dcSEvan Bacon      }
228082815dcSEvan Bacon      return '';
229082815dcSEvan Bacon    },
230082815dcSEvan Bacon    async read(filePath, config) {
231082815dcSEvan Bacon      try {
232082815dcSEvan Bacon        return await _android().Resources.readResourcesXMLAsync({
233082815dcSEvan Bacon          path: filePath
234082815dcSEvan Bacon        });
235082815dcSEvan Bacon      } catch (error) {
236082815dcSEvan Bacon        if (!config.modRequest.introspect) {
237082815dcSEvan Bacon          throw error;
238082815dcSEvan Bacon        }
239082815dcSEvan Bacon      }
240082815dcSEvan Bacon      return {
241082815dcSEvan Bacon        resources: {}
242082815dcSEvan Bacon      };
243082815dcSEvan Bacon    },
244082815dcSEvan Bacon    async write(filePath, {
245082815dcSEvan Bacon      modResults,
246082815dcSEvan Bacon      modRequest: {
247082815dcSEvan Bacon        introspect
248082815dcSEvan Bacon      }
249082815dcSEvan Bacon    }) {
250082815dcSEvan Bacon      if (introspect) return;
251082815dcSEvan Bacon      await (0, _XML().writeXMLAsync)({
252082815dcSEvan Bacon        path: filePath,
253082815dcSEvan Bacon        xml: modResults
254082815dcSEvan Bacon      });
255082815dcSEvan Bacon    }
256082815dcSEvan Bacon  }),
257082815dcSEvan Bacon  colors: (0, _createBaseMod().provider)({
258082815dcSEvan Bacon    isIntrospective: true,
259082815dcSEvan Bacon    async getFilePath({
260082815dcSEvan Bacon      modRequest: {
261082815dcSEvan Bacon        projectRoot,
262082815dcSEvan Bacon        introspect
263082815dcSEvan Bacon      }
264082815dcSEvan Bacon    }) {
265082815dcSEvan Bacon      try {
266082815dcSEvan Bacon        return await _android().Colors.getProjectColorsXMLPathAsync(projectRoot);
267082815dcSEvan Bacon      } catch (error) {
268082815dcSEvan Bacon        if (!introspect) {
269082815dcSEvan Bacon          throw error;
270082815dcSEvan Bacon        }
271082815dcSEvan Bacon      }
272082815dcSEvan Bacon      return '';
273082815dcSEvan Bacon    },
274082815dcSEvan Bacon    async read(filePath, {
275082815dcSEvan Bacon      modRequest: {
276082815dcSEvan Bacon        introspect
277082815dcSEvan Bacon      }
278082815dcSEvan Bacon    }) {
279082815dcSEvan Bacon      try {
280082815dcSEvan Bacon        return await _android().Resources.readResourcesXMLAsync({
281082815dcSEvan Bacon          path: filePath
282082815dcSEvan Bacon        });
283082815dcSEvan Bacon      } catch (error) {
284082815dcSEvan Bacon        if (!introspect) {
285082815dcSEvan Bacon          throw error;
286082815dcSEvan Bacon        }
287082815dcSEvan Bacon      }
288082815dcSEvan Bacon      return {
289082815dcSEvan Bacon        resources: {}
290082815dcSEvan Bacon      };
291082815dcSEvan Bacon    },
292082815dcSEvan Bacon    async write(filePath, {
293082815dcSEvan Bacon      modResults,
294082815dcSEvan Bacon      modRequest: {
295082815dcSEvan Bacon        introspect
296082815dcSEvan Bacon      }
297082815dcSEvan Bacon    }) {
298082815dcSEvan Bacon      if (introspect) return;
299082815dcSEvan Bacon      await (0, _XML().writeXMLAsync)({
300082815dcSEvan Bacon        path: filePath,
301082815dcSEvan Bacon        xml: modResults
302082815dcSEvan Bacon      });
303082815dcSEvan Bacon    }
304082815dcSEvan Bacon  }),
305082815dcSEvan Bacon  colorsNight: (0, _createBaseMod().provider)({
306082815dcSEvan Bacon    isIntrospective: true,
307082815dcSEvan Bacon    async getFilePath({
308082815dcSEvan Bacon      modRequest: {
309082815dcSEvan Bacon        projectRoot,
310082815dcSEvan Bacon        introspect
311082815dcSEvan Bacon      }
312082815dcSEvan Bacon    }) {
313082815dcSEvan Bacon      try {
314082815dcSEvan Bacon        return await _android().Colors.getProjectColorsXMLPathAsync(projectRoot, {
315082815dcSEvan Bacon          kind: 'values-night'
316082815dcSEvan Bacon        });
317082815dcSEvan Bacon      } catch (error) {
318082815dcSEvan Bacon        if (!introspect) {
319082815dcSEvan Bacon          throw error;
320082815dcSEvan Bacon        }
321082815dcSEvan Bacon      }
322082815dcSEvan Bacon      return '';
323082815dcSEvan Bacon    },
324082815dcSEvan Bacon    async read(filePath, config) {
325082815dcSEvan Bacon      try {
326082815dcSEvan Bacon        return await _android().Resources.readResourcesXMLAsync({
327082815dcSEvan Bacon          path: filePath
328082815dcSEvan Bacon        });
329082815dcSEvan Bacon      } catch (error) {
330082815dcSEvan Bacon        if (!config.modRequest.introspect) {
331082815dcSEvan Bacon          throw error;
332082815dcSEvan Bacon        }
333082815dcSEvan Bacon      }
334082815dcSEvan Bacon      return {
335082815dcSEvan Bacon        resources: {}
336082815dcSEvan Bacon      };
337082815dcSEvan Bacon    },
338082815dcSEvan Bacon    async write(filePath, {
339082815dcSEvan Bacon      modResults,
340082815dcSEvan Bacon      modRequest: {
341082815dcSEvan Bacon        introspect
342082815dcSEvan Bacon      }
343082815dcSEvan Bacon    }) {
344082815dcSEvan Bacon      if (introspect) return;
345082815dcSEvan Bacon      await (0, _XML().writeXMLAsync)({
346082815dcSEvan Bacon        path: filePath,
347082815dcSEvan Bacon        xml: modResults
348082815dcSEvan Bacon      });
349082815dcSEvan Bacon    }
350082815dcSEvan Bacon  }),
351082815dcSEvan Bacon  styles: (0, _createBaseMod().provider)({
352082815dcSEvan Bacon    isIntrospective: true,
353082815dcSEvan Bacon    async getFilePath({
354082815dcSEvan Bacon      modRequest: {
355082815dcSEvan Bacon        projectRoot,
356082815dcSEvan Bacon        introspect
357082815dcSEvan Bacon      }
358082815dcSEvan Bacon    }) {
359082815dcSEvan Bacon      try {
360082815dcSEvan Bacon        return await _android().Styles.getProjectStylesXMLPathAsync(projectRoot);
361082815dcSEvan Bacon      } catch (error) {
362082815dcSEvan Bacon        if (!introspect) {
363082815dcSEvan Bacon          throw error;
364082815dcSEvan Bacon        }
365082815dcSEvan Bacon      }
366082815dcSEvan Bacon      return '';
367082815dcSEvan Bacon    },
368082815dcSEvan Bacon    async read(filePath, config) {
369082815dcSEvan Bacon      var _styles$resources$$;
370082815dcSEvan Bacon      let styles = {
371082815dcSEvan Bacon        resources: {}
372082815dcSEvan Bacon      };
373082815dcSEvan Bacon      try {
374082815dcSEvan Bacon        // Adds support for `tools:x`
375082815dcSEvan Bacon        styles = await _android().Resources.readResourcesXMLAsync({
376082815dcSEvan Bacon          path: filePath,
377082815dcSEvan Bacon          fallback: `<?xml version="1.0" encoding="utf-8"?><resources xmlns:tools="http://schemas.android.com/tools"></resources>`
378082815dcSEvan Bacon        });
379082815dcSEvan Bacon      } catch (error) {
380082815dcSEvan Bacon        if (!config.modRequest.introspect) {
381082815dcSEvan Bacon          throw error;
382082815dcSEvan Bacon        }
383ee216927STomasz Sapeta      }
384082815dcSEvan Bacon
385ee216927STomasz Sapeta      // Ensure support for tools is added...
386082815dcSEvan Bacon      if (!styles.resources.$) {
387082815dcSEvan Bacon        styles.resources.$ = {};
388082815dcSEvan Bacon      }
389082815dcSEvan Bacon      if (!((_styles$resources$$ = styles.resources.$) !== null && _styles$resources$$ !== void 0 && _styles$resources$$['xmlns:tools'])) {
390082815dcSEvan Bacon        styles.resources.$['xmlns:tools'] = 'http://schemas.android.com/tools';
391082815dcSEvan Bacon      }
392082815dcSEvan Bacon      return styles;
393082815dcSEvan Bacon    },
394082815dcSEvan Bacon    async write(filePath, {
395082815dcSEvan Bacon      modResults,
396082815dcSEvan Bacon      modRequest: {
397082815dcSEvan Bacon        introspect
398082815dcSEvan Bacon      }
399082815dcSEvan Bacon    }) {
400082815dcSEvan Bacon      if (introspect) return;
401082815dcSEvan Bacon      await (0, _XML().writeXMLAsync)({
402082815dcSEvan Bacon        path: filePath,
403082815dcSEvan Bacon        xml: modResults
404082815dcSEvan Bacon      });
405082815dcSEvan Bacon    }
406082815dcSEvan Bacon  }),
407082815dcSEvan Bacon  projectBuildGradle: (0, _createBaseMod().provider)({
408082815dcSEvan Bacon    getFilePath({
409082815dcSEvan Bacon      modRequest: {
410082815dcSEvan Bacon        projectRoot
411082815dcSEvan Bacon      }
412082815dcSEvan Bacon    }) {
413082815dcSEvan Bacon      return _android().Paths.getProjectBuildGradleFilePath(projectRoot);
414082815dcSEvan Bacon    },
415082815dcSEvan Bacon    async read(filePath) {
416082815dcSEvan Bacon      return _android().Paths.getFileInfo(filePath);
417082815dcSEvan Bacon    },
418082815dcSEvan Bacon    async write(filePath, {
419082815dcSEvan Bacon      modResults: {
420082815dcSEvan Bacon        contents
421082815dcSEvan Bacon      }
422082815dcSEvan Bacon    }) {
423082815dcSEvan Bacon      await writeFile(filePath, contents);
424082815dcSEvan Bacon    }
425082815dcSEvan Bacon  }),
426082815dcSEvan Bacon  settingsGradle: (0, _createBaseMod().provider)({
427082815dcSEvan Bacon    getFilePath({
428082815dcSEvan Bacon      modRequest: {
429082815dcSEvan Bacon        projectRoot
430082815dcSEvan Bacon      }
431082815dcSEvan Bacon    }) {
432082815dcSEvan Bacon      return _android().Paths.getSettingsGradleFilePath(projectRoot);
433082815dcSEvan Bacon    },
434082815dcSEvan Bacon    async read(filePath) {
435082815dcSEvan Bacon      return _android().Paths.getFileInfo(filePath);
436082815dcSEvan Bacon    },
437082815dcSEvan Bacon    async write(filePath, {
438082815dcSEvan Bacon      modResults: {
439082815dcSEvan Bacon        contents
440082815dcSEvan Bacon      }
441082815dcSEvan Bacon    }) {
442082815dcSEvan Bacon      await writeFile(filePath, contents);
443082815dcSEvan Bacon    }
444082815dcSEvan Bacon  }),
445082815dcSEvan Bacon  appBuildGradle: (0, _createBaseMod().provider)({
446082815dcSEvan Bacon    getFilePath({
447082815dcSEvan Bacon      modRequest: {
448082815dcSEvan Bacon        projectRoot
449082815dcSEvan Bacon      }
450082815dcSEvan Bacon    }) {
451082815dcSEvan Bacon      return _android().Paths.getAppBuildGradleFilePath(projectRoot);
452082815dcSEvan Bacon    },
453082815dcSEvan Bacon    async read(filePath) {
454082815dcSEvan Bacon      return _android().Paths.getFileInfo(filePath);
455082815dcSEvan Bacon    },
456082815dcSEvan Bacon    async write(filePath, {
457082815dcSEvan Bacon      modResults: {
458082815dcSEvan Bacon        contents
459082815dcSEvan Bacon      }
460082815dcSEvan Bacon    }) {
461082815dcSEvan Bacon      await writeFile(filePath, contents);
462082815dcSEvan Bacon    }
463082815dcSEvan Bacon  }),
464082815dcSEvan Bacon  mainActivity: (0, _createBaseMod().provider)({
465082815dcSEvan Bacon    getFilePath({
466082815dcSEvan Bacon      modRequest: {
467082815dcSEvan Bacon        projectRoot
468082815dcSEvan Bacon      }
469082815dcSEvan Bacon    }) {
470082815dcSEvan Bacon      return _android().Paths.getProjectFilePath(projectRoot, 'MainActivity');
471082815dcSEvan Bacon    },
472082815dcSEvan Bacon    async read(filePath) {
473082815dcSEvan Bacon      return _android().Paths.getFileInfo(filePath);
474082815dcSEvan Bacon    },
475082815dcSEvan Bacon    async write(filePath, {
476082815dcSEvan Bacon      modResults: {
477082815dcSEvan Bacon        contents
478082815dcSEvan Bacon      }
479082815dcSEvan Bacon    }) {
480082815dcSEvan Bacon      await writeFile(filePath, contents);
481082815dcSEvan Bacon    }
482082815dcSEvan Bacon  }),
483082815dcSEvan Bacon  mainApplication: (0, _createBaseMod().provider)({
484082815dcSEvan Bacon    getFilePath({
485082815dcSEvan Bacon      modRequest: {
486082815dcSEvan Bacon        projectRoot
487082815dcSEvan Bacon      }
488082815dcSEvan Bacon    }) {
489082815dcSEvan Bacon      return _android().Paths.getProjectFilePath(projectRoot, 'MainApplication');
490082815dcSEvan Bacon    },
491082815dcSEvan Bacon    async read(filePath) {
492082815dcSEvan Bacon      return _android().Paths.getFileInfo(filePath);
493082815dcSEvan Bacon    },
494082815dcSEvan Bacon    async write(filePath, {
495082815dcSEvan Bacon      modResults: {
496082815dcSEvan Bacon        contents
497082815dcSEvan Bacon      }
498082815dcSEvan Bacon    }) {
499082815dcSEvan Bacon      await writeFile(filePath, contents);
500082815dcSEvan Bacon    }
501082815dcSEvan Bacon  })
502082815dcSEvan Bacon};
503082815dcSEvan Baconfunction withAndroidBaseMods(config, {
504082815dcSEvan Bacon  providers,
505082815dcSEvan Bacon  ...props
506082815dcSEvan Bacon} = {}) {
507ee216927STomasz Sapeta  return (0, _createBaseMod().withGeneratedBaseMods)(config, {
508ee216927STomasz Sapeta    ...props,
509082815dcSEvan Bacon    platform: 'android',
510082815dcSEvan Bacon    providers: providers !== null && providers !== void 0 ? providers : getAndroidModFileProviders()
511082815dcSEvan Bacon  });
512082815dcSEvan Bacon}
513082815dcSEvan Baconfunction getAndroidModFileProviders() {
514082815dcSEvan Bacon  return defaultProviders;
515082815dcSEvan Bacon}
516082815dcSEvan Bacon//# sourceMappingURL=withAndroidBaseMods.js.map