diff --git a/README.md b/README.md index 7228d9e..e9b8432 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # Android--MVVMLib with LiveData Base classes for easier handling MVVM in android/Kotlin -Contains android.arch.lifecycle:extensions:1.1.1 +Contains android.arch.lifecycle:extensions:2.0.0 ``` maven { url 'https://jitpack.io' } - implementation 'com.github.Luteoos:Android--MVVMLib:3.0.1' + implementation 'com.github.Luteoos:Android--MVVMLib:3.1.0x' ``` ### Library implements simple 'bus' between VM and View able to transfer Int-based parameters, to enable it: @@ -18,9 +18,10 @@ override fun onVMMessage(msg: Int?){ ``` - after initialization viewModel invoke `connectToVMMessage()` -- `0` is default value assigned, do not use it as your custom parameter value +- `0` and `null` are values used to flush data, do not use it as your custom parameter value -### changes in 3.0.0 -- removed Realm implementation -- removed rxJava implementation -- BaseFragmentMVVM now inherits from BaseFragmentMVVMwithoutVM +### changes in 3.1.0x +-migrated to AndroidX +-changed package scope to more valid +-upgraded arch.lifecycle version +-simplified unused imports diff --git a/build.gradle b/build.gradle index 936b098..5445ee3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,24 +1,17 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.2.61' + ext.kotlin_version = '1.3.40' ext.kotlin_plugin_version = "1.2.61" - ext.realm_version = "5.0.0" repositories { google() jcenter() mavenCentral() - maven { - url 'https://maven.fabric.io/public' - } } dependencies { - classpath 'com.android.tools.build:gradle:3.2.1' + classpath 'com.android.tools.build:gradle:3.4.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath "io.realm:realm-gradle-plugin:$realm_version" - classpath 'com.google.gms:google-services:4.0.1' - classpath 'io.fabric.tools:gradle:1.26.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -45,5 +38,4 @@ ext { rxJava = '2.1.12' rxAndroid = '2.0.2' rxBinding = '2.0.0' - rxBus = '1.0.2' } diff --git a/gradle.properties b/gradle.properties index 743d692..8de5058 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,6 +6,8 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. +android.enableJetifier=true +android.useAndroidX=true org.gradle.jvmargs=-Xmx1536m # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9a4163a..64eab0c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Mon Jul 01 11:59:38 CEST 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/mvvmBaseLib/build.gradle b/mvvmBaseLib/build.gradle index 4319ab1..e2a22dd 100644 --- a/mvvmBaseLib/build.gradle +++ b/mvvmBaseLib/build.gradle @@ -10,10 +10,12 @@ android { targetSdkVersion 28 versionCode 2 versionName "2.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } ext { @@ -25,7 +27,11 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation 'com.android.support:appcompat-v7:28.0.0' - implementation "android.arch.lifecycle:extensions:1.1.1" + implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' + + testImplementation 'org.mockito:mockito-core:2.9.0' + testImplementation 'androidx.test:runner:1.2.0' + testImplementation 'androidx.test:rules:1.2.0' } diff --git a/mvvmBaseLib/proguard-rules.pro b/mvvmBaseLib/proguard-rules.pro index e69de29..ffb1560 100644 --- a/mvvmBaseLib/proguard-rules.pro +++ b/mvvmBaseLib/proguard-rules.pro @@ -0,0 +1 @@ +-keep class io.github.luteoos.mvvmbaselib.** {*;} \ No newline at end of file diff --git a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/Test.kt b/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/Test.kt deleted file mode 100644 index 762d94e..0000000 --- a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/Test.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.luteoos.kotlin.mvvmbaselib - -import android.annotation.SuppressLint - -@SuppressLint("ValidFragment") -private class Test() { - private val vm = @SuppressLint("StaticFieldLeak") - object : BaseViewModel(){} - private val a = object : BaseActivityMVVM(){ - - private var b = object : BaseFragmentMVVM() { - - override fun getLayoutID(): Int { - viewModel = getViewModel(activity!!) - return 0 - } - } - - override fun getLayoutID(): Int { - viewModel = getViewModel(this) - return 0 - } - } - private var b = object : BaseFragmentMVVM(){ - - override fun getLayoutID(): Int { - viewModel = getViewModel(this) - return 0 - } - } - private var c = object : BaseFragmentMVVMWithoutVM(){ - override fun getLayoutID(): Int = 0 - } - -} \ No newline at end of file diff --git a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseActivityMVVM.kt b/mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseActivityMVVM.kt similarity index 90% rename from mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseActivityMVVM.kt rename to mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseActivityMVVM.kt index 388626b..5889e2f 100644 --- a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseActivityMVVM.kt +++ b/mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseActivityMVVM.kt @@ -1,13 +1,13 @@ -package com.luteoos.kotlin.mvvmbaselib +package io.github.luteoos.mvvmbaselib -import android.arch.lifecycle.Observer -import android.arch.lifecycle.ViewModelProviders +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders import android.content.Context import android.content.pm.ActivityInfo import android.net.ConnectivityManager import android.os.Bundle -import android.support.v4.app.FragmentActivity -import android.support.v7.app.AppCompatActivity +import androidx.fragment.app.FragmentActivity +import androidx.appcompat.app.AppCompatActivity import android.view.inputmethod.InputMethodManager /** diff --git a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseFragmentMVVM.kt b/mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseFragmentMVVM.kt similarity index 85% rename from mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseFragmentMVVM.kt rename to mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseFragmentMVVM.kt index c6851e7..8d66871 100644 --- a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseFragmentMVVM.kt +++ b/mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseFragmentMVVM.kt @@ -1,10 +1,10 @@ -package com.luteoos.kotlin.mvvmbaselib +package io.github.luteoos.mvvmbaselib -import android.arch.lifecycle.Observer -import android.arch.lifecycle.ViewModelProviders +import androidx.lifecycle.Observer +import androidx.lifecycle.ViewModelProviders import android.os.Bundle -import android.support.v4.app.Fragment -import android.support.v4.app.FragmentActivity +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentActivity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseFragmentMVVMWithoutVM.kt b/mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseFragmentMVVMWithoutVM.kt similarity index 93% rename from mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseFragmentMVVMWithoutVM.kt rename to mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseFragmentMVVMWithoutVM.kt index 41f2fb0..ebc42e1 100644 --- a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseFragmentMVVMWithoutVM.kt +++ b/mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseFragmentMVVMWithoutVM.kt @@ -1,9 +1,9 @@ -package com.luteoos.kotlin.mvvmbaselib +package io.github.luteoos.mvvmbaselib import android.content.Context import android.net.ConnectivityManager import android.os.Bundle -import android.support.v4.app.Fragment +import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseViewModel.kt b/mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseViewModel.kt similarity index 78% rename from mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseViewModel.kt rename to mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseViewModel.kt index 7f6739d..24c45f6 100644 --- a/mvvmBaseLib/src/main/java/com/luteoos/kotlin/mvvmbaselib/BaseViewModel.kt +++ b/mvvmBaseLib/src/main/java/io/github/luteoos/mvvmbaselib/BaseViewModel.kt @@ -1,8 +1,8 @@ -package com.luteoos.kotlin.mvvmbaselib +package io.github.luteoos.mvvmbaselib -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.MutableLiveData -import android.arch.lifecycle.ViewModel +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel /** * Created by Luteoos on 13.09.2018 diff --git a/mvvmBaseLib/src/test/java/io/github/luteoos/mvvmbaselib/BaseViewModelUnitTest.kt b/mvvmBaseLib/src/test/java/io/github/luteoos/mvvmbaselib/BaseViewModelUnitTest.kt new file mode 100644 index 0000000..1fc5315 --- /dev/null +++ b/mvvmBaseLib/src/test/java/io/github/luteoos/mvvmbaselib/BaseViewModelUnitTest.kt @@ -0,0 +1,27 @@ +package io.github.luteoos.mvvmbaselib + +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class BaseViewModelUnitTest { + +// @Before +// fun init(){ +// testViewModel = o +// } +// +// @Test +// fun getVMMessage_BaseViewModdel_ReturnIntLiveData(){ +// val testViewModel: BaseViewModel = object : BaseViewModel(){} +// val testLiveData = MutableLiveData() as LiveData +// assertEquals(testViewModel.VMMessage(), testLiveData) +// } +}