Przeglądaj źródła

release ready

master
jefry 4 lat temu
rodzic
commit
1a4bb97b12
100 zmienionych plików z 279 dodań i 4138 usunięć
  1. +4
    -2
      android/app/build.gradle
  2. +2
    -0
      android/app/src/main/AndroidManifest.xml
  3. +2
    -2
      android/build.gradle
  4. +1
    -1
      android/gradle/wrapper/gradle-wrapper.properties
  5. +31
    -0
      cert/isrgrootx1.pem
  6. +59
    -34
      lib/Util/Util.dart
  7. +90
    -32
      lib/Util/download_Upload_Handler.dart
  8. +10
    -7
      lib/Util/photo_viewer.dart
  9. +20
    -17
      lib/home_page.dart
  10. +16
    -13
      lib/login_page.dart
  11. +13
    -1
      lib/main.dart
  12. +1
    -1
      lib/stocking.dart
  13. +30
    -25
      lib/unit_details.dart
  14. +0
    -43
      local_plugin/location-3.0.2/.gitignore
  15. +0
    -162
      local_plugin/location-3.0.2/CHANGELOG.md
  16. +0
    -19
      local_plugin/location-3.0.2/LICENSE
  17. +0
    -156
      local_plugin/location-3.0.2/README.md
  18. +0
    -42
      local_plugin/location-3.0.2/android/build.gradle
  19. +0
    -3
      local_plugin/location-3.0.2/android/gradle.properties
  20. +0
    -6
      local_plugin/location-3.0.2/android/gradle/wrapper/gradle-wrapper.properties
  21. +0
    -1
      local_plugin/location-3.0.2/android/settings.gradle
  22. +0
    -6
      local_plugin/location-3.0.2/android/src/main/AndroidManifest.xml
  23. +0
    -425
      local_plugin/location-3.0.2/android/src/main/java/com/lyokone/location/FlutterLocation.java
  24. +0
    -113
      local_plugin/location-3.0.2/android/src/main/java/com/lyokone/location/LocationPlugin.java
  25. +0
    -134
      local_plugin/location-3.0.2/android/src/main/java/com/lyokone/location/MethodCallHandlerImpl.java
  26. +0
    -69
      local_plugin/location-3.0.2/android/src/main/java/com/lyokone/location/StreamHandlerImpl.java
  27. +0
    -4
      local_plugin/location-3.0.2/darwin/Classes/LocationPlugin.h
  28. +0
    -321
      local_plugin/location-3.0.2/darwin/Classes/LocationPlugin.m
  29. +0
    -43
      local_plugin/location-3.0.2/example/.gitignore
  30. +0
    -10
      local_plugin/location-3.0.2/example/.metadata
  31. +0
    -16
      local_plugin/location-3.0.2/example/README.md
  32. +0
    -7
      local_plugin/location-3.0.2/example/android/.gitignore
  33. +0
    -60
      local_plugin/location-3.0.2/example/android/app/build.gradle
  34. +0
    -12
      local_plugin/location-3.0.2/example/android/app/src/androidTest/java/com/lyokone/locationexample/EmbedderV1ActivityTest.java
  35. +0
    -13
      local_plugin/location-3.0.2/example/android/app/src/androidTest/java/com/lyokone/locationexample/FlutterActivityTest.java
  36. +0
    -7
      local_plugin/location-3.0.2/example/android/app/src/debug/AndroidManifest.xml
  37. +0
    -35
      local_plugin/location-3.0.2/example/android/app/src/main/AndroidManifest.xml
  38. +0
    -15
      local_plugin/location-3.0.2/example/android/app/src/main/java/com/lyokone/locationexample/EmbedderV1Activity.java
  39. +0
    -12
      local_plugin/location-3.0.2/example/android/app/src/main/res/drawable/launch_background.xml
  40. BIN
      local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
  41. BIN
      local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
  42. BIN
      local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
  43. BIN
      local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
  44. BIN
      local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
  45. +0
    -8
      local_plugin/location-3.0.2/example/android/app/src/main/res/values/styles.xml
  46. +0
    -7
      local_plugin/location-3.0.2/example/android/app/src/profile/AndroidManifest.xml
  47. +0
    -29
      local_plugin/location-3.0.2/example/android/build.gradle
  48. +0
    -4
      local_plugin/location-3.0.2/example/android/gradle.properties
  49. +0
    -6
      local_plugin/location-3.0.2/example/android/gradle/wrapper/gradle-wrapper.properties
  50. +0
    -15
      local_plugin/location-3.0.2/example/android/settings.gradle
  51. +0
    -32
      local_plugin/location-3.0.2/example/ios/.gitignore
  52. +0
    -26
      local_plugin/location-3.0.2/example/ios/Flutter/AppFrameworkInfo.plist
  53. +0
    -2
      local_plugin/location-3.0.2/example/ios/Flutter/Debug.xcconfig
  54. +0
    -2
      local_plugin/location-3.0.2/example/ios/Flutter/Release.xcconfig
  55. +0
    -571
      local_plugin/location-3.0.2/example/ios/Runner.xcodeproj/project.pbxproj
  56. +0
    -87
      local_plugin/location-3.0.2/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
  57. +0
    -13
      local_plugin/location-3.0.2/example/ios/Runner/AppDelegate.swift
  58. +0
    -122
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
  59. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png
  60. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
  61. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
  62. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
  63. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
  64. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
  65. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
  66. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
  67. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
  68. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
  69. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
  70. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
  71. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
  72. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
  73. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png
  74. +0
    -23
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
  75. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
  76. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
  77. BIN
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
  78. +0
    -5
      local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
  79. +0
    -37
      local_plugin/location-3.0.2/example/ios/Runner/Base.lproj/LaunchScreen.storyboard
  80. +0
    -26
      local_plugin/location-3.0.2/example/ios/Runner/Base.lproj/Main.storyboard
  81. +0
    -49
      local_plugin/location-3.0.2/example/ios/Runner/Info.plist
  82. +0
    -1
      local_plugin/location-3.0.2/example/ios/Runner/Runner-Bridging-Header.h
  83. +0
    -54
      local_plugin/location-3.0.2/example/lib/get_location.dart
  84. +0
    -67
      local_plugin/location-3.0.2/example/lib/listen_location.dart
  85. +0
    -101
      local_plugin/location-3.0.2/example/lib/main.dart
  86. +0
    -66
      local_plugin/location-3.0.2/example/lib/permission_status.dart
  87. +0
    -60
      local_plugin/location-3.0.2/example/lib/service_enabled.dart
  88. +0
    -6
      local_plugin/location-3.0.2/example/macos/.gitignore
  89. +0
    -2
      local_plugin/location-3.0.2/example/macos/Flutter/Flutter-Debug.xcconfig
  90. +0
    -2
      local_plugin/location-3.0.2/example/macos/Flutter/Flutter-Release.xcconfig
  91. +0
    -14
      local_plugin/location-3.0.2/example/macos/Flutter/GeneratedPluginRegistrant.swift
  92. +0
    -654
      local_plugin/location-3.0.2/example/macos/Runner.xcodeproj/project.pbxproj
  93. +0
    -101
      local_plugin/location-3.0.2/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
  94. +0
    -9
      local_plugin/location-3.0.2/example/macos/Runner/AppDelegate.swift
  95. +0
    -68
      local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
  96. BIN
      local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png
  97. BIN
      local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png
  98. BIN
      local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png
  99. BIN
      local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png
  100. BIN
      local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png

+ 4
- 2
android/app/build.gradle Wyświetl plik

@@ -60,7 +60,7 @@ if (keystorePropertiesFile.exists()) {
}

