App(8)

 

Assignment Instructions

Please use files that are attachment for  work  

Don't use plagiarized sources. Get Your Custom Essay on
App(8)
Just from $13/Page
Order Essay

Please see the attachment for ( A ).

(A)    Select at least 2 of previous assignment projects, combine them
(B)    Design and develop 3 or more features and add to the combined project, including layouts, buttons, functions, and etc.
(C)    Make sure it compile and work.
(D)    Run on the Emulator.
(E)    Run on a real phone (optional)
(F)    Take screenshots of either (D) or (E), and document the new features you added. Good to add various design diagrams.
(G)    Zip the Android Studio project folder for this program.
(H)    Please have a cover sheet with your name and the name of the assignment. Name the file following naming convention “ENTD322FinalProject_First_Last ”
(I)    Upload the document and the zip file as attachments.

Note: for turn-ins, your project should be done using Android Studio, not Eclipse.

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
}

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.
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’

.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/jarAnalysis.bin

.gradle/5.1.1/javaCompile/javaCompile.lock

.gradle/5.1.1/javaCompile/taskHistory.bin

.gradle/buildOutputCleanup/buildOutputCleanup.lock

.gradle/buildOutputCleanup/cache.properties
#Mon Jan 20 12:53:03 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__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_cardview_v7_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_design_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_preference_v7_28_0_0_alpha1_aar.xml

.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml

.idea/libraries/Gradle__com_android_support_recyclerview_v7_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_media_compat_28_0_0_alpha1_aar.xml

.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_alpha1_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_transition_28_0_0_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_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

com.android.support
appcompat-v7
28.0.0
Google,Android Repository

com.android.support
design
28.0.0
Google,Android Repository

com.android.support
preference-v7
28.0.0
Google,Android Repository

com.android.support.constraint
constraint-layout
2.0.0-beta4
Google

junit
junit
4.13
JCenter

com.android.support.test
runner
1.0.2
Google,Android Repository

com.android.support.test.espresso
espresso-core
3.0.2
Google,Android Repository

1579516949364

1579513921153

1579513921153

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.rkb.birthdaywidget”
minSdkVersion 15
targetSdkVersion 28
versionCode 1
versionName “1.0”
testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’
}
}
}
dependencies {
implementation fileTree(dir: ‘libs’, include: [‘*.jar’])
implementation ‘com.android.support:appcompat-v7:28.0.0’
implementation ‘com.android.support.constraint:constraint-layout:1.1.3’
implementation ‘com.android.support:design:28.0.0’
testImplementation ‘junit:junit:4.12’
androidTestImplementation ‘com.android.support.test:runner:1.0.2’
androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.2’
implementation ‘com.android.support:preference-v7:28.0.0-alpha1’
}

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/rkb/birthdaywidget/ExampleInstrumentedTest.java
app/src/androidTest/java/com/rkb/birthdaywidget/ExampleInstrumentedTest.java
package
 com
.
rkb
.
birthdaywidget
;

import
 android
.
content
.
Context
;

import
 android
.
support
.
test
.
InstrumentationRegistry
;

import
 android
.
support
.
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
 Testing documentation

 */

@
RunWith
(
AndroidJUnit4
.
class
)

public
 
class
 
ExampleInstrumentedTest
 
{

    @
Test

    
public
 
void
 useAppContext
()
 
{

        
// Context of the app under test.

        
Context
 appContext 
=
 
InstrumentationRegistry
.
getTargetContext
();

        assertEquals
(
“com.rkb.birthdaywidget”
,
 appContext
.
getPackageName
());

    
}

}

app/src/main/AndroidManifest.xml

app/src/main/java/com/rkb/birthdaywidget/BDayWidgetModel.java
app/src/main/java/com/rkb/birthdaywidget/BDayWidgetModel.java
package
 com
.
rkb
.
birthdaywidget
;

import
 android
.
content
.
Context
;

import
 android
.
content
.
SharedPreferences
;

import
 java
.
util
.
Calendar
;

import
 java
.
util
.
Date
;

import
 java
.
util
.
concurrent
.
TimeUnit
;

public
 
