Ver código fonte

clear project

MrOzOn 5 anos atrás
pai
commit
3fca1498a4
43 arquivos alterados com 74 adições e 481 exclusões
  1. 16 15
      app/build.gradle
  2. 5 17
      app/src/main/java/com/mrozon/healthdiary/App.kt
  3. 0 13
      app/src/main/java/com/mrozon/healthdiary/di/builder/ActivityBuilder.kt
  4. 0 25
      app/src/main/java/com/mrozon/healthdiary/di/component/AppComponent.kt
  5. 0 19
      app/src/main/java/com/mrozon/healthdiary/di/module/AppModule.kt
  6. 0 11
      app/src/main/java/com/mrozon/healthdiary/di/scopes.kt
  7. 2 9
      app/src/main/java/com/mrozon/healthdiary/presentation/main/MainActivity.kt
  8. 0 16
      app/src/main/java/com/mrozon/healthdiary/presentation/main/MainActivityModule.kt
  9. 2 2
      app/src/main/java/com/mrozon/healthdiary/presentation/main/MainActivityViewModel.kt
  10. 2 2
      app/src/main/java/com/mrozon/healthdiary/presentation/showperson/ShowPersonFragment.kt
  11. 0 6
      app/src/main/java/com/mrozon/healthdiary/presentation/showperson/ShowPersonFragmentModule.kt
  12. 2 2
      app/src/main/java/com/mrozon/healthdiary/presentation/showperson/ShowPersonViewModal.kt
  13. 8 2
      build.gradle
  14. 0 55
      core/build.gradle
  15. 0 16
      core/src/main/java/com/mrozon/core/ViewModelProviderFactory.kt
  16. 0 18
      core/src/main/java/com/mrozon/core/base/BaseViewModel.kt
  17. 0 1
      feature_auth_api/.gitignore
  18. 0 0
      feature_auth_api/consumer-rules.pro
  19. 0 21
      feature_auth_api/proguard-rules.pro
  20. 0 24
      feature_auth_api/src/androidTest/java/com/mrozon/feature_auth_api/ExampleInstrumentedTest.kt
  21. 0 2
      feature_auth_api/src/main/AndroidManifest.xml
  22. 0 7
      feature_auth_api/src/main/java/com/mrozon/feature_auth_api/domain/entities/User.kt
  23. 0 10
      feature_auth_api/src/main/java/com/mrozon/feature_auth_api/domain/usecases/AuthUseCase.kt
  24. 0 17
      feature_auth_api/src/test/java/com/mrozon/feature_auth_api/ExampleUnitTest.kt
  25. 0 1
      feature_auth_impl/.gitignore
  26. 0 37
      feature_auth_impl/build.gradle
  27. 0 0
      feature_auth_impl/consumer-rules.pro
  28. 0 21
      feature_auth_impl/proguard-rules.pro
  29. 0 24
      feature_auth_impl/src/androidTest/java/com/mrozon/feature_auth_impl/ExampleInstrumentedTest.kt
  30. 0 2
      feature_auth_impl/src/main/AndroidManifest.xml
  31. 0 23
      feature_auth_impl/src/main/java/com/mrozon/feature_auth_impl/domain/usecases/AuthUseCaseImpl.kt
  32. 0 17
      feature_auth_impl/src/test/java/com/mrozon/feature_auth_impl/ExampleUnitTest.kt
  33. 1 3
      settings.gradle
  34. 0 0
      utils/.gitignore
  35. 13 1
      utils/build.gradle
  36. 0 0
      utils/consumer-rules.pro
  37. 0 0
      utils/proguard-rules.pro
  38. 2 2
      utils/src/androidTest/java/com/mrozon/utils/ExampleInstrumentedTest.kt
  39. 1 1
      utils/src/main/AndroidManifest.xml
  40. 2 19
      utils/src/main/java/com/mrozon/utils/base/BaseActivity.kt
  41. 1 19
      utils/src/main/java/com/mrozon/utils/base/BaseFragment.kt
  42. 16 0
      utils/src/main/java/com/mrozon/utils/base/BaseViewModel.kt
  43. 1 1
      utils/src/test/java/com/mrozon/utils/ExampleUnitTest.kt

