Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#1274 set key mapper as the device assistant to trigger key maps #1351

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
76840fe
chore: add pro build flavor
sds100 Aug 11, 2024
c7445f8
Merge branch 'refs/heads/develop' into develop-pro
sds100 Aug 11, 2024
09bd3c1
#1274 add empty assistant trigger fragment
sds100 Aug 13, 2024
bd4768d
fix KeyMapController
sds100 Aug 13, 2024
b353671
chore: upgrade kotlin version
sds100 Aug 13, 2024
aa9986f
#1274 use build flavor source directory rather than gradle module
sds100 Aug 13, 2024
e92d6d3
#1274 update text for free version
sds100 Aug 13, 2024
a7d3fbc
#1274 add billing library dependency for pro build
sds100 Aug 13, 2024
6d3dde3
Merge branch 'develop' into 1274-set-key-mapper-as-the-device-assista…
sds100 Aug 13, 2024
03242f8
Merge branch 'develop' into 1274-set-key-mapper-as-the-device-assista…
sds100 Sep 14, 2024
e30e30e
delete home tab for assistant trigger
sds100 Sep 14, 2024
f738776
tests: duplicate shared test utils across android and unit tests beca…
sds100 Sep 16, 2024
731a329
#1297: send events to accessibility service asynchronously
sds100 Sep 16, 2024
3c39f57
#1297: make accessibility service controller an abstract class
sds100 Sep 16, 2024
6652bd4
Merge branch 'refs/heads/develop' into 1274-set-key-mapper-as-the-dev…
sds100 Sep 26, 2024
5be22b9
#1297 change trigger screen placeholder text to mention advanced trig…
sds100 Sep 26, 2024
3c5b7e1
#1297 only show the trigger mode buttons if there are keys recorded
sds100 Sep 26, 2024
7cdca46
#1297 add theme for jetpack compose
sds100 Sep 26, 2024
286b0bf
#1297 add empty Jetpack Compose record trigger button
sds100 Sep 26, 2024
8f57a60
#1297 use dynamic Material You colors for compose theme
sds100 Sep 26, 2024
00bf278
fix (ConfigMappingFragment): Don't show the swipe animations for reac…
sds100 Sep 26, 2024
1433ee5
#1297 complete new record trigger button
sds100 Sep 28, 2024
8df65ce
#1297 create empty bottom sheet for choosing advanced triggers
sds100 Sep 29, 2024
6519be5
#1297 create stubbed advanced triggers bottom sheet for free build
sds100 Sep 29, 2024
b16c234
#1297 add NEW! badge to advanced triggers button
sds100 Sep 29, 2024
7f32657
#1297 add system bars padding to advanced triggers bottomsheet
sds100 Sep 29, 2024
bb01372
#1297 complete assistant trigger product card
sds100 Sep 29, 2024
e1c1afc
Merge branch 'develop' into 1274-set-key-mapper-as-the-device-assista…
sds100 Oct 3, 2024
be93e77
#1274 name KeyMapTrigger to CustomTrigger
sds100 Oct 3, 2024
6ae4cc9
#1274 move TriggerKeyEntity to its own file
sds100 Oct 3, 2024
2b2ac17
use kotlinx.parcelize instead of kotlinx.android.parcel
sds100 Oct 3, 2024
db8b2d4
refactor: rename CustomTrigger to Trigger
sds100 Oct 3, 2024
af0c895
refactor: move TriggerKeyMapFromOtherAppsController to different package
sds100 Oct 3, 2024
c82459a
#1274: represent assistant triggers as normal key map trigger keys
sds100 Oct 3, 2024
3022249
refactor: move all click types and annotation to TriggerKey
sds100 Oct 4, 2024
0dbd022
chore: disable writing function bodies inline
sds100 Oct 5, 2024
bafb15b
#1274 WIP: add assistant trigger key
sds100 Oct 5, 2024
a3dc103
Merge branch 'develop' into 1274-set-key-mapper-as-the-device-assista…
sds100 Oct 5, 2024
b3125be
#1274 wip: support assistant trigger in keymapcontroller
sds100 Oct 6, 2024
11752b1
#1274 move all strings for advanced triggers into the public repo
sds100 Oct 6, 2024
ad9bd58
tests: add tests from pro build flavor
sds100 Oct 12, 2024
9bca41b
#1274 use SplashActivity explicitly in app run configuration because …
sds100 Oct 12, 2024
b45a800
#1274 allow using the screen off constraint with assistant triggers s…
sds100 Oct 12, 2024
cc84b3f
#1274 style: rename variable
sds100 Oct 13, 2024
717de79
fix: add padding between tabs and trigger list
sds100 Oct 13, 2024
f6e1e95
#1274 fix: hide click type buttons if a parallel trigger has an assis…
sds100 Oct 13, 2024
d5f335b
#1274 set parallel trigger to short press when adding assistant key
sds100 Oct 13, 2024
83e3d69
#1274 fix: use custom JSON name for type field in AssistantTriggerKey
sds100 Oct 13, 2024
9b7c0a7
#1274 show dialog to select which assistant type when clicking more o…
sds100 Oct 13, 2024
5bbf802
#1274 update google play billing library
sds100 Oct 13, 2024
ff67ae8
#1274 set version to 2.7.0
sds100 Oct 13, 2024
454dd82
#1274 set version to 2.7.0 alpha
sds100 Oct 13, 2024
917981f
#1274 add Dagger Hilt dependency injection and split up MainActivity …
sds100 Oct 15, 2024
155bde5
refactor: use data object instead of object for Result errors
sds100 Oct 15, 2024
9c8582d
#1274 fix errors for free build
sds100 Oct 15, 2024
7baf108
#1274 add revenuecat public api key to BuildConfig from local.properties
sds100 Oct 15, 2024
a5ba747
#1274 pass viewmodel to AdvancedTriggersBottomSheet so it is compatib…
sds100 Oct 15, 2024
3b19cfb
#1274 delete hilt and inject PurchasingUseCase into ConfigTriggerView…
sds100 Oct 16, 2024
121f4f8
remove unused home_tab_titles string array from resources
sds100 Oct 16, 2024
00ed19c
#1274 add debug_release build type that does not alter the package na…
sds100 Oct 16, 2024
381c874
#1274 bump compose library versions and add tooling for debug_release…
sds100 Oct 16, 2024
fc22ab0
#1274 extend debug_release from debug build type
sds100 Oct 16, 2024
48aac71
#1274 purchase assistant trigger and check whether it is purchased
sds100 Oct 16, 2024
5b232f2
#1274 feat: show dialog if an error is encountered while purchasing
sds100 Nov 7, 2024
8b4c088
Merge branch 'develop' into 1274-set-key-mapper-as-the-device-assista…
sds100 Nov 7, 2024
5235760
#1274 dismiss advanced triggers bottom sheet after choosing assistant…
sds100 Nov 7, 2024
628dfd3
#1274 dismiss bottom sheet after it is hidden
sds100 Nov 7, 2024
2db6560
#1274 fix: do not allow multiple trigger keys when switching to a par…
sds100 Nov 7, 2024
cdc1a31
#1274 feat: show a button to contact the developer if they have purch…
sds100 Nov 8, 2024
e1c16b1
#1274 feat: show thank you dialog after purchasing
sds100 Nov 8, 2024
028a8cd
#1274 feat: show errors if the assistant is not purchased or key mapp…
sds100 Nov 12, 2024
38bde34
#1274 feat: instruct the user to buy the advanced trigger on the home…
sds100 Nov 12, 2024
a4723b6
#1274 feat: inform the user that advanced triggers are only available…
sds100 Nov 12, 2024
3cc1549
#1274 feat: show error when Key Mapper is not selected as the device …
sds100 Nov 14, 2024
ad1af28
#1274 fix: only show button for long press if all the keys are key co…
sds100 Nov 14, 2024
7142f2c
#1274 fix: restore key maps by using gson instance that uses the dese…
sds100 Nov 14, 2024
9fbb316
#1274 fix: missing member in free PurchasingManagerImpl
sds100 Nov 14, 2024
8e4a1c3
update libraries
sds100 Nov 16, 2024
3071715
#1274 update store description to say Google Assistant, Pixel Active …
sds100 Nov 16, 2024
32012b9
docs: fix translations badges in website and readme
sds100 Nov 16, 2024
58500e6
#1274 reword strings related to default assistant app
sds100 Nov 24, 2024
102fc95
#1274 document the new assistant trigger
sds100 Nov 24, 2024
69eae2e
#1274 document the build flavors and build types
sds100 Nov 24, 2024
6136c73
#1274 update maintenance notice
sds100 Nov 24, 2024
7ac3ccb
#1274 fix docs website redirects and add redirect to advanced triggers
sds100 Nov 24, 2024
f70a860
#1274 add button to learn more about advanced triggers that opens the…
sds100 Nov 24, 2024
947c641
no longer show notifications or app intro slides for the fingerprint …
sds100 Nov 24, 2024
cff5897
#1274 feat: show a notification presenting the new assistant trigger …
sds100 Dec 4, 2024
a641f91
fix: do not fail gradle sync if local.properties doesn't exist for th…
sds100 Dec 4, 2024
70acd62
#1274 chore: assemble free CI build when creating testing builds and …
sds100 Dec 4, 2024
7f630c2
fix: remove unused home_tab_titles string array in polish strings
sds100 Dec 4, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[*.{kt,kts}]
ktlint_standard_function-expression-body = disabled
ktlint_function_naming_ignore_when_annotated_with = Composable
ktlint_ignore_back_ticked_identifier = true
ktlint_code_style = intellij_idea # Use IntelliJ style because it has trailing commas
68 changes: 68 additions & 0 deletions .idea/runConfigurations/app.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 8 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,18 @@ Key Mapper is a free and open source Android app that can remap your buttons and