class
 
BDayWidgetModel
 
{

    
public
 
Integer
 iid
;

    
private
 
String
 
Bday
;

    
private
 
String
 name
;

    
public
 
static
 
BDayWidgetModel
 retrieveModel
(
Context
 context
,
 
Integer
 widgetid
){

        
SharedPreferences
 sharedPref 
=
 context
.
getSharedPreferences
(

                context
.
getString
(
R
.
string
.
pref_file_key
),
 
Context
.
MODE_PRIVATE
);

        
String
 bday 
=
 sharedPref
.
getString
(
widgetid
.
toString
()
+
“_birthday”
,
 
“01/01/1970”
);

        
String
 name 
=
 sharedPref
.
getString
(
widgetid
.
toString
()
 
+
 
“_name”
,
 
“John Doe”
);

        
return
 
new
 
BDayWidgetModel
(
widgetid
,
name
,
bday
);

    
}

    
public
 
void
 savePreferences
(
Context
 context
){

        
//save iid, name, Bday

        
SharedPreferences
 sharedPref 
=
 context
.
getSharedPreferences
(

                context
.
getString
(
R
.
string
.
pref_file_key
),
 
Context
.
MODE_PRIVATE
);

        
SharedPreferences
.
Editor
 editor 
=
 sharedPref
.
edit
();

        editor
.
putString
(
iid
.
toString
()
+
 
“_birthday”
,
 
Bday
);

        editor
.
putString
(
iid
.
toString
()
 
+
 
“_name”
,
 name
);

        editor
.
commit
();

    
}

    
public
 
void
 removePrefs
(
Context
 context
){

        
SharedPreferences
 sharedPref 
=
 context
.
getSharedPreferences
(

                context
.
getString
(
R
.
string
.
pref_file_key
),
 
Context
.
MODE_PRIVATE
);

        
SharedPreferences
.
Editor
 editor 
=
 sharedPref
.
edit
();

        editor
.
remove
(
iid
.
toString
()
+
 
“_birthday”
);

        editor
.
remove
(
iid
.
toString
()
+
 
“_name”
);

        editor
.
commit
();

    
}

    
public
 
static
 
void
 clearAllPreferences
(
Context
 context
){

        
SharedPreferences
 sharedPref 
=
 context
.
getSharedPreferences
(

                context
.
getString
(
R
.
string
.
pref_file_key
),
 
Context
.
MODE_PRIVATE
);

        
SharedPreferences
.
Editor
 editor 
=
 sharedPref
.
edit
();

        editor
.
clear
();

        editor
.
commit
();

    
}

    
public
 
BDayWidgetModel
(
Integer
 iid
,
 
String
 name
,
 
String
 dob
)
 
{

        
this
.
iid 
=
 iid
;

        
this
.
name 
=
 name
;

        
this
.
Bday
 
=
 dob
;

    
}

    
public
 
Long
 howManyDays
(){

        
Date
 date1 
=
 
Calendar
.
getInstance
().
getTime
();

        
Date
 date2 
=
 
Utils
.
getBirthDay
(
Bday
);

        
if
(
date2 
==
 
null
){

            
return
 
0L
;

        
}

        
//this year birthday

        date2
.
setYear
(
date1
.
getYear
());

        
//due next year, it has pass

        
if
 
(
date2
.
getTime
()
 
<  date1 . getTime ()   ){             date2 . setYear ( date1 . getYear ()   +   1 );          }          long  diff  =  date2 . getTime ()   -  date1 . getTime ();          return    TimeUnit . DAYS . convert ( diff ,   TimeUnit . MILLISECONDS );      }      public   String  getName ()   {          return  name ;      }      public   void  setName ( String  name )   {          this . name  =  name ;      }      public   String  getBday ()   {          return   Bday ;      } } app/src/main/java/com/rkb/birthdaywidget/BDayWidgetProvider.java app/src/main/java/com/rkb/birthdaywidget/BDayWidgetProvider.java package  com . rkb . birthdaywidget ; import  android . appwidget . AppWidgetManager ; import  android . appwidget . AppWidgetProvider ; import  android . content . ComponentName ; import  android . content . Context ; import  android . content . pm . PackageManager ; public   class   BDayWidgetProvider   extends   AppWidgetProvider   {      private   static   final   String  tag  =   "BDayWidgetProvider" ;      public   void  onUpdate ( Context  context ,   AppWidgetManager  appWidgetManager ,   int []  appWidgetIds )   {          final   int  N  =  appWidgetIds . length ;          for   ( int  i = 0 ;  i < N ;  i ++ )   {              int  appWidgetId  =  appWidgetIds [ i ];             updateAppWidget ( context ,  appWidgetManager ,  appWidgetId );          }      }      public   void  onDeleted ( Context  context ,   int []  appWidgetIds )   {          final   int  N  =  appWidgetIds . length ;          for   ( int  i = 0 ;  i < N ;  i ++ )   {              BDayWidgetModel  bwm  =   BDayWidgetModel . retrieveModel ( context ,  appWidgetIds [ i ]);             bwm . removePrefs ( context );          }      }      public   void  onEnabled ( Context  context )   {          BDayWidgetModel . clearAllPreferences ( context );          PackageManager  pm  =  context . getPackageManager ();         pm . setComponentEnabledSetting (                  new   ComponentName ( "com.rkb.birthdaywidget" ,   ".BDayWidgetProvider" ),                  PackageManager . COMPONENT_ENABLED_STATE_ENABLED ,                  PackageManager . DONT_KILL_APP );      }      public   void  onDisabled ( Context  context )   {          BDayWidgetModel . clearAllPreferences ( context );          PackageManager  pm  =  context . getPackageManager ();         pm . setComponentEnabledSetting (                  new   ComponentName ( "com.rkb.birthdaywidget" ,   ".BDayWidgetProvider" ),                  PackageManager . COMPONENT_ENABLED_STATE_DISABLED ,                  PackageManager . DONT_KILL_APP );      }      private   void  updateAppWidget ( Context  context ,   AppWidgetManager  appWidgetManager ,                                   int  appWidgetId )   {          BDayWidgetModel  bwm  =   BDayWidgetModel . retrieveModel ( context ,  appWidgetId );          if   ( bwm  ==   null )   {              return ;          }          MainActivity . updateAppWidget ( context ,  appWidgetManager ,  bwm );      } } app/src/main/java/com/rkb/birthdaywidget/MainActivity.java app/src/main/java/com/rkb/birthdaywidget/MainActivity.java package  com . rkb . birthdaywidget ; import  android . app . Activity ; import  android . app . PendingIntent ; import  android . appwidget . AppWidgetManager ; import  android . content . Context ; import  android . content . Intent ; import  android . net . Uri ; import  android . os . Bundle ; import  android . support . v7 . app . AppCompatActivity ; import  android . util . Log ; import  android . view . View ; import  android . widget . Button ; import  android . widget . EditText ; import  android . widget . RemoteViews ; public   class   MainActivity   extends   AppCompatActivity   {      private   static   String  tag  =   "MainActivity" ;      private   int  mAppWidgetId  =   AppWidgetManager . INVALID_APPWIDGET_ID ;     @ Override      protected   void  onCreate ( Bundle  savedInstanceState )   {          super . onCreate ( savedInstanceState );         setContentView ( R . layout . edit_bday_widget );         setupButton ();          //setup the save button          //Get the widget instanceid from the intent extra          Intent  intent  =  getIntent ();          Bundle  extras  =  intent . getExtras ();          if   ( extras  !=   null )   {             mAppWidgetId  =  extras . getInt ( AppWidgetManager . EXTRA_APPWIDGET_ID ,                      AppWidgetManager . INVALID_APPWIDGET_ID );          }          else   {              Log . d ( tag ,   "Null starting intent" );          }      }      private   void  setupButton ()   {          Button  b  =   ( Button )   this . findViewById ( R . id . bdw_button_update_bday_widget );         b . setOnClickListener ( new   Button . OnClickListener ()   {              public   void  onClick ( View  v )   {                 saveConfiguration ( v );              }          });      }      //finish the activity.      private   void  saveConfiguration ( View  v )   {          String  name  =   this . getName ();          String  date  =   this . getDate ();          if   ( Utils . validateDate ( date )   ==   false )   {              this . setDate ( "wrong date:"   +  date );              return ;          }          if   ( this . mAppWidgetId  ==   AppWidgetManager . INVALID_APPWIDGET_ID )   {              Log . d ( tag ,   "INVALID WIDGET ID" );              return ;          }         updateAppWidgetLocal ( name ,  date );          Intent  resultValue  =   new   Intent ();         resultValue . putExtra ( AppWidgetManager . EXTRA_APPWIDGET_ID ,  mAppWidgetId );         setResult ( RESULT_OK ,  resultValue );         finish ();      }      private   String  getName ()   {          EditText  nameEdit  =   ( EditText )   this . findViewById ( R . id . bdw_bday_name_id );          String  name  =  nameEdit . getText (). toString ();          return  name ;      }      private   String  getDate ()   {          EditText  dateEdit  =   ( EditText )   this . findViewById ( R . id . bdw_bday_date_id );          String  dateString  =  dateEdit . getText (). toString ();          return  dateString ;      }      private   void  setDate ( String  errorDate )   {          EditText  dateEdit  =   ( EditText )   this . findViewById ( R . id . bdw_bday_date_id );         dateEdit . setText ( "" );         dateEdit . setHint ( "month/day/year" );         dateEdit . requestFocus ();      }      private   void  updateAppWidgetLocal ( String  name ,   String  dob )   {          //Create an object to hold the data: widgetid, name, and dob          BDayWidgetModel  m  =   new   BDayWidgetModel ( mAppWidgetId ,  name ,  dob );          //Create the view and send it to the home screen         updateAppWidget ( this ,   AppWidgetManager . getInstance ( this ),  m );          //Use the data model object to save the id, name, and dob in prefs         m . savePreferences ( this );      }      //A key method where a lot of magic happens      public   static   void  updateAppWidget ( Context  context ,   AppWidgetManager  appWidgetManager ,                                         BDayWidgetModel  widgetModel )   {          //Construct a RemoteViews Object from the widget layout file          RemoteViews  views  =   new   RemoteViews ( context . getPackageName (),   R . layout . bday_widget );          //Use the control ids in the layout to set values on them.          //Notice that these methods are limited and available on the          //on the RemoteViews object. In other words we are not using the          //TextView directly to set these values.         views . setTextViewText ( R . id . bdw_w_name ,  widgetModel . getName ()   +   ":"   +  widgetModel . iid );         views . setTextViewText ( R . id . bdw_w_date ,  widgetModel . getBday ());          //update the name         views . setTextViewText ( R . id . bdw_w_days ,   Long . toString ( widgetModel . howManyDays ()));          //Set intents to invoke other activities when widget is clicked on          Intent  defineIntent  =   new   Intent ( Intent . ACTION_VIEW ,   Uri . parse ( "http://www.google.com" ));          PendingIntent  pendingIntent  =   PendingIntent . getActivity ( context ,                  0   ,  defineIntent ,   0   /* no flags */ );         views . setOnClickPendingIntent ( R . id . bdw_w_button_buy ,  pendingIntent );          Intent  configIntent  =   new   Intent ( context ,   MainActivity . class );         configIntent . putExtra ( AppWidgetManager . EXTRA_APPWIDGET_ID ,  widgetModel . iid );          Uri  uri1  =   Uri . parse ( "myapp://widget/id/#togetituniqie"   +  widgetModel . iid );         configIntent . setData ( Uri . withAppendedPath ( uri1 ,   String . valueOf ( widgetModel . iid )));          PendingIntent  start_main  =   PendingIntent . getActivity ( context ,   0 ,                 configIntent ,   0 );         views . setOnClickPendingIntent ( R . id . bdw_w_date ,  start_main );         views . setOnClickPendingIntent ( R . id . bdw_w_name ,  start_main );          // Tell the widget manager to paint the remote view         appWidgetManager . updateAppWidget ( widgetModel . iid ,  views );      } } app/src/main/java/com/rkb/birthdaywidget/Utils.java app/src/main/java/com/rkb/birthdaywidget/Utils.java package  com . rkb . birthdaywidget ; import  java . text . DateFormat ; import  java . text . ParseException ; import  java . text . SimpleDateFormat ; import  java . util . Date ; public   class   Utils   {      public   static   boolean  validateDate ( String  date ){          String  dateFormat  =   "MM/dd/yyyy" ;          DateFormat  sdf  =   new   SimpleDateFormat ( dateFormat );         sdf . setLenient ( false );          try   {             sdf . parse ( date );          }   catch   ( ParseException  e )   {              return   false ;          }          return   true ;      }      public   static   Date  getBirthDay ( String  bday ){          String  dateFormat  =   "MM/dd/yyyy" ;          DateFormat  sdf  =   new   SimpleDateFormat ( dateFormat );         sdf . setLenient ( false );          try   {              return  sdf . parse ( bday );          }   catch   ( ParseException  e )   {              return   null ;          }      } } app/src/main/res/drawable/background_shape.xml app/src/main/res/drawable/ic_launcher_background.xml app/src/main/res/drawable-v24/ic_launcher_foreground.xml app/src/main/res/layout/bday_widget.xml app/src/main/res/layout/edit_bday_widget.xml app/src/main/res/menu/menu_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 app/src/main/res/mipmap-hdpi/ic_launcher_round app/src/main/res/mipmap-mdpi/ic_launcher app/src/main/res/mipmap-mdpi/ic_launcher_round app/src/main/res/mipmap-xhdpi/ic_launcher app/src/main/res/mipmap-xhdpi/ic_launcher_round app/src/main/res/mipmap-xxhdpi/ic_launcher app/src/main/res/mipmap-xxhdpi/ic_launcher_round app/src/main/res/mipmap-xxxhdpi/ic_launcher app/src/main/res/mipmap-xxxhdpi/ic_launcher_round app/src/main/res/values/colors.xml #008577 #00574B #D81B60 app/src/main/res/values/dimens.xml 16dp app/src/main/res/values/strings.xml BirthDay Widget Settings com.rkb.birthdaywidget.preference_file_key app/src/main/res/values/styles.xml @color/colorPrimary @color/colorPrimaryDark @color/colorAccent @style/PreferenceThemeOverlay false true app/src/main/res/xml/bday_appwidget_provider.xml app/src/test/java/com/rkb/birthdaywidget/ExampleUnitTest.java app/src/test/java/com/rkb/birthdaywidget/ExampleUnitTest.java package  com . rkb . birthdaywidget ; import  org . junit . Test ; import   static  org . junit . Assert . * ; /**  * Example local unit test, which will execute on the development machine (host).  *  *  @see  Testing documentation

 */

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 ();
}

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 ();
}

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
#Mon Jan 20 12:52:10 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