+ 16 - 15
app/build.gradle

@@ -4,13 +4,13 @@ apply plugin: 'kotlin-android-extensions'
 apply plugin: 'kotlin-kapt'
 
 android {
-    compileSdkVersion 29
+    compileSdkVersion rootProject.compileSdkVersion
     buildToolsVersion "29.0.3"
 
     defaultConfig {
         applicationId "com.mrozon.healthdiary"
-        minSdkVersion 21
-        targetSdkVersion 29
+        minSdkVersion rootProject.minSdkVersion
+        targetSdkVersion rootProject.targetSdkVersion
         versionCode 1
         versionName "1.0"
 
@@ -26,6 +26,10 @@ android {
     dataBinding {
         enabled = true
     }
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
     kotlinOptions {
         jvmTarget = '1.8'
     }
@@ -33,28 +37,25 @@ android {
 
 }
 
+apply from: "$project.rootDir/scripts/deps_versions.gradle"
+
 dependencies {
-    implementation project(':core')
     implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
     //DAGGER
-    def dagger_version = "2.21"
-    implementation "com.google.dagger:dagger:$dagger_version"
-    kapt "com.google.dagger:dagger-compiler:$dagger_version"
-    implementation "com.google.dagger:dagger-android-support:$dagger_version"
-    kapt "com.google.dagger:dagger-android-processor:$dagger_version"
+    implementation dagger
+    kapt daggerCompiler
     //NAVIGATION
-    def nav_version = "2.3.0"
-    implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
-    implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
-    // Dynamic Feature Module Support
-    implementation "androidx.navigation:navigation-dynamic-features-fragment:$nav_version"
+    implementation navigationFragment
+    implementation navigationUi
+    implementation navigationDynamicFeatures
 
     implementation fileTree(dir: 'libs', include: ['*.jar'])
     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-    implementation 'androidx.appcompat:appcompat:1.1.0'
+    implementation 'androidx.appcompat:appcompat:1.2.0'
     implementation 'androidx.core:core-ktx:1.3.1'
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'androidx.test.ext:junit:1.1.1'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
+    implementation project(':utils')
 }

+ 5 - 17
app/src/main/java/com/mrozon/healthdiary/App.kt

@@ -2,20 +2,8 @@ package com.mrozon.healthdiary
 
 import android.app.Activity
 import android.app.Application
-import com.mrozon.healthdiary.di.component.DaggerAppComponent
-import dagger.android.AndroidInjector
-import dagger.android.DispatchingAndroidInjector
-import dagger.android.HasActivityInjector
-import javax.inject.Inject
 
-class App: Application(), HasActivityInjector {
-
-    @Inject
-    lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Activity>
-
-    override fun activityInjector(): AndroidInjector<Activity> {
-        return dispatchingAndroidInjector
-    }
+class App: Application() {
 
     override fun onCreate() {
         super.onCreate()
@@ -23,10 +11,10 @@ class App: Application(), HasActivityInjector {
     }
 
     private fun initDagger() {
-        DaggerAppComponent.builder()
-            .application(this)
-            .build()
-            .inject(this)
+//        DaggerAppComponent.builder()
+//            .application(this)
+//            .build()
+//            .inject(this)
     }
 }
 

+ 0 - 13
app/src/main/java/com/mrozon/healthdiary/di/builder/ActivityBuilder.kt

@@ -1,13 +0,0 @@
-package com.mrozon.healthdiary.di.builder
-
-import com.mrozon.healthdiary.presentation.main.MainActivity
-import com.mrozon.healthdiary.presentation.main.MainActivityModule
-import dagger.Module
-import dagger.android.ContributesAndroidInjector
-
-@Module
-abstract class ActivityBuilder {
-
-    @ContributesAndroidInjector(modules = [(MainActivityModule::class)])
-    abstract fun bindMainActivity(): MainActivity
-}

+ 0 - 25
app/src/main/java/com/mrozon/healthdiary/di/component/AppComponent.kt

@@ -1,25 +0,0 @@
-package com.mrozon.healthdiary.di.component
-
-import com.mrozon.healthdiary.App
-import com.mrozon.healthdiary.di.module.AppModule
-import dagger.BindsInstance
-import dagger.Component
-import dagger.android.AndroidInjectionModule
-import javax.inject.Singleton
-
-@Singleton
-@Component(modules = [AppModule::class])
-interface AppComponent {
-
-    @Component.Builder
-    interface Builder {
-
-        @BindsInstance
-        fun application(application: App): Builder
-
-        fun build(): AppComponent
-    }
-
-    fun inject(app: App)
-
-}

+ 0 - 19
app/src/main/java/com/mrozon/healthdiary/di/module/AppModule.kt

@@ -1,19 +0,0 @@
-package com.mrozon.healthdiary.di.module
-
-import com.mrozon.healthdiary.di.ActivityScope
-import com.mrozon.healthdiary.presentation.main.MainActivity
-import com.mrozon.healthdiary.presentation.main.MainActivityModule
-import dagger.Binds
-import dagger.Module
-import dagger.android.ContributesAndroidInjector
-import dagger.android.support.AndroidSupportInjectionModule
-import javax.inject.Singleton
-
-
-@Module(includes = [AndroidSupportInjectionModule::class])
-interface AppModule {
-
-    @ActivityScope
-    @ContributesAndroidInjector(modules = [MainActivityModule::class])
-    fun provideMainActivity(): MainActivity
-}

+ 0 - 11
app/src/main/java/com/mrozon/healthdiary/di/scopes.kt

@@ -1,11 +0,0 @@
-package com.mrozon.healthdiary.di
-
-import javax.inject.Scope
-
-@Scope
-@Retention(AnnotationRetention.RUNTIME)
-annotation class ActivityScope
-
-@Scope
-@Retention(AnnotationRetention.RUNTIME)
-annotation class FragmentScope

+ 2 - 9
app/src/main/java/com/mrozon/healthdiary/presentation/main/MainActivity.kt

@@ -1,26 +1,19 @@
 package com.mrozon.healthdiary.presentation.main
 
 import android.os.Bundle
-import androidx.fragment.app.Fragment
 import androidx.navigation.findNavController
 import androidx.navigation.ui.AppBarConfiguration
 import androidx.navigation.ui.navigateUp
 import androidx.navigation.ui.setupActionBarWithNavController
-import com.mrozon.core.base.BaseActivity
 import com.mrozon.healthdiary.R
 import com.mrozon.healthdiary.databinding.ActivityMainBinding
-import dagger.android.AndroidInjector
-import dagger.android.DispatchingAndroidInjector
-import javax.inject.Inject
+import com.mrozon.utils.base.BaseActivity
 
 class MainActivity : BaseActivity<ActivityMainBinding>() {
 
-    @Inject
+    //TODO inject
     lateinit var viewModel: MainActivityViewModel
 
-    @Inject
-    lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Fragment>
-
     override fun getLayoutId(): Int = R.layout.activity_main
 
 

+ 0 - 16
app/src/main/java/com/mrozon/healthdiary/presentation/main/MainActivityModule.kt

@@ -1,16 +0,0 @@
-package com.mrozon.healthdiary.presentation.main
-
-import com.mrozon.healthdiary.di.FragmentScope
-import com.mrozon.healthdiary.presentation.showperson.ShowPersonFragment
-import com.mrozon.healthdiary.presentation.showperson.ShowPersonFragmentModule
-import dagger.Module
-import dagger.android.ContributesAndroidInjector
-
-
-@Module
-interface MainActivityModule {
-
-    @FragmentScope
-    @ContributesAndroidInjector(modules = [ ShowPersonFragmentModule::class])
-    fun provideShowPersonFragment(): ShowPersonFragment
-}

+ 2 - 2
app/src/main/java/com/mrozon/healthdiary/presentation/main/MainActivityViewModel.kt

@@ -1,6 +1,6 @@
 package com.mrozon.healthdiary.presentation.main
 
-import com.mrozon.core.base.BaseViewModel
+import com.mrozon.utils.base.BaseViewModel
 import javax.inject.Inject
 
-class MainActivityViewModel @Inject constructor(): BaseViewModel()
+class MainActivityViewModel @Inject constructor(): com.mrozon.utils.base.BaseViewModel()

+ 2 - 2
app/src/main/java/com/mrozon/healthdiary/presentation/showperson/ShowPersonFragment.kt

@@ -1,11 +1,11 @@
 package com.mrozon.healthdiary.presentation.showperson
 
-import com.mrozon.core.base.BaseFragment
+import com.mrozon.utils.base.BaseFragment
 import com.mrozon.healthdiary.R
 import com.mrozon.healthdiary.databinding.FragmentShowPersonBinding
 import javax.inject.Inject
 
-class ShowPersonFragment: BaseFragment<FragmentShowPersonBinding>() {
+class ShowPersonFragment: com.mrozon.utils.base.BaseFragment<FragmentShowPersonBinding>() {
 
     @Inject
     lateinit var showPersonViewModal: ShowPersonViewModal

+ 0 - 6
app/src/main/java/com/mrozon/healthdiary/presentation/showperson/ShowPersonFragmentModule.kt

@@ -1,6 +0,0 @@
-package com.mrozon.healthdiary.presentation.showperson
-
-import dagger.Module
-
-@Module
-interface ShowPersonFragmentModule

+ 2 - 2
app/src/main/java/com/mrozon/healthdiary/presentation/showperson/ShowPersonViewModal.kt

@@ -1,6 +1,6 @@
 package com.mrozon.healthdiary.presentation.showperson
 
-import com.mrozon.core.base.BaseViewModel
+import com.mrozon.utils.base.BaseViewModel
 import javax.inject.Inject
 
-class ShowPersonViewModal @Inject constructor(): BaseViewModel()
+class ShowPersonViewModal @Inject constructor(): com.mrozon.utils.base.BaseViewModel()

+ 8 - 2
build.gradle

@@ -1,14 +1,20 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 
 buildscript {
-    ext.kotlin_version = '1.3.72'
+    ext {
+        kotlin_version = '1.3.72'
+        // Sdk and tools
+        compileSdkVersion = 29
+        minSdkVersion = 21
+        targetSdkVersion = 29
+    }
     repositories {
         google()
         jcenter()
         
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.6.3'
+        classpath 'com.android.tools.build:gradle:3.6.4'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
         classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.10.0"
     }

+ 0 - 55
core/build.gradle

@@ -1,55 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
-apply plugin: 'kotlin-kapt'
-
-android {
-    compileSdkVersion 29
-    buildToolsVersion "29.0.3"
-
-    defaultConfig {
-        minSdkVersion 21
-        targetSdkVersion 29
-        versionCode 1
-        versionName "1.0"
-
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-        consumerProguardFiles 'consumer-rules.pro'
-    }
-
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-        }
-    }
-    dataBinding {
-        enabled = true
-    }
-    kotlinOptions {
-        jvmTarget = '1.8'
-    }
-
-}
-
-dependencies {
-
-    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
-    //RXJava
-    implementation "io.reactivex.rxjava2:rxjava:2.2.10"
-    implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
-    //DAGGER
-    def dagger_version = "2.24"
-    implementation "com.google.dagger:dagger:$dagger_version"
-    kapt "com.google.dagger:dagger-compiler:$dagger_version"
-    implementation "com.google.dagger:dagger-android-support:2.21"
-    kapt "com.google.dagger:dagger-android-processor:$dagger_version"
-
-    implementation fileTree(dir: 'libs', include: ['*.jar'])
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-    implementation 'androidx.appcompat:appcompat:1.1.0'
-    implementation 'androidx.core:core-ktx:1.3.1'
-    testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
-}

+ 0 - 16
core/src/main/java/com/mrozon/core/ViewModelProviderFactory.kt

@@ -1,16 +0,0 @@
-package com.mrozon.core.base
-
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.ViewModelProvider
-
-class ViewModelProviderFactory<V : Any>(private var viewModel: V) : ViewModelProvider.Factory {
-
-    @Suppress("UNCHECKED_CAST")
-    override fun <T : ViewModel?> create(modelClass: Class<T>): T {
-        if (modelClass.isAssignableFrom(viewModel::class.java)) {
-            return viewModel as T
-        }
-
-        throw IllegalArgumentException("Unknown class name")
-    }
-}

+ 0 - 18
core/src/main/java/com/mrozon/core/base/BaseViewModel.kt

@@ -1,18 +0,0 @@
-package com.mrozon.core.base
-
-import androidx.lifecycle.ViewModel
-import io.reactivex.disposables.CompositeDisposable
-import io.reactivex.disposables.Disposable
-
-abstract class BaseViewModel: ViewModel() {
-    private var compositeDisposable: CompositeDisposable = CompositeDisposable()
-
-    override fun onCleared() {
-        compositeDisposable.dispose()
-        super.onCleared()
-    }
-
-    fun launch(job: () -> Disposable) {
-        compositeDisposable.add(job())
-    }
-}

+ 0 - 1
feature_auth_api/.gitignore

@@ -1 +0,0 @@
-/build

+ 0 - 0
feature_auth_api/consumer-rules.pro


+ 0 - 21
feature_auth_api/proguard-rules.pro

@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile

+ 0 - 24
feature_auth_api/src/androidTest/java/com/mrozon/feature_auth_api/ExampleInstrumentedTest.kt

@@ -1,24 +0,0 @@
-package com.mrozon.feature_auth_api
-
-import androidx.test.platform.app.InstrumentationRegistry
-import androidx.test.ext.junit.runners.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
-    @Test
-    fun useAppContext() {
-        // Context of the app under test.
-        val appContext = InstrumentationRegistry.getInstrumentation().targetContext
-        assertEquals("com.mrozon.feature_auth_api.test", appContext.packageName)
-    }
-}

+ 0 - 2
feature_auth_api/src/main/AndroidManifest.xml

@@ -1,2 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.mrozon.feature_auth_api" />

+ 0 - 7
feature_auth_api/src/main/java/com/mrozon/feature_auth_api/domain/entities/User.kt

@@ -1,7 +0,0 @@
-package com.mrozon.feature_auth_api.domain.entities
-
-data class User(
-    val id: Int,
-    val username: String,
-    val firstName: String,
-    val lastName: String)

+ 0 - 10
feature_auth_api/src/main/java/com/mrozon/feature_auth_api/domain/usecases/AuthUseCase.kt

@@ -1,10 +0,0 @@
-package com.mrozon.feature_auth_api.domain.usecases
-
-import com.mrozon.feature_auth_api.domain.entities.User
-
-interface AuthUseCase {
-    fun isLoggedIn(user: User): Boolean
-    fun registerUser(user: User): Boolean
-    fun loginUser(user: User): Boolean
-    fun logoutUser(user: User): Boolean
-}

+ 0 - 17
feature_auth_api/src/test/java/com/mrozon/feature_auth_api/ExampleUnitTest.kt

@@ -1,17 +0,0 @@
-package com.mrozon.feature_auth_api
-
-import org.junit.Test
-
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
-    @Test
-    fun addition_isCorrect() {
-        assertEquals(4, 2 + 2)
-    }
-}

+ 0 - 1
feature_auth_impl/.gitignore

@@ -1 +0,0 @@
-/build

+ 0 - 37
feature_auth_impl/build.gradle

@@ -1,37 +0,0 @@
-apply plugin: 'com.android.library'
-apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-android-extensions'
-
-android {
-    compileSdkVersion 29
-    buildToolsVersion "29.0.3"
-
-    defaultConfig {
-        minSdkVersion 21
-        targetSdkVersion 29
-        versionCode 1
-        versionName "1.0"
-
-        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-        consumerProguardFiles 'consumer-rules.pro'
-    }
-
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-        }
-    }
-
-}
-
-dependencies {
-    implementation project(':feature_auth_api')
-    implementation fileTree(dir: 'libs', include: ['*.jar'])
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-    implementation 'androidx.appcompat:appcompat:1.1.0'
-    implementation 'androidx.core:core-ktx:1.3.1'
-    testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
-}

+ 0 - 0
feature_auth_impl/consumer-rules.pro


+ 0 - 21
feature_auth_impl/proguard-rules.pro

@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile

+ 0 - 24
feature_auth_impl/src/androidTest/java/com/mrozon/feature_auth_impl/ExampleInstrumentedTest.kt

@@ -1,24 +0,0 @@
-package com.mrozon.feature_auth_impl
-
-import androidx.test.platform.app.InstrumentationRegistry
-import androidx.test.ext.junit.runners.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
-    @Test
-    fun useAppContext() {
-        // Context of the app under test.
-        val appContext = InstrumentationRegistry.getInstrumentation().targetContext
-        assertEquals("com.mrozon.feature_auth_impl.test", appContext.packageName)
-    }
-}

+ 0 - 2
feature_auth_impl/src/main/AndroidManifest.xml

@@ -1,2 +0,0 @@
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.mrozon.feature_auth_impl" />

+ 0 - 23
feature_auth_impl/src/main/java/com/mrozon/feature_auth_impl/domain/usecases/AuthUseCaseImpl.kt

@@ -1,23 +0,0 @@
-package com.mrozon.feature_auth_impl.domain.usecases
-
-import com.mrozon.feature_auth_api.domain.entities.User
-import com.mrozon.feature_auth_api.domain.usecases.AuthUseCase
-
-class AuthUseCaseImpl : AuthUseCase {
-
-    override fun isLoggedIn(user: User): Boolean {
-        TODO("Not yet implemented")
-    }
-
-    override fun registerUser(user: User): Boolean {
-        TODO("Not yet implemented")
-    }
-
-    override fun loginUser(user: User): Boolean {
-        TODO("Not yet implemented")
-    }
-
-    override fun logoutUser(user: User): Boolean {
-        TODO("Not yet implemented")
-    }
-}

+ 0 - 17
feature_auth_impl/src/test/java/com/mrozon/feature_auth_impl/ExampleUnitTest.kt

@@ -1,17 +0,0 @@
-package com.mrozon.feature_auth_impl
-
-import org.junit.Test
-
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
-    @Test
-    fun addition_isCorrect() {
-        assertEquals(4, 2 + 2)
-    }
-}

+ 1 - 3
settings.gradle

@@ -1,5 +1,3 @@
 rootProject.name='HealthDiary'
 include ':app'
-include ':core'
-include ':feature_auth_api'
-include ':feature_auth_impl'
+include ':utils'

+ 0 - 0
core/.gitignore → utils/.gitignore


+ 13 - 1
feature_auth_api/build.gradle → utils/build.gradle

@@ -22,13 +22,25 @@ android {
             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         }
     }
