├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── ic_launcher_round.png │ │ ├── values │ │ │ ├── dimens.xml │ │ │ ├── colors.xml │ │ │ ├── styles.xml │ │ │ └── strings.xml │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ ├── drawable │ │ │ ├── ic_stop.xml │ │ │ ├── ic_launcher_background.xml │ │ │ └── ic_camcorder.xml │ │ ├── values-night │ │ │ └── styles.xml │ │ ├── menu │ │ │ └── menu_scrolling.xml │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ └── layout │ │ │ └── activity_main.xml │ │ ├── java │ │ └── dev │ │ │ └── bmcreations │ │ │ └── scrcast │ │ │ └── app │ │ │ └── list │ │ │ ├── StateCallbackActivity.kt │ │ │ ├── StateObserverActivity.kt │ │ │ ├── SimpleNotificationProvider.kt │ │ │ ├── FABExtensions.kt │ │ │ ├── MainActivity.kt │ │ │ └── jvm │ │ │ └── JavaMainActivity.java │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── library ├── consumer-rules.pro ├── .gitignore ├── gradle.properties ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── colors.xml │ │ │ └── strings.xml │ │ └── drawable │ │ │ ├── ic_stop.xml │ │ │ ├── ic_pause.xml │ │ │ ├── ic_resume.xml │ │ │ ├── ic_camcorder.xml │ │ │ └── ic_storage_permission_dialog.xml │ │ ├── java │ │ └── dev │ │ │ └── bmcreations │ │ │ └── scrcast │ │ │ ├── extensions │ │ │ └── FeatureCompatibility.kt │ │ │ ├── internal │ │ │ ├── recorder │ │ │ │ ├── service │ │ │ │ │ ├── Orientations.kt │ │ │ │ │ └── RecorderService.kt │ │ │ │ ├── Action.kt │ │ │ │ ├── State.kt │ │ │ │ ├── receiver │ │ │ │ │ └── RecordingNotificationReceiver.kt │ │ │ │ └── notification │ │ │ │ │ └── RecorderNotificationProvider.kt │ │ │ ├── extensions │ │ │ │ └── Timer.kt │ │ │ ├── request │ │ │ │ └── RecordScreen.kt │ │ │ └── config │ │ │ │ └── dsl │ │ │ │ └── OptionsDSL.kt │ │ │ ├── recorder │ │ │ ├── RecordingCallbacks.kt │ │ │ ├── notification │ │ │ │ └── NotificationProvider.kt │ │ │ └── RecordingState.kt │ │ │ ├── config │ │ │ └── Options.kt │ │ │ └── ScrCast.kt │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── lifecycle ├── consumer-rules.pro ├── .gitignore ├── gradle.properties ├── src │ ├── main │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── dev │ │ │ └── bmcreations │ │ │ └── scrcast │ │ │ └── lifecycle │ │ │ └── ScrCastLifecycleObserver.kt │ ├── test │ │ └── java │ │ │ └── dev │ │ │ └── bmcreations │ │ │ └── scrcast │ │ │ └── livedata │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── dev │ │ └── bmcreations │ │ └── scrcast │ │ └── livedata │ │ └── ExampleInstrumentedTest.kt ├── README.md ├── build.gradle └── proguard-rules.pro ├── logo.png ├── readme-header.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── docs └── css │ └── site.css ├── .github ├── ISSUE_TEMPLATE │ ├── question.md │ ├── feature_request.md │ └── bug_report.md └── workflows │ ├── android.yml │ ├── dokka.yml │ └── on-release-publish.yml ├── install_archives.sh ├── upload_archives.sh ├── settings.gradle ├── .gitignore ├── deploy-docs.sh ├── android-library.gradle ├── mkdocs.yml ├── gradle.properties ├── gradlew.bat ├── dependencies.gradle ├── README.md ├── gradlew ├── CHANGELOG.md └── LICENSE.txt /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /library/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /lifecycle/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /library/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /lifecycle/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/logo.png -------------------------------------------------------------------------------- /readme-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/readme-header.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /library/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=scrcast 2 | POM_NAME=scrcast 3 | POM_PACKAGING=aar 4 | VERSION_NAME=0.4.0-SNAPSHOT 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /lifecycle/gradle.properties: -------------------------------------------------------------------------------- 1 | POM_ARTIFACT_ID=scrcast-lifecycle 2 | POM_NAME=scrcast-lifecycle 3 | POM_PACKAGING=aar 4 | VERSION_NAME=0.1.0 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /docs/css/site.css: -------------------------------------------------------------------------------- 1 | .md-typeset h1, .md-typeset h2, .md-typeset h3, .md-typeset h4 { 2 | font-weight: bold; 3 | color: #353535; 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bmcreations/scrcast/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Question 3 | about: Ask a question 4 | title: '' 5 | labels: question 6 | assignees: bmc08gt 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /library/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #B5332A 4 | 5 | -------------------------------------------------------------------------------- /install_archives.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Clean any previous Dokka docs. 4 | rm -rf docs/api 5 | 6 | # Build the new Dokka docs. 7 | ./gradlew clean installArchives --no-daemon --no-parallel 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 180dp 3 | 16dp 4 | 16dp 5 | -------------------------------------------------------------------------------- /lifecycle/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /library/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Pause 4 | Resume 5 | Stop 6 | 7 | -------------------------------------------------------------------------------- /upload_archives.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Deploy updated docs 4 | sh deploy-docs.sh 5 | 6 | # Upload release to maven 7 | ./gradlew uploadArchives -PSONATYPE_NEXUS_USERNAME=$SONATYPE_NEXUS_USERNAME -PSONATYPE_NEXUS_PASSWORD=$SONATYPE_NEXUS_PASSWORD --no-daemon --no-parallel 8 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | gradlePluginPortal() 4 | maven { 5 | url "https://dl.bintray.com/kotlin/kotlin-eap" 6 | } 7 | } 8 | } 9 | 10 | include ':library' 11 | include ':app' 12 | include ':lifecycle' 13 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Jan 10 12:50:47 EST 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-rc-1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #BB86FC 4 | #6200EE 5 | #3700B3 6 | #03DAC5 7 | #FF4081 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_stop.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /library/src/main/res/drawable/ic_stop.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /library/src/main/res/drawable/ic_pause.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /library/src/main/res/drawable/ic_resume.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /lifecycle/README.md: -------------------------------------------------------------------------------- 1 | # Lifecycle-aware support 2 | 3 | To add Lifecycle support, import the extension library: 4 | 5 | ```kotlin 6 | implementation("dev.bmcreations:scrcast-lifecycle:0.1.0") 7 | ``` 8 | 9 | You can now observe RecordingState changes via an Observer: 10 | 11 | ```kotlin 12 | recorder.observeRecordingState(lifecycleOwner, { state -> handleRecorderState(state) }) 13 | ``` 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | /.idea/compiler.xml 11 | /.idea/misc.xml 12 | /.idea 13 | .DS_Store 14 | /build 15 | /captures 16 | .externalNativeBuild 17 | .cxx 18 | local.properties 19 | 20 | # Docs 21 | docs/api 22 | site 23 | -------------------------------------------------------------------------------- /.github/workflows/android.yml: -------------------------------------------------------------------------------- 1 | name: Android CI 2 | 3 | on: 4 | push: 5 | branches: [ trunk ] 6 | 7 | jobs: 8 | build: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v2 14 | - name: set up JDK 1.8 15 | uses: actions/setup-java@v1 16 | with: 17 | java-version: 1.8 18 | - name: Build with Gradle 19 | run: ./gradlew :library:build 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /.github/workflows/dokka.yml: -------------------------------------------------------------------------------- 1 | name: Dokka deploy 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | workflow_dispatch: 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ubuntu-latest 13 | 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: set up JDK 1.8 17 | uses: actions/setup-java@v1 18 | with: 19 | java-version: 1.8 20 | - name: Build with Gradle 21 | run: ./deploy-docs.sh 22 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_camcorder.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /library/src/main/java/dev/bmcreations/scrcast/extensions/FeatureCompatibility.kt: -------------------------------------------------------------------------------- 1 | package dev.bmcreations.scrcast.extensions 2 | 3 | import android.media.MediaRecorder 4 | import android.os.Build 5 | 6 | /** 7 | * Whether the target device supports pause and resume operations via [MediaRecorder] 8 | * (e.g the device API level is [Build.VERSION_CODES.N] or higher) 9 | */ 10 | val supportsPauseResume = Build.VERSION.SDK_INT >= Build.VERSION_CODES.N 11 | -------------------------------------------------------------------------------- /library/src/main/res/drawable/ic_camcorder.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/dev/bmcreations/scrcast/app/list/StateCallbackActivity.kt: -------------------------------------------------------------------------------- 1 | package dev.bmcreations.scrcast.app.list 2 | 3 | class StateCallbackActivity : MainActivity() { 4 | 5 | override fun onResume() { 6 | super.onResume() 7 | recorder.onRecordingStateChange { state -> handleRecorderState(state) } 8 | } 9 | 10 | override fun onStop() { 11 | super.onStop() 12 | recorder.onRecordingStateChange { } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_scrolling.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | -------------------------------------------------------------------------------- /lifecycle/src/test/java/dev/bmcreations/scrcast/livedata/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package dev.bmcreations.scrcast.livedata 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /library/src/main/res/drawable/ic_storage_permission_dialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/java/dev/bmcreations/scrcast/app/list/StateObserverActivity.kt: -------------------------------------------------------------------------------- 1 | package dev.bmcreations.scrcast.app.list 2 | 3 | import android.os.Bundle 4 | import androidx.lifecycle.Observer 5 | import dev.bmcreations.scrcast.lifecycle.observeRecordingState 6 | 7 | class StateObserverActivity : MainActivity() { 8 | 9 | override fun onCreate(savedInstanceState: Bundle?) { 10 | super.onCreate(savedInstanceState) 11 | recorder.observeRecordingState(this, Observer { state -> handleRecorderState(state) }) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /library/src/main/java/dev/bmcreations/scrcast/internal/recorder/service/Orientations.kt: -------------------------------------------------------------------------------- 1 | package dev.bmcreations.scrcast.internal.recorder.service 2 | 3 | import android.util.SparseIntArray 4 | import android.view.Surface 5 | import androidx.annotation.RestrictTo 6 | 7 | @RestrictTo(RestrictTo.Scope.LIBRARY) 8 | val orientations = SparseIntArray().apply { 9 | append(Surface.ROTATION_0, 90) 10 | append(Surface.ROTATION_90, 0) 11 | append(Surface.ROTATION_180, 270) 12 | append(Surface.ROTATION_270, 180) 13 | } 14 | 15 | 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: bmc08gt 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /.github/workflows/on-release-publish.yml: -------------------------------------------------------------------------------- 1 | name: Android Release CI 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | jobs: 9 | apk: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - name: Checkout 14 | uses: actions/checkout@v1 15 | with: 16 | ref: ${{ github.event.inputs.name }} 17 | 18 | - name: set up JDK 1.8 19 | uses: actions/setup-java@v1 20 | with: 21 | java-version: 1.8 22 | 23 | - name: Build project 24 | run: bash ./upload_archives.sh 25 | -------------------------------------------------------------------------------- /deploy-docs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Clean any previous Dokka docs. 4 | rm -rf docs/api 5 | 6 | # Build the Dokka docs. 7 | ./gradlew clean :library:dokka :lifecycle:dokka 8 | 9 | # Copy outside files into the docs folder. 10 | sed -e '/full configuration details and documentation here/ { N; d; }' < README.md > docs/index.md 11 | cp readme-header.png docs/ 12 | cp lifecycle/README.md docs/lifecycle.md 13 | 14 | # Deploy to Github pages. 15 | python3 -m mkdocs gh-deploy --force --verbose 16 | 17 | # Clean up. 18 | rm -rf docs/index.md docs/lifecycle.md docs/readme-header.png 19 | -------------------------------------------------------------------------------- /library/src/main/java/dev/bmcreations/scrcast/internal/extensions/Timer.kt: -------------------------------------------------------------------------------- 1 | package dev.bmcreations.scrcast.internal.extensions 2 | 3 | import android.os.CountDownTimer 4 | 5 | 6 | fun Long.countdown(repeatMillis: Long = 0, onTick: (millis: Long) -> Unit, after: () -> Unit) { 7 | val timer = object : CountDownTimer(this, repeatMillis) { 8 | override fun onFinish() { 9 | after() 10 | } 11 | 12 | override fun onTick(millisUntilFinished: Long) { 13 | onTick(millisUntilFinished) 14 | } 15 | 16 | } 17 | timer.start() 18 | } 19 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **Expected behavior** 14 | A clear and concise description of what you expected to happen. 15 | 16 | **To Reproduce** 17 | How can we reproduce this? 18 | 19 | **Logs/Screenshots** 20 | If applicable, add logs or screenshots to help explain your problem. 21 | 22 | **Version** 23 | What library version are you using? Also does this occur on a specific API level or Android device. 24 | -------------------------------------------------------------------------------- /lifecycle/build.gradle: -------------------------------------------------------------------------------- 1 | apply from: "$rootProject.projectDir/android-library.gradle" 2 | 3 | apply plugin: "org.jetbrains.dokka" 4 | apply plugin: "com.vanniktech.maven.publish" 5 | 6 | afterEvaluate { 7 | dokka { 8 | outputDirectory = "$rootDir/docs/api" 9 | outputFormat = "gfm" 10 | configuration { 11 | includeNonPublic = false 12 | reportUndocumented = true 13 | jdkVersion = 8 14 | skipDeprecated = true 15 | skipEmptyPackages = true 16 | } 17 | } 18 | } 19 | 20 | dependencies { 21 | implementation(project(":library")) 22 | implementation deps.jetpack.lifecycle_extensions 23 | implementation deps.jetpack.lifecycle_livedata_ktx 24 | } 25 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | 14 | 15 |