BirthDayWidget2.iml

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
 Testing documentation

 */

@
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

app/src/main/res/mipmap-hdpi/ic_launcher_round

app/src/main/res/mipmap-mdpi/ic_launcher

app/src/main/res/mipmap-mdpi/ic_launcher_round

app/src/main/res/mipmap-xhdpi/ic_launcher

app/src/main/res/mipmap-xhdpi/ic_launcher_round

app/src/main/res/mipmap-xxhdpi/ic_launcher

app/src/main/res/mipmap-xxhdpi/ic_launcher_round

app/src/main/res/mipmap-xxxhdpi/ic_launcher

app/src/main/res/mipmap-xxxhdpi/ic_launcher_round

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
 Testing documentation

 */

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 ();
}

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 ();
}

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

What Will You Get?

We provide professional writing services to help you score straight A’s by submitting custom written assignments that mirror your guidelines.

Premium Quality

Get result-oriented writing and never worry about grades anymore. We follow the highest quality standards to make sure that you get perfect assignments.

Experienced Writers

Our writers have experience in dealing with papers of every educational level. You can surely rely on the expertise of our qualified professionals.

On-Time Delivery

Your deadline is our threshold for success and we take it very seriously. We make sure you receive your papers before your predefined time.

24/7 Customer Support

Someone from our customer support team is always here to respond to your questions. So, hit us up if you have got any ambiguity or concern.