+    dataBinding {
+        enabled = true
+    }
+    compileOptions {
+        sourceCompatibility JavaVersion.VERSION_1_8
+        targetCompatibility JavaVersion.VERSION_1_8
+    }
+    kotlinOptions {
+        jvmTarget = '1.8'
+    }
 
 }
 
 dependencies {
+    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
+
     implementation fileTree(dir: 'libs', include: ['*.jar'])
     implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-    implementation 'androidx.appcompat:appcompat:1.1.0'
+    implementation 'androidx.appcompat:appcompat:1.2.0'
     implementation 'androidx.core:core-ktx:1.3.1'
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'androidx.test.ext:junit:1.1.1'

+ 0 - 0
core/consumer-rules.pro → utils/consumer-rules.pro


+ 0 - 0
core/proguard-rules.pro → utils/proguard-rules.pro


+ 2 - 2
core/src/androidTest/java/com/mrozon/core/ExampleInstrumentedTest.kt → utils/src/androidTest/java/com/mrozon/utils/ExampleInstrumentedTest.kt

@@ -1,4 +1,4 @@
-package com.mrozon.core
+package com.mrozon.utils
 
 import androidx.test.platform.app.InstrumentationRegistry
 import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
     fun useAppContext() {
         // Context of the app under test.
         val appContext = InstrumentationRegistry.getInstrumentation().targetContext
-        assertEquals("com.mrozon.core.test", appContext.packageName)
+        assertEquals("com.mrozon.utils.test", appContext.packageName)
     }
 }

