final code
31
.dart_tool/extension_discovery/README.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
Extension Discovery Cache
|
||||||
|
=========================
|
||||||
|
|
||||||
|
This folder is used by `package:extension_discovery` to cache lists of
|
||||||
|
packages that contains extensions for other packages.
|
||||||
|
|
||||||
|
DO NOT USE THIS FOLDER
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
* Do not read (or rely) the contents of this folder.
|
||||||
|
* Do write to this folder.
|
||||||
|
|
||||||
|
If you're interested in the lists of extensions stored in this folder use the
|
||||||
|
API offered by package `extension_discovery` to get this information.
|
||||||
|
|
||||||
|
If this package doesn't work for your use-case, then don't try to read the
|
||||||
|
contents of this folder. It may change, and will not remain stable.
|
||||||
|
|
||||||
|
Use package `extension_discovery`
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
If you want to access information from this folder.
|
||||||
|
|
||||||
|
Feel free to delete this folder
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
Files in this folder act as a cache, and the cache is discarded if the files
|
||||||
|
are older than the modification time of `.dart_tool/package_config.json`.
|
||||||
|
|
||||||
|
Hence, it should never be necessary to clear this cache manually, if you find a
|
||||||
|
need to do please file a bug.
|
||||||
1
.dart_tool/extension_discovery/vs_code.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":2,"entries":[{"package":"grocery_app","rootUri":"../","packageUri":"lib/"}]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":[],"outputs":[]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/armeabi-v7a/app.so"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/build/app/intermediates/flutter/release/armeabi-v7a/app.so"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/arm64-v8a/app.so"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/build/app/intermediates/flutter/release/arm64-v8a/app.so"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/x86_64/app.so"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/build/app/intermediates/flutter/release/x86_64/app.so"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/development/flutter/packages/flutter_tools/lib/src/build_system/targets/android.dart","/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/app.dill","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/armeabi-v7a/app.so"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/development/flutter/packages/flutter_tools/lib/src/build_system/targets/android.dart","/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/app.dill","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/arm64-v8a/app.so"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/development/flutter/packages/flutter_tools/lib/src/build_system/targets/android.dart","/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/app.dill","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/x86_64/app.so"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
:
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
:
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
:
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
:
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
:
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
:
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/package_config_subset"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/dart_plugin_registrant.dart"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":[],"outputs":[]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/program.dill","/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/native_assets.dill"],"outputs":[]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/native_assets.yaml","/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/package_config_subset","/Users/apple/Documents/development/flutter/packages/flutter_tools/lib/src/build_system/targets/common.dart","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version","/Users/apple/Documents/development/flutter/bin/internal/engine.version"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/native_assets.dill"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
/Users/apple/Documents/Allflutter\ /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/native_assets.yaml:
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"inputs":["/Users/apple/Documents/development/flutter/packages/flutter_tools/lib/src/build_system/targets/native_assets.dart","/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/package_config_subset"],"outputs":["/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/native_assets.yaml","/Users/apple/Documents/Allflutter /freelancing/groceryApp/.dart_tool/flutter_build/75300ac3d4d5df0759c921f3ebfaeb3d/native_assets.yaml"]}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
format-version:
|
||||||
|
- 1
|
||||||
|
- 0
|
||||||
|
- 0
|
||||||
|
native-assets: {}
|
||||||
452
.dart_tool/flutter_build/dart_plugin_registrant.dart
Normal file
@@ -0,0 +1,452 @@
|
|||||||
|
//
|
||||||
|
// Generated file. Do not edit.
|
||||||
|
// This file is generated from template in file `flutter_tools/lib/src/flutter_plugins.dart`.
|
||||||
|
//
|
||||||
|
|
||||||
|
// @dart = 3.4
|
||||||
|
|
||||||
|
import 'dart:io'; // flutter_ignore: dart_io_import.
|
||||||
|
import 'package:flutter_inappwebview_android/flutter_inappwebview_android.dart';
|
||||||
|
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
|
import 'package:geocoding_android/geocoding_android.dart';
|
||||||
|
import 'package:geolocator_android/geolocator_android.dart';
|
||||||
|
import 'package:google_maps_flutter_android/google_maps_flutter_android.dart';
|
||||||
|
import 'package:image_picker_android/image_picker_android.dart';
|
||||||
|
import 'package:path_provider_android/path_provider_android.dart';
|
||||||
|
import 'package:shared_preferences_android/shared_preferences_android.dart';
|
||||||
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
import 'package:url_launcher_android/url_launcher_android.dart';
|
||||||
|
import 'package:flutter_inappwebview_ios/flutter_inappwebview_ios.dart';
|
||||||
|
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
|
import 'package:geocoding_ios/geocoding_ios.dart';
|
||||||
|
import 'package:geolocator_apple/geolocator_apple.dart';
|
||||||
|
import 'package:google_maps_flutter_ios/google_maps_flutter_ios.dart';
|
||||||
|
import 'package:image_picker_ios/image_picker_ios.dart';
|
||||||
|
import 'package:path_provider_foundation/path_provider_foundation.dart';
|
||||||
|
import 'package:shared_preferences_foundation/shared_preferences_foundation.dart';
|
||||||
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
import 'package:url_launcher_ios/url_launcher_ios.dart';
|
||||||
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
||||||
|
import 'package:file_selector_linux/file_selector_linux.dart';
|
||||||
|
import 'package:flutter_local_notifications_linux/flutter_local_notifications_linux.dart';
|
||||||
|
import 'package:image_picker_linux/image_picker_linux.dart';
|
||||||
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
|
import 'package:path_provider_linux/path_provider_linux.dart';
|
||||||
|
import 'package:shared_preferences_linux/shared_preferences_linux.dart';
|
||||||
|
import 'package:url_launcher_linux/url_launcher_linux.dart';
|
||||||
|
import 'package:file_selector_macos/file_selector_macos.dart';
|
||||||
|
import 'package:flutter_inappwebview_macos/flutter_inappwebview_macos.dart';
|
||||||
|
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||||
|
import 'package:geolocator_apple/geolocator_apple.dart';
|
||||||
|
import 'package:image_picker_macos/image_picker_macos.dart';
|
||||||
|
import 'package:path_provider_foundation/path_provider_foundation.dart';
|
||||||
|
import 'package:shared_preferences_foundation/shared_preferences_foundation.dart';
|
||||||
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
import 'package:url_launcher_macos/url_launcher_macos.dart';
|
||||||
|
import 'package:file_selector_windows/file_selector_windows.dart';
|
||||||
|
import 'package:image_picker_windows/image_picker_windows.dart';
|
||||||
|
import 'package:package_info_plus/package_info_plus.dart';
|
||||||
|
import 'package:path_provider_windows/path_provider_windows.dart';
|
||||||
|
import 'package:shared_preferences_windows/shared_preferences_windows.dart';
|
||||||
|
import 'package:url_launcher_windows/url_launcher_windows.dart';
|
||||||
|
|
||||||
|
@pragma('vm:entry-point')
|
||||||
|
class _PluginRegistrant {
|
||||||
|
|
||||||
|
@pragma('vm:entry-point')
|
||||||
|
static void register() {
|
||||||
|
if (Platform.isAndroid) {
|
||||||
|
try {
|
||||||
|
AndroidInAppWebViewPlatform.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`flutter_inappwebview_android` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
AndroidFlutterLocalNotificationsPlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`flutter_local_notifications` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
GeocodingAndroid.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`geocoding_android` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
GeolocatorAndroid.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`geolocator_android` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
GoogleMapsFlutterAndroid.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`google_maps_flutter_android` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
ImagePickerAndroid.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`image_picker_android` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
PathProviderAndroid.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`path_provider_android` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SharedPreferencesAndroid.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`shared_preferences_android` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SqflitePlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`sqflite` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
UrlLauncherAndroid.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`url_launcher_android` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (Platform.isIOS) {
|
||||||
|
try {
|
||||||
|
IOSInAppWebViewPlatform.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`flutter_inappwebview_ios` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
IOSFlutterLocalNotificationsPlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`flutter_local_notifications` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
GeocodingIOS.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`geocoding_ios` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
GeolocatorApple.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`geolocator_apple` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
GoogleMapsFlutterIOS.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`google_maps_flutter_ios` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
ImagePickerIOS.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`image_picker_ios` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
PathProviderFoundation.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`path_provider_foundation` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SharedPreferencesFoundation.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`shared_preferences_foundation` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SqflitePlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`sqflite` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
UrlLauncherIOS.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`url_launcher_ios` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (Platform.isLinux) {
|
||||||
|
try {
|
||||||
|
ConnectivityPlusLinuxPlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`connectivity_plus` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
FileSelectorLinux.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`file_selector_linux` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
LinuxFlutterLocalNotificationsPlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`flutter_local_notifications_linux` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
ImagePickerLinux.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`image_picker_linux` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
PackageInfoPlusLinuxPlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`package_info_plus` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
PathProviderLinux.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`path_provider_linux` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SharedPreferencesLinux.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`shared_preferences_linux` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
UrlLauncherLinux.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`url_launcher_linux` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (Platform.isMacOS) {
|
||||||
|
try {
|
||||||
|
FileSelectorMacOS.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`file_selector_macos` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
MacOSInAppWebViewPlatform.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`flutter_inappwebview_macos` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
MacOSFlutterLocalNotificationsPlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`flutter_local_notifications` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
GeolocatorApple.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`geolocator_apple` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
ImagePickerMacOS.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`image_picker_macos` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
PathProviderFoundation.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`path_provider_foundation` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SharedPreferencesFoundation.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`shared_preferences_foundation` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SqflitePlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`sqflite` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
UrlLauncherMacOS.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`url_launcher_macos` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (Platform.isWindows) {
|
||||||
|
try {
|
||||||
|
FileSelectorWindows.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`file_selector_windows` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
ImagePickerWindows.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`image_picker_windows` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
PackageInfoPlusWindowsPlugin.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`package_info_plus` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
PathProviderWindows.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`path_provider_windows` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
SharedPreferencesWindows.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`shared_preferences_windows` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
UrlLauncherWindows.registerWith();
|
||||||
|
} catch (err) {
|
||||||
|
print(
|
||||||
|
'`url_launcher_windows` threw an error: $err. '
|
||||||
|
'The app may not function as expected until you remove this plugin from pubspec.yaml'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
5
android/.idea/gradle.xml
generated
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
|
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
@@ -19,7 +20,10 @@
|
|||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.3/android" />
|
||||||
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/firebase_core-3.13.0/android" />
|
||||||
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/firebase_messaging-15.2.5/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_inappwebview_android-1.0.13/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_inappwebview_android-1.0.13/android" />
|
||||||
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_local_notifications-18.0.1/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.22/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/fluttertoast-8.2.11/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/geocoding_android-3.3.1/android" />
|
||||||
@@ -29,6 +33,7 @@
|
|||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+12/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/image_picker_android-0.8.12+12/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/package_info_plus-4.2.0/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/path_provider_android-2.2.10/android" />
|
||||||
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/permission_handler_android-12.0.13/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/shared_preferences_android-2.3.2/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/sqflite-2.3.3+1/android" />
|
||||||
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.9/android" />
|
<option value="$USER_HOME$/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.9/android" />
|
||||||
|
|||||||
1
android/.idea/misc.xml
generated
@@ -1,4 +1,3 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
/**
|
||||||
|
* Automatically generated file. DO NOT MODIFY
|
||||||
|
*/
|
||||||
|
package com.frontshop.userapp;
|
||||||
|
|
||||||
|
public final class BuildConfig {
|
||||||
|
public static final boolean DEBUG = false;
|
||||||
|
public static final String APPLICATION_ID = "com.frontshop.userapp";
|
||||||
|
public static final String BUILD_TYPE = "release";
|
||||||
|
public static final int VERSION_CODE = 5;
|
||||||
|
public static final String VERSION_NAME = "1.0.3";
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
-keep class android.app.Application { <init>(); }
|
||||||
|
-keep class androidx.core.app.CoreComponentFactory { <init>(); }
|
||||||
|
-keep class androidx.profileinstaller.ProfileInstallReceiver { <init>(); }
|
||||||
|
-keep class androidx.startup.InitializationProvider { <init>(); }
|
||||||
|
-keep class com.baseflow.geolocator.GeolocatorLocationService { <init>(); }
|
||||||
|
-keep class com.frontshop.userapp.MainActivity { <init>(); }
|
||||||
|
-keep class com.google.android.datatransport.runtime.backends.TransportBackendDiscovery { <init>(); }
|
||||||
|
-keep class com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver { <init>(); }
|
||||||
|
-keep class com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService { <init>(); }
|
||||||
|
-keep class com.google.android.gms.common.api.GoogleApiActivity { <init>(); }
|
||||||
|
-keep class com.google.android.gms.metadata.ModuleDependencies { <init>(); }
|
||||||
|
-keep class com.google.firebase.components.ComponentDiscoveryService { <init>(); }
|
||||||
|
-keep class com.google.firebase.iid.FirebaseInstanceIdReceiver { <init>(); }
|
||||||
|
-keep class com.google.firebase.messaging.FirebaseMessagingService { <init>(); }
|
||||||
|
-keep class com.google.firebase.provider.FirebaseInitProvider { <init>(); }
|
||||||
|
-keep class com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ActionBroadcastReceiver { <init>(); }
|
||||||
|
-keep class com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ChromeCustomTabsActivity { <init>(); }
|
||||||
|
-keep class com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ChromeCustomTabsActivitySingleInstance { <init>(); }
|
||||||
|
-keep class com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.TrustedWebActivity { <init>(); }
|
||||||
|
-keep class com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.TrustedWebActivitySingleInstance { <init>(); }
|
||||||
|
-keep class com.pichillilorenzo.flutter_inappwebview_android.in_app_browser.InAppBrowserActivity { <init>(); }
|
||||||
|
-keep class io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingBackgroundService { <init>(); }
|
||||||
|
-keep class io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingInitProvider { <init>(); }
|
||||||
|
-keep class io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingReceiver { <init>(); }
|
||||||
|
-keep class io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingService { <init>(); }
|
||||||
|
-keep class io.flutter.plugins.imagepicker.ImagePickerFileProvider { <init>(); }
|
||||||
|
-keep class io.flutter.plugins.urllauncher.WebViewActivity { <init>(); }
|
||||||
|
-keep class android.widget.SearchView { <init>(android.content.Context); }
|
||||||
|
|
||||||
|
-keep class android.widget.Space { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.app.AlertController$RecycleListView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.view.menu.ActionMenuItemView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.view.menu.ExpandedMenuView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.view.menu.ListMenuItemView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.ActionBarContainer { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.ActionBarContextView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.ActionBarOverlayLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.ActionMenuView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.ActivityChooserView$InnerLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.AlertDialogLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.ButtonBarLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.ContentFrameLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.DialogTitle { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.FitWindowsFrameLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.FitWindowsLinearLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.SearchView$SearchAutoComplete { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.Toolbar { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.appcompat.widget.ViewStubCompat { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.browser.browseractions.BrowserActionsFallbackMenuView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class androidx.core.widget.NestedScrollView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class com.google.maps.android.ui.RotationLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class com.pichillilorenzo.flutter_inappwebview_android.pull_to_refresh.PullToRefreshLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class com.pichillilorenzo.flutter_inappwebview_android.webview.in_app_webview.InAppWebView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keepclassmembers class * { *** closeButtonClicked(android.view.MenuItem); }
|
||||||
|
|
||||||
|
-keepclassmembers class * { *** goBackButtonClicked(android.view.MenuItem); }
|
||||||
|
|
||||||
|
-keepclassmembers class * { *** goForwardButtonClicked(android.view.MenuItem); }
|
||||||
|
|
||||||
|
-keepclassmembers class * { *** reloadButtonClicked(android.view.MenuItem); }
|
||||||
|
|
||||||
|
-keepclassmembers class * { *** shareButtonClicked(android.view.MenuItem); }
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
appMetadataVersion=1.1
|
||||||
|
androidGradlePluginVersion=7.3.0
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"assets/fonts/Nunito-Bold.ttf":["assets/fonts/Nunito-Bold.ttf"],"assets/fonts/Nunito-BoldItalic.ttf":["assets/fonts/Nunito-BoldItalic.ttf"],"assets/fonts/Nunito-ExtraBold.ttf":["assets/fonts/Nunito-ExtraBold.ttf"],"assets/fonts/Nunito-ExtraBoldItalic.ttf":["assets/fonts/Nunito-ExtraBoldItalic.ttf"],"assets/fonts/Nunito-Italic.ttf":["assets/fonts/Nunito-Italic.ttf"],"assets/fonts/Nunito-Light.ttf":["assets/fonts/Nunito-Light.ttf"],"assets/fonts/Nunito-LightItalic.ttf":["assets/fonts/Nunito-LightItalic.ttf"],"assets/fonts/Nunito-Medium.ttf":["assets/fonts/Nunito-Medium.ttf"],"assets/fonts/Nunito-MediumItalic.ttf":["assets/fonts/Nunito-MediumItalic.ttf"],"assets/fonts/Nunito-Regular.ttf":["assets/fonts/Nunito-Regular.ttf"],"assets/fonts/Nunito-SemiBold.ttf":["assets/fonts/Nunito-SemiBold.ttf"],"assets/fonts/Nunito-SemiBoldItalic.ttf":["assets/fonts/Nunito-SemiBoldItalic.ttf"],"assets/images/cart.jpg":["assets/images/cart.jpg"],"assets/images/cartempty.jpg":["assets/images/cartempty.jpg"],"assets/images/pngs/onboard_man.png":["assets/images/pngs/onboard_man.png"],"assets/images/pngs/placeHolder.png":["assets/images/pngs/placeHolder.png"],"assets/images/pngs/splash.png":["assets/images/pngs/splash.png"],"assets/images/svgs/add.svg":["assets/images/svgs/add.svg"],"assets/images/svgs/back.svg":["assets/images/svgs/back.svg"],"assets/images/svgs/remove.svg":["assets/images/svgs/remove.svg"],"assets/images/svgs/splash.svg":["assets/images/svgs/splash.svg"],"assets/images/wishlist.jpg":["assets/images/wishlist.jpg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_google_places/assets/google_black.png":["packages/flutter_google_places/assets/google_black.png"],"packages/flutter_google_places/assets/google_white.png":["packages/flutter_google_places/assets/google_white.png"],"packages/flutter_inappwebview/assets/t_rex_runner/t-rex.css":["packages/flutter_inappwebview/assets/t_rex_runner/t-rex.css"],"packages/flutter_inappwebview/assets/t_rex_runner/t-rex.html":["packages/flutter_inappwebview/assets/t_rex_runner/t-rex.html"],"packages/flutter_inappwebview_web/assets/web/web_support.js":["packages/flutter_inappwebview_web/assets/web/web_support.js"],"packages/flutter_rating_stars/assets/star_off.png":["packages/flutter_rating_stars/assets/star_off.png"],"packages/fluttertoast/assets/toastify.css":["packages/fluttertoast/assets/toastify.css"],"packages/fluttertoast/assets/toastify.js":["packages/fluttertoast/assets/toastify.js"],"packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf":["packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"Nunito","fonts":[{"asset":"assets/fonts/Nunito-Regular.ttf"},{"asset":"assets/fonts/Nunito-Italic.ttf"},{"asset":"assets/fonts/Nunito-Light.ttf"},{"asset":"assets/fonts/Nunito-LightItalic.ttf"},{"asset":"assets/fonts/Nunito-Medium.ttf"},{"asset":"assets/fonts/Nunito-MediumItalic.ttf"},{"asset":"assets/fonts/Nunito-SemiBold.ttf"},{"asset":"assets/fonts/Nunito-SemiBoldItalic.ttf"},{"asset":"assets/fonts/Nunito-Bold.ttf"},{"asset":"assets/fonts/Nunito-BoldItalic.ttf"},{"asset":"assets/fonts/Nunito-ExtraBold.ttf"},{"asset":"assets/fonts/Nunito-ExtraBoldItalic.ttf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]},{"family":"packages/material_design_icons_flutter/Material Design Icons","fonts":[{"asset":"packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf"}]}]
|
||||||
BIN
build/app/intermediates/assets/release/flutter_assets/NOTICES.Z
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 1.2 MiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 148 KiB |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M15 7H9V1C9 0.447719 8.55228 0 8 0C7.44772 0 7 0.447719 7 1V7H1C0.447719 7 0 7.44772 0 8C0 8.55228 0.447719 9 1 9H7V15C7 15.5523 7.44772 16 8 16C8.55228 16 9 15.5523 9 15V9H15C15.5523 9 16 8.55228 16 8C16 7.44772 15.5523 7 15 7Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 357 B |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="9" height="18" viewBox="0 0 9 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M8.00009 16.92L1.48009 10.4C0.710088 9.62999 0.710088 8.36999 1.48009 7.59999L8.00009 1.07999" stroke="#1A1A1A" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 313 B |
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="12" height="3" viewBox="0 0 12 3" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<line x1="1.25" y1="1.75" x2="10.75" y2="1.75" stroke="#979899" stroke-width="2.5" stroke-linecap="round"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 209 B |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 1.6 MiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
@@ -0,0 +1,59 @@
|
|||||||
|
#main-frame-error {
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0 10%;
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.55;
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 600px;
|
||||||
|
padding-top: 100px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
#main-content {
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.55;
|
||||||
|
margin: 0 auto;
|
||||||
|
max-width: 600px;
|
||||||
|
padding-top: 100px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
#t-rex-icon {
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.55;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: 100%;
|
||||||
|
height: 72px;
|
||||||
|
margin: 0 0 40px;
|
||||||
|
width: 72px;
|
||||||
|
display: inline-block;
|
||||||
|
content: -webkit-image-set(
|
||||||
|
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABIAQMAAABvIyEEAAAABlBMVEUAAABTU1OoaSf/AAAAAXRSTlMAQObYZgAAAGxJREFUeF7tyMEJwkAQRuFf5ipMKxYQiJ3Z2nSwrWwBA0+DQZcdxEOueaePp9+dQZFB7GpUcURSVU66yVNFj6LFICatThZB6r/ko/pbRpUgilY0Cbw5sNmb9txGXUKyuH7eV25x39DtJXUNPQGJtWFV+BT/QAAAAABJRU5ErkJggg==)
|
||||||
|
1x,
|
||||||
|
url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQBAMAAAAVaP+LAAAAGFBMVEUAAABTU1NNTU1TU1NPT09SUlJSUlJTU1O8B7DEAAAAB3RSTlMAoArVKvVgBuEdKgAAAJ1JREFUeF7t1TEOwyAMQNG0Q6/UE+RMXD9d/tC6womIFSL9P+MnAYOXeTIzMzMzMzMzaz8J9Ri6HoITmuHXhISE8nEh9yxDh55aCEUoTGbbQwjqHwIkRAEiIaG0+0AA9VBMaE89Rogeoww936MQrWdBr4GN/z0IAdQ6nQ/FIpRXDwHcA+JIJcQowQAlFUA0MfQpXLlVQfkzR4igS6ENjknm/wiaGhsAAAAASUVORK5CYII=)
|
||||||
|
2x
|
||||||
|
);
|
||||||
|
position: relative;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
#offline-resources {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#main-frame-error > .runner-container {
|
||||||
|
height: 150px;
|
||||||
|
max-width: 600px;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
top: 35px;
|
||||||
|
width: 44px;
|
||||||
|
}
|
||||||
|
#main-frame-error > .controller {
|
||||||
|
background: rgba(247, 247, 247, 0.1);
|
||||||
|
height: 100vh;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 100vw;
|
||||||
|
z-index: 9;
|
||||||
|
}
|
||||||
|
#main-frame-error .hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
@@ -0,0 +1,589 @@
|
|||||||
|
window.flutter_inappwebview = {
|
||||||
|
webViews: {},
|
||||||
|
createFlutterInAppWebView: function(viewId, iframeId) {
|
||||||
|
var webView = {
|
||||||
|
viewId: viewId,
|
||||||
|
iframeId: iframeId,
|
||||||
|
iframe: null,
|
||||||
|
iframeContainer: null,
|
||||||
|
windowAutoincrementId: 0,
|
||||||
|
windows: {},
|
||||||
|
isFullscreen: false,
|
||||||
|
documentTitle: null,
|
||||||
|
functionMap: {},
|
||||||
|
settings: {},
|
||||||
|
disableContextMenuHandler: function(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
prepare: function(settings) {
|
||||||
|
webView.settings = settings;
|
||||||
|
var iframe = document.getElementById(iframeId);
|
||||||
|
var iframeContainer = document.getElementById(iframeId + '-container');
|
||||||
|
|
||||||
|
document.addEventListener('fullscreenchange', function(event) {
|
||||||
|
// document.fullscreenElement will point to the element that
|
||||||
|
// is in fullscreen mode if there is one. If there isn't one,
|
||||||
|
// the value of the property is null.
|
||||||
|
if (document.fullscreenElement && document.fullscreenElement.id == iframeId) {
|
||||||
|
webView.isFullscreen = true;
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onEnterFullscreen', viewId);
|
||||||
|
} else if (!document.fullscreenElement && webView.isFullscreen) {
|
||||||
|
webView.isFullscreen = false;
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onExitFullscreen', viewId);
|
||||||
|
} else {
|
||||||
|
webView.isFullscreen = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (iframe != null) {
|
||||||
|
webView.iframe = iframe;
|
||||||
|
webView.iframeContainer = iframeContainer;
|
||||||
|
iframe.addEventListener('load', function (event) {
|
||||||
|
webView.windowAutoincrementId = 0;
|
||||||
|
webView.windows = {};
|
||||||
|
|
||||||
|
var url = iframe.src;
|
||||||
|
try {
|
||||||
|
url = iframe.contentWindow.location.href;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onLoadStart', viewId, [url]);
|
||||||
|
|
||||||
|
try {
|
||||||
|
var oldLogs = {
|
||||||
|
'log': iframe.contentWindow.console.log,
|
||||||
|
'debug': iframe.contentWindow.console.debug,
|
||||||
|
'error': iframe.contentWindow.console.error,
|
||||||
|
'info': iframe.contentWindow.console.info,
|
||||||
|
'warn': iframe.contentWindow.console.warn
|
||||||
|
};
|
||||||
|
for (var k in oldLogs) {
|
||||||
|
(function(oldLog) {
|
||||||
|
iframe.contentWindow.console[oldLog] = function() {
|
||||||
|
var message = '';
|
||||||
|
for (var i in arguments) {
|
||||||
|
if (message == '') {
|
||||||
|
message += arguments[i];
|
||||||
|
} else {
|
||||||
|
message += ' ' + arguments[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
oldLogs[oldLog].call(iframe.contentWindow.console, ...arguments);
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onConsoleMessage', viewId, [oldLog, message]);
|
||||||
|
}
|
||||||
|
})(k);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
var originalPushState = iframe.contentWindow.history.pushState;
|
||||||
|
iframe.contentWindow.history.pushState = function (state, unused, url) {
|
||||||
|
originalPushState.call(iframe.contentWindow.history, state, unused, url);
|
||||||
|
var iframeUrl = iframe.src;
|
||||||
|
try {
|
||||||
|
iframeUrl = iframe.contentWindow.location.href;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onUpdateVisitedHistory', viewId, [iframeUrl]);
|
||||||
|
};
|
||||||
|
|
||||||
|
var originalReplaceState = iframe.contentWindow.history.replaceState;
|
||||||
|
iframe.contentWindow.history.replaceState = function (state, unused, url) {
|
||||||
|
originalReplaceState.call(iframe.contentWindow.history, state, unused, url);
|
||||||
|
var iframeUrl = iframe.src;
|
||||||
|
try {
|
||||||
|
iframeUrl = iframe.contentWindow.location.href;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onUpdateVisitedHistory', viewId, [iframeUrl]);
|
||||||
|
};
|
||||||
|
|
||||||
|
var originalOpen = iframe.contentWindow.open;
|
||||||
|
iframe.contentWindow.open = function (url, target, windowFeatures) {
|
||||||
|
var newWindow = originalOpen.call(iframe.contentWindow, ...arguments);
|
||||||
|
var windowId = webView.windowAutoincrementId;
|
||||||
|
webView.windowAutoincrementId++;
|
||||||
|
webView.windows[windowId] = newWindow;
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onCreateWindow', viewId, [windowId, url, target, windowFeatures]).then(function(){}, function(handledByClient) {
|
||||||
|
if (handledByClient) {
|
||||||
|
newWindow.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return newWindow;
|
||||||
|
};
|
||||||
|
|
||||||
|
var originalPrint = iframe.contentWindow.print;
|
||||||
|
iframe.contentWindow.print = function() {
|
||||||
|
var iframeUrl = iframe.src;
|
||||||
|
try {
|
||||||
|
iframeUrl = iframe.contentWindow.location.href;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onPrintRequest', viewId, [iframeUrl]);
|
||||||
|
originalPrint.call(iframe.contentWindow);
|
||||||
|
};
|
||||||
|
|
||||||
|
webView.functionMap = {
|
||||||
|
"window.open": iframe.contentWindow.open,
|
||||||
|
"window.print": iframe.contentWindow.print,
|
||||||
|
"window.history.pushState": iframe.contentWindow.history.pushState,
|
||||||
|
"window.history.replaceState": iframe.contentWindow.history.replaceState,
|
||||||
|
}
|
||||||
|
|
||||||
|
var initialTitle = iframe.contentDocument.title;
|
||||||
|
var titleEl = iframe.contentDocument.querySelector('title');
|
||||||
|
webView.documentTitle = initialTitle;
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onTitleChanged', viewId, [initialTitle]);
|
||||||
|
if (titleEl != null) {
|
||||||
|
new MutationObserver(function(mutations) {
|
||||||
|
var title = mutations[0].target.innerText;
|
||||||
|
if (title != webView.documentTitle) {
|
||||||
|
webView.documentTitle = title;
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onTitleChanged', viewId, [title]);
|
||||||
|
}
|
||||||
|
}).observe(
|
||||||
|
titleEl,
|
||||||
|
{ subtree: true, characterData: true, childList: true }
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
var oldPixelRatio = iframe.contentWindow.devicePixelRatio;
|
||||||
|
iframe.contentWindow.addEventListener('resize', function (e) {
|
||||||
|
var newPixelRatio = iframe.contentWindow.devicePixelRatio;
|
||||||
|
if(newPixelRatio !== oldPixelRatio){
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onZoomScaleChanged', viewId, [oldPixelRatio, newPixelRatio]);
|
||||||
|
oldPixelRatio = newPixelRatio;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
iframe.contentWindow.addEventListener('popstate', function (event) {
|
||||||
|
var iframeUrl = iframe.src;
|
||||||
|
try {
|
||||||
|
iframeUrl = iframe.contentWindow.location.href;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onUpdateVisitedHistory', viewId, [iframeUrl]);
|
||||||
|
});
|
||||||
|
|
||||||
|
iframe.contentWindow.addEventListener('scroll', function (event) {
|
||||||
|
var x = 0;
|
||||||
|
var y = 0;
|
||||||
|
try {
|
||||||
|
x = iframe.contentWindow.scrollX;
|
||||||
|
y = iframe.contentWindow.scrollY;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onScrollChanged', viewId, [x, y]);
|
||||||
|
});
|
||||||
|
|
||||||
|
iframe.contentWindow.addEventListener('focus', function (event) {
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onWindowFocus', viewId);
|
||||||
|
});
|
||||||
|
|
||||||
|
iframe.contentWindow.addEventListener('blur', function (event) {
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onWindowBlur', viewId);
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if (!webView.settings.javaScriptCanOpenWindowsAutomatically) {
|
||||||
|
iframe.contentWindow.open = function() {
|
||||||
|
throw new Error('JavaScript cannot open windows automatically');
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!webView.settings.verticalScrollBarEnabled && !webView.settings.horizontalScrollBarEnabled) {
|
||||||
|
var style = iframe.contentDocument.createElement('style');
|
||||||
|
style.id = "settings.verticalScrollBarEnabled-settings.horizontalScrollBarEnabled";
|
||||||
|
style.innerHTML = "body::-webkit-scrollbar { width: 0px; height: 0px; }";
|
||||||
|
iframe.contentDocument.head.append(style);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webView.settings.disableVerticalScroll) {
|
||||||
|
var style = iframe.contentDocument.createElement('style');
|
||||||
|
style.id = "settings.disableVerticalScroll";
|
||||||
|
style.innerHTML = "body { overflow-y: hidden; }";
|
||||||
|
iframe.contentDocument.head.append(style);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webView.settings.disableHorizontalScroll) {
|
||||||
|
var style = iframe.contentDocument.createElement('style');
|
||||||
|
style.id = "settings.disableHorizontalScroll";
|
||||||
|
style.innerHTML = "body { overflow-x: hidden; }";
|
||||||
|
iframe.contentDocument.head.append(style);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webView.settings.disableContextMenu) {
|
||||||
|
iframe.contentWindow.addEventListener('contextmenu', webView.disableContextMenuHandler);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onLoadStop', viewId, [url]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
setSettings: function(newSettings) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
if (webView.settings.javaScriptCanOpenWindowsAutomatically != newSettings.javaScriptCanOpenWindowsAutomatically) {
|
||||||
|
if (!newSettings.javaScriptCanOpenWindowsAutomatically) {
|
||||||
|
iframe.contentWindow.open = function() {
|
||||||
|
throw new Error('JavaScript cannot open windows automatically');
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
iframe.contentWindow.open = webView.functionMap["window.open"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webView.settings.verticalScrollBarEnabled != newSettings.verticalScrollBarEnabled &&
|
||||||
|
webView.settings.horizontalScrollBarEnabled != newSettings.horizontalScrollBarEnabled) {
|
||||||
|
if (!newSettings.verticalScrollBarEnabled && !newSettings.horizontalScrollBarEnabled) {
|
||||||
|
var style = iframe.contentDocument.createElement('style');
|
||||||
|
style.id = "settings.verticalScrollBarEnabled-settings.horizontalScrollBarEnabled";
|
||||||
|
style.innerHTML = "body::-webkit-scrollbar { width: 0px; height: 0px; }";
|
||||||
|
iframe.contentDocument.head.append(style);
|
||||||
|
} else {
|
||||||
|
var styleElement = iframe.contentDocument.getElementById("settings.verticalScrollBarEnabled-settings.horizontalScrollBarEnabled");
|
||||||
|
if (styleElement) { styleElement.remove() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webView.settings.disableVerticalScroll != newSettings.disableVerticalScroll) {
|
||||||
|
if (newSettings.disableVerticalScroll) {
|
||||||
|
var style = iframe.contentDocument.createElement('style');
|
||||||
|
style.id = "settings.disableVerticalScroll";
|
||||||
|
style.innerHTML = "body { overflow-y: hidden; }";
|
||||||
|
iframe.contentDocument.head.append(style);
|
||||||
|
} else {
|
||||||
|
var styleElement = iframe.contentDocument.getElementById("settings.disableVerticalScroll");
|
||||||
|
if (styleElement) { styleElement.remove() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webView.settings.disableHorizontalScroll != newSettings.disableHorizontalScroll) {
|
||||||
|
if (newSettings.disableHorizontalScroll) {
|
||||||
|
var style = iframe.contentDocument.createElement('style');
|
||||||
|
style.id = "settings.disableHorizontalScroll";
|
||||||
|
style.innerHTML = "body { overflow-x: hidden; }";
|
||||||
|
iframe.contentDocument.head.append(style);
|
||||||
|
} else {
|
||||||
|
var styleElement = iframe.contentDocument.getElementById("settings.disableHorizontalScroll");
|
||||||
|
if (styleElement) { styleElement.remove() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webView.settings.disableContextMenu != newSettings.disableContextMenu) {
|
||||||
|
if (newSettings.disableContextMenu) {
|
||||||
|
iframe.contentWindow.addEventListener('contextmenu', webView.disableContextMenuHandler);
|
||||||
|
} else {
|
||||||
|
iframe.contentWindow.removeEventListener('contextmenu', webView.disableContextMenuHandler);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
webView.settings = newSettings;
|
||||||
|
},
|
||||||
|
reload: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
if (iframe != null && iframe.contentWindow != null) {
|
||||||
|
try {
|
||||||
|
iframe.contentWindow.location.reload();
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
iframe.contentWindow.location.href = iframe.src;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goBack: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
if (iframe != null) {
|
||||||
|
try {
|
||||||
|
iframe.contentWindow.history.back();
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goForward: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
if (iframe != null) {
|
||||||
|
try {
|
||||||
|
iframe.contentWindow.history.forward();
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goBackOrForward: function(steps) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
if (iframe != null) {
|
||||||
|
try {
|
||||||
|
iframe.contentWindow.history.go(steps);
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
evaluateJavascript: function(source) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
var result = null;
|
||||||
|
if (iframe != null) {
|
||||||
|
try {
|
||||||
|
result = JSON.stringify(iframe.contentWindow.eval(source));
|
||||||
|
} catch (e) {}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
},
|
||||||
|
stopLoading: function(steps) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
if (iframe != null) {
|
||||||
|
try {
|
||||||
|
iframe.contentWindow.stop();
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getUrl: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
var url = iframe.src;
|
||||||
|
try {
|
||||||
|
url = iframe.contentWindow.location.href;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return url;
|
||||||
|
},
|
||||||
|
getTitle: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
var title = null;
|
||||||
|
try {
|
||||||
|
title = iframe.contentDocument.title;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return title;
|
||||||
|
},
|
||||||
|
injectJavascriptFileFromUrl: function(urlFile, scriptHtmlTagAttributes) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
var d = iframe.contentDocument;
|
||||||
|
var script = d.createElement('script');
|
||||||
|
for (var key of Object.keys(scriptHtmlTagAttributes)) {
|
||||||
|
if (scriptHtmlTagAttributes[key] != null) {
|
||||||
|
script[key] = scriptHtmlTagAttributes[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (script.id != null) {
|
||||||
|
script.onload = function() {
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onInjectedScriptLoaded', webView.viewId, [script.id]);
|
||||||
|
}
|
||||||
|
script.onerror = function() {
|
||||||
|
window.flutter_inappwebview.nativeCommunication('onInjectedScriptError', webView.viewId, [script.id]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
script.src = urlFile;
|
||||||
|
if (d.body != null) {
|
||||||
|
d.body.appendChild(script);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
injectCSSCode: function(source) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
var d = iframe.contentDocument;
|
||||||
|
var style = d.createElement('style');
|
||||||
|
style.innerHTML = source;
|
||||||
|
if (d.head != null) {
|
||||||
|
d.head.appendChild(style);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
injectCSSFileFromUrl: function(urlFile, cssLinkHtmlTagAttributes) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
var d = iframe.contentDocument;
|
||||||
|
var link = d.createElement('link');
|
||||||
|
for (var key of Object.keys(cssLinkHtmlTagAttributes)) {
|
||||||
|
if (cssLinkHtmlTagAttributes[key] != null) {
|
||||||
|
link[key] = cssLinkHtmlTagAttributes[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
link.type = 'text/css';
|
||||||
|
var alternateStylesheet = "";
|
||||||
|
if (cssLinkHtmlTagAttributes.alternateStylesheet) {
|
||||||
|
alternateStylesheet = "alternate ";
|
||||||
|
}
|
||||||
|
link.rel = alternateStylesheet + "stylesheet";
|
||||||
|
link.href = urlFile;
|
||||||
|
if (d.head != null) {
|
||||||
|
d.head.appendChild(link);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scrollTo: function(x, y, animated) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
if (animated) {
|
||||||
|
iframe.contentWindow.scrollTo({top: y, left: x, behavior: 'smooth'});
|
||||||
|
} else {
|
||||||
|
iframe.contentWindow.scrollTo(x, y);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
scrollBy: function(x, y, animated) {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
if (animated) {
|
||||||
|
iframe.contentWindow.scrollBy({top: y, left: x, behavior: 'smooth'});
|
||||||
|
} else {
|
||||||
|
iframe.contentWindow.scrollBy(x, y);
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
printCurrentPage: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
iframe.contentWindow.print();
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getContentHeight: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
return iframe.contentDocument.documentElement.scrollHeight;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
getContentWidth: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
return iframe.contentDocument.documentElement.scrollWidth;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
getSelectedText: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
var txt;
|
||||||
|
var w = iframe.contentWindow;
|
||||||
|
if (w.getSelection) {
|
||||||
|
txt = w.getSelection().toString();
|
||||||
|
} else if (w.document.getSelection) {
|
||||||
|
txt = w.document.getSelection().toString();
|
||||||
|
} else if (w.document.selection) {
|
||||||
|
txt = w.document.selection.createRange().text;
|
||||||
|
}
|
||||||
|
return txt;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
getScrollX: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
return iframe.contentWindow.scrollX;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
getScrollY: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
return iframe.contentWindow.scrollY;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
isSecureContext: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
return iframe.contentWindow.isSecureContext;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
canScrollVertically: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
return iframe.contentDocument.body.scrollHeight > iframe.contentWindow.innerHeight;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
canScrollHorizontally: function() {
|
||||||
|
var iframe = webView.iframe;
|
||||||
|
try {
|
||||||
|
return iframe.contentDocument.body.scrollWidth > iframe.contentWindow.innerWidth;
|
||||||
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
getSize: function() {
|
||||||
|
var iframeContainer = webView.iframeContainer;
|
||||||
|
var width = 0.0;
|
||||||
|
var height = 0.0;
|
||||||
|
if (iframeContainer.style.width != null && iframeContainer.style.width != '' && iframeContainer.style.width.indexOf('px') > 0) {
|
||||||
|
width = parseFloat(iframeContainer.style.width);
|
||||||
|
}
|
||||||
|
if (width == null || width == 0.0) {
|
||||||
|
width = iframeContainer.getBoundingClientRect().width;
|
||||||
|
}
|
||||||
|
if (iframeContainer.style.height != null && iframeContainer.style.height != '' && iframeContainer.style.height.indexOf('px') > 0) {
|
||||||
|
height = parseFloat(iframeContainer.style.height);
|
||||||
|
}
|
||||||
|
if (height == null || height == 0.0) {
|
||||||
|
height = iframeContainer.getBoundingClientRect().height;
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
width: width,
|
||||||
|
height: height
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return webView;
|
||||||
|
},
|
||||||
|
getCookieExpirationDate: function(timestamp) {
|
||||||
|
return (new Date(timestamp)).toUTCString();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* Minified by jsDelivr using clean-css v4.2.3.
|
||||||
|
* Original file: /npm/toastify-js@1.9.3/src/toastify.css
|
||||||
|
*
|
||||||
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||||
|
*/
|
||||||
|
/*!
|
||||||
|
* Toastify js 1.9.3
|
||||||
|
* https://github.com/apvarun/toastify-js
|
||||||
|
* @license MIT licensed
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018 Varun A P
|
||||||
|
*/
|
||||||
|
.toastify{padding:12px 20px;color:#fff;display:inline-block;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(77,96,232,.3);background:-webkit-linear-gradient(315deg,#73a5ff,#5477f5);background:linear-gradient(135deg,#73a5ff,#5477f5);position:fixed;opacity:0;transition:all .4s cubic-bezier(.215,.61,.355,1);border-radius:2px;cursor:pointer;text-decoration:none;max-width:calc(50% - 20px);z-index:2147483647}.toastify.on{opacity:1}.toast-close{opacity:.4;padding:0 5px}.toastify-right{right:15px}.toastify-left{left:15px}.toastify-top{top:-150px}.toastify-bottom{bottom:-150px}.toastify-rounded{border-radius:25px}.toastify-avatar{width:1.5em;height:1.5em;margin:-7px 5px;border-radius:2px}.toastify-center{margin-left:auto;margin-right:auto;left:0;right:0;max-width:fit-content;max-width:-moz-fit-content}@media only screen and (max-width:360px){.toastify-left,.toastify-right{margin-left:auto;margin-right:auto;left:0;right:0;max-width:fit-content}}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* Minified by jsDelivr using Terser v5.3.0.
|
||||||
|
* Original file: /npm/toastify-js@1.9.3/src/toastify.js
|
||||||
|
*
|
||||||
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||||
|
*/
|
||||||
|
/*!
|
||||||
|
* Toastify js 1.9.3
|
||||||
|
* https://github.com/apvarun/toastify-js
|
||||||
|
* @license MIT licensed
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018 Varun A P
|
||||||
|
*/
|
||||||
|
!function(t,o){"object"==typeof module && module && module.exports?module.exports=o():t.Toastify=o()}(this,(function(t){var o=function(t){return new o.lib.init(t)};function i(t,o){return o.offset[t]?isNaN(o.offset[t])?o.offset[t]:o.offset[t]+"px":"0px"}function s(t,o){return!(!t||"string"!=typeof o)&&!!(t.className&&t.className.trim().split(/\s+/gi).indexOf(o)>-1)}return o.lib=o.prototype={toastify:"1.9.3",constructor:o,init:function(t){return t||(t={}),this.options={},this.toastElement=null,this.options.text=t.text||"Hi there!",this.options.node=t.node,this.options.duration=0===t.duration?0:t.duration||3e3,this.options.selector=t.selector,this.options.callback=t.callback||function(){},this.options.destination=t.destination,this.options.newWindow=t.newWindow||!1,this.options.close=t.close||!1,this.options.gravity="bottom"===t.gravity?"toastify-bottom":"toastify-top",this.options.positionLeft=t.positionLeft||!1,this.options.position=t.position||"",this.options.backgroundColor=t.backgroundColor,this.options.avatar=t.avatar||"",this.options.className=t.className||"",this.options.stopOnFocus=void 0===t.stopOnFocus||t.stopOnFocus,this.options.onClick=t.onClick,this.options.offset=t.offset||{x:0,y:0},this},buildToast:function(){if(!this.options)throw"Toastify is not initialized";var t=document.createElement("div");if(t.className="toastify on "+this.options.className,this.options.position?t.className+=" toastify-"+this.options.position:!0===this.options.positionLeft?(t.className+=" toastify-left",console.warn("Property `positionLeft` will be depreciated in further versions. Please use `position` instead.")):t.className+=" toastify-right",t.className+=" "+this.options.gravity,this.options.backgroundColor&&(t.style.background=this.options.backgroundColor),this.options.node&&this.options.node.nodeType===Node.ELEMENT_NODE)t.appendChild(this.options.node);else if(t.innerHTML=this.options.text,""!==this.options.avatar){var o=document.createElement("img");o.src=this.options.avatar,o.className="toastify-avatar","left"==this.options.position||!0===this.options.positionLeft?t.appendChild(o):t.insertAdjacentElement("afterbegin",o)}if(!0===this.options.close){var s=document.createElement("span");s.innerHTML="✖",s.className="toast-close",s.addEventListener("click",function(t){t.stopPropagation(),this.removeElement(this.toastElement),window.clearTimeout(this.toastElement.timeOutValue)}.bind(this));var n=window.innerWidth>0?window.innerWidth:screen.width;("left"==this.options.position||!0===this.options.positionLeft)&&n>360?t.insertAdjacentElement("afterbegin",s):t.appendChild(s)}if(this.options.stopOnFocus&&this.options.duration>0){var e=this;t.addEventListener("mouseover",(function(o){window.clearTimeout(t.timeOutValue)})),t.addEventListener("mouseleave",(function(){t.timeOutValue=window.setTimeout((function(){e.removeElement(t)}),e.options.duration)}))}if(void 0!==this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),!0===this.options.newWindow?window.open(this.options.destination,"_blank"):window.location=this.options.destination}.bind(this)),"function"==typeof this.options.onClick&&void 0===this.options.destination&&t.addEventListener("click",function(t){t.stopPropagation(),this.options.onClick()}.bind(this)),"object"==typeof this.options.offset){var a=i("x",this.options),p=i("y",this.options),r="left"==this.options.position?a:"-"+a,l="toastify-top"==this.options.gravity?p:"-"+p;t.style.transform="translate("+r+","+l+")"}return t},showToast:function(){var t;if(this.toastElement=this.buildToast(),!(t=void 0===this.options.selector?document.body:document.getElementById(this.options.selector)))throw"Root element is not defined";return t.insertBefore(this.toastElement,t.firstChild),o.reposition(),this.options.duration>0&&(this.toastElement.timeOutValue=window.setTimeout(function(){this.removeElement(this.toastElement)}.bind(this),this.options.duration)),this},hideToast:function(){this.toastElement.timeOutValue&&clearTimeout(this.toastElement.timeOutValue),this.removeElement(this.toastElement)},removeElement:function(t){t.className=t.className.replace(" on",""),window.setTimeout(function(){this.options.node&&this.options.node.parentNode&&this.options.node.parentNode.removeChild(this.options.node),t.parentNode&&t.parentNode.removeChild(t),this.options.callback.call(t),o.reposition()}.bind(this),400)}},o.reposition=function(){for(var t,o={top:15,bottom:15},i={top:15,bottom:15},n={top:15,bottom:15},e=document.getElementsByClassName("toastify"),a=0;a<e.length;a++){t=!0===s(e[a],"toastify-top")?"toastify-top":"toastify-bottom";var p=e[a].offsetHeight;t=t.substr(9,t.length-1);(window.innerWidth>0?window.innerWidth:screen.width)<=360?(e[a].style[t]=n[t]+"px",n[t]+=p+15):!0===s(e[a],"toastify-left")?(e[a].style[t]=o[t]+"px",o[t]+=p+15):(e[a].style[t]=i[t]+"px",i[t]+=p+15)}return this},o.lib.init.prototype=o.lib,o}));
|
||||||
BIN
build/app/intermediates/binary_art_profile/release/baseline.prof
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"artifactType": {
|
||||||
|
"type": "BUNDLE",
|
||||||
|
"kind": "RegularFile"
|
||||||
|
},
|
||||||
|
"applicationId": "com.frontshop.userapp",
|
||||||
|
"variantName": "release",
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"type": "SINGLE",
|
||||||
|
"filters": [],
|
||||||
|
"attributes": [],
|
||||||
|
"outputFile": "../../../../../android/app/release/app-release.aab"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"elementType": "File"
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
#- File Locator -
|
||||||
|
listingFile=../../bundle_ide_model/release/output-metadata.json
|
||||||
@@ -0,0 +1,355 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
package="com.frontshop.userapp"
|
||||||
|
android:versionCode="5"
|
||||||
|
android:versionName="1.0.3" >
|
||||||
|
|
||||||
|
<uses-sdk
|
||||||
|
android:minSdkVersion="21"
|
||||||
|
android:targetSdkVersion="34" />
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||||
|
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
|
<uses-permission android:name="android.permission.CALL_PHONE" />
|
||||||
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
<!--
|
||||||
|
Required to query activities that can process text, see:
|
||||||
|
https://developer.android.com/training/package-visibility and
|
||||||
|
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||||||
|
|
||||||
|
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin.
|
||||||
|
-->
|
||||||
|
<queries>
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.intent.action.PROCESS_TEXT" />
|
||||||
|
|
||||||
|
<data android:mimeType="text/plain" />
|
||||||
|
</intent>
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.support.customtabs.action.CustomTabsService" />
|
||||||
|
</intent> <!-- Needs to be explicitly declared on Android R+ -->
|
||||||
|
<package android:name="com.google.android.apps.maps" />
|
||||||
|
</queries>
|
||||||
|
|
||||||
|
<!-- Provide required visibility configuration for API level 30 and above -->
|
||||||
|
<queries>
|
||||||
|
|
||||||
|
<!-- If your app checks for SMS support -->
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
|
<data android:scheme="sms" />
|
||||||
|
</intent>
|
||||||
|
<!-- If your app checks for call support -->
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
|
<data android:scheme="tel" />
|
||||||
|
</intent>
|
||||||
|
<!-- If your application checks for inAppBrowserView launch mode support -->
|
||||||
|
<intent>
|
||||||
|
<action android:name="android.support.customtabs.action.CustomTabsService" />
|
||||||
|
</intent>
|
||||||
|
</queries>
|
||||||
|
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.VIBRATE" />
|
||||||
|
|
||||||
|
<uses-feature
|
||||||
|
android:glEsVersion="0x00020000"
|
||||||
|
android:required="true" /> <!-- Required by older versions of Google Play services to create IID tokens -->
|
||||||
|
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
|
||||||
|
|
||||||
|
<permission
|
||||||
|
android:name="com.frontshop.userapp.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION"
|
||||||
|
android:protectionLevel="signature" />
|
||||||
|
|
||||||
|
<uses-permission android:name="com.frontshop.userapp.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" />
|
||||||
|
|
||||||
|
<application
|
||||||
|
android:name="android.app.Application"
|
||||||
|
android:appComponentFactory="androidx.core.app.CoreComponentFactory"
|
||||||
|
android:enableOnBackInvokedCallback="true"
|
||||||
|
android:icon="@mipmap/ic_launcher"
|
||||||
|
android:label="Frontshop"
|
||||||
|
android:requestLegacyExternalStorage="true" >
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.messaging.default_notification_channel_id"
|
||||||
|
android:value="high_importance_channel" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name="com.frontshop.userapp.MainActivity"
|
||||||
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||||
|
android:exported="true"
|
||||||
|
android:hardwareAccelerated="true"
|
||||||
|
android:launchMode="singleTop"
|
||||||
|
android:taskAffinity=""
|
||||||
|
android:theme="@style/LaunchTheme"
|
||||||
|
android:windowSoftInputMode="adjustResize" >
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Specifies an Android theme to apply to this Activity as soon as
|
||||||
|
the Android process has started. This theme is visible to the user
|
||||||
|
while the Flutter UI initializes. After that, this theme continues
|
||||||
|
to determine the Window background behind the Flutter UI.
|
||||||
|
-->
|
||||||
|
<meta-data
|
||||||
|
android:name="io.flutter.embedding.android.NormalTheme"
|
||||||
|
android:resource="@style/NormalTheme" />
|
||||||
|
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
||||||
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
</intent-filter>
|
||||||
|
</activity>
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.android.geo.API_KEY"
|
||||||
|
android:value="AIzaSyAi3_Dls63iGs7Nccgdm-4FkS0rhT03-4U" />
|
||||||
|
<!--
|
||||||
|
Don't delete the meta-data below.
|
||||||
|
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java
|
||||||
|
-->
|
||||||
|
<meta-data
|
||||||
|
android:name="flutterEmbedding"
|
||||||
|
android:value="2" />
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name="io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingService"
|
||||||
|
android:exported="true" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
<service
|
||||||
|
android:name="io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingBackgroundService"
|
||||||
|
android:exported="false"
|
||||||
|
android:permission="android.permission.BIND_JOB_SERVICE" />
|
||||||
|
|
||||||
|
<receiver
|
||||||
|
android:name="io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingReceiver"
|
||||||
|
android:exported="true"
|
||||||
|
android:permission="com.google.android.c2dm.permission.SEND" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name="com.google.firebase.components.ComponentDiscoveryService"
|
||||||
|
android:directBootAware="true"
|
||||||
|
android:exported="false" >
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:io.flutter.plugins.firebase.messaging.FlutterFirebaseAppRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:io.flutter.plugins.firebase.core.FlutterFirebaseCoreRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:com.google.firebase.messaging.FirebaseMessagingKtxRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:com.google.firebase.messaging.FirebaseMessagingRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsKtxRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:com.google.firebase.ktx.FirebaseCommonLegacyRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:com.google.firebase.FirebaseCommonKtxRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.firebase.components:com.google.firebase.datatransport.TransportRegistrar"
|
||||||
|
android:value="com.google.firebase.components.ComponentRegistrar" />
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name="io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingInitProvider"
|
||||||
|
android:authorities="com.frontshop.userapp.flutterfirebasemessaginginitprovider"
|
||||||
|
android:exported="false"
|
||||||
|
android:initOrder="99" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name="com.pichillilorenzo.flutter_inappwebview_android.in_app_browser.InAppBrowserActivity"
|
||||||
|
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
|
||||||
|
android:exported="false"
|
||||||
|
android:theme="@style/AppTheme" />
|
||||||
|
<activity
|
||||||
|
android:name="com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ChromeCustomTabsActivity"
|
||||||
|
android:exported="false"
|
||||||
|
android:theme="@style/ThemeTransparent" />
|
||||||
|
<activity
|
||||||
|
android:name="com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.TrustedWebActivity"
|
||||||
|
android:exported="false"
|
||||||
|
android:theme="@style/ThemeTransparent" />
|
||||||
|
<activity
|
||||||
|
android:name="com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ChromeCustomTabsActivitySingleInstance"
|
||||||
|
android:exported="false"
|
||||||
|
android:launchMode="singleInstance"
|
||||||
|
android:theme="@style/ThemeTransparent" />
|
||||||
|
<activity
|
||||||
|
android:name="com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.TrustedWebActivitySingleInstance"
|
||||||
|
android:exported="false"
|
||||||
|
android:launchMode="singleInstance"
|
||||||
|
android:theme="@style/ThemeTransparent" />
|
||||||
|
|
||||||
|
<receiver
|
||||||
|
android:name="com.pichillilorenzo.flutter_inappwebview_android.chrome_custom_tabs.ActionBroadcastReceiver"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="false" />
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="io.flutter.embedded_views_preview"
|
||||||
|
android:value="true" />
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name="io.flutter.plugins.imagepicker.ImagePickerFileProvider"
|
||||||
|
android:authorities="com.frontshop.userapp.flutter.image_provider"
|
||||||
|
android:exported="false"
|
||||||
|
android:grantUriPermissions="true" >
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
|
android:resource="@xml/flutter_image_picker_file_paths" />
|
||||||
|
</provider> <!-- Trigger Google Play services to install the backported photo picker module. -->
|
||||||
|
<service
|
||||||
|
android:name="com.google.android.gms.metadata.ModuleDependencies"
|
||||||
|
android:enabled="false"
|
||||||
|
android:exported="false" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="photopicker_activity:0:required"
|
||||||
|
android:value="" />
|
||||||
|
</service>
|
||||||
|
<service
|
||||||
|
android:name="com.baseflow.geolocator.GeolocatorLocationService"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="false"
|
||||||
|
android:foregroundServiceType="location" />
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name="io.flutter.plugins.urllauncher.WebViewActivity"
|
||||||
|
android:exported="false"
|
||||||
|
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> <!-- Needs to be explicitly declared on P+ -->
|
||||||
|
<uses-library
|
||||||
|
android:name="org.apache.http.legacy"
|
||||||
|
android:required="false" />
|
||||||
|
|
||||||
|
<receiver
|
||||||
|
android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
|
||||||
|
android:exported="true"
|
||||||
|
android:permission="com.google.android.c2dm.permission.SEND" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
|
||||||
|
</intent-filter>
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.android.gms.cloudmessaging.FINISHED_AFTER_HANDLED"
|
||||||
|
android:value="true" />
|
||||||
|
</receiver>
|
||||||
|
<!--
|
||||||
|
FirebaseMessagingService performs security checks at runtime,
|
||||||
|
but set to not exported to explicitly avoid allowing another app to call it.
|
||||||
|
-->
|
||||||
|
<service
|
||||||
|
android:name="com.google.firebase.messaging.FirebaseMessagingService"
|
||||||
|
android:directBootAware="true"
|
||||||
|
android:exported="false" >
|
||||||
|
<intent-filter android:priority="-500" >
|
||||||
|
<action android:name="com.google.firebase.MESSAGING_EVENT" />
|
||||||
|
</intent-filter>
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name="com.google.android.gms.common.api.GoogleApiActivity"
|
||||||
|
android:exported="false"
|
||||||
|
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name="com.google.firebase.provider.FirebaseInitProvider"
|
||||||
|
android:authorities="com.frontshop.userapp.firebaseinitprovider"
|
||||||
|
android:directBootAware="true"
|
||||||
|
android:exported="false"
|
||||||
|
android:initOrder="100" />
|
||||||
|
|
||||||
|
<uses-library
|
||||||
|
android:name="androidx.window.extensions"
|
||||||
|
android:required="false" />
|
||||||
|
<uses-library
|
||||||
|
android:name="androidx.window.sidecar"
|
||||||
|
android:required="false" />
|
||||||
|
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.android.gms.version"
|
||||||
|
android:value="@integer/google_play_services_version" />
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name="androidx.startup.InitializationProvider"
|
||||||
|
android:authorities="com.frontshop.userapp.androidx-startup"
|
||||||
|
android:exported="false" >
|
||||||
|
<meta-data
|
||||||
|
android:name="androidx.emoji2.text.EmojiCompatInitializer"
|
||||||
|
android:value="androidx.startup" />
|
||||||
|
<meta-data
|
||||||
|
android:name="androidx.lifecycle.ProcessLifecycleInitializer"
|
||||||
|
android:value="androidx.startup" />
|
||||||
|
<meta-data
|
||||||
|
android:name="androidx.profileinstaller.ProfileInstallerInitializer"
|
||||||
|
android:value="androidx.startup" />
|
||||||
|
</provider>
|
||||||
|
|
||||||
|
<receiver
|
||||||
|
android:name="androidx.profileinstaller.ProfileInstallReceiver"
|
||||||
|
android:directBootAware="false"
|
||||||
|
android:enabled="true"
|
||||||
|
android:exported="true"
|
||||||
|
android:permission="android.permission.DUMP" >
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="androidx.profileinstaller.action.INSTALL_PROFILE" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="androidx.profileinstaller.action.SKIP_FILE" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="androidx.profileinstaller.action.SAVE_PROFILE" />
|
||||||
|
</intent-filter>
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="androidx.profileinstaller.action.BENCHMARK_OPERATION" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name="com.google.android.datatransport.runtime.backends.TransportBackendDiscovery"
|
||||||
|
android:exported="false" >
|
||||||
|
<meta-data
|
||||||
|
android:name="backend:com.google.android.datatransport.cct.CctBackendFactory"
|
||||||
|
android:value="cct" />
|
||||||
|
</service>
|
||||||
|
<service
|
||||||
|
android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService"
|
||||||
|
android:exported="false"
|
||||||
|
android:permission="android.permission.BIND_JOB_SERVICE" >
|
||||||
|
</service>
|
||||||
|
|
||||||
|
<receiver
|
||||||
|
android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver"
|
||||||
|
android:exported="false" />
|
||||||
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"version": 3,
|
||||||
|
"artifactType": {
|
||||||
|
"type": "COMPATIBLE_SCREEN_MANIFEST",
|
||||||
|
"kind": "Directory"
|
||||||
|
},
|
||||||
|
"applicationId": "com.frontshop.userapp",
|
||||||
|
"variantName": "release",
|
||||||
|
"elements": []
|
||||||
|
}
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
# This is a configuration file for ProGuard.
|
||||||
|
# http://proguard.sourceforge.net/index.html#manual/usage.html
|
||||||
|
#
|
||||||
|
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
|
||||||
|
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
|
||||||
|
# will be ignored by new version of the Android plugin for Gradle.
|
||||||
|
|
||||||
|
# Optimizations: If you don't want to optimize, use the proguard-android.txt configuration file
|
||||||
|
# instead of this one, which turns off the optimization flags.
|
||||||
|
# Adding optimization introduces certain risks, since for example not all optimizations performed by
|
||||||
|
# ProGuard works on all versions of Dalvik. The following flags turn off various optimizations
|
||||||
|
# known to have issues, but the list may not be complete or up to date. (The "arithmetic"
|
||||||
|
# optimization can be used if you are only targeting Android 2.0 or later.) Make sure you test
|
||||||
|
# thoroughly if you go this route.
|
||||||
|
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
|
||||||
|
-optimizationpasses 5
|
||||||
|
-allowaccessmodification
|
||||||
|
|
||||||
|
-dontusemixedcaseclassnames
|
||||||
|
-dontskipnonpubliclibraryclasses
|
||||||
|
-verbose
|
||||||
|
|
||||||
|
# Preserve some attributes that may be required for reflection.
|
||||||
|
-keepattributes AnnotationDefault,
|
||||||
|
EnclosingMethod,
|
||||||
|
InnerClasses,
|
||||||
|
RuntimeVisibleAnnotations,
|
||||||
|
RuntimeVisibleParameterAnnotations,
|
||||||
|
RuntimeVisibleTypeAnnotations,
|
||||||
|
Signature
|
||||||
|
|
||||||
|
-keep public class com.google.vending.licensing.ILicensingService
|
||||||
|
-keep public class com.android.vending.licensing.ILicensingService
|
||||||
|
-keep public class com.google.android.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.android.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.google.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.google.android.vending.licensing.ILicensingService
|
||||||
|
|
||||||
|
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
|
||||||
|
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||||
|
native <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Keep setters in Views so that animations can still work.
|
||||||
|
-keepclassmembers public class * extends android.view.View {
|
||||||
|
void set*(***);
|
||||||
|
*** get*();
|
||||||
|
}
|
||||||
|
|
||||||
|
# We want to keep methods in Activity that could be used in the XML attribute onClick.
|
||||||
|
-keepclassmembers class * extends android.app.Activity {
|
||||||
|
public void *(android.view.View);
|
||||||
|
}
|
||||||
|
|
||||||
|
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
|
||||||
|
-keepclassmembers enum * {
|
||||||
|
public static **[] values();
|
||||||
|
public static ** valueOf(java.lang.String);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclassmembers class * implements android.os.Parcelable {
|
||||||
|
public static final ** CREATOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Preserve annotated Javascript interface methods.
|
||||||
|
-keepclassmembers class * {
|
||||||
|
@android.webkit.JavascriptInterface <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
# The support libraries contains references to newer platform versions.
|
||||||
|
# Don't warn about those in case this app is linking against an older
|
||||||
|
# platform version. We know about them, and they are safe.
|
||||||
|
-dontnote android.support.**
|
||||||
|
-dontnote androidx.**
|
||||||
|
-dontwarn android.support.**
|
||||||
|
-dontwarn androidx.**
|
||||||
|
|
||||||
|
# This class is deprecated, but remains for backward compatibility.
|
||||||
|
-dontwarn android.util.FloatMath
|
||||||
|
|
||||||
|
# Understand the @Keep support annotation.
|
||||||
|
-keep class android.support.annotation.Keep
|
||||||
|
-keep class androidx.annotation.Keep
|
||||||
|
|
||||||
|
-keep @android.support.annotation.Keep class * {*;}
|
||||||
|
-keep @androidx.annotation.Keep class * {*;}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <fields>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <fields>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <init>(...);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <init>(...);
|
||||||
|
}
|
||||||
|
|
||||||
|
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
|
||||||
|
-dontnote org.apache.http.**
|
||||||
|
-dontnote android.net.http.**
|
||||||
|
|
||||||
|
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
|
||||||
|
-dontnote java.lang.invoke.**
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
# This is a configuration file for ProGuard.
|
||||||
|
# http://proguard.sourceforge.net/index.html#manual/usage.html
|
||||||
|
#
|
||||||
|
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
|
||||||
|
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
|
||||||
|
# will be ignored by new version of the Android plugin for Gradle.
|
||||||
|
|
||||||
|
# Optimization is turned off by default. Dex does not like code run
|
||||||
|
# through the ProGuard optimize steps (and performs some
|
||||||
|
# of these optimizations on its own).
|
||||||
|
# Note that if you want to enable optimization, you cannot just
|
||||||
|
# include optimization flags in your own project configuration file;
|
||||||
|
# instead you will need to point to the
|
||||||
|
# "proguard-android-optimize.txt" file instead of this one from your
|
||||||
|
# project.properties file.
|
||||||
|
-dontoptimize
|
||||||
|
|
||||||
|
-dontusemixedcaseclassnames
|
||||||
|
-dontskipnonpubliclibraryclasses
|
||||||
|
-verbose
|
||||||
|
|
||||||
|
# Preserve some attributes that may be required for reflection.
|
||||||
|
-keepattributes AnnotationDefault,
|
||||||
|
EnclosingMethod,
|
||||||
|
InnerClasses,
|
||||||
|
RuntimeVisibleAnnotations,
|
||||||
|
RuntimeVisibleParameterAnnotations,
|
||||||
|
RuntimeVisibleTypeAnnotations,
|
||||||
|
Signature
|
||||||
|
|
||||||
|
-keep public class com.google.vending.licensing.ILicensingService
|
||||||
|
-keep public class com.android.vending.licensing.ILicensingService
|
||||||
|
-keep public class com.google.android.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.android.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.google.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.google.android.vending.licensing.ILicensingService
|
||||||
|
|
||||||
|
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
|
||||||
|
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||||
|
native <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Keep setters in Views so that animations can still work.
|
||||||
|
-keepclassmembers public class * extends android.view.View {
|
||||||
|
void set*(***);
|
||||||
|
*** get*();
|
||||||
|
}
|
||||||
|
|
||||||
|
# We want to keep methods in Activity that could be used in the XML attribute onClick.
|
||||||
|
-keepclassmembers class * extends android.app.Activity {
|
||||||
|
public void *(android.view.View);
|
||||||
|
}
|
||||||
|
|
||||||
|
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
|
||||||
|
-keepclassmembers enum * {
|
||||||
|
public static **[] values();
|
||||||
|
public static ** valueOf(java.lang.String);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclassmembers class * implements android.os.Parcelable {
|
||||||
|
public static final ** CREATOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Preserve annotated Javascript interface methods.
|
||||||
|
-keepclassmembers class * {
|
||||||
|
@android.webkit.JavascriptInterface <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
# The support libraries contains references to newer platform versions.
|
||||||
|
# Don't warn about those in case this app is linking against an older
|
||||||
|
# platform version. We know about them, and they are safe.
|
||||||
|
-dontnote android.support.**
|
||||||
|
-dontnote androidx.**
|
||||||
|
-dontwarn android.support.**
|
||||||
|
-dontwarn androidx.**
|
||||||
|
|
||||||
|
# This class is deprecated, but remains for backward compatibility.
|
||||||
|
-dontwarn android.util.FloatMath
|
||||||
|
|
||||||
|
# Understand the @Keep support annotation.
|
||||||
|
-keep class android.support.annotation.Keep
|
||||||
|
-keep class androidx.annotation.Keep
|
||||||
|
|
||||||
|
-keep @android.support.annotation.Keep class * {*;}
|
||||||
|
-keep @androidx.annotation.Keep class * {*;}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <fields>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <fields>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <init>(...);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <init>(...);
|
||||||
|
}
|
||||||
|
|
||||||
|
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
|
||||||
|
-dontnote org.apache.http.**
|
||||||
|
-dontnote android.net.http.**
|
||||||
|
|
||||||
|
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
|
||||||
|
-dontnote java.lang.invoke.**
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
# This is a configuration file for ProGuard.
|
||||||
|
# http://proguard.sourceforge.net/index.html#manual/usage.html
|
||||||
|
#
|
||||||
|
# Starting with version 2.2 of the Android plugin for Gradle, this file is distributed together with
|
||||||
|
# the plugin and unpacked at build-time. The files in $ANDROID_HOME are no longer maintained and
|
||||||
|
# will be ignored by new version of the Android plugin for Gradle.
|
||||||
|
|
||||||
|
# Optimizations can be turned on and off in the 'postProcessing' DSL block.
|
||||||
|
# The configuration below is applied if optimizations are enabled.
|
||||||
|
# Adding optimization introduces certain risks, since for example not all optimizations performed by
|
||||||
|
# ProGuard works on all versions of Dalvik. The following flags turn off various optimizations
|
||||||
|
# known to have issues, but the list may not be complete or up to date. (The "arithmetic"
|
||||||
|
# optimization can be used if you are only targeting Android 2.0 or later.) Make sure you test
|
||||||
|
# thoroughly if you go this route.
|
||||||
|
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
|
||||||
|
-optimizationpasses 5
|
||||||
|
-allowaccessmodification
|
||||||
|
|
||||||
|
-dontusemixedcaseclassnames
|
||||||
|
-dontskipnonpubliclibraryclasses
|
||||||
|
-verbose
|
||||||
|
|
||||||
|
# Preserve some attributes that may be required for reflection.
|
||||||
|
-keepattributes AnnotationDefault,
|
||||||
|
EnclosingMethod,
|
||||||
|
InnerClasses,
|
||||||
|
RuntimeVisibleAnnotations,
|
||||||
|
RuntimeVisibleParameterAnnotations,
|
||||||
|
RuntimeVisibleTypeAnnotations,
|
||||||
|
Signature
|
||||||
|
|
||||||
|
-keep public class com.google.vending.licensing.ILicensingService
|
||||||
|
-keep public class com.android.vending.licensing.ILicensingService
|
||||||
|
-keep public class com.google.android.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.android.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.google.vending.licensing.ILicensingService
|
||||||
|
-dontnote com.google.android.vending.licensing.ILicensingService
|
||||||
|
|
||||||
|
# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native
|
||||||
|
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||||
|
native <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Keep setters in Views so that animations can still work.
|
||||||
|
-keepclassmembers public class * extends android.view.View {
|
||||||
|
void set*(***);
|
||||||
|
*** get*();
|
||||||
|
}
|
||||||
|
|
||||||
|
# We want to keep methods in Activity that could be used in the XML attribute onClick.
|
||||||
|
-keepclassmembers class * extends android.app.Activity {
|
||||||
|
public void *(android.view.View);
|
||||||
|
}
|
||||||
|
|
||||||
|
# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations
|
||||||
|
-keepclassmembers enum * {
|
||||||
|
public static **[] values();
|
||||||
|
public static ** valueOf(java.lang.String);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclassmembers class * implements android.os.Parcelable {
|
||||||
|
public static final ** CREATOR;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Preserve annotated Javascript interface methods.
|
||||||
|
-keepclassmembers class * {
|
||||||
|
@android.webkit.JavascriptInterface <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
# The support libraries contains references to newer platform versions.
|
||||||
|
# Don't warn about those in case this app is linking against an older
|
||||||
|
# platform version. We know about them, and they are safe.
|
||||||
|
-dontnote android.support.**
|
||||||
|
-dontnote androidx.**
|
||||||
|
-dontwarn android.support.**
|
||||||
|
-dontwarn androidx.**
|
||||||
|
|
||||||
|
# This class is deprecated, but remains for backward compatibility.
|
||||||
|
-dontwarn android.util.FloatMath
|
||||||
|
|
||||||
|
# Understand the @Keep support annotation.
|
||||||
|
-keep class android.support.annotation.Keep
|
||||||
|
-keep class androidx.annotation.Keep
|
||||||
|
|
||||||
|
-keep @android.support.annotation.Keep class * {*;}
|
||||||
|
-keep @androidx.annotation.Keep class * {*;}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <methods>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <fields>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <fields>;
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@android.support.annotation.Keep <init>(...);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keepclasseswithmembers class * {
|
||||||
|
@androidx.annotation.Keep <init>(...);
|
||||||
|
}
|
||||||
|
|
||||||
|
# These classes are duplicated between android.jar and org.apache.http.legacy.jar.
|
||||||
|
-dontnote org.apache.http.**
|
||||||
|
-dontnote android.net.http.**
|
||||||
|
|
||||||
|
# These classes are duplicated between android.jar and core-lambda-stubs.jar.
|
||||||
|
-dontnote java.lang.invoke.**
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
1
build/app/intermediates/flutter/release/.last_build_id
Normal file
@@ -0,0 +1 @@
|
|||||||
|
75300ac3d4d5df0759c921f3ebfaeb3d
|
||||||
BIN
build/app/intermediates/flutter/release/arm64-v8a/app.so
Normal file
BIN
build/app/intermediates/flutter/release/armeabi-v7a/app.so
Normal file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"assets/fonts/Nunito-Bold.ttf":["assets/fonts/Nunito-Bold.ttf"],"assets/fonts/Nunito-BoldItalic.ttf":["assets/fonts/Nunito-BoldItalic.ttf"],"assets/fonts/Nunito-ExtraBold.ttf":["assets/fonts/Nunito-ExtraBold.ttf"],"assets/fonts/Nunito-ExtraBoldItalic.ttf":["assets/fonts/Nunito-ExtraBoldItalic.ttf"],"assets/fonts/Nunito-Italic.ttf":["assets/fonts/Nunito-Italic.ttf"],"assets/fonts/Nunito-Light.ttf":["assets/fonts/Nunito-Light.ttf"],"assets/fonts/Nunito-LightItalic.ttf":["assets/fonts/Nunito-LightItalic.ttf"],"assets/fonts/Nunito-Medium.ttf":["assets/fonts/Nunito-Medium.ttf"],"assets/fonts/Nunito-MediumItalic.ttf":["assets/fonts/Nunito-MediumItalic.ttf"],"assets/fonts/Nunito-Regular.ttf":["assets/fonts/Nunito-Regular.ttf"],"assets/fonts/Nunito-SemiBold.ttf":["assets/fonts/Nunito-SemiBold.ttf"],"assets/fonts/Nunito-SemiBoldItalic.ttf":["assets/fonts/Nunito-SemiBoldItalic.ttf"],"assets/images/cart.jpg":["assets/images/cart.jpg"],"assets/images/cartempty.jpg":["assets/images/cartempty.jpg"],"assets/images/pngs/onboard_man.png":["assets/images/pngs/onboard_man.png"],"assets/images/pngs/placeHolder.png":["assets/images/pngs/placeHolder.png"],"assets/images/pngs/splash.png":["assets/images/pngs/splash.png"],"assets/images/svgs/add.svg":["assets/images/svgs/add.svg"],"assets/images/svgs/back.svg":["assets/images/svgs/back.svg"],"assets/images/svgs/remove.svg":["assets/images/svgs/remove.svg"],"assets/images/svgs/splash.svg":["assets/images/svgs/splash.svg"],"assets/images/wishlist.jpg":["assets/images/wishlist.jpg"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"],"packages/flutter_google_places/assets/google_black.png":["packages/flutter_google_places/assets/google_black.png"],"packages/flutter_google_places/assets/google_white.png":["packages/flutter_google_places/assets/google_white.png"],"packages/flutter_inappwebview/assets/t_rex_runner/t-rex.css":["packages/flutter_inappwebview/assets/t_rex_runner/t-rex.css"],"packages/flutter_inappwebview/assets/t_rex_runner/t-rex.html":["packages/flutter_inappwebview/assets/t_rex_runner/t-rex.html"],"packages/flutter_inappwebview_web/assets/web/web_support.js":["packages/flutter_inappwebview_web/assets/web/web_support.js"],"packages/flutter_rating_stars/assets/star_off.png":["packages/flutter_rating_stars/assets/star_off.png"],"packages/fluttertoast/assets/toastify.css":["packages/fluttertoast/assets/toastify.css"],"packages/fluttertoast/assets/toastify.js":["packages/fluttertoast/assets/toastify.js"],"packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf":["packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf"]}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
[{"family":"MaterialIcons","fonts":[{"asset":"fonts/MaterialIcons-Regular.otf"}]},{"family":"Nunito","fonts":[{"asset":"assets/fonts/Nunito-Regular.ttf"},{"asset":"assets/fonts/Nunito-Italic.ttf"},{"asset":"assets/fonts/Nunito-Light.ttf"},{"asset":"assets/fonts/Nunito-LightItalic.ttf"},{"asset":"assets/fonts/Nunito-Medium.ttf"},{"asset":"assets/fonts/Nunito-MediumItalic.ttf"},{"asset":"assets/fonts/Nunito-SemiBold.ttf"},{"asset":"assets/fonts/Nunito-SemiBoldItalic.ttf"},{"asset":"assets/fonts/Nunito-Bold.ttf"},{"asset":"assets/fonts/Nunito-BoldItalic.ttf"},{"asset":"assets/fonts/Nunito-ExtraBold.ttf"},{"asset":"assets/fonts/Nunito-ExtraBoldItalic.ttf"}]},{"family":"packages/cupertino_icons/CupertinoIcons","fonts":[{"asset":"packages/cupertino_icons/assets/CupertinoIcons.ttf"}]},{"family":"packages/material_design_icons_flutter/Material Design Icons","fonts":[{"asset":"packages/material_design_icons_flutter/lib/fonts/materialdesignicons-webfont.ttf"}]}]
|
||||||