Complete Confidentiality

Sit back and relax while we help you out with writing your papers. We have an ultimate policy for keeping your personal and order-related details a secret.

Authentic Sources

We assure you that your document will be thoroughly checked for plagiarism and grammatical errors as we use highly authentic and licit sources.

Moneyback Guarantee

Still reluctant about placing an order? Our 100% Moneyback Guarantee backs you up on rare occasions where you aren’t satisfied with the writing.

Order Tracking

You don’t have to wait for an update for hours; you can track the progress of your order any time you want. We share the status after each step.

image

Areas of Expertise

Although you can leverage our expertise for any writing task, we have a knack for creating flawless papers for the following document types.

Areas of Expertise

Although you can leverage our expertise for any writing task, we have a knack for creating flawless papers for the following document types.

image

Trusted Partner of 9650+ Students for Writing

From brainstorming your paper's outline to perfecting its grammar, we perform every step carefully to make your paper worthy of A grade.

Preferred Writer

Hire your preferred writer anytime. Simply specify if you want your preferred expert to write your paper and we’ll make that happen.

Grammar Check Report

Get an elaborate and authentic grammar check report with your work to have the grammar goodness sealed in your document.

One Page Summary

You can purchase this feature if you want our writers to sum up your paper in the form of a concise and well-articulated summary.

