diff --git a/.gradle/6.8/executionHistory/executionHistory.bin b/.gradle/6.8/executionHistory/executionHistory.bin new file mode 100644 index 0000000..9307bb9 Binary files /dev/null and b/.gradle/6.8/executionHistory/executionHistory.bin differ diff --git a/.gradle/6.8/executionHistory/executionHistory.lock b/.gradle/6.8/executionHistory/executionHistory.lock new file mode 100644 index 0000000..3bb043b Binary files /dev/null and b/.gradle/6.8/executionHistory/executionHistory.lock differ diff --git a/.gradle/6.8/fileChanges/last-build.bin b/.gradle/6.8/fileChanges/last-build.bin new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/.gradle/6.8/fileChanges/last-build.bin differ diff --git a/.gradle/6.8/fileHashes/fileHashes.bin b/.gradle/6.8/fileHashes/fileHashes.bin new file mode 100644 index 0000000..3790ed6 Binary files /dev/null and b/.gradle/6.8/fileHashes/fileHashes.bin differ diff --git a/.gradle/6.8/fileHashes/fileHashes.lock b/.gradle/6.8/fileHashes/fileHashes.lock new file mode 100644 index 0000000..7a530e4 Binary files /dev/null and b/.gradle/6.8/fileHashes/fileHashes.lock differ diff --git a/.gradle/6.8/gc.properties b/.gradle/6.8/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000..6ec0e97 Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..edfb3d9 --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Mon Sep 13 19:12:19 ICT 2021 +gradle.version=6.8 diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000..b72399d Binary files /dev/null and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock new file mode 100644 index 0000000..a1e8c9f Binary files /dev/null and b/.gradle/checksums/checksums.lock differ diff --git a/.gradle/configuration-cache/gc.properties b/.gradle/configuration-cache/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/android/build.gradle b/android/build.gradle index 6acb6b4..8047340 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -4,27 +4,35 @@ version '1.0' buildscript { repositories { google() - jcenter() + mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:7.0.2' } } rootProject.allprojects { repositories { google() - jcenter() + mavenCentral() } } apply plugin: 'com.android.library' android { + if (project.android.hasProperty("namespace")) { + namespace 'com.aloisdeniel.geocoder' + } compileSdkVersion 30 defaultConfig { minSdkVersion 16 } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } } diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties index 3c9d085..efeba9a 100644 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Thu Nov 11 17:12:50 ICT 2021 distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip +zipStoreBase=GRADLE_USER_HOME diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 4895e49..a2f47b6 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,3 +1,2 @@ - + diff --git a/android/src/main/java/com/aloisdeniel/geocoder/GeocoderPlugin.java b/android/src/main/java/com/aloisdeniel/geocoder/GeocoderPlugin.java index f7cf971..d602df4 100644 --- a/android/src/main/java/com/aloisdeniel/geocoder/GeocoderPlugin.java +++ b/android/src/main/java/com/aloisdeniel/geocoder/GeocoderPlugin.java @@ -1,11 +1,5 @@ package com.aloisdeniel.geocoder; -import java.util.List; -import java.util.ArrayList; -import java.util.Map; -import java.util.HashMap; -import java.io.IOException; -import java.lang.Exception; import android.content.Context; import android.location.Address; import android.location.Geocoder; @@ -13,221 +7,234 @@ import android.os.Handler; import android.os.Looper; +import androidx.annotation.NonNull; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import io.flutter.embedding.engine.plugins.FlutterPlugin; +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; -import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.PluginRegistry.Registrar; /** * NotAvailableException */ class NotAvailableException extends Exception { - NotAvailableException() {} + NotAvailableException() { + } } /** * GeocoderPlugin */ -public class GeocoderPlugin implements MethodCallHandler { - - private Geocoder geocoder; +public class GeocoderPlugin implements FlutterPlugin, MethodChannel.MethodCallHandler { - public GeocoderPlugin(Context context) { + private Geocoder geocoder; - this.geocoder = new Geocoder(context); - } + private Context context; + private MethodChannel methodChannel; - /** - * Plugin registration. - */ - public static void registerWith(Registrar registrar) { - final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/aloisdeniel/geocoder"); - channel.setMethodCallHandler(new GeocoderPlugin(registrar.context())); - } - - // MethodChannel.Result wrapper that responds on the platform thread. - private static class MethodResultWrapper implements Result { - private Result methodResult; - private Handler handler; + public GeocoderPlugin() { + } - MethodResultWrapper(Result result) { - methodResult = result; - handler = new Handler(Looper.getMainLooper()); + /** + * Plugin registration. + */ + @SuppressWarnings("deprecation") + public static void registerWith(Registrar registrar) { + final MethodChannel channel = new MethodChannel(registrar.messenger(), "github.com/aloisdeniel/geocoder"); + channel.setMethodCallHandler(new GeocoderPlugin()); } @Override - public void success(final Object result) { - handler.post( - new Runnable() { - @Override - public void run() { - methodResult.success(result); - } - }); + public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { + onAttachedToEngine(binding.getApplicationContext(), binding.getBinaryMessenger()); } - @Override - public void error( - final String errorCode, final String errorMessage, final Object errorDetails) { - handler.post( - new Runnable() { - @Override - public void run() { - methodResult.error(errorCode, errorMessage, errorDetails); - } - }); + private void onAttachedToEngine(Context applicationContext, BinaryMessenger messenger) { + this.context = applicationContext; + this.geocoder = new Geocoder(context); + methodChannel = new MethodChannel(messenger, "github.com/aloisdeniel/geocoder"); + methodChannel.setMethodCallHandler(this); } @Override - public void notImplemented() { - handler.post( - new Runnable() { - @Override - public void run() { - methodResult.notImplemented(); - } - }); + public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { + context = null; + methodChannel.setMethodCallHandler(null); + methodChannel = null; } - } - - @Override - public void onMethodCall(MethodCall call, Result rawResult) { - Result result = new MethodResultWrapper(rawResult); - if (call.method.equals("findAddressesFromQuery")) { - String address = (String) call.argument("address"); - findAddressesFromQuery(address, result); - } - else if (call.method.equals("findAddressesFromCoordinates")) { - float latitude = ((Number) call.argument("latitude")).floatValue(); - float longitude = ((Number) call.argument("longitude")).floatValue(); - findAddressesFromCoordinates(latitude,longitude, result); - } else { - result.notImplemented(); - } - } + // MethodChannel.Result wrapper that responds on the platform thread. + private static class MethodResultWrapper implements Result { + private final Result methodResult; + private final Handler handler; - private void assertPresent() throws NotAvailableException { - if (!geocoder.isPresent()) { - throw new NotAvailableException(); - } - } + MethodResultWrapper(Result result) { + methodResult = result; + handler = new Handler(Looper.getMainLooper()); + } - private void findAddressesFromQuery(final String address, final Result result) { + @Override + public void success(final Object result) { + handler.post( + () -> methodResult.success(result)); + } - final GeocoderPlugin plugin = this; - new AsyncTask>() { @Override - protected List
doInBackground(Void... params) { - try { - plugin.assertPresent(); - return geocoder.getFromLocationName(address, 20); - } catch (IOException ex) { - return null; - } catch (NotAvailableException ex) { - return new ArrayList<>(); - } + public void error( + final String errorCode, final String errorMessage, final Object errorDetails) { + handler.post( + () -> methodResult.error(errorCode, errorMessage, errorDetails)); } @Override - protected void onPostExecute(List
addresses) { - if (addresses != null) { - if (addresses.isEmpty()) - result.error("not_available", "Empty", null); + public void notImplemented() { + handler.post( + methodResult::notImplemented); + } + } - else result.success(createAddressMapList(addresses)); - } - else result.error("failed", "Failed", null); + @Override + public void onMethodCall(MethodCall call, Result rawResult) { + Result result = new MethodResultWrapper(rawResult); + + if (call.method.equals("findAddressesFromQuery")) { + String address = call.argument("address"); + findAddressesFromQuery(address, result); + } else if (call.method.equals("findAddressesFromCoordinates")) { + float latitude = ((Number) call.argument("latitude")).floatValue(); + float longitude = ((Number) call.argument("longitude")).floatValue(); + findAddressesFromCoordinates(latitude, longitude, result); + } else { + result.notImplemented(); } - }.execute(); - } + } - private void findAddressesFromCoordinates(final float latitude, final float longitude, final Result result) { - final GeocoderPlugin plugin = this; - new AsyncTask>() { - @Override - protected List
doInBackground(Void... params) { - try { - plugin.assertPresent(); - return geocoder.getFromLocation(latitude, longitude, 20); - } catch (IOException ex) { - return null; - } catch (NotAvailableException ex) { - return new ArrayList<>(); - } + private void assertPresent() throws NotAvailableException { + if (!Geocoder.isPresent()) { + throw new NotAvailableException(); } + } - @Override - protected void onPostExecute(List
addresses) { - if (addresses != null) { - if (addresses.isEmpty()) - result.error("not_available", "Empty", null); + private void findAddressesFromQuery(final String address, final Result result) { - else result.success(createAddressMapList(addresses)); + final GeocoderPlugin plugin = this; + new AsyncTask>() { + @Override + protected List
doInBackground(Void... params) { + try { + plugin.assertPresent(); + return geocoder.getFromLocationName(address, 20); + } catch (IOException ex) { + return null; + } catch (NotAvailableException ex) { + return new ArrayList<>(); + } } - else result.error("failed", "Failed", null); - } - }.execute(); - } - private Map createCoordinatesMap(Address address) { + @Override + protected void onPostExecute(List
addresses) { + if (addresses != null) { + if (addresses.isEmpty()) + result.error("not_available", "Empty", null); + + else result.success(createAddressMapList(addresses)); + } else result.error("failed", "Failed", null); + } + }.execute(); + } + + private void findAddressesFromCoordinates(final float latitude, final float longitude, final Result result) { + final GeocoderPlugin plugin = this; + new AsyncTask>() { + @Override + protected List
doInBackground(Void... params) { + try { + plugin.assertPresent(); + return geocoder.getFromLocation(latitude, longitude, 20); + } catch (IOException ex) { + return null; + } catch (NotAvailableException ex) { + return new ArrayList<>(); + } + } - if(address == null) - return null; + @Override + protected void onPostExecute(List
addresses) { + if (addresses != null) { + if (addresses.isEmpty()) + result.error("not_available", "Empty", null); - Map result = new HashMap(); + else result.success(createAddressMapList(addresses)); + } else result.error("failed", "Failed", null); + } + }.execute(); + } - result.put("latitude", address.getLatitude()); - result.put("longitude", address.getLongitude()); + private Map createCoordinatesMap(Address address) { - return result; - } + if (address == null) + return null; - private Map createAddressMap(Address address) { + Map result = new HashMap(); - if(address == null) - return null; + result.put("latitude", address.getLatitude()); + result.put("longitude", address.getLongitude()); - // Creating formatted address - StringBuilder sb = new StringBuilder(); - for (int i = 0; i <= address.getMaxAddressLineIndex(); i++) { - if (i > 0) { - sb.append(", "); - } - sb.append(address.getAddressLine(i)); + return result; } - Map result = new HashMap(); + private Map createAddressMap(Address address) { - result.put("coordinates", createCoordinatesMap(address)); - result.put("featureName", address.getFeatureName()); - result.put("countryName", address.getCountryName()); - result.put("countryCode", address.getCountryCode()); - result.put("locality", address.getLocality()); - result.put("subLocality", address.getSubLocality()); - result.put("thoroughfare", address.getThoroughfare()); - result.put("subThoroughfare", address.getSubThoroughfare()); - result.put("adminArea", address.getAdminArea()); - result.put("subAdminArea", address.getSubAdminArea()); - result.put("addressLine", sb.toString()); - result.put("postalCode", address.getPostalCode()); + if (address == null) + return null; - return result; - } + // Creating formatted address + StringBuilder sb = new StringBuilder(); + for (int i = 0; i <= address.getMaxAddressLineIndex(); i++) { + if (i > 0) { + sb.append(", "); + } + sb.append(address.getAddressLine(i)); + } - private List> createAddressMapList(List
addresses) { + Map result = new HashMap(); + + result.put("coordinates", createCoordinatesMap(address)); + result.put("featureName", address.getFeatureName()); + result.put("countryName", address.getCountryName()); + result.put("countryCode", address.getCountryCode()); + result.put("locality", address.getLocality()); + result.put("subLocality", address.getSubLocality()); + result.put("thoroughfare", address.getThoroughfare()); + result.put("subThoroughfare", address.getSubThoroughfare()); + result.put("adminArea", address.getAdminArea()); + result.put("subAdminArea", address.getSubAdminArea()); + result.put("addressLine", sb.toString()); + result.put("postalCode", address.getPostalCode()); + + return result; + } - if(addresses == null) - return new ArrayList>(); + private ArrayList> createAddressMapList(List
addresses) { - List> result = new ArrayList>(addresses.size()); + if (addresses == null) + return new ArrayList(); - for (Address address : addresses) { - result.add(createAddressMap(address)); - } + ArrayList> result = new ArrayList(addresses.size()); - return result; - } + for (Address address : addresses) { + result.add(createAddressMap(address)); + } + + return result; + } } diff --git a/example/android/build.gradle b/example/android/build.gradle index 9b6ed06..9120f28 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -6,7 +6,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0' + classpath 'com.android.tools.build:gradle:7.0.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index bc6a58a..b8793d3 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -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-6.7-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e708b1c Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..da9702f --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..ac1b06f --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/lib/services/distant_google.dart b/lib/services/distant_google.dart index 83b7f55..15b15b2 100644 --- a/lib/services/distant_google.dart +++ b/lib/services/distant_google.dart @@ -1,4 +1,3 @@ -import 'dart:async'; import 'dart:convert'; import 'dart:core'; import 'dart:io'; diff --git a/local.properties b/local.properties new file mode 100644 index 0000000..91a2a7e --- /dev/null +++ b/local.properties @@ -0,0 +1,8 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Mon Sep 13 19:12:20 ICT 2021 +sdk.dir=/Users/nguyendat/Library/Android/sdk diff --git a/pubspec.yaml b/pubspec.yaml index 98b6625..6df4cb2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,7 +4,7 @@ version: 0.3.0 homepage: https://github.com/aloisdeniel/flutter_geocoder environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=3.1.4 <4.0.0" dependencies: flutter: