This was done a few weeks ago; Create a new project based on 2023 standards.
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | ||||
| /local.properties | ||||
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/checksums/checksums.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/checksums/md5-checksums.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/checksums/sha1-checksums.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/dependencies-accessors/dependencies-accessors.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								.gradle/8.0/dependencies-accessors/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/executionHistory/executionHistory.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/fileChanges/last-build.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/fileHashes/fileHashes.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/fileHashes/fileHashes.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/8.0/fileHashes/resourceHashesCache.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								.gradle/8.0/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								.gradle/buildOutputCleanup/buildOutputCleanup.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										2
									
								
								.gradle/buildOutputCleanup/cache.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,2 @@ | ||||
| #Fri May 26 19:13:34 MST 2023 | ||||
| gradle.version=8.0 | ||||
							
								
								
									
										
											BIN
										
									
								
								.gradle/buildOutputCleanup/outputFiles.bin
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										0
									
								
								.gradle/vcs-1/gc.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										3
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,3 +0,0 @@ | ||||
| # Default ignored files | ||||
| /shelf/ | ||||
| /workspace.xml | ||||
							
								
								
									
										123
									
								
								.idea/codeStyles/Project.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,123 @@ | ||||
| <component name="ProjectCodeStyleConfiguration"> | ||||
|   <code_scheme name="Project" version="173"> | ||||
|     <JetCodeStyleSettings> | ||||
|       <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> | ||||
|     </JetCodeStyleSettings> | ||||
|     <codeStyleSettings language="XML"> | ||||
|       <option name="FORCE_REARRANGE_MODE" value="1" /> | ||||
|       <indentOptions> | ||||
|         <option name="CONTINUATION_INDENT_SIZE" value="4" /> | ||||
|       </indentOptions> | ||||
|       <arrangement> | ||||
|         <rules> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>xmlns:android</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>^$</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|             </rule> | ||||
|           </section> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>xmlns:.*</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>^$</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|               <order>BY_NAME</order> | ||||
|             </rule> | ||||
|           </section> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>.*:id</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|             </rule> | ||||
|           </section> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>.*:name</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|             </rule> | ||||
|           </section> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>name</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>^$</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|             </rule> | ||||
|           </section> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>style</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>^$</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|             </rule> | ||||
|           </section> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>.*</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>^$</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|               <order>BY_NAME</order> | ||||
|             </rule> | ||||
|           </section> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>.*</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|               <order>ANDROID_ATTRIBUTE_ORDER</order> | ||||
|             </rule> | ||||
|           </section> | ||||
|           <section> | ||||
|             <rule> | ||||
|               <match> | ||||
|                 <AND> | ||||
|                   <NAME>.*</NAME> | ||||
|                   <XML_ATTRIBUTE /> | ||||
|                   <XML_NAMESPACE>.*</XML_NAMESPACE> | ||||
|                 </AND> | ||||
|               </match> | ||||
|               <order>BY_NAME</order> | ||||
|             </rule> | ||||
|           </section> | ||||
|         </rules> | ||||
|       </arrangement> | ||||
|     </codeStyleSettings> | ||||
|     <codeStyleSettings language="kotlin"> | ||||
|       <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> | ||||
|     </codeStyleSettings> | ||||
|   </code_scheme> | ||||
| </component> | ||||
							
								
								
									
										5
									
								
								.idea/codeStyles/codeStyleConfig.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | ||||
| <component name="ProjectCodeStyleConfiguration"> | ||||
|   <state> | ||||
|     <option name="USE_PER_PROJECT_SETTINGS" value="true" /> | ||||
|   </state> | ||||
| </component> | ||||
							
								
								
									
										2
									
								
								.idea/compiler.xml
									
									
									
										generated
									
									
									
								
							
							
						
						| @@ -1,6 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="CompilerConfiguration"> | ||||
|     <bytecodeTargetLevel target="1.8" /> | ||||
|     <bytecodeTargetLevel target="17" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										11
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							
							
						
						| @@ -3,12 +3,15 @@ | ||||
|   <component name="GradleSettings"> | ||||
|     <option name="linkedExternalProjectsSettings"> | ||||
|       <GradleProjectSettings> | ||||
|         <option name="testRunner" value="PLATFORM" /> | ||||
|         <option name="testRunner" value="GRADLE" /> | ||||
|         <option name="distributionType" value="DEFAULT_WRAPPED" /> | ||||
|         <option name="externalProjectPath" value="$PROJECT_DIR$" /> | ||||
|         <option name="gradleJvm" value="1.8" /> | ||||
|         <option name="resolveModulePerSourceSet" value="false" /> | ||||
|         <option name="useQualifiedModuleNames" value="true" /> | ||||
|         <option name="modules"> | ||||
|           <set> | ||||
|             <option value="$PROJECT_DIR$" /> | ||||
|             <option value="$PROJECT_DIR$/app" /> | ||||
|           </set> | ||||
|         </option> | ||||
|       </GradleProjectSettings> | ||||
|     </option> | ||||
|   </component> | ||||
|   | ||||
							
								
								
									
										6
									
								
								.idea/kotlinc.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="KotlinJpsPluginSettings"> | ||||
|     <option name="version" value="1.7.20" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										3
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
								
							
							
						
						| @@ -1,6 +1,7 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> | ||||