Plagiarism Report

You don’t have to worry about plagiarism anymore. Get a plagiarism report to certify the uniqueness of your work.

Free Features $66FREE

  • Most Qualified Writer $10FREE
  • Plagiarism Scan Report $10FREE
  • Unlimited Revisions $08FREE
  • Paper Formatting $05FREE
  • Cover Page $05FREE
  • Referencing & Bibliography $10FREE
  • Dedicated User Area $08FREE
  • 24/7 Order Tracking $05FREE
  • Periodic Email Alerts $05FREE
image

Our Services

Join us for the best experience while seeking writing assistance in your college life. A good grade is all you need to boost up your academic excellence and we are all about it.

  • On-time Delivery
  • 24/7 Order Tracking
  • Access to Authentic Sources
Academic Writing

We create perfect papers according to the guidelines.

Professional Editing

We seamlessly edit out errors from your papers.

Thorough Proofreading

We thoroughly read your final draft to identify errors.

image

Delegate Your Challenging Writing Tasks to Experienced Professionals

Work with ultimate peace of mind because we ensure that your academic work is our responsibility and your grades are a top concern for us!

Check Out Our Sample Work

Dedication. Quality. Commitment. Punctuality

Categories
All samples
Essay (any type)
Essay (any type)
The Value of a Nursing Degree
Undergrad. (yrs 3-4)
Nursing
2
View this sample

