├── .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 |
5 |
6 |
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 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
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 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
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 |
3 |
4 |
5 |
11 |
12 |
19 |
20 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/ex/M3/HobbitContentProvider/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/HobbitContentProvider/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 |
--------------------------------------------------------------------------------
/ex/M3/HobbitContentProvider/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/HobbitContentProvider/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/ex/M3/HobbitContentProvider/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/HobbitContentProvider/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/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/IS/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/IS/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/IS/app/src/main/res/anim/fab_rotate_backward.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
11 |
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/anim/fab_rotate_forward.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/ImageDownloader/IS/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 16dp
6 |
7 |
--------------------------------------------------------------------------------
/ex/M3/ImageDownloader/IS/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/IS/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/IS/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
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 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/ex/M3/UniqueIDGen/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/UniqueIDGen/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/UniqueIDGen/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/douglascraigschmidt/Android-App-Development/1be96bcc227190eebecb07fb6cf838e0daeb679e/ex/M3/UniqueIDGen/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/ex/M3/UniqueIDGen/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/UniqueIDGen/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/ex/README.md:
--------------------------------------------------------------------------------
1 | This repository contains examples for the MOOCs in the Android App
2 | Development MOOC Specialization for the Coursera platform.
3 |
--------------------------------------------------------------------------------