├── .gitattributes ├── .gitignore ├── README.md └── ex ├── M2 ├── ImageDownloader │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── downloader │ │ │ │ ├── activities │ │ │ │ ├── ActivityBase.java │ │ │ │ ├── DownloadImageActivity.java │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ └── MainActivity.java │ │ │ │ └── utils │ │ │ │ ├── DownloadUtils.java │ │ │ │ ├── PermissionRequest.java │ │ │ │ ├── UiUtils.java │ │ │ │ └── UriUtils.java │ │ │ └── res │ │ │ ├── anim │ │ │ ├── fab_rotate_backward.xml │ │ │ └── fab_rotate_forward.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── download_image_activity.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── permissions.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── file_paths.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── ImageDownloaderBRD │ ├── .gitignore │ ├── app │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── downloader │ │ │ │ ├── activities │ │ │ │ ├── ActivityBase.java │ │ │ │ ├── DownloadImageActivity.java │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ └── MainActivity.java │ │ │ │ └── utils │ │ │ │ ├── DownloadUtils.java │ │ │ │ ├── PermissionRequest.java │ │ │ │ ├── UiUtils.java │ │ │ │ └── UriUtils.java │ │ │ └── res │ │ │ ├── anim │ │ │ ├── fab_rotate_backward.xml │ │ │ └── fab_rotate_forward.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── download_image_activity.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── permissions.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ └── file_paths.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── ImageDownloaderBRS │ ├── .gitignore │ ├── .idea │ │ ├── compiler.xml │ │ ├── encodings.xml │ │ ├── gradle.xml │ │ ├── misc.xml │ │ ├── modules.xml │ │ └── vcs.xml │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── downloader │ │ │ │ └── ApplicationTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── vandy │ │ │ │ │ └── mooc │ │ │ │ │ └── downloader │ │ │ │ │ ├── activities │ │ │ │ │ ├── ActivityBase.java │ │ │ │ │ ├── DownloadImageActivity.java │ │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ │ └── MainActivity.java │ │ │ │ │ ├── receivers │ │ │ │ │ └── DownloadReceiver.java │ │ │ │ │ └── utils │ │ │ │ │ ├── DownloadUtils.java │ │ │ │ │ ├── PermissionRequest.java │ │ │ │ │ ├── UiUtils.java │ │ │ │ │ └── UriUtils.java │ │ │ └── res │ │ │ │ ├── anim │ │ │ │ ├── fab_rotate_backward.xml │ │ │ │ └── fab_rotate_forward.xml │ │ │ │ ├── layout │ │ │ │ ├── activity_main.xml │ │ │ │ └── download_image_activity.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── permissions.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ │ └── xml │ │ │ │ └── file_paths.xml │ │ │ └── test │ │ │ └── java │ │ │ └── vandy │ │ │ └── mooc │ │ │ └── downloader │ │ │ └── ExampleUnitTest.java │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── MapFromContactsAsync │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── course │ │ │ │ └── examples │ │ │ │ └── ApplicationTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── vandy │ │ │ │ │ └── mooc │ │ │ │ │ └── mapfromcontactsasync │ │ │ │ │ ├── ContactAddressMapper.java │ │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ │ └── MapFromContactsAsyncActivity.java │ │ │ └── res │ │ │ │ ├── anim │ │ │ │ ├── fade_in.xml │ │ │ │ ├── fade_out.xml │ │ │ │ ├── path_morph.xml │ │ │ │ ├── path_morph_lg.xml │ │ │ │ ├── path_morph_lg_reverse.xml │ │ │ │ ├── path_morph_reverse.xml │ │ │ │ ├── slide_in_right.xml │ │ │ │ └── slide_out_left.xml │ │ │ │ ├── drawable │ │ │ │ ├── btn_background.xml │ │ │ │ ├── icon_add.xml │ │ │ │ ├── icon_morph.xml │ │ │ │ └── icon_morph_reverse.xml │ │ │ │ ├── layout │ │ │ │ └── main.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── test │ │ │ └── java │ │ │ └── course │ │ │ └── examples │ │ │ └── ExampleUnitTest.java │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── MapFromContactsHaMeR │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── course │ │ │ │ └── examples │ │ │ │ └── ApplicationTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── vandy │ │ │ │ │ └── mooc │ │ │ │ │ └── mapfromcontactshamer │ │ │ │ │ ├── ContactAddressMapper.java │ │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ │ └── MapFromContactsHaMeRActivity.java │ │ │ └── res │ │ │ │ ├── anim │ │ │ │ ├── fade_in.xml │ │ │ │ ├── fade_out.xml │ │ │ │ ├── path_morph.xml │ │ │ │ ├── path_morph_lg.xml │ │ │ │ ├── path_morph_lg_reverse.xml │ │ │ │ ├── path_morph_reverse.xml │ │ │ │ ├── slide_in_right.xml │ │ │ │ └── slide_out_left.xml │ │ │ │ ├── drawable │ │ │ │ ├── btn_background.xml │ │ │ │ ├── icon_add.xml │ │ │ │ ├── icon_morph.xml │ │ │ │ └── icon_morph_reverse.xml │ │ │ │ ├── layout │ │ │ │ └── main.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── test │ │ │ └── java │ │ │ └── course │ │ │ └── examples │ │ │ └── ExampleUnitTest.java │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── MapLocation │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── course │ │ │ │ └── maplocation │ │ │ │ └── ApplicationTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── vandy │ │ │ │ │ └── mooc │ │ │ │ │ └── maplocation │ │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ │ ├── MapLocationActivity.java │ │ │ │ │ └── UiUtils.java │ │ │ └── res │ │ │ │ ├── anim │ │ │ │ ├── fade_in.xml │ │ │ │ ├── fade_out.xml │ │ │ │ ├── path_morph.xml │ │ │ │ ├── path_morph_lg.xml │ │ │ │ ├── path_morph_lg_reverse.xml │ │ │ │ └── path_morph_reverse.xml │ │ │ │ ├── drawable │ │ │ │ ├── a_dummy.xml │ │ │ │ ├── btn_background.xml │ │ │ │ ├── dummy.xml │ │ │ │ ├── icon_add.xml │ │ │ │ ├── icon_morph.xml │ │ │ │ └── icon_morph_reverse.xml │ │ │ │ ├── layout │ │ │ │ └── main.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── test │ │ │ └── java │ │ │ └── course │ │ │ └── maplocation │ │ │ └── ExampleUnitTest.java │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── PingPongReceivers │ ├── .gitignore │ ├── .idea │ │ └── gradle.xml │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── pingpong │ │ │ │ ├── activities │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ └── MainActivity.java │ │ │ │ ├── receivers │ │ │ │ ├── PingReceiver.java │ │ │ │ └── PongReceiver.java │ │ │ │ └── utils │ │ │ │ └── UiUtils.java │ │ │ └── res │ │ │ ├── anim │ │ │ ├── fab_rotate_backward.xml │ │ │ └── fab_rotate_forward.xml │ │ │ ├── drawable │ │ │ └── ic_media_stop.png │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── permissions.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── PingPongReceiversEx │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── pingpong │ │ │ │ ├── activities │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ └── MainActivity.java │ │ │ │ ├── receivers │ │ │ │ ├── PingReceiver.java │ │ │ │ └── PongReceiver.java │ │ │ │ └── utils │ │ │ │ └── UiUtils.java │ │ │ └── res │ │ │ ├── anim │ │ │ ├── fab_rotate_backward.xml │ │ │ └── fab_rotate_forward.xml │ │ │ ├── drawable │ │ │ ├── ic_media_stop.png │ │ │ ├── idle.png │ │ │ ├── ping.png │ │ │ └── pong.png │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── permissions.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle └── README.md ├── M3 ├── HobbitContentProvider │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── hobbitcontentprovider │ │ │ │ ├── activities │ │ │ │ ├── HobbitActivity.java │ │ │ │ ├── HobbitOps.java │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ └── RaceFragment.java │ │ │ │ └── provider │ │ │ │ ├── CharacterContract.java │ │ │ │ ├── CharacterRecord.java │ │ │ │ ├── HobbitDatabaseHelper.java │ │ │ │ └── HobbitProvider.java │ │ │ └── res │ │ │ ├── anim │ │ │ ├── fade_in.xml │ │ │ └── fade_out.xml │ │ │ ├── drawable-hdpi │ │ │ └── icon.png │ │ │ ├── drawable-ldpi │ │ │ └── icon.png │ │ │ ├── drawable-mdpi │ │ │ └── icon.png │ │ │ ├── drawable │ │ │ ├── bagend.jpg │ │ │ ├── bear.JPG │ │ │ ├── dragon.jpg │ │ │ ├── dwarf.jpg │ │ │ ├── gandalf.jpg │ │ │ ├── hobbit.jpg │ │ │ └── human.jpg │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ ├── card_race.xml │ │ │ ├── content_main.xml │ │ │ ├── fragment_race.xml │ │ │ ├── fragment_race_item.xml │ │ │ └── hobbit_activity.xml │ │ │ ├── values-v21 │ │ │ └── styles.xml │ │ │ └── values │ │ │ ├── card_style.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── ImageDownloader │ ├── .gitignore │ ├── IS │ │ ├── .gitignore │ │ ├── app │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── proguard-rules.pro │ │ │ └── src │ │ │ │ ├── androidTest │ │ │ │ └── java │ │ │ │ │ └── vandy │ │ │ │ │ └── mooc │ │ │ │ │ └── downloader │ │ │ │ │ └── ApplicationTest.java │ │ │ │ ├── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java │ │ │ │ │ └── vandy │ │ │ │ │ │ └── mooc │ │ │ │ │ │ └── downloader │ │ │ │ │ │ ├── activities │ │ │ │ │ │ ├── ActivityBase.java │ │ │ │ │ │ ├── DownloadActivity.java │ │ │ │ │ │ └── LifecycleLoggingActivity.java │ │ │ │ │ │ ├── service │ │ │ │ │ │ └── DownloadService.java │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── DownloadUtils.java │ │ │ │ │ │ ├── PermissionRequest.java │ │ │ │ │ │ ├── UiUtils.java │ │ │ │ │ │ └── UriUtils.java │ │ │ │ └── res │ │ │ │ │ ├── anim │ │ │ │ │ ├── fab_rotate_backward.xml │ │ │ │ │ └── fab_rotate_forward.xml │ │ │ │ │ ├── layout │ │ │ │ │ └── activity_main.xml │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ │ ├── values-w820dp │ │ │ │ │ └── dimens.xml │ │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── dimens.xml │ │ │ │ │ ├── permissions.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ │ └── xml │ │ │ │ │ └── file_paths.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── downloader │ │ │ │ └── ExampleUnitTest.java │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle │ ├── README.md │ └── SS │ │ ├── .gitignore │ │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── downloader │ │ │ │ └── ApplicationTest.java │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ │ └── vandy │ │ │ │ │ └── mooc │ │ │ │ │ └── downloader │ │ │ │ │ ├── activities │ │ │ │ │ ├── ActivityBase.java │ │ │ │ │ ├── DownloadActivity.java │ │ │ │ │ └── LifecycleLoggingActivity.java │ │ │ │ │ ├── service │ │ │ │ │ └── DownloadService.java │ │ │ │ │ └── utils │ │ │ │ │ ├── DownloadUtils.java │ │ │ │ │ ├── PermissionRequest.java │ │ │ │ │ ├── UiUtils.java │ │ │ │ │ └── UriUtils.java │ │ │ └── res │ │ │ │ ├── anim │ │ │ │ ├── fab_rotate_backward.xml │ │ │ │ └── fab_rotate_forward.xml │ │ │ │ ├── layout │ │ │ │ └── activity_main.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values-w820dp │ │ │ │ └── dimens.xml │ │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── permissions.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ │ └── xml │ │ │ │ └── file_paths.xml │ │ │ └── test │ │ │ └── java │ │ │ └── vandy │ │ │ └── mooc │ │ │ └── downloader │ │ │ └── ExampleUnitTest.java │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ └── settings.gradle ├── MusicPlayer │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── musicplayer │ │ │ │ ├── activities │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ └── MusicActivity.java │ │ │ │ ├── service │ │ │ │ └── MusicService.java │ │ │ │ └── utils │ │ │ │ └── UiUtils.java │ │ │ └── res │ │ │ ├── anim │ │ │ ├── fab_rotate_backward.xml │ │ │ └── fab_rotate_forward.xml │ │ │ ├── drawable │ │ │ └── ic_media_stop.png │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── PingPongReceiverService │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── vandy │ │ │ │ └── mooc │ │ │ │ └── pingpong │ │ │ │ ├── activities │ │ │ │ ├── LifecycleLoggingActivity.java │ │ │ │ └── MainActivity.java │ │ │ │ ├── receiver │ │ │ │ └── PingReceiver.java │ │ │ │ ├── service │ │ │ │ └── PongService.java │ │ │ │ └── utils │ │ │ │ └── UiUtils.java │ │ │ └── res │ │ │ ├── anim │ │ │ ├── fab_rotate_backward.xml │ │ │ └── fab_rotate_forward.xml │ │ │ ├── drawable │ │ │ ├── ic_media_stop.png │ │ │ ├── idle.png │ │ │ ├── ping.png │ │ │ └── pong.png │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── values-w820dp │ │ │ └── dimens.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── permissions.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle └── UniqueIDGen │ ├── .gitignore │ ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── vandy │ │ │ └── mooc │ │ │ └── uniqueidgen │ │ │ ├── activities │ │ │ ├── LifecycleLoggingActivity.java │ │ │ └── UniqueIDGenActivity.java │ │ │ ├── services │ │ │ ├── LifecycleLoggingService.java │ │ │ ├── RequestHandler.java │ │ │ └── UniqueIDGenService.java │ │ │ └── views │ │ │ └── GeneratorView.java │ │ └── res │ │ ├── drawable │ │ ├── down_path.xml │ │ ├── filled_circle.xml │ │ ├── icon.png │ │ ├── output_path.xml │ │ ├── rect_border_layout.xml │ │ ├── rounded_rect_border_layout.xml │ │ ├── up_and_down_path.xml │ │ └── up_path.xml │ │ ├── layout │ │ ├── activity_main.xml │ │ ├── generator.xml │ │ └── main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-v21 │ │ └── styles.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Denote all files that are truly binary and should not be modified. 5 | *.png binary 6 | *.jpg binary 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Android App Development 2 | ======================= 3 | 4 | This repository contains examples for the Android App Development MOOC 5 | Specialization on the Coursera platform. 6 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .idea/ 3 | .DS_Store 4 | build/ 5 | captures/ 6 | # Gradle files 7 | .gradle/ 8 | local.properties 9 | proguard/ 10 | *.log 11 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 28 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.downloader" 8 | minSdkVersion 24 9 | targetSdkVersion 28 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation fileTree(dir: 'libs', include: ['*.jar']) 28 | testImplementation 'junit:junit:4.12' 29 | implementation 'androidx.appcompat:appcompat:1.0.0-beta01' 30 | implementation 'com.google.android.material:material:1.0.0-beta01' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/anim/fab_rotate_backward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/anim/fab_rotate_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/layout/download_image_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloader/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloader/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloader/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloader/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloader/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/values/permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This activity requires the following permissions: %1$s 5 | Permissions were granted. 6 | Permissions were not granted. 7 | OK 8 | 9 | 10 | To be able to download images and then display them using the Android Camera application, this application requires your permission to read and write to your external storage card. 11 | External storage read and write permissions have been granted. 12 | Downloader will not be able to download or display images. 13 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ImageDownloader 3 | DownLoadImageActivity 4 | Download Image 5 | https://www.dre.vanderbilt.edu/~schmidt/gifs/dougs-xsmall.jpg 6 | Please touch the floating action button to add a URL 7 | Enter URL (or press enter for default) 8 | Downloading... 9 | OK 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 12 | 13 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | google() 7 | } 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:3.3.1' 10 | 11 | // NOTE: Do not place your application dependencies here; they belong 12 | // in the individual module build.gradle files 13 | } 14 | } 15 | 16 | allprojects { 17 | repositories { 18 | google() 19 | jcenter() 20 | } 21 | } 22 | 23 | task clean(type: Delete) { 24 | delete rootProject.buildDir 25 | } 26 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | android.enableJetifier=true 20 | android.useAndroidX=true -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloader/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloader/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .idea/ 3 | .DS_Store 4 | build/ 5 | captures/ 6 | # Gradle files 7 | .gradle/ 8 | local.properties 9 | proguard/ 10 | *.log 11 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 28 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.downloader" 8 | minSdkVersion 24 9 | targetSdkVersion 28 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | implementation fileTree(dir: 'libs', include: ['*.jar']) 28 | testImplementation 'junit:junit:4.12' 29 | implementation 'androidx.appcompat:appcompat:1.0.0-beta01' 30 | implementation 'com.google.android.material:material:1.0.0-beta01' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/anim/fab_rotate_backward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/anim/fab_rotate_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/layout/download_image_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/values/permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This activity requires the following permissions: %s 5 | Permissions were granted. 6 | Permissions were not granted. 7 | OK 8 | 9 | 10 | To be able to download images and then display them using the Android Camera application, this application requires your permission to read and write to your external storage card. 11 | External storage read and write permissions have been granted. 12 | Downloader will not be able to download or display images. 13 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ImageDownloaderBR 3 | DownLoadImageActivity 4 | Download Image 5 | https://www.dre.vanderbilt.edu/~schmidt/gifs/dougs-xsmall.jpg 6 | Please touch the floating action button to add an address 7 | Enter URL (or press enter for default) 8 | Downloading... 9 | OK 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 12 | 13 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | android.enableJetifier=true 20 | android.useAndroidX=true -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRD/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | local.properties -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 15 | 16 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.downloader" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | testCompile 'junit:junit:4.12' 29 | compile 'com.android.support:appcompat-v7:24.2.1' 30 | compile 'com.android.support:design:24.2.1' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/androidTest/java/vandy/mooc/downloader/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package vandy.mooc.downloader; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/anim/fab_rotate_backward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/anim/fab_rotate_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/layout/download_image_activity.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | 15 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/values/permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This activity requires the following permissions: %1$s 5 | Permissions were granted. 6 | Permissions were not granted. 7 | OK 8 | 9 | 10 | To be able to download images and then display them using the Android Camera application, this application requires your permission to read and write to your external storage card. 11 | External storage read and write permissions have been granted. 12 | Downloader will not be able to download or display images. 13 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ImageDownloaderBR 3 | DownLoadImageActivity 4 | Download Image 5 | https://www.dre.vanderbilt.edu/~schmidt/gifs/dougs-xsmall.jpg 6 | Please touch the floating action button to add an address 7 | Enter URL (or press enter for default) 8 | Downloading... 9 | OK 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 12 | 13 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/app/src/test/java/vandy/mooc/downloader/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package vandy.mooc.downloader; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/ImageDownloaderBRS/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M2/ImageDownloaderBRS/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | local.properties -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "course.examples" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | } 21 | 22 | dependencies { 23 | compile fileTree(dir: 'libs', include: ['*.jar']) 24 | testCompile 'junit:junit:4.12' 25 | compile 'com.android.support:appcompat-v7:24.2.1' 26 | } 27 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/androidTest/java/course/examples/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package course.examples; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/anim/path_morph.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/anim/path_morph_lg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/anim/path_morph_lg_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/anim/path_morph_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/anim/slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/drawable/btn_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/drawable/icon_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 14 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/drawable/icon_morph.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/drawable/icon_morph_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 13 | 14 | 19 | 20 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsAsync/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #6C7F91 5 | #E22F84 6 | #7ABA34 7 | #5B852D 8 | #F2F2F2 9 | #7f101010 10 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MapFromContactsAsync 3 | Find Address 4 | Please touch the floating action button to select a contact 5 | Add button 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/app/src/test/java/course/examples/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package course.examples; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsAsync/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsAsync/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | local.properties -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "course.examples" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | 21 | compileOptions { 22 | targetCompatibility 1.8 23 | sourceCompatibility 1.8 24 | } 25 | } 26 | 27 | dependencies { 28 | compile fileTree(dir: 'libs', include: ['*.jar']) 29 | testCompile 'junit:junit:4.12' 30 | compile 'com.android.support:appcompat-v7:24.2.1' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/androidTest/java/course/examples/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package course.examples; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/anim/path_morph.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/anim/path_morph_lg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/anim/path_morph_lg_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/anim/path_morph_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/anim/slide_in_right.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/anim/slide_out_left.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/drawable/btn_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/drawable/icon_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 14 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/drawable/icon_morph.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/drawable/icon_morph_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsHaMeR/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #6C7F91 5 | #E22F84 6 | #7ABA34 7 | #5B852D 8 | #F2F2F2 9 | #7f101010 10 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MapFromContactsHaMeR 3 | Find Address 4 | Please touch the floating action button to select a contact 5 | Add button 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/app/src/test/java/course/examples/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package course.examples; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapFromContactsHaMeR/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M2/MapFromContactsHaMeR/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | local.properties -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "course.maplocation" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | 21 | compileOptions { 22 | targetCompatibility 1.8 23 | sourceCompatibility 1.8 24 | } 25 | } 26 | 27 | dependencies { 28 | compile fileTree(dir: 'libs', include: ['*.jar']) 29 | testCompile 'junit:junit:4.12' 30 | compile 'com.android.support:appcompat-v7:24.2.1' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\salimr\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/androidTest/java/course/maplocation/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package course.maplocation; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/anim/path_morph.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/anim/path_morph_lg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/anim/path_morph_lg_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/anim/path_morph_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/drawable/a_dummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/drawable/btn_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/drawable/dummy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/drawable/icon_add.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 14 | 19 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/drawable/icon_morph.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/drawable/icon_morph_reverse.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 10 | 13 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapLocation/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapLocation/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapLocation/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapLocation/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapLocation/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #6C7F91 5 | #E22F84 6 | #7ABA34 7 | #5B852D 8 | #F2F2F2 9 | #7f101010 10 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MapLocation 3 | Show Map 4 | Please touch the floating action button to add an address" 5 | 6 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/app/src/test/java/course/maplocation/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package course.maplocation; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /ex/M2/MapLocation/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ex/M2/MapLocation/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/MapLocation/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M2/MapLocation/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M2/MapLocation/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | local.properties 3 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.pingpong" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | testCompile 'junit:junit:4.12' 29 | compile 'com.android.support:appcompat-v7:24.2.1' 30 | compile 'com.android.support:design:24.2.1' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/anim/fab_rotate_backward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/anim/fab_rotate_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/drawable/ic_media_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceivers/app/src/main/res/drawable/ic_media_stop.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceivers/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceivers/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceivers/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceivers/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceivers/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/values/permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This activity requires the following permissions: %1$s 5 | Permissions were granted. 6 | Permissions were not granted. 7 | OK 8 | 9 | 10 | To be able to download images and then display them using the Android Camera application, this application requires your permission to read and write to your external storage card. 11 | External storage read and write permissions have been granted. 12 | Downloader will not be able to download or display images. 13 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | PingPongReceivers 3 | Please touch the floating action button to set the count 4 | Enter count (or return for default) 5 | OK 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | org.gradle.jvmargs=-Xmx1600M 20 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceivers/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceivers/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | local.properties -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.pingpong" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | testCompile 'junit:junit:4.12' 29 | compile 'com.android.support:appcompat-v7:24.2.1' 30 | compile 'com.android.support:design:24.2.1' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/anim/fab_rotate_backward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/anim/fab_rotate_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/drawable/ic_media_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/drawable/ic_media_stop.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/drawable/idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/drawable/idle.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/drawable/ping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/drawable/ping.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/drawable/pong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/drawable/pong.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/values/permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This activity requires the following permissions: %1$s 5 | Permissions were granted. 6 | Permissions were not granted. 7 | OK 8 | 9 | 10 | To be able to download images and then display them using the Android Camera application, this application requires your permission to read and write to your external storage card. 11 | External storage read and write permissions have been granted. 12 | Downloader will not be able to download or display images. 13 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | PingPongReceiversEx 3 | Please touch the floating action button to set the count 4 | Enter count (or return for default) 5 | OK 6 | 7 | 8 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | org.gradle.jvmargs=-Xmx1600M 20 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M2/PingPongReceiversEx/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M2/PingPongReceiversEx/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M2/README.md: -------------------------------------------------------------------------------- 1 | This repository contains examples for the second MOOC on "Android App 2 | Components: Intents, Activities, and Broadcast Receivers" in the 3 | Android App Development MOOC Specialization for the Coursera platform. 4 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.hobbitcontentprovider" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(include: ['*.jar'], dir: 'libs') 28 | compile 'com.android.support:appcompat-v7:24.2.1' 29 | compile 'com.android.support:design:24.2.1' 30 | compile 'com.android.support:recyclerview-v7:24.2.1' 31 | compile 'com.android.support:cardview-v7:24.2.1' 32 | testCompile 'junit:junit:4.12' 33 | compile 'com.facebook.stetho:stetho:1.4.2' 34 | } 35 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/anim/fade_in.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/anim/fade_out.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable-hdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable-hdpi/icon.png -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable-ldpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable-ldpi/icon.png -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable-mdpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable-mdpi/icon.png -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable/bagend.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable/bagend.jpg -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable/bear.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable/bear.JPG -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable/dragon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable/dragon.jpg -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable/dwarf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable/dwarf.jpg -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable/gandalf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable/gandalf.jpg -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable/hobbit.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable/hobbit.jpg -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/drawable/human.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/app/src/main/res/drawable/human.jpg -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/layout/fragment_race_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 256dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | HobbitContentProvider 4 | Add 5 | Delete 6 | Modify 7 | 8 | -------------------------------------------------------------------------------- /ex/M3/HobbitContentProvider/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 19 | 20 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/IS/app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 12 | 13 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/IS/app/src/test/java/vandy/mooc/downloader/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package vandy.mooc.downloader; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/IS/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/IS/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/IS/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/IS/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/IS/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/IS/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/README.md: -------------------------------------------------------------------------------- 1 | This folder contains the following material design-based 2 | implementations of an ImageDownloader app using Android Studio: 3 | 4 | IS -- This folder contains an ImageDownloader app that uses an 5 | intent service. 6 | 7 | SS -- This folder contains an ImageDownloader app that uses a started 8 | service. 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | local.properties 3 | 4 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.downloader" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | testCompile 'junit:junit:4.12' 29 | compile 'com.android.support:appcompat-v7:24.2.1' 30 | compile 'com.android.support:design:24.2.1' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/androidTest/java/vandy/mooc/downloader/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package vandy.mooc.downloader; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/anim/fab_rotate_backward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/anim/fab_rotate_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/SS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/values/permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This activity requires the following permissions: %1$s 5 | Permissions were granted. 6 | Permissions were not granted. 7 | OK 8 | 9 | 10 | To be able to download images and then display them using the Android Camera application, this application requires your permission to read and write to your external storage card. 11 | External storage read and write permissions have been granted. 12 | Downloader will not be able to download or display images. 13 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ImageDownloader 3 | Download Image 4 | https://www.dre.vanderbilt.edu/~schmidt/gifs/dougs-xsmall.jpg 5 | Please touch the floating action button to add a URL 6 | Enter URL (or press enter for default) 7 | Downloading... 8 | OK 9 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/main/res/xml/file_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 12 | 13 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/app/src/test/java/vandy/mooc/downloader/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package vandy.mooc.downloader; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/SS/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Sep 02 16:52:53 CDT 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip 7 | -------------------------------------------------------------------------------- /ex/M3/ImageDownloader/SS/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.musicplayer" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | testCompile 'junit:junit:4.12' 29 | compile 'com.android.support:appcompat-v7:24.2.1' 30 | compile 'com.android.support:design:24.2.1' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 18 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/anim/fab_rotate_backward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/anim/fab_rotate_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/drawable/ic_media_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/MusicPlayer/app/src/main/res/drawable/ic_media_stop.png -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/MusicPlayer/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/MusicPlayer/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/MusicPlayer/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/MusicPlayer/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/MusicPlayer/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MusicPlayer 3 | http://www.dre.vanderbilt.edu/~schmidt/little-wing.mp3 4 | Please touch the floating action button to add a URL 5 | Enter URL (or press enter for default) 6 | OK 7 | 8 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/MusicPlayer/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M3/MusicPlayer/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.pingpongreceiverservice" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | compileOptions { 21 | targetCompatibility 1.8 22 | sourceCompatibility 1.8 23 | } 24 | } 25 | 26 | dependencies { 27 | compile fileTree(dir: 'libs', include: ['*.jar']) 28 | testCompile 'junit:junit:4.12' 29 | compile 'com.android.support:appcompat-v7:24.2.1' 30 | compile 'com.android.support:design:24.2.1' 31 | } 32 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/anim/fab_rotate_backward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/anim/fab_rotate_forward.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/drawable/ic_media_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/drawable/ic_media_stop.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/drawable/idle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/drawable/idle.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/drawable/ping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/drawable/ping.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/drawable/pong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/drawable/pong.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/values/permissions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | This activity requires the following permissions: %1$s 5 | Permissions were granted. 6 | Permissions were not granted. 7 | OK 8 | 9 | 10 | To be able to download images and then display them using the Android Camera application, this application requires your permission to read and write to your external storage card. 11 | External storage read and write permissions have been granted. 12 | Downloader will not be able to download or display images. 13 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | PingPongReceiverService 3 | Please touch the floating action button to set the count 4 | Enter count (or return for default) 5 | OK 6 | 7 | 8 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | jcenter() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:3.3.1' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | google() 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true 19 | org.gradle.jvmargs=-Xmx1600M 20 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/PingPongReceiverService/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-bin.zip 6 | -------------------------------------------------------------------------------- /ex/M3/PingPongReceiverService/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | android { 4 | compileSdkVersion 24 5 | 6 | defaultConfig { 7 | applicationId "vandy.mooc.uniqueidgen" 8 | minSdkVersion 24 9 | targetSdkVersion 24 10 | versionCode 1 11 | versionName "1.0" 12 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 13 | vectorDrawables.useSupportLibrary = true 14 | } 15 | 16 | buildTypes { 17 | release { 18 | minifyEnabled false 19 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 20 | } 21 | } 22 | compileOptions { 23 | targetCompatibility 1.8 24 | sourceCompatibility 1.8 25 | } 26 | } 27 | 28 | dependencies { 29 | compile fileTree(dir: 'libs', include: ['*.jar']) 30 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 31 | exclude group: 'com.android.support', module: 'support-annotations' 32 | }) 33 | compile 'com.android.support:appcompat-v7:24.2.1' 34 | compile 'com.android.support:design:24.2.1' 35 | testCompile 'junit:junit:4.12' 36 | compile 'com.android.support.constraint:constraint-layout:1.+' 37 | } 38 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in C:\Users\Rounak\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/drawable/down_path.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 15 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/drawable/filled_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 8 | 9 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/drawable/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/UniqueIDGen/app/src/main/res/drawable/icon.png -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/drawable/output_path.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/drawable/rect_border_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/drawable/rounded_rect_border_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/drawable/up_and_down_path.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 14 | 15 | 20 | 21 | 22 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/drawable/up_path.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 13 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/UniqueIDGen/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/UniqueIDGen/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/UniqueIDGen/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/UniqueIDGen/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/UniqueIDGen/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | UUID Generator 3 | Settings 4 | Service 5 | Activity 6 | 00000000-0000-0000-0000-000000000000 7 | T1 8 | T2 9 | T3 10 | T4 11 | 12 | -------------------------------------------------------------------------------- /ex/M3/UniqueIDGen/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 14 |