It May Not Be Much, but It’s Honest Work!

Here is what we have achieved so far. These numbers are evidence that we go the extra mile to make your college journey successful.

0+

Happy Clients

0+

Words Written This Week

0+

Ongoing Orders

0%

Customer Satisfaction Rate
image

Process as Fine as Brewed Coffee

We have the most intuitive and minimalistic process so that you can easily place an order. Just follow a few steps to unlock success.

See How We Helped 9000+ Students Achieve Success

image

We Analyze Your Problem and Offer Customized Writing

We understand your guidelines first before delivering any writing service. You can discuss your writing needs and we will have them evaluated by our dedicated team.

  • Clear elicitation of your requirements.
  • Customized writing as per your needs.

We Mirror Your Guidelines to Deliver Quality Services

We write your papers in a standardized way. We complete your work in such a way that it turns out to be a perfect description of your guidelines.

  • Proactive analysis of your writing.
  • Active communication to understand requirements.
image
image

We Handle Your Writing Tasks to Ensure Excellent Grades

We promise you excellent grades and academic excellence that you always longed for. Our writers stay in touch with you via email.

  • Thorough research and analysis for every order.
  • Deliverance of reliable writing service to improve your grades.
Place an Order Start Chat Now
image

Order your essay today and save 30% with the discount code Happy