android more like screw you droid
This commit is contained in:
1 parent
a47adddd59
commit
674417d57f
799 files changed
+15820
-52
No files matched your search
Generated
+9
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Generated
+1
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
|
||||
Generated
-1
@@ -1,4 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
</project>
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/Assignments.iml" filepath="$PROJECT_DIR$/.idea/Assignments.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
Generated
+267
-26
@@ -9,7 +9,267 @@
|
||||
<option name="autoReloadType" value="NONE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="863b8c4f-3017-49d6-b288-f71cd63dd185" name="Changes" comment="" />
|
||||
<list default="true" id="863b8c4f-3017-49d6-b288-f71cd63dd185" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/res/drawable-xxxhdpi/ic_solved.png" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/FragmentToFragmentMap-014fa169-2ea2-4df4-8be1-b82f01592f1c.zip" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Mp2/.idea/.gitignore" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Mp2/.idea/discord.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Mp2/.idea/gradle.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Mp2/.idea/migrations.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Mp2/.idea/misc.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/Mp2/.idea/vcs.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/.gitignore" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/.gitignore" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/build.gradle" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/proguard-rules.pro" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/AndroidManifest.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/A.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/F1.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/drawable/ic_launcher_background.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/layout/a.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/layout/holder.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/layout/recycler_view.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-hdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-mdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-xhdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/values-night/themes.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/values/colors.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/values/strings.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/values/themes.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/xml/backup_rules.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/main/res/xml/data_extraction_rules.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/build.gradle" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/gradle.properties" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/gradle/wrapper/gradle-wrapper.jar" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/gradle/wrapper/gradle-wrapper.properties" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/gradlew" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/gradlew.bat" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/recycler_click/settings.gradle" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/.idea/discord.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/.idea/gradle.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/.idea/migrations.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/.idea/misc.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/.idea/vcs.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/.idea/workspace.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/compiler.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem1_CalebFontenot/.idea/deploymentTargetDropDown.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Activity2.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/java/com/calebfontenot/problem1_calebfontenot/Data.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem1_CalebFontenot/app/src/main/res/layout/activity_2.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.gitignore" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/.gitignore" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/appInsightsSettings.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/compiler.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/deploymentTargetDropDown.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/gradle.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/migrations.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/misc.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/.idea/vcs.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/.gitignore" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/build.gradle.kts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/proguard-rules.pro" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/androidTest/java/com/calebfontenot/problem2_calebfontenot/ExampleInstrumentedTest.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/AndroidManifest.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/java/com/calebfontenot/problem2_calebfontenot/DataSingleton.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/drawable/ic_launcher_foreground.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values-night/themes.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/colors.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/strings.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/values/themes.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/xml/backup_rules.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/app/src/test/java/com/calebfontenot/problem2_calebfontenot/ExampleUnitTest.java" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/build.gradle.kts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle.properties" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/libs.versions.toml" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.jar" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradle/wrapper/gradle-wrapper.properties" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradlew" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/gradlew.bat" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../Quizzes/ProgrammingExam1/Problem2_CalebFontenot/settings.gradle.kts" afterDir="false" />
|
||||
<change afterPath="$PROJECT_DIR$/../ZIPs/ExamProblem2_CalebFontenot.zip" 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$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/.idea/gradle.xml" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/.idea/gradle.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/.idea/misc.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/AndroidManifest.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeActivity.java" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeActivity.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeFragment.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeListFragment.java" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/java/com/example/criminalintentchapter8/CrimeListFragment.java" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/res/layout/fragment_crime.xml" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/res/layout/fragment_crime.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/res/layout/fragment_crime_list.xml" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/res/layout/fragment_crime_list.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/res/layout/list_item_crime.xml" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/app/src/main/res/layout/list_item_crime.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/build.gradle.kts" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/build.gradle.kts" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/CriminalIntentChapter8/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" afterPath="$PROJECT_DIR$/CriminalIntentChapter8/gradle/wrapper/gradle-wrapper.properties" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/build.gradle.kts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/proguard-rules.pro" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/AndroidManifest.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/A.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/FragmentToFragmentMap.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/drawable/ic_launcher_background.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/a.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_fragment_to_fragment_map.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/activity_generic_that_creates_fragment.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/layout/f1.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values-night/themes.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/colors.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/strings.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/values/themes.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/backup_rules.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/main/res/xml/data_extraction_rules.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/build.gradle.kts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/gradle.properties" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/gradle/libs.versions.toml.old" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/gradlew" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/gradlew.bat" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot/settings.gradle.kts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/.idea/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/.idea/codeStyles" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/.idea/discord.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/build.gradle.kts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/proguard-rules.pro" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/androidTest/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleInstrumentedTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/AndroidManifest.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/A.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/F1.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/FragmentToFragmentMap.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/GenericActivityThatCreatesFragments.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_background.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/drawable/ic_launcher_foreground.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/a.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_fragment_to_fragment_map.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_generic_that_creates_fragment.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/activity_main.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/layout/f1.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values-night/themes.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/colors.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/strings.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/values/themes.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/backup_rules.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/main/res/xml/data_extraction_rules.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/app/src/test/java/com/calebfontenot/fragmenttofragmentmap_calebfontenot2/ExampleUnitTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/build.gradle.kts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/gradle.properties" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/gradlew" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/gradlew.bat" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/FragmentToFragmentMap_CalebFontenot2/settings.gradle.kts" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/.name" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/compiler.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/deploymentTargetDropDown.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/discord.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/gradle.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/migrations.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/misc.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/.idea/vcs.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/.gitignore" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/build.gradle" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/proguard-rules.pro" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/androidTest/java/com/example/fragmenttofragmentmap/ExampleInstrumentedTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/AndroidManifest.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/A.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/B.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F1.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/F2.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/java/com/example/fragmenttofragmentmap/GenericActivityThatCreatesFragments.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/drawable-v24/ic_launcher_foreground.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/drawable/ic_launcher_background.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/layout/a.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/layout/activity_start.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/layout/f1.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/layout/f2.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/values-night/themes.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/values/colors.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/values/strings.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/values/themes.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/xml/backup_rules.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/main/res/xml/data_extraction_rules.xml" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/app/src/test/java/com/example/fragmenttofragmentmap/ExampleUnitTest.java" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/build.gradle" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/gradle.properties" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.jar" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/gradlew" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/gradlew.bat" beforeDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/fragmentToFragmnetMap/settings.gradle" beforeDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
@@ -32,30 +292,7 @@
|
||||
</task>
|
||||
<projects_view>
|
||||
<tree_state>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
||||
<item name="QuizChapter2" type="f1a62948:ProjectNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
||||
<item name="QuizChapter2" type="f1a62948:ProjectNode" />
|
||||
<item name="app" type="2d1252cf:ModuleNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
||||
<item name="QuizChapter2" type="f1a62948:ProjectNode" />
|
||||
<item name="app" type="2d1252cf:ModuleNode" />
|
||||
<item name="Tasks" type="e4a08cd1:TasksNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
||||
<item name="QuizChapter2" type="f1a62948:ProjectNode" />
|
||||
<item name="app" type="2d1252cf:ModuleNode" />
|
||||
<item name="Tasks" type="e4a08cd1:TasksNode" />
|
||||
<item name="other" type="c8890929:TasksNode$1" />
|
||||
</path>
|
||||
</expand>
|
||||
<expand />
|
||||
<select />
|
||||
</tree_state>
|
||||
</projects_view>
|
||||
@@ -78,6 +315,9 @@
|
||||
<component name="ProblemsViewState">
|
||||
<option name="selectedTabId" value="CurrentFile" />
|
||||
</component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"associatedIndex": 6
|
||||
}</component>
|
||||
<component name="ProjectId" id="2bBOA17dd0RpZe2wcjLcBAvlih7" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
@@ -96,7 +336,8 @@
|
||||
"cf.first.check.clang-format": "false",
|
||||
"cidr.known.project.marker": "true",
|
||||
"com.google.services.firebase.aqiPopupShown": "true",
|
||||
"last_opened_file_path": "/home/caleb/ASDV-Android/Assignments",
|
||||
"git-widget-placeholder": "master",
|
||||
"last_opened_file_path": "/home/caleb/ASDV-Android/Assignments/CriminalIntent10",
|
||||
"settings.editor.selected.configurable": "editor.preferences.appearance"
|
||||
}
|
||||
}]]></component>
|
||||
|
||||
Binary file not shown.
File renamed without changes.
File renamed without changes.
Generated
+1
@@ -0,0 +1 @@
|
||||
CriminalIntent3
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AppInsightsSettings">
|
||||
<option name="tabSettings">
|
||||
<map>
|
||||
<entry key="Firebase Crashlytics">
|
||||
<value>
|
||||
<InsightsFilterSettings>
|
||||
<option name="connection">
|
||||
<ConnectionSetting>
|
||||
<option name="appId" value="PLACEHOLDER" />
|
||||
<option name="mobileSdkAppId" value="" />
|
||||
<option name="projectId" value="" />
|
||||
<option name="projectNumber" value="" />
|
||||
</ConnectionSetting>
|
||||
</option>
|
||||
<option name="signal" value="SIGNAL_UNSPECIFIED" />
|
||||
<option name="timeIntervalDays" value="THIRTY_DAYS" />
|
||||
<option name="visibilityType" value="ALL" />
|
||||
</InsightsFilterSettings>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
File renamed without changes.
File renamed without changes.
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveExternalAnnotations" value="false" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
File renamed without changes.
+9
@@ -0,0 +1,9 @@
|
||||
<project version="4">
|
||||
<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">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
File renamed without changes.
Binary file not shown.
File renamed without changes.
@@ -0,0 +1,40 @@
|
||||
plugins {
|
||||
alias(libs.plugins.androidApplication)
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "asdv.lisset.criminalintent"
|
||||
compileSdk = 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "asdv.lisset.criminalintent3"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 1
|
||||
versionName = "1.0"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation(libs.appcompat)
|
||||
implementation(libs.material)
|
||||
implementation(libs.activity)
|
||||
implementation(libs.constraintlayout)
|
||||
testImplementation(libs.junit)
|
||||
androidTestImplementation(libs.ext.junit)
|
||||
androidTestImplementation(libs.espresso.core)
|
||||
}
|
||||
File renamed without changes.
+26
@@ -0,0 +1,26 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class ExampleInstrumentedTest {
|
||||
@Test
|
||||
public void useAppContext() {
|
||||
// Context of the app under test.
|
||||
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||
assertEquals("asdv.lisset.criminalintent", appContext.getPackageName());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
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.CriminalIntent"
|
||||
tools:targetApi="31">
|
||||
|
||||
<activity android:name=".CrimeListActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".CrimePagerActivity">
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,43 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public class Crime {
|
||||
private UUID id;
|
||||
private String title;
|
||||
private Date date;
|
||||
private boolean solved;
|
||||
public Crime() {
|
||||
this.id = UUID.randomUUID();
|
||||
this.date = new Date();
|
||||
}
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public boolean isSolved() {
|
||||
return solved;
|
||||
}
|
||||
|
||||
public void setSolved(boolean solved) {
|
||||
this.solved = solved;
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.EditText;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CrimeFragment extends Fragment {
|
||||
private Crime crime;
|
||||
private EditText titleField;
|
||||
private Button dateButton;
|
||||
private CheckBox solvedCheckBox;
|
||||
private static final String ARG_CRIME_ID =
|
||||
"crime_id";
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
// crime = new Crime();
|
||||
// UUID crimeId = (UUID)
|
||||
// getActivity().getIntent()
|
||||
// .getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);
|
||||
// crime = CrimeLab.get(getActivity()).getCrime(crimeId);
|
||||
UUID crimeId = (UUID)
|
||||
getArguments().getSerializable(ARG_CRIME_ID);
|
||||
crime =
|
||||
CrimeLab.get(getActivity()).getCrime(crimeId);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View v = inflater.inflate(R.layout.fragment_crime, container, false);
|
||||
|
||||
//variables
|
||||
this.dateButton = v.findViewById(R.id.button_crime_date);
|
||||
this.solvedCheckBox = v.findViewById(R.id.checkBox_crime_solved);
|
||||
this.titleField= v.findViewById(R.id.edit_text_crime_title);
|
||||
//date button
|
||||
SimpleDateFormat dt = new SimpleDateFormat("EEEE, MMMM d, yyyy");
|
||||
String s = dt.format(this.crime.getDate());
|
||||
this.dateButton.setText(s);
|
||||
this.dateButton.setEnabled(false);
|
||||
|
||||
this.titleField.setText(crime.getTitle());
|
||||
this.solvedCheckBox.setChecked(crime.isSolved());
|
||||
//checkbox
|
||||
this.solvedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
CrimeFragment.this.crime.setSolved(isChecked);
|
||||
}
|
||||
});
|
||||
titleField.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
//left blank
|
||||
}
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
crime.setTitle(s.toString());
|
||||
}
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
//blank on purpose
|
||||
}
|
||||
|
||||
});
|
||||
return v;
|
||||
}
|
||||
|
||||
public static CrimeFragment newInstance(UUID crimeId){
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable(ARG_CRIME_ID, crimeId);
|
||||
CrimeFragment fragment = new CrimeFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
|
||||
}
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CrimeLab {
|
||||
private static CrimeLab crimeLab;
|
||||
private List<Crime> crimes;
|
||||
public static CrimeLab get(Context context) {
|
||||
if (crimeLab == null) {
|
||||
crimeLab = new CrimeLab(context);
|
||||
}
|
||||
return crimeLab;
|
||||
}
|
||||
private CrimeLab(Context context) {
|
||||
crimes = new ArrayList<>();
|
||||
for (int i =0; i < 100; ++i)
|
||||
{
|
||||
Crime crime = new Crime();
|
||||
crime.setTitle("Crime # " + i);
|
||||
crime.setSolved(i % 2 == 0); //every other one
|
||||
crimes.add(crime);
|
||||
}
|
||||
}
|
||||
public List<Crime> getCrimes() {
|
||||
return crimes;
|
||||
}
|
||||
public Crime getCrime(UUID id) {
|
||||
for (Crime crime : crimes) {
|
||||
if (crime.getId().equals(id)) {
|
||||
return crime;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
public class CrimeListActivity extends SingleFragmentActivity{
|
||||
@Override
|
||||
protected Fragment createFragment() {
|
||||
return new CrimeListFragment();
|
||||
}
|
||||
}
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Layout;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CrimeListFragment extends Fragment {
|
||||
private RecyclerView crimeRecyclerView;
|
||||
private CrimeAdapter adapter;
|
||||
private ImageView solvedImageView;
|
||||
private void updateUI(){
|
||||
CrimeLab crimeLab = CrimeLab.get(getActivity());
|
||||
List<Crime> crimes = crimeLab.getCrimes();
|
||||
if(this.adapter == null) {
|
||||
adapter = new CrimeAdapter(crimes);
|
||||
crimeRecyclerView.setAdapter(adapter);
|
||||
}
|
||||
else {
|
||||
// adapter.notifyItemChanged(1);
|
||||
this.adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater,
|
||||
ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View view =
|
||||
inflater.inflate(R.layout.fragment_crime_list,
|
||||
container, false);
|
||||
crimeRecyclerView = (RecyclerView) view
|
||||
.findViewById(R.id.crime_recycler_view);
|
||||
crimeRecyclerView.setLayoutManager(
|
||||
new LinearLayoutManager(getActivity()));
|
||||
updateUI();
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
updateUI();
|
||||
}
|
||||
|
||||
//CRIME HOLDER
|
||||
private class CrimeHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
|
||||
private Crime crime;
|
||||
private TextView titleTextView;
|
||||
private TextView dateTextView;
|
||||
public void bind(Crime crime){
|
||||
this.crime = crime;
|
||||
titleTextView.setText(this.crime.getTitle());
|
||||
dateTextView.setText(this.crime.getDate().toString());
|
||||
solvedImageView.setVisibility(crime.isSolved()? View.VISIBLE : View.GONE);
|
||||
}
|
||||
public CrimeHolder(LayoutInflater inflater, ViewGroup parent){
|
||||
super(inflater.inflate(R.layout.list_item_crime, parent ,false));
|
||||
itemView.setOnClickListener(this);
|
||||
titleTextView = itemView.findViewById(R.id.crime_title);
|
||||
dateTextView = itemView.findViewById(R.id.crime_date);
|
||||
solvedImageView =itemView.findViewById(R.id.imageView_green_cross);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Intent intent = CrimePagerActivity.newIntent(getActivity(),
|
||||
crime.getId());
|
||||
startActivity(intent);
|
||||
}
|
||||
// Intent intent = new Intent(getActivity(), CrimeActivity.class);
|
||||
// startActivity(intent);
|
||||
// Toast.makeText(getActivity(),
|
||||
// this.crime.getTitle() + " clicked!",
|
||||
// Toast.LENGTH_SHORT)
|
||||
// .show();
|
||||
|
||||
}
|
||||
//ADAPTER
|
||||
private class CrimeAdapter extends RecyclerView.Adapter<CrimeHolder>{
|
||||
private List<Crime> crimes;
|
||||
|
||||
public CrimeAdapter(List<Crime> crimes) {
|
||||
this.crimes = crimes;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public CrimeHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
|
||||
return new CrimeHolder(layoutInflater, parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull CrimeHolder holder, int position) {
|
||||
Crime crime = crimes.get(position);
|
||||
holder.bind(crime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return crimes.size();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CrimePagerActivity extends AppCompatActivity {
|
||||
private static final String EXTRA_CRIME_ID = "com.calebfontenot.android.CriminalIntent.crime_id";
|
||||
private ViewPager mViewPager;
|
||||
private List<Crime> mCrimes;
|
||||
|
||||
public static Intent newIntent(Context packageContext, UUID crimeId) {
|
||||
Intent intent = new Intent(packageContext, CrimePagerActivity.class);
|
||||
intent.putExtra(EXTRA_CRIME_ID, crimeId);
|
||||
return intent;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_crime_pager);
|
||||
UUID crimeId = (UUID) getIntent().getSerializableExtra(EXTRA_CRIME_ID);
|
||||
|
||||
mViewPager = (ViewPager) findViewById(R.id.crime_view_pager);
|
||||
mCrimes = CrimeLab.get(this).getCrimes();
|
||||
FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
for (int i = 0; i < mCrimes.size(); ++i) {
|
||||
UUID currentID = mCrimes.get(i).getId();
|
||||
if (currentID.equals(crimeId)) {
|
||||
mViewPager.setCurrentItem(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mCrimes.size();
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
Crime crime = mCrimes.get(position);
|
||||
return CrimeFragment.newInstance(crime.getId());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
|
||||
public class CrimePagerAdapter extends FragmentStatePagerAdapter {
|
||||
|
||||
public CrimePagerAdapter(@NonNull FragmentManager fm) {
|
||||
super(fm);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
|
||||
public class DatePickerFragment extends DialogFragment {
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
||||
public abstract class SingleFragmentActivity extends AppCompatActivity {
|
||||
protected abstract Fragment createFragment();
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.activity_fragment);
|
||||
FragmentManager fm =
|
||||
getSupportFragmentManager();
|
||||
Fragment fragment =
|
||||
fm.findFragmentById(R.id.fragment_container);
|
||||
if (fragment == null) {
|
||||
fragment = createFragment();
|
||||
fm.beginTransaction().add(
|
||||
R.id.fragment_container, fragment).commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="16dp">
|
||||
|
||||
<!-- TODO: Update blank fragment layout -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_title_label"
|
||||
style="?android:listSeparatorTextViewStyle"/>
|
||||
<EditText
|
||||
android:id="@+id/edit_text_crime_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ems="10"
|
||||
android:text="@string/crime_title_hint" />
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_details_label"
|
||||
style="?android:listSeparatorTextViewStyle"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button_crime_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/checkBox_crime_solved"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/crime_solved_label" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.viewpager.widget.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/crime_view_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</androidx.viewpager.widget.ViewPager>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout 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/fragment_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".CrimeActivity">
|
||||
|
||||
</FrameLayout>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="16dp">
|
||||
|
||||
<!-- TODO: Update blank fragment layout -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_title_label"
|
||||
style="?android:listSeparatorTextViewStyle"/>
|
||||
<EditText
|
||||
android:id="@+id/edit_text_crime_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ems="10"
|
||||
android:text="@string/crime_title_hint" />
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_details_label"
|
||||
style="?android:listSeparatorTextViewStyle"/>
|
||||
<Button
|
||||
android:id="@+id/button_crime_date"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
<CheckBox
|
||||
android:id="@+id/checkBox_crime_solved"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_solved_label"/>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,5 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/crime_recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
@@ -0,0 +1,43 @@
|
||||
<?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:id="@+id/linearLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/crime_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="Crime Title"
|
||||
android:textColor="#000000"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintEnd_toStartOf="@+id/imageView_green_cross"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/crime_date"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:text="Crime Date"
|
||||
app:layout_constraintEnd_toStartOf="@+id/imageView_green_cross"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/crime_title" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/imageView_green_cross"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srcCompat="@android:drawable/ic_input_add" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,7 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<!-- Base application theme. -->
|
||||
<style name="Base.Theme.CriminalIntent" parent="Theme.Material3.DayNight.NoActionBar">
|
||||
<!-- Customize your dark theme here. -->
|
||||
<!-- <item name="colorPrimary">@color/my_dark_primary</item> -->
|
||||
</style>
|
||||
</resources>
|
||||
File renamed without changes.
@@ -0,0 +1,9 @@
|
||||
<resources>
|
||||
<string name="app_name">Criminal Intent</string>
|
||||
<!-- TODO: Remove or change this placeholder text -->
|
||||
<string name="crime_title_hint">Enter a title for the crime.</string>
|
||||
<string name="crime_title_label">TITLE</string>
|
||||
<string name="crime_details_label">DETAILS</string>
|
||||
<string name="crime_solved_label">Solved</string>
|
||||
<string name="date_picker_title">Date of crime:</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,9 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<!-- Base application theme. -->
|
||||
<style name="Base.Theme.CriminalIntent" parent="Theme.Material3.DayNight.NoActionBar">
|
||||
<!-- Customize your light theme here. -->
|
||||
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
|
||||
</style>
|
||||
|
||||
<style name="Theme.CriminalIntent" parent="Base.Theme.CriminalIntent" />
|
||||
</resources>
|
||||
File renamed without changes.
File renamed without changes.
+17
@@ -0,0 +1,17 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Example local unit test, which will execute on the development machine (host).
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
public class ExampleUnitTest {
|
||||
@Test
|
||||
public void addition_isCorrect() {
|
||||
assertEquals(4, 2 + 2);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
plugins {
|
||||
alias(libs.plugins.androidApplication) apply false
|
||||
}
|
||||
File renamed without changes.
@@ -0,0 +1,22 @@
|
||||
[versions]
|
||||
agp = "8.3.0"
|
||||
junit = "4.13.2"
|
||||
junitVersion = "1.1.5"
|
||||
espressoCore = "3.5.1"
|
||||
appcompat = "1.6.1"
|
||||
material = "1.11.0"
|
||||
activity = "1.8.2"
|
||||
constraintlayout = "2.1.4"
|
||||
|
||||
[libraries]
|
||||
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
||||
ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
|
||||
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
|
||||
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
||||
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
||||
activity = { group = "androidx.activity", name = "activity", version.ref = "activity" }
|
||||
constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
|
||||
|
||||
[plugins]
|
||||
androidApplication = { id = "com.android.application", version.ref = "agp" }
|
||||
|
||||
File renamed without changes.
@@ -0,0 +1,6 @@
|
||||
#Wed Feb 14 09:55:47 CST 2024
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
Vendored
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,23 @@
|
||||
pluginManagement {
|
||||
repositories {
|
||||
google {
|
||||
content {
|
||||
includeGroupByRegex("com\\.android.*")
|
||||
includeGroupByRegex("com\\.google.*")
|
||||
includeGroupByRegex("androidx.*")
|
||||
}
|
||||
}
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.name = "CriminalIntent3"
|
||||
include(":app")
|
||||
Binary file not shown.
File renamed without changes.
Generated
File renamed without changes.
Generated
+1
@@ -0,0 +1 @@
|
||||
CriminalIntent3
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="17" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetDropDown">
|
||||
<value>
|
||||
<entry key="app">
|
||||
<State>
|
||||
<targetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="QUICK_BOOT_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="VIRTUAL_DEVICE_PATH" />
|
||||
<value value="$USER_HOME$/.android/avd/Pixel_3a_API_34_extension_level_7_x86_64.avd" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</targetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2024-03-18T14:22:25.262676Z" />
|
||||
</State>
|
||||
</entry>
|
||||
</value>
|
||||
</component>
|
||||
</project>
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DiscordProjectSettings">
|
||||
<option name="show" value="PROJECT_FILES" />
|
||||
<option name="description" value="" />
|
||||
</component>
|
||||
</project>
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveExternalAnnotations" value="false" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectMigrations">
|
||||
<option name="MigrateToGradleLocalJavaHome">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
<project version="4">
|
||||
<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">
|
||||
<option name="id" value="Android" />
|
||||
</component>
|
||||
</project>
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
Binary file not shown.
File renamed without changes.
@@ -0,0 +1,40 @@
|
||||
plugins {
|
||||
alias(libs.plugins.androidApplication)
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "asdv.lisset.criminalintent"
|
||||
compileSdk = 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "asdv.lisset.criminalintent3"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 1
|
||||
versionName = "1.0"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation(libs.appcompat)
|
||||
implementation(libs.material)
|
||||
implementation(libs.activity)
|
||||
implementation(libs.constraintlayout)
|
||||
testImplementation(libs.junit)
|
||||
androidTestImplementation(libs.ext.junit)
|
||||
androidTestImplementation(libs.espresso.core)
|
||||
}
|
||||
File renamed without changes.
+26
@@ -0,0 +1,26 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class ExampleInstrumentedTest {
|
||||
@Test
|
||||
public void useAppContext() {
|
||||
// Context of the app under test.
|
||||
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
|
||||
assertEquals("asdv.lisset.criminalintent", appContext.getPackageName());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
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.CriminalIntent"
|
||||
tools:targetApi="31">
|
||||
<activity
|
||||
android:name=".CrimePagerActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".CrimeListActivity"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name=".CrimeActivity"></activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,43 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public class Crime {
|
||||
private UUID id;
|
||||
private String title;
|
||||
private Date date;
|
||||
private boolean solved;
|
||||
public Crime() {
|
||||
this.id = UUID.randomUUID();
|
||||
this.date = new Date();
|
||||
}
|
||||
|
||||
public UUID getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public boolean isSolved() {
|
||||
return solved;
|
||||
}
|
||||
|
||||
public void setSolved(boolean solved) {
|
||||
this.solved = solved;
|
||||
}
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.EditText;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CrimeFragment extends Fragment {
|
||||
private Crime crime;
|
||||
private EditText titleField;
|
||||
private Button dateButton;
|
||||
private CheckBox solvedCheckBox;
|
||||
private static final String ARG_CRIME_ID =
|
||||
"crime_id";
|
||||
private static final String DIALOG_DATE =
|
||||
"DialogDate";
|
||||
private static final int REQUEST_DATE = 0;
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
// crime = new Crime();
|
||||
// UUID crimeId = (UUID)
|
||||
// getActivity().getIntent()
|
||||
// .getSerializableExtra(CrimeActivity.EXTRA_CRIME_ID);
|
||||
// crime = CrimeLab.get(getActivity()).getCrime(crimeId);
|
||||
UUID crimeId = (UUID)
|
||||
getArguments().getSerializable(ARG_CRIME_ID);
|
||||
crime =
|
||||
CrimeLab.get(getActivity()).getCrime(crimeId);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View v = inflater.inflate(R.layout.fragment_crime, container, false);
|
||||
|
||||
//variables
|
||||
this.dateButton = v.findViewById(R.id.button_crime_date);
|
||||
this.solvedCheckBox = v.findViewById(R.id.checkBox_crime_solved);
|
||||
this.titleField= v.findViewById(R.id.edit_text_crime_title);
|
||||
//date button
|
||||
SimpleDateFormat dt = new SimpleDateFormat("EEEE, MMMM d, yyyy");
|
||||
String s = dt.format(this.crime.getDate());
|
||||
this.dateButton.setText(s);
|
||||
dateButton.setOnClickListener(new View.OnClickListener()
|
||||
{
|
||||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
FragmentManager manager = getFragmentManager();
|
||||
DatePickerFragment dialog = DatePickerFragment.newInstance(crime.getDate());
|
||||
dialog.setTargetFragment(CrimeFragment.this, REQUEST_DATE);
|
||||
dialog.show(manager, DIALOG_DATE);
|
||||
}
|
||||
});
|
||||
|
||||
this.titleField.setText(crime.getTitle());
|
||||
this.solvedCheckBox.setChecked(crime.isSolved());
|
||||
//checkbox
|
||||
this.solvedCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
CrimeFragment.this.crime.setSolved(isChecked);
|
||||
}
|
||||
});
|
||||
titleField.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
//left blank
|
||||
}
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
crime.setTitle(s.toString());
|
||||
}
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
//blank on purpose
|
||||
}
|
||||
|
||||
});
|
||||
return v;
|
||||
}
|
||||
|
||||
public static CrimeFragment newInstance(UUID crimeId){
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable(ARG_CRIME_ID, crimeId);
|
||||
CrimeFragment fragment = new CrimeFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
|
||||
}
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int
|
||||
resultCode, Intent data) {
|
||||
if (resultCode != Activity.RESULT_OK) {
|
||||
return;
|
||||
}
|
||||
if (requestCode == REQUEST_DATE) {
|
||||
Date date = (Date) data
|
||||
.getSerializableExtra(DatePickerFragment.EXTRA_DATE);
|
||||
crime.setDate(date);
|
||||
updateDate();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateDate()
|
||||
{
|
||||
dateButton.setText(crime.getDate().toString());
|
||||
}
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CrimeLab {
|
||||
private static CrimeLab crimeLab;
|
||||
private List<Crime> crimes;
|
||||
public static CrimeLab get(Context context) {
|
||||
if (crimeLab == null) {
|
||||
crimeLab = new CrimeLab(context);
|
||||
}
|
||||
return crimeLab;
|
||||
}
|
||||
private CrimeLab(Context context) {
|
||||
crimes = new ArrayList<>();
|
||||
for (int i =0; i < 100; ++i)
|
||||
{
|
||||
Crime crime = new Crime();
|
||||
crime.setTitle("Crime #" + i);
|
||||
crime.setSolved(i % 2 == 0); //every other one
|
||||
crimes.add(crime);
|
||||
}
|
||||
}
|
||||
public List<Crime> getCrimes() {
|
||||
return crimes;
|
||||
}
|
||||
public Crime getCrime(UUID id) {
|
||||
for (Crime crime : crimes) {
|
||||
if (crime.getId().equals(id)) {
|
||||
return crime;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
public class CrimeListActivity extends SingleFragmentActivity{
|
||||
@Override
|
||||
protected Fragment createFragment() {
|
||||
return new CrimeListFragment();
|
||||
}
|
||||
}
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Layout;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class CrimeListFragment extends Fragment {
|
||||
private RecyclerView crimeRecyclerView;
|
||||
private CrimeAdapter adapter;
|
||||
|
||||
private void updateUI(){
|
||||
CrimeLab crimeLab = CrimeLab.get(getActivity());
|
||||
List<Crime> crimes = crimeLab.getCrimes();
|
||||
if(this.adapter == null) {
|
||||
adapter = new CrimeAdapter(crimes);
|
||||
crimeRecyclerView.setAdapter(adapter);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.adapter.notifyDataSetChanged();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater,
|
||||
ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
View view =
|
||||
inflater.inflate(R.layout.fragment_crime_list,
|
||||
container, false);
|
||||
crimeRecyclerView = (RecyclerView) view
|
||||
.findViewById(R.id.crime_recycler_view);
|
||||
crimeRecyclerView.setLayoutManager(
|
||||
new LinearLayoutManager(getActivity()));
|
||||
updateUI();
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
updateUI();
|
||||
}
|
||||
|
||||
//CRIME HOLDER
|
||||
private class CrimeHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
|
||||
private Crime crime;
|
||||
private TextView titleTextView;
|
||||
private TextView dateTextView;
|
||||
private ImageView solvedImageView;
|
||||
public void bind(Crime crime)
|
||||
{
|
||||
this.crime = crime;
|
||||
titleTextView.setText(this.crime.getTitle());
|
||||
dateTextView.setText(this.crime.getDate().toString());
|
||||
solvedImageView.setVisibility(crime.isSolved()? View.VISIBLE : View.GONE);
|
||||
}
|
||||
public CrimeHolder(LayoutInflater inflater, ViewGroup parent){
|
||||
super(inflater.inflate(R.layout.list_item_crime, parent ,false));
|
||||
itemView.setOnClickListener(this);
|
||||
titleTextView = itemView.findViewById(R.id.crime_title);
|
||||
dateTextView = itemView.findViewById(R.id.crime_date);
|
||||
solvedImageView = itemView.findViewById(R.id.imageView_green_cross);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
Intent intent = CrimePagerActivity.newIntent(getActivity(), crime.getId());
|
||||
startActivity(intent);
|
||||
}
|
||||
|
||||
}
|
||||
//ADAPTER
|
||||
private class CrimeAdapter extends RecyclerView.Adapter<CrimeHolder>{
|
||||
private List<Crime> crimes;
|
||||
|
||||
public CrimeAdapter(List<Crime> crimes) {
|
||||
this.crimes = crimes;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public CrimeHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
|
||||
return new CrimeHolder(layoutInflater, parent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull CrimeHolder holder, int position) {
|
||||
Crime crime = crimes.get(position);
|
||||
holder.bind(crime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return crimes.size();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CrimePagerActivity extends AppCompatActivity
|
||||
{
|
||||
private static final String EXTRA_CRIME_ID =
|
||||
"com.bignerdranch.android.criminalintent.crime_id";
|
||||
private ViewPager mViewPager;
|
||||
private List<Crime> mCrimes;
|
||||
|
||||
public static Intent newIntent(Context packageContext, UUID crimeId)
|
||||
{
|
||||
Intent intent = new Intent(packageContext, CrimePagerActivity.class);
|
||||
intent.putExtra(EXTRA_CRIME_ID, crimeId);
|
||||
return intent;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_crime_pager);
|
||||
UUID crimeId = (UUID) getIntent().getSerializableExtra(EXTRA_CRIME_ID);
|
||||
mViewPager = (ViewPager)
|
||||
findViewById(R.id.crime_view_pager);
|
||||
mCrimes = CrimeLab.get(this).getCrimes();
|
||||
FragmentManager fragmentManager =
|
||||
getSupportFragmentManager();
|
||||
mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager)
|
||||
{
|
||||
@Override
|
||||
public Fragment getItem(int position)
|
||||
{
|
||||
Crime crime = mCrimes.get(position);
|
||||
return CrimeFragment.newInstance(crime.getId());
|
||||
}
|
||||
@Override
|
||||
public int getCount()
|
||||
{
|
||||
return mCrimes.size();
|
||||
}
|
||||
});
|
||||
for (int i = 0; i < mCrimes.size(); i++)
|
||||
{
|
||||
if(mCrimes.get(i).getId().equals(crimeId))
|
||||
{
|
||||
mViewPager.setCurrentItem(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Dialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.DatePicker;
|
||||
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
public class DatePickerFragment extends DialogFragment
|
||||
{
|
||||
private static final String ARG_DATE = "date";
|
||||
private DatePicker mDatePicker;
|
||||
|
||||
public static final String EXTRA_DATE = "com.bignerdranch.android.criminalintent.date";
|
||||
public static DatePickerFragment newInstance(Date date)
|
||||
{
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable(ARG_DATE, date);
|
||||
DatePickerFragment fragment = new DatePickerFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
private void sendResult(int resultCode, Date date)
|
||||
{
|
||||
if (getTargetFragment() == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(EXTRA_DATE, date);
|
||||
getTargetFragment().onActivityResult(getTargetRequestCode(), resultCode, intent);
|
||||
}
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState)
|
||||
{
|
||||
Date date = (Date)
|
||||
getArguments().getSerializable(ARG_DATE);
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
int year = calendar.get(Calendar.YEAR);
|
||||
int month = calendar.get(Calendar.MONTH);
|
||||
int day = calendar.get(Calendar.DAY_OF_MONTH);
|
||||
calendar.setTimeInMillis(500);
|
||||
|
||||
View v = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_date, null);
|
||||
|
||||
mDatePicker = (DatePicker)
|
||||
v.findViewById(R.id.dialog_date_picker);
|
||||
mDatePicker.init(year, month, day, null);
|
||||
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
builder = builder.setTitle(R.string.date_picker_title);
|
||||
builder = builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener()
|
||||
{
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which)
|
||||
{
|
||||
int year = mDatePicker.getYear();
|
||||
int month = mDatePicker.getMonth();
|
||||
int day = mDatePicker.getDayOfMonth();
|
||||
Date date = new GregorianCalendar(year, month, day).getTime();
|
||||
sendResult(Activity.RESULT_OK, date);
|
||||
}
|
||||
});
|
||||
builder = builder.setView(v);
|
||||
return builder.create();
|
||||
|
||||
//return new AlertDialog.Builder(getActivity()).setTitle(R.string.date_picker_title)
|
||||
// .setPositiveButton(android.R.string.ok,null).create();
|
||||
}
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package asdv.lisset.criminalintent;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
||||
public abstract class SingleFragmentActivity extends AppCompatActivity {
|
||||
protected abstract Fragment createFragment();
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.activity_fragment);
|
||||
FragmentManager fm =
|
||||
getSupportFragmentManager();
|
||||
Fragment fragment =
|
||||
fm.findFragmentById(R.id.fragment_container);
|
||||
if (fragment == null) {
|
||||
fragment = createFragment();
|
||||
fm.beginTransaction().add(
|
||||
R.id.fragment_container, fragment).commit();
|
||||
}
|
||||
}
|
||||
}
|
||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="16dp">
|
||||
|
||||
<!-- TODO: Update blank fragment layout -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_title_label"
|
||||
style="?android:listSeparatorTextViewStyle"/>
|
||||
<EditText
|
||||
android:id="@+id/edit_text_crime_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ems="10"
|
||||
android:text="@string/crime_title_hint" />
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_details_label"
|
||||
style="?android:listSeparatorTextViewStyle"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button_crime_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/checkBox_crime_solved"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@string/crime_solved_label" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.viewpager.widget.ViewPager 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/crime_view_pager"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".CrimePagerActivity">
|
||||
|
||||
</androidx.viewpager.widget.ViewPager>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout 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/fragment_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".CrimeActivity">
|
||||
|
||||
</FrameLayout>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<DatePicker xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/dialog_date_picker"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:calendarViewShown="false">
|
||||
|
||||
</DatePicker>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:layout_margin="16dp">
|
||||
|
||||
<!-- TODO: Update blank fragment layout -->
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_title_label"
|
||||
style="?android:listSeparatorTextViewStyle"/>
|
||||
<EditText
|
||||
android:id="@+id/edit_text_crime_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:ems="10"
|
||||
android:text="@string/crime_title_hint" />
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_details_label"
|
||||
style="?android:listSeparatorTextViewStyle"/>
|
||||
<Button
|
||||
android:id="@+id/button_crime_date"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
<CheckBox
|
||||
android:id="@+id/checkBox_crime_solved"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/crime_solved_label"/>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,5 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/crime_recycler_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
Loaded 100 of 799 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user