🎉 Check out the [website](https://docs.keymapper.club) for more information and help! 🎉

[//]: # (## Translations)

[//]: # ()
[//]: # (![cs translation](https://img.shields.io/badge/dynamic/json?color=blue&label=Czech&style=flat&logo=crowdin&query=%24.progress[?(@.data.languageId==%27cs%27)].data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045.json))
## Translations

[//]: # (![es-ES translation](https://img.shields.io/badge/dynamic/json?color=blue&label=Spanish&style=flat&logo=crowdin&query=%24.progress[?(@.data.languageId==%27es-ES%27)].data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045.json))
[![cs proofreading](https://img.shields.io/badge/dynamic/json?color=green&label=cs&style=flat&logo=crowdin&query=%24.progress.1.data.approvalProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045-update.json)](https://crowdin.com/project/key-mapper)
[![es-ES proofreading](https://img.shields.io/badge/dynamic/json?color=green&label=es-ES&style=flat&logo=crowdin&query=%24.progress.3.data.approvalProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045-update.json)](https://crowdin.com/project/key-mapper)
[![pl proofreading](https://img.shields.io/badge/dynamic/json?color=green&label=pl&style=flat&logo=crowdin&query=%24.progress.8.data.approvalProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045-update.json)](https://crowdin.com/project/key-mapper)
[![pt-BR proofreading](https://img.shields.io/badge/dynamic/json?color=green&label=pt-BR&style=flat&logo=crowdin&query=%24.progress.9.data.approvalProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045-update.json)](https://crowdin.com/project/key-mapper)
[![ru proofreading](https://img.shields.io/badge/dynamic/json?color=green&label=ru&style=flat&logo=crowdin&query=%24.progress.10.data.approvalProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045-update.json)](https://crowdin.com/project/key-mapper)
[![sk proofreading](https://img.shields.io/badge/dynamic/json?color=green&label=sk&style=flat&logo=crowdin&query=%24.progress.11.data.approvalProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045-update.json)](https://crowdin.com/project/key-mapper)
[![zh-CN proofreading](https://img.shields.io/badge/dynamic/json?color=green&label=zh-CN&style=flat&logo=crowdin&query=%24.progress.15.data.approvalProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045-update.json)](https://crowdin.com/project/key-mapper)

[//]: # (![pl translation](https://img.shields.io/badge/dynamic/json?color=blue&label=Polish&style=flat&logo=crowdin&query=%24.progress[?(@.data.languageId==%27pl%27)].data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045.json))

[//]: # (![ru translation](https://img.shields.io/badge/dynamic/json?color=blue&label=Russian&style=flat&logo=crowdin&query=%24.progress[?(@.data.languageId==%27ru%27)].data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045.json))

[//]: # (![sk translation](https://img.shields.io/badge/dynamic/json?color=blue&label=Slovak&style=flat&logo=crowdin&query=%24.progress[?(@.data.languageId==%27sk%27)].data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045.json))

[//]: # (![vi translation](https://img.shields.io/badge/dynamic/json?color=blue&label=Vietnamese&style=flat&logo=crowdin&query=%24.progress[?(@.data.languageId==%27vi%27)].data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045.json))

[//]: # (![zh-CN translation](https://img.shields.io/badge/dynamic/json?color=blue&label=Chinese%20(Simplified)&style=flat&logo=crowdin&query=%24.progress[?(@.data.languageId==%27zh-CN%27)].data.translationProgress&url=https%3A%2F%2Fbadges.awesome-crowdin.com%2Fstats-13864667-360045.json))
## Star History

[![Star History Chart](https://api.star-history.com/svg?repos=keymapperorg/KeyMapper&type=Date)](https://star-history.com/#keymapperorg/KeyMapper&Date)
Expand Down
144 changes: 97 additions & 47 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: "com.android.application"
apply plugin: "kotlin-android"
apply plugin: "kotlin-kapt"
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: "kotlinx-serialization"
apply plugin: "org.jetbrains.kotlin.plugin.parcelize"
apply plugin: "org.jlleitschuh.gradle.ktlint"

android {

namespace 'io.github.sds100.keymapper'
namespace "io.github.sds100.keymapper"
compileSdk 34
buildToolsVersion = '34.0.0'
buildToolsVersion = "34.0.0"

def versionProperties = new Properties()
file("version.properties").withInputStream { versionProperties.load(it) }
Expand Down Expand Up @@ -46,7 +46,7 @@ android {

release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
signingConfig signingConfigs.release
}

Expand All @@ -55,31 +55,63 @@ android {
versionNameSuffix "-debug"
}

debug_release {
// Extend from debug build type so compose Live Edit and rapid building works
initWith debug

// Do not alter the package name so can test revenuecat and billing while developing.
applicationIdSuffix ""

/*
This is required because the splitties library does not have a debug_release build type.
*/
matchingFallbacks = ["debug"]
}

ci {
postprocessing {
removeUnusedCode true
removeUnusedResources true
obfuscate false
optimizeCode true
proguardFiles 'proguard-rules.pro'
proguardFiles "proguard-rules.pro"
}

/*
This is required because the splitties library doesn't have a ci build type.
This is required because the splitties library does not have a ci build type.
*/
matchingFallbacks = ['debug']
matchingFallbacks = ["debug"]

applicationIdSuffix ".ci"
versionNameSuffix "-ci." + versionProperties.getProperty("VERSION_NUM")
signingConfig signingConfigs.debug
}
}

flavorDimensions = ["pro"]
productFlavors {
free {
dimension "pro"
}
pro {
dimension "pro"

File file = rootProject.file("local.properties")

if (file.exists()) {
def localProperties = new Properties()
localProperties.load(new FileInputStream(file))
buildConfigField("String", "REVENUECAT_API_KEY", localProperties["REVENUECAT_API_KEY"])
}
}
}

buildFeatures {
dataBinding true
viewBinding true
aidl true
buildConfig true
compose true
}

compileOptions {
Expand All @@ -95,56 +127,66 @@ android {
kapt {
correctErrorTypes = true
}
}

android.sourceSets {
androidTest {
assets.srcDirs += files("$projectDir/schemas".toString())
resources.srcDirs += ['src/test/resources']
composeOptions {
kotlinCompilerExtensionVersion "1.5.10"
}

sourceSets {
androidTest {
assets.srcDirs += files("$projectDir/schemas".toString())
resources.srcDirs += ["src/test/resources"]
}

test {
java.srcDirs += ["src/pro/test/java"]
}
}
}

android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "keymapper-${variant.versionName}.apk"
applicationVariants.configureEach { variant ->
variant.outputs.configureEach {
outputFileName = "keymapper-${variant.versionName}.apk"
}
}
}

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation fileTree(include: ["*.jar"], dir: "libs")

compileOnly project(':systemstubs')
compileOnly project(":systemstubs")

def room_version = "2.6.1"
def coroutinesVersion = "1.9.0"
def nav_version = '2.7.7'
def nav_version = '2.8.4'
def work_version = "2.9.1"
def epoxy_version = "4.6.2"
def splitties_version = "3.0.0"
def multidex_version = "2.0.1"
def shizuku_version = '13.1.5'
def shizuku_version = "13.1.5"

// kotlin stuff
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.0"

// random stuff
implementation 'com.google.android.material:material:1.12.0'
implementation 'com.github.salomonbrys.kotson:kotson:2.5.0'
implementation "com.google.android.material:material:1.12.0"
implementation "com.github.salomonbrys.kotson:kotson:2.5.0"
implementation "com.airbnb.android:epoxy:$epoxy_version"
implementation 'com.github.AppIntro:AppIntro:6.1.0'
implementation "com.github.AppIntro:AppIntro:6.1.0"
implementation "com.airbnb.android:epoxy-databinding:$epoxy_version"
kapt "com.airbnb.android:epoxy-processor:$epoxy_version"
implementation 'com.jakewharton.timber:timber:4.7.1'
implementation 'uk.co.samuelwall:material-tap-target-prompt:3.1.0'
implementation 'net.lingala.zip4j:zip4j:2.8.0'
implementation "com.jakewharton.timber:timber:4.7.1"
implementation "uk.co.samuelwall:material-tap-target-prompt:3.1.0"
implementation "net.lingala.zip4j:zip4j:2.8.0"
implementation "com.anggrayudi:storage:0.8.1"
implementation 'com.github.MFlisar:DragSelectRecyclerView:0.3'
implementation 'com.google.android.flexbox:flexbox:3.0.0'
implementation "com.github.MFlisar:DragSelectRecyclerView:0.3"
implementation "com.google.android.flexbox:flexbox:3.0.0"
implementation "dev.rikka.shizuku:api:$shizuku_version"
implementation "dev.rikka.shizuku:provider:$shizuku_version"
implementation 'org.lsposed.hiddenapibypass:hiddenapibypass:4.3'
implementation "org.lsposed.hiddenapibypass:hiddenapibypass:4.3"
proImplementation 'com.revenuecat.purchases:purchases:8.8.1'


// splitties
implementation "com.louiscad.splitties:splitties-bitflags:$splitties_version"
Expand All @@ -155,31 +197,39 @@ dependencies {
implementation "com.louiscad.splitties:splitties-mainthread:$splitties_version"

// androidx
implementation 'androidx.legacy:legacy-support-core-ui:1.0.0'
implementation 'androidx.core:core-ktx:1.13.1'

implementation 'androidx.activity:activity-ktx:1.9.1'
implementation 'androidx.fragment:fragment-ktx:1.8.2'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.4'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.8.4'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.4'
implementation "androidx.legacy:legacy-support-core-ui:1.0.0"
implementation "androidx.core:core-ktx:1.13.1"

implementation "androidx.activity:activity-ktx:1.9.3"
implementation "androidx.fragment:fragment-ktx:1.8.5"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7"
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.8.7"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.8.7"
implementation "androidx.room:room-ktx:$room_version"
implementation "androidx.work:work-runtime-ktx:$work_version"
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
implementation "androidx.multidex:multidex:$multidex_version"
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation "androidx.appcompat:appcompat:1.7.0"
implementation "androidx.recyclerview:recyclerview:1.3.2"
implementation "androidx.preference:preference-ktx:1.2.1"
implementation "androidx.constraintlayout:constraintlayout:2.2.0"
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.viewpager2:viewpager2:1.1.0"
implementation "androidx.datastore:datastore-preferences:1.1.1"
implementation "androidx.core:core-splashscreen:1.0.1"
kapt "androidx.room:room-compiler:$room_version"

// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.6'
// Compose
implementation "androidx.compose.ui:ui-android:1.7.5"
implementation "androidx.compose.material3:material3-android:1.3.1"
implementation "androidx.compose.ui:ui-tooling-preview-android:1.7.5"
implementation "androidx.compose.material:material-icons-extended-android:1.7.5"
debugImplementation "androidx.compose.ui:ui-tooling:1.7.5"
debug_releaseImplementation "androidx.compose.ui:ui-tooling:1.7.5"

// debugImplementation "com.squareup.leakcanary:leakcanary-android:2.6"

def junitVersion = "4.13.2"
def androidXTestExtKotlinRunnerVersion = "1.2.1"
Expand All @@ -197,16 +247,16 @@ dependencies {
testImplementation "pl.pragmatists:JUnitParams:1.1.1"
testImplementation "org.mockito.kotlin:mockito-kotlin:4.0.0"
testImplementation "org.mockito:mockito-core:5.1.1"
testImplementation 'org.mockito:mockito-inline:5.0.0'
testImplementation "org.mockito:mockito-inline:5.0.0"

androidTestImplementation "androidx.test.ext:junit:$androidXTestExtKotlinRunnerVersion"
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
androidTestImplementation "androidx.arch.core:core-testing:2.2.0"
androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
androidTestImplementation "junit:junit:$junitVersion"
androidTestImplementation "androidx.navigation:navigation-testing:$nav_version"
androidTestImplementation 'android.arch.persistence.room:testing:1.1.1'
androidTestImplementation "android.arch.persistence.room:testing:1.1.1"
androidTestImplementation "org.mockito:mockito-android:4.6.1"
debugImplementation "androidx.fragment:fragment-testing:1.8.2"
debugImplementation "androidx.fragment:fragment-testing:1.8.5"
implementation "androidx.test:core:$androidXTestCoreVersion"
}
3 changes: 3 additions & 0 deletions app/src/free/java/io/github/sds100/keymapper/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package io.github.sds100.keymapper

class MainActivity : BaseMainActivity()
Loading
Loading