diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index d5baf83..517efd6 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index 70469d2..837f4fa 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,16 +4,16 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { - compileSdkVersion 27 - buildToolsVersion '27.0.3' + compileSdkVersion 28 + buildToolsVersion '28.0.3' defaultConfig { minSdkVersion 16 - targetSdkVersion 27 - versionCode 1 - versionName "1.1" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + targetSdkVersion 28 + versionCode 2 + versionName "1.6.0" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { @@ -31,26 +31,37 @@ dependencies { testImplementation 'junit:junit:4.12' implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" - implementation "com.android.support:appcompat-v7:$support_version" - implementation "com.android.support:design:$support_version" - api "com.android.support:recyclerview-v7:$support_version" + implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'com.google.android.material:material:1.0.0' + implementation 'androidx.recyclerview:recyclerview:1.0.0' + api 'com.afollestad.material-dialogs:core:0.9.6.0' - api 'org.koin:koin-android:0.8.0' - api 'org.koin:koin-android-architecture:0.8.0' - api "android.arch.lifecycle:runtime:1.1.0" - api "android.arch.lifecycle:extensions:1.1.0" - api 'com.squareup.retrofit2:converter-gson:2.2.0' - api "io.reactivex.rxjava2:rxandroid:2.0.2" - api 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' - api 'com.squareup.okhttp3:logging-interceptor:3.8.0' - api 'com.squareup.okhttp3:okhttp:3.8.0' - api 'com.squareup.picasso:picasso:2.5.2' - - kapt "android.arch.lifecycle:compiler:1.1.0" - - androidTestImplementation 'com.android.support.test:runner:1.0.2' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + + //Koin + def koin_version = "1.0.1" + implementation "org.koin:koin-androidx-viewmodel:$koin_version" + + //Android Architecture Components + def lifecycle_version = "2.0.0" + implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version" + implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" + kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version" + + implementation 'com.squareup.retrofit2:converter-gson:2.2.0' + + implementation "io.reactivex.rxjava2:rxandroid:2.0.2" + + implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0' + + implementation 'com.squareup.okhttp3:logging-interceptor:3.8.0' + + implementation 'com.squareup.okhttp3:okhttp:3.10.0' + + implementation 'com.squareup.picasso:picasso:2.5.2' + + androidTestImplementation 'androidx.test:runner:1.1.0-beta01' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-beta01' } repositories { diff --git a/app/src/androidTest/java/com/sub6resources/utilities/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/sub6resources/utilities/ExampleInstrumentedTest.kt index 2dc6da4..b3ff36d 100644 --- a/app/src/androidTest/java/com/sub6resources/utilities/ExampleInstrumentedTest.kt +++ b/app/src/androidTest/java/com/sub6resources/utilities/ExampleInstrumentedTest.kt @@ -1,7 +1,7 @@ package com.sub6resources.utilities -import android.support.test.InstrumentationRegistry -import android.support.test.runner.AndroidJUnit4 +import androidx.test.InstrumentationRegistry +import androidx.test.runner.AndroidJUnit4 import org.junit.Test import org.junit.runner.RunWith diff --git a/app/src/main/java/com/sub6resources/utilities/BaseActivity.kt b/app/src/main/java/com/sub6resources/utilities/BaseActivity.kt index 97c5af2..781303f 100644 --- a/app/src/main/java/com/sub6resources/utilities/BaseActivity.kt +++ b/app/src/main/java/com/sub6resources/utilities/BaseActivity.kt @@ -1,25 +1,24 @@ package com.sub6resources.utilities import android.Manifest -import android.arch.lifecycle.ViewModel -import android.arch.lifecycle.ViewModelProvider -import android.arch.lifecycle.ViewModelProviders import android.content.Intent import android.content.pm.PackageManager import android.content.res.Configuration import android.os.Bundle -import android.support.design.widget.NavigationView -import android.support.v4.app.ActivityCompat -import android.support.v4.app.Fragment -import android.support.v4.app.NavUtils -import android.support.v4.content.ContextCompat -import android.support.v4.widget.DrawerLayout -import android.support.v7.app.ActionBarDrawerToggle -import android.support.v7.app.AppCompatActivity import android.view.Menu import android.view.MenuItem import android.view.View -import org.koin.android.architecture.ext.KoinFactory +import androidx.appcompat.app.ActionBarDrawerToggle +import androidx.appcompat.app.AppCompatActivity +import androidx.core.app.ActivityCompat +import androidx.core.app.NavUtils +import androidx.core.content.ContextCompat +import androidx.drawerlayout.widget.DrawerLayout +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import com.google.android.material.navigation.NavigationView +import org.koin.androidx.viewmodel.ViewModelFactory abstract class BaseActivity(private val activityLayout: Int) : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener { @@ -147,6 +146,10 @@ abstract class BaseActivity(private val activityLayout: Int) : AppCompatActivity */ open fun onNavItemSelected(item: MenuItem) {} + /** + * This function is a stupid simple replacement for onCreate, so that you don't have that ugly + * super.onCreate call and all the other onCreate logic that tends to get put into every app + */ open fun setUp() {} //Fragment Transactions @@ -180,11 +183,11 @@ abstract class BaseActivity(private val activityLayout: Int) : AppCompatActivity } fun popFragment() { - fragmentManager?.popBackStack() + supportFragmentManager?.popBackStack() } fun popAdd(fragment: BaseFragment) { - fragmentManager?.popBackStack() + supportFragmentManager?.popBackStack() addFragment(fragment) } @@ -299,9 +302,6 @@ abstract class BaseActivity(private val activityLayout: Int) : AppCompatActivity app.savedCallbacks[requestCode](resultCode, data) } - @Deprecated("Deprecated in favor of getViewModel()") - fun getViewModel(javaClass: Class): Lazy = lazy { ViewModelProviders.of(this).get(javaClass) } - - inline fun getViewModel(): Lazy = lazy { ViewModelProvider(this, KoinFactory).get(T::class.java) } - inline fun getGlobalViewModel(): Lazy = lazy { ViewModelProvider(app, KoinFactory).get(T::class.java) } + inline fun getViewModel(): Lazy = lazy { ViewModelProvider(this, ViewModelFactory).get(T::class.java) } + inline fun getGlobalViewModel(): Lazy = lazy { ViewModelProvider(app, ViewModelFactory).get(T::class.java) } } \ No newline at end of file diff --git a/app/src/main/java/com/sub6resources/utilities/BaseApplication.kt b/app/src/main/java/com/sub6resources/utilities/BaseApplication.kt index e1ccdf1..30919c4 100644 --- a/app/src/main/java/com/sub6resources/utilities/BaseApplication.kt +++ b/app/src/main/java/com/sub6resources/utilities/BaseApplication.kt @@ -1,8 +1,8 @@ package com.sub6resources.utilities import android.app.Application -import android.arch.lifecycle.ViewModelStore -import android.arch.lifecycle.ViewModelStoreOwner +import androidx.lifecycle.ViewModelStore +import androidx.lifecycle.ViewModelStoreOwner import android.content.Intent import org.koin.android.ext.android.startKoin import org.koin.dsl.module.Module diff --git a/app/src/main/java/com/sub6resources/utilities/BaseFragment.kt b/app/src/main/java/com/sub6resources/utilities/BaseFragment.kt index efe475e..4589341 100644 --- a/app/src/main/java/com/sub6resources/utilities/BaseFragment.kt +++ b/app/src/main/java/com/sub6resources/utilities/BaseFragment.kt @@ -1,14 +1,12 @@ package com.sub6resources.utilities -import android.arch.lifecycle.ViewModel -import android.arch.lifecycle.ViewModelProvider -import android.arch.lifecycle.ViewModelProviders -import android.arch.lifecycle.ViewModelStores import android.os.Bundle -import android.support.v4.app.Fragment import android.view.* -import org.koin.android.architecture.ext.KoinFactory -import org.koin.android.architecture.ext.getViewModel +import androidx.fragment.app.Fragment +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import org.koin.androidx.viewmodel.ViewModelFactory +import org.koin.androidx.viewmodel.ext.android.getViewModel abstract class BaseFragment : Fragment() { @@ -80,15 +78,9 @@ abstract class BaseFragment : Fragment() { fragmentManager?.popBackStack() } - @Deprecated("getViewModel is deprecated in favor of getViewModel()") - fun getViewModel(javaClass: Class): Lazy = lazy { ViewModelProviders.of(this).get(javaClass) } - inline fun getViewModel(): Lazy = lazy { (this as Fragment).getViewModel() } - @Deprecated("getSharedViewModel(T::class.java) is deprecated in favor of getSharedViewModel()") - fun getSharedViewModel(javaClass: Class): Lazy = lazy { ViewModelProviders.of(activity!!).get(javaClass) } - - inline fun Fragment.getSharedViewModel(): Lazy = lazy { ViewModelProvider(ViewModelStores.of(baseActivity), KoinFactory).get(T::class.java) } + inline fun Fragment.getSharedViewModel(): Lazy = lazy { ViewModelProvider(baseActivity, ViewModelFactory).get(T::class.java) } - inline fun getGlobalViewModel(): Lazy = lazy { ViewModelProvider(baseActivity.app, KoinFactory).get(T::class.java) } + inline fun getGlobalViewModel(): Lazy = lazy { ViewModelProvider(baseActivity.app, ViewModelFactory).get(T::class.java) } } \ No newline at end of file diff --git a/app/src/main/java/com/sub6resources/utilities/BaseLegalActivity.kt b/app/src/main/java/com/sub6resources/utilities/BaseLegalActivity.kt index 004d1b6..65a6a65 100644 --- a/app/src/main/java/com/sub6resources/utilities/BaseLegalActivity.kt +++ b/app/src/main/java/com/sub6resources/utilities/BaseLegalActivity.kt @@ -1,7 +1,7 @@ package com.sub6resources.utilities import android.graphics.Color -import android.support.v7.widget.Toolbar +import androidx.appcompat.widget.Toolbar import android.view.LayoutInflater import android.view.View import android.widget.TextView diff --git a/app/src/main/java/com/sub6resources/utilities/BaseRecyclerView.kt b/app/src/main/java/com/sub6resources/utilities/BaseRecyclerView.kt index 9045eff..267c38e 100644 --- a/app/src/main/java/com/sub6resources/utilities/BaseRecyclerView.kt +++ b/app/src/main/java/com/sub6resources/utilities/BaseRecyclerView.kt @@ -1,7 +1,7 @@ package com.sub6resources.utilities -import android.support.annotation.LayoutRes -import android.support.v7.widget.RecyclerView +import androidx.annotation.LayoutRes +import androidx.recyclerview.widget.RecyclerView import android.view.LayoutInflater import android.view.View import android.view.ViewGroup diff --git a/app/src/main/java/com/sub6resources/utilities/BaseService.kt b/app/src/main/java/com/sub6resources/utilities/BaseService.kt index f9b29da..a66abd1 100644 --- a/app/src/main/java/com/sub6resources/utilities/BaseService.kt +++ b/app/src/main/java/com/sub6resources/utilities/BaseService.kt @@ -5,9 +5,6 @@ import android.content.Intent import android.os.Binder import android.os.IBinder -/** - * Created by whitaker on 1/11/18. - */ abstract class BaseService: Service() { open val thisService: BaseService? = null diff --git a/app/src/main/java/com/sub6resources/utilities/BaseSettingsActivity.kt b/app/src/main/java/com/sub6resources/utilities/BaseSettingsActivity.kt index e546862..6887292 100644 --- a/app/src/main/java/com/sub6resources/utilities/BaseSettingsActivity.kt +++ b/app/src/main/java/com/sub6resources/utilities/BaseSettingsActivity.kt @@ -1,8 +1,8 @@ package com.sub6resources.utilities import android.graphics.Color -import android.support.v7.widget.SwitchCompat -import android.support.v7.widget.Toolbar +import androidx.appcompat.widget.SwitchCompat +import androidx.appcompat.widget.Toolbar import android.text.InputType import android.view.LayoutInflater import android.view.View diff --git a/app/src/main/java/com/sub6resources/utilities/Extensions.kt b/app/src/main/java/com/sub6resources/utilities/Extensions.kt index f74edc3..568dfc0 100644 --- a/app/src/main/java/com/sub6resources/utilities/Extensions.kt +++ b/app/src/main/java/com/sub6resources/utilities/Extensions.kt @@ -3,10 +3,10 @@ package com.sub6resources.utilities import android.app.Activity import android.app.Dialog import android.app.NotificationManager -import android.arch.lifecycle.LifecycleOwner -import android.arch.lifecycle.LiveData -import android.arch.lifecycle.Observer -import android.arch.lifecycle.Transformations +import androidx.lifecycle.LifecycleOwner +import androidx.lifecycle.LiveData +import androidx.lifecycle.Observer +import androidx.lifecycle.Transformations import android.content.* import android.content.ClipboardManager import android.content.res.ColorStateList @@ -17,15 +17,15 @@ import android.os.BatteryManager import android.os.Build import android.os.Bundle import android.os.Environment -import android.support.annotation.* -import android.support.design.widget.FloatingActionButton -import android.support.design.widget.Snackbar -import android.support.v4.app.ActivityOptionsCompat -import android.support.v4.app.Fragment -import android.support.v4.content.ContextCompat -import android.support.v4.graphics.drawable.DrawableCompat -import android.support.v7.content.res.AppCompatResources -import android.support.v7.widget.RecyclerView +import androidx.annotation.* +import com.google.android.material.floatingactionbutton.FloatingActionButton +import com.google.android.material.snackbar.Snackbar +import androidx.core.app.ActivityOptionsCompat +import androidx.fragment.app.Fragment +import androidx.core.content.ContextCompat +import androidx.core.graphics.drawable.DrawableCompat +import androidx.appcompat.content.res.AppCompatResources +import androidx.recyclerview.widget.RecyclerView import android.text.* import android.util.DisplayMetrics import android.util.Log @@ -61,31 +61,6 @@ fun Long.toShortTime(): String { return "${if (hr != 0L) "$hr:" else ""}${if (min < 10L) "0$min" else min}:${if (sec < 10L) "0$sec" else sec}" } -/** - * This function generates a save string from a list of variables. - * This assumes that no variable contains the character '_' - */ -@Deprecated("Terribly written, will be removed") -fun generateSaveString(vararg variables: Any): String { - var stringToReturn = "" - variables.forEach{ - if(it is Array<*>) { - stringToReturn += it.joinToString(",") + "_" - } else { - stringToReturn += it.toString() + "_" - } - } - return stringToReturn.substringBeforeLast("_") -} - -@Deprecated("Terribly written, will be removed") -fun loadFromSaveString(saveString: String, vararg setVariable: (value: String) -> Unit) { - saveString.split("_").forEachIndexed {i, value -> - setVariable[i](value) - } - -} - /** * Returns a random number between `min` and `max` */ @@ -311,9 +286,6 @@ fun String.removeFileExtension(): String = if(this.contains(".") && this.lastInd */ fun String.removeFileName(): String = if(this.contains("/") && this.lastIndexOf("/") > 0) { this.substring(0, this.lastIndexOf("/")+1)} else {this} -@Deprecated(""+"Just use + or plus(), much faster to type", ReplaceWith("this.plus(s)")) -fun String.append(s: String): String = this.plus(s) - /** * Calls a callback if any of the views is clicked */ @@ -328,12 +300,6 @@ fun Array.bulkClick(_onClick: (View) -> Unit) { forEach { it.apply { onClick { v -> _onClick.invoke(v) } } } } -/** - * Does the exact same thing as an elvis operator - */ -@Deprecated("Just use an elvis operator!", ReplaceWith("this ?: default")) -fun String?.nullSafe(default: String = ""): String = this ?: default - /** * Gets the string of an [EditText]. No more [Editable]! */ @@ -391,7 +357,7 @@ fun View.enable() { /** * Checks if an [EditText] is blank. */ -fun EditText.isBlank(): Boolean = getString().isNullOrBlank() +fun EditText.isBlank(): Boolean = getString().isBlank() /** * Adds min and max to a [SeekBar] and adds a pretty looking callback for it. @@ -531,6 +497,9 @@ inline fun LiveData.switchMap(crossinline switchMap: (data: T) -> return Transformations.switchMap(this) { switchMap(it) } } +/** + * A shortened version of Transformations.map + */ inline fun LiveData.map(crossinline map: (data: T) -> R): LiveData { return Transformations.map(this) { map(it) } } @@ -540,7 +509,7 @@ inline fun LiveData.map(crossinline map: (data: T) -> R): LiveData * or down respectively */ fun RecyclerView.bindFloatingActionButton(fab: FloatingActionButton) = this.addOnScrollListener(object : RecyclerView.OnScrollListener() { - override fun onScrolled(recyclerView: RecyclerView?, dx: Int, dy: Int) { + override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { super.onScrolled(recyclerView, dx, dy) if (dy > 0 && fab.isShown) { fab.hide() diff --git a/app/src/main/java/com/sub6resources/utilities/FragmentTransaction.kt b/app/src/main/java/com/sub6resources/utilities/FragmentTransaction.kt index fbf93ce..184ff08 100644 --- a/app/src/main/java/com/sub6resources/utilities/FragmentTransaction.kt +++ b/app/src/main/java/com/sub6resources/utilities/FragmentTransaction.kt @@ -1,8 +1,8 @@ package com.sub6resources.utilities -import android.support.annotation.AnimRes -import android.support.v4.app.Fragment -import android.support.v4.app.FragmentManager +import androidx.annotation.AnimRes +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager import kotlin.properties.Delegates class FragmentTransaction(private val fragment: Fragment, private val manager: FragmentManager) { @@ -13,14 +13,14 @@ class FragmentTransaction(private val fragment: Fragment, private val manager: F private var backstack_tag: String? = null private var tag: String? = null private var container: Int by Delegates.notNull() - private var extraLogic: (android.support.v4.app.FragmentTransaction) -> android.support.v4.app.FragmentTransaction = { it } + private var extraLogic: (androidx.fragment.app.FragmentTransaction) -> androidx.fragment.app.FragmentTransaction = { it } fun into(container: Int): FragmentTransaction { this.container = container return this } - fun extraLogic(extraLogic: (android.support.v4.app.FragmentTransaction) -> android.support.v4.app.FragmentTransaction): FragmentTransaction { + fun extraLogic(extraLogic: (androidx.fragment.app.FragmentTransaction) -> androidx.fragment.app.FragmentTransaction): FragmentTransaction { this.extraLogic = extraLogic return this } @@ -49,12 +49,12 @@ class FragmentTransaction(private val fragment: Fragment, private val manager: F return this } - fun android.support.v4.app.FragmentTransaction.extraLogic(): android.support.v4.app.FragmentTransaction = extraLogic(this) + fun androidx.fragment.app.FragmentTransaction.extraLogic(): androidx.fragment.app.FragmentTransaction = extraLogic(this) fun addFragment() { manager.beginTransaction() .extraLogic() - .hide(manager.findFragmentById(container)).apply { + .hide(manager.findFragmentById(container)!!).apply { if (tag != null) { add(container, fragment, tag) } else { add(container, fragment) } twoWayAnimation?.let { setCustomAnimations(it.enter, it.exit, it.popEnter, it.popExit) } oneWayAnimation?.let { setCustomAnimations(it.enter, it.exit) } @@ -80,7 +80,7 @@ class FragmentTransaction(private val fragment: Fragment, private val manager: F fun showFragment() { manager.beginTransaction() .extraLogic() - .show(manager.findFragmentById(container)).apply { + .show(manager.findFragmentById(container)!!).apply { if (tag != null) { add(container, fragment, tag) } else { add(container, fragment) } twoWayAnimation?.let { setCustomAnimations(it.enter, it.exit, it.popEnter, it.popExit) } oneWayAnimation?.let { setCustomAnimations(it.enter, it.exit) } @@ -93,7 +93,7 @@ class FragmentTransaction(private val fragment: Fragment, private val manager: F fun hideFragment() { manager.beginTransaction() .extraLogic() - .hide(manager.findFragmentById(container)).apply { + .hide(manager.findFragmentById(container)!!).apply { if (tag != null) { add(container, fragment, tag) } else { add(container, fragment) } twoWayAnimation?.let { setCustomAnimations(it.enter, it.exit, it.popEnter, it.popExit) } oneWayAnimation?.let { setCustomAnimations(it.enter, it.exit) } diff --git a/app/src/main/java/com/sub6resources/utilities/PermissionActivity.kt b/app/src/main/java/com/sub6resources/utilities/PermissionActivity.kt index f548535..6e79167 100644 --- a/app/src/main/java/com/sub6resources/utilities/PermissionActivity.kt +++ b/app/src/main/java/com/sub6resources/utilities/PermissionActivity.kt @@ -1,9 +1,9 @@ package com.sub6resources.utilities import android.content.pm.PackageManager -import android.support.v4.app.ActivityCompat -import android.support.v4.content.ContextCompat -import android.support.v7.app.AppCompatActivity +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat +import androidx.appcompat.app.AppCompatActivity /** * Created by whitaker on 1/17/18. diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index a5aeb32..4d13f22 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -6,7 +6,7 @@ android:layout_width="match_parent" android:orientation="vertical"> - - diff --git a/build.gradle b/build.gradle index be5b0e6..24ad3be 100644 --- a/build.gradle +++ b/build.gradle @@ -1,14 +1,14 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.2.50' - ext.support_version = '27.1.1' + ext.kotlin_version = '1.2.71' + ext.support_version = '28.0.0-beta01' repositories { google() jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.1.3' + classpath 'com.android.tools.build:gradle:3.3.0-alpha13' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle.properties b/gradle.properties index aac7c9b..9e6fce1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,6 +9,8 @@ # 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. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index da5cd2c..0262afb 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Mar 27 15:26:34 MDT 2018 +#Mon Oct 08 15:01:43 MDT 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip diff --git a/sample/build.gradle b/sample/build.gradle index 4ebf2d0..e87e8f3 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -1,20 +1,18 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' -android { - compileSdkVersion 27 - +android { + compileSdkVersion 28 defaultConfig { applicationId "com.sub6resources.utilities.sample" minSdkVersion 16 - targetSdkVersion 27 + targetSdkVersion 28 versionCode 1 versionName "1.0" - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -23,20 +21,19 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" - implementation 'com.android.support.constraint:constraint-layout:1.0.2' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'androidx.constraintlayout:constraintlayout:1.1.2' testImplementation 'junit:junit:4.12' - androidTestImplementation 'com.android.support.test:runner:1.0.1' - androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' + androidTestImplementation 'androidx.test:runner:1.1.0-alpha4' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4' implementation project(path: ':app') - implementation "com.android.support:design:$support_version" - implementation "com.android.support:appcompat-v7:$support_version" - implementation "com.android.support:recyclerview-v7:$support_version" - implementation "com.android.support:support-annotations:$support_version" + implementation 'com.google.android.material:material:1.0.0-beta01' + implementation 'androidx.appcompat:appcompat:1.0.0-beta01' + implementation 'androidx.recyclerview:recyclerview:1.0.0-beta01' + implementation 'androidx.annotation:annotation:1.0.0-beta01' } diff --git a/sample/src/androidTest/java/com/sub6resources/utilities/sample/ExampleInstrumentedTest.kt b/sample/src/androidTest/java/com/sub6resources/utilities/sample/ExampleInstrumentedTest.kt index cc058e4..1d695e3 100644 --- a/sample/src/androidTest/java/com/sub6resources/utilities/sample/ExampleInstrumentedTest.kt +++ b/sample/src/androidTest/java/com/sub6resources/utilities/sample/ExampleInstrumentedTest.kt @@ -1,7 +1,7 @@ package com.sub6resources.utilities.sample -import android.support.test.InstrumentationRegistry -import android.support.test.runner.AndroidJUnit4 +import androidx.test.InstrumentationRegistry +import androidx.test.runner.AndroidJUnit4 import org.junit.Test import org.junit.runner.RunWith diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index ab6372b..090787b 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -3,7 +3,6 @@ package="com.sub6resources.utilities.sample"> ().apply { value = Token("T35+T0k3n") } -} \ No newline at end of file diff --git a/sample/src/main/java/com/sub6resources/utilities/sample/MainActivity.kt b/sample/src/main/java/com/sub6resources/utilities/sample/MainActivity.kt index 82d9dff..f109ee6 100644 --- a/sample/src/main/java/com/sub6resources/utilities/sample/MainActivity.kt +++ b/sample/src/main/java/com/sub6resources/utilities/sample/MainActivity.kt @@ -1,14 +1,7 @@ package com.sub6resources.utilities.sample import com.sub6resources.utilities.BaseActivity -import com.sub6resources.utilities.sample.fragments.LoginFragment -import com.sub6resources.utilities.sample.viewmodels.LoginViewModel class MainActivity : BaseActivity(R.layout.activity_fragment_container) { - - //Has no purpose, just a test. - val viewModel by getGlobalViewModel() - override val fragmentTargets = R.id.fragmentTarget - override val landingFragment = LoginFragment() } \ No newline at end of file diff --git a/sample/src/main/java/com/sub6resources/utilities/sample/api/LoginApi.kt b/sample/src/main/java/com/sub6resources/utilities/sample/api/LoginApi.kt deleted file mode 100644 index d4c16a7..0000000 --- a/sample/src/main/java/com/sub6resources/utilities/sample/api/LoginApi.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.sub6resources.utilities.sample.api - -import io.reactivex.Single -import retrofit2.http.Body -import retrofit2.http.POST - -interface LoginApi { - @POST("api/login") - fun login(@Body login: Login): Single -} - -data class Login(val username: String, val password: String) -data class Token(val token: String) \ No newline at end of file diff --git a/sample/src/main/java/com/sub6resources/utilities/sample/fragments/LoginFragment.kt b/sample/src/main/java/com/sub6resources/utilities/sample/fragments/LoginFragment.kt deleted file mode 100644 index 937b7cb..0000000 --- a/sample/src/main/java/com/sub6resources/utilities/sample/fragments/LoginFragment.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.sub6resources.utilities.sample.fragments - -import android.arch.lifecycle.Observer -import android.util.Log -import com.sub6resources.utilities.BaseFragment -import com.sub6resources.utilities.getString -import com.sub6resources.utilities.onClick -import com.sub6resources.utilities.sample.LegalActivity -import com.sub6resources.utilities.sample.PreferencesActivity -import com.sub6resources.utilities.sample.R -import com.sub6resources.utilities.sample.api.Login -import com.sub6resources.utilities.sample.viewmodels.LoginViewModel -import com.sub6resources.utilities.startActivity -import kotlinx.android.synthetic.main.fragment_login.* - -class LoginFragment: BaseFragment() { - override val fragLayout = R.layout.fragment_login - val loginViewModel by getGlobalViewModel() - - override fun setUp() { - - btn_submit.onClick { - loginViewModel.login(Login(et_username.getString(), et_password.getString())) - baseActivity.startActivity() - } - - legal.onClick { - baseActivity.startActivity() - } - - loginViewModel.token.observe(this, Observer { token -> - Log.d("TOKEN", "Token!!! ${token?.token}") -// baseActivity.startActivity() -// val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE); -// baseActivity.startActivityForResult(takePictureIntent) { resultCode, data -> - //Perform operations on the result code and the data here -// } - }) - } -} \ No newline at end of file diff --git a/sample/src/main/java/com/sub6resources/utilities/sample/viewmodels/LoginViewModel.kt b/sample/src/main/java/com/sub6resources/utilities/sample/viewmodels/LoginViewModel.kt deleted file mode 100644 index c98a3d0..0000000 --- a/sample/src/main/java/com/sub6resources/utilities/sample/viewmodels/LoginViewModel.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.sub6resources.utilities.sample.viewmodels - -import android.arch.lifecycle.MutableLiveData -import android.arch.lifecycle.ViewModel -import com.sub6resources.utilities.sample.LoginRepository -import com.sub6resources.utilities.sample.api.Login -import com.sub6resources.utilities.sample.api.Token -import com.sub6resources.utilities.switchMap - -class LoginViewModel(private val loginRepository: LoginRepository): ViewModel() { - val loginCredentials = MutableLiveData() - val token = loginCredentials.switchMap { loginRepository.logIn(it) } - - fun login(login: Login) { - loginCredentials.value = login - } -} \ No newline at end of file diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index 8050fec..3f0a6bf 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ - - - - - + - + diff --git a/sample/src/main/res/layout/fragment_login.xml b/sample/src/main/res/layout/fragment_login.xml index bc65864..3fdb7e2 100644 --- a/sample/src/main/res/layout/fragment_login.xml +++ b/sample/src/main/res/layout/fragment_login.xml @@ -1,5 +1,5 @@ - - \ No newline at end of file + \ No newline at end of file