[
  {
    "path": ".github/CODEOWNERS",
    "content": "* @PatilShreyas\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "# These are supported funding model platforms\n\ngithub: #\npatreon: # Replace with a single Patreon username\nopen_collective: # Replace with a single Open Collective username\nko_fi: # Replace with a single Ko-fi username\ntidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel\ncommunity_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry\nliberapay: # Replace with a single Liberapay username\nissuehunt: PatilShreyas\notechie: # Replace with a single Otechie username\ncustom: ['https://www.paypal.me/PatilShreyas99/']\n"
  },
  {
    "path": ".github/dependabot.yml",
    "content": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where the package manifests are located.\n# Please see the documentation for all configuration options:\n# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates\n\nversion: 2\nupdates:\n  - package-ecosystem: \"gradle\"\n    directory: \"/\"\n    schedule:\n      interval: \"daily\"\n"
  },
  {
    "path": ".github/workflows/Build.yml",
    "content": "name: Build\non: [push, pull_request]\n\njobs:\n  test:\n    name: Run Unit Tests\n    runs-on: ubuntu-18.04\n\n    steps:\n      - uses: actions/checkout@v1\n      - name: set up JDK 1.8\n        uses: actions/setup-java@v1\n        with:\n          java-version: 1.8\n\n      - name: Grant Permission to Execute\n        run: chmod +x gradlew\n\n      - name: Unit tests\n        run: bash ./gradlew test --stacktrace\n\n  apk:\n    name: Generate APK\n    runs-on: ubuntu-18.04\n\n    steps:\n      - uses: actions/checkout@v1\n      - name: set up JDK 1.8\n        uses: actions/setup-java@v1\n        with:\n          java-version: 1.8\n\n      - name: Grant Permission to Execute\n        run: chmod +x gradlew\n\n      - name: Build debug APK\n        run: bash ./gradlew assembleDebug --stacktrace\n      - name: Upload APK\n        uses: actions/upload-artifact@v1\n        with:\n          name: app\n          path: app/build/outputs/apk/debug/app-debug.apk\n"
  },
  {
    "path": ".gitignore",
    "content": "#built application files\n*.apk\n*.ap_\n\n# files for the dex VM\n*.dex\n\n# Java class files\n*.class\n\n# generated files\nbin/\ngen/\n\n# Local configuration file (sdk path, etc)\nlocal.properties\n\n# Windows thumbnail db\nThumbs.db\n\n# OSX files\n.DS_Store\n\n# Android Studio\n*.iml\n.idea\n#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.\n.gradle\nbuild/\n.navigation\ncaptures/\noutput.json\n\n#NDK\nobj/\n.externalNativeBuild"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to making participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, sex characteristics, gender identity and expression,\nlevel of experience, education, socio-economic status, nationality, personal\nappearance, race, religion, or sexual identity and orientation.\n\n## Our Standards\n\nExamples of behavior that contributes to creating a positive environment\ninclude:\n\n* Using welcoming and inclusive language\n* Being respectful of differing viewpoints and experiences\n* Gracefully accepting constructive criticism\n* Focusing on what is best for the community\n* Showing empathy towards other community members\n\nExamples of unacceptable behavior by participants include:\n\n* The use of sexualized language or imagery and unwelcome sexual attention or\n advances\n* Trolling, insulting/derogatory comments, and personal or political attacks\n* Public or private harassment\n* Publishing others' private information, such as a physical or electronic\n address, without explicit permission\n* Other conduct which could reasonably be considered inappropriate in a\n professional setting\n\n## Our Responsibilities\n\nProject maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior.\n\nProject maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful.\n\n## Scope\n\nThis Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at shreyaspatilg@gmail.com. All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately.\n\nProject maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,\navailable at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html\n\n[homepage]: https://www.contributor-covenant.org\n\nFor answers to common questions about this code of conduct, see\nhttps://www.contributor-covenant.org/faq\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "## Feeling Awesome! Thanks for thinking about this.\n\nYou can contribute us by filing issues, bugs and PRs.\n\n### Contributing:\n- Open issue regarding proposed change.\n- Repo owner will contact you there.\n- If your proposed change is approved, Fork this repo and do changes.\n- Open PR against latest `dev` branch. Add nice description in PR.\n- You're done!\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2020 Shreyas Patil\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "<p align=\"center\">\n  <img src=\"app/src/main/ic_launcher-playstore.png\" height=\"200\"/>\n</p>\n\n# COVID19 Notifier - India 🇮🇳\n\n![CI](https://github.com/PatilShreyas/Covid19-Notifier-IN/workflows/CI/badge.svg?branch=master)\n[![GitHub license](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n![GitHub downloads](https://img.shields.io/github/downloads/PatilShreyas/Covid19-Notifier-IN/total?color=blue&label=Downloads&logo=android&style=flat-square)\n![Github Followers](https://img.shields.io/github/followers/PatilShreyas?label=Follow&style=social)\n![GitHub stars](https://img.shields.io/github/stars/PatilShreyas/Covid19-Notifier-IN?style=social)\n![GitHub forks](https://img.shields.io/github/forks/PatilShreyas/Covid19-Notifier-IN?style=social)\n![Twitter Follow](https://img.shields.io/twitter/follow/imShreyasPatil?label=Follow&style=social)\n\n**Covid19 Notifier India** is a sample Android application 📱 built to demonstrate use of *Modern Android development* tools. Dedicated to all Android Developers with ❤️. \n\n***You can Install and test latest Covid19 Notifier app from below 👇***\n\n[![Covid19 App](https://img.shields.io/github/v/release/patilshreyas/covid19-notifier-in?color=%23FFFF&label=Download%20APK&logo=android)](https://github.com/patilshreyas/covid19-notifier-in/releases/latest/download/app-debug.apk)\n\n<table style=\"width:100%\">\n  <tr>\n    <th>Main Screen (Total Report)</th>\n    <th>Main Screen (State Report List)</th>\n    <th>Main Screen (Dark Mode 🌗)</th>\n    <th>Notification in the System Tray</th>\n  </tr>\n  <tr>\n    <td><img src=\"art/HomeScreen.jpg\"/></td>\n    <td><img src=\"art/HomeScreen-States.jpg\"/></td>\n    <td><img src=\"art/HomeScreen-Dark.jpg\"/></td>\n    <td><img src=\"art/notification.jpg\"/></td>\n  </tr>\n</table>\n\n## About\n- It simply loads **Total COVID19 cases in India** from [API](https://github.com/covid19india/api). \n- It notifies total cases of COVID19 in India after every 1 hours.\n- It shows the total cases of the District from every State.\n- Dark mode too 🌗.\n- It is offline capable (Using Cache) 😃.\n\n*It uses `PeriodicWorkManager` which is scheduled at the first run of an app. After that, `Worker` will execute after every one hour of interval and will show notification on Android's system tray.*\n\n## Built With 🛠\n- [Kotlin](https://kotlinlang.org/) - First class and official programming language for Android development.\n- [Coroutines](https://kotlinlang.org/docs/reference/coroutines-overview.html) - For asynchronous and more..\n- [Flow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/) - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.\n- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) - Collection of libraries that help you design robust, testable, and maintainable apps.\n  - [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) - Data objects that notify views when the underlying database changes.\n  - [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) - Stores UI-related data that isn't destroyed on UI changes. \n  - [ViewBinding](https://developer.android.com/topic/libraries/view-binding) - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.\n- [Koin](https://start.insert-koin.io/) - Dependency Injection Framework (Kotlin)\n- [Retrofit](https://square.github.io/retrofit/) - A type-safe HTTP client for Android and Java.\n- [Moshi](https://github.com/square/moshi) - A modern JSON library for Kotlin and Java.\n- [Moshi Converter](https://github.com/square/retrofit/tree/master/retrofit-converters/moshi) - A Converter which uses Moshi for serialization to and from JSON.\n- [WorkManager](https://developer.android.com/topic/libraries/architecture/workmanager) - The WorkManager API makes it easy to schedule deferrable, asynchronous tasks that are expected to run even if the app exits or device restarts.\n- [Material Components for Android](https://github.com/material-components/material-components-android) - Modular and customizable Material Design UI components for Android\n\n# Package Structure\n    \n    dev.shreyaspatil.covid19notify    # Root Package\n    .\n    ├── api                 # For API Service.\n    ├── model               # Model classes\n    ├── repository          # Repository to handle data from network using API.\n    ├── di                  # Dependency Injection     \n    |\n    ├── ui                  # Activity/View layer  \n    │   └── main            # Main Screen Activity, ViewModel and RecyclerView Adapters.\n    |\n    ├── utils               # Utility Classes / Kotlin extensions\n    └── worker              # Worker class.\n\n\n## Contribute\nIf you want to contribute to this project, you're always welcome!\nSee [Contributing Guidelines](CONTRIBUTING.md). \n\n## Credits\nThanks to [COVID19India.org](https://github.com/covid19india/api) for open-source API.\n\n## Contact\nIf you need any help, you can connect with me.\n\nVisit:- [shreyaspatil.dev](https://shreyaspatil.dev)\n\n## Contributed By:\n- [Shreyas Patil](https://shreyaspatil.dev) (Maintainer)\n- [Rohan Singh](https://twitter.com/zaraki596) (Contributer)\n\n## License\n```\nMIT License\n\nCopyright (c) 2020 Shreyas Patil\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n"
  },
  {
    "path": "app/.gitignore",
    "content": "/build\n"
  },
  {
    "path": "app/build.gradle",
    "content": "apply plugin: 'com.android.application'\napply plugin: 'kotlin-android'\napply plugin: 'kotlin-kapt'\napply plugin: 'kotlin-android-extensions'\n\nandroid {\n    compileSdkVersion 30\n    buildToolsVersion \"30.0.0\"\n\n    defaultConfig {\n        applicationId \"dev.shreyaspatil.covid19notify\"\n        minSdkVersion 21\n        targetSdkVersion 30\n        versionCode 4\n        versionName \"3.0\"\n\n        testInstrumentationRunner \"androidx.test.runner.AndroidJUnitRunner\"\n    }\n\n    viewBinding {\n        enabled = true\n    }\n\n    buildTypes {\n        release {\n            minifyEnabled false\n            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'\n        }\n    }\n\n    compileOptions {\n        sourceCompatibility JavaVersion.VERSION_1_8\n        targetCompatibility JavaVersion.VERSION_1_8\n    }\n\n    kotlinOptions {\n        jvmTarget = \"1.8\"\n    }\n}\n\ntasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {\n    kotlinOptions {\n        jvmTarget = \"1.8\"\n    }\n}\n\ndependencies {\n    def coroutines_version = '1.3.8'\n    def appcompat_version = '1.2.0'\n    def preference_version = '1.1.1'\n    def core_ktx_version = '1.3.2'\n    def constraintlayout_version = '2.0.4'\n    def swiperefreshlayout_version = '1.1.0'\n    def recyclerview_version = \"1.2.0-alpha03\"\n    def lifecycle_version = '2.2.0'\n    def material_design_version = '1.2.1'\n    def retrofit_version = '2.9.0'\n    def moshi_version = '1.11.0'\n    def workmanager_version = '2.4.0'\n    def koin_version = '2.1.6'\n\n    implementation fileTree(dir: 'libs', include: ['*.jar'])\n    implementation \"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version\"\n\n    // Coroutines\n    implementation \"org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version\"\n    implementation \"org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version\"\n\n    // Android\n    implementation \"androidx.appcompat:appcompat:$appcompat_version\"\n    implementation \"androidx.core:core-ktx:$core_ktx_version\"\n    implementation \"androidx.constraintlayout:constraintlayout:$constraintlayout_version\"\n    implementation \"androidx.swiperefreshlayout:swiperefreshlayout:$swiperefreshlayout_version\"\n    implementation \"androidx.recyclerview:recyclerview:$recyclerview_version\"\n    implementation \"androidx.preference:preference:$preference_version\"\n\n    // Architecture Components\n    implementation \"androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version\"\n    implementation \"androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version\"\n\n    // Material Design\n    implementation \"com.google.android.material:material:$material_design_version\"\n\n    // Retrofit\n    implementation \"com.squareup.retrofit2:retrofit:$retrofit_version\"\n\n    // Moshi\n    implementation \"com.squareup.moshi:moshi-kotlin:$moshi_version\"\n    implementation \"com.squareup.retrofit2:converter-moshi:$retrofit_version\"\n    kapt \"com.squareup.moshi:moshi-kotlin-codegen:$moshi_version\"\n\n    // WorkManager\n    implementation \"androidx.work:work-runtime-ktx:$workmanager_version\"\n\n    // Koin DI\n    implementation \"org.koin:koin-core:$koin_version\"\n    implementation \"org.koin:koin-android:$koin_version\"\n    implementation \"org.koin:koin-android-scope:$koin_version\"\n    implementation \"org.koin:koin-android-viewmodel:$koin_version\"\n\n    // Testing\n    testImplementation 'junit:junit:4.13'\n    androidTestImplementation 'androidx.test.ext:junit:1.1.2'\n    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'\n}\n"
  },
  {
    "path": "app/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguardFiles setting in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n\n# Uncomment this to preserve the line number information for\n# debugging stack traces.\n#-keepattributes SourceFile,LineNumberTable\n\n# If you keep the line number information, uncomment this to\n# hide the original source file name.\n#-renamesourcefileattribute SourceFile\n"
  },
  {
    "path": "app/src/androidTest/java/dev/shreyaspatil/covid19notify/ExampleInstrumentedTest.kt",
    "content": "package dev.shreyaspatil.covid19notify\n\nimport androidx.test.ext.junit.runners.AndroidJUnit4\nimport androidx.test.platform.app.InstrumentationRegistry\nimport org.junit.Assert.assertEquals\nimport org.junit.Test\nimport org.junit.runner.RunWith\n\n/**\n * Instrumented test, which will execute on an Android device.\n *\n * See [testing documentation](http://d.android.com/tools/testing).\n */\n@RunWith(AndroidJUnit4::class)\nclass ExampleInstrumentedTest {\n    @Test\n    fun useAppContext() {\n        // Context of the app under test.\n        val appContext = InstrumentationRegistry.getInstrumentation().targetContext\n        assertEquals(\"dev.shreyaspatil.covid19notify\", appContext.packageName)\n    }\n}\n"
  },
  {
    "path": "app/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    package=\"dev.shreyaspatil.covid19notify\">\n\n    <uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />\n    <uses-permission android:name=\"android.permission.INTERNET\" />\n\n    <application\n        android:name=\".CovidNotifyApp\"\n        android:allowBackup=\"false\"\n        android:icon=\"@mipmap/ic_launcher\"\n        android:label=\"@string/app_name\"\n        android:roundIcon=\"@mipmap/ic_launcher_round\"\n        android:supportsRtl=\"true\"\n        android:theme=\"@style/AppTheme\">\n\n        <activity\n            android:name=\".ui.details.StateDetailsActivity\"\n            android:parentActivityName=\".ui.main.MainActivity\"\n            android:screenOrientation=\"portrait\"\n            android:theme=\"@style/AppTheme.NoActionBar\"\n            tools:ignore=\"LockedOrientationActivity\" />\n\n        <activity\n            android:name=\".ui.main.MainActivity\"\n            android:screenOrientation=\"portrait\"\n            android:theme=\"@style/AppTheme.NoActionBar\"\n            tools:ignore=\"LockedOrientationActivity\">\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\" />\n\n                <category android:name=\"android.intent.category.LAUNCHER\" />\n            </intent-filter>\n        </activity>\n    </application>\n\n</manifest>"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/CovidNotifyApp.kt",
    "content": "package dev.shreyaspatil.covid19notify\n\nimport android.app.Application\nimport dev.shreyaspatil.covid19notify.di.networkModule\nimport dev.shreyaspatil.covid19notify.di.viewModelModule\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.FlowPreview\nimport kotlinx.coroutines.InternalCoroutinesApi\nimport org.koin.android.ext.koin.androidContext\nimport org.koin.core.context.startKoin\n\n@FlowPreview\n@ExperimentalCoroutinesApi\n@InternalCoroutinesApi\nclass CovidNotifyApp : Application() {\n    override fun onCreate() {\n        super.onCreate()\n        initKoin()\n    }\n\n    private fun initKoin() {\n        startKoin {\n            androidContext(applicationContext)\n            modules(networkModule, viewModelModule)\n        }\n    }\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/api/Covid19IndiaApiService.kt",
    "content": "package dev.shreyaspatil.covid19notify.api\n\nimport dev.shreyaspatil.covid19notify.model.StateDetailsResponse\nimport dev.shreyaspatil.covid19notify.model.StateResponse\nimport retrofit2.Response\nimport retrofit2.http.GET\n\ninterface Covid19IndiaApiService {\n\n    @GET(\"data.json\")\n    suspend fun getData(): Response<StateResponse>\n\n    @GET(\"v2/state_district_wise.json\")\n    suspend fun getStateDistrictData(): Response<List<StateDetailsResponse>>\n\n    companion object {\n        const val BASE_URL = \"https://api.covid19india.org/\"\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/di/NetworkModule.kt",
    "content": "package dev.shreyaspatil.covid19notify.di\n\nimport android.content.Context\nimport com.squareup.moshi.Moshi\nimport com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory\nimport dev.shreyaspatil.covid19notify.api.Covid19IndiaApiService\nimport dev.shreyaspatil.covid19notify.repository.CovidIndiaRepository\nimport dev.shreyaspatil.covid19notify.utils.isNetworkAvailable\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport okhttp3.Cache\nimport okhttp3.OkHttpClient\nimport org.koin.android.ext.koin.androidContext\nimport org.koin.dsl.module\nimport retrofit2.Retrofit\nimport retrofit2.converter.moshi.MoshiConverterFactory\n\n@ExperimentalCoroutinesApi\nval networkModule = module {\n    single {\n        Retrofit.Builder()\n            .baseUrl(Covid19IndiaApiService.BASE_URL)\n            .addConverterFactory(\n                MoshiConverterFactory.create(\n                    Moshi.Builder().add(KotlinJsonAdapterFactory()).build()\n                )\n            )\n            .client(getOkHttpClient(androidContext()))\n            .build()\n            .create(Covid19IndiaApiService::class.java)\n    }\n\n    single {\n        CovidIndiaRepository(get())\n    }\n}\n\nfun getOkHttpClient(context: Context): OkHttpClient {\n    val cacheSize = (5 * 1024 * 1024).toLong()\n    val myCache = Cache(context.cacheDir, cacheSize)\n\n    return OkHttpClient.Builder()\n        .cache(myCache)\n        .addInterceptor { chain ->\n            var request = chain.request()\n            request = if (isNetworkAvailable(context)!!)\n                request.newBuilder().header(\"Cache-Control\", \"public, max-age=\" + 5).build()\n            else\n                request.newBuilder().header(\n                    \"Cache-Control\",\n                    \"public, only-if-cached, max-stale=\" + 60 * 60 * 24 * 7\n                ).build()\n            chain.proceed(request)\n        }\n        .build()\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/di/ViewModelModule.kt",
    "content": "package dev.shreyaspatil.covid19notify.di\n\nimport dev.shreyaspatil.covid19notify.ui.details.StateDetailsViewModel\nimport dev.shreyaspatil.covid19notify.ui.main.MainViewModel\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.FlowPreview\nimport kotlinx.coroutines.InternalCoroutinesApi\nimport org.koin.android.viewmodel.dsl.viewModel\nimport org.koin.dsl.module\n\n@FlowPreview\n@ExperimentalCoroutinesApi\n@InternalCoroutinesApi\nval viewModelModule = module {\n    viewModel { MainViewModel(get()) }\n    viewModel { StateDetailsViewModel(get()) }\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/model/Details.kt",
    "content": "package dev.shreyaspatil.covid19notify.model\n\nimport android.os.Parcelable\nimport com.squareup.moshi.Json\nimport kotlinx.android.parcel.Parcelize\n\n@Parcelize\ndata class Details(\n    val active: String = \"0\",\n    val confirmed: String = \"0\",\n    val recovered: String = \"0\",\n    val deaths: String = \"0\",\n    val state: String = \"\",\n\n    @Json(name = \"statenotes\")\n    val stateNotes: String = \"\",\n\n    @Json(name = \"deltaconfirmed\")\n    val deltaConfirmed: String = \"0\",\n\n    @Json(name = \"deltarecovered\")\n    val deltaRecovered: String = \"0\",\n\n    @Json(name = \"deltadeaths\")\n    val deltaDeaths: String = \"0\",\n\n    @Json(name = \"lastupdatedtime\")\n    val lastUpdatedTime: String = \"\"\n\n) : Parcelable"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/model/StateDetails.kt",
    "content": "package dev.shreyaspatil.covid19notify.model\n\nimport android.os.Parcelable\nimport com.squareup.moshi.JsonClass\nimport kotlinx.android.parcel.Parcelize\n\n@Parcelize\n@JsonClass(generateAdapter = true)\ndata class StateDetailsResponse(\n    val districtData: List<DistrictData>,\n    val state: String\n) : Parcelable\n\n@Parcelize\n@JsonClass(generateAdapter = true)\ndata class DistrictData(\n    val confirmed: Int = 0,\n    val active: Int = 0,\n    val deceased: Int = 0,\n    val recovered: Int = 0,\n    val delta: Delta,\n    val notes: String = \"\",\n    val district: String = \"\"\n) : Parcelable\n\n@Parcelize\n@JsonClass(generateAdapter = true)\ndata class Delta(\n    val confirmed: Int = 0,\n    val active: Int = 0,\n    val deceased: Int = 0,\n    val recovered: Int = 0\n) : Parcelable"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/model/StateResponse.kt",
    "content": "package dev.shreyaspatil.covid19notify.model\n\nimport android.os.Parcelable\nimport com.squareup.moshi.Json\nimport kotlinx.android.parcel.Parcelize\n\n@Parcelize\ndata class StateResponse(\n    @Json(name = \"statewise\")\n    val stateWiseDetails: List<Details>\n) : Parcelable"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/repository/CovidIndiaRepository.kt",
    "content": "package dev.shreyaspatil.covid19notify.repository\n\nimport dev.shreyaspatil.covid19notify.api.Covid19IndiaApiService\nimport dev.shreyaspatil.covid19notify.model.StateDetailsResponse\nimport dev.shreyaspatil.covid19notify.model.StateResponse\nimport dev.shreyaspatil.covid19notify.utils.State\nimport kotlinx.coroutines.Dispatchers\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.FlowPreview\nimport kotlinx.coroutines.flow.Flow\nimport kotlinx.coroutines.flow.flowOn\nimport kotlinx.coroutines.flow.map\nimport retrofit2.Response\n\n@FlowPreview\n@ExperimentalCoroutinesApi\nclass CovidIndiaRepository(private val apiService: Covid19IndiaApiService) {\n\n    fun getData(): Flow<State<StateResponse>> {\n        return object : NetworkBoundRepository<StateResponse>() {\n            override suspend fun fetchFromRemote(): Response<StateResponse> = apiService.getData()\n        }.asFlow().flowOn(Dispatchers.IO)\n    }\n\n    fun getStateDetailsData(stateName: String): Flow<State<StateDetailsResponse>> {\n        return object : NetworkBoundRepository<List<StateDetailsResponse>>() {\n            override suspend fun fetchFromRemote(): Response<List<StateDetailsResponse>> =\n                apiService.getStateDistrictData()\n        }.asFlow().flowOn(Dispatchers.IO).map { state ->\n            when (state) {\n                is State.Loading -> State.loading()\n                is State.Success -> {\n                    val data = state.data.find { it.state == stateName }\n\n                    if (data != null) {\n                        State.success<StateDetailsResponse>(data)\n                    } else {\n                        State.error<StateDetailsResponse>(\"No data found of state '$stateName'\")\n                    }\n                }\n                is State.Error -> {\n                    State.error<StateDetailsResponse>(state.message)\n                }\n            }\n        }\n    }\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/repository/NetworkBoundRepository.kt",
    "content": "package dev.shreyaspatil.covid19notify.repository\n\nimport androidx.annotation.MainThread\nimport dev.shreyaspatil.covid19notify.utils.State\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.flow.flow\nimport retrofit2.Response\n\n@ExperimentalCoroutinesApi\nabstract class NetworkBoundRepository<T> {\n\n    fun asFlow() = flow<State<T>> {\n\n        // Emit Loading State\n        emit(State.loading())\n\n        try {\n            // Fetch latest data from remote\n            val apiResponse = fetchFromRemote()\n\n            // Parse body\n            val remotePosts = apiResponse.body()\n\n            // Check for response validation\n            if (apiResponse.isSuccessful && remotePosts != null) {\n                emit(State.success(remotePosts))\n            } else {\n                // Something went wrong! Emit Error state.\n                emit(State.error(apiResponse.message()))\n            }\n        } catch (e: Exception) {\n            // Exception occurred! Emit error\n            emit(State.error(\"Network error! Can't get latest data.\"))\n            e.printStackTrace()\n        }\n    }\n\n    @MainThread\n    protected abstract suspend fun fetchFromRemote(): Response<T>\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/ui/adapter/TotalAdapter.kt",
    "content": "package dev.shreyaspatil.covid19notify.ui.adapter\n\nimport android.view.LayoutInflater\nimport android.view.View\nimport android.view.ViewGroup\nimport androidx.recyclerview.widget.DiffUtil\nimport androidx.recyclerview.widget.ListAdapter\nimport androidx.recyclerview.widget.RecyclerView\nimport dev.shreyaspatil.covid19notify.databinding.ItemTotalBinding\nimport dev.shreyaspatil.covid19notify.model.Details\n\nclass TotalAdapter : ListAdapter<Details, TotalAdapter.TotalViewHolder>(DIFF_CALLBACK) {\n\n    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =\n        TotalViewHolder(\n            ItemTotalBinding.inflate(\n                LayoutInflater.from(parent.context),\n                parent,\n                false\n            )\n        )\n\n    override fun onBindViewHolder(holder: TotalViewHolder, position: Int) =\n        holder.bind(getItem(position))\n\n\n    class TotalViewHolder(private val binding: ItemTotalBinding) :\n        RecyclerView.ViewHolder(binding.root) {\n        fun bind(details: Details) {\n            binding.textConfirmed.text = details.confirmed\n            binding.textActive.text = details.active\n            binding.textRecovered.text = details.recovered\n            binding.textDeceased.text = details.deaths\n\n            // New Confirmed\n            details.deltaConfirmed.let {\n                if (it == \"0\") {\n                    binding.groupNewConfirmed.visibility = View.GONE\n                } else {\n                    binding.groupNewConfirmed.visibility = View.VISIBLE\n                    binding.textNewConfirmed.text = details.deltaConfirmed\n                }\n            }\n\n            // New Recovered\n            details.deltaRecovered.let {\n                if (it == \"0\") {\n                    binding.groupNewRecovered.visibility = View.GONE\n                } else {\n                    binding.groupNewRecovered.visibility = View.VISIBLE\n                    binding.textNewRecovered.text = details.deltaRecovered\n                }\n            }\n\n            // New Deaths\n            details.deltaDeaths.let {\n                if (it == \"0\") {\n                    binding.groupNewDeaths.visibility = View.GONE\n                } else {\n                    binding.groupNewDeaths.visibility = View.VISIBLE\n                    binding.textNewDeaths.text = details.deltaDeaths\n                }\n            }\n        }\n    }\n\n    companion object {\n        private val DIFF_CALLBACK = object : DiffUtil.ItemCallback<Details>() {\n            override fun areItemsTheSame(oldItem: Details, newItem: Details): Boolean =\n                oldItem.state == newItem.state\n\n            override fun areContentsTheSame(oldItem: Details, newItem: Details): Boolean =\n                oldItem == newItem\n\n        }\n    }\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/ui/details/StateDetailsActivity.kt",
    "content": "package dev.shreyaspatil.covid19notify.ui.details\n\nimport android.os.Bundle\nimport android.widget.Toast\nimport androidx.appcompat.app.AppCompatActivity\nimport androidx.lifecycle.Observer\nimport androidx.recyclerview.widget.MergeAdapter\nimport dev.shreyaspatil.covid19notify.R\nimport dev.shreyaspatil.covid19notify.databinding.ActivityStateDetailsBinding\nimport dev.shreyaspatil.covid19notify.model.Details\nimport dev.shreyaspatil.covid19notify.ui.adapter.TotalAdapter\nimport dev.shreyaspatil.covid19notify.ui.details.adapter.DistrictsAdapter\nimport dev.shreyaspatil.covid19notify.utils.State\nimport dev.shreyaspatil.covid19notify.utils.getPeriod\nimport dev.shreyaspatil.covid19notify.utils.toDateFormat\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.FlowPreview\nimport kotlinx.coroutines.InternalCoroutinesApi\nimport org.koin.android.viewmodel.ext.android.viewModel\n\n@FlowPreview\n@ExperimentalCoroutinesApi\n@InternalCoroutinesApi\nclass StateDetailsActivity : AppCompatActivity() {\n\n    private lateinit var binding: ActivityStateDetailsBinding\n\n    private val mStateTotalAdapter = TotalAdapter()\n    private val mDistrictAdapter = DistrictsAdapter()\n\n    private val adapter = MergeAdapter(mStateTotalAdapter, mDistrictAdapter)\n\n    private val viewModel: StateDetailsViewModel by viewModel()\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        binding = ActivityStateDetailsBinding.inflate(layoutInflater)\n        setContentView(binding.root)\n\n        initViews()\n        initData()\n\n    }\n\n    private fun getStateDetails(): Details? = intent.getParcelableExtra(KEY_STATE_DETAILS)\n\n    private fun initViews() {\n        setSupportActionBar(binding.appBarlayout.toolbar)\n        supportActionBar?.setDisplayHomeAsUpEnabled(true)\n        binding.recyclerState.adapter = adapter\n\n        val details: Details? = getStateDetails()\n\n        details?.let {\n            mStateTotalAdapter.submitList(listOf(it))\n\n            supportActionBar?.title = it.state\n            supportActionBar?.subtitle = getString(\n                R.string.text_last_updated,\n                getPeriod(\n                    it.lastUpdatedTime.toDateFormat()\n                )\n            )\n        }\n\n        binding.swipeRefreshLayout.setOnRefreshListener {\n            loadData(getStateDetails())\n        }\n    }\n\n    private fun initData() {\n        viewModel.stateCovidLiveDataDetails.observe(this, Observer { state ->\n            when (state) {\n                is State.Loading -> {\n                    binding.swipeRefreshLayout.isRefreshing = true\n                }\n                is State.Success -> {\n                    val list = state.data.districtData\n                    list.sortedByDescending { it.confirmed }.let { districtList ->\n                        mDistrictAdapter.submitList(districtList)\n                    }\n\n                    binding.swipeRefreshLayout.isRefreshing = false\n\n                }\n                is State.Error -> {\n                    binding.swipeRefreshLayout.isRefreshing = false\n                    Toast.makeText(applicationContext, state.message, Toast.LENGTH_LONG).show()\n                }\n\n            }\n        })\n\n        if (viewModel.stateCovidLiveDataDetails.value !is State.Success) {\n            loadData(getStateDetails())\n        }\n    }\n\n    private fun loadData(details: Details?) {\n        details?.state?.let {\n            viewModel.getDistrictData(it)\n        }\n    }\n\n    companion object {\n        const val KEY_STATE_DETAILS = \"key_state_details\"\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/ui/details/StateDetailsViewModel.kt",
    "content": "package dev.shreyaspatil.covid19notify.ui.details\n\nimport androidx.lifecycle.LiveData\nimport androidx.lifecycle.MutableLiveData\nimport androidx.lifecycle.ViewModel\nimport androidx.lifecycle.viewModelScope\nimport dev.shreyaspatil.covid19notify.model.StateDetailsResponse\nimport dev.shreyaspatil.covid19notify.repository.CovidIndiaRepository\nimport dev.shreyaspatil.covid19notify.utils.State\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.FlowPreview\nimport kotlinx.coroutines.InternalCoroutinesApi\nimport kotlinx.coroutines.flow.collect\nimport kotlinx.coroutines.launch\n\n@FlowPreview\n@ExperimentalCoroutinesApi\n@InternalCoroutinesApi\nclass StateDetailsViewModel(private val covidIndiaRepository: CovidIndiaRepository) : ViewModel() {\n\n    private val _stateCovidLiveData = MutableLiveData<State<StateDetailsResponse>>()\n\n    val stateCovidLiveDataDetails: LiveData<State<StateDetailsResponse>> = _stateCovidLiveData\n\n    fun getDistrictData(state: String) {\n        viewModelScope.launch {\n            covidIndiaRepository.getStateDetailsData(state).collect {\n                _stateCovidLiveData.value = it\n            }\n        }\n    }\n\n}\n"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/ui/details/adapter/DistrictsAdapter.kt",
    "content": "package dev.shreyaspatil.covid19notify.ui.details.adapter\n\nimport android.view.LayoutInflater\nimport android.view.View\nimport android.view.ViewGroup\nimport androidx.recyclerview.widget.DiffUtil\nimport androidx.recyclerview.widget.ListAdapter\nimport androidx.recyclerview.widget.RecyclerView\nimport dev.shreyaspatil.covid19notify.databinding.ItemDistrictBinding\nimport dev.shreyaspatil.covid19notify.model.DistrictData\n\nclass DistrictsAdapter :\n    ListAdapter<DistrictData, DistrictsAdapter.TotalViewHolder>(DIFF_CALLBACK) {\n\n    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = TotalViewHolder(\n        ItemDistrictBinding.inflate(\n            LayoutInflater.from(parent.context),\n            parent,\n            false\n        )\n    )\n\n    override fun onBindViewHolder(holder: TotalViewHolder, position: Int) =\n        holder.bind(getItem(position))\n\n\n    class TotalViewHolder(private val binding: ItemDistrictBinding) :\n        RecyclerView.ViewHolder(binding.root) {\n        fun bind(details: DistrictData) {\n            binding.textDistrictName.text = details.district\n            binding.textConfirmed.text = details.confirmed.toString()\n            binding.textActive.text = details.active.toString()\n            binding.textDeath.text = details.deceased.toString()\n            binding.textRecovered.text = details.recovered.toString()\n\n            // New Confirmed\n            details.delta.confirmed.let {\n                if (it == 0) {\n                    binding.groupStateNewConfirm.visibility = View.GONE\n                } else {\n                    binding.groupStateNewConfirm.visibility = View.VISIBLE\n                    binding.textDistrictNewConfirm.text = details.delta.confirmed.toString()\n                }\n            }\n            // New Recovered\n            details.delta.recovered.let {\n                if (it == 0) {\n                    binding.groupStateNewRecover.visibility = View.GONE\n                } else {\n                    binding.groupStateNewRecover.visibility = View.VISIBLE\n                    binding.textDistrictNewRecover.text = details.delta.recovered.toString()\n                }\n            }\n            // New Deaths\n            details.delta.deceased.let {\n                if (it == 0) {\n                    binding.groupStateNewDeaths.visibility = View.GONE\n                } else {\n                    binding.groupStateNewDeaths.visibility = View.VISIBLE\n                    binding.textDistrictNewDeath.text = details.delta.deceased.toString()\n                }\n            }\n            // Handling cases with notes\n            details.notes.let {\n                if (it.isBlank()) {\n                    binding.textNotes.visibility = View.GONE\n                } else {\n                    binding.textNotes.visibility = View.VISIBLE\n                    binding.textNotes.text = details.notes\n                }\n            }\n        }\n    }\n\n    companion object {\n        private val DIFF_CALLBACK = object : DiffUtil.ItemCallback<DistrictData>() {\n            override fun areItemsTheSame(oldItem: DistrictData, newItem: DistrictData): Boolean =\n                oldItem.district == newItem.district\n\n            override fun areContentsTheSame(oldItem: DistrictData, newItem: DistrictData): Boolean =\n                oldItem == newItem\n        }\n    }\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/ui/main/MainActivity.kt",
    "content": "package dev.shreyaspatil.covid19notify.ui.main\n\nimport android.content.Intent\nimport android.os.Bundle\nimport android.view.Menu\nimport android.view.MenuItem\nimport android.widget.Toast\nimport androidx.appcompat.app.AppCompatActivity\nimport androidx.appcompat.app.AppCompatDelegate\nimport androidx.lifecycle.Observer\nimport androidx.recyclerview.widget.MergeAdapter\nimport androidx.work.*\nimport com.google.android.material.snackbar.Snackbar\nimport dev.shreyaspatil.covid19notify.R\nimport dev.shreyaspatil.covid19notify.databinding.ActivityMainBinding\nimport dev.shreyaspatil.covid19notify.model.Details\nimport dev.shreyaspatil.covid19notify.ui.adapter.TotalAdapter\nimport dev.shreyaspatil.covid19notify.ui.details.StateDetailsActivity\nimport dev.shreyaspatil.covid19notify.ui.main.adapter.ItemAdapter\nimport dev.shreyaspatil.covid19notify.utils.*\nimport dev.shreyaspatil.covid19notify.worker.NotificationWorker\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.FlowPreview\nimport kotlinx.coroutines.InternalCoroutinesApi\nimport org.koin.android.viewmodel.ext.android.viewModel\nimport java.util.concurrent.TimeUnit\n\n@FlowPreview\n@ExperimentalCoroutinesApi\n@InternalCoroutinesApi\nclass MainActivity : AppCompatActivity() {\n\n    private lateinit var binding: ActivityMainBinding\n\n    private val viewModel: MainViewModel by viewModel()\n\n    private val mTotalAdapter = TotalAdapter()\n    private val mStateAdapter = ItemAdapter(this::navigateToStateDetailsActivity)\n    private val adapter = MergeAdapter(mTotalAdapter, mStateAdapter)\n\n    // Useful when back navigation is pressed.\n    private var backPressedTime = 0L\n    private val backSnackbar by lazy {\n        Snackbar.make(binding.root, BACK_PRESSED_MESSAGE, Snackbar.LENGTH_SHORT)\n    }\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n\n        binding = ActivityMainBinding.inflate(layoutInflater)\n        setContentView(binding.root)\n\n        initViews()\n        initData()\n        initWorker()\n    }\n\n    private fun initViews() {\n        setSupportActionBar(binding.appBarlayout.toolbar)\n\n        binding.recycler.adapter = adapter\n\n        binding.swipeRefreshLayout.setOnRefreshListener {\n            loadData()\n        }\n    }\n\n    override fun onCreateOptionsMenu(menu: Menu?): Boolean {\n        menuInflater.inflate(R.menu.toolbar_menu, menu)\n        return true\n    }\n\n    override fun onOptionsItemSelected(item: MenuItem): Boolean {\n        return when (item.itemId) {\n            R.id.menu_uimode -> {\n                val uiMode = if (isDarkTheme()) {\n                    AppCompatDelegate.MODE_NIGHT_NO\n                } else {\n                    AppCompatDelegate.MODE_NIGHT_YES\n                }\n                applyTheme(uiMode)\n                true\n            }\n            else -> super.onOptionsItemSelected(item)\n        }\n\n    }\n\n    private fun initData() {\n        viewModel.covidLiveData.observe(this, Observer { state ->\n            when (state) {\n                is State.Loading -> binding.swipeRefreshLayout.isRefreshing = true\n                is State.Error -> {\n                    binding.swipeRefreshLayout.isRefreshing = false\n                    Toast.makeText(applicationContext, state.message, Toast.LENGTH_LONG).show()\n                }\n                is State.Success -> {\n                    binding.swipeRefreshLayout.isRefreshing = false\n\n                    val list = state.data.stateWiseDetails\n                    mTotalAdapter.submitList(list.subList(0, 1))\n                    mStateAdapter.submitList(list.subList(1, list.size - 1))\n\n                    // Set Last Updated Time\n                    supportActionBar?.subtitle = getString(\n                        R.string.text_last_updated,\n                        getPeriod(\n                            list[0].lastUpdatedTime.toDateFormat()\n                        )\n                    )\n                }\n            }\n        })\n\n        if (viewModel.covidLiveData.value !is State.Success) {\n            loadData()\n        }\n    }\n\n    private fun loadData() {\n        viewModel.getData()\n    }\n\n    private fun navigateToStateDetailsActivity(details: Details) {\n        startActivity(Intent(this, StateDetailsActivity::class.java).apply {\n            putExtra(StateDetailsActivity.KEY_STATE_DETAILS, details)\n        })\n    }\n\n    private fun initWorker() {\n        val constraints = Constraints.Builder()\n            .setRequiredNetworkType(NetworkType.CONNECTED)\n            .build()\n\n        val notificationWorkRequest =\n            PeriodicWorkRequestBuilder<NotificationWorker>(1, TimeUnit.HOURS)\n                .setConstraints(constraints)\n                .build()\n\n        WorkManager.getInstance(applicationContext).enqueueUniquePeriodicWork(\n            JOB_TAG,\n            ExistingPeriodicWorkPolicy.KEEP,\n            notificationWorkRequest\n        )\n    }\n\n    override fun onBackPressed() {\n        if (backPressedTime + 2000 > System.currentTimeMillis()) {\n            backSnackbar.dismiss()\n            super.onBackPressed()\n            return\n        } else {\n            backSnackbar.show()\n        }\n        backPressedTime = System.currentTimeMillis()\n    }\n\n    companion object {\n        const val JOB_TAG = \"notificationWorkTag\"\n        const val BACK_PRESSED_MESSAGE = \"Press back again to exit\"\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/ui/main/MainViewModel.kt",
    "content": "package dev.shreyaspatil.covid19notify.ui.main\n\nimport androidx.lifecycle.LiveData\nimport androidx.lifecycle.MutableLiveData\nimport androidx.lifecycle.ViewModel\nimport androidx.lifecycle.viewModelScope\nimport dev.shreyaspatil.covid19notify.model.StateResponse\nimport dev.shreyaspatil.covid19notify.repository.CovidIndiaRepository\nimport dev.shreyaspatil.covid19notify.utils.State\nimport kotlinx.coroutines.ExperimentalCoroutinesApi\nimport kotlinx.coroutines.FlowPreview\nimport kotlinx.coroutines.InternalCoroutinesApi\nimport kotlinx.coroutines.flow.collect\nimport kotlinx.coroutines.launch\n\n@FlowPreview\n@ExperimentalCoroutinesApi\n@InternalCoroutinesApi\nclass MainViewModel(private val repository: CovidIndiaRepository) : ViewModel() {\n\n    private val _covidLiveData = MutableLiveData<State<StateResponse>>()\n\n    val covidLiveData: LiveData<State<StateResponse>> = _covidLiveData\n\n    fun getData() {\n        viewModelScope.launch {\n            repository.getData().collect {\n                _covidLiveData.value = it\n            }\n        }\n    }\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/ui/main/adapter/ItemAdapter.kt",
    "content": "package dev.shreyaspatil.covid19notify.ui.main.adapter\n\nimport android.view.LayoutInflater\nimport android.view.View\nimport android.view.ViewGroup\nimport androidx.recyclerview.widget.DiffUtil\nimport androidx.recyclerview.widget.ListAdapter\nimport androidx.recyclerview.widget.RecyclerView\nimport dev.shreyaspatil.covid19notify.R\nimport dev.shreyaspatil.covid19notify.databinding.ItemStateBinding\nimport dev.shreyaspatil.covid19notify.model.Details\nimport dev.shreyaspatil.covid19notify.utils.getPeriod\nimport dev.shreyaspatil.covid19notify.utils.toDateFormat\n\nclass ItemAdapter(val clickListener: (stateDetails: Details) -> Unit = {}) :\n    ListAdapter<Details, ItemAdapter.StateViewHolder>(DIFF_CALLBACK) {\n\n    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = StateViewHolder(\n        ItemStateBinding.inflate(\n            LayoutInflater.from(parent.context),\n            parent,\n            false\n        )\n    )\n\n    override fun onBindViewHolder(holder: StateViewHolder, position: Int) =\n        holder.bind(getItem(position))\n\n\n    inner class StateViewHolder(private val binding: ItemStateBinding) :\n        RecyclerView.ViewHolder(binding.root) {\n\n        fun bind(details: Details) {\n            binding.textState.text = details.state\n            binding.textLastUpdatedView.text = itemView.context.getString(\n                R.string.text_last_updated,\n                getPeriod(\n                    details.lastUpdatedTime.toDateFormat()\n                )\n            )\n\n            binding.textConfirmed.text = details.confirmed\n            binding.textActive.text = details.active\n            binding.textRecovered.text = details.recovered\n            binding.textDeath.text = details.deaths\n\n            // New Confirmed\n            details.deltaConfirmed.let {\n                if (it == \"0\") {\n                    binding.groupStateNewConfirm.visibility = View.GONE\n                } else {\n                    binding.groupStateNewConfirm.visibility = View.VISIBLE\n                    binding.textStateNewConfirm.text = it\n                }\n            }\n\n            // New Recovered\n            details.deltaRecovered.let {\n                if (it == \"0\") {\n                    binding.groupStateNewRecover.visibility = View.GONE\n                } else {\n                    binding.groupStateNewRecover.visibility = View.VISIBLE\n                    binding.textStateNewRecover.text = it\n                }\n            }\n\n            // New Deaths\n            details.deltaDeaths.let {\n                if (it == \"0\") {\n                    binding.groupStateNewDeaths.visibility = View.GONE\n                } else {\n                    binding.groupStateNewDeaths.visibility = View.VISIBLE\n                    binding.textStateNewDeath.text = it\n                }\n            }\n\n            // Set Click Listener\n            binding.root.setOnClickListener {\n                if (bindingAdapterPosition == RecyclerView.NO_POSITION) {\n                    return@setOnClickListener\n                }\n\n                val item = getItem(bindingAdapterPosition)\n                item.let {\n                    clickListener.invoke(it)\n                }\n            }\n        }\n    }\n\n    companion object {\n        private val DIFF_CALLBACK = object : DiffUtil.ItemCallback<Details>() {\n            override fun areItemsTheSame(oldItem: Details, newItem: Details): Boolean =\n                oldItem.state == newItem.state\n\n            override fun areContentsTheSame(oldItem: Details, newItem: Details): Boolean =\n                oldItem == newItem\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/utils/NetworkUtils.kt",
    "content": "package dev.shreyaspatil.covid19notify.utils\n\nimport android.content.Context\nimport android.net.ConnectivityManager\nimport android.net.NetworkInfo\n\nfun isNetworkAvailable(context: Context): Boolean? {\n    var isConnected: Boolean? = false // Initial Value\n    val connectivityManager =\n        context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager\n    val activeNetwork: NetworkInfo? = connectivityManager.activeNetworkInfo\n    if (activeNetwork != null && activeNetwork.isConnected)\n        isConnected = true\n    return isConnected\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/utils/State.kt",
    "content": "package dev.shreyaspatil.covid19notify.utils\n\nsealed class State<T> {\n    class Loading<T> : State<T>()\n    data class Success<T>(val data: T) : State<T>()\n    data class Error<T>(val message: String) : State<T>()\n\n    companion object {\n        fun <T> loading() = Loading<T>()\n\n        fun <T> success(data: T) = Success(data)\n\n        fun <T> error(message: String) = Error<T>(message)\n    }\n}"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/utils/ThemeUtils.kt",
    "content": "package dev.shreyaspatil.covid19notify.utils\n\nimport android.content.res.Configuration\nimport androidx.appcompat.app.AppCompatActivity\nimport androidx.appcompat.app.AppCompatDelegate\nimport java.util.*\n\nfun applyTheme(theme: Int) {\n    AppCompatDelegate.setDefaultNightMode(theme)\n}\n\n/**\n * Returns if currently dark theme is active or not.\n */\nfun AppCompatActivity.isDarkTheme(): Boolean {\n    return (resources.configuration.uiMode and\n            Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES)\n}\n\n/**\n * Returns [Boolean] based on current time.\n * Returns true if hours are between 06:00 pm - 07:00 am\n */\nfun isNight(): Boolean {\n    val currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY)\n    return (currentHour <= 7 || currentHour >= 18)\n}\n"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/utils/TimeUtils.kt",
    "content": "package dev.shreyaspatil.covid19notify.utils\n\nimport android.annotation.SuppressLint\nimport java.text.SimpleDateFormat\nimport java.util.*\nimport java.util.concurrent.TimeUnit\n\n/**\n * Represents past time in text.\n * For e.g. 1 Minutes ago, 1 hour 0 minutes ago.\n */\n@SuppressLint(\"SimpleDateFormat\")\nfun getPeriod(past: Date): String {\n    val now = Date()\n    val seconds = TimeUnit.MILLISECONDS.toSeconds(now.time - past.time)\n    val minutes = TimeUnit.MILLISECONDS.toMinutes(now.time - past.time)\n    val hours = TimeUnit.MILLISECONDS.toHours(now.time - past.time)\n\n    return when {\n        seconds < 60 -> {\n            \"Few seconds ago\"\n        }\n        minutes < 60 -> {\n            \"$minutes minutes ago\"\n        }\n        hours < 24 -> {\n            \"$hours hour ${minutes % 60} min ago\"\n        }\n        else -> {\n            SimpleDateFormat(\"dd/MM/yy, hh:mm a\").format(past).toString()\n        }\n    }\n}\n\n/**\n * Parses String to \"dd/MM/yyyy HH:mm:ss\" date and time format.\n */\n@SuppressLint(\"SimpleDateFormat\")\nfun String.toDateFormat(): Date {\n    return SimpleDateFormat(\"dd/MM/yyyy HH:mm:ss\")\n        .parse(this)\n}\n"
  },
  {
    "path": "app/src/main/java/dev/shreyaspatil/covid19notify/worker/NotificationWorker.kt",
    "content": "package dev.shreyaspatil.covid19notify.worker\n\nimport android.annotation.SuppressLint\nimport android.app.NotificationChannel\nimport android.app.NotificationManager\nimport android.app.PendingIntent\nimport android.content.Context\nimport android.content.Intent\nimport android.media.RingtoneManager\nimport android.os.Build\nimport android.util.Log\nimport androidx.core.app.NotificationCompat\nimport androidx.core.content.ContextCompat\nimport androidx.work.CoroutineWorker\nimport androidx.work.WorkerParameters\nimport dev.shreyaspatil.covid19notify.R\nimport dev.shreyaspatil.covid19notify.model.StateResponse\nimport dev.shreyaspatil.covid19notify.repository.CovidIndiaRepository\nimport dev.shreyaspatil.covid19notify.ui.main.MainActivity\nimport dev.shreyaspatil.covid19notify.utils.State\nimport dev.shreyaspatil.covid19notify.utils.getPeriod\nimport dev.shreyaspatil.covid19notify.utils.toDateFormat\nimport kotlinx.coroutines.*\nimport kotlinx.coroutines.flow.toList\nimport org.koin.core.KoinComponent\nimport org.koin.core.get\n\n@FlowPreview\n@ExperimentalCoroutinesApi\n@InternalCoroutinesApi\nclass NotificationWorker(\n    private val context: Context,\n    params: WorkerParameters\n) : CoroutineWorker(context, params), KoinComponent {\n\n    @SuppressLint(\"StringFormatInvalid\")\n    private fun showNotification(totalCount: String, time: String) {\n        val intent = Intent(context, MainActivity::class.java)\n        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)\n        val pendingIntent = PendingIntent.getActivity(\n            context, 0, intent,\n            PendingIntent.FLAG_ONE_SHOT\n        )\n\n        val channelId = context.getString(R.string.default_notification_channel_id)\n        val channelName = context.getString(R.string.default_notification_channel_name)\n        val defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)\n        val notificationBuilder = NotificationCompat.Builder(context, channelId)\n            .setColor(ContextCompat.getColor(context, R.color.color_confirmed))\n            .setSmallIcon(R.drawable.ic_stat_notification_icon)\n            .setContentTitle(context.getString(R.string.text_confirmed_cases, totalCount))\n            .setContentText(context.getString(R.string.text_last_updated, time))\n            .setAutoCancel(true)\n            .setPriority(NotificationCompat.PRIORITY_HIGH)\n            .setSound(defaultSoundUri)\n            .setContentIntent(pendingIntent)\n\n        val notificationManager =\n            context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager\n\n        // Since android Oreo notification channel is needed.\n        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {\n            val channel = NotificationChannel(\n                channelId,\n                channelName,\n                NotificationManager.IMPORTANCE_HIGH\n            )\n            notificationManager.createNotificationChannel(channel)\n        }\n\n        notificationManager.notify(0, notificationBuilder.build())\n    }\n\n    override suspend fun doWork(): Result = coroutineScope {\n        Log.d(javaClass.simpleName, \"Worker Started!\")\n\n        val repository: CovidIndiaRepository = get()\n\n        val result = withContext(Dispatchers.Default) {\n            repository.getData().toList()\n        }.filterIsInstance<State.Success<StateResponse>>()\n\n        if (result.isNullOrEmpty()) {\n            Log.d(javaClass.simpleName, \"Work Failed. Retrying...\")\n            Result.retry()\n        } else {\n            val totalDetails = result[0].data.stateWiseDetails[0]\n\n            showNotification(\n                totalDetails.confirmed,\n                getPeriod(\n                    totalDetails.lastUpdatedTime.toDateFormat()\n                )\n            )\n            Log.d(javaClass.simpleName, \"Notification Displayed!\")\n            Log.d(javaClass.simpleName, \"Work Succeed...\")\n\n            Result.success()\n        }\n    }\n}\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_death.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"511.971\"\n    android:viewportHeight=\"511.971\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"m509.415,353.795c-1.465,-3.875 -5.795,-5.827 -9.668,-4.363 -3.874,1.465 -5.828,5.793 -4.363,9.668 2.813,7.441 1.854,15.824 -2.565,22.423 -4.837,7.223 -12.912,11.287 -21.62,10.889 -2.639,-0.136 -5.118,1.136 -6.58,3.318 -1.461,2.182 -1.675,4.969 -0.564,7.348 3.686,7.891 2.997,16.914 -1.841,24.137 -3.658,5.461 -9.224,9.171 -15.672,10.446 -6.448,1.276 -13.007,-0.037 -18.468,-3.695 -11.273,-7.551 -14.302,-22.866 -6.75,-34.141 0.626,-0.935 1.335,-1.847 2.107,-2.713 1.444,-1.619 2.117,-3.784 1.845,-5.936s-1.464,-4.082 -3.267,-5.289l-60.294,-40.387c7.083,-7.648 13.33,-15.998 18.639,-24.908l58.944,39.481c1.247,0.835 2.702,1.269 4.174,1.269 0.655,0 1.315,-0.086 1.959,-0.26 2.094,-0.567 3.84,-2.012 4.787,-3.963 0.509,-1.047 1.084,-2.051 1.71,-2.985 5.701,-8.511 16.22,-12.628 26.179,-10.245 4.028,0.965 8.076,-1.52 9.04,-5.548s-1.52,-8.076 -5.548,-9.04c-15.038,-3.597 -30.872,2.01 -40.347,14.028l-53.851,-36.07c8.96,-19.231 13.848,-40.439 13.848,-62.281 0,-15.463 -2.372,-30.567 -6.925,-44.902l46.926,-31.431c12.661,16.106 35.867,19.992 53.165,8.408 18.146,-12.154 23.02,-36.805 10.866,-54.95 -5.832,-8.707 -14.588,-14.568 -24.497,-16.688 1.811,-9.969 -0.275,-20.298 -6.107,-29.004 -5.888,-8.79 -14.846,-14.761 -25.225,-16.814 -10.378,-2.053 -20.935,0.06 -29.726,5.948 -8.79,5.888 -14.762,14.846 -16.814,25.225 -1.854,9.379 -0.308,18.905 4.353,27.14l-43.269,28.981c-1.83,-2.057 -3.716,-4.075 -5.67,-6.043 -27.665,-27.855 -64.512,-43.354 -103.754,-43.64 -0.37,-0.002 -0.738,-0.004 -1.107,-0.004 -21.239,0 -41.776,4.467 -61.056,13.282 -3.767,1.723 -5.424,6.172 -3.701,9.939 1.722,3.767 6.171,5.425 9.939,3.702 17.309,-7.915 35.745,-11.924 54.821,-11.924 0.33,0 0.663,0.002 0.994,0.004 35.257,0.257 68.363,14.182 93.221,39.21 24.869,25.04 38.565,58.268 38.565,93.562 0,47.471 -25.615,91.643 -66.851,115.278 -2.332,1.336 -3.77,3.819 -3.77,6.507v34.247c0,7.99 -6.5,14.491 -14.49,14.491h-5.756v-22.212c0,-4.142 -3.357,-7.5 -7.5,-7.5s-7.5,3.358 -7.5,7.5v22.212h-19.409v-22.212c0,-4.142 -3.357,-7.5 -7.5,-7.5s-7.5,3.358 -7.5,7.5v22.212h-19.409v-22.212c0,-4.142 -3.357,-7.5 -7.5,-7.5s-7.5,3.358 -7.5,7.5v22.212h-5.756c-7.99,0 -14.49,-6.5 -14.49,-14.491v-34.247c0,-2.688 -1.439,-5.171 -3.771,-6.507 -41.235,-23.635 -66.851,-67.807 -66.851,-115.277 0,-41.736 20.179,-81.619 53.978,-106.686 3.327,-2.467 4.023,-7.165 1.557,-10.492 -2.468,-3.327 -7.165,-4.023 -10.492,-1.556 -7.541,5.593 -14.461,11.859 -20.724,18.664l-40.312,-27c4.661,-8.235 6.207,-17.76 4.353,-27.14 -2.052,-10.379 -8.023,-19.337 -16.813,-25.225 -8.79,-5.887 -19.349,-7.998 -29.726,-5.948 -10.378,2.052 -19.336,8.023 -25.224,16.813 -5.832,8.707 -7.918,19.036 -6.107,29.004 -9.908,2.12 -18.665,7.981 -24.497,16.688 -12.153,18.145 -7.279,42.796 10.866,54.95 17.298,11.585 40.506,7.698 53.165,-8.408l42.975,28.785c-5.219,15.178 -7.998,31.234 -7.998,47.549 0,22.813 5.326,44.935 15.061,64.833l-50.039,33.516c-12.66,-16.105 -35.866,-19.992 -53.165,-8.408 -18.146,12.154 -23.02,36.805 -10.866,54.951 5.832,8.707 14.588,14.567 24.497,16.687 -1.81,9.969 0.275,20.298 6.107,29.004 5.888,8.79 14.846,14.761 25.225,16.814 2.588,0.512 5.186,0.764 7.766,0.764 7.767,0 15.361,-2.292 21.96,-6.712 17.297,-11.585 22.535,-34.527 12.46,-52.363l53.714,-35.978c5.599,4.719 11.568,9.061 17.901,12.946v29.977c0,16.261 13.229,29.491 29.49,29.491h95.33c16.261,0 29.49,-13.229 29.49,-29.491v-29.977c7.17,-4.399 13.88,-9.376 20.103,-14.835l56.535,37.868c-10.075,17.837 -4.837,40.778 12.46,52.363 6.599,4.42 14.192,6.712 21.96,6.712 2.579,0 5.179,-0.253 7.766,-0.764 10.379,-2.053 19.337,-8.024 25.225,-16.814 5.832,-8.707 7.918,-19.036 6.107,-29.004 9.908,-2.12 18.665,-7.981 24.497,-16.688 7.115,-10.62 8.66,-24.106 4.135,-36.075zM72.671,151.898c-1.802,-1.208 -4.041,-1.574 -6.133,-1.008 -2.094,0.567 -3.84,2.012 -4.787,3.963 -0.509,1.047 -1.084,2.051 -1.71,2.985 -7.551,11.273 -22.865,14.302 -34.14,6.751 -11.273,-7.551 -14.302,-22.866 -6.751,-34.14 4.838,-7.223 12.916,-11.29 21.62,-10.889 2.637,0.135 5.118,-1.136 6.58,-3.318 1.461,-2.182 1.675,-4.969 0.564,-7.348 -3.686,-7.891 -2.997,-16.914 1.841,-24.137 3.658,-5.461 9.224,-9.171 15.672,-10.446 6.447,-1.276 13.007,0.037 18.468,3.695s9.171,9.223 10.446,15.671 -0.037,13.007 -3.696,18.47c-0.626,0.935 -1.335,1.847 -2.107,2.713 -1.444,1.619 -2.117,3.784 -1.845,5.937 0.272,2.152 1.464,4.082 3.267,5.289l45.409,30.414c-6.244,8.338 -11.587,17.298 -15.951,26.708zM89.959,385.886c-1.803,1.207 -2.994,3.137 -3.267,5.289 -0.272,2.153 0.4,4.318 1.845,5.936 0.772,0.866 1.481,1.778 2.108,2.714 3.658,5.462 4.971,12.02 3.695,18.468 -1.275,6.448 -4.985,12.014 -10.446,15.671 -5.461,3.658 -12.024,4.97 -18.468,3.695 -6.448,-1.275 -12.014,-4.985 -15.672,-10.446 -4.838,-7.223 -5.526,-16.246 -1.841,-24.137 1.111,-2.379 0.897,-5.166 -0.564,-7.348s-3.978,-3.457 -6.58,-3.318c-8.702,0.398 -16.782,-3.666 -21.62,-10.889 -7.551,-11.274 -4.522,-26.589 6.751,-34.14s26.588,-4.523 34.141,6.752c0.625,0.934 1.2,1.938 1.709,2.984 0.947,1.951 2.693,3.396 4.787,3.963 2.091,0.565 4.33,0.198 6.133,-1.008l55.382,-37.095c5.48,8.814 11.874,17.067 19.113,24.59zM422.01,126.086c1.803,-1.207 2.994,-3.137 3.267,-5.289 0.273,-2.153 -0.4,-4.318 -1.845,-5.937 -0.772,-0.866 -1.482,-1.778 -2.108,-2.714 -3.658,-5.461 -4.971,-12.02 -3.695,-18.468 1.275,-6.448 4.985,-12.014 10.446,-15.671 5.461,-3.658 12.023,-4.971 18.468,-3.695 6.448,1.275 12.014,4.985 15.672,10.446 4.838,7.223 5.526,16.246 1.841,24.137 -1.111,2.379 -0.897,5.166 0.564,7.348 1.461,2.181 3.956,3.446 6.58,3.318 8.701,-0.391 16.782,3.666 21.62,10.889 7.551,11.273 4.522,26.588 -6.751,34.14 -11.274,7.551 -26.588,4.522 -34.141,-6.752 -0.625,-0.934 -1.2,-1.938 -1.709,-2.984 -0.947,-1.951 -2.693,-3.396 -4.787,-3.963 -2.094,-0.566 -4.331,-0.199 -6.133,1.008l-50.4,33.758c-4.16,-9.491 -9.341,-18.542 -15.475,-27.026z\" />\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"m195.53,227.435c-24.682,0 -44.762,20.08 -44.762,44.762s20.08,44.762 44.762,44.762 44.762,-20.08 44.762,-44.762 -20.08,-44.762 -44.762,-44.762zM195.53,301.959c-16.411,0 -29.762,-13.351 -29.762,-29.762s13.351,-29.762 29.762,-29.762 29.762,13.351 29.762,29.762 -13.351,29.762 -29.762,29.762z\" />\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"m310.348,316.959c24.682,0 44.762,-20.08 44.762,-44.762s-20.08,-44.762 -44.762,-44.762 -44.762,20.08 -44.762,44.762 20.08,44.762 44.762,44.762zM310.348,242.435c16.411,0 29.762,13.351 29.762,29.762s-13.351,29.762 -29.762,29.762 -29.762,-13.351 -29.762,-29.762 13.351,-29.762 29.762,-29.762z\" />\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"m253.605,311.749c-0.011,0 -0.022,0 -0.033,0 -1.988,0 -3.896,0.79 -5.303,2.197l-11.108,11.108c-2.93,2.929 -2.93,7.677 -0.001,10.606 1.465,1.465 3.384,2.197 5.304,2.197 1.919,0 3.839,-0.732 5.303,-2.197l5.758,-5.757 5.608,5.71c2.905,2.956 7.653,2.996 10.606,0.095 2.955,-2.903 2.997,-7.651 0.095,-10.607l-10.911,-11.108c-1.403,-1.427 -3.317,-2.235 -5.318,-2.244z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_heart.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"420.8\"\n    android:viewportHeight=\"420.8\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M413.6,204H378c14.8,-33.6 13.2,-60.8 7.6,-79.2c-9.6,-32.8 -42,-68.4 -90,-68.4c-12.8,0 -25.6,2.4 -38.8,7.2C234,72 218.8,81.2 212,86c-6.8,-4.8 -21.6,-14 -44.8,-22.4c-13.2,-4.8 -26.4,-7.2 -38.8,-7.2c-48,0 -80.4,35.6 -90,68.4c-5.6,19.6 -7.6,49.2 11.2,86.4H6.4c-3.6,0 -6.4,2.8 -6.4,6.4c0,3.6 2.8,6.4 6.4,6.4h50.8c2,3.6 4.4,7.2 7.2,10.8c41.6,60 132,125.2 148.4,129.2v0.4c0,0 0.4,0 0.8,-0.4c0.4,0 0.8,0 1.2,0v-0.4c14,-6.8 100.8,-62.8 146.4,-129.2c4.4,-6 8,-12 11.2,-18h42c3.6,0 6.4,-2.8 6.4,-6.4C420.8,206.4 417.2,204 413.6,204zM349.6,227.6c-42.4,62 -120.4,112 -137.2,122.8c-17.2,-10.8 -94.8,-61.2 -137.6,-122.8c-0.8,-1.2 -1.6,-2.4 -2.4,-3.6h58.8c2.4,0 4.8,-1.2 6,-3.6l26.8,-52.8l42,107.6c0.8,2.4 3.6,4 6,4c0,0 0,0 0.4,0c2.8,0 5.2,-2 6,-4.8l36.8,-126l19.6,63.6c0.8,2.4 2.8,4 5.2,4.4c2.4,0.4 4.8,-0.8 6.4,-2.8l15.6,-22.8l13.2,22.4c1.2,2 3.2,3.2 5.6,3.2h36C354.4,220.4 352,224 349.6,227.6zM364,204h-39.2l-16.4,-28c-1.2,-2 -3.2,-3.2 -5.6,-3.2c-2.4,0 -4.4,0.8 -5.6,2.8l-13.6,20l-22,-71.6c-0.8,-2.8 -3.6,-4.4 -6.4,-4.8c-2.8,0 -5.6,2 -6.4,4.8l-37.2,128.4l-40.4,-103.2c-0.8,-2.4 -3.2,-4 -5.6,-4c-2.8,0 -4.8,1.2 -6,3.6l-31.6,62H64.4c-16,-29.2 -20.4,-57.2 -13.2,-82.4c8.4,-28.4 36,-58.8 77.6,-58.8c11.2,0 22.8,2.4 34.4,6.4c29.2,10.8 44.8,23.2 45.2,23.2c2.4,2 5.6,2 8,0c0,0 15.6,-12.4 45.2,-23.2c11.6,-4.4 23.2,-6.4 34.4,-6.4c41.2,0 69.2,30.4 77.6,58.8C380.4,151.6 376.8,177.2 364,204z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_info.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"14dp\"\n        android:height=\"14dp\"\n        android:viewportWidth=\"24.0\"\n        android:viewportHeight=\"24.0\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_launcher_foreground.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"108dp\"\n    android:height=\"108dp\"\n    android:viewportWidth=\"330.02182\"\n    android:viewportHeight=\"330.02182\">\n    <group\n        android:translateX=\"74.43041\"\n        android:translateY=\"74.254906\">\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M153.428,154.513a3,3 0,0 1,-2.179 -5.061c3.954,-4.181 2.94,-8.512 0.94,-14.641a9.836,9.836 0,0 0,-2.16 -3.016c-1.918,-2.126 -4.544,-5.037 -3.481,-9.607a25.036,25.036 0,0 1,2.379 -5.815,16.448 16.448,0 0,0 2.06,-5.418 5.11,5.11 0,0 1,0.928 -2.279c0.4,-5.449 5.218,-5.819 7.312,-5.979a22.575,22.575 0,0 0,9.38 -2.993c3.758,-2.1 6.259,-5.346 6.529,-8.479 0.307,-3.58 -2.274,-6.473 -4.494,-8.27a18.574,18.574 0,0 0,-11.278 -4.324c-3.111,-0.1 -6.171,-0.864 -7.481,-5.742 -1.04,-3.876 -2.566,-8.807 -5.149,-12.555 -2.849,-4.133 -2.665,-8.212 0.531,-11.8 2.643,-2.962 3.72,-6.614 4.675,-10.409a8.16,8.16 0,0 0,-1.683 -6.742,9.782 9.782,0 0,0 -7.03,-4.094c-4.975,-0.247 -9.676,1.681 -14.352,5.879 -2.732,2.452 -5.985,2.865 -8.7,1.1a44.8,44.8 0,0 0,-10.077 -4.384c-0.647,-0.222 -1.293,-0.443 -1.937,-0.669 -2.712,-0.953 -5.793,-2.674 -5.557,-7.58 0.132,-2.765 -0.81,-5.645 -3.057,-9.336 -2.113,-3.469 -6.6,-8.73 -12.943,-4.98 -4.54,2.685 -7.255,7.178 -8.069,13.355l-0.09,0.685c-0.879,6.758 -2.2,7.873 -9.457,7.948h-0.032a3,3 0,0 1,-0.031 -6c1.18,-0.012 2.487,-0.026 3.172,-0.111 0.135,-0.586 0.273,-1.649 0.4,-2.611l0.091,-0.7c1.053,-7.984 4.844,-14.116 10.964,-17.735 7.638,-4.519 15.733,-1.828 21.122,7.024 1.958,3.217 4.173,7.571 3.925,12.744 -0.049,1.027 -0.051,1.068 1.551,1.63 0.63,0.222 1.263,0.438 1.895,0.655a50.017,50.017 0,0 1,11.4 5.026c0.18,0.117 0.482,0.314 1.427,-0.533 5.911,-5.307 12.017,-7.729 18.652,-7.407a15.688,15.688 0,0 1,11.559 6.514,14.111 14.111,0 0,1 2.681,11.78c-1.1,4.366 -2.47,8.963 -6.015,12.938 -1.186,1.329 -1.5,2.325 -0.07,4.4 3.1,4.5 4.839,10.062 6,14.4a2.8,2.8 0,0 0,0.459 1.125,4.034 4.034,0 0,0 1.42,0.176 24.447,24.447 0,0 1,14.861 5.658c6.067,4.912 6.99,10.024 6.7,13.447 -0.444,5.167 -4.026,10.1 -9.581,13.2a28.445,28.445 0,0 1,-11.846 3.736,12.5 12.5,0 0,0 -1.762,0.219 3.085,3.085 0,0 0,-0.034 0.433,4.808 4.808,0 0,1 -0.954,2.63l-0.037,0.055a22.335,22.335 0,0 1,-2.636 7.1,20.2 20.2,0 0,0 -1.871,4.43c-0.324,1.394 0.281,2.221 2.092,4.229a14.51,14.51 0,0 1,3.409 5.174c1.759,5.392 4.417,13.539 -2.285,20.625A2.994,2.994 0,0 1,153.428 154.513ZM157.963,108.732Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M106.515,121.842c-8.431,0 -16.514,-6.048 -17.883,-13.537 -1.719,-9.4 2.991,-17.532 12,-20.728a5.483,5.483 0,0 1,0.657 -0.186,3 3,0 0,1 2.154,-2.1 2.963,2.963 0,0 1,3.623 2.15,4.627 4.627,0 0,1 -0.508,3.837 4.815,4.815 0,0 1,-3.6 1.918,3.768 3.768,0 0,0 -0.377,0.06c-6.115,2.172 -9.22,7.534 -8.042,13.975 0.886,4.845 6.714,8.884 12.5,8.6 3.478,-0.157 6.887,-2.461 8.9,-6.011a10.971,10.971 0,0 0,0.547 -10.616s-2.489,-4.483 -2.238,-7.292a3,3 0,1 1,5.977 0.535c-0.083,0.928 0.336,1.732 1.146,3.19l0.392,0.712c2.66,4.917 2.435,11.058 -0.6,16.425 -3.062,5.414 -8.238,8.8 -13.845,9.052Q106.91,121.841 106.515,121.842ZM101.261,88.961h0Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M90.561,181.513a13.509,13.509 0,0 1,-8.284 -3.081,24.191 24.191,0 0,1 -9.743,-18.767 4.306,4.306 0,0 0,-0.192 -1.508h0a3.453,3.453 0,0 0,-1.01 -0.348,49.859 49.859,0 0,1 -12.286,-4.769c-1.987,-1.065 -2.056,-1 -3.218,0.078a24.615,24.615 0,0 1,-18.191 6.923,14.523 14.523,0 0,1 -13.325,-10.755c-2.229,-8.178 1.234,-14.739 4.5,-19.541l0.372,-0.542c1.553,-2.243 1.507,-2.479 1.031,-3.223 -3.211,-5.024 -5.1,-10.576 -6.763,-15.832 -0.4,-1.264 -0.441,-1.4 -2.416,-1.5 -0.34,-0.018 -0.692,-0.025 -1.047,-0.032 -2.577,-0.053 -7.372,-0.151 -9.182,-5.405a3,3 0,1 1,5.673 -1.954c0.367,1.066 0.721,1.3 3.632,1.36 0.419,0.009 0.833,0.018 1.234,0.039 3.033,0.157 6.334,0.955 7.827,5.682 1.54,4.874 3.28,10 6.1,14.409 2.725,4.265 0.3,7.772 -1.153,9.869l-0.345,0.5c-3.827,5.627 -4.925,9.99 -3.672,14.589a8.432,8.432 0,0 0,7.821 6.339,18.494 18.494,0 0,0 13.823,-5.326c4.035,-3.747 7.348,-2.465 10.137,-0.969a43.924,43.924 0,0 0,10.794 4.208c4.958,1.139 5.742,4.422 5.855,7.483a18.36,18.36 0,0 0,7.41 14.237c3.144,2.424 6.1,2.423 9.287,-0.006 5.045,-3.838 7.534,-8.734 7.4,-14.551 -0.113,-4.813 2.809,-6.3 5.681,-7.13a51.269,51.269 0,0 0,12.317 -5.2c4.6,-2.772 8.739,-2.465 12.65,0.939a16.377,16.377 0,0 0,9.4 3.807,3 3,0 0,1 -0.62,5.968 22.162,22.162 0,0 1,-12.718 -5.248c-1.744,-1.517 -2.967,-1.923 -5.616,-0.326a57.31,57.31 0,0 1,-13.758 5.824,5.639 5.639,0 0,0 -1.3,0.483 3.4,3.4 0,0 0,-0.043 0.739c0.181,7.738 -3.194,14.469 -9.761,19.466A13.665,13.665 0,0 1,90.561 181.513Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M3.336,97.693a3,3 0,0 1,-2.938 -2.411c-1.31,-6.539 0.619,-12.081 5.735,-16.475a24.129,24.129 0,0 1,15.495 -6.118,4.868 4.868,0 0,0 1.53,-0.217c0.548,-4.076 2.215,-7.56 3.829,-10.931 0.732,-1.53 1.436,-3 2.031,-4.5a27.375,27.375 0,0 1,-7.692 -14.651c-0.961,-5.642 0.55,-10.9 4.146,-14.422s8.824,-4.914 14.383,-3.853c4.179,0.8 9,2.132 13.117,5.954a3.855,3.855 0,0 0,1.132 0.812,4.928 4.928,0 0,0 1.193,-1.545 3,3 0,1 1,5.195 3c-0.577,1 -2.33,4.028 -5.5,4.5 -2.02,0.3 -4.077,-0.5 -6.1,-2.379 -2.991,-2.78 -6.65,-3.784 -10.159,-4.455 -3.651,-0.7 -6.867,0.1 -9.057,2.244s-3.066,5.4 -2.43,9.129a22.088,22.088 0,0 0,7.284 12.645,3 3,0 0,1 0.826,3.143 57.062,57.062 0,0 1,-2.952 6.964c-1.5,3.135 -2.919,6.1 -3.314,9.294 -0.191,1.537 -1.285,5.127 -7.324,5.261a18.288,18.288 0,0 0,-11.719 4.671c-3.489,3 -4.649,6.311 -3.761,10.745a3,3 0,0 1,-2.945 3.59Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M84.787,90.657c-7.336,0 -14.743,-6.613 -15.356,-13.806 -0.744,-8.715 3.243,-14.34 12.188,-17.2a2.993,2.993 0,0 1,1.168 -0.132c0.092,-0.008 0.182,-0.01 0.279,-0.01 5.525,0.057 9.761,1.586 12.59,4.544 2.811,2.94 4.141,7.191 3.953,12.637 -0.235,6.843 -7.406,13.757 -14.478,13.958C85.017,90.655 84.902,90.657 84.787,90.657ZM83.012,65.513c-5.955,2.009 -8.094,5.077 -7.6,10.828 0.348,4.081 5.309,8.46 9.552,8.313 3.915,-0.111 8.525,-4.461 8.652,-8.166 0.13,-3.77 -0.642,-6.557 -2.293,-8.284C89.651,66.459 86.861,65.554 83.012,65.513Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M69.168,116.919q-0.432,0 -0.879,-0.024a11.373,11.373 0,0 1,-10.856 -12.293c0.332,-6.714 5.81,-9.6 7.61,-10.552a2.964,2.964 0,0 1,1.652 -0.336c0.082,-0.007 0.166,-0.011 0.25,-0.011h0.784c0.584,0 1.169,0 1.753,0a12.567,12.567 0,0 1,9.1 3.935,10.393 10.393,0 0,1 2.846,7.809C81.053,111.072 77.056,116.919 69.168,116.919ZM67.214,99.703c-2.572,1.483 -3.68,3.021 -3.787,5.2a5.381,5.381 0,0 0,5.181 6.006c6.126,0.331 6.768,-4.824 6.837,-5.859a4.427,4.427 0,0 0,-1.258 -3.324,6.628 6.628,0 0,0 -4.751,-2.017c-0.566,0 -1.13,0 -1.695,0Z\" />\n    </group>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_lightbulb.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24.0\"\n    android:viewportHeight=\"24.0\">\n    <path\n        android:fillColor=\"@color/color_bulb_icon\"\n        android:pathData=\"M9,21c0,0.55 0.45,1 1,1h4c0.55,0 1,-0.45 1,-1v-1L9,20v1zM12,2C8.14,2 5,5.14 5,9c0,2.38 1.19,4.47 3,5.74L8,17c0,0.55 0.45,1 1,1h6c0.55,0 1,-0.45 1,-1v-2.26c1.81,-1.27 3,-3.36 3,-5.74 0,-3.86 -3.14,-7 -7,-7zM14.85,13.1l-0.85,0.6L14,16h-4v-2.3l-0.85,-0.6C7.8,12.16 7,10.63 7,9c0,-2.76 2.24,-5 5,-5s5,2.24 5,5c0,1.63 -0.8,3.16 -2.15,4.1z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_patient.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M168.514,188.263a9.062,9.062 129.318,1 0,18.035 -1.794a9.062,9.062 129.318,1 0,-18.035 1.794z\" />\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M230.206,188.235a9.062,9.062 129.318,1 0,18.035 -1.794a9.062,9.062 129.318,1 0,-18.035 1.794z\" />\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"m220.761,219.565h-27.228c-4.177,0 -7.563,3.386 -7.563,7.563 0,4.178 3.386,7.563 7.563,7.563h27.228c4.177,0 7.563,-3.386 7.563,-7.563s-3.386,-7.563 -7.563,-7.563z\" />\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"m497.763,80.897h-22.847v-19.066h29.513c4.177,0 7.563,-3.386 7.563,-7.563s-3.386,-7.563 -7.563,-7.563h-388.735c-4.177,0 -7.563,3.386 -7.563,7.563s3.386,7.563 7.563,7.563h344.096v19.066h-22.846c-7.846,0 -14.229,6.384 -14.229,14.229v65.809c0.172,7.345 1.582,14.977 6.472,23.129 4.08,6.708 9.88,12.258 16.78,16.041l-4.94,7.942c-7.367,11.844 -8.052,26.943 -1.788,39.405l20.542,40.866c4.969,9.886 2.816,22.071 -5.234,29.654l-37.596,34.015v-145.836c0,-11.648 -9.476,-21.124 -21.124,-21.124h-21.862c-0.568,-3.699 -1.414,-7.347 -2.537,-10.92 -0.976,-3.105 -1.129,-6.435 -0.44,-9.629l5.576,-25.866c1.06,-4.918 -0.43,-9.977 -3.987,-13.535 -3.557,-3.557 -8.618,-5.052 -13.537,-3.988 -7.839,1.033 -27.03,7.836 -35.021,4.903 -2.983,-0.99 -6.056,-1.795 -9.132,-2.395 -4.098,-0.792 -8.071,1.88 -8.869,5.98s1.879,8.071 5.979,8.869c2.444,0.476 4.886,1.116 7.258,1.903 5.726,1.9 11.89,2.229 17.827,0.948l24.571,-5.297 -5.452,25.291c-2.836,10.844 3.713,22.529 3.5,35.059v78.225c0,6.091 -0.927,12.097 -2.754,17.853 -0.583,1.835 -0.988,3.715 -1.25,5.613 -17.042,-15.086 -39.432,-24.26 -63.929,-24.26h-32.453v-7.433c10.52,-10.16 18.046,-23.466 21.001,-38.541 10.93,-3.668 20.215,-14.856 23.66,-25.447 5.204,-16.002 -2.142,-32.787 -16.374,-37.416 -0.001,-0.001 -0.001,-0.001 -0.001,-0.001 -1.552,-0.503 -3.596,-0.949 -5.888,-0.916v-36.034c0,-21.964 -17.869,-39.834 -39.834,-39.834h-67.119c-20.008,0 -36.613,14.831 -39.412,34.075h-19.421c-10.698,-1.087 -21.507,5.392 -33.182,4.277l-25.149,-5.423c-4.918,-1.061 -9.979,0.432 -13.535,3.989 -3.557,3.558 -5.047,8.617 -3.987,13.535l5.576,25.867c0.689,3.194 0.537,6.523 -0.44,9.629 -1.123,3.572 -1.969,7.22 -2.537,10.919h-19.191v-106.898c0,-8.986 7.311,-16.298 16.297,-16.298h41.124c4.177,0 7.563,-3.386 7.563,-7.563s-3.386,-7.563 -7.563,-7.563h-41.124c-17.327,0 -31.424,14.097 -31.424,31.424v111.234c-5.066,3.862 -8.355,9.94 -8.355,16.788l0.188,245.917c0,7.293 5.934,13.228 13.227,13.228h390.192c7.294,0 13.227,-5.934 13.227,-13.228l0.116,-79.683 47.798,-43.245c0.033,-0.03 0.066,-0.06 0.098,-0.091 12.941,-12.132 16.415,-31.675 8.449,-47.525l-20.542,-40.866c-3.914,-7.787 -3.486,-17.221 1.117,-24.622l6.819,-10.962c2.175,0.327 4.399,0.499 6.664,0.499s0,0 0,0c16.153,0 30.329,-8.624 38.167,-21.509 2.881,-4.252 6.666,-14.529 6.472,-23.129v-65.808c0.001,-7.846 -6.383,-14.23 -14.229,-14.23zM401.824,206.151v159.52l-8.266,7.479c-1.725,-1.558 -3.474,-3.082 -5.254,-4.56 -0.324,-18.135 -5.671,-35.063 -14.708,-49.453 -1.114,-6.585 -4.48,-14.802 -2.232,-22.133 2.298,-7.237 3.463,-14.784 3.463,-22.43v-74.421h21c3.307,0 5.997,2.691 5.997,5.998zM172.451,277.599c10.65,5.977 22.902,9.374 35.868,9.374 12.967,0 25.218,-3.397 35.868,-9.374v13.734c0,3.422 -2.785,6.207 -6.207,6.207h-59.322c-3.423,0 -6.207,-2.785 -6.207,-6.207zM282.922,179.327c6.301,2.049 9.292,10.283 6.668,18.354 -2.572,7.907 -10.65,15.948 -16.308,16.234 -3.681,0.185 -6.693,2.997 -7.13,6.656 -3.493,29.232 -28.355,51.276 -57.832,51.276s-54.34,-22.044 -57.832,-51.276c-0.437,-3.66 -3.449,-6.471 -7.13,-6.656 -5.659,-0.286 -13.737,-8.326 -16.308,-16.234 -2.625,-8.071 0.367,-16.305 6.667,-18.353 0.317,-0.103 0.566,-0.184 0.802,-0.184 0.493,0 0.929,0.353 1.812,1.591 1.909,2.681 5.329,3.823 8.463,2.818 3.904,-1.111 6.005,-6.617 5.261,-11.873 0,-16.024 13.036,-29.06 29.061,-29.06h58.41c16.024,0 29.061,13.036 29.061,29.06 -0.171,4.026 -0.471,9.402 5.261,11.873 3.134,1.005 6.555,-0.137 8.463,-2.818 1.303,-1.831 1.633,-1.724 2.611,-1.408zM150.053,127.992c0,-13.624 11.084,-24.707 24.707,-24.707h67.118c13.623,0 24.707,11.083 24.707,24.707v10.441c-7.775,-6.804 -17.942,-10.939 -29.061,-10.939h-58.41c-11.119,0 -21.286,4.135 -29.061,10.939zM79.557,141.297c5.936,1.278 12.1,0.95 17.828,-0.949 5.972,-1.982 12.211,-2.988 18.543,-2.988h18.999v26.665c-2.29,-0.034 -4.337,0.412 -5.889,0.918 -14.232,4.629 -21.578,21.413 -16.374,37.416 3.444,10.593 12.728,21.78 23.66,25.447 2.955,15.075 10.481,28.381 21.001,38.541v7.433h-32.453c-24.496,0 -46.887,9.174 -63.929,24.261 -0.262,-1.899 -0.668,-3.779 -1.25,-5.613 -1.827,-5.755 -2.754,-11.763 -2.754,-17.853v-78.225c-0.641,-10.818 6.302,-22.612 3.5,-35.059l-5.452,-25.291zM15.127,206.151c0,-3.307 2.69,-5.997 5.998,-5.997h20.686v74.421c0,7.646 1.165,15.193 3.463,22.43 2.286,4.612 -1.189,17.139 -2.233,22.133 -9.048,14.409 -14.397,31.361 -14.708,49.522 -3.022,2.512 -5.965,5.136 -8.822,7.872 -1.546,1.481 -3.008,3.038 -4.385,4.661v-175.042zM401.708,450.169h-386.393v-28.323c0,-12.932 5.344,-25.466 14.66,-34.391 20.909,-20.028 46.889,-33.552 75.13,-39.113 4.098,-0.807 6.767,-4.783 5.96,-8.881 -0.807,-4.1 -4.785,-6.771 -8.882,-5.96 -20.597,4.054 -40.085,11.977 -57.591,23.257 6.486,-38.457 40.005,-67.852 80.278,-67.852h32.453v2.427c0,11.764 9.57,21.334 21.334,21.334h59.322c11.764,0 21.333,-9.57 21.333,-21.334v-2.427h32.453c40.239,0 73.733,29.344 80.26,67.753 -26.572,-17.104 -57.535,-26.292 -89.775,-26.292h-143.33c-4.177,0 -7.563,3.386 -7.563,7.563 0,4.178 3.386,7.563 7.563,7.563h143.333c34.329,0 67.068,11.455 93.659,32.52 0.07,0.058 0.144,0.112 0.216,0.168 3.799,3.021 7.472,6.238 11.005,9.646 9.264,8.935 14.576,21.44 14.576,34.31v28.032zM496.866,96.024v20.863h-59.025v-20.863zM494.543,172.412c-2.926,8.628 -15.692,18.665 -27.19,18.035 -16.273,0 -29.512,-13.239 -29.512,-29.512v-28.922h59.025v28.922c-0.428,4.049 0.2,4.675 -2.323,11.477z\" />\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_settings.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\"24dp\"\n        android:viewportWidth=\"24\"\n        android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_trending_up.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n        android:width=\"24dp\"\n        android:height=\"24dp\"\n        android:viewportWidth=\"24.0\"\n        android:viewportHeight=\"24.0\">\n    <path\n        android:fillColor=\"#FF000000\"\n        android:pathData=\"M16,6l2.29,2.29 -4.88,4.88 -4,-4L2,16.59 3.41,18l6,-6 4,4 6.3,-6.29L22,12V6z\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable/ic_virus.xml",
    "content": "<vector android:height=\"24.0465dp\" android:viewportHeight=\"181.512\"\n    android:viewportWidth=\"181.161\" android:width=\"24dp\" xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <path android:fillColor=\"#933\" android:pathData=\"M153.428,154.513a3,3 0,0 1,-2.179 -5.061c3.954,-4.181 2.94,-8.512 0.94,-14.641a9.836,9.836 0,0 0,-2.16 -3.016c-1.918,-2.126 -4.544,-5.037 -3.481,-9.607a25.036,25.036 0,0 1,2.379 -5.815,16.448 16.448,0 0,0 2.06,-5.418 5.11,5.11 0,0 1,0.928 -2.279c0.4,-5.449 5.218,-5.819 7.312,-5.979a22.575,22.575 0,0 0,9.38 -2.993c3.758,-2.1 6.259,-5.346 6.529,-8.479 0.307,-3.58 -2.274,-6.473 -4.494,-8.27a18.574,18.574 0,0 0,-11.278 -4.324c-3.111,-0.1 -6.171,-0.864 -7.481,-5.742 -1.04,-3.876 -2.566,-8.807 -5.149,-12.555 -2.849,-4.133 -2.665,-8.212 0.531,-11.8 2.643,-2.962 3.72,-6.614 4.675,-10.409a8.16,8.16 0,0 0,-1.683 -6.742,9.782 9.782,0 0,0 -7.03,-4.094c-4.975,-0.247 -9.676,1.681 -14.352,5.879 -2.732,2.452 -5.985,2.865 -8.7,1.1a44.8,44.8 0,0 0,-10.077 -4.384c-0.647,-0.222 -1.293,-0.443 -1.937,-0.669 -2.712,-0.953 -5.793,-2.674 -5.557,-7.58 0.132,-2.765 -0.81,-5.645 -3.057,-9.336 -2.113,-3.469 -6.6,-8.73 -12.943,-4.98 -4.54,2.685 -7.255,7.178 -8.069,13.355l-0.09,0.685c-0.879,6.758 -2.2,7.873 -9.457,7.948h-0.032a3,3 0,0 1,-0.031 -6c1.18,-0.012 2.487,-0.026 3.172,-0.111 0.135,-0.586 0.273,-1.649 0.4,-2.611l0.091,-0.7c1.053,-7.984 4.844,-14.116 10.964,-17.735 7.638,-4.519 15.733,-1.828 21.122,7.024 1.958,3.217 4.173,7.571 3.925,12.744 -0.049,1.027 -0.051,1.068 1.551,1.63 0.63,0.222 1.263,0.438 1.895,0.655a50.017,50.017 0,0 1,11.4 5.026c0.18,0.117 0.482,0.314 1.427,-0.533 5.911,-5.307 12.017,-7.729 18.652,-7.407a15.688,15.688 0,0 1,11.559 6.514,14.111 14.111,0 0,1 2.681,11.78c-1.1,4.366 -2.47,8.963 -6.015,12.938 -1.186,1.329 -1.5,2.325 -0.07,4.4 3.1,4.5 4.839,10.062 6,14.4a2.8,2.8 0,0 0,0.459 1.125,4.034 4.034,0 0,0 1.42,0.176 24.447,24.447 0,0 1,14.861 5.658c6.067,4.912 6.99,10.024 6.7,13.447 -0.444,5.167 -4.026,10.1 -9.581,13.2a28.445,28.445 0,0 1,-11.846 3.736,12.5 12.5,0 0,0 -1.762,0.219 3.085,3.085 0,0 0,-0.034 0.433,4.808 4.808,0 0,1 -0.954,2.63l-0.037,0.055a22.335,22.335 0,0 1,-2.636 7.1,20.2 20.2,0 0,0 -1.871,4.43c-0.324,1.394 0.281,2.221 2.092,4.229a14.51,14.51 0,0 1,3.409 5.174c1.759,5.392 4.417,13.539 -2.285,20.625A2.994,2.994 0,0 1,153.428 154.513ZM157.963,108.732Z\"/>\n    <path android:fillColor=\"#933\" android:pathData=\"M106.515,121.842c-8.431,0 -16.514,-6.048 -17.883,-13.537 -1.719,-9.4 2.991,-17.532 12,-20.728a5.483,5.483 0,0 1,0.657 -0.186,3 3,0 0,1 2.154,-2.1 2.963,2.963 0,0 1,3.623 2.15,4.627 4.627,0 0,1 -0.508,3.837 4.815,4.815 0,0 1,-3.6 1.918,3.768 3.768,0 0,0 -0.377,0.06c-6.115,2.172 -9.22,7.534 -8.042,13.975 0.886,4.845 6.714,8.884 12.5,8.6 3.478,-0.157 6.887,-2.461 8.9,-6.011a10.971,10.971 0,0 0,0.547 -10.616s-2.489,-4.483 -2.238,-7.292a3,3 0,1 1,5.977 0.535c-0.083,0.928 0.336,1.732 1.146,3.19l0.392,0.712c2.66,4.917 2.435,11.058 -0.6,16.425 -3.062,5.414 -8.238,8.8 -13.845,9.052Q106.91,121.841 106.515,121.842ZM101.261,88.961h0Z\"/>\n    <path android:fillColor=\"#933\" android:pathData=\"M90.561,181.513a13.509,13.509 0,0 1,-8.284 -3.081,24.191 24.191,0 0,1 -9.743,-18.767 4.306,4.306 0,0 0,-0.192 -1.508h0a3.453,3.453 0,0 0,-1.01 -0.348,49.859 49.859,0 0,1 -12.286,-4.769c-1.987,-1.065 -2.056,-1 -3.218,0.078a24.615,24.615 0,0 1,-18.191 6.923,14.523 14.523,0 0,1 -13.325,-10.755c-2.229,-8.178 1.234,-14.739 4.5,-19.541l0.372,-0.542c1.553,-2.243 1.507,-2.479 1.031,-3.223 -3.211,-5.024 -5.1,-10.576 -6.763,-15.832 -0.4,-1.264 -0.441,-1.4 -2.416,-1.5 -0.34,-0.018 -0.692,-0.025 -1.047,-0.032 -2.577,-0.053 -7.372,-0.151 -9.182,-5.405a3,3 0,1 1,5.673 -1.954c0.367,1.066 0.721,1.3 3.632,1.36 0.419,0.009 0.833,0.018 1.234,0.039 3.033,0.157 6.334,0.955 7.827,5.682 1.54,4.874 3.28,10 6.1,14.409 2.725,4.265 0.3,7.772 -1.153,9.869l-0.345,0.5c-3.827,5.627 -4.925,9.99 -3.672,14.589a8.432,8.432 0,0 0,7.821 6.339,18.494 18.494,0 0,0 13.823,-5.326c4.035,-3.747 7.348,-2.465 10.137,-0.969a43.924,43.924 0,0 0,10.794 4.208c4.958,1.139 5.742,4.422 5.855,7.483a18.36,18.36 0,0 0,7.41 14.237c3.144,2.424 6.1,2.423 9.287,-0.006 5.045,-3.838 7.534,-8.734 7.4,-14.551 -0.113,-4.813 2.809,-6.3 5.681,-7.13a51.269,51.269 0,0 0,12.317 -5.2c4.6,-2.772 8.739,-2.465 12.65,0.939a16.377,16.377 0,0 0,9.4 3.807,3 3,0 0,1 -0.62,5.968 22.162,22.162 0,0 1,-12.718 -5.248c-1.744,-1.517 -2.967,-1.923 -5.616,-0.326a57.31,57.31 0,0 1,-13.758 5.824,5.639 5.639,0 0,0 -1.3,0.483 3.4,3.4 0,0 0,-0.043 0.739c0.181,7.738 -3.194,14.469 -9.761,19.466A13.665,13.665 0,0 1,90.561 181.513Z\"/>\n    <path android:fillColor=\"#933\" android:pathData=\"M3.336,97.693a3,3 0,0 1,-2.938 -2.411c-1.31,-6.539 0.619,-12.081 5.735,-16.475a24.129,24.129 0,0 1,15.495 -6.118,4.868 4.868,0 0,0 1.53,-0.217c0.548,-4.076 2.215,-7.56 3.829,-10.931 0.732,-1.53 1.436,-3 2.031,-4.5a27.375,27.375 0,0 1,-7.692 -14.651c-0.961,-5.642 0.55,-10.9 4.146,-14.422s8.824,-4.914 14.383,-3.853c4.179,0.8 9,2.132 13.117,5.954a3.855,3.855 0,0 0,1.132 0.812,4.928 4.928,0 0,0 1.193,-1.545 3,3 0,1 1,5.195 3c-0.577,1 -2.33,4.028 -5.5,4.5 -2.02,0.3 -4.077,-0.5 -6.1,-2.379 -2.991,-2.78 -6.65,-3.784 -10.159,-4.455 -3.651,-0.7 -6.867,0.1 -9.057,2.244s-3.066,5.4 -2.43,9.129a22.088,22.088 0,0 0,7.284 12.645,3 3,0 0,1 0.826,3.143 57.062,57.062 0,0 1,-2.952 6.964c-1.5,3.135 -2.919,6.1 -3.314,9.294 -0.191,1.537 -1.285,5.127 -7.324,5.261a18.288,18.288 0,0 0,-11.719 4.671c-3.489,3 -4.649,6.311 -3.761,10.745a3,3 0,0 1,-2.945 3.59Z\"/>\n    <path android:fillColor=\"#933\" android:pathData=\"M84.787,90.657c-7.336,0 -14.743,-6.613 -15.356,-13.806 -0.744,-8.715 3.243,-14.34 12.188,-17.2a2.993,2.993 0,0 1,1.168 -0.132c0.092,-0.008 0.182,-0.01 0.279,-0.01 5.525,0.057 9.761,1.586 12.59,4.544 2.811,2.94 4.141,7.191 3.953,12.637 -0.235,6.843 -7.406,13.757 -14.478,13.958C85.017,90.655 84.902,90.657 84.787,90.657ZM83.012,65.513c-5.955,2.009 -8.094,5.077 -7.6,10.828 0.348,4.081 5.309,8.46 9.552,8.313 3.915,-0.111 8.525,-4.461 8.652,-8.166 0.13,-3.77 -0.642,-6.557 -2.293,-8.284C89.651,66.459 86.861,65.554 83.012,65.513Z\"/>\n    <path android:fillColor=\"#933\" android:pathData=\"M69.168,116.919q-0.432,0 -0.879,-0.024a11.373,11.373 0,0 1,-10.856 -12.293c0.332,-6.714 5.81,-9.6 7.61,-10.552a2.964,2.964 0,0 1,1.652 -0.336c0.082,-0.007 0.166,-0.011 0.25,-0.011h0.784c0.584,0 1.169,0 1.753,0a12.567,12.567 0,0 1,9.1 3.935,10.393 10.393,0 0,1 2.846,7.809C81.053,111.072 77.056,116.919 69.168,116.919ZM67.214,99.703c-2.572,1.483 -3.68,3.021 -3.787,5.2a5.381,5.381 0,0 0,5.181 6.006c6.126,0.331 6.768,-4.824 6.837,-5.859a4.427,4.427 0,0 0,-1.258 -3.324,6.628 6.628,0 0,0 -4.751,-2.017c-0.566,0 -1.13,0 -1.695,0Z\"/>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/drawable-anydpi-v24/ic_stat_notification_icon.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:tint=\"#FFFFFF\"\n    android:viewportWidth=\"197.29565\"\n    android:viewportHeight=\"197.29565\">\n    <group\n        android:translateX=\"8.067326\"\n        android:translateY=\"7.891826\">\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M153.428,154.513a3,3 0,0 1,-2.179 -5.061c3.954,-4.181 2.94,-8.512 0.94,-14.641a9.836,9.836 0,0 0,-2.16 -3.016c-1.918,-2.126 -4.544,-5.037 -3.481,-9.607a25.036,25.036 0,0 1,2.379 -5.815,16.448 16.448,0 0,0 2.06,-5.418 5.11,5.11 0,0 1,0.928 -2.279c0.4,-5.449 5.218,-5.819 7.312,-5.979a22.575,22.575 0,0 0,9.38 -2.993c3.758,-2.1 6.259,-5.346 6.529,-8.479 0.307,-3.58 -2.274,-6.473 -4.494,-8.27a18.574,18.574 0,0 0,-11.278 -4.324c-3.111,-0.1 -6.171,-0.864 -7.481,-5.742 -1.04,-3.876 -2.566,-8.807 -5.149,-12.555 -2.849,-4.133 -2.665,-8.212 0.531,-11.8 2.643,-2.962 3.72,-6.614 4.675,-10.409a8.16,8.16 0,0 0,-1.683 -6.742,9.782 9.782,0 0,0 -7.03,-4.094c-4.975,-0.247 -9.676,1.681 -14.352,5.879 -2.732,2.452 -5.985,2.865 -8.7,1.1a44.8,44.8 0,0 0,-10.077 -4.384c-0.647,-0.222 -1.293,-0.443 -1.937,-0.669 -2.712,-0.953 -5.793,-2.674 -5.557,-7.58 0.132,-2.765 -0.81,-5.645 -3.057,-9.336 -2.113,-3.469 -6.6,-8.73 -12.943,-4.98 -4.54,2.685 -7.255,7.178 -8.069,13.355l-0.09,0.685c-0.879,6.758 -2.2,7.873 -9.457,7.948h-0.032a3,3 0,0 1,-0.031 -6c1.18,-0.012 2.487,-0.026 3.172,-0.111 0.135,-0.586 0.273,-1.649 0.4,-2.611l0.091,-0.7c1.053,-7.984 4.844,-14.116 10.964,-17.735 7.638,-4.519 15.733,-1.828 21.122,7.024 1.958,3.217 4.173,7.571 3.925,12.744 -0.049,1.027 -0.051,1.068 1.551,1.63 0.63,0.222 1.263,0.438 1.895,0.655a50.017,50.017 0,0 1,11.4 5.026c0.18,0.117 0.482,0.314 1.427,-0.533 5.911,-5.307 12.017,-7.729 18.652,-7.407a15.688,15.688 0,0 1,11.559 6.514,14.111 14.111,0 0,1 2.681,11.78c-1.1,4.366 -2.47,8.963 -6.015,12.938 -1.186,1.329 -1.5,2.325 -0.07,4.4 3.1,4.5 4.839,10.062 6,14.4a2.8,2.8 0,0 0,0.459 1.125,4.034 4.034,0 0,0 1.42,0.176 24.447,24.447 0,0 1,14.861 5.658c6.067,4.912 6.99,10.024 6.7,13.447 -0.444,5.167 -4.026,10.1 -9.581,13.2a28.445,28.445 0,0 1,-11.846 3.736,12.5 12.5,0 0,0 -1.762,0.219 3.085,3.085 0,0 0,-0.034 0.433,4.808 4.808,0 0,1 -0.954,2.63l-0.037,0.055a22.335,22.335 0,0 1,-2.636 7.1,20.2 20.2,0 0,0 -1.871,4.43c-0.324,1.394 0.281,2.221 2.092,4.229a14.51,14.51 0,0 1,3.409 5.174c1.759,5.392 4.417,13.539 -2.285,20.625A2.994,2.994 0,0 1,153.428 154.513ZM157.963,108.732Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M106.515,121.842c-8.431,0 -16.514,-6.048 -17.883,-13.537 -1.719,-9.4 2.991,-17.532 12,-20.728a5.483,5.483 0,0 1,0.657 -0.186,3 3,0 0,1 2.154,-2.1 2.963,2.963 0,0 1,3.623 2.15,4.627 4.627,0 0,1 -0.508,3.837 4.815,4.815 0,0 1,-3.6 1.918,3.768 3.768,0 0,0 -0.377,0.06c-6.115,2.172 -9.22,7.534 -8.042,13.975 0.886,4.845 6.714,8.884 12.5,8.6 3.478,-0.157 6.887,-2.461 8.9,-6.011a10.971,10.971 0,0 0,0.547 -10.616s-2.489,-4.483 -2.238,-7.292a3,3 0,1 1,5.977 0.535c-0.083,0.928 0.336,1.732 1.146,3.19l0.392,0.712c2.66,4.917 2.435,11.058 -0.6,16.425 -3.062,5.414 -8.238,8.8 -13.845,9.052Q106.91,121.841 106.515,121.842ZM101.261,88.961h0Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M90.561,181.513a13.509,13.509 0,0 1,-8.284 -3.081,24.191 24.191,0 0,1 -9.743,-18.767 4.306,4.306 0,0 0,-0.192 -1.508h0a3.453,3.453 0,0 0,-1.01 -0.348,49.859 49.859,0 0,1 -12.286,-4.769c-1.987,-1.065 -2.056,-1 -3.218,0.078a24.615,24.615 0,0 1,-18.191 6.923,14.523 14.523,0 0,1 -13.325,-10.755c-2.229,-8.178 1.234,-14.739 4.5,-19.541l0.372,-0.542c1.553,-2.243 1.507,-2.479 1.031,-3.223 -3.211,-5.024 -5.1,-10.576 -6.763,-15.832 -0.4,-1.264 -0.441,-1.4 -2.416,-1.5 -0.34,-0.018 -0.692,-0.025 -1.047,-0.032 -2.577,-0.053 -7.372,-0.151 -9.182,-5.405a3,3 0,1 1,5.673 -1.954c0.367,1.066 0.721,1.3 3.632,1.36 0.419,0.009 0.833,0.018 1.234,0.039 3.033,0.157 6.334,0.955 7.827,5.682 1.54,4.874 3.28,10 6.1,14.409 2.725,4.265 0.3,7.772 -1.153,9.869l-0.345,0.5c-3.827,5.627 -4.925,9.99 -3.672,14.589a8.432,8.432 0,0 0,7.821 6.339,18.494 18.494,0 0,0 13.823,-5.326c4.035,-3.747 7.348,-2.465 10.137,-0.969a43.924,43.924 0,0 0,10.794 4.208c4.958,1.139 5.742,4.422 5.855,7.483a18.36,18.36 0,0 0,7.41 14.237c3.144,2.424 6.1,2.423 9.287,-0.006 5.045,-3.838 7.534,-8.734 7.4,-14.551 -0.113,-4.813 2.809,-6.3 5.681,-7.13a51.269,51.269 0,0 0,12.317 -5.2c4.6,-2.772 8.739,-2.465 12.65,0.939a16.377,16.377 0,0 0,9.4 3.807,3 3,0 0,1 -0.62,5.968 22.162,22.162 0,0 1,-12.718 -5.248c-1.744,-1.517 -2.967,-1.923 -5.616,-0.326a57.31,57.31 0,0 1,-13.758 5.824,5.639 5.639,0 0,0 -1.3,0.483 3.4,3.4 0,0 0,-0.043 0.739c0.181,7.738 -3.194,14.469 -9.761,19.466A13.665,13.665 0,0 1,90.561 181.513Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M3.336,97.693a3,3 0,0 1,-2.938 -2.411c-1.31,-6.539 0.619,-12.081 5.735,-16.475a24.129,24.129 0,0 1,15.495 -6.118,4.868 4.868,0 0,0 1.53,-0.217c0.548,-4.076 2.215,-7.56 3.829,-10.931 0.732,-1.53 1.436,-3 2.031,-4.5a27.375,27.375 0,0 1,-7.692 -14.651c-0.961,-5.642 0.55,-10.9 4.146,-14.422s8.824,-4.914 14.383,-3.853c4.179,0.8 9,2.132 13.117,5.954a3.855,3.855 0,0 0,1.132 0.812,4.928 4.928,0 0,0 1.193,-1.545 3,3 0,1 1,5.195 3c-0.577,1 -2.33,4.028 -5.5,4.5 -2.02,0.3 -4.077,-0.5 -6.1,-2.379 -2.991,-2.78 -6.65,-3.784 -10.159,-4.455 -3.651,-0.7 -6.867,0.1 -9.057,2.244s-3.066,5.4 -2.43,9.129a22.088,22.088 0,0 0,7.284 12.645,3 3,0 0,1 0.826,3.143 57.062,57.062 0,0 1,-2.952 6.964c-1.5,3.135 -2.919,6.1 -3.314,9.294 -0.191,1.537 -1.285,5.127 -7.324,5.261a18.288,18.288 0,0 0,-11.719 4.671c-3.489,3 -4.649,6.311 -3.761,10.745a3,3 0,0 1,-2.945 3.59Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M84.787,90.657c-7.336,0 -14.743,-6.613 -15.356,-13.806 -0.744,-8.715 3.243,-14.34 12.188,-17.2a2.993,2.993 0,0 1,1.168 -0.132c0.092,-0.008 0.182,-0.01 0.279,-0.01 5.525,0.057 9.761,1.586 12.59,4.544 2.811,2.94 4.141,7.191 3.953,12.637 -0.235,6.843 -7.406,13.757 -14.478,13.958C85.017,90.655 84.902,90.657 84.787,90.657ZM83.012,65.513c-5.955,2.009 -8.094,5.077 -7.6,10.828 0.348,4.081 5.309,8.46 9.552,8.313 3.915,-0.111 8.525,-4.461 8.652,-8.166 0.13,-3.77 -0.642,-6.557 -2.293,-8.284C89.651,66.459 86.861,65.554 83.012,65.513Z\" />\n        <path\n            android:fillColor=\"#933\"\n            android:pathData=\"M69.168,116.919q-0.432,0 -0.879,-0.024a11.373,11.373 0,0 1,-10.856 -12.293c0.332,-6.714 5.81,-9.6 7.61,-10.552a2.964,2.964 0,0 1,1.652 -0.336c0.082,-0.007 0.166,-0.011 0.25,-0.011h0.784c0.584,0 1.169,0 1.753,0a12.567,12.567 0,0 1,9.1 3.935,10.393 10.393,0 0,1 2.846,7.809C81.053,111.072 77.056,116.919 69.168,116.919ZM67.214,99.703c-2.572,1.483 -3.68,3.021 -3.787,5.2a5.381,5.381 0,0 0,5.181 6.006c6.126,0.331 6.768,-4.824 6.837,-5.859a4.427,4.427 0,0 0,-1.258 -3.324,6.628 6.628,0 0,0 -4.751,-2.017c-0.566,0 -1.13,0 -1.695,0Z\" />\n    </group>\n</vector>\n"
  },
  {
    "path": "app/src/main/res/layout/activity_main.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:orientation=\"vertical\"\n    tools:context=\".ui.main.MainActivity\">\n\n    <androidx.coordinatorlayout.widget.CoordinatorLayout\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\">\n\n        <include\n            android:id=\"@+id/appBarlayout\"\n            layout=\"@layout/appbar_layout\" />\n\n        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout\n            android:id=\"@+id/swipeRefreshLayout\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"wrap_content\"\n            app:layout_behavior=\"com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior\">\n\n            <androidx.recyclerview.widget.RecyclerView\n                android:id=\"@+id/recycler\"\n                android:layout_width=\"match_parent\"\n                android:layout_height=\"match_parent\"\n                android:clipToPadding=\"false\"\n                android:paddingBottom=\"@dimen/dimen_8\"\n                app:layoutManager=\"androidx.recyclerview.widget.LinearLayoutManager\"\n                tools:listitem=\"@layout/item_state\" />\n\n        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>\n\n    </androidx.coordinatorlayout.widget.CoordinatorLayout>\n\n</LinearLayout>\n\n"
  },
  {
    "path": "app/src/main/res/layout/activity_state_details.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\"\n    android:orientation=\"vertical\"\n    tools:context=\".ui.details.StateDetailsActivity\">\n\n    <androidx.coordinatorlayout.widget.CoordinatorLayout\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\">\n\n        <include\n            android:id=\"@+id/appBarlayout\"\n            layout=\"@layout/appbar_layout\" />\n\n        <androidx.swiperefreshlayout.widget.SwipeRefreshLayout\n            android:id=\"@+id/swipeRefreshLayout\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"wrap_content\"\n            app:layout_behavior=\"com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior\">\n\n            <androidx.recyclerview.widget.RecyclerView\n                android:id=\"@+id/recyclerState\"\n                android:layout_width=\"match_parent\"\n                android:layout_height=\"match_parent\"\n                android:clipToPadding=\"false\"\n                android:paddingBottom=\"@dimen/dimen_8\"\n                app:layoutManager=\"androidx.recyclerview.widget.LinearLayoutManager\"\n                tools:listitem=\"@layout/item_state\" />\n\n        </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>\n\n    </androidx.coordinatorlayout.widget.CoordinatorLayout>\n\n</LinearLayout>\n\n"
  },
  {
    "path": "app/src/main/res/layout/appbar_layout.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<com.google.android.material.appbar.AppBarLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/appBarlayout\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"?actionBarSize\"\n    android:background=\"@color/colorPrimary\"\n    tools:showIn=\"@layout/activity_main\">\n\n    <androidx.appcompat.widget.Toolbar\n        android:id=\"@+id/toolbar\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        app:layout_scrollFlags=\"scroll|snap|enterAlways\"\n        app:subtitleTextAppearance=\"@style/ToolBarSubtitle\"\n        app:title=\"@string/app_name\"\n        app:titleTextColor=\"@color/color_toolbar_title\">\n\n    </androidx.appcompat.widget.Toolbar>\n</com.google.android.material.appbar.AppBarLayout>"
  },
  {
    "path": "app/src/main/res/layout/item_district.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<com.google.android.material.card.MaterialCardView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:layout_marginStart=\"@dimen/dimen_16\"\n    android:layout_marginTop=\"@dimen/dimen_8\"\n    android:layout_marginEnd=\"@dimen/dimen_16\"\n    android:layout_marginBottom=\"@dimen/dimen_8\"\n    android:padding=\"@dimen/dimen_8\"\n    app:cardBackgroundColor=\"@color/colorSurface\"\n    app:cardCornerRadius=\"@dimen/dimen_16\"\n    app:cardElevation=\"@dimen/dimen_4\">\n\n    <androidx.constraintlayout.widget.ConstraintLayout\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\">\n\n        <TextView\n            android:id=\"@+id/textNotes\"\n            style=\"@style/TextLastUpdatedTime\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"@dimen/dimen_4\"\n            android:paddingStart=\"@dimen/dimen_16\"\n            android:paddingEnd=\"@dimen/dimen_16\"\n            android:textAlignment=\"center\"\n            android:textAllCaps=\"false\"\n            app:drawableStartCompat=\"@drawable/ic_info\"\n            app:drawableTint=\"@color/colorTextLastUpdated\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintHorizontal_bias=\"1.0\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n            app:layout_constraintTop_toBottomOf=\"@+id/textDistrictName\"\n            tools:text=\"@tools:sample/lorem\" />\n\n        <TextView\n            android:id=\"@+id/textDistrictName\"\n            style=\"@style/TextStateName\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"@dimen/dimen_4\"\n            android:textAlignment=\"center\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintHorizontal_bias=\"0.0\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n            app:layout_constraintTop_toTopOf=\"parent\"\n            tools:text=\"Maharashtra\" />\n\n        <ImageView\n            android:id=\"@+id/imageView8\"\n            android:layout_width=\"@dimen/dimen_24\"\n            android:layout_height=\"@dimen/dimen_24\"\n            android:contentDescription=\"@string/confirmed\"\n            android:src=\"@drawable/ic_virus\"\n            android:tint=\"@color/color_confirmed\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView9\"\n            app:layout_constraintEnd_toStartOf=\"@+id/imageView9\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView9\" />\n\n        <TextView\n            android:id=\"@+id/textConfirmed\"\n            style=\"@style/TextCountSmall\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_confirmed\"\n            android:textSize=\"18sp\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView8\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView8\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView8\"\n            tools:text=\"1138\" />\n\n        <ImageView\n            android:id=\"@+id/imageView9\"\n            android:layout_width=\"@dimen/dimen_24\"\n            android:layout_height=\"@dimen/dimen_24\"\n            android:contentDescription=\"@string/active\"\n            android:src=\"@drawable/ic_patient\"\n            android:tint=\"@color/color_active\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView10\"\n            app:layout_constraintEnd_toStartOf=\"@+id/imageView10\"\n            app:layout_constraintHorizontal_bias=\"0.5\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView8\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView10\" />\n\n        <TextView\n            android:id=\"@+id/textActive\"\n            style=\"@style/TextCountSmall\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_active\"\n            android:textSize=\"18sp\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView9\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView9\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView9\"\n            tools:text=\"1138\" />\n\n        <ImageView\n            android:id=\"@+id/imageView10\"\n            android:layout_width=\"@dimen/dimen_24\"\n            android:layout_height=\"@dimen/dimen_24\"\n            android:contentDescription=\"@string/recovered\"\n            android:src=\"@drawable/ic_heart\"\n            android:tint=\"@color/color_recovered\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView11\"\n            app:layout_constraintEnd_toStartOf=\"@+id/imageView11\"\n            app:layout_constraintHorizontal_bias=\"0.5\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView9\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView11\" />\n\n        <TextView\n            android:id=\"@+id/textRecovered\"\n            style=\"@style/TextCountSmall\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_recovered\"\n            android:textSize=\"18sp\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView10\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView10\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView10\"\n            tools:text=\"1138\" />\n\n        <ImageView\n            android:id=\"@+id/imageView11\"\n            android:layout_width=\"@dimen/dimen_24\"\n            android:layout_height=\"@dimen/dimen_24\"\n            android:layout_marginTop=\"@dimen/dimen_8\"\n            android:contentDescription=\"@string/deaths\"\n            android:src=\"@drawable/ic_death\"\n            android:tint=\"@color/color_death\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintHorizontal_bias=\"0.5\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView10\"\n            app:layout_constraintTop_toBottomOf=\"@+id/textNotes\" />\n\n        <TextView\n            android:id=\"@+id/textDeath\"\n            style=\"@style/TextCountSmall\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginBottom=\"16dp\"\n            android:textColor=\"@color/color_death\"\n            android:textSize=\"18sp\"\n            app:layout_constraintBottom_toBottomOf=\"parent\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView11\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView11\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView11\"\n            tools:text=\"1138\" />\n\n        <ImageView\n            android:id=\"@+id/imageView12\"\n            android:layout_width=\"@dimen/dimen_16\"\n            android:layout_height=\"@dimen/dimen_16\"\n            android:layout_marginStart=\"@dimen/dimen_4\"\n            android:tint=\"@color/color_confirmed\"\n            app:layout_constraintBottom_toTopOf=\"@+id/textDistrictNewConfirm\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView8\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView8\"\n            app:srcCompat=\"@drawable/ic_trending_up\" />\n\n        <ImageView\n            android:id=\"@+id/imageView13\"\n            android:layout_width=\"@dimen/dimen_16\"\n            android:layout_height=\"@dimen/dimen_16\"\n            android:layout_marginStart=\"@dimen/dimen_4\"\n            android:tint=\"@color/color_recovered\"\n            app:layout_constraintBottom_toTopOf=\"@+id/textDistrictNewRecover\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView10\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView10\"\n            app:srcCompat=\"@drawable/ic_trending_up\" />\n\n        <ImageView\n            android:id=\"@+id/imageView14\"\n            android:layout_width=\"@dimen/dimen_16\"\n            android:layout_height=\"@dimen/dimen_16\"\n            android:layout_marginStart=\"@dimen/dimen_4\"\n            android:tint=\"@color/color_death\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView11\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView11\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView11\"\n            app:layout_constraintVertical_bias=\"0.0\"\n            app:srcCompat=\"@drawable/ic_trending_up\" />\n\n        <TextView\n            android:id=\"@+id/textDistrictNewConfirm\"\n            style=\"@style/TextCountDelta\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_confirmed\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView12\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView12\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView12\"\n            tools:text=\"1338\" />\n\n        <TextView\n            android:id=\"@+id/textDistrictNewRecover\"\n            style=\"@style/TextCountDelta\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_recovered\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView13\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView13\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView13\"\n            tools:text=\"1338\" />\n\n        <TextView\n            android:id=\"@+id/textDistrictNewDeath\"\n            style=\"@style/TextCountDelta\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_death\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView14\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView14\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView14\"\n            tools:text=\"1338\" />\n\n        <androidx.constraintlayout.widget.Group\n            android:id=\"@+id/groupStateNewConfirm\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:visibility=\"visible\"\n            app:constraint_referenced_ids=\"textDistrictNewConfirm,imageView12\"\n            tools:layout_editor_absoluteX=\"@dimen/dimen_8\"\n            tools:layout_editor_absoluteY=\"@dimen/dimen_8\" />\n\n        <androidx.constraintlayout.widget.Group\n            android:id=\"@+id/groupStateNewRecover\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:visibility=\"visible\"\n            app:constraint_referenced_ids=\"textDistrictNewRecover,imageView13\"\n            tools:layout_editor_absoluteX=\"@dimen/dimen_8\"\n            tools:layout_editor_absoluteY=\"@dimen/dimen_8\" />\n\n        <androidx.constraintlayout.widget.Group\n            android:id=\"@+id/groupStateNewDeaths\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:visibility=\"visible\"\n            app:constraint_referenced_ids=\"textDistrictNewDeath,imageView14\"\n            tools:layout_editor_absoluteX=\"@dimen/dimen_8\"\n            tools:layout_editor_absoluteY=\"@dimen/dimen_8\" />\n\n    </androidx.constraintlayout.widget.ConstraintLayout>\n</com.google.android.material.card.MaterialCardView>"
  },
  {
    "path": "app/src/main/res/layout/item_state.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<com.google.android.material.card.MaterialCardView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:layout_marginStart=\"@dimen/dimen_16\"\n    android:layout_marginTop=\"@dimen/dimen_8\"\n    android:layout_marginEnd=\"@dimen/dimen_16\"\n    android:layout_marginBottom=\"@dimen/dimen_8\"\n    android:padding=\"@dimen/dimen_8\"\n    app:cardBackgroundColor=\"@color/colorSurface\"\n    app:cardCornerRadius=\"@dimen/dimen_16\"\n    app:cardElevation=\"@dimen/dimen_4\">\n\n    <androidx.constraintlayout.widget.ConstraintLayout\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\">\n\n        <TextView\n            android:id=\"@+id/textState\"\n            style=\"@style/TextStateName\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"@dimen/dimen_4\"\n            android:textAlignment=\"center\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintHorizontal_bias=\"0.0\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n            app:layout_constraintTop_toTopOf=\"parent\"\n            tools:text=\"Maharashtra\" />\n\n        <TextView\n            android:id=\"@+id/textLastUpdatedView\"\n            style=\"@style/TextLastUpdatedTime\"\n            android:layout_width=\"0dp\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"@dimen/dimen_4\"\n            android:textAlignment=\"center\"\n            android:textAllCaps=\"false\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n            app:layout_constraintTop_toBottomOf=\"@+id/textState\"\n            tools:text=\"Last Updated: 1 minutes ago\" />\n\n        <ImageView\n            android:id=\"@+id/imageView8\"\n            android:layout_width=\"@dimen/dimen_24\"\n            android:layout_height=\"@dimen/dimen_24\"\n            android:contentDescription=\"@string/confirmed\"\n            android:src=\"@drawable/ic_virus\"\n            android:tint=\"@color/color_confirmed\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView9\"\n            app:layout_constraintEnd_toStartOf=\"@+id/imageView9\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView9\" />\n\n        <TextView\n            android:id=\"@+id/textConfirmed\"\n            style=\"@style/TextCountSmall\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_confirmed\"\n            android:textSize=\"18sp\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView8\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView8\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView8\"\n            tools:text=\"1138\" />\n\n        <ImageView\n            android:id=\"@+id/imageView9\"\n            android:layout_width=\"@dimen/dimen_24\"\n            android:layout_height=\"@dimen/dimen_24\"\n            android:contentDescription=\"@string/active\"\n            android:src=\"@drawable/ic_patient\"\n            android:tint=\"@color/color_active\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView10\"\n            app:layout_constraintEnd_toStartOf=\"@+id/imageView10\"\n            app:layout_constraintHorizontal_bias=\"0.5\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView8\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView10\" />\n\n        <TextView\n            android:id=\"@+id/textActive\"\n            style=\"@style/TextCountSmall\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_active\"\n            android:textSize=\"18sp\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView9\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView9\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView9\"\n            tools:text=\"1138\" />\n\n        <ImageView\n            android:id=\"@+id/imageView10\"\n            android:layout_width=\"@dimen/dimen_24\"\n            android:layout_height=\"@dimen/dimen_24\"\n            android:contentDescription=\"@string/recovered\"\n            android:src=\"@drawable/ic_heart\"\n            android:tint=\"@color/color_recovered\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView11\"\n            app:layout_constraintEnd_toStartOf=\"@+id/imageView11\"\n            app:layout_constraintHorizontal_bias=\"0.5\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView9\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView11\" />\n\n        <TextView\n            android:id=\"@+id/textRecovered\"\n            style=\"@style/TextCountSmall\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_recovered\"\n            android:textSize=\"18sp\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView10\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView10\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView10\"\n            tools:text=\"1138\" />\n\n        <ImageView\n            android:id=\"@+id/imageView11\"\n            android:layout_width=\"@dimen/dimen_24\"\n            android:layout_height=\"@dimen/dimen_24\"\n            android:layout_marginTop=\"@dimen/dimen_8\"\n            android:contentDescription=\"@string/deaths\"\n            android:src=\"@drawable/ic_death\"\n            android:tint=\"@color/color_death\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintHorizontal_bias=\"0.5\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView10\"\n            app:layout_constraintTop_toBottomOf=\"@+id/textLastUpdatedView\" />\n\n        <TextView\n            android:id=\"@+id/textDeath\"\n            style=\"@style/TextCountSmall\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_death\"\n            android:textSize=\"18sp\"\n            app:layout_constraintBottom_toBottomOf=\"parent\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView11\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView11\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView11\"\n            tools:text=\"1138\" />\n\n        <ImageView\n            android:id=\"@+id/imageView12\"\n            android:layout_width=\"@dimen/dimen_16\"\n            android:layout_height=\"@dimen/dimen_16\"\n            android:layout_marginStart=\"@dimen/dimen_4\"\n            android:tint=\"@color/color_confirmed\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView8\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView8\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView8\"\n            app:layout_constraintVertical_bias=\"0.0\"\n            app:srcCompat=\"@drawable/ic_trending_up\" />\n\n        <ImageView\n            android:id=\"@+id/imageView13\"\n            android:layout_width=\"@dimen/dimen_16\"\n            android:layout_height=\"@dimen/dimen_16\"\n            android:layout_marginStart=\"@dimen/dimen_4\"\n            android:tint=\"@color/color_recovered\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView10\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView10\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView10\"\n            app:layout_constraintVertical_bias=\"0.0\"\n            app:srcCompat=\"@drawable/ic_trending_up\" />\n\n        <ImageView\n            android:id=\"@+id/imageView14\"\n            android:layout_width=\"@dimen/dimen_16\"\n            android:layout_height=\"@dimen/dimen_16\"\n            android:layout_marginStart=\"@dimen/dimen_4\"\n            android:tint=\"@color/color_death\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/imageView11\"\n            app:layout_constraintStart_toEndOf=\"@+id/imageView11\"\n            app:layout_constraintTop_toTopOf=\"@+id/imageView11\"\n            app:layout_constraintVertical_bias=\"0.0\"\n            app:srcCompat=\"@drawable/ic_trending_up\" />\n\n        <TextView\n            android:id=\"@+id/textStateNewConfirm\"\n            style=\"@style/TextCountDelta\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_confirmed\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView12\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView12\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView12\"\n            tools:text=\"1338\" />\n\n        <TextView\n            android:id=\"@+id/textStateNewRecover\"\n            style=\"@style/TextCountDelta\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_recovered\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView13\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView13\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView13\"\n            tools:text=\"1338\" />\n\n        <TextView\n            android:id=\"@+id/textStateNewDeath\"\n            style=\"@style/TextCountDelta\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textColor=\"@color/color_death\"\n            app:layout_constraintEnd_toEndOf=\"@+id/imageView14\"\n            app:layout_constraintStart_toStartOf=\"@+id/imageView14\"\n            app:layout_constraintTop_toBottomOf=\"@+id/imageView14\"\n            tools:text=\"1338\" />\n\n        <androidx.constraintlayout.widget.Group\n            android:id=\"@+id/groupStateNewConfirm\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:visibility=\"visible\"\n            app:constraint_referenced_ids=\"textStateNewConfirm,imageView12\"\n            tools:layout_editor_absoluteX=\"@dimen/dimen_84\"\n            tools:layout_editor_absoluteY=\"@dimen/dimen_84\" />\n\n        <androidx.constraintlayout.widget.Group\n            android:id=\"@+id/groupStateNewRecover\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:visibility=\"visible\"\n            app:constraint_referenced_ids=\"textStateNewRecover,imageView13\"\n            tools:layout_editor_absoluteX=\"@dimen/dimen_84\"\n            tools:layout_editor_absoluteY=\"@dimen/dimen_84\" />\n\n        <androidx.constraintlayout.widget.Group\n            android:id=\"@+id/groupStateNewDeaths\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:visibility=\"visible\"\n            app:constraint_referenced_ids=\"textStateNewDeath,imageView14\"\n            tools:layout_editor_absoluteX=\"@dimen/dimen_84\"\n            tools:layout_editor_absoluteY=\"@dimen/dimen_84\" />\n\n    </androidx.constraintlayout.widget.ConstraintLayout>\n</com.google.android.material.card.MaterialCardView>"
  },
  {
    "path": "app/src/main/res/layout/item_total.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:padding=\"@dimen/dimen_4\"\n    tools:context=\".ui.main.MainActivity\">\n\n    <!--    Confirmed Card view Tab-->\n    <com.google.android.material.card.MaterialCardView\n        android:id=\"@+id/confirmedLayout\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"@dimen/dimen_16\"\n        android:layout_marginTop=\"@dimen/dimen_8\"\n        android:layout_marginEnd=\"@dimen/dimen_8\"\n        android:layout_marginBottom=\"@dimen/dimen_8\"\n        app:cardCornerRadius=\"@dimen/dimen_16\"\n        app:cardElevation=\"@dimen/dimen_4\"\n        app:cardBackgroundColor=\"@color/colorSurface\"\n        app:layout_constraintBottom_toTopOf=\"@+id/recoverLayout\"\n        app:layout_constraintEnd_toStartOf=\"@+id/activeLayout\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\">\n\n        <androidx.constraintlayout.widget.ConstraintLayout\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"match_parent\"\n            android:padding=\"@dimen/dimen_8\">\n\n            <ImageView\n                android:id=\"@+id/imageView2\"\n                style=\"@style/ImageIcon\"\n                android:layout_width=\"@dimen/dimen_72\"\n                android:layout_height=\"@dimen/dimen_72\"\n                android:layout_marginTop=\"@dimen/dimen_16\"\n                android:contentDescription=\"@string/confirmed\"\n                android:src=\"@drawable/ic_virus\"\n                android:tint=\"@color/color_confirmed\"\n                app:layout_constraintBottom_toTopOf=\"@+id/textConfirmed\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintStart_toEndOf=\"@+id/imageView\"\n                app:layout_constraintStart_toStartOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n            <ImageView\n                android:id=\"@+id/imageView\"\n                android:layout_width=\"@dimen/dimen_24\"\n                android:layout_height=\"@dimen/dimen_24\"\n                android:layout_gravity=\"center\"\n                android:layout_marginTop=\"@dimen/dimen_4\"\n                android:contentDescription=\"@string/confirmed\"\n                android:src=\"@drawable/ic_trending_up\"\n                android:tint=\"@color/color_confirmed\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n            <TextView\n                android:id=\"@+id/textNewConfirmed\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_marginEnd=\"@dimen/dimen_4\"\n                android:textColor=\"@color/color_confirmed\"\n                android:textSize=\"12sp\"\n                android:textStyle=\"bold\"\n                app:layout_constraintEnd_toEndOf=\"@+id/imageView\"\n                app:layout_constraintStart_toStartOf=\"@+id/imageView\"\n                app:layout_constraintTop_toBottomOf=\"@+id/imageView\"\n                tools:text=\"1138\" />\n\n            <TextView\n                android:id=\"@+id/textConfirmed\"\n                style=\"@style/TextCount\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:textColor=\"@color/color_confirmed\"\n                app:layout_constraintBottom_toTopOf=\"@+id/textView\"\n                app:layout_constraintEnd_toEndOf=\"@+id/imageView2\"\n                app:layout_constraintStart_toStartOf=\"@+id/imageView2\"\n                app:layout_constraintTop_toBottomOf=\"@+id/imageView2\"\n                tools:text=\"1138\" />\n\n            <TextView\n                android:id=\"@+id/textView\"\n                style=\"@style/TextTitle\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_marginBottom=\"@dimen/dimen_16\"\n                android:text=\"@string/confirmed\"\n                android:textColor=\"@color/color_confirmed\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintEnd_toEndOf=\"@+id/textConfirmed\"\n                app:layout_constraintStart_toStartOf=\"@+id/textConfirmed\"\n                app:layout_constraintTop_toBottomOf=\"@+id/textConfirmed\" />\n\n            <androidx.constraintlayout.widget.Group\n                android:id=\"@+id/groupNewConfirmed\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:visibility=\"visible\"\n                app:constraint_referenced_ids=\"imageView,textNewConfirmed\" />\n        </androidx.constraintlayout.widget.ConstraintLayout>\n    </com.google.android.material.card.MaterialCardView>\n\n    <!--  Active Card view Tab -->\n    <com.google.android.material.card.MaterialCardView\n        android:id=\"@+id/activeLayout\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"@dimen/dimen_8\"\n        android:layout_marginTop=\"@dimen/dimen_8\"\n        android:layout_marginEnd=\"@dimen/dimen_16\"\n        android:layout_marginBottom=\"@dimen/dimen_8\"\n        app:cardCornerRadius=\"@dimen/dimen_16\"\n        app:cardElevation=\"@dimen/dimen_4\"\n        app:cardBackgroundColor=\"@color/colorSurface\"\n        app:layout_constraintBottom_toTopOf=\"@+id/deathLayout\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toEndOf=\"@+id/confirmedLayout\"\n        app:layout_constraintTop_toTopOf=\"parent\">\n\n        <androidx.constraintlayout.widget.ConstraintLayout\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"match_parent\"\n            android:padding=\"@dimen/dimen_8\">\n\n            <ImageView\n                android:id=\"@+id/imageView3\"\n                style=\"@style/ImageIcon\"\n                android:layout_width=\"@dimen/dimen_72\"\n                android:layout_height=\"@dimen/dimen_72\"\n                android:layout_marginTop=\"@dimen/dimen_16\"\n                android:contentDescription=\"@string/active\"\n                android:src=\"@drawable/ic_patient\"\n                android:tint=\"@color/color_active\"\n                app:layout_constraintBottom_toTopOf=\"@+id/textActive\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintStart_toStartOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n            <TextView\n                android:id=\"@+id/textActive\"\n                style=\"@style/TextCount\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:textColor=\"@color/color_active\"\n                app:layout_constraintBottom_toTopOf=\"@+id/textView2\"\n                app:layout_constraintEnd_toEndOf=\"@+id/imageView3\"\n                app:layout_constraintStart_toStartOf=\"@+id/imageView3\"\n                app:layout_constraintTop_toBottomOf=\"@+id/imageView3\"\n                tools:text=\"1138\" />\n\n            <TextView\n                android:id=\"@+id/textView2\"\n                style=\"@style/TextTitle\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_marginBottom=\"@dimen/dimen_16\"\n                android:text=\"@string/active\"\n                android:textColor=\"@color/color_active\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintEnd_toEndOf=\"@+id/textActive\"\n                app:layout_constraintStart_toStartOf=\"@+id/textActive\"\n                app:layout_constraintTop_toBottomOf=\"@+id/textActive\" />\n        </androidx.constraintlayout.widget.ConstraintLayout>\n    </com.google.android.material.card.MaterialCardView>\n\n    <!--  Recovered Card view Tab -->\n    <com.google.android.material.card.MaterialCardView\n        android:id=\"@+id/recoverLayout\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"@dimen/dimen_16\"\n        android:layout_marginTop=\"@dimen/dimen_8\"\n        android:layout_marginEnd=\"@dimen/dimen_8\"\n        app:cardCornerRadius=\"@dimen/dimen_16\"\n        app:cardElevation=\"@dimen/dimen_4\"\n        app:cardBackgroundColor=\"@color/colorSurface\"\n        app:layout_constraintBottom_toBottomOf=\"@+id/deathLayout\"\n        app:layout_constraintEnd_toStartOf=\"@+id/deathLayout\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id/confirmedLayout\">\n\n        <androidx.constraintlayout.widget.ConstraintLayout\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"match_parent\"\n            android:padding=\"@dimen/dimen_8\">\n\n            <ImageView\n                android:id=\"@+id/imageView4\"\n                style=\"@style/ImageIcon\"\n                android:layout_width=\"@dimen/dimen_72\"\n                android:layout_height=\"@dimen/dimen_72\"\n                android:layout_marginTop=\"@dimen/dimen_16\"\n                android:contentDescription=\"@string/recovered\"\n                android:src=\"@drawable/ic_heart\"\n                android:tint=\"@color/color_recovered\"\n                app:layout_constraintBottom_toTopOf=\"@+id/textRecovered\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintStart_toStartOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n            <ImageView\n                android:id=\"@+id/imageView5\"\n                android:layout_width=\"@dimen/dimen_24\"\n                android:layout_height=\"@dimen/dimen_24\"\n                android:layout_marginTop=\"@dimen/dimen_4\"\n                android:contentDescription=\"@string/recovered\"\n                android:src=\"@drawable/ic_trending_up\"\n                android:tint=\"@color/color_recovered\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n            <TextView\n                android:id=\"@+id/textNewRecovered\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_marginEnd=\"@dimen/dimen_4\"\n                android:textColor=\"@color/color_recovered\"\n                android:textSize=\"12sp\"\n                android:textStyle=\"bold\"\n                app:layout_constraintEnd_toEndOf=\"@+id/imageView5\"\n                app:layout_constraintStart_toStartOf=\"@+id/imageView5\"\n                app:layout_constraintTop_toBottomOf=\"@+id/imageView5\"\n                tools:text=\"1138\" />\n\n\n            <TextView\n                android:id=\"@+id/textRecovered\"\n                style=\"@style/TextCount\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:textColor=\"@color/color_recovered\"\n                app:layout_constraintBottom_toTopOf=\"@+id/textView3\"\n                app:layout_constraintEnd_toEndOf=\"@+id/imageView4\"\n                app:layout_constraintStart_toStartOf=\"@+id/imageView4\"\n                app:layout_constraintTop_toBottomOf=\"@+id/imageView4\"\n                tools:text=\"1138\" />\n\n            <TextView\n                android:id=\"@+id/textView3\"\n                style=\"@style/TextTitle\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_marginBottom=\"@dimen/dimen_16\"\n                android:text=\"@string/recovered\"\n                android:textColor=\"@color/color_recovered\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintEnd_toEndOf=\"@+id/textRecovered\"\n                app:layout_constraintStart_toStartOf=\"@+id/textRecovered\"\n                app:layout_constraintTop_toBottomOf=\"@+id/textRecovered\" />\n\n            <androidx.constraintlayout.widget.Group\n                android:id=\"@+id/groupNewRecovered\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:visibility=\"visible\"\n                app:constraint_referenced_ids=\"imageView5,textNewRecovered\" />\n        </androidx.constraintlayout.widget.ConstraintLayout>\n    </com.google.android.material.card.MaterialCardView>\n\n    <!--  Death Card view Tab -->\n    <com.google.android.material.card.MaterialCardView\n        android:id=\"@+id/deathLayout\"\n        android:layout_width=\"0dp\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"@dimen/dimen_8\"\n        android:layout_marginTop=\"@dimen/dimen_8\"\n        android:layout_marginEnd=\"@dimen/dimen_16\"\n        android:layout_marginBottom=\"@dimen/dimen_8\"\n        app:cardCornerRadius=\"@dimen/dimen_16\"\n        app:cardElevation=\"@dimen/dimen_4\"\n        app:cardBackgroundColor=\"@color/colorSurface\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toEndOf=\"@+id/recoverLayout\"\n        app:layout_constraintTop_toBottomOf=\"@+id/activeLayout\">\n\n        <androidx.constraintlayout.widget.ConstraintLayout\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"match_parent\"\n            android:padding=\"@dimen/dimen_8\">\n\n            <ImageView\n                android:id=\"@+id/imageView6\"\n                style=\"@style/ImageIcon\"\n                android:layout_width=\"@dimen/dimen_72\"\n                android:layout_height=\"@dimen/dimen_72\"\n                android:layout_marginTop=\"@dimen/dimen_16\"\n                android:contentDescription=\"@string/deaths\"\n                android:src=\"@drawable/ic_death\"\n                android:tint=\"@color/color_death\"\n                app:layout_constraintBottom_toTopOf=\"@+id/textDeceased\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintStart_toStartOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n\n            <ImageView\n                android:id=\"@+id/imageView7\"\n                android:layout_width=\"@dimen/dimen_24\"\n                android:layout_height=\"@dimen/dimen_24\"\n                android:layout_marginTop=\"@dimen/dimen_4\"\n                android:contentDescription=\"@string/deaths\"\n                android:src=\"@drawable/ic_trending_up\"\n                android:tint=\"@color/color_death\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n            <TextView\n                android:id=\"@+id/textNewDeaths\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_marginEnd=\"@dimen/dimen_4\"\n                android:textColor=\"@color/color_death\"\n                android:textSize=\"12sp\"\n                android:textStyle=\"bold\"\n                app:layout_constraintEnd_toEndOf=\"@+id/imageView7\"\n                app:layout_constraintStart_toStartOf=\"@+id/imageView7\"\n                app:layout_constraintTop_toBottomOf=\"@+id/imageView7\"\n                tools:text=\"1138\" />\n\n\n            <TextView\n                android:id=\"@+id/textDeceased\"\n                style=\"@style/TextCount\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:textColor=\"@color/color_death\"\n                app:layout_constraintBottom_toTopOf=\"@+id/textView4\"\n                app:layout_constraintEnd_toEndOf=\"@+id/imageView6\"\n                app:layout_constraintStart_toStartOf=\"@+id/imageView6\"\n                app:layout_constraintTop_toBottomOf=\"@+id/imageView6\"\n                tools:text=\"1138\" />\n\n            <TextView\n                android:id=\"@+id/textView4\"\n                style=\"@style/TextTitle\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_marginBottom=\"@dimen/dimen_16\"\n                android:text=\"@string/deaths\"\n                android:textColor=\"@color/color_death\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintEnd_toEndOf=\"@+id/textDeceased\"\n                app:layout_constraintStart_toStartOf=\"@+id/textDeceased\"\n                app:layout_constraintTop_toBottomOf=\"@+id/textDeceased\" />\n\n            <androidx.constraintlayout.widget.Group\n                android:id=\"@+id/groupNewDeaths\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:visibility=\"visible\"\n                app:constraint_referenced_ids=\"textNewDeaths,imageView7\" />\n        </androidx.constraintlayout.widget.ConstraintLayout>\n    </com.google.android.material.card.MaterialCardView>\n\n</androidx.constraintlayout.widget.ConstraintLayout>\n"
  },
  {
    "path": "app/src/main/res/menu/toolbar_menu.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<menu xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\">\n    <item\n        android:id=\"@+id/menu_uimode\"\n        android:icon=\"@drawable/ic_lightbulb\"\n        app:showAsAction=\"always\"\n        android:title=\"@string/menu_ui_mode\" />\n</menu>"
  },
  {
    "path": "app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <background android:drawable=\"@color/ic_launcher_background\" />\n    <foreground android:drawable=\"@drawable/ic_launcher_foreground\" />\n</adaptive-icon>"
  },
  {
    "path": "app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<adaptive-icon xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <background android:drawable=\"@color/ic_launcher_background\" />\n    <foreground android:drawable=\"@drawable/ic_launcher_foreground\" />\n</adaptive-icon>"
  },
  {
    "path": "app/src/main/res/values/bool.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <bool name=\"windowLightStatusBar\">true</bool>\n</resources>"
  },
  {
    "path": "app/src/main/res/values/colors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"colorPrimary\">#FFFFFF</color>\n    <color name=\"colorPrimaryDark\">#0E0E0E</color>\n    <color name=\"colorAccent\">#000</color>\n    <color name=\"background\">#F1F1F1</color>\n\n    <!--Tint Colors for the Icons and Text-->\n    <color name=\"color_confirmed\">#D32F2F</color>\n    <color name=\"color_recovered\">#388E3C</color>\n    <color name=\"color_active\">#1976D2</color>\n    <color name=\"color_death\">#6D6D6D</color>\n\n    <!-- Text Colors-->\n    <color name=\"colorSurface\">#FFFFFF</color>\n    <color name=\"colorTextLastUpdated\">#000</color>\n    <color name=\"colorTextDefault\">#000</color>\n    <color name=\"color_toolbar_title\">#000</color>\n\n    <color name=\"color_bulb_icon\">#000</color>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/dimens.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <dimen name=\"dimen_16\">16dp</dimen>\n    <dimen name=\"dimen_4\">4dp</dimen>\n    <dimen name=\"dimen_8\">8dp</dimen>\n    <dimen name=\"dimen_24\">24dp</dimen>\n    <dimen name=\"dimen_72\">72dp</dimen>\n</resources>"
  },
  {
    "path": "app/src/main/res/values/ic_launcher_background.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"ic_launcher_background\">#FFFFFF</color>\n</resources>"
  },
  {
    "path": "app/src/main/res/values/strings.xml",
    "content": "<resources>\n    <string name=\"app_name\">COVID19 Notifier 🇮🇳</string>\n    <string name=\"confirmed\">Confirmed</string>\n    <string name=\"active\">Active</string>\n    <string name=\"recovered\">Recovered</string>\n    <string name=\"deaths\">Deaths</string>\n    <string name=\"default_notification_channel_id\">default</string>\n    <string name=\"text_confirmed_cases\">Confirmed Cases : %s</string>\n    <string name=\"text_last_updated\">Last Updated : %s</string>\n    <string name=\"default_notification_channel_name\">Covid-19 India</string>\n    <string name=\"menu_ui_mode\">Dark Mode</string>\n\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/styles.xml",
    "content": "<resources>\n\n    <style name=\"TextTitle\">\n        <item name=\"android:layout_gravity\">center</item>\n        <item name=\"android:textAppearance\">@style/TextAppearance.MaterialComponents.Headline6\n        </item>\n    </style>\n\n    <style name=\"ToolBarSubtitle\" parent=\"TextAppearance.MaterialComponents.Subtitle2\">\n        <item name=\"android:textColor\">@color/colorTextLastUpdated</item>\n    </style>\n\n    <style name=\"TextStateName\">\n        <item name=\"android:layout_gravity\">center</item>\n        <item name=\"android:textAppearance\">@style/TextAppearance.MaterialComponents.Body1</item>\n        <item name=\"android:textColor\">@color/colorAccent</item>\n    </style>\n\n    <style name=\"TextLastUpdatedTime\">\n        <item name=\"android:layout_gravity\">center</item>\n        <item name=\"android:textStyle\">italic</item>\n        <item name=\"android:textAppearance\">@style/TextAppearance.MaterialComponents.Overline\n        </item>\n    </style>\n\n    <style name=\"ImageIcon\">\n        <item name=\"android:layout_gravity\">center</item>\n        <item name=\"android:tint\">?colorAccent</item>\n    </style>\n\n    <style name=\"TextCount\">\n        <item name=\"android:textAppearance\">@style/TextAppearance.MaterialComponents.Headline5\n        </item>\n        <item name=\"android:textColor\">@android:color/white</item>\n        <item name=\"android:textStyle\">bold</item>\n        <item name=\"android:layout_gravity\">center</item>\n    </style>\n\n    <style name=\"TextCountSmall\">\n        <item name=\"android:textAppearance\">@style/TextAppearance.MaterialComponents.Subtitle2\n        </item>\n        <item name=\"android:textStyle\">bold</item>\n        <item name=\"android:layout_gravity\">center</item>\n        <item name=\"android:layout_margin\">4dp</item>\n    </style>\n\n    <style name=\"LayoutStyle\">\n        <item name=\"android:orientation\">vertical</item>\n        <item name=\"android:padding\">@dimen/dimen_16</item>\n        <item name=\"android:gravity\">center_vertical</item>\n        <item name=\"android:layout_margin\">4dp</item>\n    </style>\n\n    <style name=\"TextCountDelta\">\n        <item name=\"android:textAppearance\">@style/TextAppearance.MaterialComponents.Overline</item>\n        <item name=\"android:textStyle\">bold</item>\n    </style>\n\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/theme.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources xmlns:tools=\"http://schemas.android.com/tools\">\n\n    <!-- Base application theme. -->\n    <style name=\"AppTheme\" parent=\"Theme.MaterialComponents.DayNight.NoActionBar\">\n        <!-- Customize your theme here. -->\n        <item name=\"colorPrimary\">@color/colorPrimary</item>\n        <item name=\"colorPrimaryDark\">@color/colorPrimaryDark</item>\n        <item name=\"colorAccent\">@color/colorAccent</item>\n        <item name=\"colorSurface\">@color/colorSurface</item>\n        <item name=\"android:colorBackground\">@color/background</item>\n        <item name=\"android:statusBarColor\">@color/colorPrimary</item>\n        <item name=\"android:windowLightStatusBar\" tools:targetApi=\"m\">@bool/windowLightStatusBar\n        </item>\n\n        <item name=\"fontFamily\">@font/google_sans</item>\n    </style>\n\n    <style name=\"AppTheme.NoActionBar\">\n        <item name=\"windowActionBar\">false</item>\n        <item name=\"windowNoTitle\">true</item>\n        <item name=\"fontFamily\">@font/google_sans</item>\n    </style>\n</resources>"
  },
  {
    "path": "app/src/main/res/values-night/bool.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <bool name=\"windowLightStatusBar\">false</bool>\n</resources>"
  },
  {
    "path": "app/src/main/res/values-night/colors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"colorPrimary\">#0E0E0E</color>\n    <color name=\"colorPrimaryDark\">#000000</color>\n    <color name=\"colorAccent\">#F1FFAA00</color>\n    <color name=\"background\">#000000</color>\n    <color name=\"colorSurface\">#121212</color>\n\n\n    <!--Tint Colors for the Icons and Text-->\n    <color name=\"color_confirmed\">#EF6C6C</color>\n    <color name=\"color_recovered\">#6BC697</color>\n    <color name=\"color_active\">#65D1D6</color>\n    <color name=\"color_death\">#A0A0A0</color>\n\n    <!-- Text Colors-->\n    <color name=\"colorTextLastUpdated\">#F1E5BC</color>\n    <color name=\"colorTextDefault\">#DEFFFFFF</color>\n    <color name=\"color_toolbar_title\">#F1FFAA00</color>\n\n    <color name=\"color_bulb_icon\">#F1FFAA00</color>\n</resources>"
  },
  {
    "path": "app/src/test/java/dev/shreyaspatil/covid19notify/ExampleUnitTest.kt",
    "content": "package dev.shreyaspatil.covid19notify\n\nimport org.junit.Assert.assertEquals\nimport org.junit.Test\n\n/**\n * Example local unit test, which will execute on the development machine (host).\n *\n * See [testing documentation](http://d.android.com/tools/testing).\n */\nclass ExampleUnitTest {\n    @Test\n    fun addition_isCorrect() {\n        assertEquals(4, 2 + 2)\n    }\n}\n"
  },
  {
    "path": "build.gradle",
    "content": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n    ext.kotlin_version = '1.4.21'\n    repositories {\n        google()\n        jcenter()\n        \n    }\n    dependencies {\n        classpath 'com.android.tools.build:gradle:4.0.1'\n        classpath \"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version\"\n\n        // NOTE: Do not place your application dependencies here; they belong\n        // in the individual module build.gradle files\n    }\n}\n\nallprojects {\n    repositories {\n        google()\n        jcenter()\n        \n    }\n}\n\ntask clean(type: Delete) {\n    delete rootProject.buildDir\n}\n"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "content": "#Mon Mar 30 19:22:13 IST 2020\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-6.1.1-all.zip\n"
  },
  {
    "path": "gradle.properties",
    "content": "# Project-wide Gradle settings.\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will override*\n# any settings specified in this file.\n# For more details on how to configure your build environment visit\n# http://www.gradle.org/docs/current/userguide/build_environment.html\n# Specifies the JVM arguments used for the daemon process.\n# The setting is particularly useful for tweaking memory settings.\norg.gradle.jvmargs=-Xmx1536m\n# When configured, Gradle will run in incubating parallel mode.\n# This option should only be used with decoupled projects. More details, visit\n# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects\n# org.gradle.parallel=true\n# AndroidX package structure to make it clearer which packages are bundled with the\n# Android operating system, and which are packaged with your app's APK\n# https://developer.android.com/topic/libraries/support-library/androidx-rn\nandroid.useAndroidX=true\n# Automatically convert third-party libraries to use AndroidX\nandroid.enableJetifier=true\n# Kotlin code style for this project: \"official\" or \"obsolete\":\nkotlin.code.style=official\n"
  },
  {
    "path": "gradlew",
    "content": "#!/usr/bin/env sh\n\n##############################################################################\n##\n##  Gradle start up script for UN*X\n##\n##############################################################################\n\n# Attempt to set APP_HOME\n# Resolve links: $0 may be a link\nPRG=\"$0\"\n# Need this for relative symlinks.\nwhile [ -h \"$PRG\" ]; do\n  ls=$(ls -ld \"$PRG\")\n  link=$(expr \"$ls\" : '.*-> \\(.*\\)$')\n  if expr \"$link\" : '/.*' >/dev/null; then\n    PRG=\"$link\"\n  else\n    PRG=$(dirname \"$PRG\")\"/$link\"\n  fi\ndone\nSAVED=\"$(pwd)\"\ncd \"$(dirname \\\"$PRG\\\")/\" >/dev/null\nAPP_HOME=\"$(pwd -P)\"\ncd \"$SAVED\" >/dev/null\n\nAPP_NAME=\"Gradle\"\nAPP_BASE_NAME=$(basename \"$0\")\n\n# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nDEFAULT_JVM_OPTS=\"\"\n\n# Use the maximum available, or set MAX_FD != -1 to use that value.\nMAX_FD=\"maximum\"\n\nwarn() {\n  echo \"$*\"\n}\n\ndie() {\n  echo\n  echo \"$*\"\n  echo\n  exit 1\n}\n\n# OS specific support (must be 'true' or 'false').\ncygwin=false\nmsys=false\ndarwin=false\nnonstop=false\ncase \"$(uname)\" in\nCYGWIN*)\n  cygwin=true\n  ;;\nDarwin*)\n  darwin=true\n  ;;\nMINGW*)\n  msys=true\n  ;;\nNONSTOP*)\n  nonstop=true\n  ;;\nesac\n\nCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar\n\n# Determine the Java command to use to start the JVM.\nif [ -n \"$JAVA_HOME\" ]; then\n  if [ -x \"$JAVA_HOME/jre/sh/java\" ]; then\n    # IBM's JDK on AIX uses strange locations for the executables\n    JAVACMD=\"$JAVA_HOME/jre/sh/java\"\n  else\n    JAVACMD=\"$JAVA_HOME/bin/java\"\n  fi\n  if [ ! -x \"$JAVACMD\" ]; then\n    die \"ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\n  fi\nelse\n  JAVACMD=\"java\"\n  which java >/dev/null 2>&1 || die \"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\nfi\n\n# Increase the maximum file descriptors if we can.\nif [ \"$cygwin\" = \"false\" -a \"$darwin\" = \"false\" -a \"$nonstop\" = \"false\" ]; then\n  MAX_FD_LIMIT=$(ulimit -H -n)\n  if [ $? -eq 0 ]; then\n    if [ \"$MAX_FD\" = \"maximum\" -o \"$MAX_FD\" = \"max\" ]; then\n      MAX_FD=\"$MAX_FD_LIMIT\"\n    fi\n    ulimit -n $MAX_FD\n    if [ $? -ne 0 ]; then\n      warn \"Could not set maximum file descriptor limit: $MAX_FD\"\n    fi\n  else\n    warn \"Could not query maximum file descriptor limit: $MAX_FD_LIMIT\"\n  fi\nfi\n\n# For Darwin, add options to specify how the application appears in the dock\nif $darwin; then\n  GRADLE_OPTS=\"$GRADLE_OPTS \\\"-Xdock:name=$APP_NAME\\\" \\\"-Xdock:icon=$APP_HOME/media/gradle.icns\\\"\"\nfi\n\n# For Cygwin, switch paths to Windows format before running java\nif $cygwin; then\n  APP_HOME=$(cygpath --path --mixed \"$APP_HOME\")\n  CLASSPATH=$(cygpath --path --mixed \"$CLASSPATH\")\n  JAVACMD=$(cygpath --unix \"$JAVACMD\")\n\n  # We build the pattern for arguments to be converted via cygpath\n  ROOTDIRSRAW=$(find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null)\n  SEP=\"\"\n  for dir in $ROOTDIRSRAW; do\n    ROOTDIRS=\"$ROOTDIRS$SEP$dir\"\n    SEP=\"|\"\n  done\n  OURCYGPATTERN=\"(^($ROOTDIRS))\"\n  # Add a user-defined pattern to the cygpath arguments\n  if [ \"$GRADLE_CYGPATTERN\" != \"\" ]; then\n    OURCYGPATTERN=\"$OURCYGPATTERN|($GRADLE_CYGPATTERN)\"\n  fi\n  # Now convert the arguments - kludge to limit ourselves to /bin/sh\n  i=0\n  for arg in \"$@\"; do\n    CHECK=$(echo \"$arg\" | egrep -c \"$OURCYGPATTERN\" -)\n    CHECK2=$(echo \"$arg\" | egrep -c \"^-\") ### Determine if an option\n\n    if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ]; then ### Added a condition\n      eval $(echo args$i)=$(cygpath --path --ignore --mixed \"$arg\")\n    else\n      eval $(echo args$i)=\"\\\"$arg\\\"\"\n    fi\n    i=$((i + 1))\n  done\n  case $i in\n  0) set -- ;;\n  1) set -- \"$args0\" ;;\n  2) set -- \"$args0\" \"$args1\" ;;\n  3) set -- \"$args0\" \"$args1\" \"$args2\" ;;\n  4) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" ;;\n  5) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" ;;\n  6) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" ;;\n  7) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" ;;\n  8) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" \"$args7\" ;;\n  9) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" \"$args7\" \"$args8\" ;;\n  esac\nfi\n\n# Escape application args\nsave() {\n  for i; do printf %s\\\\n \"$i\" | sed \"s/'/'\\\\\\\\''/g;1s/^/'/;\\$s/\\$/' \\\\\\\\/\"; done\n  echo \" \"\n}\nAPP_ARGS=$(save \"$@\")\n\n# Collect all arguments for the java command, following the shell quoting and substitution rules\neval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS \"\\\"-Dorg.gradle.appname=$APP_BASE_NAME\\\"\" -classpath \"\\\"$CLASSPATH\\\"\" org.gradle.wrapper.GradleWrapperMain \"$APP_ARGS\"\n\n# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong\nif [ \"$(uname)\" = \"Darwin\" ] && [ \"$HOME\" = \"$PWD\" ]; then\n  cd \"$(dirname \"$0\")\"\nfi\n\nexec \"$JAVACMD\" \"$@\"\n"
  },
  {
    "path": "gradlew.bat",
    "content": "@if \"%DEBUG%\" == \"\" @echo off\n@rem ##########################################################################\n@rem\n@rem  Gradle startup script for Windows\n@rem\n@rem ##########################################################################\n\n@rem Set local scope for the variables with windows NT shell\nif \"%OS%\"==\"Windows_NT\" setlocal\n\nset DIRNAME=%~dp0\nif \"%DIRNAME%\" == \"\" set DIRNAME=.\nset APP_BASE_NAME=%~n0\nset APP_HOME=%DIRNAME%\n\n@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nset DEFAULT_JVM_OPTS=\n\n@rem Find java.exe\nif defined JAVA_HOME goto findJavaFromJavaHome\n\nset JAVA_EXE=java.exe\n%JAVA_EXE% -version >NUL 2>&1\nif \"%ERRORLEVEL%\" == \"0\" goto init\n\necho.\necho ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\necho.\necho Please set the JAVA_HOME variable in your environment to match the\necho location of your Java installation.\n\ngoto fail\n\n:findJavaFromJavaHome\nset JAVA_HOME=%JAVA_HOME:\"=%\nset JAVA_EXE=%JAVA_HOME%/bin/java.exe\n\nif exist \"%JAVA_EXE%\" goto init\n\necho.\necho ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%\necho.\necho Please set the JAVA_HOME variable in your environment to match the\necho location of your Java installation.\n\ngoto fail\n\n:init\n@rem Get command-line arguments, handling Windows variants\n\nif not \"%OS%\" == \"Windows_NT\" goto win9xME_args\n\n:win9xME_args\n@rem Slurp the command line arguments.\nset CMD_LINE_ARGS=\nset _SKIP=2\n\n:win9xME_args_slurp\nif \"x%~1\" == \"x\" goto execute\n\nset CMD_LINE_ARGS=%*\n\n:execute\n@rem Setup the command line\n\nset CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n\n@rem Execute Gradle\n\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% \"-Dorg.gradle.appname=%APP_BASE_NAME%\" -classpath \"%CLASSPATH%\" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%\n\n:end\n@rem End local scope for the variables with windows NT shell\nif \"%ERRORLEVEL%\"==\"0\" goto mainEnd\n\n:fail\nrem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\nrem the _cmd.exe /c_ return code!\nif  not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\nexit /b 1\n\n:mainEnd\nif \"%OS%\"==\"Windows_NT\" endlocal\n\n:omega\n"
  },
  {
    "path": "settings.gradle",
    "content": "rootProject.name='Covid19Notify'\ninclude ':app'\n"
  }
]