Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
618e906
Migrate to AndroidX
codebutler Nov 25, 2018
606673a
First implementation of touch inputs, currently attached to GameActiv…
Swordfish90 Sep 7, 2019
6e7bd1d
Add touch layout for Sega Genesis.
Swordfish90 Sep 7, 2019
4078e5f
Fix layout issue in GameBoyPad.
Swordfish90 Sep 7, 2019
9d860b9
Refactor GamePadView into BaseGamePad.
Swordfish90 Sep 7, 2019
888d361
Fix some klint issues.
Swordfish90 Sep 8, 2019
b041a18
Merge branch 'androidx' into mobile-app
Swordfish90 Sep 8, 2019
64e0fe5
First mobile app implementation. Currently only displays the list of …
Swordfish90 Sep 12, 2019
c3a7f31
Create a copy of GameActivity (TBD if needed) to mobile-app.
Swordfish90 Sep 13, 2019
2e2884c
Replace ram save with retro_serialize. Use gambatte instead of mgba f…
Swordfish90 Sep 13, 2019
1abddca
Fix lint issues.
Swordfish90 Sep 13, 2019
1aad489
Fill home screen with recent and favorite games.
Swordfish90 Sep 13, 2019
16cb4f3
Show library with systems instead of games.
Swordfish90 Sep 14, 2019
ef7bdd8
Add search functionality.
Swordfish90 Sep 15, 2019
e1c595e
Force both navigationbar color to be black.
Swordfish90 Sep 15, 2019
d1a914e
Fix wrong behaviour in activity recreation.
Swordfish90 Sep 15, 2019
9ff457d
Undo Picasso requests on view recycle.
Swordfish90 Sep 15, 2019
5e47f72
Display placeholder when cover art is missing.
Swordfish90 Sep 15, 2019
9be04fb
Completely clear items in viewholder unbind.
Swordfish90 Sep 15, 2019
086bb9b
Fix back button navigation.
Swordfish90 Sep 15, 2019
25f21b1
Avoid GameActivity recreation on rotation. This is temporary till pro…
Swordfish90 Sep 16, 2019
fdda9df
Enable immersive mode in GameActivity.
Swordfish90 Sep 16, 2019
0e45891
Rudimentary permission management in MainActivity.
Swordfish90 Sep 16, 2019
8dda108
LocalStorageProvider now only check in private app directories on mob…
Swordfish90 Sep 17, 2019
7afd3f2
Index games in a background Work. Update WorkManager version.
Swordfish90 Sep 17, 2019
8ab8b5c
Use StorageAccessFramework for roms. The first step towards proper An…
Swordfish90 Sep 18, 2019
0047465
Allow customizable haptic feedback.
Swordfish90 Sep 18, 2019
923f878
Make configuration changes really work.
Swordfish90 Sep 18, 2019
b8741bb
Revert "Allow customizable haptic feedback."
Swordfish90 Sep 20, 2019
10414ed
Enlarge touch controls on bigger devices.
Swordfish90 Sep 21, 2019
29d7c89
Fix code style issues and update kotlint version.
Swordfish90 Sep 21, 2019
bac2f04
Add app name.
Swordfish90 Sep 21, 2019
93bbed8
Add shader effects for lcd and crt.
Swordfish90 Sep 23, 2019
116fbf0
Add SNES gamepad.
Swordfish90 Sep 23, 2019
078a4ae
Some more code style.
Swordfish90 Sep 23, 2019
07f6473
Improve search layout and theming.
Swordfish90 Sep 24, 2019
4321bfe
Display material progressbar on indexing.
Swordfish90 Sep 25, 2019
69d8c8f
Improve lcd shader.
Swordfish90 Sep 25, 2019
6d9499e
Fix some ui issues.
Swordfish90 Sep 26, 2019
e69cc42
Redesign home screen with epoxy.
Swordfish90 Sep 27, 2019
e953d7d
Use lists instead of grids for games and search. Replace heart in gri…
Swordfish90 Sep 30, 2019
809bedd
Properly scale touch control size with display size.
Swordfish90 Oct 2, 2019
1539d64
Move viewmodel initializations in onResume.
Swordfish90 Oct 3, 2019
3d74e9b
Some lint fixes.
Swordfish90 Oct 3, 2019
e07ed85
Handle activity lifecycle persisting emulation state (in memory).
Swordfish90 Oct 4, 2019
6fe59e2
Properly handle touch subscriptions in onCreate.
Swordfish90 Oct 4, 2019
ca8d040
Fix immersive sticky mode behaviour.
Swordfish90 Oct 4, 2019
30340b4
Use thumbnail placeholders in epoxy views.
Swordfish90 Oct 4, 2019
f06ebd6
Take persistent uris when using storage access framework.
Swordfish90 Oct 4, 2019
aebc1b5
Cache storage access framework games for future access.
Swordfish90 Oct 4, 2019
544abe3
Disable translucent bars and use darker color variant.
Swordfish90 Oct 5, 2019
89b4258
Make actionbutton stroke width proportional to their size.
Swordfish90 Oct 5, 2019
6e3077f
Fix tiny behaviour issues in SearchFragment.
Swordfish90 Oct 5, 2019
66e43cf
Fix lint issues.
Swordfish90 Oct 7, 2019
90b763b
Fix work chain dying forever when an error occurs.
Swordfish90 Oct 7, 2019
d628c7e
Add full retropad support (psx like).
Swordfish90 Oct 7, 2019
b0281f0
Arcade simulation was no longer working. Use fbneo since fbalpha is n…
Swordfish90 Oct 7, 2019
5dd12dc
Hash functions in ovgdb are actually nullable.
Swordfish90 Oct 7, 2019
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ project.properties
.idea
*.iml
*.iws
*.swp
.cxx
.gradle
.externalNativeBuild
local.properties
Expand Down
28 changes: 10 additions & 18 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
import org.gradle.api.tasks.Delete
import org.gradle.api.tasks.JavaExec
import org.gradle.kotlin.dsl.getValue
import org.gradle.kotlin.dsl.kotlin
import org.gradle.kotlin.dsl.repositories
import org.gradle.api.plugins.quality.CheckstyleExtension