android {
compileSdkVersion 29
compileSdkVersion 30

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
@@ -74,10 +74,11 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.thamringroup.unitstocks"
minSdkVersion 18
targetSdkVersion 29
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
signingConfigs {
release {
@@ -101,6 +102,7 @@ flutter {
}

dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'


+ 2
- 0
android/app/src/main/AndroidManifest.xml Wyświetl plik

@@ -6,6 +6,8 @@
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:name="io.flutter.app.FlutterApplication"
android:label="unitstocks"


+ 2
- 2
android/build.gradle Wyświetl plik

@@ -1,12 +1,12 @@
buildscript {
ext.kotlin_version = '1.3.50'
ext.kotlin_version = '1.5.31'
repositories {
google()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:4.2.2'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}


+ 1
- 1
android/gradle/wrapper/gradle-wrapper.properties Wyświetl plik

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-all.zip

+ 31
- 0
cert/isrgrootx1.pem Wyświetl plik

@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----

+ 59
- 34
lib/Util/Util.dart Wyświetl plik

@@ -1,33 +1,47 @@
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:flutter/services.dart';
import 'package:http/http.dart';
import 'package:flutter/material.dart';
import 'package:flushbar/flushbar.dart';
import 'package:http/io_client.dart';
import '../main.dart';
import 'package:location/location.dart';
import 'package:permission_handler/permission_handler.dart' as pHandler;
import 'package:app_settings/app_settings.dart';
// import 'package:app_settings/app_settings.dart';

class Util{
bool useLocal = false;
JsonDataPostRaw(Map jsonData, String url,{timeout:false}) async{
const JsonDecoder decoder = const JsonDecoder();
try {
var response;
if (timeout)
response = await http.post(
'$url', headers: {'Content-type': 'application/json'},
Uri.parse(url), headers: {'Content-type': 'application/json'},
body: json.encode(jsonData)).timeout(
const Duration(seconds: 10));
else
response = await http.post(
'$url', headers: {'Content-type': 'application/json'},
Uri.parse(url), headers: {'Content-type': 'application/json'},
body: json.encode(jsonData));
final Map data = decoder.convert(response.body);
return data;
} on TimeoutException catch(e){
return {"STATUS":0,"DATA":"Request Timeout"};
}
on HandshakeException catch(e){
if(useLocal){
return {"STATUS":0,"DATA":"Not Connected to Server. $e"};
}
else{
useLocal = true;
http = IOClient(HttpClient(context: clientContext));
return await JsonDataPostRaw(jsonData, url,timeout:timeout);
}

}
on Exception catch(exception){
print(url);
// Toast("Not Connected to Server", Colors.red);
@@ -49,7 +63,31 @@ class Util{
barrierDismissible: dissmissable,
);
}

permissionCheck(context,pHandler.Permission permissionType,ifGranted,{customMessage=''})async{
pHandler.PermissionStatus permission = await permissionType.status;
if(permission!= pHandler.PermissionStatus.granted){
if(permission== pHandler.PermissionStatus.denied || permission== pHandler.PermissionStatus.restricted){
showFlushbar(context,'${permissionType.toString().substring(permissionType.toString().lastIndexOf('.')+1)} permission is needed$customMessage. Please grant the permission!');
await Future.delayed(Duration(seconds: 3));
permission = await permissionType.request();
}
if(permission== pHandler.PermissionStatus.permanentlyDenied) {
showFlushbar(context,'It seems, your system security explicitly denied access to your ${permissionType.toString().substring(permissionType.toString().lastIndexOf('.')+1)} permission. Please MANUALLY enable it in setings!');
await Future.delayed(Duration(seconds: 3));
pHandler.openAppSettings();
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
}
if(permission== pHandler.PermissionStatus.denied || permission== pHandler.PermissionStatus.restricted){
showFlushbar(context,'${permissionType.toString().substring(permissionType.toString().lastIndexOf('.')+1)} permission is needed$customMessage. Please grant the permission!');
await Future.delayed(Duration(seconds: 3));
permission = await permissionType.request();
}
await permissionCheck(context,permissionType,ifGranted);
}
else{
await ifGranted();
}
}
showFlushbar(context,text,{color:Colors.grey}){
Flushbar(
message: "$text",
@@ -59,38 +97,25 @@ class Util{
}
streamLocation(context)async{
print('checking location');
bool gpsEnabled = false;
pHandler.PermissionStatus permissionEnabled = await pHandler.Permission.locationWhenInUse.status;
if(await location.serviceEnabled()){
gpsEnabled = await location.serviceEnabled();
}
else{
print('requesting gps');
gpsEnabled = await location.requestService();
await streamLocation(context);
}
// print([gpsEnabled,permissionEnabled]);
if(gpsEnabled){
if(permissionEnabled == pHandler.PermissionStatus.granted){
if(locationStream==null){
locationStream = location.onLocationChanged.listen((LocationData event) {
currentPosisiton = event;
});
}
await permissionCheck(context,pHandler.Permission.locationWhenInUse,()async{
location.changeSettings(accuracy: LocationAccuracy.high);
bool gpsEnabled = false;
if(await location.serviceEnabled()){
gpsEnabled = await location.serviceEnabled();
}
else if(permissionEnabled==pHandler.PermissionStatus.denied || permissionEnabled==pHandler.PermissionStatus.undetermined){
print('requesting permission');
showFlushbar(context,'Location permission is needed to locate your REAL location. Please grant the permission!');
await Future.delayed(Duration(seconds: 1));
await pHandler.Permission.locationWhenInUse.request();
else{
print('requesting gps');
gpsEnabled = await location.requestService();
await streamLocation(context);
}
else if (permissionEnabled==pHandler.PermissionStatus.permanentlyDenied){
showFlushbar(context,'It seems, your system security explicitly denied the permission to access your location. Please MANUALLY enable it in setings!');
await Future.delayed(Duration(seconds: 3));
AppSettings.openAppSettings();
exit(0);
// print([gpsEnabled,permissionEnabled]);
if(gpsEnabled){
if(locationStream==null){
locationStream = location.onLocationChanged.listen((LocationData event) {
currentPosisiton = event;
});
}
}
}
},customMessage: " to locate your REAL location");
}
}

+ 90
- 32
lib/Util/download_Upload_Handler.dart Wyświetl plik

@@ -2,8 +2,10 @@ import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
import 'package:http/io_client.dart';
import 'package:path_provider/path_provider.dart';
import 'package:http/http.dart';
import '../main.dart';
class file_Trans_Handler {

// double _progress = 0;
@@ -14,7 +16,7 @@ class file_Trans_Handler {
get error => _error;
StreamController _progress = new StreamController<double>();
Stream<double> get progress =>_progress.stream;
var client = new Client();
bool useLocal = false;

downloadFile(String fileName,String link) async {
StreamedResponse _response;
@@ -25,7 +27,7 @@ class file_Trans_Handler {
try {
Request req = new Request('GET', Uri.parse(link));
// req.headers = '';
_response = await client.send(req).timeout(
_response = await http.send(req).timeout(
Duration(seconds: 20));
// _response = await client.get('$link',headers: 'application/json')
_total = _response.contentLength;
@@ -48,6 +50,18 @@ class file_Trans_Handler {
_error = e.toString();
});
}
on HandshakeException catch(e){
if(useLocal){
print('Error Download, $e');
_progress.add(-1.0);
_error = e.toString();
}
else{
useLocal = true;
http = IOClient(HttpClient(context: clientContext));
await downloadFile(fileName,link);
}
}
catch(e){
print('Error Download, $e');
_progress.add(-1.0);
@@ -62,8 +76,8 @@ class file_Trans_Handler {
Uint8List byte = file.readAsBytesSync();
// print("file size ${file.lengthSync()/1024}");
try{
var _reponse = await client.post(
'$link', headers: {'Content-type': 'application/json'},
var _reponse = await http.post(
Uri.parse(link), headers: {'Content-type': 'application/json'},
body: json.encode({"byte":byte,"cabangId":cabang_id,"company":company}));
print('File send ${file.lengthSync()/1024} KB');
final Map data = JsonDecoder().convert(_reponse.body);
@@ -75,6 +89,16 @@ class file_Trans_Handler {
return data;
// }
}
on HandshakeException catch(e){
if(useLocal){
return {"STATUS":0,"DATA":'Request timeout. Make sure server is up and running'};
}
else{
useLocal = true;
http = IOClient(HttpClient(context: clientContext));
return await uploadFile( fileName, link, company, cabang_id);
}
}
catch(e){
print(e);
return {"STATUS":0,"DATA":'Request timeout. Make sure server is up and running'};
@@ -87,12 +111,22 @@ class file_Trans_Handler {

unPackDb(String link,String company,String cabang_id,String dbPath) async{
try{
var _reponse = await client.post(
'$link', headers: {'Content-type': 'application/json'},
var _reponse = await http.post(
Uri.parse(link), headers: {'Content-type': 'application/json'},
body: json.encode({"cabangId":cabang_id,"company":company,"dbPath":dbPath}));
final Map data = JsonDecoder().convert(_reponse.body);
return data;
}
on HandshakeException catch(e){
if(useLocal){
return {"STATUS":0,"DATA":'Upload timeout. Make sure server is up and running'};
}
else{
useLocal = true;
http = IOClient(HttpClient(context: clientContext));
return await unPackDb( link, company, cabang_id, dbPath);
}
}
catch(e){
print(e);
return {"STATUS":0,"DATA":'Upload timeout. Make sure server is up and running'};
@@ -101,12 +135,22 @@ class file_Trans_Handler {

submitDb(String link,String company,String stock_id) async{
try{
var _reponse = await client.post(
'$link', headers: {'Content-type': 'application/json'},
var _reponse = await http.post(
Uri.parse(link), headers: {'Content-type': 'application/json'},
body: json.encode({"stockTakingId":stock_id,"company":company}));
final Map data = JsonDecoder().convert(_reponse.body);
return data;
}
on HandshakeException catch(e){
if(useLocal){
return {"STATUS":0,"DATA":'Request timeout. Make sure server is up and running'};
}
else{
useLocal = true;
http = IOClient(HttpClient(context: clientContext));
return await submitDb(link,company,stock_id);
}
}
catch(e){
print(e);
return {"STATUS":0,"DATA":'Request timeout. Make sure server is up and running'};
@@ -117,37 +161,51 @@ class file_Trans_Handler {
StreamedResponse _response;
List<int> _bytes = [];
int _total = 0;
var request = MultipartRequest('POST', Uri.parse(link));
request.files.add(
await MultipartFile.fromPath(
'picture',
"${(await getApplicationDocumentsDirectory()).path}/$fileName"
)
);
_response = await client.send(request);
_total = File("${(await getApplicationDocumentsDirectory()).path}/$fileName").lengthSync();
dlulStream = _response.stream.listen((value) {
_bytes.addAll(value);
print('upload ${_bytes.length/_total}');
_progress.add(((_bytes.length / _total)));
})
..onDone(() async {
_progress.add(0.0);
print('Finish Download');
final file = File(
"${(await getApplicationDocumentsDirectory()).path}/$fileName");
await file.writeAsBytes(_bytes);
_path = file.path;
try{
var request = MultipartRequest('POST', Uri.parse(link));
request.files.add(
await MultipartFile.fromPath(
'picture',
"${(await getApplicationDocumentsDirectory()).path}/$fileName"
)
);
_response = await http.send(request);
_total = File("${(await getApplicationDocumentsDirectory()).path}/$fileName").lengthSync();
dlulStream = _response.stream.listen((value) {
_bytes.addAll(value);
print('upload ${_bytes.length/_total}');
_progress.add(((_bytes.length / _total)));
})
..onError((e) async {
..onDone(() async {
_progress.add(0.0);
print('Finish Download');
final file = File(
"${(await getApplicationDocumentsDirectory()).path}/$fileName");
await file.writeAsBytes(_bytes);
_path = file.path;
})
..onError((e) async {
print('Error Download, $e');
_progress.add(-1.0);
_error = e.toString();
});
}
on HandshakeException catch(e){
if(useLocal){
print('Error Download, $e');
_progress.add(-1.0);
_error = e.toString();
});
}
else{
useLocal = true;
http = IOClient(HttpClient(context: clientContext));
await uploadMultipart(fileName,link);
}
}
}

cancel()async{
client?.close();
http?.close();
await dlulStream?.cancel();
_progress?.close();
}

+ 10
- 7
lib/Util/photo_viewer.dart Wyświetl plik

@@ -53,20 +53,23 @@ class _PhotoViewerState extends State<PhotoViewer> {
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
FlatButton(
TextButton(
child: Text('Cancel'),
color: Colors.red,
style: TextButton.styleFrom(
backgroundColor: Colors.red
),
onPressed: (){Navigator.pop(context);},
),
FlatButton(
TextButton(
child: Text('Change'),
color: Colors.green,
style: TextButton.styleFrom(
backgroundColor: Colors.green
),
onPressed: ()async{
File temp = await ImagePicker.pickImage(source: ImageSource.camera,maxWidth: 800);
XFile temp = await ImagePicker().pickImage(source: ImageSource.camera,maxWidth: 800);
if(temp!=null){
util.showLoading(context);
widget.byte = temp.readAsBytesSync();
temp.deleteSync();
widget.byte = await temp.readAsBytes();
setState(() {

});


+ 20
- 17
lib/home_page.dart Wyświetl plik

@@ -48,7 +48,7 @@ class _HomePageState extends State<HomePage> {
title: Text('Clear Data ?'),
content: Text('Proceed to clear any remaining units data on this device?'),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Proceed'),
onPressed: ()async{
util.showLoading(context);
@@ -93,7 +93,7 @@ class _HomePageState extends State<HomePage> {
util.showFlushbar(context,errMsg??'Data Cleared');
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
onPressed: (){Navigator.pop(context,false);},
)
@@ -151,7 +151,8 @@ class _HomePageState extends State<HomePage> {
],
borderRadius: BorderRadius.circular(5)
),
height: MediaQuery.of(context).size.height/3.2,
// height: MediaQuery.of(context).size.height/3.2,
height:220,
width: MediaQuery.of(context).size.width*0.75,
child: Column(
children: <Widget>[
@@ -214,7 +215,7 @@ class _HomePageState extends State<HomePage> {
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
TextButton(
child: Text('OK',style: TextStyle(color: Colors.indigo),),
onPressed: ()async{
if(selected!=prefs.getString(keyClass.cabang_id)){
@@ -273,7 +274,7 @@ class _HomePageState extends State<HomePage> {
// }).toList(),
// ),
// actions: <Widget>[
// FlatButton(
// TextButton(
// child: Text('OK'),
// onPressed: ()async{
// if(selected!=prefs.getString(keyClass.cabang_id)){
@@ -352,7 +353,8 @@ class _HomePageState extends State<HomePage> {
],
borderRadius: BorderRadius.circular(5)
),
height: MediaQuery.of(context).size.height/4.8,
// height: MediaQuery.of(context).size.height/4.8,
height:220,
width: MediaQuery.of(context).size.width*0.75,
child: Column(
children: <Widget>[
@@ -389,7 +391,7 @@ class _HomePageState extends State<HomePage> {
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
TextButton(
child: Text('Exit',style: TextStyle(color: Colors.indigo),),
onPressed: ()async{
Navigator.pop(context);
@@ -397,7 +399,7 @@ class _HomePageState extends State<HomePage> {
exit(0);
},
),
FlatButton(
TextButton(
child: Text('Cancel',style: TextStyle(color: Colors.indigo),),
onPressed: (){
Navigator.pop(context);
@@ -488,7 +490,8 @@ class _HomePageState extends State<HomePage> {
],
borderRadius: BorderRadius.circular(5)
),
height: MediaQuery.of(context).size.height/3.2,
height:220,
// height: MediaQuery.of(context).size.height/3.2,
width: MediaQuery.of(context).size.width*0.75,
child: Column(
children: <Widget>[
@@ -543,7 +546,7 @@ class _HomePageState extends State<HomePage> {
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
TextButton(
child: Text('OK',style: TextStyle(color: Colors.indigo),),
onPressed: (){
prefs.setString(keyClass.hostAddress,(hostAddress.text=='')?'https://unitstocksbackend.thamringroup.web.id':hostAddress.text);
@@ -569,7 +572,7 @@ class _HomePageState extends State<HomePage> {
// },
// ),
// actions: <Widget>[
// FlatButton(
// TextButton(
// child: Text('OK'),
// onPressed: (){
// prefs.setString(keyClass.hostAddress,(hostAddress.text=='')?'https://unitstocksbackend.thamringroup.web.id':hostAddress.text);
@@ -639,13 +642,13 @@ class _HomePageState extends State<HomePage> {
title: Text("Get Data Units?"),
content: Text('Fetch data unit for stocking'),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Proceed'),
onPressed: (){
Navigator.pop(context,true);
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
onPressed: (){
Navigator.pop(context,false);
@@ -908,13 +911,13 @@ class _HomePageState extends State<HomePage> {
title: Text('Process Data ?'),
content: Text('Proceed to unpack the uploaded data.'),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Proceed'),
onPressed: ()async{
Navigator.pop(context,true);
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
onPressed: (){Navigator.pop(context,false);},
)
@@ -971,13 +974,13 @@ class _HomePageState extends State<HomePage> {
title: Text('Submit Data ?'),
content: Text('Submit the uploaded data.'),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Submit'),
onPressed: ()async{
Navigator.pop(context,true);
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
onPressed: (){Navigator.pop(context,false);},
)


+ 16
- 13
lib/login_page.dart Wyświetl plik

@@ -52,13 +52,14 @@ class _LoginPageState extends State<LoginPage> {
Widget build(BuildContext context) {
// if(prefs.getBool(keyClass.logged_in)==null||!prefs.getBool(keyClass.logged_in)){
return Scaffold(
resizeToAvoidBottomInset: true,
body: WillPopScope(
onWillPop: ()async{
if(prefs.getBool(keyClass.logged_in)==null||!prefs.getBool(keyClass.logged_in)){
await showDialog(context: context,builder: (context)=>AlertDialog(
content: Text('Exit the app?'),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('Exit'),
onPressed: ()async{
Navigator.pop(context);
@@ -66,7 +67,7 @@ class _LoginPageState extends State<LoginPage> {
exit(0);
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
onPressed: (){
Navigator.pop(context);
@@ -114,7 +115,7 @@ class _LoginPageState extends State<LoginPage> {
},
),
actions: <Widget>[
FlatButton(
TextButton(
child: Text('OK'),
onPressed: (){
prefs.setString(keyClass.hostAddress,(hostAddress.text=='')?'https://unitstocksbackend.thamringroup.web.id':hostAddress.text);
@@ -187,14 +188,16 @@ class _LoginPageState extends State<LoginPage> {
),
),
SizedBox(height: 30,),
FlatButton(
TextButton(
onPressed: Login,
padding: EdgeInsets.all(15),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(100.0),
side: BorderSide(color: Colors.indigo)
style: TextButton.styleFrom(
backgroundColor: Colors.indigo,
padding: EdgeInsets.all(15),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(100.0),
side: BorderSide(color: Colors.indigo)
),
),
color: Colors.indigo,
child: Container(width: MediaQuery.of(context).size.width*0.7,child: Text('Login',textAlign: TextAlign.center,style: TextStyle(color: Colors.white,fontSize: 21),)),
)
],
@@ -289,7 +292,7 @@ class _LoginPageState extends State<LoginPage> {
children: <Widget>[
ButtonTheme(
minWidth: 10,
child: FlatButton(
child: TextButton(
onPressed: (){
prefs.setString(keyClass.cabang_id, selected);
Navigator.pushNamed(context, '/home');
@@ -297,7 +300,7 @@ class _LoginPageState extends State<LoginPage> {
child: Text('Set',style: TextStyle(color: Colors.indigo),),
),
),
FlatButton(
TextButton(
onPressed: (){
setState(() {
prefs.setBool(keyClass.logged_in, false);
@@ -407,7 +410,7 @@ class _LoginPageState extends State<LoginPage> {
// children: <Widget>[
// ButtonTheme(
// minWidth: 10,
// child: FlatButton(
// child: TextButton(
// onPressed: (){
// prefs.setString(keyClass.cabang_id, selected);
// Navigator.pushNamed(context, '/home');
@@ -415,7 +418,7 @@ class _LoginPageState extends State<LoginPage> {
// child: Text('Set',style: TextStyle(color: Colors.indigo),),
// ),
// ),
// FlatButton(
// TextButton(
// onPressed: (){
// setState(() {
// prefs.setBool(keyClass.logged_in, false);


+ 13
- 1
lib/main.dart Wyświetl plik

@@ -1,6 +1,8 @@
import 'dart:async';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:http/http.dart';
import 'package:unitstocks/Util/Prefs.dart';
import 'package:unitstocks/login_page.dart';
import 'home_page.dart';
@@ -10,15 +12,25 @@ import 'package:shared_preferences/shared_preferences.dart';
import 'package:location/location.dart';
import 'Util/Util.dart';


SharedPreferences prefs;
Location location = Location();
StreamSubscription locationStream;
LocationData currentPosisiton;
Util util = new Util();
Client http = new Client();
SecurityContext clientContext;

registerCert()async{
ByteData bytes = await rootBundle.load('cert/isrgrootx1.pem');
clientContext = new SecurityContext()
..setTrustedCertificatesBytes(bytes.buffer.asUint8List());
}

void main() async{
WidgetsFlutterBinding.ensureInitialized();
prefs = await SharedPreferences.getInstance();
location.changeSettings(accuracy: LocationAccuracy.high);
await registerCert();
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((_) {
runApp(new MyApp());


+ 1
- 1
lib/stocking.dart Wyświetl plik

@@ -173,7 +173,7 @@ class _StockingState extends State<Stocking> with SingleTickerProviderStateMixin
),
),
actions: <Widget>[
FlatButton(
TextButton(
onPressed: ()async{await scan();await loadUnit();},
child: Icon(Icons.select_all,color:Colors.grey),
)


+ 30
- 25
lib/unit_details.dart Wyświetl plik

@@ -1,6 +1,4 @@
import 'dart:io';
import 'dart:typed_data';
import 'package:flutter/services.dart';
import 'Util/UnitModel.dart';
import 'Util/photo_viewer.dart';
import 'package:flutter/cupertino.dart';
@@ -10,7 +8,6 @@ import 'Util/DBHelper.dart';
import 'Util/Util.dart';
import 'main.dart';
import 'package:intl/intl.dart';
//import 'package:autocomplete_textfield/autocomplete_textfield.dart';

class UnitDetails extends StatefulWidget {
Unit unit;
@@ -127,7 +124,7 @@ class _UnitDetailsState extends State<UnitDetails> {
//// loadTipe();
// }
return Scaffold(
resizeToAvoidBottomPadding: true,
resizeToAvoidBottomInset: true,
appBar: AppBar(
backgroundColor: Colors.transparent,
elevation: 0.0,
@@ -157,7 +154,8 @@ class _UnitDetailsState extends State<UnitDetails> {
],
borderRadius: BorderRadius.circular(5)
),
height: MediaQuery.of(context).size.height/4.8,
height:220,
// height: MediaQuery.of(context).size.height/4.8,
width: MediaQuery.of(context).size.width*0.75,
child: Column(
children: <Widget>[
@@ -194,7 +192,7 @@ class _UnitDetailsState extends State<UnitDetails> {
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
TextButton(
child: Text('Proceed'),
// color: Colors.red,
onPressed: (){
@@ -202,7 +200,7 @@ class _UnitDetailsState extends State<UnitDetails> {
Navigator.pop(context);
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
// color: Colors.grey,
onPressed: (){
@@ -242,7 +240,8 @@ class _UnitDetailsState extends State<UnitDetails> {
],
borderRadius: BorderRadius.circular(5)
),
height: MediaQuery.of(context).size.height/4.8,
height:220,
// height: MediaQuery.of(context).size.height/4.8,
width: MediaQuery.of(context).size.width*0.75,
child: Column(
children: <Widget>[
@@ -279,14 +278,14 @@ class _UnitDetailsState extends State<UnitDetails> {
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
TextButton(
child: Text('Back',style: TextStyle(color: Colors.indigo),),
onPressed: (){
Navigator.pop(context);
Navigator.pop(context);
},
),
FlatButton(
TextButton(
child: Text('Cancel',style: TextStyle(color: Colors.indigo)),
onPressed: (){
Navigator.pop(context);
@@ -367,7 +366,7 @@ class _UnitDetailsState extends State<UnitDetails> {
// },
// ),
// actions: <Widget>[
// FlatButton(
// TextButton(
// child: Text('Done'),
// onPressed: ()async{
// jenisImages.add(selected);
@@ -375,7 +374,7 @@ class _UnitDetailsState extends State<UnitDetails> {
// Navigator.pop(context,true);
// },
// ),
// FlatButton(
// TextButton(
// child: Text('Cancel'),
// onPressed: (){
// Navigator.pop(context,false);
@@ -387,11 +386,10 @@ class _UnitDetailsState extends State<UnitDetails> {
// }
// );
// if (selected){
File temp = await ImagePicker.pickImage(source: ImageSource.camera,maxWidth: 800,imageQuality: 80);
XFile temp = await ImagePicker().pickImage(source: ImageSource.camera,maxWidth: 800,imageQuality: 80);
if(temp!=null){
isChanged = true;
blobList[index].blob_file = temp.readAsBytesSync();
temp.deleteSync();
blobList[index].blob_file = await temp.readAsBytes();
// if(widget.idInsert!=null) {
// blobIds.add(null);
// isChanged = true;
@@ -608,7 +606,10 @@ class _UnitDetailsState extends State<UnitDetails> {
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
FlatButton(
TextButton(
style: TextButton.styleFrom(
backgroundColor: Colors.green,
),
child: Text((widget.unit.flag=='FALSE')?'Add':'Save'),
onPressed: ()async{
bool succeed = false;
@@ -758,9 +759,9 @@ class _UnitDetailsState extends State<UnitDetails> {
// util.showFlushbar(context,errMsg);
// }
},
color: Colors.green,
),
FlatButton(
TextButton(
child: Text('Cancel'),
onPressed: ()async {
if(widget.unit.flag=='TRUE'){
@@ -782,7 +783,8 @@ class _UnitDetailsState extends State<UnitDetails> {
],
borderRadius: BorderRadius.circular(5)
),
height: MediaQuery.of(context).size.height/4.8,
height:220,
// height: MediaQuery.of(context).size.height/4.8,
width: MediaQuery.of(context).size.width*0.75,
child: Column(
children: <Widget>[
@@ -819,14 +821,14 @@ class _UnitDetailsState extends State<UnitDetails> {
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
TextButton(
child: Text('Proceed'),
onPressed: (){
Navigator.pop(context);
Navigator.popUntil(context,ModalRoute.withName('/stocking'));
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
// color: Colors.grey,
onPressed: (){
@@ -866,7 +868,8 @@ class _UnitDetailsState extends State<UnitDetails> {
],
borderRadius: BorderRadius.circular(5)
),
height: MediaQuery.of(context).size.height/4.8,
height:220,
// height: MediaQuery.of(context).size.height/4.8,
width: MediaQuery.of(context).size.width*0.75,
child: Column(
children: <Widget>[
@@ -903,14 +906,14 @@ class _UnitDetailsState extends State<UnitDetails> {
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
FlatButton(
TextButton(
child: Text('Back'),
onPressed: (){
Navigator.pop(context);
Navigator.popUntil(context,ModalRoute.withName('/stocking'));
},
),
FlatButton(
TextButton(
child: Text('Cancel'),
onPressed: (){
Navigator.pop(context);
@@ -930,7 +933,9 @@ class _UnitDetailsState extends State<UnitDetails> {
else Navigator.pop(context);
}
},
color: Colors.redAccent,
style: TextButton.styleFrom(
backgroundColor: Colors.redAccent,
),
)
],
)


+ 0
- 43
local_plugin/location-3.0.2/.gitignore Wyświetl plik

@@ -1,43 +0,0 @@
.atom/
.idea/
.vscode/

.packages
.pub/
.dart_tool/
pubspec.lock
flutter_export_environment.sh

examples/all_plugins/pubspec.yaml

Podfile
Podfile.lock
Pods/
.symlinks/
**/Flutter/App.framework/
**/Flutter/Flutter.framework/
**/Flutter/Generated.xcconfig
**/Flutter/flutter_assets/
ServiceDefinitions.json
xcuserdata/
*.xcworkspace
**/DerivedData/

local.properties
keystore.properties
.gradle/
gradlew
gradlew.bat
gradle-wrapper.jar
.flutter-plugins-dependencies
*.iml

GeneratedPluginRegistrant.h
GeneratedPluginRegistrant.m
GeneratedPluginRegistrant.java
build/
.flutter-plugins

.project
.classpath
.settings

+ 0
- 162
local_plugin/location-3.0.2/CHANGELOG.md Wyświetl plik

@@ -1,162 +0,0 @@
## [3.0.2] 3rd April 2020

- Improve code coverage
- Fix a bug when requesting permission using an intent (thanks to kennethj)
- Fix a bug when onDetachedFromActivity is called (thanks to creativepsyco)

## [3.0.1] 27th March 2020

- Fix a crash happening during iOS build

## [3.0.0] 26th March 2020

- Add Web and macOS as new supported platforms (huge thanks to long1eu)
- [BREAKING] Enums are now following Dart guidelines.
- [BREAKING] _onLocationChanged_ is now a getter to follow Dart guidelines.

## [2.5.4] 11st March 2020

- Update documentation
- Fix: Airplane mode was preventing location from being requested
- Fix: Not crashing when activity is not set on Android

## [2.5.3] 26th February 2020

- Improve code coverage
- Update documentation

## [2.5.2] 25th February 2020

- Fix crash on pre-1.12 projects
- Align PermissionStatus on iOS with Android

## [2.5.1] 23rd February 2020

- Fix SDK version

## [2.5.0] 23rd February 2020

- [BREAKING] The `requestPermission` and `hasPermission` are now returning PermissionStatus enum.
- Upgrade to Android Embedding V2 (follow https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects if the plugin isn't working after upgrade)
- Resolve getLocation when service is disabled thanks to nicowernli
- Update example app
- Fix bugs leading to non returning code
- `getLocation` now throws properly
- `pub.dev` now states that the plugin is not compatible with Flutter Web (yet)

## [2.4.0] 14th February 2020

- Align timestamp in Android and iOS, previously the iOS timestamp was in seconds instead of milliseconds. Thanks to 781flyingdutchman.

## [2.3.7] 08th January 2020

- Fix bug where requestPermission is called after the user has already denied the system location dialog, then this method call would never return.

## [2.3.6] 07th January 2020

- Fix ClassCastException errors on some Android phones when requesting Location status.

## [2.3.5] 10th April 2019

- Fix incompatibily with headless plugins thanks to ehhc
- Fix error with iOS when permission already given
- Add Google maps example

## [2.3.4] 8th April 2019

- Fix error on Android 21 API thanks to noordawod
- Update Google API version

## [2.3.3] 31th March 2019

- Align altitude on Sea Level when available on Android (matching iOS altitude).

## [2.3.2] 27th March 2019

- Remove GPS limitation on Android

## [2.3.1] 25th March 2019

- Fixes README
- Fixes requestPermission not responding the correct result on iOS

## [2.3.0] 22nd March 2019

- Update example App with proper cancel
- Add possibility to set accuracy, interval and minimum notification ditance of the requests.
- Add LocationAccuracy object

## [2.2.0] 19th March 2019

- Actually updating locatino when using getLocation (not only relying on LastLocation)
- Add timestamp to LocationData
- Add serviceEnabled method to check whether Location Service is enabled.
- Add requestService method to ask the user to activate the location service.
- Fix continuous callback heading

## [2.1.0] 16th Match 2019

- iOS permission should be closer to Android permission behaviour thanks to PerrchicK
- Adding requestPermission(), to manually request permission
- Several feature fixed for less crash when using the plugin
- Code Cleanup
- Update Readme and add a warning for the location bug in iOS simulator

## [2.0.0] 25th January 2019

- Code cleanup
- BREAKING CHANGE: Change Dart API to return structured data rather than a map.

## [1.4.0] 21st August 2018

- Add lazy permission request thanks to yathit
- Add hasPermission() thanks to vagrantrobbie
- Bug correction thanks to jalpedersen
- Add more examples

## [1.3.4] 4th June 2018

- Fix crash for Android API pre 27 thanks to matthewtsmith.

## [1.3.3] 30th May 2018

- Correct implementation of iOS plugin to match Android behaviour. No need to call getLocation
to get permissions for location callbacks.

## [1.3.2] 30th May 2018

- Change implementation to api in build.gradle in order to solve incompatibilities between
GMS versions thanks to luccascorrea

## [1.3.1] 29th May 2018

- Added speed and speed_accuracy (only Android truly discover speed accuracy, so its always 0 for now on iOS)
- Solved a crash

## [1.3.0] 27th May 2018

- Make it compatible with Firebase thanks to quangIO
- Resolve runtime error exception thanks to jharrison902
- Update gitignore thanks to bcko

## [1.2.0] 5th April 2018

- Permissions denied on Android handled thanks to g123k
- Dart 2 update thanks to efortuna

## [1.1.6] - 19th Octobre 2017.

- iOS code from Swift to Objective-C thanks to fluff

## [1.1.1] - 20th July 2017.

- Fixes for iOS result's format.

## [1.1.0] - 17th July 2017.

- Added permission check for Android 6+ (thanks netdur). Still no callback when permissions granted
so aiming SDK 21 is safer.

## [1.0.0] - 7th July 2017.

- Initial Release.

+ 0
- 19
local_plugin/location-3.0.2/LICENSE Wyświetl plik

@@ -1,19 +0,0 @@
Copyright (c) 2017, Guillaume Bernos.

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

+ 0
- 156
local_plugin/location-3.0.2/README.md Wyświetl plik

@@ -1,156 +0,0 @@
# Flutter Location Plugin

[![pub package](https://img.shields.io/pub/v/location.svg)](https://pub.dartlang.org/packages/location) ![Cirrus CI - Task and Script Build Status](https://img.shields.io/cirrus/github/Lyokone/flutterlocation?task=test)
[![codecov](https://codecov.io/gh/Lyokone/flutterlocation/branch/master/graph/badge.svg)](https://codecov.io/gh/Lyokone/flutterlocation)

This plugin for [Flutter](https://flutter.io)
handles getting location on Android and iOS. It also provides callbacks when location is changed.

<p align="center">
<img src="https://raw.githubusercontent.com/Lyokone/flutterlocation/master/location/src/demo_readme.gif" alt="Demo App" style="margin:auto" width="372" height="686">
</p>

## Getting Started

Add this to your package's `pubspec.yaml` file:

```yaml
dependencies:
location: ^3.0.0
```

### Android

With Flutter 1.12, all the dependencies are automatically added to your project.
If your project was created before Flutter 1.12, you may need to follow [this](https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects).

### iOS

And to use it in iOS, you have to add this permission in Info.plist :

```xml
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
```

### Web

Nothing to do, the plugin works directly out of box.

### macOS

Ensure that the application is properly "sandboxed" and that the location is enabled. You can do this in Xcode with the following steps:

1. In the project navigator, click on your application's target. This should bring up a view with tabs such as "General", "Capabilities", "Resource Tags", etc.
1. Click on the "Capabilities" tab. This will give you a list of items such as "App Groups", "App Sandbox" and so on. Each item will have an "On/Off" button.
1. Turn on the "App Sandbox" item and press the ">" button on the left to show the sandbox stuff.
1. In the "App Data" section, select "Location".

Add this permission in Info.plist :

```xml
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
```

## Usage

Then you just have to import the package with

```dart
import 'package:location/location.dart';
```

In order to request location, you should always check manually Location Service status and Permission status.

```dart
Location location = new Location();

bool _serviceEnabled;
PermissionStatus _permissionGranted;
LocationData _locationData;

_serviceEnabled = await location.serviceEnabled();
if (!_serviceEnabled) {
_serviceEnabled = await location.requestService();
if (!_serviceEnabled) {
return;
}
}

_permissionGranted = await location.hasPermission();
if (_permissionGranted == PermissionStatus.denied) {
_permissionGranted = await location.requestPermission();
if (_permissionGranted != PermissionStatus.granted) {
return;
}
}

_locationData = await location.getLocation();
```

You can also get continuous callbacks when your position is changing:

```dart
location.onLocationChanged.listen((LocationData currentLocation) {
// Use current location
});
```

Be sure to check the example project to get other code samples.

## Public Methods Summary

| Return | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Future\<PermissionStatus> | **requestPermission()** <br>Request the Location permission. Return a PermissionStatus to know if the permission has been granted. |
| Future\<PermissionStatus> | **hasPermission()** <br>Return a PermissionStatus to know the state of the location permission. |
| Future\<bool> | **serviceEnabled()** <br>Return a boolean to know if the Location Service is enabled or if the user manually deactivated it. |
| Future\<bool> | **requestService()** <br>Show an alert dialog to request the user to activate the Location Service. On iOS, will only display an alert due to Apple Guidelines, the user having to manually go to Settings. Return a boolean to know if the Location Service has been activated (always `false` on iOS). |
| Future\<bool> | **changeSettings(LocationAccuracy accuracy = LocationAccuracy.HIGH, int interval = 1000, double distanceFilter = 0)** <br>Will change the settings of futur requests. `accuracy`will describe the accuracy of the request (see the LocationAccuracy object). `interval` will set the desired interval for active location updates, in milliseconds (only affects Android). `distanceFilter` set the minimum displacement between location updates in meters. |
| Future\<LocationData> | **getLocation()** <br>Allow to get a one time position of the user. It will try to request permission if not granted yet and will throw a `PERMISSION_DENIED` error code if permission still not granted. |
| Stream\<LocationData> | **onLocationChanged** <br>Get the stream of the user's location. It will try to request permission if not granted yet and will throw a `PERMISSION_DENIED` error code if permission still not granted. |

You should try to manage permission manually with `requestPermission()` to avoid error, but plugin will try handle some cases for you.

## Objects

```dart
class LocationData {
final double latitude; // Latitude, in degrees
final double longitude; // Longitude, in degrees
final double accuracy; // Estimated horizontal accuracy of this location, radial, in meters
final double altitude; // In meters above the WGS 84 reference ellipsoid
final double speed; // In meters/second
final double speedAccuracy; // In meters/second, always 0 on iOS
final double heading; //Heading is the horizontal direction of travel of this device, in degrees
final double time; //timestamp of the LocationData
}


enum LocationAccuracy {
powerSave, // To request best accuracy possible with zero additional power consumption,
low, // To request "city" level accuracy
balanced, // To request "block" level accuracy
high, // To request the most accurate locations available
navigation // To request location for navigation usage (affect only iOS)
}

// Status of a permission request to use location services.
enum PermissionStatus {
/// The permission to use location services has been granted.
granted,
// The permission to use location services has been denied by the user. May have been denied forever on iOS.
denied,
// The permission to use location services has been denied forever by the user. No dialog will be displayed on permission request.
deniedForever
}

```

Note: you can convert the timestamp into a `DateTime` with: `DateTime.fromMillisecondsSinceEpoch(locationData.time.toInt())`

## Feedback

Please feel free to [give me any feedback](https://github.com/Lyokone/flutterlocation/issues)
helping support this plugin !

+ 0
- 42
local_plugin/location-3.0.2/android/build.gradle Wyświetl plik

@@ -1,42 +0,0 @@
group 'com.lyokone.location'
version '1.0-SNAPSHOT'

buildscript {
repositories {
google()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
}
}

rootProject.allprojects {
repositories {
google()
jcenter()

}
}




apply plugin: 'com.android.library'

android {
compileSdkVersion 28

defaultConfig {
minSdkVersion 16
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
lintOptions {
disable 'InvalidPackage'
}
}

dependencies {
api 'com.google.android.gms:play-services-location:16.+'
}

+ 0
- 3
local_plugin/location-3.0.2/android/gradle.properties Wyświetl plik

@@ -1,3 +0,0 @@
android.enableJetifier=true
android.useAndroidX=true
org.gradle.jvmargs=-Xmx1536M

+ 0
- 6
local_plugin/location-3.0.2/android/gradle/wrapper/gradle-wrapper.properties Wyświetl plik

@@ -1,6 +0,0 @@
#Sun Feb 16 18:22:06 CET 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

+ 0
- 1
local_plugin/location-3.0.2/android/settings.gradle Wyświetl plik

@@ -1 +0,0 @@
rootProject.name = 'location'

+ 0
- 6
local_plugin/location-3.0.2/android/src/main/AndroidManifest.xml Wyświetl plik

@@ -1,6 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lyokone.location">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

</manifest>

+ 0
- 425
local_plugin/location-3.0.2/android/src/main/java/com/lyokone/location/FlutterLocation.java Wyświetl plik

@@ -1,425 +0,0 @@
package com.lyokone.location;

import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationManager;
import android.location.OnNmeaMessageListener;
import android.os.Build;
import android.os.Looper;
import android.util.Log;

import com.google.android.gms.common.api.ApiException;
import com.google.android.gms.common.api.ResolvableApiException;
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationCallback;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationResult;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.location.LocationSettingsRequest;
import com.google.android.gms.location.LocationSettingsResponse;
import com.google.android.gms.location.LocationSettingsStatusCodes;
import com.google.android.gms.location.SettingsClient;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.OnSuccessListener;

import java.util.HashMap;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import io.flutter.plugin.common.EventChannel.EventSink;
import io.flutter.plugin.common.MethodChannel.Result;
import io.flutter.plugin.common.PluginRegistry;

class FlutterLocation
implements PluginRegistry.RequestPermissionsResultListener, PluginRegistry.ActivityResultListener {
private static final String TAG = "FlutterLocation";

private final Context applicationContext;

@Nullable
public Activity activity;

private static final int REQUEST_PERMISSIONS_REQUEST_CODE = 34;
private static final int REQUEST_CHECK_SETTINGS = 0x1;

private static final int GPS_ENABLE_REQUEST = 0x1001;

public FusedLocationProviderClient mFusedLocationClient;
private SettingsClient mSettingsClient;
private static LocationRequest mLocationRequest;
private LocationSettingsRequest mLocationSettingsRequest;
public LocationCallback mLocationCallback;

@TargetApi(Build.VERSION_CODES.N)
private OnNmeaMessageListener mMessageListener;

private Double mLastMslAltitude;

// Parameters of the request
private static long updateIntervalMilliseconds = 5000;
private static long fastestUpdateIntervalMilliseconds = updateIntervalMilliseconds / 2;
private static Integer locationAccuracy = LocationRequest.PRIORITY_HIGH_ACCURACY;
private static float distanceFilter = 0f;

public EventSink events;

// Store result until a permission check is resolved
public Result result;

// Store result until a location is getting resolved
public Result getLocationResult;

private int locationPermissionState;

private boolean waitingForPermission = false;
private LocationManager locationManager;

public HashMap<Integer, Integer> mapFlutterAccuracy = new HashMap<Integer, Integer>() {
{
put(0, LocationRequest.PRIORITY_NO_POWER);
put(1, LocationRequest.PRIORITY_LOW_POWER);
put(2, LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
put(3, LocationRequest.PRIORITY_HIGH_ACCURACY);
put(4, LocationRequest.PRIORITY_HIGH_ACCURACY);
}
};

FlutterLocation(Context applicationContext, @Nullable Activity activity) {
this.applicationContext = applicationContext;
this.activity = activity;
}

FlutterLocation(PluginRegistry.Registrar registrar) {
this(registrar.context(), registrar.activity());
registrar.addRequestPermissionsResultListener(this);
}

void setActivity(@Nullable Activity activity) {
this.activity = activity;
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(activity);
mSettingsClient = LocationServices.getSettingsClient(activity);
locationManager = (LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);

createLocationCallback();
createLocationRequest();
buildLocationSettingsRequest();
}

@Override
public boolean onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
return onRequestPermissionsResultHandler(requestCode, permissions, grantResults);
}

public boolean onRequestPermissionsResultHandler(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_PERMISSIONS_REQUEST_CODE && permissions.length == 1
&& permissions[0].equals(Manifest.permission.ACCESS_FINE_LOCATION)) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Checks if this permission was automatically triggered by a location request
if (getLocationResult != null || events != null) {
startRequestingLocation();
}
if (result != null) {
result.success(1);
result = null;
}
} else {
if (!shouldShowRequestPermissionRationale()) {
sendError("PERMISSION_DENIED_NEVER_ASK",
"Location permission denied forever - please open app settings", null);
if (result != null) {
result.success(2);
result = null;
}
} else {
sendError("PERMISSION_DENIED", "Location permission denied", null);
if (result != null) {
result.success(0);
result = null;
}
}
}
return true;
}
return false;

}

@Override
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
if (result == null) {
return false;
}
switch (requestCode) {
case GPS_ENABLE_REQUEST:
if (resultCode == Activity.RESULT_OK) {
result.success(1);
} else {
result.success(0);
}
break;
case REQUEST_CHECK_SETTINGS:
if (resultCode == Activity.RESULT_OK) {
startRequestingLocation();
return true;
}

result.error("SERVICE_STATUS_DISABLED", "Failed to get location. Location services disabled", null);
return false;
default:
return false;
}
return true;
}

public void changeSettings(Integer locationAccuracy, Long updateIntervalMilliseconds,
Long fastestUpdateIntervalMilliseconds, Float distanceFilter) {
this.locationAccuracy = locationAccuracy;
this.updateIntervalMilliseconds = updateIntervalMilliseconds;
this.fastestUpdateIntervalMilliseconds = fastestUpdateIntervalMilliseconds;
this.distanceFilter = distanceFilter;

createLocationCallback();
createLocationRequest();
buildLocationSettingsRequest();
}

private void sendError(String errorCode, String errorMessage, Object errorDetails) {
if (getLocationResult != null) {
getLocationResult.error(errorCode, errorMessage, errorDetails);
getLocationResult = null;
}
if (events != null) {
events.error(errorCode, errorMessage, errorDetails);
events = null;
}
}

/**
* Creates a callback for receiving location events.
*/
private void createLocationCallback() {
mLocationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
super.onLocationResult(locationResult);
Location location = locationResult.getLastLocation();
HashMap<String, Double> loc = new HashMap<>();
loc.put("latitude", location.getLatitude());
loc.put("longitude", location.getLongitude());
loc.put("accuracy", (double) location.getAccuracy());

// Using NMEA Data to get MSL level altitude
if (mLastMslAltitude == null || Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
loc.put("altitude", location.getAltitude());
} else {
loc.put("altitude", mLastMslAltitude);
}

loc.put("speed", (double) location.getSpeed());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
loc.put("speed_accuracy", (double) location.getSpeedAccuracyMetersPerSecond());
}
loc.put("heading", (double) location.getBearing());
loc.put("time", (double) location.getTime());

if (getLocationResult != null) {
getLocationResult.success(loc);
getLocationResult = null;
}
if (events != null) {
events.success(loc);
} else {
mFusedLocationClient.removeLocationUpdates(mLocationCallback);
}
}
};

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
mMessageListener = new OnNmeaMessageListener() {
@Override
public void onNmeaMessage(String message, long timestamp) {
if (message.startsWith("$")) {
String[] tokens = message.split(",");
String type = tokens[0];

// Parse altitude above sea level, Detailed description of NMEA string here
// http://aprs.gids.nl/nmea/#gga
if (type.startsWith("$GPGGA") && tokens.length > 9) {
if (!tokens[9].isEmpty()) {
mLastMslAltitude = Double.parseDouble(tokens[9]);
}
}
}
}
};
}
}

/**
* Sets up the location request. Android has two location request settings:
*/
private void createLocationRequest() {
this.mLocationRequest = LocationRequest.create();

this.mLocationRequest.setInterval(this.updateIntervalMilliseconds);
this.mLocationRequest.setFastestInterval(this.fastestUpdateIntervalMilliseconds);
this.mLocationRequest.setPriority(this.locationAccuracy);
this.mLocationRequest.setSmallestDisplacement(this.distanceFilter);
}

/**
* Uses a
* {@link com.google.android.gms.location.LocationSettingsRequest.Builder} to
* build a {@link com.google.android.gms.location.LocationSettingsRequest} that
* is used for checking if a device has the needed location settings.
*/
private void buildLocationSettingsRequest() {
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder();
builder.addLocationRequest(mLocationRequest);
mLocationSettingsRequest = builder.build();
}

/**
* Return the current state of the permissions needed.
*/
public boolean checkPermissions() {
this.locationPermissionState = ActivityCompat.checkSelfPermission(activity,
Manifest.permission.ACCESS_FINE_LOCATION);
return this.locationPermissionState == PackageManager.PERMISSION_GRANTED;
}

public void requestPermissions() {
if (checkPermissions()) {
result.success(1);
return;
}
ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.ACCESS_FINE_LOCATION },
REQUEST_PERMISSIONS_REQUEST_CODE);
}

public boolean shouldShowRequestPermissionRationale() {
return ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACCESS_FINE_LOCATION);
}

public boolean checkServiceEnabled(final Result result) {
boolean gps_enabled = false;
boolean network_enabled = false;

try {
gps_enabled = this.locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
network_enabled = this.locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch (Exception ex) {
result.error("SERVICE_STATUS_ERROR", "Location service status couldn't be determined", null);
return false;
}
if (gps_enabled && network_enabled) {
if (result != null) {
result.success(1);
}
return true;

} else {
if (result != null) {
result.success(0);
}
return false;
}
}

public void requestService(final Result result) {
if (this.checkServiceEnabled(null)) {
result.success(1);
return;
}
this.result = result;
mSettingsClient.checkLocationSettings(mLocationSettingsRequest).addOnFailureListener(activity,
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
if (e instanceof ResolvableApiException) {
ResolvableApiException rae = (ResolvableApiException) e;
int statusCode = rae.getStatusCode();
switch (statusCode) {
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
try {
// Show the dialog by calling startResolutionForResult(), and check the
// result in onActivityResult().
rae.startResolutionForResult(activity, GPS_ENABLE_REQUEST);
} catch (IntentSender.SendIntentException sie) {
result.error("SERVICE_STATUS_ERROR", "Could not resolve location request",
null);
}
break;
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
result.error("SERVICE_STATUS_DISABLED",
"Failed to get location. Location services disabled", null);
break;
}
} else {
// This should not happen according to Android documentation but it has been
// observed on some phones.
result.error("SERVICE_STATUS_ERROR", "Unexpected error type received", null);
}
}
});
}

public void startRequestingLocation() {
mSettingsClient.checkLocationSettings(mLocationSettingsRequest)
.addOnSuccessListener(activity, new OnSuccessListener<LocationSettingsResponse>() {
@Override
public void onSuccess(LocationSettingsResponse locationSettingsResponse) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
locationManager.addNmeaListener(mMessageListener);
}
mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback,
Looper.myLooper());
}
}).addOnFailureListener(activity, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
if (e instanceof ResolvableApiException) {
ResolvableApiException rae = (ResolvableApiException) e;
int statusCode = rae.getStatusCode();
switch (statusCode) {
case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
try {
// Show the dialog by calling startResolutionForResult(), and check the
// result in onActivityResult().
rae.startResolutionForResult(activity, REQUEST_CHECK_SETTINGS);
} catch (IntentSender.SendIntentException sie) {
Log.i(TAG, "PendingIntent unable to execute request.");
}
break;
}
} else {
ApiException ae = (ApiException) e;
int statusCode = ae.getStatusCode();
switch (statusCode) {
case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
// This error code happens during AirPlane mode.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
locationManager.addNmeaListener(mMessageListener);
}
mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback,
Looper.myLooper());
break;
default:
// This should not happen according to Android documentation but it has been
// observed on some phones.
sendError("UNEXPECTED_ERROR", e.getMessage(), null);
break;
}
}
}
});
}

}

+ 0
- 113
local_plugin/location-3.0.2/android/src/main/java/com/lyokone/location/LocationPlugin.java Wyświetl plik

@@ -1,113 +0,0 @@
package com.lyokone.location;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityAware;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.plugin.common.PluginRegistry.Registrar;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.PluginRegistry;

/**
* LocationPlugin
*/
public class LocationPlugin implements FlutterPlugin, ActivityAware {
private static final String TAG = "LocationPlugin";
@Nullable
private MethodCallHandlerImpl methodCallHandler;
@Nullable
private StreamHandlerImpl streamHandlerImpl;

@Nullable
private FlutterLocation location;

private FlutterPluginBinding pluginBinding;
private ActivityPluginBinding activityBinding;

public static void registerWith(Registrar registrar) {
FlutterLocation flutterLocation = new FlutterLocation(registrar);
flutterLocation.setActivity(registrar.activity());

MethodCallHandlerImpl handler = new MethodCallHandlerImpl(flutterLocation);
handler.startListening(registrar.messenger());

StreamHandlerImpl streamHandlerImpl = new StreamHandlerImpl(flutterLocation);
streamHandlerImpl.startListening(registrar.messenger());
}

@Override
public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
pluginBinding = binding;

location = new FlutterLocation(binding.getApplicationContext(), /* activity= */ null);
methodCallHandler = new MethodCallHandlerImpl(location);
methodCallHandler.startListening(binding.getBinaryMessenger());

streamHandlerImpl = new StreamHandlerImpl(location);
streamHandlerImpl.startListening(binding.getBinaryMessenger());
}

@Override
public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
pluginBinding = null;

if (methodCallHandler != null) {
methodCallHandler.stopListening();
methodCallHandler = null;
}

if (streamHandlerImpl != null) {
streamHandlerImpl.stopListening();
streamHandlerImpl = null;
}

location = null;
}

@Override
public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {
location.setActivity(binding.getActivity());

activityBinding = binding;
setup(pluginBinding.getBinaryMessenger(), activityBinding.getActivity(), null);
}

@Override
public void onDetachedFromActivity() {
tearDown();
}

@Override
public void onDetachedFromActivityForConfigChanges() {
onDetachedFromActivity();
}

@Override
public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) {
onAttachedToActivity(binding);
}

private void setup(final BinaryMessenger messenger, final Activity activity,
final PluginRegistry.Registrar registrar) {
if (registrar != null) {
// V1 embedding setup for activity listeners.
registrar.addActivityResultListener(location);
registrar.addRequestPermissionsResultListener(location);
} else {
// V2 embedding setup for activity listeners.
activityBinding.addActivityResultListener(location);
activityBinding.addRequestPermissionsResultListener(location);
}
}

private void tearDown() {
activityBinding.removeActivityResultListener(location);
activityBinding.removeRequestPermissionsResultListener(location);
}
}

+ 0
- 134
local_plugin/location-3.0.2/android/src/main/java/com/lyokone/location/MethodCallHandlerImpl.java Wyświetl plik

@@ -1,134 +0,0 @@
package com.lyokone.location;

import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import androidx.annotation.Nullable;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
import io.flutter.plugin.common.MethodChannel.Result;

final class MethodCallHandlerImpl implements MethodCallHandler {
private static final String TAG = "MethodCallHandlerImpl";

private final FlutterLocation location;
@Nullable
private MethodChannel channel;

private static final String METHOD_CHANNEL_NAME = "lyokone/location";

MethodCallHandlerImpl(FlutterLocation location) {
this.location = location;
}

@Override
public void onMethodCall(MethodCall call, Result result) {
if (location.activity == null) {
result.error("NO_ACTIVITY", null, null);
return;
}

switch (call.method) {
case "changeSettings":
onChangeSettings(call, result);
break;
case "getLocation":
onGetLocation(result);
break;
case "hasPermission":
onHasPermission(result);
break;
case "requestPermission":
onRequestPermission(result);
break;
case "serviceEnabled":
location.checkServiceEnabled(result);
break;
case "requestService":
location.requestService(result);
break;
default:
result.notImplemented();
break;
}
}

/**
* Registers this instance as a method call handler on the given
* {@code messenger}.
*/
void startListening(BinaryMessenger messenger) {
if (channel != null) {
Log.wtf(TAG, "Setting a method call handler before the last was disposed.");
stopListening();
}

channel = new MethodChannel(messenger, METHOD_CHANNEL_NAME);
channel.setMethodCallHandler(this);
}

/**
* Clears this instance from listening to method calls.
*/
void stopListening() {
if (channel == null) {
Log.d(TAG, "Tried to stop listening when no MethodChannel had been initialized.");
return;
}

channel.setMethodCallHandler(null);
channel = null;
}

private void onChangeSettings(MethodCall call, Result result) {
try {
final Integer locationAccuracy = location.mapFlutterAccuracy.get(call.argument("accuracy"));
final Long updateIntervalMilliseconds = new Long((int) call.argument("interval"));
final Long fastestUpdateIntervalMilliseconds = updateIntervalMilliseconds / 2;
final Float distanceFilter = new Float((double) call.argument("distanceFilter"));

location.changeSettings(locationAccuracy, updateIntervalMilliseconds, fastestUpdateIntervalMilliseconds,
distanceFilter);

result.success(1);
} catch (Exception e) {
result.error("CHANGE_SETTINGS_ERROR",
"An unexcepted error happened during location settings change:" + e.getMessage(), null);
}
}

private void onGetLocation(Result result) {
location.getLocationResult = result;
if (!location.checkPermissions()) {
location.requestPermissions();
} else {
location.startRequestingLocation();
}
}

private void onHasPermission(Result result) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
result.success(1);
return;
}

if (location.checkPermissions()) {
result.success(1);
} else {
result.success(0);
}
}

private void onRequestPermission(Result result) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
result.success(1);
return;
}

location.result = result;
location.requestPermissions();
}

}

+ 0
- 69
local_plugin/location-3.0.2/android/src/main/java/com/lyokone/location/StreamHandlerImpl.java Wyświetl plik

@@ -1,69 +0,0 @@
package com.lyokone.location;

import android.util.Log;
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.EventChannel;
import io.flutter.plugin.common.EventChannel.StreamHandler;
import io.flutter.plugin.common.EventChannel.EventSink;

class StreamHandlerImpl implements StreamHandler {
private static final String TAG = "StreamHandlerImpl";

private final FlutterLocation location;
private EventChannel channel;

private static final String STREAM_CHANNEL_NAME = "lyokone/locationstream";

StreamHandlerImpl(FlutterLocation location) {
this.location = location;
}

/**
* Registers this instance as a stream events handler on the given
* {@code messenger}.
*/
void startListening(BinaryMessenger messenger) {
if (channel != null) {
Log.wtf(TAG, "Setting a method call handler before the last was disposed.");
stopListening();
}

channel = new EventChannel(messenger, STREAM_CHANNEL_NAME);
channel.setStreamHandler(this);
}

/**
* Clears this instance from listening to stream events.
*/
void stopListening() {
if (channel == null) {
Log.d(TAG, "Tried to stop listening when no MethodChannel had been initialized.");
return;
}

channel.setStreamHandler(null);
channel = null;
}

@Override
public void onListen(Object arguments, final EventSink eventsSink) {
location.events = eventsSink;
if (location.activity == null) {
eventsSink.error("NO_ACTIVITY", null, null);
return;
}

if (!location.checkPermissions()) {
location.requestPermissions();
return;
}
location.startRequestingLocation();
}

@Override
public void onCancel(Object arguments) {
location.mFusedLocationClient.removeLocationUpdates(location.mLocationCallback);
location.events = null;
}

}

+ 0
- 4
local_plugin/location-3.0.2/darwin/Classes/LocationPlugin.h Wyświetl plik

@@ -1,4 +0,0 @@
#import <Flutter/Flutter.h>

@interface LocationPlugin : NSObject <FlutterPlugin>
@end

+ 0
- 321
local_plugin/location-3.0.2/darwin/Classes/LocationPlugin.m Wyświetl plik

@@ -1,321 +0,0 @@
#import "LocationPlugin.h"

#ifdef COCOAPODS
@import CoreLocation;
#else
#import <CoreLocation/CoreLocation.h>
#endif

@interface LocationPlugin() <FlutterStreamHandler, CLLocationManagerDelegate>
@property (strong, nonatomic) CLLocationManager *clLocationManager;
@property (copy, nonatomic) FlutterResult flutterResult;
@property (assign, nonatomic) BOOL locationWanted;
@property (assign, nonatomic) BOOL permissionWanted;

@property (copy, nonatomic) FlutterEventSink flutterEventSink;
@property (assign, nonatomic) BOOL flutterListening;
@property (assign, nonatomic) BOOL hasInit;
@end

@implementation LocationPlugin

+(void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
FlutterMethodChannel *channel =
[FlutterMethodChannel methodChannelWithName:@"lyokone/location"
binaryMessenger:registrar.messenger];
FlutterEventChannel *stream =
[FlutterEventChannel eventChannelWithName:@"lyokone/locationstream"
binaryMessenger:registrar.messenger];

LocationPlugin *instance = [[LocationPlugin alloc] init];
[registrar addMethodCallDelegate:instance channel:channel];
[stream setStreamHandler:instance];
}

-(instancetype)init {
self = [super init];

if (self) {
self.locationWanted = NO;
self.permissionWanted = NO;
self.flutterListening = NO;
self.hasInit = NO;
}
return self;
}

-(void)initLocation {
if (!(self.hasInit)) {
self.hasInit = YES;

if ([CLLocationManager locationServicesEnabled]) {
self.clLocationManager = [[CLLocationManager alloc] init];
self.clLocationManager.delegate = self;
self.clLocationManager.desiredAccuracy = kCLLocationAccuracyBest;
}
}
}

-(void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
[self initLocation];
if ([call.method isEqualToString:@"changeSettings"]) {
if ([CLLocationManager locationServicesEnabled]) {
NSDictionary *dictionary = @{
@"0" : @(kCLLocationAccuracyKilometer),
@"1" : @(kCLLocationAccuracyHundredMeters),
@"2" : @(kCLLocationAccuracyNearestTenMeters),
@"3" : @(kCLLocationAccuracyBest),
@"4" : @(kCLLocationAccuracyBestForNavigation)
};

self.clLocationManager.desiredAccuracy =
[dictionary[call.arguments[@"accuracy"]] doubleValue];
double distanceFilter = [call.arguments[@"distanceFilter"] doubleValue];
if (distanceFilter == 0){
distanceFilter = kCLDistanceFilterNone;
}
self.clLocationManager.distanceFilter = distanceFilter;
result(@1);
}
} else if ([call.method isEqualToString:@"getLocation"]) {
if (![CLLocationManager locationServicesEnabled]) {
result([FlutterError errorWithCode:@"SERVICE_STATUS_DISABLED" message:@"Failed to get location. Location services disabled" details:nil]);
return;
}
if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
// Location services are requested but user has denied
NSString *message = @"The user explicitly denied the use of location services for this "
"app or location services are currently disabled in Settings.";
result([FlutterError errorWithCode:@"PERMISSION_DENIED"
message:message
details:nil]);
return;
}

self.flutterResult = result;
self.locationWanted = YES;

if ([self isPermissionGranted]) {
[self.clLocationManager startUpdatingLocation];
} else {
[self requestPermission];
if ([self isPermissionGranted]) {
[self.clLocationManager startUpdatingLocation];
}
}
} else if ([call.method isEqualToString:@"hasPermission"]) {
if ([self isPermissionGranted]) {
result(@1);
} else {
result(@0);
}
} else if ([call.method isEqualToString:@"requestPermission"]) {
if ([self isPermissionGranted]) {
result(@1);
} else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) {
self.flutterResult = result;
self.permissionWanted = YES;
[self requestPermission];
} else {
result(@2);
}
} else if ([call.method isEqualToString:@"serviceEnabled"]) {
if ([CLLocationManager locationServicesEnabled]) {
result(@1);
} else {
result(@0);
}
} else if ([call.method isEqualToString:@"requestService"]) {
if ([CLLocationManager locationServicesEnabled]) {
result(@1);
} else {
#if TARGET_OS_OSX
NSAlert *alert = [[NSAlert alloc] init];
[alert setMessageText:@"Location is Disabled"];
[alert setInformativeText:@"To use location, go to your System Preferences > Security & Privacy > Privacy > Location Services."];
[alert addButtonWithTitle:@"Open"];
[alert addButtonWithTitle:@"Cancel"];
[alert beginSheetModalForWindow:NSApplication.sharedApplication.mainWindow
completionHandler:^(NSModalResponse returnCode) {
if (returnCode == NSAlertFirstButtonReturn) {
NSString *urlString = @"x-apple.systempreferences:com.apple.preference.security?Privacy_LocationServices";
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:urlString]];
} else {
NSLog(@"Cancel");
}
}];
#else
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location is Disabled"
message:@"To use location, go to your Settings App > Privacy > Location Services."
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil];
[alert show];
#endif
result(@0);
}
} else {
result(FlutterMethodNotImplemented);
}
}


-(void) requestPermission {
#if TARGET_OS_OSX
if ([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationWhenInUseUsageDescription"] != nil) {
if (@available(macOS 10.15, *)) {
[self.clLocationManager requestAlwaysAuthorization];
}
}
#else
if ([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationWhenInUseUsageDescription"] != nil) {
[self.clLocationManager requestWhenInUseAuthorization];
}
else if ([[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationAlwaysUsageDescription"] != nil) {
[self.clLocationManager requestAlwaysAuthorization];
}
#endif
else {
[NSException raise:NSInternalInconsistencyException format:
@"To use location in iOS8 and above you need to define either "
"NSLocationWhenInUseUsageDescription or NSLocationAlwaysUsageDescription in the app "
"bundle's Info.plist file"];
}
}

-(BOOL) isPermissionGranted {
BOOL isPermissionGranted = NO;
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
#if TARGET_OS_OSX
if (status == kCLAuthorizationStatusAuthorized) {
// Location services are available
isPermissionGranted = YES;
} else if (@available(macOS 10.12, *)) {
if (status == kCLAuthorizationStatusAuthorizedAlways) {
// Location services are available
isPermissionGranted = YES;
}
}
#else //if TARGET_OS_IOS
if (status == kCLAuthorizationStatusAuthorizedWhenInUse ||
status == kCLAuthorizationStatusAuthorizedAlways) {
// Location services are available
isPermissionGranted = YES;
}
#endif
else if (status == kCLAuthorizationStatusDenied ||
status == kCLAuthorizationStatusRestricted) {
// Location services are requested but user has denied / the app is restricted from
// getting location
isPermissionGranted = NO;
} else if (status == kCLAuthorizationStatusNotDetermined) {
// Location services never requested / the user still haven't decide
isPermissionGranted = NO;
} else {
isPermissionGranted = NO;
}
return isPermissionGranted;
}

-(FlutterError*)onListenWithArguments:(id)arguments eventSink:(FlutterEventSink)events {
self.flutterEventSink = events;
self.flutterListening = YES;

if ([self isPermissionGranted]) {
[self.clLocationManager startUpdatingLocation];
} else {
[self requestPermission];
}

return nil;
}

-(FlutterError*)onCancelWithArguments:(id)arguments {
self.flutterListening = NO;
[self.clLocationManager stopUpdatingLocation];
return nil;
}

#pragma mark - CLLocationManagerDelegate Methods

-(void)locationManager:(CLLocationManager*)manager
didUpdateLocations:(NSArray<CLLocation*>*)locations {
CLLocation *location = locations.firstObject;
NSTimeInterval timeInSeconds = [location.timestamp timeIntervalSince1970];
NSDictionary<NSString*,NSNumber*>* coordinatesDict =
@{
@"latitude": @(location.coordinate.latitude),
@"longitude": @(location.coordinate.longitude),
@"accuracy": @(location.horizontalAccuracy),
@"altitude": @(location.altitude),
@"speed": @(location.speed),
@"speed_accuracy": @0.0,
@"heading": @(location.course),
@"time": @(((double) timeInSeconds) * 1000.0) // in milliseconds since the epoch
};

if (self.locationWanted) {
self.locationWanted = NO;
self.flutterResult(coordinatesDict);
}
if (self.flutterListening) {
self.flutterEventSink(coordinatesDict);
} else {
[self.clLocationManager stopUpdatingLocation];
}
}

- (void)locationManager:(CLLocationManager *)manager
didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
if (status == kCLAuthorizationStatusDenied) {
// The user denied authorization
NSLog(@"User denied permissions");
if (self.permissionWanted) {
self.permissionWanted = NO;
self.flutterResult(@0);
}
}
#if TARGET_OS_OSX
else if (status == kCLAuthorizationStatusAuthorized) {
NSLog(@"User granted permissions");
if (self.permissionWanted) {
self.permissionWanted = NO;
self.flutterResult(@1);
}

if (self.locationWanted || self.flutterListening) {
[self.clLocationManager startUpdatingLocation];
}
} else if (@available(macOS 10.12, *)) {
if (status == kCLAuthorizationStatusAuthorizedAlways) {
NSLog(@"User granted permissions");
if (self.permissionWanted) {
self.permissionWanted = NO;
self.flutterResult(@1);
}

if (self.locationWanted || self.flutterListening) {
[self.clLocationManager startUpdatingLocation];
}
}
}
#else //if TARGET_OS_IOS
else if (status == kCLAuthorizationStatusAuthorizedWhenInUse ||
status == kCLAuthorizationStatusAuthorizedAlways) {
NSLog(@"User granted permissions");
if (self.permissionWanted) {
self.permissionWanted = NO;
self.flutterResult(@1);
}

if (self.locationWanted || self.flutterListening) {
[self.clLocationManager startUpdatingLocation];
}
}
#endif
}


@end

+ 0
- 43
local_plugin/location-3.0.2/example/.gitignore Wyświetl plik

@@ -1,43 +0,0 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/

# Flutter/Dart/Pub related
**/doc/api/
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.packages
.pub-cache/
.pub/
/build/

# Web related
lib/generated_plugin_registrant.dart

# Symbolication related
app.*.symbols

# Obfuscation related
app.*.map.json

# Exceptions to above rules.
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages

+ 0
- 10
local_plugin/location-3.0.2/example/.metadata Wyświetl plik

@@ -1,10 +0,0 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.

version:
revision: 0b8abb4724aa590dd0f429683339b1e045a1594d
channel: stable

project_type: app

+ 0
- 16
local_plugin/location-3.0.2/example/README.md Wyświetl plik

@@ -1,16 +0,0 @@
# location_example

Demonstrates how to use the location plugin.

## Getting Started

This project is a starting point for a Flutter application.

A few resources to get you started if this is your first Flutter project:

- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)

For help getting started with Flutter, view our
[online documentation](https://flutter.dev/docs), which offers tutorials,
samples, guidance on mobile development, and a full API reference.

+ 0
- 7
local_plugin/location-3.0.2/example/android/.gitignore Wyświetl plik

@@ -1,7 +0,0 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java

+ 0
- 60
local_plugin/location-3.0.2/example/android/app/build.gradle Wyświetl plik

@@ -1,60 +0,0 @@
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
compileSdkVersion 28

lintOptions {
disable 'InvalidPackage'
}

defaultConfig {
applicationId "com.lyokone.locationexample"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}

flutter {
source '../..'
}

dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

+ 0
- 12
local_plugin/location-3.0.2/example/android/app/src/androidTest/java/com/lyokone/locationexample/EmbedderV1ActivityTest.java Wyświetl plik

@@ -1,12 +0,0 @@
package com.lyokone.locationexample;

import androidx.test.rule.ActivityTestRule;
import dev.flutter.plugins.e2e.FlutterRunner;
import org.junit.Rule;
import org.junit.runner.RunWith;

@RunWith(FlutterRunner.class)
public class EmbedderV1ActivityTest {
@Rule
public ActivityTestRule<EmbedderV1Activity> rule = new ActivityTestRule<>(EmbedderV1Activity.class);
}

+ 0
- 13
local_plugin/location-3.0.2/example/android/app/src/androidTest/java/com/lyokone/locationexample/FlutterActivityTest.java Wyświetl plik

@@ -1,13 +0,0 @@
package com.lyokone.locationexample;

import androidx.test.rule.ActivityTestRule;
import dev.flutter.plugins.e2e.FlutterRunner;
import io.flutter.embedding.android.FlutterActivity;
import org.junit.Rule;
import org.junit.runner.RunWith;

@RunWith(FlutterRunner.class)
public class FlutterActivityTest {
@Rule
public ActivityTestRule<FlutterActivity> rule = new ActivityTestRule<>(FlutterActivity.class);
}

+ 0
- 7
local_plugin/location-3.0.2/example/android/app/src/debug/AndroidManifest.xml Wyświetl plik

@@ -1,7 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lyokone.locationexample">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

+ 0
- 35
local_plugin/location-3.0.2/example/android/app/src/main/AndroidManifest.xml Wyświetl plik

@@ -1,35 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lyokone.locationexample">

<uses-permission android:name="android.permission.INTERNET"/>

<application
android:name="io.flutter.app.FlutterApplication"
android:label="Location Example"
android:icon="@mipmap/ic_launcher">
<activity android:name="io.flutter.embedding.android.FlutterActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".EmbedderV1Activity"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
</activity>

<!-- 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" />
</application>
</manifest>

+ 0
- 15
local_plugin/location-3.0.2/example/android/app/src/main/java/com/lyokone/locationexample/EmbedderV1Activity.java Wyświetl plik

@@ -1,15 +0,0 @@
package com.lyokone.locationexample;

import android.os.Bundle;
import dev.flutter.plugins.e2e.E2EPlugin;
import io.flutter.app.FlutterActivity;
import com.lyokone.location.LocationPlugin;

public class EmbedderV1Activity extends FlutterActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LocationPlugin.registerWith(registrarFor("com.lyokone.location.LocationPlugin"));
E2EPlugin.registerWith(registrarFor("dev.flutter.plugins.e2e.E2EPlugin"));
}
}

+ 0
- 12
local_plugin/location-3.0.2/example/android/app/src/main/res/drawable/launch_background.xml Wyświetl plik

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />

<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>

BIN
local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png Wyświetl plik

Przed Po
Szerokość: 72  |  Wysokość: 72  |  Rozmiar: 544 B

BIN
local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png Wyświetl plik

Przed Po
Szerokość: 48  |  Wysokość: 48  |  Rozmiar: 442 B

BIN
local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png Wyświetl plik

Przed Po
Szerokość: 96  |  Wysokość: 96  |  Rozmiar: 721 B

BIN
local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png Wyświetl plik

Przed Po
Szerokość: 144  |  Wysokość: 144  |  Rozmiar: 1.0 KiB

BIN
local_plugin/location-3.0.2/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png Wyświetl plik

Przed Po
Szerokość: 192  |  Wysokość: 192  |  Rozmiar: 1.4 KiB

+ 0
- 8
local_plugin/location-3.0.2/example/android/app/src/main/res/values/styles.xml Wyświetl plik

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
Flutter draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
</resources>

+ 0
- 7
local_plugin/location-3.0.2/example/android/app/src/profile/AndroidManifest.xml Wyświetl plik

@@ -1,7 +0,0 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.lyokone.locationexample">
<!-- Flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

+ 0
- 29
local_plugin/location-3.0.2/example/android/build.gradle Wyświetl plik

@@ -1,29 +0,0 @@
buildscript {
repositories {
google()
jcenter()
}

dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
}
}

allprojects {
repositories {
google()
jcenter()
}
}

rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
delete rootProject.buildDir
}

+ 0
- 4
local_plugin/location-3.0.2/example/android/gradle.properties Wyświetl plik

@@ -1,4 +0,0 @@
org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true

+ 0
- 6
local_plugin/location-3.0.2/example/android/gradle/wrapper/gradle-wrapper.properties Wyświetl plik

@@ -1,6 +0,0 @@
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip

+ 0
- 15
local_plugin/location-3.0.2/example/android/settings.gradle Wyświetl plik

@@ -1,15 +0,0 @@
include ':app'

def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()

def plugins = new Properties()
def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
if (pluginsFile.exists()) {
pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
}

plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
include ":$name"
project(":$name").projectDir = pluginDirectory
}

+ 0
- 32
local_plugin/location-3.0.2/example/ios/.gitignore Wyświetl plik

@@ -1,32 +0,0 @@
*.mode1v3
*.mode2v3
*.moved-aside
*.pbxuser
*.perspectivev3
**/*sync/
.sconsign.dblite
.tags*
**/.vagrant/
**/DerivedData/
Icon?
**/Pods/
**/.symlinks/
profile
xcuserdata
**/.generated/
Flutter/App.framework
Flutter/Flutter.framework
Flutter/Flutter.podspec
Flutter/Generated.xcconfig
Flutter/app.flx
Flutter/app.zip
Flutter/flutter_assets/
Flutter/flutter_export_environment.sh
ServiceDefinitions.json
Runner/GeneratedPluginRegistrant.*

# Exceptions to above rules.
!default.mode1v3
!default.mode2v3
!default.pbxuser
!default.perspectivev3

+ 0
- 26
local_plugin/location-3.0.2/example/ios/Flutter/AppFrameworkInfo.plist Wyświetl plik

@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIdentifier</key>
<string>io.flutter.flutter.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>App</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>8.0</string>
</dict>
</plist>

+ 0
- 2
local_plugin/location-3.0.2/example/ios/Flutter/Debug.xcconfig Wyświetl plik

@@ -1,2 +0,0 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "Generated.xcconfig"

+ 0
- 2
local_plugin/location-3.0.2/example/ios/Flutter/Release.xcconfig Wyświetl plik

@@ -1,2 +0,0 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "Generated.xcconfig"

+ 0
- 571
local_plugin/location-3.0.2/example/ios/Runner.xcodeproj/project.pbxproj Wyświetl plik

@@ -1,571 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {

/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
DD112F2E4CE857F9EAC8D7C0 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7407592F4879066EE06C4B6F /* Pods_Runner.framework */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
9705A1C41CF9048500538489 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
3FBE85D93EBCD2C647CC5C16 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
525F09DDB3B227C2EB11FBA0 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
7407592F4879066EE06C4B6F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
FEA6CE46ED74487826D4931D /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
97C146EB1CF9000F007C117D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
DD112F2E4CE857F9EAC8D7C0 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
09889A7DB8497209299B2D08 /* Pods */ = {
isa = PBXGroup;
children = (
FEA6CE46ED74487826D4931D /* Pods-Runner.debug.xcconfig */,
525F09DDB3B227C2EB11FBA0 /* Pods-Runner.release.xcconfig */,
3FBE85D93EBCD2C647CC5C16 /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
51D5215045614C3EC62B9174 /* Frameworks */ = {
isa = PBXGroup;
children = (
7407592F4879066EE06C4B6F /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
9740EEB11CF90186004384FC /* Flutter */ = {
isa = PBXGroup;
children = (
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
9740EEB31CF90195004384FC /* Generated.xcconfig */,
);
name = Flutter;
sourceTree = "<group>";
};
97C146E51CF9000F007C117D = {
isa = PBXGroup;
children = (
9740EEB11CF90186004384FC /* Flutter */,
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
09889A7DB8497209299B2D08 /* Pods */,
51D5215045614C3EC62B9174 /* Frameworks */,
);
sourceTree = "<group>";
};
97C146EF1CF9000F007C117D /* Products */ = {
isa = PBXGroup;
children = (
97C146EE1CF9000F007C117D /* Runner.app */,
);
name = Products;
sourceTree = "<group>";
};
97C146F01CF9000F007C117D /* Runner */ = {
isa = PBXGroup;
children = (
97C146FA1CF9000F007C117D /* Main.storyboard */,
97C146FD1CF9000F007C117D /* Assets.xcassets */,
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
97C147021CF9000F007C117D /* Info.plist */,
97C146F11CF9000F007C117D /* Supporting Files */,
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
);
path = Runner;
sourceTree = "<group>";
};
97C146F11CF9000F007C117D /* Supporting Files */ = {
isa = PBXGroup;
children = (
);
name = "Supporting Files";
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
97C146ED1CF9000F007C117D /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
728928C3FAAC2B1379F26C61 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
820D6D96D117B3695A942791 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Runner;
productName = Runner;
productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
97C146E61CF9000F007C117D /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1020;
ORGANIZATIONNAME = "The Chromium Authors";
TargetAttributes = {
97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1;
LastSwiftMigration = 1100;
};
};
};
buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 97C146E51CF9000F007C117D;
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
97C146ED1CF9000F007C117D /* Runner */,
);
};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
97C146EC1CF9000F007C117D /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Thin Binary";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed\n/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin\n";
};
728928C3FAAC2B1379F26C61 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
820D6D96D117B3695A942791 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Run Script";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
97C146EA1CF9000F007C117D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
97C146FA1CF9000F007C117D /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
97C146FB1CF9000F007C117D /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
97C147001CF9000F007C117D /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
249021D3217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Profile;
};
249021D4217E4FDB00AE95B9 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.lyokone.location_example;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Profile;
};
97C147031CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
97C147041CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
97C147061CF9000F007C117D /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.lyokone.location_example;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Debug;
};
97C147071CF9000F007C117D /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter",
);
PRODUCT_BUNDLE_IDENTIFIER = com.lyokone.location_example;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
name = Release;
};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
97C147031CF9000F007C117D /* Debug */,
97C147041CF9000F007C117D /* Release */,
249021D3217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
97C147061CF9000F007C117D /* Debug */,
97C147071CF9000F007C117D /* Release */,
249021D4217E4FDB00AE95B9 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 97C146E61CF9000F007C117D /* Project object */;
}

+ 0
- 87
local_plugin/location-3.0.2/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme Wyświetl plik

@@ -1,87 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Profile"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
BuildableName = "Runner.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

+ 0
- 13
local_plugin/location-3.0.2/example/ios/Runner/AppDelegate.swift Wyświetl plik

@@ -1,13 +0,0 @@
import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}

+ 0
- 122
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json Wyświetl plik

@@ -1,122 +0,0 @@
{
"images" : [
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png",
"scale" : "3x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@3x.png",
"scale" : "3x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png",
"scale" : "1x"
},
{
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png",
"scale" : "2x"
},
{
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "Icon-App-1024x1024@1x.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png Wyświetl plik

Przed Po
Szerokość: 1024  |  Wysokość: 1024  |  Rozmiar: 11 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png Wyświetl plik

Przed Po
Szerokość: 20  |  Wysokość: 20  |  Rozmiar: 564 B

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png Wyświetl plik

Przed Po
Szerokość: 40  |  Wysokość: 40  |  Rozmiar: 1.3 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png Wyświetl plik

Przed Po
Szerokość: 60  |  Wysokość: 60  |  Rozmiar: 1.6 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png Wyświetl plik

Przed Po
Szerokość: 29  |  Wysokość: 29  |  Rozmiar: 1.0 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png Wyświetl plik

Przed Po
Szerokość: 58  |  Wysokość: 58  |  Rozmiar: 1.7 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png Wyświetl plik

Przed Po
Szerokość: 87  |  Wysokość: 87  |  Rozmiar: 1.9 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png Wyświetl plik

Przed Po
Szerokość: 40  |  Wysokość: 40  |  Rozmiar: 1.3 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png Wyświetl plik

Przed Po
Szerokość: 80  |  Wysokość: 80  |  Rozmiar: 1.9 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png Wyświetl plik

Przed Po
Szerokość: 120  |  Wysokość: 120  |  Rozmiar: 2.6 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png Wyświetl plik

Przed Po
Szerokość: 120  |  Wysokość: 120  |  Rozmiar: 2.6 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png Wyświetl plik

Przed Po
Szerokość: 180  |  Wysokość: 180  |  Rozmiar: 3.7 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png Wyświetl plik

Przed Po
Szerokość: 76  |  Wysokość: 76  |  Rozmiar: 1.8 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png Wyświetl plik

Przed Po
Szerokość: 152  |  Wysokość: 152  |  Rozmiar: 3.2 KiB

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png Wyświetl plik

Przed Po
Szerokość: 167  |  Wysokość: 167  |  Rozmiar: 3.5 KiB

+ 0
- 23
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json Wyświetl plik

@@ -1,23 +0,0 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "LaunchImage.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "LaunchImage@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png Wyświetl plik

Przed Po
Szerokość: 1  |  Wysokość: 1  |  Rozmiar: 68 B

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png Wyświetl plik

Przed Po
Szerokość: 1  |  Wysokość: 1  |  Rozmiar: 68 B

BIN
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png Wyświetl plik

Przed Po
Szerokość: 1  |  Wysokość: 1  |  Rozmiar: 68 B

+ 0
- 5
local_plugin/location-3.0.2/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md Wyświetl plik

@@ -1,5 +0,0 @@
# Launch Screen Assets

You can customize the launch screen with your own desired assets by replacing the image files in this directory.

You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.

+ 0
- 37
local_plugin/location-3.0.2/example/ios/Runner/Base.lproj/LaunchScreen.storyboard Wyświetl plik

@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
<viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
</imageView>
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
<constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
<resources>
<image name="LaunchImage" width="168" height="185"/>
</resources>
</document>

+ 0
- 26
local_plugin/location-3.0.2/example/ios/Runner/Base.lproj/Main.storyboard Wyświetl plik

@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<scenes>
<!--Flutter View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

+ 0
- 49
local_plugin/location-3.0.2/example/ios/Runner/Info.plist Wyświetl plik

@@ -1,49 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSLocationAlwaysUsageDescription</key>
<string>I need it </string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Because</string>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>location_example</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
</dict>
</plist>

+ 0
- 1
local_plugin/location-3.0.2/example/ios/Runner/Runner-Bridging-Header.h Wyświetl plik

@@ -1 +0,0 @@
#import "GeneratedPluginRegistrant.h"

+ 0
- 54
local_plugin/location-3.0.2/example/lib/get_location.dart Wyświetl plik

@@ -1,54 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:location/location.dart';

class GetLocationWidget extends StatefulWidget {
const GetLocationWidget({Key key}) : super(key: key);

@override
_GetLocationState createState() => _GetLocationState();
}

class _GetLocationState extends State<GetLocationWidget> {
final Location location = Location();

LocationData _location;
String _error;

Future<void> _getLocation() async {
setState(() {
_error = null;
});
try {
final LocationData _locationResult = await location.getLocation();
setState(() {
_location = _locationResult;
});
} on PlatformException catch (err) {
setState(() {
_error = err.code;
});
}
}

@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Location: ' + (_error ?? '${_location ?? "unknown"}'),
style: Theme.of(context).textTheme.body2,
),
Row(
children: <Widget>[
RaisedButton(
child: const Text('Get'),
onPressed: _getLocation,
)
],
),
],
);
}
}

+ 0
- 67
local_plugin/location-3.0.2/example/lib/listen_location.dart Wyświetl plik

@@ -1,67 +0,0 @@
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:location/location.dart';

class ListenLocationWidget extends StatefulWidget {
const ListenLocationWidget({Key key}) : super(key: key);

@override
_ListenLocationState createState() => _ListenLocationState();
}

class _ListenLocationState extends State<ListenLocationWidget> {
final Location location = Location();

LocationData _location;
StreamSubscription<LocationData> _locationSubscription;
String _error;

Future<void> _listenLocation() async {
_locationSubscription =
location.onLocationChanged.handleError((dynamic err) {
setState(() {
_error = err.code;
});
_locationSubscription.cancel();
}).listen((LocationData currentLocation) {
setState(() {
_error = null;

_location = currentLocation;
});
});
}

Future<void> _stopListen() async {
_locationSubscription.cancel();
}

@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Listen location: ' + (_error ?? '${_location ?? "unknown"}'),
style: Theme.of(context).textTheme.body2,
),
Row(
children: <Widget>[
Container(
margin: const EdgeInsets.only(right: 42),
child: RaisedButton(
child: const Text('Listen'),
onPressed: _listenLocation,
),
),
RaisedButton(
child: const Text('Stop'),
onPressed: _stopListen,
)
],
),
],
);
}
}

+ 0
- 101
local_plugin/location-3.0.2/example/lib/main.dart Wyświetl plik

@@ -1,101 +0,0 @@
import 'package:flutter/material.dart';
import 'package:location/location.dart';
import 'package:url_launcher/url_launcher.dart';

import 'get_location.dart';
import 'listen_location.dart';
import 'permission_status.dart';
import 'service_enabled.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Location',
theme: ThemeData(
primarySwatch: Colors.amber,
),
home: const MyHomePage(title: 'Flutter Location Demo'),
);
}
}

class MyHomePage extends StatefulWidget {
const MyHomePage({Key key, this.title}) : super(key: key);
final String title;

@override
_MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
final Location location = Location();

Future<void> _showInfoDialog() {
return showDialog<void>(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('Demo Application'),
content: SingleChildScrollView(
child: ListBody(
children: <Widget>[
const Text('Created by Guillaume Bernos'),
InkWell(
child: Text(
'https://github.com/Lyokone/flutterlocation',
style: TextStyle(
decoration: TextDecoration.underline,
),
),
onTap: () =>
launch('https://github.com/Lyokone/flutterlocation'),
),
],
),
),
actions: <Widget>[
FlatButton(
child: const Text('Ok'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
actions: <Widget>[
IconButton(
icon: Icon(Icons.info_outline),
onPressed: _showInfoDialog,
)
],
),
body: Container(
padding: const EdgeInsets.all(32),
child: Column(
children: const <Widget>[
PermissionStatusWidget(),
Divider(height: 32),
ServiceEnabledWidget(),
Divider(height: 32),
GetLocationWidget(),
Divider(height: 32),
ListenLocationWidget()
],
),
),
);
}
}

+ 0
- 66
local_plugin/location-3.0.2/example/lib/permission_status.dart Wyświetl plik

@@ -1,66 +0,0 @@
import 'package:flutter/material.dart';
import 'package:location/location.dart';

class PermissionStatusWidget extends StatefulWidget {
const PermissionStatusWidget({Key key}) : super(key: key);

@override
_PermissionStatusState createState() => _PermissionStatusState();
}

class _PermissionStatusState extends State<PermissionStatusWidget> {
final Location location = Location();

PermissionStatus _permissionGranted;

Future<void> _checkPermissions() async {
final PermissionStatus permissionGrantedResult =
await location.hasPermission();
setState(() {
_permissionGranted = permissionGrantedResult;
});
}

Future<void> _requestPermission() async {
if (_permissionGranted != PermissionStatus.granted) {
final PermissionStatus permissionRequestedResult =
await location.requestPermission();
setState(() {
_permissionGranted = permissionRequestedResult;
});
if (permissionRequestedResult != PermissionStatus.granted) {
return;
}
}
}

@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Permission status: ${_permissionGranted ?? "unknown"}',
style: Theme.of(context).textTheme.body2,
),
Row(
children: <Widget>[
Container(
margin: const EdgeInsets.only(right: 42),
child: RaisedButton(
child: const Text('Check'),
onPressed: _checkPermissions,
),
),
RaisedButton(
child: const Text('Request'),
onPressed: _permissionGranted == PermissionStatus.granted
? null
: _requestPermission,
)
],
)
],
);
}
}

+ 0
- 60
local_plugin/location-3.0.2/example/lib/service_enabled.dart Wyświetl plik

@@ -1,60 +0,0 @@
import 'package:flutter/material.dart';
import 'package:location/location.dart';

class ServiceEnabledWidget extends StatefulWidget {
const ServiceEnabledWidget({Key key}) : super(key: key);

@override
_ServiceEnabledState createState() => _ServiceEnabledState();
}

class _ServiceEnabledState extends State<ServiceEnabledWidget> {
final Location location = Location();

bool _serviceEnabled;

Future<void> _checkService() async {
final bool serviceEnabledResult = await location.serviceEnabled();
setState(() {
_serviceEnabled = serviceEnabledResult;
});
}

Future<void> _requestService() async {
if (_serviceEnabled == null || !_serviceEnabled) {
final bool serviceRequestedResult = await location.requestService();
setState(() {
_serviceEnabled = serviceRequestedResult;
});
if (!serviceRequestedResult) {
return;
}
}
}

@override
Widget build(BuildContext context) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text('Service enabled: ${_serviceEnabled ?? "unknown"}',
style: Theme.of(context).textTheme.body2),
Row(
children: <Widget>[
Container(
margin: const EdgeInsets.only(right: 42),
child: RaisedButton(
child: const Text('Check'),
onPressed: _checkService,
),
),
RaisedButton(
child: const Text('Request'),
onPressed: _serviceEnabled == true ? null : _requestService,
)
],
)
],
);
}
}

+ 0
- 6
local_plugin/location-3.0.2/example/macos/.gitignore Wyświetl plik

@@ -1,6 +0,0 @@
# Flutter-related
**/Flutter/ephemeral/
**/Pods/

# Xcode-related
**/xcuserdata/

+ 0
- 2
local_plugin/location-3.0.2/example/macos/Flutter/Flutter-Debug.xcconfig Wyświetl plik

@@ -1,2 +0,0 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
#include "ephemeral/Flutter-Generated.xcconfig"

+ 0
- 2
local_plugin/location-3.0.2/example/macos/Flutter/Flutter-Release.xcconfig Wyświetl plik

@@ -1,2 +0,0 @@
#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
#include "ephemeral/Flutter-Generated.xcconfig"

+ 0
- 14
local_plugin/location-3.0.2/example/macos/Flutter/GeneratedPluginRegistrant.swift Wyświetl plik

@@ -1,14 +0,0 @@
//
// Generated file. Do not edit.
//

import FlutterMacOS
import Foundation

import location
import url_launcher_macos

func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
LocationPlugin.register(with: registry.registrar(forPlugin: "LocationPlugin"))
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
}

+ 0
- 654
local_plugin/location-3.0.2/example/macos/Runner.xcodeproj/project.pbxproj Wyświetl plik

@@ -1,654 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 51;
objects = {

/* Begin PBXAggregateTarget section */
33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
isa = PBXAggregateTarget;
buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
buildPhases = (
33CC111E2044C6BF0003C045 /* ShellScript */,
);
dependencies = (
);
name = "Flutter Assemble";
productName = FLX;
};
/* End PBXAggregateTarget section */

/* Begin PBXBuildFile section */
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; };
33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
4FB8C74EE0088E7128613769 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BC7B042DEA397098CB37A9C3 /* Pods_Runner.framework */; };
D73912F022F37F9E000D13A0 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; };
D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 33CC111A2044C6BA0003C045;
remoteInfo = FLX;
};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
33CC110E2044A8840003C045 /* Bundle Framework */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */,
33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */,
);
name = "Bundle Framework";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
02248394EE7A7894B28455D5 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
33CC10ED2044A3C60003C045 /* location_example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = location_example.app; sourceTree = BUILT_PRODUCTS_DIR; };
33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; };
33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; };
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
33D1A10322148B71006C7A3E /* FlutterMacOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FlutterMacOS.framework; path = Flutter/ephemeral/FlutterMacOS.framework; sourceTree = SOURCE_ROOT; };
33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
886143E057BF0B12C17B4AF1 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
8E274D018AB43327BF074F7F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
BC7B042DEA397098CB37A9C3 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D73912EF22F37F9E000D13A0 /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/ephemeral/App.framework; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
33CC10EA2044A3C60003C045 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D73912F022F37F9E000D13A0 /* App.framework in Frameworks */,
33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */,
4FB8C74EE0088E7128613769 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
290C5E9AF56BE501A7F19E71 /* Pods */ = {
isa = PBXGroup;
children = (
886143E057BF0B12C17B4AF1 /* Pods-Runner.debug.xcconfig */,
02248394EE7A7894B28455D5 /* Pods-Runner.release.xcconfig */,
8E274D018AB43327BF074F7F /* Pods-Runner.profile.xcconfig */,
);
name = Pods;
path = Pods;
sourceTree = "<group>";
};
33BA886A226E78AF003329D5 /* Configs */ = {
isa = PBXGroup;
children = (
33E5194F232828860026EE4D /* AppInfo.xcconfig */,
9740EEB21CF90195004384FC /* Debug.xcconfig */,
7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
);
path = Configs;
sourceTree = "<group>";
};
33CC10E42044A3C60003C045 = {
isa = PBXGroup;
children = (
33FAB671232836740065AC1E /* Runner */,
33CEB47122A05771004F2AC0 /* Flutter */,
33CC10EE2044A3C60003C045 /* Products */,
D73912EC22F37F3D000D13A0 /* Frameworks */,
290C5E9AF56BE501A7F19E71 /* Pods */,
);
sourceTree = "<group>";
};
33CC10EE2044A3C60003C045 /* Products */ = {
isa = PBXGroup;
children = (
33CC10ED2044A3C60003C045 /* location_example.app */,
);
name = Products;
sourceTree = "<group>";
};
33CC11242044D66E0003C045 /* Resources */ = {
isa = PBXGroup;
children = (
33CC10F22044A3C60003C045 /* Assets.xcassets */,
33CC10F42044A3C60003C045 /* MainMenu.xib */,
33CC10F72044A3C60003C045 /* Info.plist */,
);
name = Resources;
path = ..;
sourceTree = "<group>";
};
33CEB47122A05771004F2AC0 /* Flutter */ = {
isa = PBXGroup;
children = (
335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
D73912EF22F37F9E000D13A0 /* App.framework */,
33D1A10322148B71006C7A3E /* FlutterMacOS.framework */,
);
path = Flutter;
sourceTree = "<group>";
};
33FAB671232836740065AC1E /* Runner */ = {
isa = PBXGroup;
children = (
33CC10F02044A3C60003C045 /* AppDelegate.swift */,
33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
33E51913231747F40026EE4D /* DebugProfile.entitlements */,
33E51914231749380026EE4D /* Release.entitlements */,
33CC11242044D66E0003C045 /* Resources */,
33BA886A226E78AF003329D5 /* Configs */,
);
path = Runner;
sourceTree = "<group>";
};
D73912EC22F37F3D000D13A0 /* Frameworks */ = {
isa = PBXGroup;
children = (
BC7B042DEA397098CB37A9C3 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
33CC10EC2044A3C60003C045 /* Runner */ = {
isa = PBXNativeTarget;
buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
F031A4248658C5B8E1F56F23 /* [CP] Check Pods Manifest.lock */,
33CC10E92044A3C60003C045 /* Sources */,
33CC10EA2044A3C60003C045 /* Frameworks */,
33CC10EB2044A3C60003C045 /* Resources */,
33CC110E2044A8840003C045 /* Bundle Framework */,
3399D490228B24CF009A79C7 /* ShellScript */,
53011F24DAEC196906F70E4A /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
33CC11202044C79F0003C045 /* PBXTargetDependency */,
);
name = Runner;
productName = Runner;
productReference = 33CC10ED2044A3C60003C045 /* location_example.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
33CC10E52044A3C60003C045 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0920;
LastUpgradeCheck = 0930;
ORGANIZATIONNAME = "The Flutter Authors";
TargetAttributes = {
33CC10EC2044A3C60003C045 = {
CreatedOnToolsVersion = 9.2;
LastSwiftMigration = 1100;
ProvisioningStyle = Automatic;
SystemCapabilities = {
com.apple.Sandbox = {
enabled = 1;
};
};
};
33CC111A2044C6BA0003C045 = {
CreatedOnToolsVersion = 9.2;
ProvisioningStyle = Manual;
};
};
};
buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
compatibilityVersion = "Xcode 8.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 33CC10E42044A3C60003C045;
productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
33CC10EC2044A3C60003C045 /* Runner */,
33CC111A2044C6BA0003C045 /* Flutter Assemble */,
);
};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
33CC10EB2044A3C60003C045 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
3399D490228B24CF009A79C7 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename\n";
};
33CC111E2044C6BF0003C045 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
Flutter/ephemeral/FlutterInputs.xcfilelist,
);
inputPaths = (
Flutter/ephemeral/tripwire,
);
outputFileListPaths = (
Flutter/ephemeral/FlutterOutputs.xcfilelist,
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n";
};
53011F24DAEC196906F70E4A /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
F031A4248658C5B8E1F56F23 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
33CC10E92044A3C60003C045 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
33CC10F52044A3C60003C045 /* Base */,
);
name = MainMenu.xib;
path = Runner;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
338D0CE9231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Profile;
};
338D0CEA231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter/ephemeral",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
name = Profile;
};
338D0CEB231458BD00FA5F75 /* Profile */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Profile;
};
33CC10F92044A3C60003C045 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
33CC10FA2044A3C60003C045 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CODE_SIGN_IDENTITY = "-";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
};
name = Release;
};
33CC10FC2044A3C60003C045 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter/ephemeral",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
};
name = Debug;
};
33CC10FD2044A3C60003C045 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Flutter/ephemeral",
);
INFOPLIST_FILE = Runner/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
name = Release;
};
33CC111C2044C6BA0003C045 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Manual;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
33CC111D2044C6BA0003C045 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC10F92044A3C60003C045 /* Debug */,
33CC10FA2044A3C60003C045 /* Release */,
338D0CE9231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC10FC2044A3C60003C045 /* Debug */,
33CC10FD2044A3C60003C045 /* Release */,
338D0CEA231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
isa = XCConfigurationList;
buildConfigurations = (
33CC111C2044C6BA0003C045 /* Debug */,
33CC111D2044C6BA0003C045 /* Release */,
338D0CEB231458BD00FA5F75 /* Profile */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 33CC10E52044A3C60003C045 /* Project object */;
}

+ 0
- 101
local_plugin/location-3.0.2/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme Wyświetl plik

@@ -1,101 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1000"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "location_example.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "00380F9121DF178D00097171"
BuildableName = "RunnerUITests.xctest"
BlueprintName = "RunnerUITests"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "location_example.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "location_example.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "33CC10EC2044A3C60003C045"
BuildableName = "location_example.app"
BlueprintName = "Runner"
ReferencedContainer = "container:Runner.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

+ 0
- 9
local_plugin/location-3.0.2/example/macos/Runner/AppDelegate.swift Wyświetl plik

@@ -1,9 +0,0 @@
import Cocoa
import FlutterMacOS

@NSApplicationMain
class AppDelegate: FlutterAppDelegate {
override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
return true
}
}

+ 0
- 68
local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json Wyświetl plik

@@ -1,68 +0,0 @@
{
"images" : [
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_16.png",
"scale" : "1x"
},
{
"size" : "16x16",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "2x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_32.png",
"scale" : "1x"
},
{
"size" : "32x32",
"idiom" : "mac",
"filename" : "app_icon_64.png",
"scale" : "2x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_128.png",
"scale" : "1x"
},
{
"size" : "128x128",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "2x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_256.png",
"scale" : "1x"
},
{
"size" : "256x256",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "2x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_512.png",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "app_icon_1024.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

BIN
local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png Wyświetl plik

Przed Po
Szerokość: 1024  |  Wysokość: 1024  |  Rozmiar: 46 KiB

BIN
local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png Wyświetl plik

Przed Po
Szerokość: 128  |  Wysokość: 128  |  Rozmiar: 3.2 KiB

BIN
local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png Wyświetl plik

Przed Po
Szerokość: 16  |  Wysokość: 16  |  Rozmiar: 1.4 KiB

BIN
local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png Wyświetl plik

Przed Po
Szerokość: 256  |  Wysokość: 256  |  Rozmiar: 5.8 KiB

BIN
local_plugin/location-3.0.2/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png Wyświetl plik

Przed Po
Szerokość: 32  |  Wysokość: 32  |  Rozmiar: 1.2 KiB

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików

Ładowanie…
Anuluj
Zapisz