|   <component name="ExternalStorageConfigurationManager" enabled="true" /> | ||||
|   <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> | ||||
|     <output url="file://$PROJECT_DIR$/build/classes" /> | ||||
|   </component> | ||||
|   <component name="ProjectType"> | ||||
|   | ||||
							
								
								
									
										163
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,163 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="AutoImportSettings"> | ||||
|     <option name="autoReloadType" value="NONE" /> | ||||
|   </component> | ||||
|   <component name="ChangeListManager"> | ||||
|     <list default="true" id="76d6d0d5-c825-465a-b20a-4e0d6a43ad08" name="Changes" comment=""> | ||||
|       <change afterPath="$PROJECT_DIR$/.gitignore" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/.idea/.gitignore" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/.idea/compiler.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/.idea/gradle.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/gradle.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/LICENSE" beforeDir="false" afterPath="$PROJECT_DIR$/LICENSE" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/README.md" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/AndroidManifest.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hyperling/breakthehabit/FirstFragment.kt" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hyperling/breakthehabit/MainActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/hyperling/breakthehabit/MainActivity.kt" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/java/com/hyperling/breakthehabit/SecondFragment.kt" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/activity_main.xml" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/content_main.xml" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_first.xml" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/fragment_second.xml" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/menu/menu_main.xml" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-hdpi/ic_launcher.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-hdpi/ic_launcher_round.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-mdpi/ic_launcher.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-mdpi/ic_launcher_round.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-xhdpi/ic_launcher.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-xxhdpi/ic_launcher.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/navigation/nav_graph.xml" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/values-night/themes.xml" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/values/dimens.xml" beforeDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/app/src/main/res/values/themes.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/themes.xml" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/gradle.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle.properties" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.jar" beforeDir="false" afterPath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.jar" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/gradlew" beforeDir="false" afterPath="$PROJECT_DIR$/gradlew" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/gradlew.bat" beforeDir="false" afterPath="$PROJECT_DIR$/gradlew.bat" afterDir="false" /> | ||||
|       <change beforePath="$PROJECT_DIR$/settings.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/settings.gradle" afterDir="false" /> | ||||
|     </list> | ||||
|     <option name="SHOW_DIALOG" value="false" /> | ||||
|     <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||||
|     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> | ||||
|     <option name="LAST_RESOLUTION" value="IGNORE" /> | ||||
|   </component> | ||||
|   <component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[5b9be7fc]" /> | ||||
|   <component name="ExternalProjectsData"> | ||||
|     <projectState path="$PROJECT_DIR$"> | ||||
|       <ProjectState /> | ||||
|     </projectState> | ||||
|   </component> | ||||
|   <component name="Git.Settings"> | ||||
|     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> | ||||
|   </component> | ||||
|   <component name="MarkdownSettingsMigration"> | ||||
|     <option name="stateVersion" value="1" /> | ||||
|   </component> | ||||
|   <component name="ProjectId" id="2QMBIYRsWHWDbES9UDD60yXPQxZ" /> | ||||
|   <component name="ProjectViewState"> | ||||
|     <option name="hideEmptyMiddlePackages" value="true" /> | ||||
|     <option name="showLibraryContents" value="true" /> | ||||
|   </component> | ||||
|   <component name="PropertiesComponent"><![CDATA[{ | ||||
|   "keyToString": { | ||||
|     "RunOnceActivity.OpenProjectViewOnStart": "true", | ||||
|     "RunOnceActivity.ShowReadmeOnStart": "true", | ||||
|     "RunOnceActivity.cidr.known.project.marker": "true", | ||||
|     "SHARE_PROJECT_CONFIGURATION_FILES": "true", | ||||
|     "cidr.known.project.marker": "true" | ||||
|   } | ||||
| }]]></component> | ||||
|   <component name="RunManager"> | ||||
|     <configuration name="app" type="AndroidRunConfigurationType" factoryName="Android App"> | ||||
|       <module name="Break_The_Habit.app.main" /> | ||||
|       <option name="DEPLOY" value="true" /> | ||||
|       <option name="DEPLOY_APK_FROM_BUNDLE" value="false" /> | ||||
|       <option name="DEPLOY_AS_INSTANT" value="false" /> | ||||
|       <option name="ARTIFACT_NAME" value="" /> | ||||
|       <option name="PM_INSTALL_OPTIONS" value="" /> | ||||
|       <option name="ALL_USERS" value="false" /> | ||||
|       <option name="ALWAYS_INSTALL_WITH_PM" value="false" /> | ||||
|       <option name="CLEAR_APP_STORAGE" value="false" /> | ||||
|       <option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" /> | ||||
|       <option name="ACTIVITY_EXTRA_FLAGS" value="" /> | ||||
|       <option name="MODE" value="default_activity" /> | ||||
|       <option name="CLEAR_LOGCAT" value="false" /> | ||||
|       <option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" /> | ||||
|       <option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" /> | ||||
|       <option name="TARGET_SELECTION_MODE" value="DEVICE_AND_SNAPSHOT_COMBO_BOX" /> | ||||
|       <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> | ||||
|       <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> | ||||
|       <option name="DEBUGGER_TYPE" value="Auto" /> | ||||
|       <Auto> | ||||
|         <option name="USE_JAVA_AWARE_DEBUGGER" value="false" /> | ||||
|         <option name="SHOW_STATIC_VARS" value="true" /> | ||||
|         <option name="WORKING_DIR" value="" /> | ||||
|         <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> | ||||
|         <option name="SHOW_OPTIMIZED_WARNING" value="true" /> | ||||
|       </Auto> | ||||
|       <Hybrid> | ||||
|         <option name="USE_JAVA_AWARE_DEBUGGER" value="false" /> | ||||
|         <option name="SHOW_STATIC_VARS" value="true" /> | ||||
|         <option name="WORKING_DIR" value="" /> | ||||
|         <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> | ||||
|         <option name="SHOW_OPTIMIZED_WARNING" value="true" /> | ||||
|       </Hybrid> | ||||
|       <Java /> | ||||
|       <Native> | ||||
|         <option name="USE_JAVA_AWARE_DEBUGGER" value="false" /> | ||||
|         <option name="SHOW_STATIC_VARS" value="true" /> | ||||
|         <option name="WORKING_DIR" value="" /> | ||||
|         <option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" /> | ||||
|         <option name="SHOW_OPTIMIZED_WARNING" value="true" /> | ||||
|       </Native> | ||||
|       <Profilers> | ||||
|         <option name="ADVANCED_PROFILING_ENABLED" value="false" /> | ||||
|         <option name="STARTUP_PROFILING_ENABLED" value="false" /> | ||||
|         <option name="STARTUP_CPU_PROFILING_ENABLED" value="false" /> | ||||
|         <option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Java/Kotlin Method Sample (legacy)" /> | ||||
|         <option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" /> | ||||
|         <option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" /> | ||||
|       </Profilers> | ||||
|       <option name="DEEP_LINK" value="" /> | ||||
|       <option name="ACTIVITY_CLASS" value="" /> | ||||
|       <option name="SEARCH_ACTIVITY_IN_GLOBAL_SCOPE" value="false" /> | ||||
|       <option name="SKIP_ACTIVITY_VALIDATION" value="false" /> | ||||
|       <method v="2"> | ||||
|         <option name="Android.Gradle.BeforeRunTask" enabled="true" /> | ||||
|       </method> | ||||
|     </configuration> | ||||
|   </component> | ||||
|   <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" /> | ||||
|   <component name="TaskManager"> | ||||
|     <task active="true" id="Default" summary="Default task"> | ||||
|       <changelist id="76d6d0d5-c825-465a-b20a-4e0d6a43ad08" name="Changes" comment="" /> | ||||
|       <created>1685153491238</created> | ||||
|       <option name="number" value="Default" /> | ||||
|       <option name="presentableId" value="Default" /> | ||||
|       <updated>1685153491238</updated> | ||||
|     </task> | ||||
|     <servers /> | ||||
|   </component> | ||||
|   <component name="Vcs.Log.Tabs.Properties"> | ||||
|     <option name="TAB_STATES"> | ||||
|       <map> | ||||
|         <entry key="MAIN"> | ||||
|           <value> | ||||
|             <State /> | ||||
|           </value> | ||||
|         </entry> | ||||
|       </map> | ||||
|     </option> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						| @@ -1,6 +1,6 @@ | ||||
| MIT License | ||||
|  | ||||
| Copyright (c) 2021 Chad | ||||
| Copyright (c) 2021 Hyperling | ||||
|  | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
|   | ||||
							
								
								
									
										47
									
								
								README.md
									
									
									
									
									
								
							
							
						
						| @@ -1,4 +1,47 @@ | ||||