import com.android.build.gradle.BaseExtension
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension

buildscript {
repositories {
Expand All @@ -17,13 +9,14 @@ buildscript {
dependencies {
classpath(deps.plugins.android)
classpath(deps.plugins.bugsnag)
classpath(deps.plugins.navigationSafeArgs)
}
}

plugins {
id("org.jetbrains.kotlin.jvm") version deps.versions.kotlin
id("com.github.ben-manes.versions") version "0.20.0"
id("org.jmailen.kotlinter") version "1.20.1"
id("org.jmailen.kotlinter") version "2.1.1"
checkstyle
}

Expand All @@ -37,14 +30,14 @@ allprojects {

apply(plugin = "org.jmailen.kotlinter")

kotlinter {
// We are currently disabling tests for import ordering.
disabledRules = arrayOf("import-ordering")
}

configurations.all {
resolutionStrategy.eachDependency {
when (requested.group) {
"com.android.support" -> {
if ("multidex" !in requested.name) {
useVersion(deps.versions.support)
}
}
"com.google.android.gms" -> useVersion(deps.versions.gms)
"org.jetbrains.kotlin" -> {
if (requested.name.startsWith("kotlin-stdlib-jre")) {
Expand All @@ -70,8 +63,7 @@ subprojects {
classpath = files()
source("src")
}

tasks.findByName("check")?.dependsOn(checkstyle)
findByName("check")?.dependsOn(checkstyle)
}

extensions.configure(CheckstyleExtension::class.java) {
Expand Down Expand Up @@ -100,8 +92,8 @@ subprojects {
dexInProcess = true
}
compileOptions {
setSourceCompatibility(JavaVersion.VERSION_1_8)
setTargetCompatibility(JavaVersion.VERSION_1_8)
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
}
Expand Down
Empty file added buildSrc/settings.gradle.kts
Empty file.
102 changes: 74 additions & 28 deletions buildSrc/src/main/java/deps.kt
Original file line number Diff line number Diff line change
@@ -1,50 +1,84 @@
/* ktlint-disable no-multi-spaces max-line-length */
object deps {
object android {
const val compileSdkVersion = 27
const val targetSdkVersion = 27
const val compileSdkVersion = 28
const val targetSdkVersion = 28
const val minSdkVersion = 23
const val buildToolsVersion = "28.0.3"
}

object versions {
const val arch = "1.1.1"
const val autoDispose = "0.8.0"
const val autoDispose = "1.0.0"
const val dagger = "2.19"
const val gms = "15.0.0"
const val googleApiClient = "1.27.0"
const val kotlin = "1.3.10"
const val koptional = "1.6.0"
const val kotlin = "1.3.50"
const val moshi = "1.8.0"
const val retrofit = "2.5.0"
const val room = "1.1.1"
const val support = "27.1.0"
const val okHttp = "3.12.0"
const val work = "1.0.0-alpha07"
const val retrofit = "2.5.0"
const val work = "2.2.0"
const val navigation = "2.1.0"
const val rxbindings = "3.0.0"
const val lifecycle = "2.1.0"
}

object libs {
object arch {
const val lifecycleCommonJava8 = "android.arch.lifecycle:common-java8:${versions.arch}"
const val paging = "android.arch.paging:runtime:1.0.1"
object androidx {
object appcompat {
const val appcompat = "androidx.appcompat:appcompat:1.0.2"
const val leanback = "androidx.leanback:leanback:1.0.0"
const val leanbackPreference = "androidx.leanback:leanback-preference:1.0.0"
const val palette = "androidx.palette:palette:1.0.0"
const val recyclerView = "androidx.recyclerview:recyclerview:1.0.0"
const val constraintLayout = "androidx.constraintlayout:constraintlayout:1.1.3"
}
object ktx {
const val core = "androidx.core:core-ktx:1.0.1"
const val collection = "androidx.collection:collection-ktx:1.0.0"
}
object lifecycle {
const val commonJava8 = "androidx.lifecycle:lifecycle-common-java8:${versions.lifecycle}"
const val extensions = "androidx.lifecycle:lifecycle-extensions:${versions.lifecycle}"
}
object preferences {
const val preferencesKtx = "androidx.preference:preference-ktx:1.1.0"
}
object paging {
const val common = "androidx.paging:paging-common:2.0.0"
const val runtime = "androidx.paging:paging-runtime:2.0.0"
const val rxjava2 = "androidx.paging:paging-rxjava2:2.0.0"
}
object navigation {
const val navigationFragment = "androidx.navigation:navigation-fragment-ktx:${versions.navigation}"
const val navigationUi = "androidx.navigation:navigation-ui-ktx:${versions.navigation}"
}
object room {
const val compiler = "android.arch.persistence.room:compiler:${versions.room}"
const val runtime = "android.arch.persistence.room:runtime:${versions.room}"
const val rxjava2 = "android.arch.persistence.room:rxjava2:${versions.room}"
const val common = "androidx.room:room-common:2.0.0"
const val compiler = "androidx.room:room-compiler:2.0.0"
const val runtime = "androidx.room:room-runtime:2.0.0"
const val rxjava2 = "androidx.room:room-rxjava2:2.0.0"
}
}
object arch {
object work {
const val runtime = "android.arch.work:work-runtime:${versions.work}"
const val runtimeKtx = "android.arch.work:work-runtime-ktx:${versions.work}"
const val runtime = "androidx.work:work-runtime:${versions.work}"
const val runtimeKtx = "androidx.work:work-runtime-ktx:${versions.work}"
const val rxjava2 ="androidx.work:work-rxjava2:${versions.work}"
}
}
object autodispose {
const val core = "com.uber.autodispose:autodispose:${versions.autoDispose}"
const val kotlin = "com.uber.autodispose:autodispose-kotlin:${versions.autoDispose}"
const val ktx = "com.uber.autodispose:autodispose-ktx:${versions.autoDispose}"
object android {
const val core = "com.uber.autodispose:autodispose-android:${versions.autoDispose}"
const val arch = "com.uber.autodispose:autodispose-android-archcomponents:${versions.autoDispose}"
const val archKotlin = "com.uber.autodispose:autodispose-android-archcomponents-kotlin:${versions.autoDispose}"
const val kotlin = "com.uber.autodispose:autodispose-android-kotlin:${versions.autoDispose}"
const val ktx = "com.uber.autodispose:autodispose-android-ktx:${versions.autoDispose}"
const val archComponents = "com.uber.autodispose:autodispose-android-archcomponents:${versions.autoDispose}"
const val archComponentsKtx = "com.uber.autodispose:autodispose-android-archcomponents-ktx:${versions.autoDispose}"
}
object lifecycle {
const val core = "com.uber.autodispose:autodispose-lifecycle:${versions.autoDispose}"
const val ktx = "com.uber.autodispose:autodispose-lifecycle-ktx:${versions.autoDispose}"
}
}
object dagger {
Expand All @@ -56,19 +90,26 @@ object deps {
const val support = "com.google.dagger:dagger-android-support:${versions.dagger}"
}
}
object support {
const val appCompatV7 = "com.android.support:appcompat-v7:${versions.support}"
const val leanbackV17 = "com.android.support:leanback-v17:${versions.support}"
const val paletteV7 = "com.android.support:palette-v7:${versions.support}"
const val prefLeanbackV17 = "com.android.support:preference-leanback-v17:${versions.support}"
const val recyclerViewV7 = "com.android.support:recyclerview-v7:${versions.support}"
object rxbindings {
const val core = "com.jakewharton.rxbinding3:rxbinding-core:${versions.rxbindings}"
const val appcompat = "com.jakewharton.rxbinding3:rxbinding-appcompat:${versions.rxbindings}"
}
object kotlin {
const val stdlib = "stdlib"
}
object epoxy {
const val expoxy = "com.airbnb.android:epoxy:3.8.0"
const val paging = "com.airbnb.android:epoxy-paging:3.8.0"
const val processor = "com.airbnb.android:epoxy-processor:3.8.0"
}

const val bugsnagAndroid = "com.bugsnag:bugsnag-android:4.9.2"
const val bugsnagAndroidNdk = "com.bugsnag:bugsnag-android-ndk:4.9.2"
const val gmsAuth = "com.google.android.gms:play-services-auth:${versions.gms}"
const val googleApiClient = "com.google.api-client:google-api-client:${versions.googleApiClient}"
const val googleApiClientAndroid = "com.google.api-client:google-api-client-android:${versions.googleApiClient}"
const val googleApiServicesDrive = "com.google.apis:google-api-services-drive:v3-rev20181101-1.27.0"
const val guava = "com.google.guava:guava:27.0.1-android"
const val jna = "net.java.dev.jna:jna:5.1.0@aar"
const val koptional = "com.gojuno.koptional:koptional:${versions.koptional}"
const val koptionalRxJava2 = "com.gojuno.koptional:koptional-rxjava2-extensions:${versions.koptional}"
Expand All @@ -90,10 +131,15 @@ object deps {
const val rxPreferences = "com.f2prateek.rx.preferences2:rx-preferences:2.0.0"
const val rxRelay2 = "com.jakewharton.rxrelay2:rxrelay:2.1.0"
const val timber = "com.jakewharton.timber:timber:4.7.1"
const val material = "com.google.android.material:material:1.1.0-alpha10"

// This will be replaced by native material components when they will be ready.
const val materialProgressBar = "me.zhanghai.android.materialprogressbar:library:1.6.1"
}

object plugins {
const val android = "com.android.tools.build:gradle:3.2.1"
const val android = "com.android.tools.build:gradle:3.5.0"
const val bugsnag = "com.bugsnag:bugsnag-android-gradle-plugin:3.5.0"
const val navigationSafeArgs = "androidx.navigation:navigation-safe-args-gradle-plugin:${versions.navigation}"
}
}
11 changes: 8 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Gradle
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2560m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Expand All @@ -6,11 +7,15 @@ org.gradle.caching=true
# https://github.com/gradle/kotlin-dsl/issues/311
org.gradle.configureondemand=false

# Kotlin
kotlin.incremental.usePreciseJavaTracking=true

# Android
android.builder.sdkDownload=true
android.enableBuildCache=true
android.enableD8.desugaring=true

# Still in preview
android.enableR8=false

kotlin.incremental.usePreciseJavaTracking=true
# AndroidX
android.useAndroidX=true
android.enableJetifier=true
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#Sun Sep 08 15:25:56 CEST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
2 changes: 1 addition & 1 deletion gradlew

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

2 changes: 1 addition & 1 deletion gradlew.bat

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

1 change: 1 addition & 0 deletions retrograde-app-mobile/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
Loading