+ 1 - 1
core/src/main/AndroidManifest.xml → utils/src/main/AndroidManifest.xml

@@ -1,2 +1,2 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.mrozon.core" />
+    package="com.mrozon.utils" />

+ 2 - 19
core/src/main/java/com/mrozon/core/base/BaseActivity.kt → utils/src/main/java/com/mrozon/utils/base/BaseActivity.kt

@@ -1,30 +1,20 @@
-package com.mrozon.core.base
+package com.mrozon.utils.base
 
 import android.os.Bundle
 import androidx.annotation.LayoutRes
 import androidx.appcompat.app.AppCompatActivity
 import androidx.databinding.DataBindingUtil
 import androidx.databinding.ViewDataBinding
-import androidx.fragment.app.Fragment
-import dagger.android.AndroidInjection
-import dagger.android.AndroidInjector
-import dagger.android.DispatchingAndroidInjector
-import dagger.android.support.HasSupportFragmentInjector
-import javax.inject.Inject
 
-
-abstract class BaseActivity<T : ViewDataBinding>: AppCompatActivity(), HasSupportFragmentInjector {
+abstract class BaseActivity<T : ViewDataBinding>: AppCompatActivity(){
 
     lateinit var binding: T
 
     @LayoutRes
     protected abstract fun getLayoutId(): Int
 
-    @Inject
-    lateinit var fragmentInjector: DispatchingAndroidInjector<Fragment>
 
     override fun onCreate(savedInstanceState: Bundle?) {
-        performDI()
         super.onCreate(savedInstanceState)
         performDataBinding()
     }
@@ -34,11 +24,4 @@ abstract class BaseActivity<T : ViewDataBinding>: AppCompatActivity(), HasSuppor
         binding.executePendingBindings()
     }
 
-    private fun performDI() {
-        AndroidInjection.inject(this)
-    }
-
-    override fun supportFragmentInjector(): AndroidInjector<Fragment> {
-        return fragmentInjector
-    }
 }

