From 11b0dfebd1885b9cf1f0d3f87f5e81c6b0405221 Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Wed, 10 Apr 2019 23:57:06 +0200 Subject: [PATCH 01/12] Remove unnecessary Dagger kapt dependency --- client-domain/build.gradle | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/client-domain/build.gradle b/client-domain/build.gradle index 77518455..fc0e0f23 100644 --- a/client-domain/build.gradle +++ b/client-domain/build.gradle @@ -2,21 +2,10 @@ apply plugin: 'java-library' apply plugin: 'com.android.lint' apply plugin: 'kotlin' -configurations { - provided -} - -sourceSets { - main { - compileClasspath += configurations.provided - } -} - dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" api 'com.google.dagger:dagger:2.21' - provided 'com.google.dagger:dagger-compiler:2.21' api 'io.reactivex.rxjava2:rxjava:2.2.7' api 'com.squareup.okhttp3:okhttp:3.13.1' From ce054d0155578a72c7e89b5c23791a741baec794 Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Wed, 10 Apr 2019 23:58:47 +0200 Subject: [PATCH 02/12] Move domain classes to data module to have domain unaware base module --- .../src/main/java/com/jraska/github/client/users/RepoDetail.kt | 0 .../src/main/java/com/jraska/github/client/users/RepoHeader.kt | 0 .../src/main/java/com/jraska/github/client/users/User.kt | 0 .../src/main/java/com/jraska/github/client/users/UserDetail.kt | 0 .../src/main/java/com/jraska/github/client/users/UserStats.kt | 0 .../main/java/com/jraska/github/client/users/UsersRepository.kt | 0 .../src/main/java/com/jraska/github/client/DeepLinkHandler.kt | 2 +- .../com/jraska/github/client/{common => analytics}/HttpUrl.kt | 2 +- .../test/java/com/jraska/github/client/common/HttpUrlTest.kt | 1 + 9 files changed, 3 insertions(+), 2 deletions(-) rename {client-domain => client-data}/src/main/java/com/jraska/github/client/users/RepoDetail.kt (100%) rename {client-domain => client-data}/src/main/java/com/jraska/github/client/users/RepoHeader.kt (100%) rename {client-domain => client-data}/src/main/java/com/jraska/github/client/users/User.kt (100%) rename {client-domain => client-data}/src/main/java/com/jraska/github/client/users/UserDetail.kt (100%) rename {client-domain => client-data}/src/main/java/com/jraska/github/client/users/UserStats.kt (100%) rename {client-domain => client-data}/src/main/java/com/jraska/github/client/users/UsersRepository.kt (100%) rename client-domain/src/main/java/com/jraska/github/client/{common => analytics}/HttpUrl.kt (86%) diff --git a/client-domain/src/main/java/com/jraska/github/client/users/RepoDetail.kt b/client-data/src/main/java/com/jraska/github/client/users/RepoDetail.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/users/RepoDetail.kt rename to client-data/src/main/java/com/jraska/github/client/users/RepoDetail.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/users/RepoHeader.kt b/client-data/src/main/java/com/jraska/github/client/users/RepoHeader.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/users/RepoHeader.kt rename to client-data/src/main/java/com/jraska/github/client/users/RepoHeader.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/users/User.kt b/client-data/src/main/java/com/jraska/github/client/users/User.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/users/User.kt rename to client-data/src/main/java/com/jraska/github/client/users/User.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/users/UserDetail.kt b/client-data/src/main/java/com/jraska/github/client/users/UserDetail.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/users/UserDetail.kt rename to client-data/src/main/java/com/jraska/github/client/users/UserDetail.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/users/UserStats.kt b/client-data/src/main/java/com/jraska/github/client/users/UserStats.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/users/UserStats.kt rename to client-data/src/main/java/com/jraska/github/client/users/UserStats.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/users/UsersRepository.kt b/client-data/src/main/java/com/jraska/github/client/users/UsersRepository.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/users/UsersRepository.kt rename to client-data/src/main/java/com/jraska/github/client/users/UsersRepository.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/DeepLinkHandler.kt b/client-domain/src/main/java/com/jraska/github/client/DeepLinkHandler.kt index 34a29346..1dcd3042 100644 --- a/client-domain/src/main/java/com/jraska/github/client/DeepLinkHandler.kt +++ b/client-domain/src/main/java/com/jraska/github/client/DeepLinkHandler.kt @@ -2,7 +2,7 @@ package com.jraska.github.client import com.jraska.github.client.analytics.AnalyticsEvent import com.jraska.github.client.analytics.EventAnalytics -import com.jraska.github.client.common.toAnalyticsString +import com.jraska.github.client.analytics.toAnalyticsString import com.jraska.github.client.logging.CrashReporter import okhttp3.HttpUrl diff --git a/client-domain/src/main/java/com/jraska/github/client/common/HttpUrl.kt b/client-domain/src/main/java/com/jraska/github/client/analytics/HttpUrl.kt similarity index 86% rename from client-domain/src/main/java/com/jraska/github/client/common/HttpUrl.kt rename to client-domain/src/main/java/com/jraska/github/client/analytics/HttpUrl.kt index 5921a4c8..b541fec8 100644 --- a/client-domain/src/main/java/com/jraska/github/client/common/HttpUrl.kt +++ b/client-domain/src/main/java/com/jraska/github/client/analytics/HttpUrl.kt @@ -1,4 +1,4 @@ -package com.jraska.github.client.common +package com.jraska.github.client.analytics import okhttp3.HttpUrl diff --git a/client-domain/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt b/client-domain/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt index f0d93002..71a95094 100644 --- a/client-domain/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt +++ b/client-domain/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt @@ -1,5 +1,6 @@ package com.jraska.github.client.common +import com.jraska.github.client.analytics.toAnalyticsString import okhttp3.HttpUrl import org.assertj.core.api.Assertions.assertThat import org.junit.Test From eabf7ca3a31763f96af4ca79bf435e18230667ce Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:01:33 +0200 Subject: [PATCH 03/12] Rename domain module to core module --- client-data/build.gradle | 2 +- client-domain/.gitignore | 1 - client-domain/build.gradle | 19 ------------------- client-domain/lint.xml | 6 ------ client/build.gradle | 2 +- .../java/com/jraska/github/client/Config.kt | 0 .../jraska/github/client/DeepLinkHandler.kt | 0 .../jraska/github/client/DeepLinkLauncher.kt | 0 .../jraska/github/client/DeepLinkNavigator.kt | 0 .../com/jraska/github/client/Navigator.kt | 0 .../java/com/jraska/github/client/PerApp.kt | 0 .../java/com/jraska/github/client/Urls.kt | 0 .../jraska/github/client/WebLinkLauncher.kt | 0 .../github/client/analytics/AnalyticsEvent.kt | 0 .../client/analytics/AnalyticsProperty.kt | 0 .../github/client/analytics/EventAnalytics.kt | 0 .../jraska/github/client/analytics/HttpUrl.kt | 0 .../github/client/common/AppBuildConfig.kt | 0 .../github/client/common/DeveloperError.kt | 0 .../jraska/github/client/common/Stopwatch.kt | 0 .../github/client/logging/CrashReporter.kt | 0 .../github/client/logging/VerboseLogger.kt | 0 .../jraska/github/client/rx/AppSchedulers.kt | 0 .../github/client/time/DateTimeProvider.kt | 0 .../client/time/RealDateTimeProvider.kt | 0 .../github/client/time/RealTimeProvider.kt | 0 .../jraska/github/client/time/TimeProvider.kt | 0 .../github/client/DeepLinkNavigatorTest.kt | 0 .../github/client/common/HttpUrlTest.kt | 0 .../github/client/common/StopwatchTest.kt | 0 .../github/client/time/TestTimeProvider.kt | 0 settings.gradle | 2 +- 32 files changed, 3 insertions(+), 29 deletions(-) delete mode 100644 client-domain/.gitignore delete mode 100644 client-domain/build.gradle delete mode 100644 client-domain/lint.xml rename {client-domain => core}/src/main/java/com/jraska/github/client/Config.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/DeepLinkHandler.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/DeepLinkLauncher.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/DeepLinkNavigator.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/Navigator.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/PerApp.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/Urls.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/WebLinkLauncher.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/analytics/AnalyticsEvent.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/analytics/AnalyticsProperty.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/analytics/EventAnalytics.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/analytics/HttpUrl.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/common/AppBuildConfig.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/common/DeveloperError.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/common/Stopwatch.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/logging/CrashReporter.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/logging/VerboseLogger.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/rx/AppSchedulers.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/time/DateTimeProvider.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/time/RealDateTimeProvider.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/time/RealTimeProvider.kt (100%) rename {client-domain => core}/src/main/java/com/jraska/github/client/time/TimeProvider.kt (100%) rename {client-domain => core}/src/test/java/com/jraska/github/client/DeepLinkNavigatorTest.kt (100%) rename {client-domain => core}/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt (100%) rename {client-domain => core}/src/test/java/com/jraska/github/client/common/StopwatchTest.kt (100%) rename {client-domain => core}/src/test/java/com/jraska/github/client/time/TestTimeProvider.kt (100%) diff --git a/client-data/build.gradle b/client-data/build.gradle index f68f61ae..902d9771 100644 --- a/client-data/build.gradle +++ b/client-data/build.gradle @@ -19,7 +19,7 @@ dependencies { kapt 'com.google.dagger:dagger-compiler:2.21' - api project(':client-domain') + api project(':core') api 'androidx.appcompat:appcompat:1.1.0-alpha04' api 'androidx.annotation:annotation:1.0.2' diff --git a/client-domain/.gitignore b/client-domain/.gitignore deleted file mode 100644 index 796b96d1..00000000 --- a/client-domain/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/client-domain/build.gradle b/client-domain/build.gradle deleted file mode 100644 index fc0e0f23..00000000 --- a/client-domain/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'java-library' -apply plugin: 'com.android.lint' -apply plugin: 'kotlin' - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - - api 'com.google.dagger:dagger:2.21' - - api 'io.reactivex.rxjava2:rxjava:2.2.7' - api 'com.squareup.okhttp3:okhttp:3.13.1' - api 'com.squareup.okio:okio:2.2.2' - - api 'org.threeten:threetenbp:1.3.7:no-tzdb' - - testImplementation 'junit:junit:4.12' - testImplementation 'org.assertj:assertj-core:3.11.1' - testImplementation 'org.mockito:mockito-core:2.23.4' -} diff --git a/client-domain/lint.xml b/client-domain/lint.xml deleted file mode 100644 index 7f38fb6c..00000000 --- a/client-domain/lint.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/client/build.gradle b/client/build.gradle index 5b00e0f2..3c142235 100644 --- a/client/build.gradle +++ b/client/build.gradle @@ -56,7 +56,7 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - api project(':client-domain') + api project(':core') api project(':client-data') implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' diff --git a/client-domain/src/main/java/com/jraska/github/client/Config.kt b/core/src/main/java/com/jraska/github/client/Config.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/Config.kt rename to core/src/main/java/com/jraska/github/client/Config.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/DeepLinkHandler.kt b/core/src/main/java/com/jraska/github/client/DeepLinkHandler.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/DeepLinkHandler.kt rename to core/src/main/java/com/jraska/github/client/DeepLinkHandler.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/DeepLinkLauncher.kt b/core/src/main/java/com/jraska/github/client/DeepLinkLauncher.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/DeepLinkLauncher.kt rename to core/src/main/java/com/jraska/github/client/DeepLinkLauncher.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/DeepLinkNavigator.kt b/core/src/main/java/com/jraska/github/client/DeepLinkNavigator.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/DeepLinkNavigator.kt rename to core/src/main/java/com/jraska/github/client/DeepLinkNavigator.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/Navigator.kt b/core/src/main/java/com/jraska/github/client/Navigator.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/Navigator.kt rename to core/src/main/java/com/jraska/github/client/Navigator.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/PerApp.kt b/core/src/main/java/com/jraska/github/client/PerApp.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/PerApp.kt rename to core/src/main/java/com/jraska/github/client/PerApp.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/Urls.kt b/core/src/main/java/com/jraska/github/client/Urls.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/Urls.kt rename to core/src/main/java/com/jraska/github/client/Urls.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/WebLinkLauncher.kt b/core/src/main/java/com/jraska/github/client/WebLinkLauncher.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/WebLinkLauncher.kt rename to core/src/main/java/com/jraska/github/client/WebLinkLauncher.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/analytics/AnalyticsEvent.kt b/core/src/main/java/com/jraska/github/client/analytics/AnalyticsEvent.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/analytics/AnalyticsEvent.kt rename to core/src/main/java/com/jraska/github/client/analytics/AnalyticsEvent.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/analytics/AnalyticsProperty.kt b/core/src/main/java/com/jraska/github/client/analytics/AnalyticsProperty.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/analytics/AnalyticsProperty.kt rename to core/src/main/java/com/jraska/github/client/analytics/AnalyticsProperty.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/analytics/EventAnalytics.kt b/core/src/main/java/com/jraska/github/client/analytics/EventAnalytics.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/analytics/EventAnalytics.kt rename to core/src/main/java/com/jraska/github/client/analytics/EventAnalytics.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/analytics/HttpUrl.kt b/core/src/main/java/com/jraska/github/client/analytics/HttpUrl.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/analytics/HttpUrl.kt rename to core/src/main/java/com/jraska/github/client/analytics/HttpUrl.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/common/AppBuildConfig.kt b/core/src/main/java/com/jraska/github/client/common/AppBuildConfig.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/common/AppBuildConfig.kt rename to core/src/main/java/com/jraska/github/client/common/AppBuildConfig.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/common/DeveloperError.kt b/core/src/main/java/com/jraska/github/client/common/DeveloperError.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/common/DeveloperError.kt rename to core/src/main/java/com/jraska/github/client/common/DeveloperError.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/common/Stopwatch.kt b/core/src/main/java/com/jraska/github/client/common/Stopwatch.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/common/Stopwatch.kt rename to core/src/main/java/com/jraska/github/client/common/Stopwatch.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/logging/CrashReporter.kt b/core/src/main/java/com/jraska/github/client/logging/CrashReporter.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/logging/CrashReporter.kt rename to core/src/main/java/com/jraska/github/client/logging/CrashReporter.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/logging/VerboseLogger.kt b/core/src/main/java/com/jraska/github/client/logging/VerboseLogger.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/logging/VerboseLogger.kt rename to core/src/main/java/com/jraska/github/client/logging/VerboseLogger.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/rx/AppSchedulers.kt b/core/src/main/java/com/jraska/github/client/rx/AppSchedulers.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/rx/AppSchedulers.kt rename to core/src/main/java/com/jraska/github/client/rx/AppSchedulers.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/time/DateTimeProvider.kt b/core/src/main/java/com/jraska/github/client/time/DateTimeProvider.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/time/DateTimeProvider.kt rename to core/src/main/java/com/jraska/github/client/time/DateTimeProvider.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/time/RealDateTimeProvider.kt b/core/src/main/java/com/jraska/github/client/time/RealDateTimeProvider.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/time/RealDateTimeProvider.kt rename to core/src/main/java/com/jraska/github/client/time/RealDateTimeProvider.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/time/RealTimeProvider.kt b/core/src/main/java/com/jraska/github/client/time/RealTimeProvider.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/time/RealTimeProvider.kt rename to core/src/main/java/com/jraska/github/client/time/RealTimeProvider.kt diff --git a/client-domain/src/main/java/com/jraska/github/client/time/TimeProvider.kt b/core/src/main/java/com/jraska/github/client/time/TimeProvider.kt similarity index 100% rename from client-domain/src/main/java/com/jraska/github/client/time/TimeProvider.kt rename to core/src/main/java/com/jraska/github/client/time/TimeProvider.kt diff --git a/client-domain/src/test/java/com/jraska/github/client/DeepLinkNavigatorTest.kt b/core/src/test/java/com/jraska/github/client/DeepLinkNavigatorTest.kt similarity index 100% rename from client-domain/src/test/java/com/jraska/github/client/DeepLinkNavigatorTest.kt rename to core/src/test/java/com/jraska/github/client/DeepLinkNavigatorTest.kt diff --git a/client-domain/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt b/core/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt similarity index 100% rename from client-domain/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt rename to core/src/test/java/com/jraska/github/client/common/HttpUrlTest.kt diff --git a/client-domain/src/test/java/com/jraska/github/client/common/StopwatchTest.kt b/core/src/test/java/com/jraska/github/client/common/StopwatchTest.kt similarity index 100% rename from client-domain/src/test/java/com/jraska/github/client/common/StopwatchTest.kt rename to core/src/test/java/com/jraska/github/client/common/StopwatchTest.kt diff --git a/client-domain/src/test/java/com/jraska/github/client/time/TestTimeProvider.kt b/core/src/test/java/com/jraska/github/client/time/TestTimeProvider.kt similarity index 100% rename from client-domain/src/test/java/com/jraska/github/client/time/TestTimeProvider.kt rename to core/src/test/java/com/jraska/github/client/time/TestTimeProvider.kt diff --git a/settings.gradle b/settings.gradle index c8538d27..664f5769 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':client', ':client-domain', ':client-data' +include ':client', ':core', ':client-data' From 23e1fa0c85958333f5d9503e000368549a79e96b Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:12:23 +0200 Subject: [PATCH 04/12] Add core-android module --- .circleci/config.yml | 6 +++--- client-data/build.gradle | 1 + core-android/.gitignore | 1 + core-android/build.gradle | 20 ++++++++++++++++++++ core-android/src/main/AndroidManifest.xml | 1 + settings.gradle | 2 +- 6 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 core-android/.gitignore create mode 100644 core-android/build.gradle create mode 100644 core-android/src/main/AndroidManifest.xml diff --git a/.circleci/config.yml b/.circleci/config.yml index 47ef5d0e..785beb67 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,8 +24,8 @@ jobs: path: client/build/reports destination: client/reports - store_artifacts: - path: client-domain/build/reports - destination: client-domain/reports + path: core/build/reports + destination: core/reports - store_artifacts: path: client-data/build/reports destination: client-data/reports @@ -34,5 +34,5 @@ jobs: - store_test_results: path: client-data/build/test-results - store_test_results: - path: client-domain/build/test-results + path: core/build/test-results diff --git a/client-data/build.gradle b/client-data/build.gradle index 902d9771..d4ba0dcf 100644 --- a/client-data/build.gradle +++ b/client-data/build.gradle @@ -23,6 +23,7 @@ dependencies { api 'androidx.appcompat:appcompat:1.1.0-alpha04' api 'androidx.annotation:annotation:1.0.2' + api 'com.google.dagger:dagger:2.21' api 'androidx.lifecycle:lifecycle-extensions:2.0.0' diff --git a/core-android/.gitignore b/core-android/.gitignore new file mode 100644 index 00000000..796b96d1 --- /dev/null +++ b/core-android/.gitignore @@ -0,0 +1 @@ +/build diff --git a/core-android/build.gradle b/core-android/build.gradle new file mode 100644 index 00000000..5d741ef0 --- /dev/null +++ b/core-android/build.gradle @@ -0,0 +1,20 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' + +android { + compileSdkVersion 28 + defaultConfig { + minSdkVersion 21 + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + project(':core') + + testImplementation 'junit:junit:4.12' +} diff --git a/core-android/src/main/AndroidManifest.xml b/core-android/src/main/AndroidManifest.xml new file mode 100644 index 00000000..f23b58d8 --- /dev/null +++ b/core-android/src/main/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/settings.gradle b/settings.gradle index 664f5769..ee1c0174 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':client', ':core', ':client-data' +include ':client', ':core', ':client-data', ':core-android' From a2e7281ac5da9505687b155871aeceee8cbfeae3 Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:14:58 +0200 Subject: [PATCH 05/12] Module dependencies --- client-data/build.gradle | 1 + client/build.gradle | 1 + core-android/build.gradle | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/client-data/build.gradle b/client-data/build.gradle index d4ba0dcf..ec6f6725 100644 --- a/client-data/build.gradle +++ b/client-data/build.gradle @@ -20,6 +20,7 @@ dependencies { kapt 'com.google.dagger:dagger-compiler:2.21' api project(':core') + api project(':core-android') api 'androidx.appcompat:appcompat:1.1.0-alpha04' api 'androidx.annotation:annotation:1.0.2' diff --git a/client/build.gradle b/client/build.gradle index 3c142235..d328c6f0 100644 --- a/client/build.gradle +++ b/client/build.gradle @@ -57,6 +57,7 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" api project(':core') + api project(':core-android') api project(':client-data') implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' diff --git a/core-android/build.gradle b/core-android/build.gradle index 5d741ef0..d37037b7 100644 --- a/core-android/build.gradle +++ b/core-android/build.gradle @@ -14,7 +14,7 @@ android { } dependencies { - project(':core') + api project(':core') testImplementation 'junit:junit:4.12' } From 0e45820be9eac73b04474d40a130d337ffd0a84a Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:26:39 +0200 Subject: [PATCH 06/12] Move some stuff to core-android module --- client-data/build.gradle | 4 ---- .../com/jraska/github/client/users/RepoDetailViewModel.kt | 2 +- .../com/jraska/github/client/users/UserDetailViewModel.kt | 2 +- .../java/com/jraska/github/client/users/UsersViewModel.kt | 2 +- client/src/main/java/com/jraska/github/client/AppModule.kt | 1 + .../main/java/com/jraska/github/client/NavigationModule.kt | 2 ++ .../java/com/jraska/github/client/RealDeepLinkLauncher.kt | 4 +--- .../src/main/java/com/jraska/github/client/SetupLogging.kt | 1 + .../main/java/com/jraska/github/client/UsersPathLauncher.kt | 1 + .../java/com/jraska/github/client/settings/SettingsModule.kt | 2 +- .../java/com/jraska/github/client/ui/UriHandlerActivity.kt | 2 +- core-android/build.gradle | 5 +++++ .../github/client/core/android}/AnalyticsLoggingTree.kt | 3 ++- .../com/jraska/github/client/core/android}/LinkLauncher.kt | 2 +- .../github/client/core/android}/UriHandlerViewModel.kt | 3 ++- .../jraska/github/client/core/android}/ViewModelFactory.kt | 2 +- .../com/jraska/github/client/core/android}/rx/RxLiveData.kt | 2 +- 17 files changed, 23 insertions(+), 17 deletions(-) rename {client-data/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/AnalyticsLoggingTree.kt (95%) rename {client-data/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/LinkLauncher.kt (87%) rename {client-data/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/UriHandlerViewModel.kt (72%) rename {client-data/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/ViewModelFactory.kt (92%) rename {client-data/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/rx/RxLiveData.kt (97%) diff --git a/client-data/build.gradle b/client-data/build.gradle index ec6f6725..7866c7a0 100644 --- a/client-data/build.gradle +++ b/client-data/build.gradle @@ -22,8 +22,6 @@ dependencies { api project(':core') api project(':core-android') - api 'androidx.appcompat:appcompat:1.1.0-alpha04' - api 'androidx.annotation:annotation:1.0.2' api 'com.google.dagger:dagger:2.21' api 'androidx.lifecycle:lifecycle-extensions:2.0.0' @@ -34,8 +32,6 @@ dependencies { api 'com.google.code.gson:gson:2.8.5' api 'com.squareup.okhttp3:logging-interceptor:3.13.1' - api 'com.jakewharton.timber:timber:4.7.1' - testImplementation 'com.jraska.livedata:testing:1.1.0' testImplementation 'com.jraska.livedata:testing-ktx:1.1.0' testImplementation 'junit:junit:4.12' diff --git a/client-data/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt b/client-data/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt index db7eb688..d2a6b6e7 100644 --- a/client-data/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt +++ b/client-data/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt @@ -7,7 +7,7 @@ import com.jraska.github.client.Urls import com.jraska.github.client.analytics.AnalyticsEvent import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.rx.AppSchedulers -import com.jraska.github.client.rx.RxLiveData +import com.jraska.github.client.core.android.rx.RxLiveData class RepoDetailViewModel constructor( private val usersRepository: UsersRepository, diff --git a/client-data/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt b/client-data/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt index 0caadf49..52ac091e 100644 --- a/client-data/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt +++ b/client-data/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt @@ -8,7 +8,7 @@ import com.jraska.github.client.Urls import com.jraska.github.client.analytics.AnalyticsEvent import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.rx.AppSchedulers -import com.jraska.github.client.rx.RxLiveData +import com.jraska.github.client.core.android.rx.RxLiveData class UserDetailViewModel internal constructor( private val usersRepository: UsersRepository, diff --git a/client-data/src/main/java/com/jraska/github/client/users/UsersViewModel.kt b/client-data/src/main/java/com/jraska/github/client/users/UsersViewModel.kt index 459fe3c6..ccd1c8aa 100644 --- a/client-data/src/main/java/com/jraska/github/client/users/UsersViewModel.kt +++ b/client-data/src/main/java/com/jraska/github/client/users/UsersViewModel.kt @@ -8,7 +8,7 @@ import com.jraska.github.client.Urls import com.jraska.github.client.analytics.AnalyticsEvent import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.rx.AppSchedulers -import com.jraska.github.client.rx.RxLiveData +import com.jraska.github.client.core.android.rx.RxLiveData import io.reactivex.Single import io.reactivex.SingleEmitter import io.reactivex.SingleOnSubscribe diff --git a/client/src/main/java/com/jraska/github/client/AppModule.kt b/client/src/main/java/com/jraska/github/client/AppModule.kt index 68d0f06c..1e7f5619 100644 --- a/client/src/main/java/com/jraska/github/client/AppModule.kt +++ b/client/src/main/java/com/jraska/github/client/AppModule.kt @@ -10,6 +10,7 @@ import com.jakewharton.threetenabp.AndroidThreeTen import com.jraska.github.client.analytics.AnalyticsEvent import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.common.AppBuildConfig +import com.jraska.github.client.core.android.ViewModelFactory import com.jraska.github.client.rx.AppSchedulers import com.jraska.github.client.time.DateTimeProvider import com.jraska.github.client.time.RealDateTimeProvider diff --git a/client/src/main/java/com/jraska/github/client/NavigationModule.kt b/client/src/main/java/com/jraska/github/client/NavigationModule.kt index 9adb1261..02b0532a 100644 --- a/client/src/main/java/com/jraska/github/client/NavigationModule.kt +++ b/client/src/main/java/com/jraska/github/client/NavigationModule.kt @@ -3,6 +3,8 @@ package com.jraska.github.client import android.app.Activity import androidx.lifecycle.ViewModel import com.jraska.github.client.analytics.EventAnalytics +import com.jraska.github.client.core.android.LinkLauncher +import com.jraska.github.client.core.android.UriHandlerViewModel import com.jraska.github.client.ui.ShortcutHandlerModel import com.jraska.github.client.ui.UsersActivity import dagger.Module diff --git a/client/src/main/java/com/jraska/github/client/RealDeepLinkLauncher.kt b/client/src/main/java/com/jraska/github/client/RealDeepLinkLauncher.kt index d066749f..fb9c6dbc 100644 --- a/client/src/main/java/com/jraska/github/client/RealDeepLinkLauncher.kt +++ b/client/src/main/java/com/jraska/github/client/RealDeepLinkLauncher.kt @@ -1,9 +1,7 @@ package com.jraska.github.client +import com.jraska.github.client.core.android.LinkLauncher import com.jraska.github.client.ui.BaseActivity -import com.jraska.github.client.ui.RepoDetailActivity -import com.jraska.github.client.ui.UserDetailActivity -import com.jraska.github.client.ui.UsersActivity import okhttp3.HttpUrl import timber.log.Timber import javax.inject.Provider diff --git a/client/src/main/java/com/jraska/github/client/SetupLogging.kt b/client/src/main/java/com/jraska/github/client/SetupLogging.kt index d1960d73..8d1b35a4 100644 --- a/client/src/main/java/com/jraska/github/client/SetupLogging.kt +++ b/client/src/main/java/com/jraska/github/client/SetupLogging.kt @@ -2,6 +2,7 @@ package com.jraska.github.client import android.app.Application import com.jraska.console.timber.ConsoleTree +import com.jraska.github.client.core.android.AnalyticsLoggingTree import com.jraska.github.client.logging.ErrorReportTree import timber.log.Timber import javax.inject.Inject diff --git a/client/src/main/java/com/jraska/github/client/UsersPathLauncher.kt b/client/src/main/java/com/jraska/github/client/UsersPathLauncher.kt index 7a3e0540..3f49c7bf 100644 --- a/client/src/main/java/com/jraska/github/client/UsersPathLauncher.kt +++ b/client/src/main/java/com/jraska/github/client/UsersPathLauncher.kt @@ -1,6 +1,7 @@ package com.jraska.github.client import android.app.Activity +import com.jraska.github.client.core.android.LinkLauncher import com.jraska.github.client.ui.RepoDetailActivity import com.jraska.github.client.ui.UserDetailActivity import okhttp3.HttpUrl diff --git a/client/src/main/java/com/jraska/github/client/settings/SettingsModule.kt b/client/src/main/java/com/jraska/github/client/settings/SettingsModule.kt index a656bf0f..e33ded8f 100644 --- a/client/src/main/java/com/jraska/github/client/settings/SettingsModule.kt +++ b/client/src/main/java/com/jraska/github/client/settings/SettingsModule.kt @@ -2,7 +2,7 @@ package com.jraska.github.client.settings import android.app.Activity import androidx.lifecycle.ViewModel -import com.jraska.github.client.LinkLauncher +import com.jraska.github.client.core.android.LinkLauncher import dagger.Module import dagger.Provides import dagger.multibindings.ClassKey diff --git a/client/src/main/java/com/jraska/github/client/ui/UriHandlerActivity.kt b/client/src/main/java/com/jraska/github/client/ui/UriHandlerActivity.kt index 21b394cc..a33e58dd 100644 --- a/client/src/main/java/com/jraska/github/client/ui/UriHandlerActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/UriHandlerActivity.kt @@ -1,7 +1,7 @@ package com.jraska.github.client.ui import android.os.Bundle -import com.jraska.github.client.UriHandlerViewModel +import com.jraska.github.client.core.android.UriHandlerViewModel import com.jraska.github.client.inputUrl import com.jraska.github.client.viewModel diff --git a/core-android/build.gradle b/core-android/build.gradle index d37037b7..5f1e64c1 100644 --- a/core-android/build.gradle +++ b/core-android/build.gradle @@ -16,5 +16,10 @@ android { dependencies { api project(':core') + api 'androidx.appcompat:appcompat:1.1.0-alpha04' + api 'androidx.annotation:annotation:1.0.2' + + api 'com.jakewharton.timber:timber:4.7.1' + testImplementation 'junit:junit:4.12' } diff --git a/client-data/src/main/java/com/jraska/github/client/AnalyticsLoggingTree.kt b/core-android/src/main/java/com/jraska/github/client/core/android/AnalyticsLoggingTree.kt similarity index 95% rename from client-data/src/main/java/com/jraska/github/client/AnalyticsLoggingTree.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/AnalyticsLoggingTree.kt index 6a932d0a..5506a73b 100644 --- a/client-data/src/main/java/com/jraska/github/client/AnalyticsLoggingTree.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/AnalyticsLoggingTree.kt @@ -1,6 +1,7 @@ -package com.jraska.github.client +package com.jraska.github.client.core.android import android.util.Log +import com.jraska.github.client.Config import com.jraska.github.client.analytics.AnalyticsEvent import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.time.DateTimeProvider diff --git a/client-data/src/main/java/com/jraska/github/client/LinkLauncher.kt b/core-android/src/main/java/com/jraska/github/client/core/android/LinkLauncher.kt similarity index 87% rename from client-data/src/main/java/com/jraska/github/client/LinkLauncher.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/LinkLauncher.kt index 351750a2..c9903093 100644 --- a/client-data/src/main/java/com/jraska/github/client/LinkLauncher.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/LinkLauncher.kt @@ -1,4 +1,4 @@ -package com.jraska.github.client +package com.jraska.github.client.core.android import android.app.Activity import okhttp3.HttpUrl diff --git a/client-data/src/main/java/com/jraska/github/client/UriHandlerViewModel.kt b/core-android/src/main/java/com/jraska/github/client/core/android/UriHandlerViewModel.kt similarity index 72% rename from client-data/src/main/java/com/jraska/github/client/UriHandlerViewModel.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/UriHandlerViewModel.kt index 6a9c06d4..57f058c9 100644 --- a/client-data/src/main/java/com/jraska/github/client/UriHandlerViewModel.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/UriHandlerViewModel.kt @@ -1,6 +1,7 @@ -package com.jraska.github.client +package com.jraska.github.client.core.android import androidx.lifecycle.ViewModel +import com.jraska.github.client.DeepLinkHandler import okhttp3.HttpUrl class UriHandlerViewModel constructor(private val deepLinkHandler: DeepLinkHandler) : ViewModel() { diff --git a/client-data/src/main/java/com/jraska/github/client/ViewModelFactory.kt b/core-android/src/main/java/com/jraska/github/client/core/android/ViewModelFactory.kt similarity index 92% rename from client-data/src/main/java/com/jraska/github/client/ViewModelFactory.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/ViewModelFactory.kt index 4b0e767b..150979ef 100644 --- a/client-data/src/main/java/com/jraska/github/client/ViewModelFactory.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/ViewModelFactory.kt @@ -1,4 +1,4 @@ -package com.jraska.github.client +package com.jraska.github.client.core.android import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider diff --git a/client-data/src/main/java/com/jraska/github/client/rx/RxLiveData.kt b/core-android/src/main/java/com/jraska/github/client/core/android/rx/RxLiveData.kt similarity index 97% rename from client-data/src/main/java/com/jraska/github/client/rx/RxLiveData.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/rx/RxLiveData.kt index 7875ad7e..d3b19b10 100644 --- a/client-data/src/main/java/com/jraska/github/client/rx/RxLiveData.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/rx/RxLiveData.kt @@ -1,4 +1,4 @@ -package com.jraska.github.client.rx +package com.jraska.github.client.core.android.rx import androidx.lifecycle.LiveData import io.reactivex.Maybe From 5a3b103528cac7b3795fe71c8829028f33670390 Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:36:42 +0200 Subject: [PATCH 07/12] Moving stuff into core-android module --- client-data/build.gradle | 2 -- client/src/main/java/com/jraska/github/client/AppComponent.kt | 2 +- client/src/main/java/com/jraska/github/client/AppModule.kt | 1 + .../src/main/java/com/jraska/github/client/GitHubClientApp.kt | 1 + .../main/java/com/jraska/github/client/NotificationSetup.kt | 1 + client/src/main/java/com/jraska/github/client/SetupLogging.kt | 3 ++- .../main/java/com/jraska/github/client/TopActivityProvider.kt | 1 + .../java/com/jraska/github/client/push/PushIntentObserver.kt | 2 +- .../src/main/java/com/jraska/github/client/push/PushModule.kt | 2 +- .../java/com/jraska/github/client/settings/SettingsActivity.kt | 2 +- .../java/com/jraska/github/client/ui/RepoDetailActivity.kt | 2 +- .../com/jraska/github/client/ui/ShortcutHandlerActivity.kt | 2 +- .../java/com/jraska/github/client/ui/UriHandlerActivity.kt | 2 +- .../java/com/jraska/github/client/ui/UserDetailActivity.kt | 2 +- .../src/main/java/com/jraska/github/client/ui/UsersActivity.kt | 2 +- core-android/build.gradle | 2 ++ .../com/jraska/github/client/core/android}/HasViewModel.kt | 2 +- .../java/com/jraska/github/client/core/android}/OnAppCreate.kt | 2 +- .../github/client/core/android}/logging/ErrorReportTree.kt | 3 ++- 19 files changed, 21 insertions(+), 15 deletions(-) rename {client/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/HasViewModel.kt (90%) rename {client/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/OnAppCreate.kt (66%) rename {client/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/logging/ErrorReportTree.kt (92%) diff --git a/client-data/build.gradle b/client-data/build.gradle index 7866c7a0..6e69ca4e 100644 --- a/client-data/build.gradle +++ b/client-data/build.gradle @@ -24,8 +24,6 @@ dependencies { api 'com.google.dagger:dagger:2.21' - api 'androidx.lifecycle:lifecycle-extensions:2.0.0' - api 'com.squareup.retrofit2:retrofit:2.5.0' api 'com.squareup.retrofit2:converter-gson:2.5.0' api 'com.squareup.retrofit2:adapter-rxjava2:2.5.0' diff --git a/client/src/main/java/com/jraska/github/client/AppComponent.kt b/client/src/main/java/com/jraska/github/client/AppComponent.kt index 19aabb76..528671b6 100644 --- a/client/src/main/java/com/jraska/github/client/AppComponent.kt +++ b/client/src/main/java/com/jraska/github/client/AppComponent.kt @@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModelProvider import com.google.firebase.database.FirebaseDatabase import com.jraska.github.client.analytics.AnalyticsProperty import com.jraska.github.client.analytics.EventAnalytics +import com.jraska.github.client.core.android.OnAppCreate import com.jraska.github.client.http.HttpComponent import com.jraska.github.client.logging.CrashReporter import com.jraska.github.client.push.PushHandler @@ -15,7 +16,6 @@ import dagger.Component import dagger.Module import dagger.Provides import retrofit2.Retrofit -import javax.inject.Provider @PerApp @Component(modules = [UsersDataModule::class, UserViewModelModule::class, NavigationModule::class, diff --git a/client/src/main/java/com/jraska/github/client/AppModule.kt b/client/src/main/java/com/jraska/github/client/AppModule.kt index 1e7f5619..1fa889e4 100644 --- a/client/src/main/java/com/jraska/github/client/AppModule.kt +++ b/client/src/main/java/com/jraska/github/client/AppModule.kt @@ -10,6 +10,7 @@ import com.jakewharton.threetenabp.AndroidThreeTen import com.jraska.github.client.analytics.AnalyticsEvent import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.common.AppBuildConfig +import com.jraska.github.client.core.android.OnAppCreate import com.jraska.github.client.core.android.ViewModelFactory import com.jraska.github.client.rx.AppSchedulers import com.jraska.github.client.time.DateTimeProvider diff --git a/client/src/main/java/com/jraska/github/client/GitHubClientApp.kt b/client/src/main/java/com/jraska/github/client/GitHubClientApp.kt index c3055580..2470fb8a 100644 --- a/client/src/main/java/com/jraska/github/client/GitHubClientApp.kt +++ b/client/src/main/java/com/jraska/github/client/GitHubClientApp.kt @@ -5,6 +5,7 @@ import android.os.Looper import androidx.lifecycle.ViewModelProvider import com.google.firebase.perf.metrics.AddTrace import com.jraska.github.client.common.AppBuildConfig +import com.jraska.github.client.core.android.HasViewModelFactory import com.jraska.github.client.http.DaggerHttpComponent import com.jraska.github.client.http.HttpComponent import com.jraska.github.client.http.HttpDependenciesModule diff --git a/client/src/main/java/com/jraska/github/client/NotificationSetup.kt b/client/src/main/java/com/jraska/github/client/NotificationSetup.kt index b34c065b..4d9a1add 100644 --- a/client/src/main/java/com/jraska/github/client/NotificationSetup.kt +++ b/client/src/main/java/com/jraska/github/client/NotificationSetup.kt @@ -5,6 +5,7 @@ import android.app.NotificationChannel import android.app.NotificationManager import android.content.Context import android.os.Build +import com.jraska.github.client.core.android.OnAppCreate import javax.inject.Inject diff --git a/client/src/main/java/com/jraska/github/client/SetupLogging.kt b/client/src/main/java/com/jraska/github/client/SetupLogging.kt index 8d1b35a4..532cc5dd 100644 --- a/client/src/main/java/com/jraska/github/client/SetupLogging.kt +++ b/client/src/main/java/com/jraska/github/client/SetupLogging.kt @@ -3,7 +3,8 @@ package com.jraska.github.client import android.app.Application import com.jraska.console.timber.ConsoleTree import com.jraska.github.client.core.android.AnalyticsLoggingTree -import com.jraska.github.client.logging.ErrorReportTree +import com.jraska.github.client.core.android.OnAppCreate +import com.jraska.github.client.core.android.logging.ErrorReportTree import timber.log.Timber import javax.inject.Inject import javax.inject.Provider diff --git a/client/src/main/java/com/jraska/github/client/TopActivityProvider.kt b/client/src/main/java/com/jraska/github/client/TopActivityProvider.kt index 04f67b32..3afb7a4f 100644 --- a/client/src/main/java/com/jraska/github/client/TopActivityProvider.kt +++ b/client/src/main/java/com/jraska/github/client/TopActivityProvider.kt @@ -3,6 +3,7 @@ package com.jraska.github.client import android.app.Activity import android.app.Application import android.os.Bundle +import com.jraska.github.client.core.android.OnAppCreate import com.jraska.github.client.ui.BaseActivity import javax.inject.Inject diff --git a/client/src/main/java/com/jraska/github/client/push/PushIntentObserver.kt b/client/src/main/java/com/jraska/github/client/push/PushIntentObserver.kt index f7eac5bc..0fb56885 100644 --- a/client/src/main/java/com/jraska/github/client/push/PushIntentObserver.kt +++ b/client/src/main/java/com/jraska/github/client/push/PushIntentObserver.kt @@ -8,7 +8,7 @@ import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.OnLifecycleEvent import com.google.firebase.messaging.RemoteMessage -import com.jraska.github.client.OnAppCreate +import com.jraska.github.client.core.android.OnAppCreate import javax.inject.Inject class PushIntentObserver(private val pushHandler: PushHandler) : LifecycleObserver { diff --git a/client/src/main/java/com/jraska/github/client/push/PushModule.kt b/client/src/main/java/com/jraska/github/client/push/PushModule.kt index 4c879bcb..c1aa71c5 100644 --- a/client/src/main/java/com/jraska/github/client/push/PushModule.kt +++ b/client/src/main/java/com/jraska/github/client/push/PushModule.kt @@ -3,7 +3,7 @@ package com.jraska.github.client.push import android.app.NotificationManager import android.content.Context import com.jraska.github.client.Config -import com.jraska.github.client.OnAppCreate +import com.jraska.github.client.core.android.OnAppCreate import com.jraska.github.client.analytics.AnalyticsProperty import dagger.Module import dagger.Provides diff --git a/client/src/main/java/com/jraska/github/client/settings/SettingsActivity.kt b/client/src/main/java/com/jraska/github/client/settings/SettingsActivity.kt index 93cb9d9a..fa1f7ec8 100644 --- a/client/src/main/java/com/jraska/github/client/settings/SettingsActivity.kt +++ b/client/src/main/java/com/jraska/github/client/settings/SettingsActivity.kt @@ -7,7 +7,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.airbnb.epoxy.SimpleEpoxyAdapter import com.jraska.github.client.R import com.jraska.github.client.ui.BaseActivity -import com.jraska.github.client.viewModel +import com.jraska.github.client.core.android.viewModel import kotlinx.android.synthetic.main.content_settings.* class SettingsActivity : BaseActivity(), PurchaseReportModel.PurchaseListener { diff --git a/client/src/main/java/com/jraska/github/client/ui/RepoDetailActivity.kt b/client/src/main/java/com/jraska/github/client/ui/RepoDetailActivity.kt index 3d9c5916..10bd9235 100644 --- a/client/src/main/java/com/jraska/github/client/ui/RepoDetailActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/RepoDetailActivity.kt @@ -10,7 +10,7 @@ import com.airbnb.epoxy.SimpleEpoxyModel import com.jraska.github.client.R import com.jraska.github.client.users.RepoDetail import com.jraska.github.client.users.RepoDetailViewModel -import com.jraska.github.client.viewModel +import com.jraska.github.client.core.android.viewModel import kotlinx.android.synthetic.main.activity_repo_detail.* import kotlinx.android.synthetic.main.content_repo_detail.* diff --git a/client/src/main/java/com/jraska/github/client/ui/ShortcutHandlerActivity.kt b/client/src/main/java/com/jraska/github/client/ui/ShortcutHandlerActivity.kt index 463d852e..cac794c0 100644 --- a/client/src/main/java/com/jraska/github/client/ui/ShortcutHandlerActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/ShortcutHandlerActivity.kt @@ -2,7 +2,7 @@ package com.jraska.github.client.ui import android.os.Bundle import com.jraska.github.client.inputUrl -import com.jraska.github.client.viewModel +import com.jraska.github.client.core.android.viewModel class ShortcutHandlerActivity : BaseActivity() { diff --git a/client/src/main/java/com/jraska/github/client/ui/UriHandlerActivity.kt b/client/src/main/java/com/jraska/github/client/ui/UriHandlerActivity.kt index a33e58dd..2e6f6e9b 100644 --- a/client/src/main/java/com/jraska/github/client/ui/UriHandlerActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/UriHandlerActivity.kt @@ -3,7 +3,7 @@ package com.jraska.github.client.ui import android.os.Bundle import com.jraska.github.client.core.android.UriHandlerViewModel import com.jraska.github.client.inputUrl -import com.jraska.github.client.viewModel +import com.jraska.github.client.core.android.viewModel class UriHandlerActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/client/src/main/java/com/jraska/github/client/ui/UserDetailActivity.kt b/client/src/main/java/com/jraska/github/client/ui/UserDetailActivity.kt index f8b3c5dd..a4863a7a 100644 --- a/client/src/main/java/com/jraska/github/client/ui/UserDetailActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/UserDetailActivity.kt @@ -12,7 +12,7 @@ import com.jraska.github.client.R import com.jraska.github.client.users.RepoHeader import com.jraska.github.client.users.UserDetail import com.jraska.github.client.users.UserDetailViewModel -import com.jraska.github.client.viewModel +import com.jraska.github.client.core.android.viewModel import kotlinx.android.synthetic.main.activity_user_detail.* import kotlinx.android.synthetic.main.content_user_detail.* diff --git a/client/src/main/java/com/jraska/github/client/ui/UsersActivity.kt b/client/src/main/java/com/jraska/github/client/ui/UsersActivity.kt index 72c7d179..5756b1a4 100644 --- a/client/src/main/java/com/jraska/github/client/ui/UsersActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/UsersActivity.kt @@ -11,7 +11,7 @@ import com.airbnb.epoxy.SimpleEpoxyAdapter import com.jraska.github.client.R import com.jraska.github.client.users.User import com.jraska.github.client.users.UsersViewModel -import com.jraska.github.client.viewModel +import com.jraska.github.client.core.android.viewModel import kotlinx.android.synthetic.main.content_users_list.* class UsersActivity : BaseActivity(), UserModel.UserListener { diff --git a/core-android/build.gradle b/core-android/build.gradle index 5f1e64c1..352d8eb2 100644 --- a/core-android/build.gradle +++ b/core-android/build.gradle @@ -19,6 +19,8 @@ dependencies { api 'androidx.appcompat:appcompat:1.1.0-alpha04' api 'androidx.annotation:annotation:1.0.2' + api 'androidx.lifecycle:lifecycle-extensions:2.0.0' + api 'com.jakewharton.timber:timber:4.7.1' testImplementation 'junit:junit:4.12' diff --git a/client/src/main/java/com/jraska/github/client/HasViewModel.kt b/core-android/src/main/java/com/jraska/github/client/core/android/HasViewModel.kt similarity index 90% rename from client/src/main/java/com/jraska/github/client/HasViewModel.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/HasViewModel.kt index 96bcc830..22457b5d 100644 --- a/client/src/main/java/com/jraska/github/client/HasViewModel.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/HasViewModel.kt @@ -1,4 +1,4 @@ -package com.jraska.github.client +package com.jraska.github.client.core.android import androidx.fragment.app.FragmentActivity import androidx.lifecycle.ViewModel diff --git a/client/src/main/java/com/jraska/github/client/OnAppCreate.kt b/core-android/src/main/java/com/jraska/github/client/core/android/OnAppCreate.kt similarity index 66% rename from client/src/main/java/com/jraska/github/client/OnAppCreate.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/OnAppCreate.kt index 38defbd0..6e526fd6 100644 --- a/client/src/main/java/com/jraska/github/client/OnAppCreate.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/OnAppCreate.kt @@ -1,4 +1,4 @@ -package com.jraska.github.client +package com.jraska.github.client.core.android import android.app.Application diff --git a/client/src/main/java/com/jraska/github/client/logging/ErrorReportTree.kt b/core-android/src/main/java/com/jraska/github/client/core/android/logging/ErrorReportTree.kt similarity index 92% rename from client/src/main/java/com/jraska/github/client/logging/ErrorReportTree.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/logging/ErrorReportTree.kt index cde33aa6..195e698c 100644 --- a/client/src/main/java/com/jraska/github/client/logging/ErrorReportTree.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/logging/ErrorReportTree.kt @@ -1,7 +1,8 @@ -package com.jraska.github.client.logging +package com.jraska.github.client.core.android.logging import android.util.Log import com.jraska.github.client.common.DeveloperError +import com.jraska.github.client.logging.CrashReporter import timber.log.Timber import java.util.regex.Pattern import javax.inject.Inject From a9c075d13c733af10878cf87ad7781d9ab0a65d3 Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:40:00 +0200 Subject: [PATCH 08/12] Tweaks --- core-android/build.gradle | 1 - gradle.properties | 1 - 2 files changed, 2 deletions(-) diff --git a/core-android/build.gradle b/core-android/build.gradle index 352d8eb2..51361863 100644 --- a/core-android/build.gradle +++ b/core-android/build.gradle @@ -18,7 +18,6 @@ dependencies { api 'androidx.appcompat:appcompat:1.1.0-alpha04' api 'androidx.annotation:annotation:1.0.2' - api 'androidx.lifecycle:lifecycle-extensions:2.0.0' api 'com.jakewharton.timber:timber:4.7.1' diff --git a/gradle.properties b/gradle.properties index 17b97f96..89837e52 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,4 +5,3 @@ org.gradle.parallel=true org.gradle.daemon=true android.useAndroidX=true android.enableJetifier=true -android.jetifier.blacklist = butterknife-compiler From b0bc6abaa9252eb1791727c2ceef0ba1df82866c Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:50:00 +0200 Subject: [PATCH 09/12] Stuff to core --- .../java/com/jraska/github/client/AppModule.kt | 1 + .../github/client/ChromeCustomTabsLauncher.kt | 5 ++--- .../com/jraska/github/client/NavigationModule.kt | 2 ++ .../client/core/android}/RealDeepLinkLauncher.kt | 10 +++++----- .../client/core/android}/TopActivityProvider.kt | 14 ++++++-------- 5 files changed, 16 insertions(+), 16 deletions(-) rename {client/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/RealDeepLinkLauncher.kt (74%) rename {client/src/main/java/com/jraska/github/client => core-android/src/main/java/com/jraska/github/client/core/android}/TopActivityProvider.kt (74%) diff --git a/client/src/main/java/com/jraska/github/client/AppModule.kt b/client/src/main/java/com/jraska/github/client/AppModule.kt index 1fa889e4..8ea4e50d 100644 --- a/client/src/main/java/com/jraska/github/client/AppModule.kt +++ b/client/src/main/java/com/jraska/github/client/AppModule.kt @@ -11,6 +11,7 @@ import com.jraska.github.client.analytics.AnalyticsEvent import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.common.AppBuildConfig import com.jraska.github.client.core.android.OnAppCreate +import com.jraska.github.client.core.android.TopActivityProvider import com.jraska.github.client.core.android.ViewModelFactory import com.jraska.github.client.rx.AppSchedulers import com.jraska.github.client.time.DateTimeProvider diff --git a/client/src/main/java/com/jraska/github/client/ChromeCustomTabsLauncher.kt b/client/src/main/java/com/jraska/github/client/ChromeCustomTabsLauncher.kt index bc131ab0..92a1182b 100644 --- a/client/src/main/java/com/jraska/github/client/ChromeCustomTabsLauncher.kt +++ b/client/src/main/java/com/jraska/github/client/ChromeCustomTabsLauncher.kt @@ -1,13 +1,12 @@ package com.jraska.github.client +import android.app.Activity import android.net.Uri import androidx.browser.customtabs.CustomTabsIntent -import com.jraska.github.client.ui.BaseActivity import okhttp3.HttpUrl - import javax.inject.Provider -internal class ChromeCustomTabsLauncher(private val provider: Provider) : WebLinkLauncher { +internal class ChromeCustomTabsLauncher(private val provider: Provider) : WebLinkLauncher { override fun launch(url: HttpUrl) { val customTabsIntent = CustomTabsIntent.Builder().build() val uri = Uri.parse(url.toString()) diff --git a/client/src/main/java/com/jraska/github/client/NavigationModule.kt b/client/src/main/java/com/jraska/github/client/NavigationModule.kt index 02b0532a..2b437bc1 100644 --- a/client/src/main/java/com/jraska/github/client/NavigationModule.kt +++ b/client/src/main/java/com/jraska/github/client/NavigationModule.kt @@ -4,6 +4,8 @@ import android.app.Activity import androidx.lifecycle.ViewModel import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.core.android.LinkLauncher +import com.jraska.github.client.core.android.RealDeepLinkLauncher +import com.jraska.github.client.core.android.TopActivityProvider import com.jraska.github.client.core.android.UriHandlerViewModel import com.jraska.github.client.ui.ShortcutHandlerModel import com.jraska.github.client.ui.UsersActivity diff --git a/client/src/main/java/com/jraska/github/client/RealDeepLinkLauncher.kt b/core-android/src/main/java/com/jraska/github/client/core/android/RealDeepLinkLauncher.kt similarity index 74% rename from client/src/main/java/com/jraska/github/client/RealDeepLinkLauncher.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/RealDeepLinkLauncher.kt index fb9c6dbc..4613d007 100644 --- a/client/src/main/java/com/jraska/github/client/RealDeepLinkLauncher.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/RealDeepLinkLauncher.kt @@ -1,13 +1,13 @@ -package com.jraska.github.client +package com.jraska.github.client.core.android -import com.jraska.github.client.core.android.LinkLauncher -import com.jraska.github.client.ui.BaseActivity +import android.app.Activity +import com.jraska.github.client.DeepLinkLauncher import okhttp3.HttpUrl import timber.log.Timber import javax.inject.Provider class RealDeepLinkLauncher private constructor( - private val topActivityProvider: Provider, + private val topActivityProvider: Provider, private val launchers: List ) : DeepLinkLauncher { override fun launch(deepLink: HttpUrl) { @@ -29,7 +29,7 @@ class RealDeepLinkLauncher private constructor( } companion object { - fun create(activityProvider: Provider, launchers: Set): RealDeepLinkLauncher { + fun create(activityProvider: Provider, launchers: Set): RealDeepLinkLauncher { val sortedLaunchers = launchers.sortedBy { it.priority().value } return RealDeepLinkLauncher(activityProvider, sortedLaunchers) } diff --git a/client/src/main/java/com/jraska/github/client/TopActivityProvider.kt b/core-android/src/main/java/com/jraska/github/client/core/android/TopActivityProvider.kt similarity index 74% rename from client/src/main/java/com/jraska/github/client/TopActivityProvider.kt rename to core-android/src/main/java/com/jraska/github/client/core/android/TopActivityProvider.kt index 3afb7a4f..73919c0b 100644 --- a/client/src/main/java/com/jraska/github/client/TopActivityProvider.kt +++ b/core-android/src/main/java/com/jraska/github/client/core/android/TopActivityProvider.kt @@ -1,26 +1,24 @@ -package com.jraska.github.client +package com.jraska.github.client.core.android import android.app.Activity import android.app.Application import android.os.Bundle -import com.jraska.github.client.core.android.OnAppCreate -import com.jraska.github.client.ui.BaseActivity import javax.inject.Inject import javax.inject.Provider -class TopActivityProvider internal constructor() : Provider { - private var topActivity: BaseActivity? = null +class TopActivityProvider : Provider { + private var topActivity: Activity? = null private val callbacks: Application.ActivityLifecycleCallbacks = object : Application.ActivityLifecycleCallbacks { override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { - topActivity = activity as BaseActivity + topActivity = activity } override fun onActivityStarted(activity: Activity) {} override fun onActivityResumed(activity: Activity) { - topActivity = activity as BaseActivity + topActivity = activity } override fun onActivityPaused(activity: Activity) {} @@ -32,7 +30,7 @@ class TopActivityProvider internal constructor() : Provider { override fun onActivityDestroyed(activity: Activity) {} } - override fun get(): BaseActivity { + override fun get(): Activity { if (topActivity == null) { throw IllegalStateException("No activity") } From 2298503126794ffe615991b4788789afe3c036f0 Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:51:26 +0200 Subject: [PATCH 10/12] Change checksum to restore cache properly --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 785beb67..0f054217 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,14 +9,14 @@ jobs: steps: - checkout - restore_cache: - key: jars-{{ checksum "build.gradle" }}-{{ checksum "client/build.gradle" }} + key: jars-{{ checksum "build.gradle" }}-{{ checksum "client/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "core-android/build.gradle" }} - run: name: Get Dependencies command: ./gradlew androidDependencies - save_cache: paths: - ~/.gradle - key: jars-{{ checksum "build.gradle" }}-{{ checksum "client/build.gradle" }} + key: jars-{{ checksum "build.gradle" }}-{{ checksum "client/build.gradle" }}-{{ checksum "core/build.gradle" }}-{{ checksum "core-android/build.gradle" }} - run: name: Run Tests command: ./gradlew lint test From b42b0e20b7b9360b18a9f273559ffb5c87ff6291 Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:55:55 +0200 Subject: [PATCH 11/12] Rename client-data module for users module --- client/build.gradle | 2 +- {client-data => core}/.gitignore | 0 core/build.gradle | 18 ++++++++++++++++++ {client-data => core}/lint.xml | 0 feature-users/.gitignore | 1 + {client-data => feature-users}/build.gradle | 0 feature-users/lint.xml | 6 ++++++ .../src/main/AndroidManifest.xml | 0 .../client/users/GitHubApiUsersRepository.kt | 0 .../jraska/github/client/users/GitHubRepo.kt | 0 .../jraska/github/client/users/GitHubUser.kt | 0 .../github/client/users/GitHubUserDetail.kt | 0 .../github/client/users/GitHubUserDetailApi.kt | 0 .../github/client/users/GitHubUsersApi.kt | 0 .../github/client/users/RepoConverter.kt | 0 .../jraska/github/client/users/RepoDetail.kt | 0 .../github/client/users/RepoDetailViewModel.kt | 0 .../jraska/github/client/users/RepoHeader.kt | 0 .../com/jraska/github/client/users/User.kt | 0 .../jraska/github/client/users/UserDetail.kt | 0 .../github/client/users/UserDetailViewModel.kt | 0 .../users/UserDetailWithReposConverter.kt | 0 .../jraska/github/client/users/UserStats.kt | 0 .../github/client/users/UserViewModelModule.kt | 0 .../github/client/users/UsersDataModule.kt | 0 .../github/client/users/UsersRepository.kt | 0 .../github/client/users/UsersViewModel.kt | 0 .../com/jraska/github/client/FakeConfig.kt | 0 .../github/client/users/GitHubUserTest.kt | 0 .../client/users/RepoDetailViewModelTest.kt | 0 .../client/users/UserDetailViewModelTest.kt | 0 .../github/client/users/UsersViewModelTest.kt | 0 settings.gradle | 2 +- 33 files changed, 27 insertions(+), 2 deletions(-) rename {client-data => core}/.gitignore (100%) create mode 100644 core/build.gradle rename {client-data => core}/lint.xml (100%) create mode 100644 feature-users/.gitignore rename {client-data => feature-users}/build.gradle (100%) create mode 100644 feature-users/lint.xml rename {client-data => feature-users}/src/main/AndroidManifest.xml (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/GitHubApiUsersRepository.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/GitHubRepo.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/GitHubUser.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/GitHubUserDetail.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/GitHubUserDetailApi.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/GitHubUsersApi.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/RepoConverter.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/RepoDetail.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/RepoHeader.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/User.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/UserDetail.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/UserDetailWithReposConverter.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/UserStats.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/UserViewModelModule.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/UsersDataModule.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/UsersRepository.kt (100%) rename {client-data => feature-users}/src/main/java/com/jraska/github/client/users/UsersViewModel.kt (100%) rename {client-data => feature-users}/src/test/java/com/jraska/github/client/FakeConfig.kt (100%) rename {client-data => feature-users}/src/test/java/com/jraska/github/client/users/GitHubUserTest.kt (100%) rename {client-data => feature-users}/src/test/java/com/jraska/github/client/users/RepoDetailViewModelTest.kt (100%) rename {client-data => feature-users}/src/test/java/com/jraska/github/client/users/UserDetailViewModelTest.kt (100%) rename {client-data => feature-users}/src/test/java/com/jraska/github/client/users/UsersViewModelTest.kt (100%) diff --git a/client/build.gradle b/client/build.gradle index d328c6f0..c1be37ca 100644 --- a/client/build.gradle +++ b/client/build.gradle @@ -58,7 +58,7 @@ dependencies { api project(':core') api project(':core-android') - api project(':client-data') + api project(':feature-users') implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' implementation 'androidx.legacy:legacy-support-v4:1.0.0' diff --git a/client-data/.gitignore b/core/.gitignore similarity index 100% rename from client-data/.gitignore rename to core/.gitignore diff --git a/core/build.gradle b/core/build.gradle new file mode 100644 index 00000000..fc4ee216 --- /dev/null +++ b/core/build.gradle @@ -0,0 +1,18 @@ +apply plugin: 'java-library' +apply plugin: 'com.android.lint' +apply plugin: 'kotlin' + +dependencies { + api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + + api 'io.reactivex.rxjava2:rxjava:2.2.7' + api 'com.squareup.okhttp3:okhttp:3.13.1' + api 'com.squareup.okio:okio:2.2.2' + + api 'org.threeten:threetenbp:1.3.7:no-tzdb' + api 'javax.inject:javax.inject:1' + + testImplementation 'junit:junit:4.12' + testImplementation 'org.assertj:assertj-core:3.11.1' + testImplementation 'org.mockito:mockito-core:2.23.4' +} diff --git a/client-data/lint.xml b/core/lint.xml similarity index 100% rename from client-data/lint.xml rename to core/lint.xml diff --git a/feature-users/.gitignore b/feature-users/.gitignore new file mode 100644 index 00000000..796b96d1 --- /dev/null +++ b/feature-users/.gitignore @@ -0,0 +1 @@ +/build diff --git a/client-data/build.gradle b/feature-users/build.gradle similarity index 100% rename from client-data/build.gradle rename to feature-users/build.gradle diff --git a/feature-users/lint.xml b/feature-users/lint.xml new file mode 100644 index 00000000..7f38fb6c --- /dev/null +++ b/feature-users/lint.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/client-data/src/main/AndroidManifest.xml b/feature-users/src/main/AndroidManifest.xml similarity index 100% rename from client-data/src/main/AndroidManifest.xml rename to feature-users/src/main/AndroidManifest.xml diff --git a/client-data/src/main/java/com/jraska/github/client/users/GitHubApiUsersRepository.kt b/feature-users/src/main/java/com/jraska/github/client/users/GitHubApiUsersRepository.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/GitHubApiUsersRepository.kt rename to feature-users/src/main/java/com/jraska/github/client/users/GitHubApiUsersRepository.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/GitHubRepo.kt b/feature-users/src/main/java/com/jraska/github/client/users/GitHubRepo.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/GitHubRepo.kt rename to feature-users/src/main/java/com/jraska/github/client/users/GitHubRepo.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/GitHubUser.kt b/feature-users/src/main/java/com/jraska/github/client/users/GitHubUser.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/GitHubUser.kt rename to feature-users/src/main/java/com/jraska/github/client/users/GitHubUser.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/GitHubUserDetail.kt b/feature-users/src/main/java/com/jraska/github/client/users/GitHubUserDetail.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/GitHubUserDetail.kt rename to feature-users/src/main/java/com/jraska/github/client/users/GitHubUserDetail.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/GitHubUserDetailApi.kt b/feature-users/src/main/java/com/jraska/github/client/users/GitHubUserDetailApi.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/GitHubUserDetailApi.kt rename to feature-users/src/main/java/com/jraska/github/client/users/GitHubUserDetailApi.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/GitHubUsersApi.kt b/feature-users/src/main/java/com/jraska/github/client/users/GitHubUsersApi.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/GitHubUsersApi.kt rename to feature-users/src/main/java/com/jraska/github/client/users/GitHubUsersApi.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/RepoConverter.kt b/feature-users/src/main/java/com/jraska/github/client/users/RepoConverter.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/RepoConverter.kt rename to feature-users/src/main/java/com/jraska/github/client/users/RepoConverter.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/RepoDetail.kt b/feature-users/src/main/java/com/jraska/github/client/users/RepoDetail.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/RepoDetail.kt rename to feature-users/src/main/java/com/jraska/github/client/users/RepoDetail.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt b/feature-users/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt rename to feature-users/src/main/java/com/jraska/github/client/users/RepoDetailViewModel.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/RepoHeader.kt b/feature-users/src/main/java/com/jraska/github/client/users/RepoHeader.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/RepoHeader.kt rename to feature-users/src/main/java/com/jraska/github/client/users/RepoHeader.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/User.kt b/feature-users/src/main/java/com/jraska/github/client/users/User.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/User.kt rename to feature-users/src/main/java/com/jraska/github/client/users/User.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/UserDetail.kt b/feature-users/src/main/java/com/jraska/github/client/users/UserDetail.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/UserDetail.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UserDetail.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt b/feature-users/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UserDetailViewModel.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/UserDetailWithReposConverter.kt b/feature-users/src/main/java/com/jraska/github/client/users/UserDetailWithReposConverter.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/UserDetailWithReposConverter.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UserDetailWithReposConverter.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/UserStats.kt b/feature-users/src/main/java/com/jraska/github/client/users/UserStats.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/UserStats.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UserStats.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/UserViewModelModule.kt b/feature-users/src/main/java/com/jraska/github/client/users/UserViewModelModule.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/UserViewModelModule.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UserViewModelModule.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/UsersDataModule.kt b/feature-users/src/main/java/com/jraska/github/client/users/UsersDataModule.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/UsersDataModule.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UsersDataModule.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/UsersRepository.kt b/feature-users/src/main/java/com/jraska/github/client/users/UsersRepository.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/UsersRepository.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UsersRepository.kt diff --git a/client-data/src/main/java/com/jraska/github/client/users/UsersViewModel.kt b/feature-users/src/main/java/com/jraska/github/client/users/UsersViewModel.kt similarity index 100% rename from client-data/src/main/java/com/jraska/github/client/users/UsersViewModel.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UsersViewModel.kt diff --git a/client-data/src/test/java/com/jraska/github/client/FakeConfig.kt b/feature-users/src/test/java/com/jraska/github/client/FakeConfig.kt similarity index 100% rename from client-data/src/test/java/com/jraska/github/client/FakeConfig.kt rename to feature-users/src/test/java/com/jraska/github/client/FakeConfig.kt diff --git a/client-data/src/test/java/com/jraska/github/client/users/GitHubUserTest.kt b/feature-users/src/test/java/com/jraska/github/client/users/GitHubUserTest.kt similarity index 100% rename from client-data/src/test/java/com/jraska/github/client/users/GitHubUserTest.kt rename to feature-users/src/test/java/com/jraska/github/client/users/GitHubUserTest.kt diff --git a/client-data/src/test/java/com/jraska/github/client/users/RepoDetailViewModelTest.kt b/feature-users/src/test/java/com/jraska/github/client/users/RepoDetailViewModelTest.kt similarity index 100% rename from client-data/src/test/java/com/jraska/github/client/users/RepoDetailViewModelTest.kt rename to feature-users/src/test/java/com/jraska/github/client/users/RepoDetailViewModelTest.kt diff --git a/client-data/src/test/java/com/jraska/github/client/users/UserDetailViewModelTest.kt b/feature-users/src/test/java/com/jraska/github/client/users/UserDetailViewModelTest.kt similarity index 100% rename from client-data/src/test/java/com/jraska/github/client/users/UserDetailViewModelTest.kt rename to feature-users/src/test/java/com/jraska/github/client/users/UserDetailViewModelTest.kt diff --git a/client-data/src/test/java/com/jraska/github/client/users/UsersViewModelTest.kt b/feature-users/src/test/java/com/jraska/github/client/users/UsersViewModelTest.kt similarity index 100% rename from client-data/src/test/java/com/jraska/github/client/users/UsersViewModelTest.kt rename to feature-users/src/test/java/com/jraska/github/client/users/UsersViewModelTest.kt diff --git a/settings.gradle b/settings.gradle index ee1c0174..934efc38 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':client', ':core', ':client-data', ':core-android' +include ':client', ':core', ':feature-users', ':core-android' From 3983ec07985de587ae4be8d221ac5d5c07e6361d Mon Sep 17 00:00:00 2001 From: Josef Raska <6277721+jraska@users.noreply.github.com> Date: Thu, 11 Apr 2019 01:04:35 +0200 Subject: [PATCH 12/12] Remove BaseActiivty code and keep it empty --- .../com/jraska/github/client/AppComponent.kt | 7 +++--- .../client/settings/SettingsActivity.kt | 2 ++ .../jraska/github/client/ui/BaseActivity.kt | 25 +------------------ .../github/client/ui/RepoDetailActivity.kt | 1 + .../github/client/ui/UserDetailActivity.kt | 3 ++- .../jraska/github/client/ui/UsersActivity.kt | 2 ++ .../github/client/users/UsersDataModule.kt | 20 --------------- ...{UserViewModelModule.kt => UsersModule.kt} | 15 ++++++++++- 8 files changed, 25 insertions(+), 50 deletions(-) delete mode 100644 feature-users/src/main/java/com/jraska/github/client/users/UsersDataModule.kt rename feature-users/src/main/java/com/jraska/github/client/users/{UserViewModelModule.kt => UsersModule.kt} (78%) diff --git a/client/src/main/java/com/jraska/github/client/AppComponent.kt b/client/src/main/java/com/jraska/github/client/AppComponent.kt index 528671b6..829f93b7 100644 --- a/client/src/main/java/com/jraska/github/client/AppComponent.kt +++ b/client/src/main/java/com/jraska/github/client/AppComponent.kt @@ -10,22 +10,21 @@ import com.jraska.github.client.logging.CrashReporter import com.jraska.github.client.push.PushHandler import com.jraska.github.client.push.PushModule import com.jraska.github.client.settings.SettingsModule -import com.jraska.github.client.users.UserViewModelModule -import com.jraska.github.client.users.UsersDataModule +import com.jraska.github.client.users.UsersModule import dagger.Component import dagger.Module import dagger.Provides import retrofit2.Retrofit @PerApp -@Component(modules = [UsersDataModule::class, UserViewModelModule::class, NavigationModule::class, +@Component(modules = [UsersModule::class, NavigationModule::class, PushModule::class, AppModule::class, SettingsModule::class, HttpComponentModule::class, CoreComponentModule::class]) interface AppComponent { fun onAppCreateActions(): Set - fun pushHandler() : PushHandler + fun pushHandler(): PushHandler fun viewModelFactory(): ViewModelProvider.Factory } diff --git a/client/src/main/java/com/jraska/github/client/settings/SettingsActivity.kt b/client/src/main/java/com/jraska/github/client/settings/SettingsActivity.kt index fa1f7ec8..e0368b10 100644 --- a/client/src/main/java/com/jraska/github/client/settings/SettingsActivity.kt +++ b/client/src/main/java/com/jraska/github/client/settings/SettingsActivity.kt @@ -8,6 +8,7 @@ import com.airbnb.epoxy.SimpleEpoxyAdapter import com.jraska.github.client.R import com.jraska.github.client.ui.BaseActivity import com.jraska.github.client.core.android.viewModel +import kotlinx.android.synthetic.main.activity_settings.* import kotlinx.android.synthetic.main.content_settings.* class SettingsActivity : BaseActivity(), PurchaseReportModel.PurchaseListener { @@ -16,6 +17,7 @@ class SettingsActivity : BaseActivity(), PurchaseReportModel.PurchaseListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_settings) + setSupportActionBar(toolbar) settings_recycler.layoutManager = LinearLayoutManager(this) val adapter = SimpleEpoxyAdapter() diff --git a/client/src/main/java/com/jraska/github/client/ui/BaseActivity.kt b/client/src/main/java/com/jraska/github/client/ui/BaseActivity.kt index 13777b21..1def5105 100644 --- a/client/src/main/java/com/jraska/github/client/ui/BaseActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/BaseActivity.kt @@ -1,28 +1,5 @@ package com.jraska.github.client.ui -import android.view.View -import android.view.ViewGroup import androidx.appcompat.app.AppCompatActivity -import kotlinx.android.synthetic.main.activity_settings.* -abstract class BaseActivity : AppCompatActivity() { - - override fun setContentView(layoutResID: Int) { - super.setContentView(layoutResID) - onSetContentView() - } - - override fun setContentView(view: View) { - super.setContentView(view) - onSetContentView() - } - - override fun setContentView(view: View, params: ViewGroup.LayoutParams) { - super.setContentView(view, params) - onSetContentView() - } - - protected fun onSetContentView() { - setSupportActionBar(toolbar) - } -} +abstract class BaseActivity : AppCompatActivity() diff --git a/client/src/main/java/com/jraska/github/client/ui/RepoDetailActivity.kt b/client/src/main/java/com/jraska/github/client/ui/RepoDetailActivity.kt index 10bd9235..d1b5a4f7 100644 --- a/client/src/main/java/com/jraska/github/client/ui/RepoDetailActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/RepoDetailActivity.kt @@ -26,6 +26,7 @@ class RepoDetailActivity : BaseActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_repo_detail) + setSupportActionBar(toolbar) repo_detail_recycler.layoutManager = LinearLayoutManager(this) title = fullRepoName() diff --git a/client/src/main/java/com/jraska/github/client/ui/UserDetailActivity.kt b/client/src/main/java/com/jraska/github/client/ui/UserDetailActivity.kt index a4863a7a..01529269 100644 --- a/client/src/main/java/com/jraska/github/client/ui/UserDetailActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/UserDetailActivity.kt @@ -9,10 +9,10 @@ import com.airbnb.epoxy.EpoxyModel import com.airbnb.epoxy.SimpleEpoxyAdapter import com.airbnb.epoxy.SimpleEpoxyModel import com.jraska.github.client.R +import com.jraska.github.client.core.android.viewModel import com.jraska.github.client.users.RepoHeader import com.jraska.github.client.users.UserDetail import com.jraska.github.client.users.UserDetailViewModel -import com.jraska.github.client.core.android.viewModel import kotlinx.android.synthetic.main.activity_user_detail.* import kotlinx.android.synthetic.main.content_user_detail.* @@ -27,6 +27,7 @@ class UserDetailActivity : BaseActivity(), RepoHeaderModel.RepoListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_user_detail) + setSupportActionBar(toolbar) user_detail_recycler.layoutManager = LinearLayoutManager(this) user_detail_recycler.isNestedScrollingEnabled = false diff --git a/client/src/main/java/com/jraska/github/client/ui/UsersActivity.kt b/client/src/main/java/com/jraska/github/client/ui/UsersActivity.kt index 5756b1a4..52de442e 100644 --- a/client/src/main/java/com/jraska/github/client/ui/UsersActivity.kt +++ b/client/src/main/java/com/jraska/github/client/ui/UsersActivity.kt @@ -12,6 +12,7 @@ import com.jraska.github.client.R import com.jraska.github.client.users.User import com.jraska.github.client.users.UsersViewModel import com.jraska.github.client.core.android.viewModel +import kotlinx.android.synthetic.main.activity_users_list.* import kotlinx.android.synthetic.main.content_users_list.* class UsersActivity : BaseActivity(), UserModel.UserListener { @@ -20,6 +21,7 @@ class UsersActivity : BaseActivity(), UserModel.UserListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_users_list) + setSupportActionBar(toolbar) users_recycler.layoutManager = LinearLayoutManager(this) users_refresh_swipe_layout.setOnRefreshListener { usersViewModel.onRefresh() } diff --git a/feature-users/src/main/java/com/jraska/github/client/users/UsersDataModule.kt b/feature-users/src/main/java/com/jraska/github/client/users/UsersDataModule.kt deleted file mode 100644 index 0b9aeaa2..00000000 --- a/feature-users/src/main/java/com/jraska/github/client/users/UsersDataModule.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.jraska.github.client.users - -import com.jraska.github.client.PerApp - -import dagger.Module -import dagger.Provides -import retrofit2.Retrofit - -@Module -object UsersDataModule { - @JvmStatic - @Provides - @PerApp - fun provideUsersRepository(retrofit: Retrofit): UsersRepository { - val usersApi = retrofit.create(GitHubUsersApi::class.java) - val detailApi = retrofit.create(GitHubUserDetailApi::class.java) - - return GitHubApiUsersRepository(usersApi, detailApi) - } -} diff --git a/feature-users/src/main/java/com/jraska/github/client/users/UserViewModelModule.kt b/feature-users/src/main/java/com/jraska/github/client/users/UsersModule.kt similarity index 78% rename from feature-users/src/main/java/com/jraska/github/client/users/UserViewModelModule.kt rename to feature-users/src/main/java/com/jraska/github/client/users/UsersModule.kt index 9edac6b8..8a830aa3 100644 --- a/feature-users/src/main/java/com/jraska/github/client/users/UserViewModelModule.kt +++ b/feature-users/src/main/java/com/jraska/github/client/users/UsersModule.kt @@ -3,15 +3,28 @@ package com.jraska.github.client.users import androidx.lifecycle.ViewModel import com.jraska.github.client.Config import com.jraska.github.client.Navigator +import com.jraska.github.client.PerApp import com.jraska.github.client.analytics.EventAnalytics import com.jraska.github.client.rx.AppSchedulers + import dagger.Module import dagger.Provides import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap +import retrofit2.Retrofit @Module -object UserViewModelModule { +object UsersModule { + @JvmStatic + @Provides + @PerApp + fun provideUsersRepository(retrofit: Retrofit): UsersRepository { + val usersApi = retrofit.create(GitHubUsersApi::class.java) + val detailApi = retrofit.create(GitHubUserDetailApi::class.java) + + return GitHubApiUsersRepository(usersApi, detailApi) + } + @JvmStatic @Provides @IntoMap