-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 321df1e
Showing
60 changed files
with
3,528 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# Built application files | ||
*.apk | ||
*.aar | ||
*.ap_ | ||
*.aab | ||
|
||
# Files for the ART/Dalvik VM | ||
*.dex | ||
|
||
# Java class files | ||
*.class | ||
|
||
# Generated files | ||
bin/ | ||
gen/ | ||
out/ | ||
# Uncomment the following line in case you need and you don't have the release build type files in your app | ||
# release/ | ||
|
||
# Gradle files | ||
.gradle/ | ||
build/ | ||
|
||
# Local configuration file (sdk path, etc) | ||
local.properties | ||
|
||
# Proguard folder generated by Eclipse | ||
proguard/ | ||
|
||
# Log Files | ||
*.log | ||
|
||
# Android Studio Navigation editor temp files | ||
.navigation/ | ||
|
||
# Android Studio captures folder | ||
captures/ | ||
|
||
# IntelliJ | ||
*.iml | ||
.idea/workspace.xml | ||
.idea/tasks.xml | ||
.idea/gradle.xml | ||
.idea/assetWizardSettings.xml | ||
.idea/dictionaries | ||
.idea/libraries | ||
# Android Studio 3 in .gitignore file. | ||
.idea/caches | ||
.idea/modules.xml | ||
# Comment next line if keeping position of elements in Navigation Editor is relevant for you | ||
.idea/navEditor.xml | ||
|
||
# Keystore files | ||
# Uncomment the following lines if you do not want to check your keystore files in. | ||
#*.jks | ||
#*.keystore | ||
|
||
# External native build folder generated in Android Studio 2.2 and later | ||
.externalNativeBuild | ||
.cxx/ | ||
|
||
# Google Services (e.g. APIs or Firebase) | ||
# google-services.json | ||
|
||
# Freeline | ||
freeline.py | ||
freeline/ | ||
freeline_project_description.json | ||
|
||
# fastlane | ||
fastlane/report.xml | ||
fastlane/Preview.html | ||
fastlane/screenshots | ||
fastlane/test_output | ||
fastlane/readme.md | ||
|
||
# Version control | ||
vcs.xml | ||
|
||
# lint | ||
lint/intermediates/ | ||
lint/generated/ | ||
lint/outputs/ | ||
lint/tmp/ | ||
# lint/reports/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# Corona Virus Tracker -- up to date statistics that keep up with rapidly changing data | ||
|
||
Androidx, 15 to Android10, latest best practices @ google | ||
|
||
MVVM pattern with Paging, LiveData and Room, and Repository pattern are used to page in scraped | ||
data for the UI and also back-fill from the network as the user reaches the end of the list or | ||
LiveData detects a change. Covid data is as up to data as possible, but may change suddenly. | ||
Swipe to refresh is available on the toolbar to get the very latest data. | ||
|
||
`Room` to uses the `DataSource.Factory` as a positional data source and the Paging Boundary Callback | ||
API to get notified when the Paging library consumes the available local data. NetworkState implementation | ||
keeps track of network status. | ||
|
||
Cached content is always available on the device and the user will still have a good experience even if the network is slow / | ||
unavailable ---> OFFLINE_MODE! | ||
Glide caches images as long as they are initially loaded. | ||
|
||
|
||
### Libraries | ||
* [Androidx][] | ||
* [Android Architecture Components][arch] | ||
* [Retrofit][retrofit] for REST api communication | ||
* [Glide][glide] for image loading | ||
* [espresso][espresso] for UI tests | ||
* [mockito][mockito] for mocking in tests | ||
* [Retrofit Mock][retrofit-mock] for creating a fake API implementation for tests | ||
|
||
[mockwebserver]: https://github.com/square/okhttp/tree/master/mockwebserver | ||
[support-lib]: https://developer.android.com/topic/libraries/support-library/index.html | ||
[arch]: https://developer.android.com/arch | ||
[espresso]: https://google.github.io/android-testing-support-library/docs/espresso/ | ||
[retrofit]: http://square.github.io/retrofit | ||
[glide]: https://github.com/bumptech/glide | ||
[mockito]: http://site.mockito.org | ||
[retrofit-mock]: https://github.com/square/retrofit/tree/master/retrofit-mock |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
/* | ||
* Copyright (C) 2017 The Android Open Source Project | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
apply plugin: 'com.android.application' | ||
|
||
apply plugin: 'kotlin-android' | ||
|
||
apply plugin: 'kotlin-android-extensions' | ||
|
||
apply plugin: 'kotlin-kapt' | ||
|
||
android { | ||
compileSdkVersion build_versions.compile_sdk | ||
buildToolsVersion build_versions.build_tools | ||
defaultConfig { | ||
applicationId "com.droidteahouse.coronavirustracker" | ||
minSdkVersion build_versions.min_sdk | ||
targetSdkVersion build_versions.target_sdk | ||
versionCode 1 | ||
versionName "1.0" | ||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||
} | ||
buildTypes { | ||
release { | ||
minifyEnabled true | ||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | ||
} | ||
} | ||
compileOptions { | ||
sourceCompatibility JavaVersion.VERSION_1_8 | ||
targetCompatibility JavaVersion.VERSION_1_8 | ||
} | ||
kotlinOptions { | ||
jvmTarget = "1.8" | ||
} | ||
sourceSets { | ||
androidTest.java.srcDirs += "src/test-common/java" | ||
test.java.srcDirs += "src/test-common/java" | ||
} | ||
} | ||
|
||
|
||
dependencies { | ||
implementation fileTree(dir: 'libs', include: ['*.jar']) | ||
|
||
implementation 'androidx.appcompat:appcompat:1.0.2' | ||
|
||
kapt deps.room.compiler | ||
kapt deps.glide.compiler | ||
|
||
implementation deps.constraint_layout | ||
implementation deps.app_compat | ||
implementation deps.fragment.runtime_ktx | ||
implementation deps.recyclerview | ||
implementation deps.cardview | ||
implementation deps.material | ||
implementation deps.room.runtime | ||
implementation deps.lifecycle.livedata_ktx | ||
implementation deps.lifecycle.runtime | ||
implementation deps.paging_ktx | ||
implementation deps.kotlin.stdlib | ||
implementation deps.retrofit.runtime | ||
implementation deps.retrofit.gson | ||
implementation deps.retrofit.scalars | ||
implementation deps.okhttp_logging_interceptor | ||
implementation deps.glide.runtime | ||
implementation 'org.jsoup:jsoup:1.11.2' | ||
|
||
|
||
// Android Testing Support Library's runner and rules | ||
androidTestImplementation deps.atsl.core | ||
androidTestImplementation deps.atsl.runner | ||
androidTestImplementation deps.atsl.rules | ||
androidTestImplementation deps.arch_core.testing | ||
|
||
androidTestImplementation deps.junit | ||
androidTestImplementation deps.retrofit.mock | ||
androidTestImplementation deps.mockito.core | ||
androidTestImplementation deps.mockito.android | ||
|
||
testImplementation deps.junit | ||
testImplementation deps.retrofit.mock | ||
testImplementation deps.arch_core.testing | ||
testImplementation deps.mockito.core | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||
package="com.droidteahouse.coronaTracker"> | ||
|
||
<uses-permission android:name="android.permission.INTERNET" /> | ||
|
||
<application | ||
android:name="com.droidteahouse.coronaTracker.MyApplication" | ||
android:allowBackup="true" | ||
android:icon="@mipmap/ic_launcher" | ||
android:label="@string/app_name" | ||
android:roundIcon="@mipmap/ic_launcher_round" | ||
android:supportsRtl="true" | ||
android:theme="@style/AppTheme"> | ||
|
||
<activity android:name=".ui.CoronaTrackerActivity"> | ||
<intent-filter> | ||
<action android:name="android.intent.action.MAIN" /> | ||
<category android:name="android.intent.category.LAUNCHER" /> | ||
</intent-filter> | ||
|
||
|
||
</activity> | ||
</application> | ||
|
||
</manifest> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.