| # BreakTheHabit | ||||
| Android application to break the brainwashing habit of checking mobile phone without a reason. | ||||
|  | ||||
| My first Kotlin Android app. | ||||
| Break the habit of your smartphone addiction. | ||||
|  | ||||
| ## Purpose | ||||
|  | ||||
| Android application to curb the brainwashing habit of checking mobile phone without a reason. It  | ||||
| attempts to get in the way of "notification dopamine" which our bodies learn to seek. | ||||
|  | ||||
| ## Motivation | ||||
|  | ||||
| Maybe you realize we're heading into a dystopian nightmare of Internet and electronic addiction, | ||||
| or you simply want to reclaim some of your free time. This app is meant to put YOU in control of | ||||
| your device instead of the other way around. Allowing an electronic to control you by creating noise | ||||
| or vibrations in quite literally mind control. Rather than answering your device's every need, it | ||||
| should be treated more like a tool which is used when needed and put away when not. | ||||
|  | ||||
| It doesn't matter where you look, if there are other people, you will likely see someone on a smart | ||||
| device. Kids are given devices at young ages. Teens are glued to their devices, normally wearing  | ||||
| headphones or ear buds as well, completely tuned out of the physical reality. People no longer feel | ||||
| safe leaving their homes without their device, even though it wasn't until the late 2000's when the | ||||
| devices first started becoming popular and humans lives for thousands of years before the invention. | ||||
|  | ||||
| Without limits on usage the devices will continue to keep us ensnared. Americans are more and more | ||||
| having their dopamine cycle built around the gratification of using their device and checking their | ||||
| social media platforms. Tuning out the noise and taking time to detox from smartphone usage can be | ||||
| difficult to plan and even more difficult to execute.  | ||||
|  | ||||
| Some carriers don't allow dumb phones such as flip phones anymore, and governments help supply  | ||||
| phones and Internet to those who would not be able to afford it. While this may seem charitable and | ||||
| benevolent, it serves them a higher purpose of digitizing humanity. Mass surveillance is real and  | ||||
| has been implemented very strictly in some countries. The corrupt central banking system will soon  | ||||
| be deprecated with an even more corrupt CBDC system which requires the consentual use of a smart  | ||||
| device. This is the technocratic state that many have been warning about. | ||||
|  | ||||
| The solutions? Staying in control of yourself, your property, and most importantly your mind. We | ||||
| are sovereign beings. If you forfeit control of yourself you become a slave to the system they are | ||||
| building. By building self-reliance through your community you make yourself less dependent to their | ||||
| control and able to function outside of the slave state. Morality is what matters most. The *l*aw of  | ||||
| man does not trumph the *L*aws of forces such as Nature, God, or whichever of the peaceful moral  | ||||
| codes which exist.  | ||||
|  | ||||
| Humanity is in this together. This is an abundant planet which we need to protect. We can create  | ||||
| peace and prosperity if we choose to do so!  | ||||
|  | ||||
| Thank you for your time. Electronics can be very useful and productive if used correctly. Whether  | ||||
| you install this 100% free and open app or not, we wish you the best and love you very much. | ||||
| @@ -1,20 +1,23 @@ | ||||
| plugins { | ||||
|     id 'com.android.application' | ||||
|     id 'kotlin-android' | ||||
|     id 'org.jetbrains.kotlin.android' | ||||
| } | ||||
|  | ||||
| android { | ||||
|     compileSdkVersion 30 | ||||
|     buildToolsVersion "30.0.3" | ||||
|     namespace 'com.hyperling.breakthehabit' | ||||
|     compileSdk 33 | ||||
|  | ||||
|     defaultConfig { | ||||
|         applicationId "com.hyperling.breakthehabit" | ||||
|         minSdkVersion 16 | ||||
|         targetSdkVersion 30 | ||||
|         minSdk 21 | ||||
|         targetSdk 33 | ||||
|         versionCode 1 | ||||
|         versionName "1.0" | ||||
|  | ||||
|         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||
|         vectorDrawables { | ||||
|             useSupportLibrary true | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     buildTypes { | ||||
| @@ -30,18 +33,34 @@ android { | ||||
|     kotlinOptions { | ||||
|         jvmTarget = '1.8' | ||||
|     } | ||||
|     buildFeatures { | ||||
|         compose true | ||||
|     } | ||||
|     composeOptions { | ||||
|         kotlinCompilerExtensionVersion '1.3.2' | ||||
|     } | ||||
|     packagingOptions { | ||||
|         resources { | ||||
|             excludes += '/META-INF/{AL2.0,LGPL2.1}' | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
|  | ||||
|     implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" | ||||
|     implementation 'androidx.core:core-ktx:1.2.0' | ||||
|     implementation 'androidx.appcompat:appcompat:1.1.0' | ||||
|     implementation 'com.google.android.material:material:1.1.0' | ||||
|     implementation 'androidx.constraintlayout:constraintlayout:1.1.3' | ||||
|     implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2' | ||||
|     implementation 'androidx.navigation:navigation-ui-ktx:2.2.2' | ||||
|     testImplementation 'junit:junit:4.+' | ||||
|     androidTestImplementation 'androidx.test.ext:junit:1.1.1' | ||||
|     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' | ||||
|     implementation 'androidx.core:core-ktx:1.8.0' | ||||
|     implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1' | ||||
|     implementation 'androidx.activity:activity-compose:1.5.1' | ||||
|     implementation platform('androidx.compose:compose-bom:2022.10.00') | ||||
|     implementation 'androidx.compose.ui:ui' | ||||
|     implementation 'androidx.compose.ui:ui-graphics' | ||||
|     implementation 'androidx.compose.ui:ui-tooling-preview' | ||||
|     implementation 'androidx.compose.material3:material3' | ||||
|     testImplementation 'junit:junit:4.13.2' | ||||
|     androidTestImplementation 'androidx.test.ext:junit:1.1.3' | ||||
|     androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' | ||||
|     androidTestImplementation platform('androidx.compose:compose-bom:2022.10.00') | ||||
|     androidTestImplementation 'androidx.compose.ui:ui-test-junit4' | ||||
|     debugImplementation 'androidx.compose.ui:ui-tooling' | ||||
|     debugImplementation 'androidx.compose.ui:ui-test-manifest' | ||||
| } | ||||
| @@ -1,18 +1,22 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     package="com.hyperling.breakthehabit"> | ||||
|     xmlns:tools="http://schemas.android.com/tools"> | ||||
|  | ||||
|     <application | ||||
|         android:allowBackup="true" | ||||
|         android:dataExtractionRules="@xml/data_extraction_rules" | ||||
|         android:fullBackupContent="@xml/backup_rules" | ||||
|         android:icon="@mipmap/ic_launcher" | ||||
|         android:label="@string/app_name" | ||||
|         android:roundIcon="@mipmap/ic_launcher_round" | ||||
|         android:supportsRtl="true" | ||||
|         android:theme="@style/Theme.BreakTheHabit"> | ||||
|         android:theme="@style/Theme.BreakTheHabit" | ||||
|         tools:targetApi="31"> | ||||
|         <activity | ||||
|             android:name=".MainActivity" | ||||
|             android:exported="true" | ||||
|             android:label="@string/app_name" | ||||
|             android:theme="@style/Theme.BreakTheHabit.NoActionBar"> | ||||
|             android:theme="@style/Theme.BreakTheHabit"> | ||||
|             <intent-filter> | ||||
|                 <action android:name="android.intent.action.MAIN" /> | ||||
|  | ||||
|   | ||||
| @@ -1,31 +0,0 @@ | ||||
| package com.hyperling.breakthehabit | ||||
|  | ||||
| import android.os.Bundle | ||||
| import androidx.fragment.app.Fragment | ||||
| import android.view.LayoutInflater | ||||
| import android.view.View | ||||
| import android.view.ViewGroup | ||||
| import android.widget.Button | ||||
| import androidx.navigation.fragment.findNavController | ||||
|  | ||||
| /** | ||||
|  * A simple [Fragment] subclass as the default destination in the navigation. | ||||
|  */ | ||||
| class FirstFragment : Fragment() { | ||||
|  | ||||
|     override fun onCreateView( | ||||
|             inflater: LayoutInflater, container: ViewGroup?, | ||||
|             savedInstanceState: Bundle? | ||||
|     ): View? { | ||||
|         // Inflate the layout for this fragment | ||||
|         return inflater.inflate(R.layout.fragment_first, container, false) | ||||
|     } | ||||
|  | ||||
|     override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||||
|         super.onViewCreated(view, savedInstanceState) | ||||
|  | ||||
|         view.findViewById<Button>(R.id.button_first).setOnClickListener { | ||||
|             findNavController().navigate(R.id.action_FirstFragment_to_SecondFragment) | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -1,38 +1,43 @@ | ||||
| package com.hyperling.breakthehabit | ||||
|  | ||||
| import android.os.Bundle | ||||
| import com.google.android.material.floatingactionbutton.FloatingActionButton | ||||
| import com.google.android.material.snackbar.Snackbar | ||||
| import androidx.appcompat.app.AppCompatActivity | ||||
| import android.view.Menu | ||||
| import android.view.MenuItem | ||||
|  | ||||
| class MainActivity : AppCompatActivity() { | ||||
| import androidx.activity.ComponentActivity | ||||
| import androidx.activity.compose.setContent | ||||
| import androidx.compose.foundation.layout.fillMaxSize | ||||
| import androidx.compose.material3.MaterialTheme | ||||
| import androidx.compose.material3.Surface | ||||
| import androidx.compose.material3.Text | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.ui.Modifier | ||||
| import androidx.compose.ui.tooling.preview.Preview | ||||
| import com.hyperling.breakthehabit.ui.theme.BreakTheHabitTheme | ||||
|  | ||||
| class MainActivity : ComponentActivity() { | ||||
|     override fun onCreate(savedInstanceState: Bundle?) { | ||||
|         super.onCreate(savedInstanceState) | ||||
|         setContentView(R.layout.activity_main) | ||||
|         setSupportActionBar(findViewById(R.id.toolbar)) | ||||
|  | ||||
|         findViewById<FloatingActionButton>(R.id.fab).setOnClickListener { view -> | ||||
|             Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) | ||||
|                     .setAction("Action", null).show() | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     override fun onCreateOptionsMenu(menu: Menu): Boolean { | ||||
|         // Inflate the menu; this adds items to the action bar if it is present. | ||||
|         menuInflater.inflate(R.menu.menu_main, menu) | ||||
|         return true | ||||
|     } | ||||
|  | ||||
|     override fun onOptionsItemSelected(item: MenuItem): Boolean { | ||||
|         // Handle action bar item clicks here. The action bar will | ||||
|         // automatically handle clicks on the Home/Up button, so long | ||||
|         // as you specify a parent activity in AndroidManifest.xml. | ||||
|         return when (item.itemId) { | ||||
|             R.id.action_settings -> true | ||||
|             else -> super.onOptionsItemSelected(item) | ||||
|         setContent { | ||||
|             BreakTheHabitTheme { | ||||
|                 // A surface container using the 'background' color from the theme | ||||
|                 Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) { | ||||
|                     Greeting("Android") | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| @Composable | ||||
| fun Greeting(name: String, modifier: Modifier = Modifier) { | ||||
|     Text( | ||||
|             text = "Hello $name!", | ||||
|             modifier = modifier | ||||
|     ) | ||||
| } | ||||
|  | ||||
| @Preview(showBackground = true) | ||||
| @Composable | ||||
| fun GreetingPreview() { | ||||
|     BreakTheHabitTheme { | ||||
|         Greeting("Android") | ||||
|     } | ||||
| } | ||||
| @@ -1,31 +0,0 @@ | ||||
| package com.hyperling.breakthehabit | ||||
|  | ||||
| import android.os.Bundle | ||||
| import androidx.fragment.app.Fragment | ||||
| import android.view.LayoutInflater | ||||
| import android.view.View | ||||
| import android.view.ViewGroup | ||||
| import android.widget.Button | ||||
| import androidx.navigation.fragment.findNavController | ||||
|  | ||||
| /** | ||||
|  * A simple [Fragment] subclass as the second destination in the navigation. | ||||
|  */ | ||||
| class SecondFragment : Fragment() { | ||||
|  | ||||
|     override fun onCreateView( | ||||
|             inflater: LayoutInflater, container: ViewGroup?, | ||||
|             savedInstanceState: Bundle? | ||||
|     ): View? { | ||||
|         // Inflate the layout for this fragment | ||||
|         return inflater.inflate(R.layout.fragment_second, container, false) | ||||
|     } | ||||
|  | ||||
|     override fun onViewCreated(view: View, savedInstanceState: Bundle?) { | ||||
|         super.onViewCreated(view, savedInstanceState) | ||||
|  | ||||
|         view.findViewById<Button>(R.id.button_second).setOnClickListener { | ||||
|             findNavController().navigate(R.id.action_SecondFragment_to_FirstFragment) | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,11 @@ | ||||
| package com.hyperling.breakthehabit.ui.theme | ||||
|  | ||||
| import androidx.compose.ui.graphics.Color | ||||
|  | ||||
| val Purple80 = Color(0xFFD0BCFF) | ||||
| val PurpleGrey80 = Color(0xFFCCC2DC) | ||||
| val Pink80 = Color(0xFFEFB8C8) | ||||
|  | ||||
| val Purple40 = Color(0xFF6650a4) | ||||
| val PurpleGrey40 = Color(0xFF625b71) | ||||
| val Pink40 = Color(0xFF7D5260) | ||||
| @@ -0,0 +1,70 @@ | ||||
| package com.hyperling.breakthehabit.ui.theme | ||||
|  | ||||
| import android.app.Activity | ||||
| import android.os.Build | ||||
| import androidx.compose.foundation.isSystemInDarkTheme | ||||
| import androidx.compose.material3.MaterialTheme | ||||
| import androidx.compose.material3.darkColorScheme | ||||
| import androidx.compose.material3.dynamicDarkColorScheme | ||||
| import androidx.compose.material3.dynamicLightColorScheme | ||||
| import androidx.compose.material3.lightColorScheme | ||||
| import androidx.compose.runtime.Composable | ||||
| import androidx.compose.runtime.SideEffect | ||||
| import androidx.compose.ui.graphics.toArgb | ||||
| import androidx.compose.ui.platform.LocalContext | ||||
| import androidx.compose.ui.platform.LocalView | ||||
| import androidx.core.view.WindowCompat | ||||
|  | ||||
| private val DarkColorScheme = darkColorScheme( | ||||
|         primary = Purple80, | ||||
|         secondary = PurpleGrey80, | ||||
|         tertiary = Pink80 | ||||
| ) | ||||
|  | ||||
| private val LightColorScheme = lightColorScheme( | ||||
|         primary = Purple40, | ||||
|         secondary = PurpleGrey40, | ||||
|         tertiary = Pink40 | ||||
|  | ||||
|         /* Other default colors to override | ||||
|     background = Color(0xFFFFFBFE), | ||||
|     surface = Color(0xFFFFFBFE), | ||||
|     onPrimary = Color.White, | ||||
|     onSecondary = Color.White, | ||||
|     onTertiary = Color.White, | ||||
|     onBackground = Color(0xFF1C1B1F), | ||||
|     onSurface = Color(0xFF1C1B1F), | ||||
|     */ | ||||
| ) | ||||
|  | ||||
| @Composable | ||||
| fun BreakTheHabitTheme( | ||||
|         darkTheme: Boolean = isSystemInDarkTheme(), | ||||
|         // Dynamic color is available on Android 12+ | ||||
|         dynamicColor: Boolean = true, | ||||
|         content: @Composable () -> Unit | ||||
| ) { | ||||
|     val colorScheme = when { | ||||
|         dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { | ||||
|             val context = LocalContext.current | ||||
|             if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) | ||||
|         } | ||||
|  | ||||
|         darkTheme -> DarkColorScheme | ||||
|         else -> LightColorScheme | ||||
|     } | ||||
|     val view = LocalView.current | ||||
|     if (!view.isInEditMode) { | ||||
|         SideEffect { | ||||
|             val window = (view.context as Activity).window | ||||
|             window.statusBarColor = colorScheme.primary.toArgb() | ||||
|             WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     MaterialTheme( | ||||
|             colorScheme = colorScheme, | ||||
|             typography = Typography, | ||||
|             content = content | ||||
|     ) | ||||
| } | ||||
| @@ -0,0 +1,34 @@ | ||||
| package com.hyperling.breakthehabit.ui.theme | ||||
|  | ||||
| import androidx.compose.material3.Typography | ||||
| import androidx.compose.ui.text.TextStyle | ||||
| import androidx.compose.ui.text.font.FontFamily | ||||
| import androidx.compose.ui.text.font.FontWeight | ||||
| import androidx.compose.ui.unit.sp | ||||
|  | ||||
| // Set of Material typography styles to start with | ||||
| val Typography = Typography( | ||||
|         bodyLarge = TextStyle( | ||||
|                 fontFamily = FontFamily.Default, | ||||
|                 fontWeight = FontWeight.Normal, | ||||
|                 fontSize = 16.sp, | ||||
|                 lineHeight = 24.sp, | ||||
|                 letterSpacing = 0.5.sp | ||||
|         ) | ||||
|         /* Other default text styles to override | ||||
|     titleLarge = TextStyle( | ||||
|         fontFamily = FontFamily.Default, | ||||
|         fontWeight = FontWeight.Normal, | ||||
|         fontSize = 22.sp, | ||||
|         lineHeight = 28.sp, | ||||
|         letterSpacing = 0.sp | ||||
|     ), | ||||
|     labelSmall = TextStyle( | ||||
|         fontFamily = FontFamily.Default, | ||||
|         fontWeight = FontWeight.Medium, | ||||
|         fontSize = 11.sp, | ||||
|         lineHeight = 16.sp, | ||||
|         letterSpacing = 0.5.sp | ||||
|     ) | ||||
|     */ | ||||
| ) | ||||
| @@ -1,33 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     xmlns:tools="http://schemas.android.com/tools" | ||||
|     android:layout_width="match_parent" | ||||
|     android:layout_height="match_parent" | ||||
|     tools:context=".MainActivity"> | ||||
|  | ||||
|     <com.google.android.material.appbar.AppBarLayout | ||||
|         android:layout_width="match_parent" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:theme="@style/Theme.BreakTheHabit.AppBarOverlay"> | ||||
|  | ||||
|         <androidx.appcompat.widget.Toolbar | ||||
|             android:id="@+id/toolbar" | ||||
|             android:layout_width="match_parent" | ||||
|             android:layout_height="?attr/actionBarSize" | ||||
|             android:background="?attr/colorPrimary" | ||||
|             app:popupTheme="@style/Theme.BreakTheHabit.PopupOverlay" /> | ||||
|  | ||||
|     </com.google.android.material.appbar.AppBarLayout> | ||||
|  | ||||
|     <include layout="@layout/content_main" /> | ||||
|  | ||||
|     <com.google.android.material.floatingactionbutton.FloatingActionButton | ||||
|         android:id="@+id/fab" | ||||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:layout_gravity="bottom|end" | ||||
|         android:layout_margin="@dimen/fab_margin" | ||||
|         app:srcCompat="@android:drawable/ic_dialog_email" /> | ||||
|  | ||||
| </androidx.coordinatorlayout.widget.CoordinatorLayout> | ||||
| @@ -1,19 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     android:layout_width="match_parent" | ||||
|     android:layout_height="match_parent" | ||||
|     app:layout_behavior="@string/appbar_scrolling_view_behavior"> | ||||
|  | ||||
|     <fragment | ||||
|         android:id="@+id/nav_host_fragment" | ||||
|         android:name="androidx.navigation.fragment.NavHostFragment" | ||||
|         android:layout_width="0dp" | ||||
|         android:layout_height="0dp" | ||||
|         app:defaultNavHost="true" | ||||
|         app:layout_constraintBottom_toBottomOf="parent" | ||||
|         app:layout_constraintLeft_toLeftOf="parent" | ||||
|         app:layout_constraintRight_toRightOf="parent" | ||||
|         app:layout_constraintTop_toTopOf="parent" | ||||
|         app:navGraph="@navigation/nav_graph" /> | ||||
| </androidx.constraintlayout.widget.ConstraintLayout> | ||||
| @@ -1,28 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     xmlns:tools="http://schemas.android.com/tools" | ||||
|     android:layout_width="match_parent" | ||||
|     android:layout_height="match_parent" | ||||
|     tools:context=".FirstFragment"> | ||||
|  | ||||
|     <TextView | ||||
|         android:id="@+id/textview_first" | ||||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:text="@string/hello_first_fragment" | ||||
|         app:layout_constraintBottom_toTopOf="@id/button_first" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toStartOf="parent" | ||||
|         app:layout_constraintTop_toTopOf="parent" /> | ||||
|  | ||||
|     <Button | ||||
|         android:id="@+id/button_first" | ||||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:text="@string/next" | ||||
|         app:layout_constraintBottom_toBottomOf="parent" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toStartOf="parent" | ||||
|         app:layout_constraintTop_toBottomOf="@id/textview_first" /> | ||||
| </androidx.constraintlayout.widget.ConstraintLayout> | ||||
| @@ -1,27 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     xmlns:tools="http://schemas.android.com/tools" | ||||
|     android:layout_width="match_parent" | ||||
|     android:layout_height="match_parent" | ||||
|     tools:context=".SecondFragment"> | ||||
|  | ||||
|     <TextView | ||||
|         android:id="@+id/textview_second" | ||||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         app:layout_constraintBottom_toTopOf="@id/button_second" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toStartOf="parent" | ||||
|         app:layout_constraintTop_toTopOf="parent" /> | ||||
|  | ||||
|     <Button | ||||
|         android:id="@+id/button_second" | ||||
|         android:layout_width="wrap_content" | ||||
|         android:layout_height="wrap_content" | ||||
|         android:text="@string/previous" | ||||
|         app:layout_constraintBottom_toBottomOf="parent" | ||||
|         app:layout_constraintEnd_toEndOf="parent" | ||||
|         app:layout_constraintStart_toStartOf="parent" | ||||
|         app:layout_constraintTop_toBottomOf="@id/textview_second" /> | ||||
| </androidx.constraintlayout.widget.ConstraintLayout> | ||||
| @@ -1,10 +0,0 @@ | ||||
| <menu xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     xmlns:tools="http://schemas.android.com/tools" | ||||
|     tools:context="com.hyperling.breakthehabit.MainActivity"> | ||||
|     <item | ||||
|         android:id="@+id/action_settings" | ||||
|         android:orderInCategory="100" | ||||
|         android:title="@string/action_settings" | ||||
|         app:showAsAction="never" /> | ||||
| </menu> | ||||
| @@ -2,4 +2,5 @@ | ||||
| <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | ||||
|     <background android:drawable="@drawable/ic_launcher_background" /> | ||||
|     <foreground android:drawable="@drawable/ic_launcher_foreground" /> | ||||
|     <monochrome android:drawable="@drawable/ic_launcher_foreground" /> | ||||
| </adaptive-icon> | ||||
| @@ -2,4 +2,5 @@ | ||||
| <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> | ||||
|     <background android:drawable="@drawable/ic_launcher_background" /> | ||||
|     <foreground android:drawable="@drawable/ic_launcher_foreground" /> | ||||
|     <monochrome android:drawable="@drawable/ic_launcher_foreground" /> | ||||
| </adaptive-icon> | ||||
| Before Width: | Height: | Size: 3.5 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-hdpi/ic_launcher.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 5.2 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.8 KiB | 
| Before Width: | Height: | Size: 2.6 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-mdpi/ic_launcher.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 982 B | 
| Before Width: | Height: | Size: 3.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 4.8 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-xhdpi/ic_launcher.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.9 KiB | 
| Before Width: | Height: | Size: 7.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 3.8 KiB | 
| Before Width: | Height: | Size: 7.7 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.8 KiB | 
| Before Width: | Height: | Size: 12 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 5.8 KiB | 
| Before Width: | Height: | Size: 10 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 3.8 KiB | 
| Before Width: | Height: | Size: 16 KiB | 
							
								
								
									
										
											BIN
										
									
								
								app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 7.6 KiB | 
| @@ -1,28 +0,0 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <navigation xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
|     xmlns:tools="http://schemas.android.com/tools" | ||||
|     android:id="@+id/nav_graph" | ||||
|     app:startDestination="@id/FirstFragment"> | ||||
|  | ||||
|     <fragment | ||||
|         android:id="@+id/FirstFragment" | ||||
|         android:name="com.hyperling.breakthehabit.FirstFragment" | ||||
|         android:label="@string/first_fragment_label" | ||||
|         tools:layout="@layout/fragment_first"> | ||||
|  | ||||
|         <action | ||||
|             android:id="@+id/action_FirstFragment_to_SecondFragment" | ||||
|             app:destination="@id/SecondFragment" /> | ||||
|     </fragment> | ||||
|     <fragment | ||||
|         android:id="@+id/SecondFragment" | ||||
|         android:name="com.hyperling.breakthehabit.SecondFragment" | ||||
|         android:label="@string/second_fragment_label" | ||||
|         tools:layout="@layout/fragment_second"> | ||||
|  | ||||
|         <action | ||||
|             android:id="@+id/action_SecondFragment_to_FirstFragment" | ||||
|             app:destination="@id/FirstFragment" /> | ||||
|     </fragment> | ||||
| </navigation> | ||||
| @@ -1,16 +0,0 @@ | ||||
| <resources xmlns:tools="http://schemas.android.com/tools"> | ||||
|     <!-- Base application theme. --> | ||||
|     <style name="Theme.BreakTheHabit" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> | ||||
|         <!-- Primary brand color. --> | ||||
|         <item name="colorPrimary">@color/purple_200</item> | ||||
|         <item name="colorPrimaryVariant">@color/purple_700</item> | ||||
|         <item name="colorOnPrimary">@color/black</item> | ||||
|         <!-- Secondary brand color. --> | ||||
|         <item name="colorSecondary">@color/teal_200</item> | ||||
|         <item name="colorSecondaryVariant">@color/teal_200</item> | ||||
|         <item name="colorOnSecondary">@color/black</item> | ||||
|         <!-- Status bar color. --> | ||||
|         <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item> | ||||
|         <!-- Customize your theme here. --> | ||||
|     </style> | ||||
| </resources> | ||||
| @@ -1,3 +0,0 @@ | ||||
| <resources> | ||||
|     <dimen name="fab_margin">16dp</dimen> | ||||
| </resources> | ||||
| @@ -1,12 +1,3 @@ | ||||
| <resources> | ||||
|     <string name="app_name">Break The Habit</string> | ||||
|     <string name="action_settings">Settings</string> | ||||
|     <!-- Strings used for fragments for navigation --> | ||||
|     <string name="first_fragment_label">First Fragment</string> | ||||
|     <string name="second_fragment_label">Second Fragment</string> | ||||
|     <string name="next">Next</string> | ||||
|     <string name="previous">Previous</string> | ||||
|  | ||||
|     <string name="hello_first_fragment">Hello first fragment</string> | ||||
|     <string name="hello_second_fragment">Hello second fragment. Arg: %1$s</string> | ||||
| </resources> | ||||
| @@ -1,25 +1,5 @@ | ||||
| <resources xmlns:tools="http://schemas.android.com/tools"> | ||||
|     <!-- Base application theme. --> | ||||
|     <style name="Theme.BreakTheHabit" parent="Theme.MaterialComponents.DayNight.DarkActionBar"> | ||||
|         <!-- Primary brand color. --> | ||||
|         <item name="colorPrimary">@color/purple_500</item> | ||||
|         <item name="colorPrimaryVariant">@color/purple_700</item> | ||||
|         <item name="colorOnPrimary">@color/white</item> | ||||
|         <!-- Secondary brand color. --> | ||||
|         <item name="colorSecondary">@color/teal_200</item> | ||||
|         <item name="colorSecondaryVariant">@color/teal_700</item> | ||||
|         <item name="colorOnSecondary">@color/black</item> | ||||
|         <!-- Status bar color. --> | ||||
|         <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item> | ||||
|         <!-- Customize your theme here. --> | ||||
|     </style> | ||||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <resources> | ||||
|  | ||||
|     <style name="Theme.BreakTheHabit.NoActionBar"> | ||||
|         <item name="windowActionBar">false</item> | ||||
|         <item name="windowNoTitle">true</item> | ||||
|     </style> | ||||
|  | ||||
|     <style name="Theme.BreakTheHabit.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> | ||||
|  | ||||
|     <style name="Theme.BreakTheHabit.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" /> | ||||
|     <style name="Theme.BreakTheHabit" parent="android:Theme.Material.Light.NoActionBar" /> | ||||
| </resources> | ||||
							
								
								
									
										13
									
								
								app/src/main/res/xml/backup_rules.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,13 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?><!-- | ||||
|    Sample backup rules file; uncomment and customize as necessary. | ||||
|    See https://developer.android.com/guide/topics/data/autobackup | ||||
|    for details. | ||||
|    Note: This file is ignored for devices older that API 31 | ||||
|    See https://developer.android.com/about/versions/12/backup-restore | ||||
| --> | ||||
| <full-backup-content> | ||||
|     <!-- | ||||
|    <include domain="sharedpref" path="."/> | ||||
|    <exclude domain="sharedpref" path="device.xml"/> | ||||
| --> | ||||
| </full-backup-content> | ||||
							
								
								
									
										19
									
								
								app/src/main/res/xml/data_extraction_rules.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,19 @@ | ||||
| <?xml version="1.0" encoding="utf-8"?><!-- | ||||
|    Sample data extraction rules file; uncomment and customize as necessary. | ||||
|    See https://developer.android.com/about/versions/12/backup-restore#xml-changes | ||||
|    for details. | ||||
| --> | ||||
| <data-extraction-rules> | ||||
|     <cloud-backup> | ||||
|         <!-- TODO: Use <include> and <exclude> to control what is backed up. | ||||
|         <include .../> | ||||
|         <exclude .../> | ||||
|         --> | ||||
|     </cloud-backup> | ||||
|     <!-- | ||||
|     <device-transfer> | ||||
|         <include .../> | ||||
|         <exclude .../> | ||||
|     </device-transfer> | ||||
|     --> | ||||
| </data-extraction-rules> | ||||
							
								
								
									
										28
									
								
								build.gradle
									
									
									
									
									
								
							
							
						
						| @@ -1,26 +1,6 @@ | ||||
| // Top-level build file where you can add configuration options common to all sub-projects/modules. | ||||
| buildscript { | ||||
|     ext.kotlin_version = "1.3.72" | ||||
|     repositories { | ||||
|         google() | ||||
|         jcenter() | ||||
|     } | ||||
|     dependencies { | ||||
|         classpath "com.android.tools.build:gradle:4.1.1" | ||||
|         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" | ||||
|  | ||||
|         // 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 | ||||
| plugins { | ||||
|     id 'com.android.application' version '8.0.1' apply false | ||||
|     id 'com.android.library' version '8.0.1' apply false | ||||
|     id 'org.jetbrains.kotlin.android' version '1.7.20' apply false | ||||
| } | ||||
| @@ -12,10 +12,12 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 | ||||
| # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects | ||||
| # org.gradle.parallel=true | ||||
| # AndroidX package structure to make it clearer which packages are bundled with the | ||||
| # Android operating system, and which are packaged with your app"s APK | ||||
| # Android operating system, and which are packaged with your app's APK | ||||
| # https://developer.android.com/topic/libraries/support-library/androidx-rn | ||||
| android.useAndroidX=true | ||||
| # Automatically convert third-party libraries to use AndroidX | ||||
| android.enableJetifier=true | ||||
| # Kotlin code style for this project: "official" or "obsolete": | ||||
| kotlin.code.style=official | ||||
| # Enables namespacing of each library's R class so that its R class includes only the | ||||
| # resources declared in the library itself and none from the library's dependencies, | ||||
| # thereby reducing the size of the R class for that library | ||||
| android.nonTransitiveRClass=true | ||||
							
								
								
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
								
							
							
						
						
							
								
								
									
										4
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,6 +1,6 @@ | ||||
| #Tue Jan 26 08:06:08 CST 2021 | ||||
| #Fri May 26 19:11:38 MST 2023 | ||||
| distributionBase=GRADLE_USER_HOME | ||||
| distributionPath=wrapper/dists | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip | ||||
| zipStoreBase=GRADLE_USER_HOME | ||||
| zipStorePath=wrapper/dists | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip | ||||
|   | ||||
							
								
								
									
										53
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,5 +1,21 @@ | ||||
| #!/usr/bin/env sh | ||||
|  | ||||
| # | ||||
| # Copyright 2015 the original author or authors. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #      https://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
|  | ||||
| ############################################################################## | ||||
| ## | ||||
| ##  Gradle start up script for UN*X | ||||
| @@ -28,7 +44,7 @@ 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="" | ||||
| DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' | ||||
|  | ||||
| # Use the maximum available, or set MAX_FD != -1 to use that value. | ||||
| MAX_FD="maximum" | ||||
| @@ -66,6 +82,7 @@ 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 | ||||
| @@ -109,10 +126,11 @@ 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 | ||||
| # For Cygwin or MSYS, switch paths to Windows format before running java | ||||
| if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then | ||||
|     APP_HOME=`cygpath --path --mixed "$APP_HOME"` | ||||
|     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` | ||||
|  | ||||
|     JAVACMD=`cygpath --unix "$JAVACMD"` | ||||
|  | ||||
|     # We build the pattern for arguments to be converted via cygpath | ||||
| @@ -138,19 +156,19 @@ if $cygwin ; then | ||||
|         else | ||||
|             eval `echo args$i`="\"$arg\"" | ||||
|         fi | ||||
|         i=$((i+1)) | ||||
|         i=`expr $i + 1` | ||||
|     done | ||||
|     case $i in | ||||
|         (0) set -- ;; | ||||
|         (1) set -- "$args0" ;; | ||||
|         (2) set -- "$args0" "$args1" ;; | ||||
|         (3) set -- "$args0" "$args1" "$args2" ;; | ||||
|         (4) set -- "$args0" "$args1" "$args2" "$args3" ;; | ||||
|         (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; | ||||
|         (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; | ||||
|         (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; | ||||
|         (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; | ||||
|         (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; | ||||
|         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 | ||||
|  | ||||
| @@ -159,14 +177,9 @@ save () { | ||||
|     for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done | ||||
|     echo " " | ||||
| } | ||||
| APP_ARGS=$(save "$@") | ||||
| 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" "$@" | ||||
|   | ||||
							
								
								
									
										43
									
								
								gradlew.bat
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,3 +1,19 @@ | ||||
| @rem | ||||
| @rem Copyright 2015 the original author or authors. | ||||
| @rem | ||||
| @rem Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| @rem you may not use this file except in compliance with the License. | ||||
| @rem You may obtain a copy of the License at | ||||
| @rem | ||||
| @rem      https://www.apache.org/licenses/LICENSE-2.0 | ||||
| @rem | ||||
| @rem Unless required by applicable law or agreed to in writing, software | ||||
| @rem distributed under the License is distributed on an "AS IS" BASIS, | ||||
| @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| @rem See the License for the specific language governing permissions and | ||||
| @rem limitations under the License. | ||||
| @rem | ||||
|  | ||||
| @if "%DEBUG%" == "" @echo off | ||||
| @rem ########################################################################## | ||||
| @rem | ||||
| @@ -13,15 +29,18 @@ if "%DIRNAME%" == "" set DIRNAME=. | ||||
| set APP_BASE_NAME=%~n0 | ||||
| set APP_HOME=%DIRNAME% | ||||
|  | ||||
| @rem Resolve any "." and ".." in APP_HOME to make it shorter. | ||||
| for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi | ||||
|  | ||||
| @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | ||||
| set DEFAULT_JVM_OPTS= | ||||
| set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" | ||||
|  | ||||
| @rem Find java.exe | ||||
| if defined JAVA_HOME goto findJavaFromJavaHome | ||||
|  | ||||
| set JAVA_EXE=java.exe | ||||
| %JAVA_EXE% -version >NUL 2>&1 | ||||
| if "%ERRORLEVEL%" == "0" goto init | ||||
| if "%ERRORLEVEL%" == "0" goto execute | ||||
|  | ||||
| echo. | ||||
| echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | ||||
| @@ -35,7 +54,7 @@ goto fail | ||||
| set JAVA_HOME=%JAVA_HOME:"=% | ||||
| set JAVA_EXE=%JAVA_HOME%/bin/java.exe | ||||
|  | ||||
| if exist "%JAVA_EXE%" goto init | ||||
| if exist "%JAVA_EXE%" goto execute | ||||
|  | ||||
| echo. | ||||
| echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% | ||||
| @@ -45,28 +64,14 @@ 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% | ||||
| "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* | ||||
|  | ||||
| :end | ||||
| @rem End local scope for the variables with windows NT shell | ||||
|   | ||||
| @@ -1,2 +1,16 @@ | ||||
| include ':app' | ||||
| pluginManagement { | ||||
|     repositories { | ||||
|         google() | ||||
|         mavenCentral() | ||||
|         gradlePluginPortal() | ||||
|     } | ||||
| } | ||||
| dependencyResolutionManagement { | ||||
|     repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) | ||||
|     repositories { | ||||
|         google() | ||||
|         mavenCentral() | ||||
|     } | ||||
| } | ||||
| rootProject.name = "Break The Habit" | ||||
| include ':app' | ||||
|   | ||||