├── .gitignore
├── ActivitySolution
└── How_to_Build_Android_Apps_with_Kotlin-Solutions_to_chapters_1_to_4_and_14_to_16.docx
├── Chapter01
├── Activity1.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── colors
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── colors
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── colors
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise1.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── jarRepositories.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myapplication
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myapplication
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myapplication
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise1.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myapplication
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myapplication
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myapplication
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise1.03
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myapplication
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myapplication
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myapplication
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise1.04
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myapplication
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myapplication
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myapplication
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise1.05
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── inspectionProfiles
│ │ └── Project_Default.xml
│ ├── misc.xml
│ └── vcs.xml
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myapplication
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myapplication
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── myapplication
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter02
├── Activity2.01_singleTop
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── loginactivity
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── loginactivity
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── loginactivity
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Activity2.02_standard
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── loginactivity
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── loginactivity
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── WelcomeActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_welcome.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── loginactivity
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Activity2.03_register_for_activity_result
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── loginactivity
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── loginactivity
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── WelcomeActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_welcome.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── loginactivity
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise2.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── ktlint.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── activitycallbacks
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── activitycallbacks
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── activitycallbacks
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise2.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── saveandrestore
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── saveandrestore
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── saveandrestore
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise2.03
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── saveandrestore
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── saveandrestore
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── saveandrestore
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise2.04
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── intentsintroduction
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── intentsintroduction
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── WelcomeActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_welcome.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── intentsintroduction
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise2.05
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── activityresults
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── activityresults
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── RainbowColorPickerActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_rainbow_color_picker.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── activityresults
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise2.06
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── inspectionProfiles
│ │ └── Project_Default.xml
│ ├── misc.xml
│ └── vcs.xml
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── launchmodes
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── launchmodes
│ │ │ │ ├── ActivityA.kt
│ │ │ │ ├── ActivityB.kt
│ │ │ │ ├── ActivityC.kt
│ │ │ │ ├── ActivityOne.kt
│ │ │ │ ├── ActivityThree.kt
│ │ │ │ ├── ActivityTwo.kt
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ ├── activity_a.xml
│ │ │ ├── activity_b.xml
│ │ │ ├── activity_c.xml
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_one.xml
│ │ │ ├── activity_three.xml
│ │ │ ├── activity_two.xml
│ │ │ ├── letters.xml
│ │ │ └── numbers.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── launchmodes
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter03
├── Activity3.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── planetquiz
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── planetquiz
│ │ │ │ │ ├── AnswersFragment.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── QuestionsFragment.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── fragment_answers.xml
│ │ │ │ └── fragment_questions.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── planetquiz
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise3.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── fragmentlifecycle
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── fragmentlifecycle
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── MainFragment.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── fragment_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── fragmentlifecycle
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise3.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── fragmentintro
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── fragmentintro
│ │ │ │ │ ├── ColorFragment.kt
│ │ │ │ │ ├── CounterFragment.kt
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── fragment_color.xml
│ │ │ │ └── fragment_counter.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-anydpi-v33
│ │ │ │ └── ic_launcher.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── fragmentintro
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise3.03
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── dualpanelayouts
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── dualpanelayouts
│ │ │ │ │ ├── DetailActivity.kt
│ │ │ │ │ ├── DetailFragment.kt
│ │ │ │ │ ├── ListFragment.kt
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout-sw600dp
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_detail.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── fragment_detail.xml
│ │ │ │ └── fragment_list.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── dualpanelayouts
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise3.04
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── dynamicfragments
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── dynamicfragments
│ │ │ │ │ ├── DetailFragment.kt
│ │ │ │ │ ├── ListFragment.kt
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── fragment_detail.xml
│ │ │ │ └── fragment_list.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── dynamicfragments
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise3.05
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── inspectionProfiles
│ │ └── Project_Default.xml
│ ├── misc.xml
│ └── vcs.xml
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── jetpackfragments
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── jetpackfragments
│ │ │ │ ├── DetailFragment.kt
│ │ │ │ ├── ListFragment.kt
│ │ │ │ └── MainActivity.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ ├── activity_main.xml
│ │ │ ├── fragment_detail.xml
│ │ │ └── fragment_list.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── navigation
│ │ │ └── nav_graph.xml
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── jetpackfragments
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter04
├── Activity4.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── navigationactivity
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── navigationactivity
│ │ │ │ │ ├── AccountFragment.kt
│ │ │ │ │ ├── BasketballFragment.kt
│ │ │ │ │ ├── FootballFragment.kt
│ │ │ │ │ ├── HockeyFragment.kt
│ │ │ │ │ ├── HomeFragment.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MySportsFragment.kt
│ │ │ │ │ └── ProfileFragment.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ ├── account.xml
│ │ │ │ ├── home.xml
│ │ │ │ ├── ic_launcher_foreground.xml
│ │ │ │ ├── mysports.xml
│ │ │ │ └── profile.xml
│ │ │ │ ├── drawable
│ │ │ │ ├── account.xml
│ │ │ │ ├── home.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── mysports.xml
│ │ │ │ └── profile.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── fragment_account.xml
│ │ │ │ ├── fragment_basketball.xml
│ │ │ │ ├── fragment_football.xml
│ │ │ │ ├── fragment_hockey.xml
│ │ │ │ ├── fragment_home.xml
│ │ │ │ ├── fragment_my_sports.xml
│ │ │ │ └── fragment_profile.xml
│ │ │ │ ├── menu
│ │ │ │ └── bottom_nav_menu.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── navigation
│ │ │ │ └── mobile_navigation.xml
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── navigationactivity
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise4.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── deploymentTargetDropDown.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── navigationdrawer
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── navigationdrawer
│ │ │ │ │ ├── ArchiveFragment.kt
│ │ │ │ │ ├── BinFragment.kt
│ │ │ │ │ ├── ContentFragment.kt
│ │ │ │ │ ├── FavoritesFragment.kt
│ │ │ │ │ ├── HomeFragment.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── RecentFragment.kt
│ │ │ │ │ └── SettingsFragment.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ ├── archive.xml
│ │ │ │ ├── bin.xml
│ │ │ │ ├── favorites.xml
│ │ │ │ ├── home.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── recent.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── app_bar_main.xml
│ │ │ │ ├── content_main.xml
│ │ │ │ ├── fragment_archive.xml
│ │ │ │ ├── fragment_bin.xml
│ │ │ │ ├── fragment_content.xml
│ │ │ │ ├── fragment_favorites.xml
│ │ │ │ ├── fragment_home.xml
│ │ │ │ ├── fragment_recent.xml
│ │ │ │ ├── fragment_settings.xml
│ │ │ │ └── nav_header_main.xml
│ │ │ │ ├── menu
│ │ │ │ ├── activity_main_drawer.xml
│ │ │ │ └── main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── navigation
│ │ │ │ └── mobile_navigation.xml
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── navigationdrawer
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise4.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── bottomnavigation
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── bottomnavigation
│ │ │ │ │ ├── CartFragment.kt
│ │ │ │ │ ├── ContentFragment.kt
│ │ │ │ │ ├── HomeFragment.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── OffersFragment.kt
│ │ │ │ │ ├── RewardsFragment.kt
│ │ │ │ │ ├── SettingsFragment.kt
│ │ │ │ │ └── TicketsFragment.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ ├── cart.xml
│ │ │ │ ├── home.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── offers.xml
│ │ │ │ ├── rewards.xml
│ │ │ │ └── tickets.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── fragment_cart.xml
│ │ │ │ ├── fragment_content.xml
│ │ │ │ ├── fragment_home.xml
│ │ │ │ ├── fragment_offers.xml
│ │ │ │ ├── fragment_rewards.xml
│ │ │ │ ├── fragment_settings.xml
│ │ │ │ └── fragment_tickets.xml
│ │ │ │ ├── menu
│ │ │ │ ├── bottom_nav_menu.xml
│ │ │ │ └── main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── navigation
│ │ │ │ └── mobile_navigation.xml
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── bottomnavigation
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise4.03
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── compiler.xml
│ ├── deploymentTargetDropDown.xml
│ ├── gradle.xml
│ ├── inspectionProfiles
│ │ └── Project_Default.xml
│ ├── misc.xml
│ └── vcs.xml
│ ├── app
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── tabnavigation
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tabnavigation
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── MovieGenresAdapter.kt
│ │ │ │ └── MoviesFragment.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ ├── activity_main.xml
│ │ │ └── fragment_movies.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── tabnavigation
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter05
├── Activity5.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── newyorkweather
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── newyorkweather
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── OpenWeatherMapService.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── OpenWeatherMapResponseData.kt
│ │ │ │ │ └── OpenWeatherMapWeatherData.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── newyorkweather
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise5.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── catagentprofile
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── catagentprofile
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── api
│ │ │ │ │ └── TheCatApiService.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── catagentprofile
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise5.02
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── catagentprofile
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── catagentprofile
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── TheCatApiService.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── CatBreedData.kt
│ │ │ │ │ └── ImageResultData.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── catagentprofile
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise5.03
│ ├── .gitignore
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── catagentprofile
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── catagentprofile
│ │ │ │ ├── GlideImageLoader.kt
│ │ │ │ ├── ImageLoader.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── api
│ │ │ │ └── TheCatApiService.kt
│ │ │ │ └── model
│ │ │ │ ├── CatBreedData.kt
│ │ │ │ └── ImageResultData.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── catagentprofile
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter06
├── Activity6.01
│ ├── .gitignore
│ ├── .idea
│ │ └── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── recipebook
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── recipebook
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── RecipesAdapter.kt
│ │ │ │ │ ├── ViewHolder.kt
│ │ │ │ │ └── model
│ │ │ │ │ └── ListItem.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── item_recipe.xml
│ │ │ │ └── item_title.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── recipebook
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise6.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myrecyclerviewapp
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myrecyclerviewapp
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myrecyclerviewapp
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise6.02
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myrecyclerviewapp
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myrecyclerviewapp
│ │ │ │ │ ├── CatViewHolder.kt
│ │ │ │ │ ├── CatsAdapter.kt
│ │ │ │ │ ├── GlideImageLoader.kt
│ │ │ │ │ ├── ImageLoader.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── CatBreed.kt
│ │ │ │ │ ├── CatUiModel.kt
│ │ │ │ │ └── Gender.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── item_cat.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myrecyclerviewapp
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise6.03
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myrecyclerviewapp
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myrecyclerviewapp
│ │ │ │ │ ├── CatViewHolder.kt
│ │ │ │ │ ├── CatsAdapter.kt
│ │ │ │ │ ├── GlideImageLoader.kt
│ │ │ │ │ ├── ImageLoader.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── CatBreed.kt
│ │ │ │ │ ├── CatUiModel.kt
│ │ │ │ │ └── Gender.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── item_cat.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myrecyclerviewapp
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise6.04
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myrecyclerviewapp
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myrecyclerviewapp
│ │ │ │ │ ├── GlideImageLoader.kt
│ │ │ │ │ ├── ImageLoader.kt
│ │ │ │ │ ├── ListItemsAdapter.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── model
│ │ │ │ │ ├── CatBreed.kt
│ │ │ │ │ ├── CatUiModel.kt
│ │ │ │ │ ├── Gender.kt
│ │ │ │ │ └── ListItemUiModel.kt
│ │ │ │ │ └── viewholder
│ │ │ │ │ ├── CatViewHolder.kt
│ │ │ │ │ ├── ListItemViewHolder.kt
│ │ │ │ │ └── TitleViewHolder.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── item_cat.xml
│ │ │ │ └── item_title.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myrecyclerviewapp
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise6.05
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myrecyclerviewapp
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── myrecyclerviewapp
│ │ │ │ │ ├── GlideImageLoader.kt
│ │ │ │ │ ├── ImageLoader.kt
│ │ │ │ │ ├── ListItemsAdapter.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── model
│ │ │ │ │ ├── CatBreed.kt
│ │ │ │ │ ├── CatUiModel.kt
│ │ │ │ │ ├── Gender.kt
│ │ │ │ │ └── ListItemUiModel.kt
│ │ │ │ │ └── viewholder
│ │ │ │ │ ├── CatViewHolder.kt
│ │ │ │ │ ├── ListItemViewHolder.kt
│ │ │ │ │ └── TitleViewHolder.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── item_cat.xml
│ │ │ │ └── item_title.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myrecyclerviewapp
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise6.06
│ ├── .gitignore
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myrecyclerviewapp
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── myrecyclerviewapp
│ │ │ │ ├── GlideImageLoader.kt
│ │ │ │ ├── ImageLoader.kt
│ │ │ │ ├── ListItemsAdapter.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── model
│ │ │ │ ├── CatBreed.kt
│ │ │ │ ├── CatUiModel.kt
│ │ │ │ ├── Gender.kt
│ │ │ │ └── ListItemUiModel.kt
│ │ │ │ └── viewholder
│ │ │ │ ├── CatViewHolder.kt
│ │ │ │ ├── ListItemViewHolder.kt
│ │ │ │ └── TitleViewHolder.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ ├── activity_main.xml
│ │ │ ├── item_cat.xml
│ │ │ └── item_title.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── myrecyclerviewapp
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter07
├── Activity7.1
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── parkedcarfinder
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── debug
│ │ │ └── res
│ │ │ │ └── values
│ │ │ │ └── google_maps_api.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── parkedcarfinder
│ │ │ │ │ └── MapsActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ ├── ic_baseline_directions_car_24.xml
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_maps.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── release
│ │ │ └── res
│ │ │ │ └── values
│ │ │ │ └── google_maps_api.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── parkedcarfinder
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise7.1
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── catagentdeployer
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── debug
│ │ │ └── res
│ │ │ │ └── values
│ │ │ │ └── google_maps_api.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── catagentdeployer
│ │ │ │ │ └── MapsActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_maps.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── release
│ │ │ └── res
│ │ │ │ └── values
│ │ │ │ └── google_maps_api.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── catagentdeployer
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise7.2
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── catagentdeployer
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── debug
│ │ │ └── res
│ │ │ │ └── values
│ │ │ │ └── google_maps_api.xml
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── catagentdeployer
│ │ │ │ │ └── MapsActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_maps.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── release
│ │ │ └── res
│ │ │ │ └── values
│ │ │ │ └── google_maps_api.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── catagentdeployer
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise7.3
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── catagentdeployer
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── debug
│ │ └── res
│ │ │ └── values
│ │ │ └── google_maps_api.xml
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── catagentdeployer
│ │ │ │ └── MapsActivity.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ ├── ic_launcher_background.xml
│ │ │ └── target_icon.xml
│ │ │ ├── layout
│ │ │ └── activity_maps.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ ├── release
│ │ └── res
│ │ │ └── values
│ │ │ └── google_maps_api.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── catagentdeployer
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter08
├── Activity08.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── mywatterttracker
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── mywatterttracker
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── WaterTrackingService.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── mywatterttracker
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise8.1
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── catagenttracker
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── catagenttracker
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── worker
│ │ │ │ │ ├── CatFurGroomingWorker.kt
│ │ │ │ │ ├── CatLitterBoxSittingWorker.kt
│ │ │ │ │ ├── CatStretchingWorker.kt
│ │ │ │ │ └── CatSuitUpWorker.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── catagenttracker
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise8.2
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── catagenttracker
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── catagenttracker
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── RouteTrackingService.kt
│ │ │ │ └── worker
│ │ │ │ ├── CatFurGroomingWorker.kt
│ │ │ │ ├── CatLitterBoxSittingWorker.kt
│ │ │ │ ├── CatStretchingWorker.kt
│ │ │ │ └── CatSuitUpWorker.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── catagenttracker
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ └── settings.gradle
├── Chapter09
├── Activity09.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ └── misc.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── GridScreen.kt
│ │ │ │ │ ├── InsertColumnsScreen.kt
│ │ │ │ │ ├── InsertRowsScreen.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── ui
│ │ │ │ │ └── theme
│ │ │ │ │ ├── Color.kt
│ │ │ │ │ ├── Elements.kt
│ │ │ │ │ ├── Shape.kt
│ │ │ │ │ ├── Theme.kt
│ │ │ │ │ └── Type.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise09.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── inspectionProfiles
│ │ │ └── Project_Default.xml
│ │ └── misc.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── ui
│ │ │ │ │ └── theme
│ │ │ │ │ ├── Color.kt
│ │ │ │ │ ├── Shape.kt
│ │ │ │ │ ├── Theme.kt
│ │ │ │ │ └── Type.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise09.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ └── misc.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── ui
│ │ │ │ │ └── theme
│ │ │ │ │ ├── Color.kt
│ │ │ │ │ ├── Shape.kt
│ │ │ │ │ ├── Theme.kt
│ │ │ │ │ └── Type.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise09.03
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── compiler.xml
│ ├── gradle.xml
│ └── misc.xml
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── ItemCountScreen.kt
│ │ │ │ ├── ItemScreen.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ └── ui
│ │ │ │ └── theme
│ │ │ │ ├── Color.kt
│ │ │ │ ├── Elements.kt
│ │ │ │ ├── Shape.kt
│ │ │ │ ├── Theme.kt
│ │ │ │ └── Type.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── android
│ │ └── testable
│ │ └── myapplication
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter10
├── Activity10.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── androidTestResultsUserPreferences.xml
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── Activity1Robot.kt
│ │ │ │ ├── Activity2Robot.kt
│ │ │ │ ├── Activity3Robot.kt
│ │ │ │ ├── MyInstrumentedApplication.kt
│ │ │ │ ├── MyTestRunner.kt
│ │ │ │ ├── MyViewAssertions.kt
│ │ │ │ ├── RecyclerViewItemCountAssertion.kt
│ │ │ │ ├── TestItemGenerator.kt
│ │ │ │ └── UiTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── Activity1.kt
│ │ │ │ │ ├── Activity2.kt
│ │ │ │ │ ├── Activity3.kt
│ │ │ │ │ ├── Item.kt
│ │ │ │ │ ├── ItemAdapter.kt
│ │ │ │ │ ├── ItemGenerator.kt
│ │ │ │ │ ├── MyApplication.kt
│ │ │ │ │ └── StringProvider.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_1.xml
│ │ │ │ ├── activity_2.xml
│ │ │ │ ├── activity_3.xml
│ │ │ │ └── item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── Activity1Test.kt
│ │ │ │ ├── Activity2Test.kt
│ │ │ │ ├── Activity3Test.kt
│ │ │ │ ├── InstantItemGenerator.kt
│ │ │ │ ├── ItemGeneratorTest.kt
│ │ │ │ └── StringProviderTest.kt
│ │ │ └── resources
│ │ │ ├── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ │ │ └── robolectric.properties
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise10.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ └── NumberAdder.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ ├── NumberAdderErrorHandlingTest.kt
│ │ │ └── NumberAdderTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise10.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── androidTestResultsUserPreferences.xml
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ └── MainActivityUiTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── NumberAdder.kt
│ │ │ │ │ └── TextFormatter.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── MainActivityTest.kt
│ │ │ │ ├── NumberAdderErrorHandlingTest.kt
│ │ │ │ ├── NumberAdderParameterTest.kt
│ │ │ │ └── TextFormatterTest.kt
│ │ │ └── resources
│ │ │ ├── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ │ │ └── robolectric.properties
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise10.03
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── androidTestResultsUserPreferences.xml
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── FlowTest.kt
│ │ │ │ ├── MyApplicationTestRunner.kt
│ │ │ │ ├── TestMyApplication.kt
│ │ │ │ ├── TestRandomizer.kt
│ │ │ │ └── TestSynchronizer.kt
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── Activity1.kt
│ │ │ │ ├── Activity2.kt
│ │ │ │ ├── MyApplication.kt
│ │ │ │ ├── Randomizer.kt
│ │ │ │ └── Synchronizer.kt
│ │ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ ├── activity_1.xml
│ │ │ └── activity_2.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise10.04
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── misc.xml
│ └── vcs.xml
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ └── Adder.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── android
│ │ └── testable
│ │ └── myapplication
│ │ └── AdderTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter11
├── Activity11.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ └── misc.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── CountNotesFragment.kt
│ │ │ │ │ ├── CountNotesViewModel.kt
│ │ │ │ │ ├── Note.kt
│ │ │ │ │ ├── NoteDao.kt
│ │ │ │ │ ├── NoteListAdapter.kt
│ │ │ │ │ ├── NoteListFragment.kt
│ │ │ │ │ ├── NoteListViewModel.kt
│ │ │ │ │ ├── NoteRepository.kt
│ │ │ │ │ ├── NoteRepositoryImpl.kt
│ │ │ │ │ ├── NotesActivity.kt
│ │ │ │ │ ├── NotesApplication.kt
│ │ │ │ │ └── NotesDatabase.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout-land
│ │ │ │ └── activity_note.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_note.xml
│ │ │ │ ├── fragment_count_notes.xml
│ │ │ │ ├── fragment_note_list.xml
│ │ │ │ └── view_note_item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── CountNotesViewModelTest.kt
│ │ │ │ ├── NoteListViewModelTest.kt
│ │ │ │ └── NoteRepositoryImplTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise11.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ └── misc.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── SplitActivity.kt
│ │ │ │ ├── SplitFragmentOne.kt
│ │ │ │ ├── SplitFragmentTwo.kt
│ │ │ │ └── TotalsViewModel.kt
│ │ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout-land
│ │ │ └── activity_split.xml
│ │ │ ├── layout
│ │ │ ├── activity_split.xml
│ │ │ ├── fragment_split_one.xml
│ │ │ └── fragment_split_two.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise11.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── SplitActivity.kt
│ │ │ │ │ ├── SplitFragmentOne.kt
│ │ │ │ │ ├── SplitFragmentTwo.kt
│ │ │ │ │ └── TotalsViewModel.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout-land
│ │ │ │ └── activity_split.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_split.xml
│ │ │ │ ├── fragment_split_one.xml
│ │ │ │ └── fragment_split_two.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ └── TotalsViewModelTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise11.03
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── androidTestResultsUserPreferences.xml
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── misc.xml
│ └── vcs.xml
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ └── NewsDatabaseTest.kt
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ ├── Article.kt
│ │ │ ├── ArticleDao.kt
│ │ │ ├── Database.kt
│ │ │ ├── JoinedArticleJournalist.kt
│ │ │ ├── JoinedArticleJournalistDao.kt
│ │ │ ├── Journalist.kt
│ │ │ └── JournalistDao.kt
│ │ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── values-night
│ │ └── themes.xml
│ │ ├── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── themes.xml
│ │ └── xml
│ │ ├── backup_rules.xml
│ │ └── data_extraction_rules.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter12
├── Activity12.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ └── misc.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MainAdapter.kt
│ │ │ │ │ ├── MainApplication.kt
│ │ │ │ │ ├── MainViewModel.kt
│ │ │ │ │ ├── SettingsActivity.kt
│ │ │ │ │ ├── api
│ │ │ │ │ ├── Dog.kt
│ │ │ │ │ └── DownloadService.kt
│ │ │ │ │ ├── repository
│ │ │ │ │ ├── DogMapper.kt
│ │ │ │ │ ├── DogUi.kt
│ │ │ │ │ ├── DownloadRepository.kt
│ │ │ │ │ ├── DownloadRepositoryImpl.kt
│ │ │ │ │ └── Result.kt
│ │ │ │ │ └── storage
│ │ │ │ │ ├── filesystem
│ │ │ │ │ ├── FileToUriMapper.kt
│ │ │ │ │ └── ProviderFileHandler.kt
│ │ │ │ │ ├── preference
│ │ │ │ │ └── DownloadPreferencesWrapper.kt
│ │ │ │ │ └── room
│ │ │ │ │ ├── DogDao.kt
│ │ │ │ │ ├── DogDatabase.kt
│ │ │ │ │ └── DogEntity.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── ic_settings.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ ├── activity_settings.xml
│ │ │ │ └── view_dog_item.xml
│ │ │ │ ├── menu
│ │ │ │ └── menu_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ ├── data_extraction_rules.xml
│ │ │ │ └── provider_paths.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── MainViewModelTest.kt
│ │ │ │ ├── repository
│ │ │ │ └── DownloadRepositoryImplTest.kt
│ │ │ │ └── storage
│ │ │ │ ├── filesystem
│ │ │ │ └── ProviderFileHandlerTest.kt
│ │ │ │ └── preference
│ │ │ │ └── DownloadPreferencesWrapperTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise12.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── PreferenceApplication.kt
│ │ │ │ │ ├── PreferenceViewModel.kt
│ │ │ │ │ └── PreferenceWrapper.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── PreferenceViewModelTest.kt
│ │ │ │ └── PreferenceWrapperTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise12.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ └── misc.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── SettingsApplication.kt
│ │ │ │ │ ├── SettingsStore.kt
│ │ │ │ │ └── SettingsViewModel.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise12.03
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── assets
│ │ │ │ └── my-app-file.txt
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── AssetFileManager.kt
│ │ │ │ │ ├── FileToUriMapper.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── ProviderFileManager.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ └── activity_main.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ ├── data_extraction_rules.xml
│ │ │ │ └── file_provider_paths.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── AssetFileManagerTest.kt
│ │ │ │ └── ProviderFileManagerTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise12.04
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── misc.xml
│ └── vcs.xml
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── FileHelper.kt
│ │ │ │ ├── FileInfo.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── MediaContentHelper.kt
│ │ │ │ └── ProviderFileManager.kt
│ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ ├── data_extraction_rules.xml
│ │ │ └── file_provider_paths.xml
│ │ └── test
│ │ ├── java
│ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ └── ProviderFileManagerTest.kt
│ │ └── resources
│ │ └── mockito-extensions
│ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter13
├── Activity13.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── androidTestResultsUserPreferences.xml
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── DummyRepository.kt
│ │ │ │ ├── MainActivityTest.kt
│ │ │ │ ├── MyTestRunner.kt
│ │ │ │ └── TestRepositoryModule.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── android
│ │ │ │ │ └── testable
│ │ │ │ │ └── myapplication
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MyApplication.kt
│ │ │ │ │ ├── PostAdapter.kt
│ │ │ │ │ ├── PostViewModel.kt
│ │ │ │ │ ├── api
│ │ │ │ │ ├── NetworkModule.kt
│ │ │ │ │ ├── Post.kt
│ │ │ │ │ └── PostService.kt
│ │ │ │ │ └── repository
│ │ │ │ │ ├── PostRepository.kt
│ │ │ │ │ ├── PostRepositoryImpl.kt
│ │ │ │ │ └── RepositoryModule.kt
│ │ │ └── res
│ │ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_background.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── view_post_row.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.webp
│ │ │ │ └── ic_launcher_round.webp
│ │ │ │ ├── values-night
│ │ │ │ └── themes.xml
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ ├── backup_rules.xml
│ │ │ │ └── data_extraction_rules.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ ├── PostViewModelTest.kt
│ │ │ └── repository
│ │ │ └── PostRepositoryImplTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise13.01
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── ApplicationContainer.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── MainContainer.kt
│ │ │ │ ├── MainViewModel.kt
│ │ │ │ ├── NumberRepository.kt
│ │ │ │ ├── NumberRepositoryImpl.kt
│ │ │ │ └── RandomApplication.kt
│ │ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise13.02
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── ApplicationComponent.kt
│ │ │ │ ├── ApplicationModule.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── MainModule.kt
│ │ │ │ ├── MainScope.kt
│ │ │ │ ├── MainSubcomponent.kt
│ │ │ │ ├── MainViewModel.kt
│ │ │ │ ├── NumberRepository.kt
│ │ │ │ ├── NumberRepositoryImpl.kt
│ │ │ │ └── RandomApplication.kt
│ │ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise13.03
│ ├── .gitignore
│ ├── .idea
│ │ ├── .gitignore
│ │ ├── .name
│ │ ├── compiler.xml
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ └── vcs.xml
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ └── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── android
│ │ │ │ └── testable
│ │ │ │ └── myapplication
│ │ │ │ ├── ApplicationModule.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── MainViewModel.kt
│ │ │ │ ├── NumberRepository.kt
│ │ │ │ ├── NumberRepositoryImpl.kt
│ │ │ │ └── RandomApplication.kt
│ │ │ └── res
│ │ │ ├── drawable-v24
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── drawable
│ │ │ └── ic_launcher_background.xml
│ │ │ ├── layout
│ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.webp
│ │ │ └── ic_launcher_round.webp
│ │ │ ├── values-night
│ │ │ └── themes.xml
│ │ │ ├── values
│ │ │ ├── colors.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ │ └── xml
│ │ │ ├── backup_rules.xml
│ │ │ └── data_extraction_rules.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise13.04
│ ├── .gitignore
│ ├── .idea
│ ├── .gitignore
│ ├── .name
│ ├── compiler.xml
│ ├── gradle.xml
│ ├── misc.xml
│ └── vcs.xml
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── android
│ │ │ └── testable
│ │ │ └── myapplication
│ │ │ ├── MainActivity.kt
│ │ │ ├── MainViewModel.kt
│ │ │ ├── NumberRepository.kt
│ │ │ ├── NumberRepositoryImpl.kt
│ │ │ └── RandomApplication.kt
│ │ └── res
│ │ ├── drawable-v24
│ │ └── ic_launcher_foreground.xml
│ │ ├── drawable
│ │ └── ic_launcher_background.xml
│ │ ├── layout
│ │ └── activity_main.xml
│ │ ├── mipmap-anydpi-v26
│ │ ├── ic_launcher.xml
│ │ └── ic_launcher_round.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.webp
│ │ └── ic_launcher_round.webp
│ │ ├── values-night
│ │ └── themes.xml
│ │ ├── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── themes.xml
│ │ └── xml
│ │ ├── backup_rules.xml
│ │ └── data_extraction_rules.xml
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter14
├── Activity14.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tvguide
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── tvguide
│ │ │ │ │ ├── DetailsActivity.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── TVApplication.kt
│ │ │ │ │ ├── TVShowAdapter.kt
│ │ │ │ │ ├── TVShowRepository.kt
│ │ │ │ │ ├── TVShowViewModel.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── TelevisionService.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── TVResponse.kt
│ │ │ │ │ └── TVShow.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_details.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── view_tv_show_item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tvguide
│ │ │ │ ├── LiveDataUtil.kt
│ │ │ │ ├── TVShowRepositoryTest.kt
│ │ │ │ └── TVShowViewModelTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise14.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── popularmovies
│ │ │ │ │ ├── DetailsActivity.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MovieAdapter.kt
│ │ │ │ │ ├── MovieApplication.kt
│ │ │ │ │ ├── MovieRepository.kt
│ │ │ │ │ ├── MovieViewModel.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── MovieService.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── Movie.kt
│ │ │ │ │ └── PopularMoviesResponse.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_details.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── view_movie_item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ ├── LiveDataUtil.kt
│ │ │ │ ├── MovieRepositoryTest.kt
│ │ │ │ └── MovieViewModelTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise14.02
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── popularmovies
│ │ │ │ │ ├── DetailsActivity.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MovieAdapter.kt
│ │ │ │ │ ├── MovieApplication.kt
│ │ │ │ │ ├── MovieRepository.kt
│ │ │ │ │ ├── MovieViewModel.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── MovieService.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── Movie.kt
│ │ │ │ │ └── PopularMoviesResponse.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_details.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── view_movie_item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ ├── LiveDataUtil.kt
│ │ │ │ ├── MovieRepositoryTest.kt
│ │ │ │ └── MovieViewModelTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise14.03
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── popularmovies
│ │ │ │ │ ├── DetailsActivity.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MovieAdapter.kt
│ │ │ │ │ ├── MovieApplication.kt
│ │ │ │ │ ├── MovieRepository.kt
│ │ │ │ │ ├── MovieViewModel.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── MovieService.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── Movie.kt
│ │ │ │ │ └── PopularMoviesResponse.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_details.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── view_movie_item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ ├── LiveDataUtil.kt
│ │ │ │ ├── MovieRepositoryTest.kt
│ │ │ │ └── MovieViewModelTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Popular Movies
│ ├── .gitignore
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── popularmovies
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── ic_launcher-playstore.png
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ ├── DetailsActivity.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── MovieAdapter.kt
│ │ │ │ ├── MovieApplication.kt
│ │ │ │ ├── MovieRepository.kt
│ │ │ │ ├── MovieViewModel.kt
│ │ │ │ ├── api
│ │ │ │ └── MovieService.kt
│ │ │ │ └── model
│ │ │ │ ├── Movie.kt
│ │ │ │ └── PopularMoviesResponse.kt
│ │ └── res
│ │ │ ├── drawable
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── layout
│ │ │ ├── activity_details.xml
│ │ │ ├── activity_main.xml
│ │ │ └── view_movie_item.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ └── test
│ │ ├── java
│ │ └── com
│ │ │ └── example
│ │ │ └── popularmovies
│ │ │ └── LiveDataUtil.kt
│ │ └── resources
│ │ └── mockito-extensions
│ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter15
├── Activity15.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tvguide
│ │ │ │ ├── ExampleInstrumentedTest.kt
│ │ │ │ └── TVShowWorkerTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── tvguide
│ │ │ │ │ ├── DetailsActivity.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── TVApplication.kt
│ │ │ │ │ ├── TVShowAdapter.kt
│ │ │ │ │ ├── TVShowRepository.kt
│ │ │ │ │ ├── TVShowViewModel.kt
│ │ │ │ │ ├── TVShowWorker.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── TelevisionService.kt
│ │ │ │ │ ├── binding
│ │ │ │ │ └── RecyclerViewBinding.kt
│ │ │ │ │ ├── database
│ │ │ │ │ ├── TVDao.kt
│ │ │ │ │ └── TVDatabase.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── TVResponse.kt
│ │ │ │ │ └── TVShow.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_details.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── view_tv_show_item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tvguide
│ │ │ │ ├── LiveDataUtil.kt
│ │ │ │ ├── TVShowRepositoryTest.kt
│ │ │ │ └── TVShowViewModelTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise15.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── popularmovies
│ │ │ │ │ ├── DetailsActivity.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MovieAdapter.kt
│ │ │ │ │ ├── MovieApplication.kt
│ │ │ │ │ ├── MovieRepository.kt
│ │ │ │ │ ├── MovieViewModel.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── MovieService.kt
│ │ │ │ │ ├── binding
│ │ │ │ │ └── RecyclerViewBinding.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── Movie.kt
│ │ │ │ │ └── PopularMoviesResponse.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_details.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── view_movie_item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ ├── LiveDataUtil.kt
│ │ │ │ ├── MovieRepositoryTest.kt
│ │ │ │ └── MovieViewModelTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise15.02
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── popularmovies
│ │ │ │ │ ├── DetailsActivity.kt
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ ├── MovieAdapter.kt
│ │ │ │ │ ├── MovieApplication.kt
│ │ │ │ │ ├── MovieRepository.kt
│ │ │ │ │ ├── MovieViewModel.kt
│ │ │ │ │ ├── api
│ │ │ │ │ └── MovieService.kt
│ │ │ │ │ ├── binding
│ │ │ │ │ └── RecyclerViewBinding.kt
│ │ │ │ │ ├── database
│ │ │ │ │ ├── MovieDao.kt
│ │ │ │ │ └── MovieDatabase.kt
│ │ │ │ │ └── model
│ │ │ │ │ ├── Movie.kt
│ │ │ │ │ └── PopularMoviesResponse.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_details.xml
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── view_movie_item.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ ├── LiveDataUtil.kt
│ │ │ │ ├── MovieRepositoryTest.kt
│ │ │ │ └── MovieViewModelTest.kt
│ │ │ └── resources
│ │ │ └── mockito-extensions
│ │ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Exercise15.03
│ ├── .gitignore
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── popularmovies
│ │ │ ├── ExampleInstrumentedTest.kt
│ │ │ └── MovieWorkerTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── ic_launcher-playstore.png
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── popularmovies
│ │ │ │ ├── DetailsActivity.kt
│ │ │ │ ├── MainActivity.kt
│ │ │ │ ├── MovieAdapter.kt
│ │ │ │ ├── MovieApplication.kt
│ │ │ │ ├── MovieRepository.kt
│ │ │ │ ├── MovieViewModel.kt
│ │ │ │ ├── MovieWorker.kt
│ │ │ │ ├── api
│ │ │ │ └── MovieService.kt
│ │ │ │ ├── binding
│ │ │ │ └── RecyclerViewBinding.kt
│ │ │ │ ├── database
│ │ │ │ ├── MovieDao.kt
│ │ │ │ └── MovieDatabase.kt
│ │ │ │ └── model
│ │ │ │ ├── Movie.kt
│ │ │ │ └── PopularMoviesResponse.kt
│ │ └── res
│ │ │ ├── drawable
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── layout
│ │ │ ├── activity_details.xml
│ │ │ ├── activity_main.xml
│ │ │ └── view_movie_item.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ └── test
│ │ ├── java
│ │ └── com
│ │ │ └── example
│ │ │ └── popularmovies
│ │ │ ├── LiveDataUtil.kt
│ │ │ ├── MovieRepositoryTest.kt
│ │ │ └── MovieViewModelTest.kt
│ │ └── resources
│ │ └── mockito-extensions
│ │ └── org.mockito.plugins.MockMaker
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Chapter16
├── Activity16.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── passwordgenerator
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── passwordgenerator
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── OutputActivity.kt
│ │ │ └── res
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_output.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ └── ic_launcher.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_monochrome.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_monochrome.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_monochrome.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_monochrome.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_launcher_background.png
│ │ │ │ ├── ic_launcher_foreground.png
│ │ │ │ └── ic_launcher_monochrome.png
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ └── motion_scene.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── passwordgenerator
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise16.01
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tipcalculator
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── tipcalculator
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── OutputActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_output.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── tipcalculator
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise16.02
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tipcalculator
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── tipcalculator
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── OutputActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_output.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── tipcalculator
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise16.03
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tipcalculator
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── tipcalculator
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── OutputActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_output.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ └── motion_scene.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── tipcalculator
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── Exercise16.04
│ ├── .gitignore
│ ├── app
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src
│ │ │ ├── androidTest
│ │ │ └── java
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tipcalculator
│ │ │ │ └── ExampleInstrumentedTest.kt
│ │ │ ├── main
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── ic_launcher-playstore.png
│ │ │ ├── java
│ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── tipcalculator
│ │ │ │ │ ├── MainActivity.kt
│ │ │ │ │ └── OutputActivity.kt
│ │ │ └── res
│ │ │ │ ├── drawable
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ │ ├── layout
│ │ │ │ ├── activity_main.xml
│ │ │ │ └── activity_output.xml
│ │ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── ic_launcher_background.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── themes.xml
│ │ │ │ └── xml
│ │ │ │ └── motion_scene.xml
│ │ │ └── test
│ │ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── tipcalculator
│ │ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ │ └── wrapper
│ │ │ ├── gradle-wrapper.jar
│ │ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
└── Tip Calculator
│ ├── .gitignore
│ ├── app
│ ├── .gitignore
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ │ ├── androidTest
│ │ └── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── tipcalculator
│ │ │ └── ExampleInstrumentedTest.kt
│ │ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── ic_launcher-playstore.png
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── tipcalculator
│ │ │ │ ├── MainActivity.kt
│ │ │ │ └── OutputActivity.kt
│ │ └── res
│ │ │ ├── drawable
│ │ │ ├── ic_launcher_background.xml
│ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── layout
│ │ │ ├── activity_main.xml
│ │ │ └── activity_output.xml
│ │ │ ├── mipmap-anydpi-v26
│ │ │ ├── ic_launcher.xml
│ │ │ └── ic_launcher_round.xml
│ │ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ │ └── values
│ │ │ ├── colors.xml
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── strings.xml
│ │ │ └── themes.xml
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── example
│ │ └── tipcalculator
│ │ └── ExampleUnitTest.kt
│ ├── build.gradle
│ ├── gradle.properties
│ ├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── LICENSE
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | local.properties
3 |
4 |
5 |
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/.idea/.name:
--------------------------------------------------------------------------------
1 | Colors
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Activity1.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Activity1.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Activity1.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Activity1.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Activity1.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.02/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.03/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.04/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.04/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.04/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.04/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.04/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.05/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.05/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.05/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter01/Exercise1.05/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter01/Exercise1.05/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter02/Activity2.01_singleTop/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.01_singleTop/.idea/.name:
--------------------------------------------------------------------------------
1 | Login Activity
--------------------------------------------------------------------------------
/Chapter02/Activity2.01_singleTop/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.01_singleTop/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.01_singleTop/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Activity2.01_singleTop/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Activity2.01_singleTop/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter02/Activity2.02_standard/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.02_standard/.idea/.name:
--------------------------------------------------------------------------------
1 | Login Activity
--------------------------------------------------------------------------------
/Chapter02/Activity2.02_standard/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.02_standard/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.02_standard/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Activity2.02_standard/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Activity2.02_standard/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter02/Activity2.03_register_for_activity_result/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.03_register_for_activity_result/.idea/.name:
--------------------------------------------------------------------------------
1 | Login Activity
--------------------------------------------------------------------------------
/Chapter02/Activity2.03_register_for_activity_result/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.03_register_for_activity_result/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Activity2.03_register_for_activity_result/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/.idea/.name:
--------------------------------------------------------------------------------
1 | Activity Callbacks
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/.idea/ktlint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | false
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Activity Callbacks
3 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/.idea/.name:
--------------------------------------------------------------------------------
1 | Save and Restore
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.02/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/.idea/.name:
--------------------------------------------------------------------------------
1 | Save and Restore
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.03/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/.idea/.name:
--------------------------------------------------------------------------------
1 | Intents Introduction
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.04/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.04/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.04/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.04/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.04/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/.idea/.name:
--------------------------------------------------------------------------------
1 | Activity Results
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.05/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.05/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.05/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.05/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.05/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/.idea/.name:
--------------------------------------------------------------------------------
1 | Launch Modes
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.06/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.06/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.06/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter02/Exercise2.06/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter02/Exercise2.06/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/.idea/.name:
--------------------------------------------------------------------------------
1 | Planet Quiz
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Activity3.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Activity3.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Activity3.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Activity3.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Activity3.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/.idea/.name:
--------------------------------------------------------------------------------
1 | Fragment Lifecycle
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter03/Exercise3.02/.idea/.name:
--------------------------------------------------------------------------------
1 | Fragment Intro
--------------------------------------------------------------------------------
/Chapter03/Exercise3.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.02/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter03/Exercise3.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.02/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.02/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/.idea/.name:
--------------------------------------------------------------------------------
1 | Dual Pane Layouts
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.03/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/.idea/.name:
--------------------------------------------------------------------------------
1 | Dynamic Fragments
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.04/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.04/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.04/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.04/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.04/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/.idea/.name:
--------------------------------------------------------------------------------
1 | Jetpack Fragments
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.05/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.05/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.05/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter03/Exercise3.05/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter03/Exercise3.05/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/.idea/.name:
--------------------------------------------------------------------------------
1 | Navigation Activity
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Activity4.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Activity4.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Activity4.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Activity4.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Activity4.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/.idea/.name:
--------------------------------------------------------------------------------
1 | Navigation Drawer
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.01/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/.idea/.name:
--------------------------------------------------------------------------------
1 | Bottom Navigation
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.02/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/.idea/.name:
--------------------------------------------------------------------------------
1 | Tab Navigation
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/app/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/app/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/app/src/main/res/mipmap-xhdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.03/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter04/Exercise4.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter04/Exercise4.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter05/Activity5.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter05/Activity5.01/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Activity5.01/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Activity5.01/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Activity5.01/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Activity5.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Activity5.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Activity5.01/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Activity5.01/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Activity5.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | New York Weather
3 |
4 |
--------------------------------------------------------------------------------
/Chapter05/Activity5.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Activity5.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter05/Activity5.01/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='New York Weather'
3 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.01/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.01/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.01/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.01/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.01/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.01/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cat Agent Profile
3 |
4 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter05/Exercise5.01/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='Cat Agent Profile'
3 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/app/src/main/java/com/example/catagentprofile/model/CatBreedData.kt:
--------------------------------------------------------------------------------
1 | package com.example.catagentprofile.model
2 |
3 | data class CatBreedData(
4 | val name: String,
5 | val temperament: String
6 | )
7 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.02/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.02/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.02/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.02/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cat Agent Profile
3 |
4 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter05/Exercise5.02/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='Cat Agent Profile'
3 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/app/src/main/java/com/example/catagentprofile/ImageLoader.kt:
--------------------------------------------------------------------------------
1 | package com.example.catagentprofile
2 |
3 | import android.widget.ImageView
4 |
5 | interface ImageLoader {
6 | fun loadImage(imageUrl: String, imageView: ImageView)
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/app/src/main/java/com/example/catagentprofile/model/CatBreedData.kt:
--------------------------------------------------------------------------------
1 | package com.example.catagentprofile.model
2 |
3 | data class CatBreedData(
4 | val name: String,
5 | val temperament: String
6 | )
7 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.03/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.03/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.03/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.03/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cat Agent Profile
3 |
4 |
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter05/Exercise5.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter05/Exercise5.03/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='Cat Agent Profile'
3 |
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Activity6.01/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Activity6.01/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Activity6.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Activity6.01/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Recipe Book
3 |
4 |
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Activity6.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter06/Activity6.01/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name = "Recipe Book"
3 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.01/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.01/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.01/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.01/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.01/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.01/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My RecyclerView App
3 |
4 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter06/Exercise6.01/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='My RecyclerView App'
3 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/src/main/java/com/example/myrecyclerviewapp/ImageLoader.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp
2 |
3 | import android.widget.ImageView
4 |
5 | interface ImageLoader {
6 | fun loadImage(imageUrl: String, imageView: ImageView)
7 | }
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/src/main/java/com/example/myrecyclerviewapp/model/CatBreed.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class CatBreed {
4 | AmericanCurl,
5 | BalineseJavanese,
6 | ExoticShorthair
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/src/main/java/com/example/myrecyclerviewapp/model/Gender.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class Gender {
4 | Female,
5 | Male,
6 | Unknown
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.02/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.02/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.02/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.02/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | SCA - Secret Cat Agents
3 | Our Agents
4 |
5 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter06/Exercise6.02/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='My RecyclerView App'
3 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/src/main/java/com/example/myrecyclerviewapp/ImageLoader.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp
2 |
3 | import android.widget.ImageView
4 |
5 | interface ImageLoader {
6 | fun loadImage(imageUrl: String, imageView: ImageView)
7 | }
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/src/main/java/com/example/myrecyclerviewapp/model/CatBreed.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class CatBreed {
4 | AmericanCurl,
5 | BalineseJavanese,
6 | ExoticShorthair
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/src/main/java/com/example/myrecyclerviewapp/model/Gender.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class Gender {
4 | Female,
5 | Male,
6 | Unknown
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.03/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.03/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.03/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.03/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | SCA - Secret Cat Agents
3 | Cat photo
4 | Our Agents
5 |
6 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter06/Exercise6.03/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='My RecyclerView App'
3 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/src/main/java/com/example/myrecyclerviewapp/ImageLoader.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp
2 |
3 | import android.widget.ImageView
4 |
5 | interface ImageLoader {
6 | fun loadImage(imageUrl: String, imageView: ImageView)
7 | }
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/src/main/java/com/example/myrecyclerviewapp/model/CatBreed.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class CatBreed {
4 | AmericanCurl,
5 | BalineseJavanese,
6 | ExoticShorthair
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/src/main/java/com/example/myrecyclerviewapp/model/Gender.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class Gender {
4 | Female,
5 | Male,
6 | Unknown
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.04/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.04/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.04/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.04/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | SCA - Secret Cat Agents
3 | Cat photo
4 | Our Agents
5 |
6 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.04/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter06/Exercise6.04/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='My RecyclerView App'
3 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/src/main/java/com/example/myrecyclerviewapp/ImageLoader.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp
2 |
3 | import android.widget.ImageView
4 |
5 | interface ImageLoader {
6 | fun loadImage(imageUrl: String, imageView: ImageView)
7 | }
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/src/main/java/com/example/myrecyclerviewapp/model/CatBreed.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class CatBreed {
4 | AmericanCurl,
5 | BalineseJavanese,
6 | ExoticShorthair
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/src/main/java/com/example/myrecyclerviewapp/model/Gender.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class Gender {
4 | Female,
5 | Male,
6 | Unknown
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.05/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.05/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.05/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.05/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | SCA - Secret Cat Agents
3 | Cat photo
4 | Our Agents
5 |
6 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.05/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter06/Exercise6.05/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='My RecyclerView App'
3 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/app/src/main/java/com/example/myrecyclerviewapp/ImageLoader.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp
2 |
3 | import android.widget.ImageView
4 |
5 | interface ImageLoader {
6 | fun loadImage(imageUrl: String, imageView: ImageView)
7 | }
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/app/src/main/java/com/example/myrecyclerviewapp/model/CatBreed.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class CatBreed {
4 | AmericanCurl,
5 | BalineseJavanese,
6 | ExoticShorthair
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/app/src/main/java/com/example/myrecyclerviewapp/model/Gender.kt:
--------------------------------------------------------------------------------
1 | package com.example.myrecyclerviewapp.model
2 |
3 | enum class Gender {
4 | Female,
5 | Male,
6 | Unknown
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.06/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.06/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.06/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.06/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter06/Exercise6.06/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter06/Exercise6.06/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='My RecyclerView App'
3 |
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Activity7.1/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Activity7.1/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Activity7.1/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Activity7.1/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Activity7.1/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Parked Car Finder
3 | Map
4 |
5 |
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Activity7.1/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter07/Activity7.1/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name = "Parked Car Finder"
3 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.1/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.1/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.1/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.1/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.1/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cat Agent Deployer
3 | Map
4 |
5 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.1/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter07/Exercise7.1/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='Cat Agent Deployer'
3 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.2/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.2/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.2/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cat Agent Deployer
3 | Map
4 |
5 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.2/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter07/Exercise7.2/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='Cat Agent Deployer'
3 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.3/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.3/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.3/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.3/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.3/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cat Agent Deployer
3 | Map
4 |
5 |
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter07/Exercise7.3/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter07/Exercise7.3/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | rootProject.name='Cat Agent Deployer'
3 |
--------------------------------------------------------------------------------
/Chapter08/Activity08.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter08/Activity08.01/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Activity08.01/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Activity08.01/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Activity08.01/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Activity08.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Activity08.01/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Activity08.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Water Tracker
3 |
4 |
--------------------------------------------------------------------------------
/Chapter08/Activity08.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Activity08.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter08/Activity08.01/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name='My Water Tracker'
2 | include ':app'
3 |
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.1/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.1/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.1/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.1/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.1/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cat Agent Tracker
3 |
4 |
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.1/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter08/Exercise8.1/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name='Cat Agent Tracker'
2 | include ':app'
3 |
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.2/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.2/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.2/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.2/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.2/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Cat Agent Tracker
3 |
4 |
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter08/Exercise8.2/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter08/Exercise8.2/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name='Cat Agent Tracker'
2 | include ':app'
3 |
--------------------------------------------------------------------------------
/Chapter09/Activity09.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter09/Activity09.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter09/Activity09.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter09/Activity09.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter09/Activity09.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Activity09.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter09/Activity09.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Activity09.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter09/Activity09.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Activity09.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter09/Exercise09.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter09/Exercise09.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter09/Exercise09.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter09/Exercise09.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter09/Exercise09.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter09/Exercise09.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter09/Exercise09.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter09/Exercise09.02/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter09/Exercise09.02/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter09/Exercise09.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter09/Exercise09.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter09/Exercise09.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter09/Exercise09.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter09/Exercise09.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter09/Exercise09.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter09/Exercise09.03/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter09/Exercise09.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter09/Exercise09.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter09/Exercise09.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter09/Exercise09.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter09/Exercise09.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter09/Exercise09.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/app/src/main/java/com/android/testable/myapplication/Item.kt:
--------------------------------------------------------------------------------
1 | package com.android.testable.myapplication
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | @Parcelize
7 | data class Item(val text: String) : Parcelable
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Activity10.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Activity10.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/app/src/test/resources/robolectric.properties:
--------------------------------------------------------------------------------
1 | sdk=28
--------------------------------------------------------------------------------
/Chapter10/Activity10.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Activity10.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/app/src/test/resources/robolectric.properties:
--------------------------------------------------------------------------------
1 | sdk=32
--------------------------------------------------------------------------------
/Chapter10/Exercise10.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/app/src/androidTest/java/com/android/testable/myapplication/TestRandomizer.kt:
--------------------------------------------------------------------------------
1 | package com.android.testable.myapplication
2 |
3 | class TestRandomizer : Randomizer {
4 | override fun getTimeToWait(): Int {
5 | return 1
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Press Me
4 | Opened after %d seconds
5 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.04/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.04/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter10/Exercise10.04/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter10/Exercise10.04/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Activity11.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Activity11.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Add Note
4 | Total %d
5 |
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter11/Activity11.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Activity11.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter11/Exercise11.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter11/Exercise11.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter11/Exercise11.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter11/Exercise11.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter11/Exercise11.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Press Me
4 | Total %d
5 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Press Me
4 | Total %d
5 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.03/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.03/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter11/Exercise11.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter11/Exercise11.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/app/src/main/java/com/android/testable/myapplication/repository/DogUi.kt:
--------------------------------------------------------------------------------
1 | package com.android.testable.myapplication.repository
2 |
3 | data class DogUi(val url: String)
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Activity12.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Activity12.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter12/Activity12.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Activity12.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Exercise12.01/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Exercise12.01/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter12/Exercise12.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Exercise12.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter12/Exercise12.02/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.02/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter12/Exercise12.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter12/Exercise12.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Exercise12.02/app/src/main/res/mipmap-hdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter12/Exercise12.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Exercise12.02/app/src/main/res/mipmap-mdpi/ic_launcher.webp
--------------------------------------------------------------------------------
/Chapter12/Exercise12.02/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Exercise12.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/app/src/main/assets/my-app-file.txt:
--------------------------------------------------------------------------------
1 | This
2 | is
3 | a
4 | multiline
5 | text
6 | file
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | FileProvider
4 | SAF
5 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/app/src/main/res/xml/file_provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter12/Exercise12.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Exercise12.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter12/Exercise12.04/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.04/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter12/Exercise12.04/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.04/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.04/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter12/Exercise12.04/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Photo
4 | Video
5 |
--------------------------------------------------------------------------------
/Chapter12/Exercise12.04/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter12/Exercise12.04/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter12/Exercise12.04/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter13/Activity13.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter13/Activity13.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter13/Activity13.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Activity13.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Activity13.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter13/Activity13.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 |
--------------------------------------------------------------------------------
/Chapter13/Activity13.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter13/Activity13.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter13/Exercise13.01/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.01/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter13/Exercise13.01/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.01/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter13/Exercise13.01/app/src/main/java/com/android/testable/myapplication/NumberRepository.kt:
--------------------------------------------------------------------------------
1 | package com.android.testable.myapplication
2 |
3 | interface NumberRepository {
4 |
5 | fun generateNextNumber(): Int
6 | }
--------------------------------------------------------------------------------
/Chapter13/Exercise13.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Randomize
4 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter13/Exercise13.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter13/Exercise13.02/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.02/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter13/Exercise13.02/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.02/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter13/Exercise13.02/app/src/main/java/com/android/testable/myapplication/NumberRepository.kt:
--------------------------------------------------------------------------------
1 | package com.android.testable.myapplication
2 |
3 | interface NumberRepository {
4 |
5 | fun generateNextNumber(): Int
6 | }
--------------------------------------------------------------------------------
/Chapter13/Exercise13.02/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Randomize
4 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter13/Exercise13.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter13/Exercise13.03/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.03/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter13/Exercise13.03/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.03/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter13/Exercise13.03/app/src/main/java/com/android/testable/myapplication/NumberRepository.kt:
--------------------------------------------------------------------------------
1 | package com.android.testable.myapplication
2 |
3 | interface NumberRepository {
4 |
5 | fun generateNextNumber(): Int
6 | }
--------------------------------------------------------------------------------
/Chapter13/Exercise13.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Randomize
4 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter13/Exercise13.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter13/Exercise13.04/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /shelf/
3 | /workspace.xml
4 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.04/.idea/.name:
--------------------------------------------------------------------------------
1 | My Application
--------------------------------------------------------------------------------
/Chapter13/Exercise13.04/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.04/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.04/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter13/Exercise13.04/app/src/main/java/com/android/testable/myapplication/NumberRepository.kt:
--------------------------------------------------------------------------------
1 | package com.android.testable.myapplication
2 |
3 | interface NumberRepository {
4 |
5 | fun generateNextNumber(): Int
6 | }
--------------------------------------------------------------------------------
/Chapter13/Exercise13.04/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | My Application
3 | Randomize
4 |
--------------------------------------------------------------------------------
/Chapter13/Exercise13.04/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter13/Exercise13.04/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter14/Activity14.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter14/Activity14.01/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Activity14.01/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter14/Activity14.01/app/src/main/java/com/example/tvguide/model/TVResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.tvguide.model
2 |
3 | data class TVResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter14/Activity14.01/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter14/Activity14.01/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #03A9F4
4 |
--------------------------------------------------------------------------------
/Chapter14/Activity14.01/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter14/Activity14.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Activity14.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter14/Exercise14.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter14/Exercise14.01/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Exercise14.01/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter14/Exercise14.01/app/src/main/java/com/example/popularmovies/model/PopularMoviesResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies.model
2 |
3 | data class PopularMoviesResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter14/Exercise14.01/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.01/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFEB3B
4 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Popular Movies
3 |
4 | Overview: %s
5 | Movie Poster
6 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.01/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter14/Exercise14.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Exercise14.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter14/Exercise14.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter14/Exercise14.02/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Exercise14.02/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter14/Exercise14.02/app/src/main/java/com/example/popularmovies/model/PopularMoviesResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies.model
2 |
3 | data class PopularMoviesResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter14/Exercise14.02/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.02/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFEB3B
4 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.02/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Popular Movies
3 |
4 | Overview: %s
5 | Movie Poster
6 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.02/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter14/Exercise14.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Exercise14.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter14/Exercise14.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter14/Exercise14.03/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Exercise14.03/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter14/Exercise14.03/app/src/main/java/com/example/popularmovies/model/PopularMoviesResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies.model
2 |
3 | data class PopularMoviesResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter14/Exercise14.03/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.03/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFEB3B
4 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Popular Movies
3 |
4 | Overview: %s
5 | Movie Poster
6 |
--------------------------------------------------------------------------------
/Chapter14/Exercise14.03/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter14/Exercise14.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Exercise14.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Popular Movies/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/java/com/example/popularmovies/MovieApplication.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies
2 |
3 | import android.app.Application
4 |
5 | class MovieApplication : Application() {
6 |
7 | }
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/java/com/example/popularmovies/MovieRepository.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies
2 |
3 | import com.example.popularmovies.api.MovieService
4 |
5 | class MovieRepository(private val movieService: MovieService) {
6 |
7 | }
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/java/com/example/popularmovies/MovieViewModel.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies
2 |
3 | import androidx.lifecycle.ViewModel
4 |
5 | class MovieViewModel(private val movieRepository: MovieRepository) : ViewModel() {
6 |
7 | }
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/java/com/example/popularmovies/api/MovieService.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies.api
2 |
3 | interface MovieService {
4 |
5 | }
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/java/com/example/popularmovies/model/PopularMoviesResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies.model
2 |
3 | data class PopularMoviesResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFEB3B
4 |
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Popular Movies
3 |
4 | Overview: %s
5 | Movie Poster
6 |
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter14/Popular Movies/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter14/Popular Movies/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter15/Activity15.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter15/Activity15.01/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter15/Activity15.01/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter15/Activity15.01/app/src/main/java/com/example/tvguide/model/TVResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.tvguide.model
2 |
3 | data class TVResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter15/Activity15.01/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter15/Activity15.01/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #03A9F4
4 |
--------------------------------------------------------------------------------
/Chapter15/Activity15.01/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter15/Activity15.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter15/Activity15.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter15/Exercise15.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter15/Exercise15.01/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter15/Exercise15.01/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter15/Exercise15.01/app/src/main/java/com/example/popularmovies/model/PopularMoviesResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies.model
2 |
3 | data class PopularMoviesResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter15/Exercise15.01/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.01/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFEB3B
4 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.01/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Popular Movies
3 |
4 | Overview: %s
5 | Movie Poster
6 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.01/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter15/Exercise15.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter15/Exercise15.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter15/Exercise15.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter15/Exercise15.02/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter15/Exercise15.02/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter15/Exercise15.02/app/src/main/java/com/example/popularmovies/model/PopularMoviesResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies.model
2 |
3 | data class PopularMoviesResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter15/Exercise15.02/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.02/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFEB3B
4 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.02/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Popular Movies
3 |
4 | Overview: %s
5 | Movie Poster
6 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.02/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter15/Exercise15.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter15/Exercise15.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter15/Exercise15.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter15/Exercise15.03/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter15/Exercise15.03/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter15/Exercise15.03/app/src/main/java/com/example/popularmovies/model/PopularMoviesResponse.kt:
--------------------------------------------------------------------------------
1 | package com.example.popularmovies.model
2 |
3 | data class PopularMoviesResponse(
4 | val page: Int,
5 | val results: List
6 | )
--------------------------------------------------------------------------------
/Chapter15/Exercise15.03/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 | 16dp
3 |
4 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.03/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFEB3B
4 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.03/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Popular Movies
3 |
4 | Overview: %s
5 | Movie Poster
6 |
--------------------------------------------------------------------------------
/Chapter15/Exercise15.03/app/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker:
--------------------------------------------------------------------------------
1 | mock-maker-inline
--------------------------------------------------------------------------------
/Chapter15/Exercise15.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter15/Exercise15.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter16/Activity16.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter16/Activity16.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Activity16.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter16/Exercise16.01/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter16/Exercise16.01/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Exercise16.01/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter16/Exercise16.01/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #4CAF50
4 |
--------------------------------------------------------------------------------
/Chapter16/Exercise16.01/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Exercise16.01/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter16/Exercise16.02/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter16/Exercise16.02/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Exercise16.02/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter16/Exercise16.02/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #4CAF50
4 |
--------------------------------------------------------------------------------
/Chapter16/Exercise16.02/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Exercise16.02/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter16/Exercise16.03/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter16/Exercise16.03/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Exercise16.03/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter16/Exercise16.03/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #4CAF50
4 |
--------------------------------------------------------------------------------
/Chapter16/Exercise16.03/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Exercise16.03/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter16/Exercise16.04/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter16/Exercise16.04/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Exercise16.04/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter16/Exercise16.04/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #4CAF50
4 |
--------------------------------------------------------------------------------
/Chapter16/Exercise16.04/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Exercise16.04/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/Chapter16/Tip Calculator/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/Chapter16/Tip Calculator/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Tip Calculator/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/Chapter16/Tip Calculator/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #4CAF50
4 |
--------------------------------------------------------------------------------
/Chapter16/Tip Calculator/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PacktPublishing/How-to-Build-Android-Apps-with-Kotlin-Second-Edition/19dcdb8875b2af862b256d99e9e63b0c57055249/Chapter16/Tip Calculator/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------