App(8)
gradle.properties
# Project-wide Gradle settings. # IDE (e.g. Android Studio) users: # Gradle settings configured through the IDE *will override* # any settings specified in this file. # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. android.enableJetifier=true android.useAndroidX=true org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects # org.gradle.parallel=true
gradlew
#!/usr/bin/env sh ############################################################################## ## ## 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="" # 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, switch paths to Windows format before running java if $cygwin ; 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=$((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" # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then cd "$(dirname "$0")" fi exec "$JAVACMD" "$@"
gradlew.bat
@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 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= @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 init 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 init 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 :init @rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args :win9xME_args @rem Slurp the command line arguments. set CMD_LINE_ARGS= set _SKIP=2 :win9xME_args_slurp if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* :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 %CMD_LINE_ARGS% :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
local.properties
## This file is automatically generated by Android Studio. # Do not modify this file -- YOUR CHANGES WILL BE ERASED! # # This file should *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. sdk.dir=C\:\\Users\\hp\\AppData\\Local\\Android\\Sdk
settings.gradle
include ':app'
test.jks
.gradle/5.1.1/executionHistory/executionHistory.bin
.gradle/5.1.1/executionHistory/executionHistory.lock
.gradle/5.1.1/fileChanges/last-build.bin
.gradle/5.1.1/fileContent/fileContent.lock
.gradle/5.1.1/fileHashes/fileHashes.bin
.gradle/5.1.1/fileHashes/fileHashes.lock
.gradle/5.1.1/fileHashes/resourceHashesCache.bin
.gradle/5.1.1/gc.properties
.gradle/5.1.1/javaCompile/classAnalysis.bin
.gradle/5.1.1/javaCompile/javaCompile.lock
.gradle/5.1.1/javaCompile/taskHistory.bin
.gradle/buildOutputCleanup/buildOutputCleanup.lock
.gradle/buildOutputCleanup/cache.properties
#Wed Jan 08 10:59:27 EAT 2020 gradle.version=5.1.1
.gradle/buildOutputCleanup/outputFiles.bin
.gradle/vcs-1/gc.properties
.idea/caches/build_file_checksums.ser
.idea/caches/gradle_models.ser
.idea/encodings.xml
.idea/gradle.xml
.idea/libraries/Gradle__androidx_annotation_annotation_1_0_0_jar.xml
.idea/libraries/Gradle__androidx_appcompat_appcompat_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_arch_core_core_common_2_0_0_jar.xml
.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml
.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_collection_collection_1_0_0_jar.xml
.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml
.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml
.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_core_core_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_fragment_fragment_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_0_0_jar.xml
.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml
.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml
.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_0_0_aar.xml
.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_0_0_aar.xml
.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_1_0_aar.xml
.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_1_0_aar.xml
.idea/libraries/Gradle__androidx_test_monitor_1_1_0_aar.xml
.idea/libraries/Gradle__androidx_test_runner_1_1_0_aar.xml
.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_0_0_aar.xml
.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml
.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml
.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml
.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
.idea/libraries/Gradle__com_google_android_gms_play_services_basement_17_0_0_aar.xml
.idea/libraries/Gradle__com_google_android_gms_play_services_base_17_0_0_aar.xml
.idea/libraries/Gradle__com_google_android_gms_play_services_maps_17_0_0_aar.xml
.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_17_0_0_aar.xml
.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
.idea/libraries/Gradle__junit_junit_4_12_jar.xml
.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
.idea/misc.xml
.idea/modules.xml
.idea/runConfigurations.xml
.idea/vcs.xml
.idea/workspace.xml
1578470310945 1578470310945 Android API 26 Platform
app/.gitignore
/build
app/app.iml
generateDebugSources
app/build.gradle
apply plugin: 'com.android.application' android { compileSdkVersion 28 defaultConfig { applicationId "com.best.geocoding" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.0.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0' implementation 'com.google.android.gms:play-services-maps:17.0.0' }
app/proguard-rules.pro
# Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} # Uncomment this to preserve the line number information for # debugging stack traces. #-keepattributes SourceFile,LineNumberTable # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile
app/src/androidTest/java/com/best/geocoding/ExampleInstrumentedTest.java
app/src/androidTest/java/com/best/geocoding/ExampleInstrumentedTest.java
package
com
.
best
.
geocoding
;
import
android
.
content
.
Context
;
import
androidx
.
test
.
InstrumentationRegistry
;
import
androidx
.
test
.
runner
.
AndroidJUnit4
;
import
org
.
junit
.
Test
;
import
org
.
junit
.
runner
.
RunWith
;
import
static
org
.
junit
.
Assert
.
*
;
/**
* Instrumented test, which will execute on an Android device.
*
*
@see
<a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@
RunWith
(
AndroidJUnit4
.
class
)
public
class
ExampleInstrumentedTest
{
@
Test
public
void
useAppContext
()
{
// Context of the app under test.
Context
appContext
=
InstrumentationRegistry
.
getTargetContext
();
assertEquals
(
"com.best.geocoding"
,
appContext
.
getPackageName
());
}
}
app/src/main/AndroidManifest.xml
app/src/main/java/com/best/geocoding/MainActivity.java
app/src/main/java/com/best/geocoding/MainActivity.java
package
com
.
best
.
geocoding
;
import
android
.
content
.
pm
.
PackageManager
;
import
android
.
location
.
Address
;
import
android
.
location
.
Geocoder
;
import
android
.
os
.
Build
;
import
androidx
.
annotation
.
NonNull
;
import
androidx
.
core
.
app
.
ActivityCompat
;
import
androidx
.
core
.
content
.
ContextCompat
;
import
androidx
.
fragment
.
app
.
FragmentActivity
;
import
androidx
.
appcompat
.
app
.
AppCompatActivity
;
import
android
.
os
.
Bundle
;
import
android
.
view
.
KeyEvent
;
import
android
.
view
.
inputmethod
.
EditorInfo
;
import
android
.
widget
.
EditText
;
import
android
.
widget
.
TextView
;
import
android
.
widget
.
Toast
;
import
com
.
google
.
android
.
gms
.
maps
.
model
.
LatLng
;
import
java
.
io
.
IOException
;
import
java
.
util
.
List
;
public
class
MainActivity
extends
FragmentActivity
{
private
static
final
String
MAPFRAGTAG
=
"MAPFRAGTAG"
;
MyMapFragment
myMapFrag
=
null
;
private
Geocoder
geocoder
;
@
Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_main
);
checkPermission
(
"android.permission.ACCESS_FINE_LOCATION"
,
0
);
}
public
void
checkPermission
(
String
permission
,
int
requestCode
)
{
if
(
ContextCompat
.
checkSelfPermission
(
MainActivity
.
this
,
permission
)
==
PackageManager
.
PERMISSION_DENIED
)
{
ActivityCompat
.
requestPermissions
(
MainActivity
.
this
,
new
String
[]
{
permission
},
requestCode
);
}
else
{
loadData
();
}
}
public
void
loadData
(){
if
((
myMapFrag
=
(
MyMapFragment
)
getSupportFragmentManager
().
findFragmentByTag
(
MAPFRAGTAG
))
==
null
)
{
myMapFrag
=
MyMapFragment
.
newInstance
();
getSupportFragmentManager
().
beginTransaction
()
.
add
(
R
.
id
.
container
,
myMapFrag
,
MAPFRAGTAG
).
commit
();
}
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
GINGERBREAD
&&
!
Geocoder
.
isPresent
())
{
Toast
.
makeText
(
this
,
"Geocoder is not available on this device"
,
Toast
.
LENGTH_LONG
).
show
();
finish
();
}
geocoder
=
new
Geocoder
(
this
);
EditText
loc
=
(
EditText
)
findViewById
(
R
.
id
.
locationName
);
loc
.
setOnEditorActionListener
(
new
TextView
.
OnEditorActionListener
()
{
@
Override
public
boolean
onEditorAction
(
TextView
v
,
int
actionId
,
KeyEvent
event
)
{
if
(
actionId
==
EditorInfo
.
IME_ACTION_GO
)
{
String
locationName
=
v
.
getText
().
toString
();
try
{
List
<
Address
>
addressList
=
geocoder
.
getFromLocationName
(
locationName
,
5
);
if
(
addressList
!=
null
&&
addressList
.
size
()
>
0
)
{
// Log.v(TAG, "Address: "+ addressList.get(0).toString());
myMapFrag
.
gotoLocation
(
new
LatLng
(
addressList
.
get
(
0
).
getLatitude
(),
addressList
.
get
(
0
).
getLongitude
()),
locationName
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
false
;
}
});
}
@
Override
public
void
onRequestPermissionsResult
(
int
requestCode
,
@
NonNull
String
[]
permissions
,
@
NonNull
int
[]
grantResults
)
{
super
.
onRequestPermissionsResult
(
requestCode
,
permissions
,
grantResults
);
if
(
requestCode
==
0
)
{
// Checking whether user granted the permission or not.
if
(
grantResults
.
length
>
0
&&
grantResults
[
0
]
==
PackageManager
.
PERMISSION_GRANTED
)
{
loadData
();
}
else
{
Toast
.
makeText
(
MainActivity
.
this
,
"Camera Permission Denied"
,
Toast
.
LENGTH_SHORT
).
show
();
}
}
}
}
app/src/main/java/com/best/geocoding/MyMapFragment.java
app/src/main/java/com/best/geocoding/MyMapFragment.java
package
com
.
best
.
geocoding
;
import
android
.
os
.
Bundle
;
import
com
.
google
.
android
.
gms
.
maps
.
CameraUpdateFactory
;
import
com
.
google
.
android
.
gms
.
maps
.
GoogleMap
;
import
com
.
google
.
android
.
gms
.
maps
.
OnMapReadyCallback
;
import
com
.
google
.
android
.
gms
.
maps
.
SupportMapFragment
;
import
com
.
google
.
android
.
gms
.
maps
.
model
.
BitmapDescriptorFactory
;
import
com
.
google
.
android
.
gms
.
maps
.
model
.
LatLng
;
import
com
.
google
.
android
.
gms
.
maps
.
model
.
MarkerOptions
;
public
class
MyMapFragment
extends
SupportMapFragment
implements
OnMapReadyCallback
{
private
GoogleMap
mMap
=
null
;
public
static
MyMapFragment
newInstance
()
{
MyMapFragment
myMF
=
new
MyMapFragment
();
return
myMF
;
}
@
Override
public
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
getMapAsync
(
this
);
}
@
Override
public
void
onActivityCreated
(
Bundle
savedInstanceState
)
{
super
.
onActivityCreated
(
savedInstanceState
);
setRetainInstance
(
true
);
}
public
void
gotoLocation
(
LatLng
latlng
,
String
locString
)
{
if
(
mMap
==
null
)
return
;
// Add a marker for the given location
MarkerOptions
markerOpt
=
new
MarkerOptions
()
.
draggable
(
false
)
.
flat
(
false
)
.
position
(
latlng
)
.
icon
(
BitmapDescriptorFactory
.
defaultMarker
(
BitmapDescriptorFactory
.
HUE_AZURE
))
.
title
(
"You chose:"
)
.
snippet
(
locString
);
// See the onMarkerClicked callback for why we do this
mMap
.
addMarker
(
markerOpt
);
// Move the camera to zoom in on our location
mMap
.
moveCamera
(
CameraUpdateFactory
.
newLatLngZoom
(
latlng
,
15
));
}
@
Override
public
void
onMapReady
(
GoogleMap
arg0
)
{
mMap
=
arg0
;
}
}
app/src/main/res/drawable/ic_launcher_background.xml
app/src/main/res/drawable-v24/ic_launcher_foreground.xml
app/src/main/res/layout/activity_main.xml
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
app/src/main/res/mipmap-hdpi/ic_launcher.png
app/src/main/res/mipmap-hdpi/ic_launcher_round.png
app/src/main/res/mipmap-mdpi/ic_launcher.png
app/src/main/res/mipmap-mdpi/ic_launcher_round.png
app/src/main/res/mipmap-xhdpi/ic_launcher.png
app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
app/src/main/res/mipmap-xxhdpi/ic_launcher.png
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
app/src/main/res/values/colors.xml
#008577 #00574B #D81B60
app/src/main/res/values/strings.xml
GeoCoding
app/src/main/res/values/styles.xml
@color/colorPrimary @color/colorPrimaryDark @color/colorAccent
app/src/test/java/com/best/geocoding/ExampleUnitTest.java
app/src/test/java/com/best/geocoding/ExampleUnitTest.java
package
com
.
best
.
geocoding
;
import
org
.
junit
.
Test
;
import
static
org
.
junit
.
Assert
.
*
;
/**
* Example local unit test, which will execute on the development machine (host).
*
*
@see
<a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public
class
ExampleUnitTest
{
@
Test
public
void
addition_isCorrect
()
{
assertEquals
(
4
,
2
+
2
);
}
}
gradle/wrapper/gradle-wrapper.jar
META-INF/MANIFEST.MF
Manifest-Version: 1.0 Implementation-Title: Gradle Implementation-Version: 4.6
org/gradle/wrapper/BootstrapMainStarter.class
package org.gradle.wrapper; public synchronized class BootstrapMainStarter { public void BootstrapMainStarter(); public void start(String[], java.io.File) throws Exception; private java.io.File findLauncherJar(java.io.File); }
org/gradle/wrapper/Download$1.class
package org.gradle.wrapper; synchronized class Download$1 { }
org/gradle/wrapper/Download$ProxyAuthenticator.class
package org.gradle.wrapper; synchronized class Download$ProxyAuthenticator extends java.net.Authenticator { private void Download$ProxyAuthenticator(); protected java.net.PasswordAuthentication getPasswordAuthentication(); }
org/gradle/wrapper/Download.class
package org.gradle.wrapper; public synchronized class Download implements IDownload { private static final int PROGRESS_CHUNK = 1048576; private static final int BUFFER_SIZE = 10240; private final Logger logger; private final String appName; private final String appVersion; private final DownloadProgressListener progressListener; public void Download(Logger, String, String); public void Download(Logger, DownloadProgressListener, String, String); private void configureProxyAuthentication(); public void download(java.net.URI, java.io.File) throws Exception; private void downloadInternal(java.net.URI, java.io.File) throws Exception; static java.net.URI safeUri(java.net.URI) throws java.net.URISyntaxException; private void addBasicAuthentication(java.net.URI, java.net.URLConnection) throws java.io.IOException; private String base64Encode(String); private String calculateUserInfo(java.net.URI); private String calculateUserAgent(); }
org/gradle/wrapper/DownloadProgressListener.class
package org.gradle.wrapper; public abstract interface DownloadProgressListener { public abstract void downloadStatusChanged(java.net.URI, long, long); }
org/gradle/wrapper/ExclusiveFileAccessManager.class
package org.gradle.wrapper; public synchronized class ExclusiveFileAccessManager { public static final String LOCK_FILE_SUFFIX = .lck; private final int timeoutMs; private final int pollIntervalMs; public void ExclusiveFileAccessManager(int, int); public Object access(java.io.File, java.util.concurrent.Callable) throws Exception; private long getTimeMillis(); private static void maybeCloseQuietly(java.io.Closeable); }
org/gradle/wrapper/GradleUserHomeLookup.class
package org.gradle.wrapper; public synchronized class GradleUserHomeLookup { public static final String DEFAULT_GRADLE_USER_HOME; public static final String GRADLE_USER_HOME_PROPERTY_KEY = gradle.user.home; public static final String GRADLE_USER_HOME_ENV_KEY = GRADLE_USER_HOME; public void GradleUserHomeLookup(); public static java.io.File gradleUserHome(); static void <clinit>(); }
org/gradle/wrapper/GradleWrapperMain.class
package org.gradle.wrapper; public synchronized class GradleWrapperMain { public static final String GRADLE_USER_HOME_OPTION = g; public static final String GRADLE_USER_HOME_DETAILED_OPTION = gradle-user-home; public static final String GRADLE_QUIET_OPTION = q; public static final String GRADLE_QUIET_DETAILED_OPTION = quiet; public void GradleWrapperMain(); public static void main(String[]) throws Exception; private static void addSystemProperties(java.io.File, java.io.File); private static java.io.File rootDir(java.io.File); private static java.io.File wrapperProperties(java.io.File); private static java.io.File wrapperJar(); static String wrapperVersion(); private static java.io.File gradleUserHome(org.gradle.cli.ParsedCommandLine); private static Logger logger(org.gradle.cli.ParsedCommandLine); }
org/gradle/wrapper/IDownload.class
package org.gradle.wrapper; public abstract interface IDownload { public abstract void download(java.net.URI, java.io.File) throws Exception; }
org/gradle/wrapper/Install$1.class
package org.gradle.wrapper; synchronized class Install$1 implements java.util.concurrent.Callable { void Install$1(Install, java.io.File, java.io.File, java.net.URI, WrapperConfiguration, String); public java.io.File call() throws Exception; }
org/gradle/wrapper/Install.class
package org.gradle.wrapper; public synchronized class Install { public static final String DEFAULT_DISTRIBUTION_PATH = wrapper/dists; private final Logger logger; private final IDownload download; private final PathAssembler pathAssembler; private final ExclusiveFileAccessManager exclusiveFileAccessManager; public void Install(Logger, IDownload, PathAssembler); public java.io.File createDist(WrapperConfiguration) throws Exception; private String calculateSha256Sum(java.io.File) throws Exception; private java.io.File getAndVerifyDistributionRoot(java.io.File, String) throws Exception; private void verifyDownloadChecksum(String, java.io.File, String) throws Exception; private java.util.List listDirs(java.io.File); private void setExecutablePermissions(java.io.File); private boolean isWindows(); private boolean deleteDir(java.io.File); private void unzip(java.io.File, java.io.File) throws java.io.IOException; private void copyInputStream(java.io.InputStream, java.io.OutputStream) throws java.io.IOException; }
org/gradle/wrapper/Logger.class
package org.gradle.wrapper; public synchronized class Logger implements Appendable { private final boolean quiet; public void Logger(boolean); public void log(String); public Appendable append(CharSequence); public Appendable append(CharSequence, int, int); public Appendable append(char); }
org/gradle/wrapper/PathAssembler$LocalDistribution.class
package org.gradle.wrapper; public synchronized class PathAssembler$LocalDistribution { private final java.io.File distZip; private final java.io.File distDir; public void PathAssembler$LocalDistribution(PathAssembler, java.io.File, java.io.File); public java.io.File getDistributionDir(); public java.io.File getZipFile(); }
org/gradle/wrapper/PathAssembler.class
package org.gradle.wrapper; public synchronized class PathAssembler { public static final String GRADLE_USER_HOME_STRING = GRADLE_USER_HOME; public static final String PROJECT_STRING = PROJECT; private java.io.File gradleUserHome; public void PathAssembler(); public void PathAssembler(java.io.File); public PathAssembler$LocalDistribution getDistribution(WrapperConfiguration); private String rootDirName(String, WrapperConfiguration); private String getHash(String); private String removeExtension(String); private String getDistName(java.net.URI); private java.io.File getBaseDir(String); }
org/gradle/wrapper/SystemPropertiesHandler.class
package org.gradle.wrapper; public synchronized class SystemPropertiesHandler { static final String SYSTEM_PROP_PREFIX = systemProp.; public void SystemPropertiesHandler(); public static java.util.Map getSystemProperties(java.io.File); }
org/gradle/wrapper/WrapperConfiguration.class
package org.gradle.wrapper; public synchronized class WrapperConfiguration { private java.net.URI distribution; private String distributionBase; private String distributionPath; private String distributionSha256Sum; private String zipBase; private String zipPath; public void WrapperConfiguration(); public java.net.URI getDistribution(); public void setDistribution(java.net.URI); public String getDistributionBase(); public void setDistributionBase(String); public String getDistributionPath(); public void setDistributionPath(String); public String getDistributionSha256Sum(); public void setDistributionSha256Sum(String); public String getZipBase(); public void setZipBase(String); public String getZipPath(); public void setZipPath(String); }
org/gradle/wrapper/WrapperExecutor.class
package org.gradle.wrapper; public synchronized class WrapperExecutor { public static final String DISTRIBUTION_URL_PROPERTY = distributionUrl; public static final String DISTRIBUTION_BASE_PROPERTY = distributionBase; public static final String DISTRIBUTION_PATH_PROPERTY = distributionPath; public static final String DISTRIBUTION_SHA_256_SUM = distributionSha256Sum; public static final String ZIP_STORE_BASE_PROPERTY = zipStoreBase; public static final String ZIP_STORE_PATH_PROPERTY = zipStorePath; private final java.util.Properties properties; private final java.io.File propertiesFile; private final WrapperConfiguration config; public static WrapperExecutor forProjectDirectory(java.io.File); public static WrapperExecutor forWrapperPropertiesFile(java.io.File); void WrapperExecutor(java.io.File, java.util.Properties); private java.net.URI prepareDistributionUri() throws java.net.URISyntaxException; private java.net.URI readDistroUrl() throws java.net.URISyntaxException; private static void loadProperties(java.io.File, java.util.Properties) throws java.io.IOException; public java.net.URI getDistribution(); public WrapperConfiguration getConfiguration(); public void execute(String[], Install, BootstrapMainStarter) throws Exception; private String getProperty(String); private String getProperty(String, String); private String getProperty(String, String, boolean); private String reportMissingProperty(String); }
gradle-wrapper-classpath.properties
projects=gradle-cli runtime=
org/gradle/cli/AbstractCommandLineConverter.class
package org.gradle.cli; public abstract synchronized class AbstractCommandLineConverter implements CommandLineConverter { public void AbstractCommandLineConverter(); public Object convert(Iterable, Object) throws CommandLineArgumentException; }
org/gradle/cli/AbstractPropertiesCommandLineConverter.class
package org.gradle.cli; public abstract synchronized class AbstractPropertiesCommandLineConverter extends AbstractCommandLineConverter { public void AbstractPropertiesCommandLineConverter(); protected abstract String getPropertyOption(); protected abstract String getPropertyOptionDetailed(); protected abstract String getPropertyOptionDescription(); public void configure(CommandLineParser); public java.util.Map convert(ParsedCommandLine, java.util.Map) throws CommandLineArgumentException; }
org/gradle/cli/CommandLineArgumentException.class
package org.gradle.cli; public synchronized class CommandLineArgumentException extends RuntimeException { public void CommandLineArgumentException(String); public void CommandLineArgumentException(String, Throwable); }
org/gradle/cli/CommandLineConverter.class
package org.gradle.cli; public abstract interface CommandLineConverter { public abstract Object convert(Iterable, Object) throws CommandLineArgumentException; public abstract Object convert(ParsedCommandLine, Object) throws CommandLineArgumentException; public abstract void configure(CommandLineParser); }
org/gradle/cli/CommandLineOption.class
package org.gradle.cli; public synchronized class CommandLineOption { private final java.util.Set options; private Class argumentType; private String description; private boolean incubating; private final java.util.Set groupWith; private boolean deprecated; public void CommandLineOption(Iterable); public java.util.Set getOptions(); public CommandLineOption hasArgument(Class); public CommandLineOption hasArgument(); public CommandLineOption hasArguments(); public String getDescription(); private void appendMessage(StringBuilder, boolean, String); public CommandLineOption hasDescription(String); public boolean getAllowsArguments(); public boolean getAllowsMultipleArguments(); public CommandLineOption deprecated(); public CommandLineOption incubating(); public boolean isDeprecated(); public boolean isIncubating(); java.util.Set getGroupWith(); void groupWith(java.util.Set); }
org/gradle/cli/CommandLineParser$1.class
package org.gradle.cli; synchronized class CommandLineParser$1 { }
org/gradle/cli/CommandLineParser$AfterFirstSubCommand.class
package org.gradle.cli; synchronized class CommandLineParser$AfterFirstSubCommand extends CommandLineParser$OptionAwareParserState { private void CommandLineParser$AfterFirstSubCommand(CommandLineParser, ParsedCommandLine); public CommandLineParser$OptionParserState onStartOption(String, String); }
org/gradle/cli/CommandLineParser$AfterOptions.class
package org.gradle.cli; synchronized class CommandLineParser$AfterOptions extends CommandLineParser$ParserState { private final ParsedCommandLine commandLine; private void CommandLineParser$AfterOptions(ParsedCommandLine); public boolean maybeStartOption(String); public CommandLineParser$OptionParserState onStartOption(String, String); public CommandLineParser$ParserState onNonOption(String); }
org/gradle/cli/CommandLineParser$BeforeFirstSubCommand.class
package org.gradle.cli; synchronized class CommandLineParser$BeforeFirstSubCommand extends CommandLineParser$OptionAwareParserState { private void CommandLineParser$BeforeFirstSubCommand(CommandLineParser, ParsedCommandLine); public CommandLineParser$OptionParserState onStartOption(String, String); }
org/gradle/cli/CommandLineParser$CaseInsensitiveStringComparator.class
package org.gradle.cli; final synchronized class CommandLineParser$CaseInsensitiveStringComparator implements java.util.Comparator { private void CommandLineParser$CaseInsensitiveStringComparator(); public int compare(String, String); }
org/gradle/cli/CommandLineParser$KnownOptionParserState.class
package org.gradle.cli; synchronized class CommandLineParser$KnownOptionParserState extends CommandLineParser$OptionParserState { private final CommandLineParser$OptionString optionString; private final CommandLineOption option; private final ParsedCommandLine commandLine; private final CommandLineParser$ParserState state; private final java.util.List values; private void CommandLineParser$KnownOptionParserState(CommandLineParser, CommandLineParser$OptionString, CommandLineOption, ParsedCommandLine, CommandLineParser$ParserState); public CommandLineParser$ParserState onArgument(String); public CommandLineParser$ParserState onStartNextArg(); public boolean getHasArgument(); public CommandLineParser$ParserState onComplete(); }
org/gradle/cli/CommandLineParser$MissingOptionArgState.class
package org.gradle.cli; synchronized class CommandLineParser$MissingOptionArgState extends CommandLineParser$ParserState { private final CommandLineParser$OptionParserState option; private void CommandLineParser$MissingOptionArgState(CommandLineParser$OptionParserState); public boolean maybeStartOption(String); public CommandLineParser$OptionParserState onStartOption(String, String); public CommandLineParser$ParserState onNonOption(String); public void onCommandLineEnd(); }
org/gradle/cli/CommandLineParser$OptionAwareParserState.class
package org.gradle.cli; abstract synchronized class CommandLineParser$OptionAwareParserState extends CommandLineParser$ParserState { protected final ParsedCommandLine commandLine; protected void CommandLineParser$OptionAwareParserState(CommandLineParser, ParsedCommandLine); public boolean maybeStartOption(String); public CommandLineParser$ParserState onNonOption(String); }
org/gradle/cli/CommandLineParser$OptionComparator.class
package org.gradle.cli; final synchronized class CommandLineParser$OptionComparator implements java.util.Comparator { private void CommandLineParser$OptionComparator(); public int compare(CommandLineOption, CommandLineOption); }
org/gradle/cli/CommandLineParser$OptionParserState.class
package org.gradle.cli; abstract synchronized class CommandLineParser$OptionParserState { private void CommandLineParser$OptionParserState(); public abstract CommandLineParser$ParserState onStartNextArg(); public abstract CommandLineParser$ParserState onArgument(String); public abstract boolean getHasArgument(); public abstract CommandLineParser$ParserState onComplete(); }
org/gradle/cli/CommandLineParser$OptionString.class
package org.gradle.cli; synchronized class CommandLineParser$OptionString { private final String arg; private final String option; private void CommandLineParser$OptionString(String, String); public String getDisplayName(); public String toString(); }
org/gradle/cli/CommandLineParser$OptionStringComparator.class
package org.gradle.cli; final synchronized class CommandLineParser$OptionStringComparator implements java.util.Comparator { private void CommandLineParser$OptionStringComparator(); public int compare(String, String); }
org/gradle/cli/CommandLineParser$ParserState.class
package org.gradle.cli; abstract synchronized class CommandLineParser$ParserState { private void CommandLineParser$ParserState(); public abstract boolean maybeStartOption(String); boolean isOption(String); public abstract CommandLineParser$OptionParserState onStartOption(String, String); public abstract CommandLineParser$ParserState onNonOption(String); public void onCommandLineEnd(); }
org/gradle/cli/CommandLineParser$UnknownOptionParserState.class
package org.gradle.cli; synchronized class CommandLineParser$UnknownOptionParserState extends CommandLineParser$OptionParserState { private final CommandLineParser$ParserState state; private final String arg; private final ParsedCommandLine commandLine; private void CommandLineParser$UnknownOptionParserState(String, ParsedCommandLine, CommandLineParser$ParserState); public boolean getHasArgument(); public CommandLineParser$ParserState onStartNextArg(); public CommandLineParser$ParserState onArgument(String); public CommandLineParser$ParserState onComplete(); }
org/gradle/cli/CommandLineParser.class
package org.gradle.cli; public synchronized class CommandLineParser { private static final java.util.regex.Pattern OPTION_NAME_PATTERN; private java.util.Map optionsByString; private boolean allowMixedOptions; private boolean allowUnknownOptions; public void CommandLineParser(); public transient ParsedCommandLine parse(String[]) throws CommandLineArgumentException; public ParsedCommandLine parse(Iterable) throws CommandLineArgumentException; public CommandLineParser allowMixedSubcommandsAndOptions(); public CommandLineParser allowUnknownOptions(); public transient CommandLineParser allowOneOf(String[]); public void printUsage(Appendable); private static String join(java.util.Collection, String); public transient CommandLineOption option(String[]); static void <clinit>(); }
org/gradle/cli/ParsedCommandLine.class
package org.gradle.cli; public synchronized class ParsedCommandLine { private final java.util.Map optionsByString; private final java.util.Set presentOptions; private final java.util.Set removedOptions; private final java.util.List extraArguments; void ParsedCommandLine(Iterable); public String toString(); private String quoteAndJoin(Iterable); public boolean hasOption(String); public boolean hadOptionRemoved(String); public boolean hasAnyOption(java.util.Collection); public ParsedCommandLineOption option(String); public java.util.List getExtraArguments(); void addExtraValue(String); ParsedCommandLineOption addOption(String, CommandLineOption); void removeOption(CommandLineOption); }
org/gradle/cli/ParsedCommandLineOption.class
package org.gradle.cli; public synchronized class ParsedCommandLineOption { private final java.util.List values; public void ParsedCommandLineOption(); public String getValue(); public java.util.List getValues(); public void addArgument(String); public boolean hasValue(); }
org/gradle/cli/ProjectPropertiesCommandLineConverter.class
package org.gradle.cli; public synchronized class ProjectPropertiesCommandLineConverter extends AbstractPropertiesCommandLineConverter { public void ProjectPropertiesCommandLineConverter(); protected String getPropertyOption(); protected String getPropertyOptionDetailed(); protected String getPropertyOptionDescription(); }
org/gradle/cli/SystemPropertiesCommandLineConverter.class
package org.gradle.cli; public synchronized class SystemPropertiesCommandLineConverter extends AbstractPropertiesCommandLineConverter { public void SystemPropertiesCommandLineConverter(); protected String getPropertyOption(); protected String getPropertyOptionDetailed(); protected String getPropertyOptionDescription(); }
gradle-cli-classpath.properties
projects= runtime=
build-receipt.properties
versionNumber=4.6
gradle/wrapper/gradle-wrapper.properties
#Wed Jan 08 10:58:36 EAT 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
.gitignore
*.iml .gradle /local.properties /.idea/caches /.idea/libraries /.idea/modules.xml /.idea/workspace.xml /.idea/navEditor.xml /.idea/assetWizardSettings.xml .DS_Store /build /captures .externalNativeBuild
build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.4.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { google() jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
GeoCoding.iml