+ 1 - 19
core/src/main/java/com/mrozon/core/base/BaseFragment.kt → utils/src/main/java/com/mrozon/utils/base/BaseFragment.kt

@@ -1,7 +1,5 @@
-package com.mrozon.core.base
+package com.mrozon.utils.base
 
-import android.app.Activity
-import android.content.Context
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
@@ -12,8 +10,6 @@ import androidx.annotation.LayoutRes
 import androidx.databinding.DataBindingUtil
 import androidx.databinding.ViewDataBinding
 import androidx.fragment.app.Fragment
-import dagger.android.AndroidInjection
-import dagger.android.support.AndroidSupportInjection
 
 abstract class BaseFragment<T : ViewDataBinding>: Fragment(),
     ViewTreeObserver.OnGlobalLayoutListener {
@@ -28,16 +24,6 @@ abstract class BaseFragment<T : ViewDataBinding>: Fragment(),
         rootView!!.viewTreeObserver.removeOnGlobalLayoutListener(this)
     }
 
-//    override fun onCreate(savedInstanceState: Bundle?) {
-//        performDI()
-//        super.onCreate(savedInstanceState)
-//    }
-
-    override fun onAttach(context: Context) {
-        performDI()
-        super.onAttach(context)
-    }
-
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
         val layoutId = getLayoutId()
         if (rootView != null) {
@@ -61,8 +47,4 @@ abstract class BaseFragment<T : ViewDataBinding>: Fragment(),
         return rootView
     }
 
-    private fun performDI() {
-        AndroidSupportInjection.inject(this)
-    }
-
 }

+ 16 - 0
utils/src/main/java/com/mrozon/utils/base/BaseViewModel.kt

@@ -0,0 +1,16 @@
+package com.mrozon.utils.base
+
+import androidx.lifecycle.ViewModel
+
+abstract class BaseViewModel: ViewModel() {
+//    private var compositeDisposable: CompositeDisposable = CompositeDisposable()
+//
+//    override fun onCleared() {
+//        compositeDisposable.dispose()
+//        super.onCleared()
+//    }
+//
+//    fun launch(job: () -> Disposable) {
+//        compositeDisposable.add(job())
+//    }
+}

+ 1 - 1
core/src/test/java/com/mrozon/core/ExampleUnitTest.kt → utils/src/test/java/com/mrozon/utils/ExampleUnitTest.kt

@@ -1,4 +1,4 @@
-package com.mrozon.core
+package com.mrozon.utils
 
 import org.junit.Test