diff --git a/android/build.gradle b/android/build.gradle index 4768b543..2b95d85a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,5 +8,4 @@ apply plugin: 'com.github.dcendents.android-maven' group='com.github.shkschneider' apply from: 'build_android.gradle' - apply from: 'build_dependencies.gradle' diff --git a/android/build_dependencies.gradle b/android/build_dependencies.gradle index e8f1bf4b..8107353e 100644 --- a/android/build_dependencies.gradle +++ b/android/build_dependencies.gradle @@ -1,5 +1,5 @@ dependencies { - implementation project(':kotlin') + api project(':kotlin') version = '1.2.0' // https://developer.android.com/jetpack/androidx/releases/appcompat implementation "androidx.appcompat:appcompat:${version}" diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/app/SkeletonActivity.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/app/SkeletonActivity.kt index 01c6d9ab..bc7f4146 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/app/SkeletonActivity.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/app/SkeletonActivity.kt @@ -25,7 +25,7 @@ import me.shkschneider.skeleton.android.content.SkeletonReceiver import me.shkschneider.skeleton.android.content.IntentHelper import me.shkschneider.skeleton.android.helper.KeyboardHelper import me.shkschneider.skeleton.android.os.ThreadHelper -import me.shkschneider.skeleton.android.widget.OverlayLoader +import me.shkschneider.skeleton.android.view.OverlayLoader import me.shkschneider.skeleton.kotlin.log.Logger /** diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/app/SkeletonFragment.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/app/SkeletonFragment.kt index e920cd02..5e464f7c 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/app/SkeletonFragment.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/app/SkeletonFragment.kt @@ -7,7 +7,7 @@ import android.view.ViewGroup import androidx.annotation.LayoutRes import androidx.fragment.app.Fragment import me.shkschneider.skeleton.android.R -import me.shkschneider.skeleton.android.widget.Inflater +import me.shkschneider.skeleton.android.view.Inflater import kotlin.reflect.KClass /** diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/network/WebService.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/network/WebService.kt index 9ca8c269..d7fd145e 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/network/WebService.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/network/WebService.kt @@ -65,6 +65,9 @@ open class WebService(val gson: Gson = Gson()) { }) } + inline fun deserialize(content: String): T? = + Deserializer(gson, T::class).deserialize(content) + class Deserializer(private val gson: Gson, private val klass: KClass) : ResponseDeserializable { override fun deserialize(content: String): T? = diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/security/fingerprint/FingerprintDialogFragment.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/security/fingerprint/FingerprintDialogFragment.kt index 17e58d27..ff54c361 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/security/fingerprint/FingerprintDialogFragment.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/security/fingerprint/FingerprintDialogFragment.kt @@ -13,7 +13,7 @@ import me.shkschneider.skeleton.android.R import me.shkschneider.skeleton.android.app.cancelable import me.shkschneider.skeleton.android.app.dimBehind import me.shkschneider.skeleton.android.provider.SystemServices -import me.shkschneider.skeleton.android.widget.Notify +import me.shkschneider.skeleton.android.view.Notify import me.shkschneider.skeleton.android.widget.tint import me.shkschneider.skeleton.kotlin.jvm.TAG import me.shkschneider.skeleton.kotlin.jvm.exhaustive diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/AutoCompletion.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/AutoCompletion.kt similarity index 91% rename from android/src/main/kotlin/me/shkschneider/skeleton/android/widget/AutoCompletion.kt rename to android/src/main/kotlin/me/shkschneider/skeleton/android/view/AutoCompletion.kt index 48e24e25..4f2e4988 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/AutoCompletion.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/AutoCompletion.kt @@ -1,4 +1,4 @@ -package me.shkschneider.skeleton.android.widget +package me.shkschneider.skeleton.android.view import android.widget.ArrayAdapter import androidx.appcompat.widget.AppCompatAutoCompleteTextView diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/BottomSheet.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/BottomSheet.kt similarity index 98% rename from android/src/main/kotlin/me/shkschneider/skeleton/android/widget/BottomSheet.kt rename to android/src/main/kotlin/me/shkschneider/skeleton/android/view/BottomSheet.kt index b6e97c56..ad88625c 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/BottomSheet.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/BottomSheet.kt @@ -1,4 +1,4 @@ -package me.shkschneider.skeleton.android.widget +package me.shkschneider.skeleton.android.view import android.app.Activity import android.content.DialogInterface @@ -14,6 +14,7 @@ import androidx.annotation.UiThread import com.google.android.material.bottomsheet.BottomSheetDialog import me.shkschneider.skeleton.android.R import me.shkschneider.skeleton.android.util.Metrics +import me.shkschneider.skeleton.android.widget.expand // // app:layout_behavior="android.support.design.widget.BottomSheetBehavior" diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/FloatingActionButtonCompat.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/FloatingActionButtonCompat.kt similarity index 99% rename from android/src/main/kotlin/me/shkschneider/skeleton/android/widget/FloatingActionButtonCompat.kt rename to android/src/main/kotlin/me/shkschneider/skeleton/android/view/FloatingActionButtonCompat.kt index 158d6654..bade9c12 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/FloatingActionButtonCompat.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/FloatingActionButtonCompat.kt @@ -1,4 +1,4 @@ -package me.shkschneider.skeleton.android.widget +package me.shkschneider.skeleton.android.view import android.content.res.ColorStateList import android.view.View diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Inflater.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/Inflater.kt similarity index 93% rename from android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Inflater.kt rename to android/src/main/kotlin/me/shkschneider/skeleton/android/view/Inflater.kt index 5463cf40..9cdcb31a 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Inflater.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/Inflater.kt @@ -1,4 +1,4 @@ -package me.shkschneider.skeleton.android.widget +package me.shkschneider.skeleton.android.view import android.view.LayoutInflater import android.view.View diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Notify.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/Notify.kt similarity index 98% rename from android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Notify.kt rename to android/src/main/kotlin/me/shkschneider/skeleton/android/view/Notify.kt index d3ed6bf8..4062bffc 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Notify.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/Notify.kt @@ -1,4 +1,4 @@ -package me.shkschneider.skeleton.android.widget +package me.shkschneider.skeleton.android.view import android.annotation.SuppressLint import android.view.View diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/OverlayLoader.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/OverlayLoader.kt similarity index 97% rename from android/src/main/kotlin/me/shkschneider/skeleton/android/widget/OverlayLoader.kt rename to android/src/main/kotlin/me/shkschneider/skeleton/android/view/OverlayLoader.kt index 7392b68e..c13aa476 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/OverlayLoader.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/OverlayLoader.kt @@ -1,4 +1,4 @@ -package me.shkschneider.skeleton.android.widget +package me.shkschneider.skeleton.android.view import android.app.Dialog import android.os.Bundle diff --git a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Tooltips.kt b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/Tooltips.kt similarity index 83% rename from android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Tooltips.kt rename to android/src/main/kotlin/me/shkschneider/skeleton/android/view/Tooltips.kt index 8bf972be..84e8a527 100644 --- a/android/src/main/kotlin/me/shkschneider/skeleton/android/widget/Tooltips.kt +++ b/android/src/main/kotlin/me/shkschneider/skeleton/android/view/Tooltips.kt @@ -1,4 +1,4 @@ -package me.shkschneider.skeleton.android.widget +package me.shkschneider.skeleton.android.view import android.view.View import androidx.annotation.UiThread diff --git a/build.gradle b/build.gradle index d87a74dc..5125c871 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { java: JavaVersion.VERSION_1_8, kotlin: '1.4.0', // https://github.com/JetBrains/kotlin koin: '2.1.6', // https://github.com/InsertKoinIO/koin - skeleton: '10.1.6', + skeleton: '10.1.7', gradle: [ android: '4.0.1', // jitpack: '2.1' diff --git a/demo/build.gradle b/demo/build.gradle index 376ac17e..06e8bd78 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -6,83 +6,5 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' kapt.useBuildCache = true -android { - defaultConfig { - applicationId 'me.shkschneider.skeleton.demo' - } - signingConfigs { - debug { - storeFile file('../debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - release { - // keytool -genkey -v -keystore release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias androidkey - storeFile file('../release.keystore') - storePassword 'android' - keyAlias 'androidkey' - keyPassword 'android' - } - } - buildTypes { - debug { - // applicationIdSuffix '.debug' - // versionNameSuffix '-DEBUG' - signingConfig signingConfigs.debug - } - release { - signingConfig signingConfigs.release - } - } - bundle { - /** - * If the user changes their device configuration at any time (such as adding another choice of language), - * then the play store will recognize this and attempt to download the new configuration splits - * for all applications that use split APKs on their device. - */ - language.enableSplit = true - density.enableSplit = true - abi.enableSplit = true - } - packagingOptions { - exclude 'META-INF/DEPENDENCIES.txt' - exclude 'META-INF/DEPENDENCIES' - exclude 'META-INF/dependencies.txt' - exclude 'META-INF/LICENSE.txt' - exclude 'META-INF/LICENSE' - exclude 'META-INF/license.txt' - exclude 'META-INF/NOTICE.txt' - exclude 'META-INF/NOTICE' - exclude 'META-INF/notice.txt' - } - externalNativeBuild { - ndkBuild { - path 'src/main/jni/Android.mk' - } - } -} - -dependencies { - // implementation "com.github.shkschneider.android_Skeleton:core:${version}" - implementation project(':core') - - implementation project(':arch') - - implementation project(':fuel') - - implementation project(':room') - version = '2.0.0' - kapt "androidx.room:room-compiler:${version}" - - implementation project(':koin') - - version = '2.71828' // https://github.com/square/picasso - implementation "com.squareup.picasso:picasso:${version}" - - version = '0.31.2' // https://github.com/facebook/flipper - debugImplementation "com.facebook.flipper:flipper:${version}" - debugImplementation "com.facebook.flipper:flipper-network-plugin:${version}" - debugImplementation "com.facebook.soloader:soloader:0.8.2" - releaseImplementation "com.facebook.flipper:flipper-noop:${version}" -} +apply from: 'build_android.gradle' +apply from: 'build_dependencies.gradle' diff --git a/demo/build_android.gradle b/demo/build_android.gradle new file mode 100644 index 00000000..24817554 --- /dev/null +++ b/demo/build_android.gradle @@ -0,0 +1,74 @@ +android { + compileSdkVersion versions.android.sdk.target + buildToolsVersion versions.android.buildTools + + defaultConfig { + minSdkVersion versions.android.sdk.min + targetSdkVersion versions.android.sdk.target + versionCode versionCode() + versionName versions.skeleton + vectorDrawables.useSupportLibrary = true + } + + signingConfigs { + debug { + storeFile file('../debug.keystore') + storePassword 'android' + keyAlias 'androiddebugkey' + keyPassword 'android' + } + release { + // keytool -genkey -v -keystore release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias androidkey + storeFile file('../release.keystore') + storePassword 'android' + keyAlias 'androidkey' + keyPassword 'android' + } + } + sourceSets { + debug.java.srcDirs += 'src/debug/kotlin' + main.java.srcDirs += 'src/main/kotlin' + release.java.srcDirs += 'src/release/kotlin' + test.java.srcDirs += 'src/test/kotlin' + androidTest.java.srcDirs += 'src/androidTest/kotlin' + } + buildTypes { + debug { + // applicationIdSuffix '.debug' + // versionNameSuffix '-DEBUG' + signingConfig signingConfigs.debug + } + release { + signingConfig signingConfigs.release + } + } + compileOptions { + sourceCompatibility versions.java + targetCompatibility versions.java + } + kotlinOptions { + jvmTarget = versions.java.toString() + } + bundle { + /** + * If the user changes their device configuration at any time (such as adding another choice of language), + * then the play store will recognize this and attempt to download the new configuration splits + * for all applications that use split APKs on their device. + */ + language.enableSplit = true + density.enableSplit = true + abi.enableSplit = true + } + packagingOptions { + exclude 'META-INF/DEPENDENCIES.txt' + exclude 'META-INF/DEPENDENCIES' + exclude 'META-INF/dependencies.txt' + exclude 'META-INF/LICENSE.txt' + exclude 'META-INF/LICENSE' + exclude 'META-INF/license.txt' + exclude 'META-INF/NOTICE.txt' + exclude 'META-INF/NOTICE' + exclude 'META-INF/notice.txt' + } + +} diff --git a/demo/build_dependencies.gradle b/demo/build_dependencies.gradle new file mode 100644 index 00000000..8c23c8d3 --- /dev/null +++ b/demo/build_dependencies.gradle @@ -0,0 +1,49 @@ +dependencies { + // implementation "com.github.shkschneider.android_Skeleton:android:${version}" + implementation project(':android') + + version = '1.2.0' // https://developer.android.com/jetpack/androidx/releases/appcompat + implementation "androidx.appcompat:appcompat:${version}" + version = '1.3.1' // https://developer.android.com/jetpack/androidx/releases/core + implementation "androidx.core:core:${version}" + implementation "androidx.core:core-ktx:${version}" + version = '2.2.0' // https://developer.android.com/jetpack/androidx/releases/lifecycle + implementation "androidx.lifecycle:lifecycle-viewmodel:${version}" + implementation "androidx.lifecycle:lifecycle-livedata:${version}" + implementation "androidx.lifecycle:lifecycle-extensions:${version}" +// version = '1.0.0' // https://developer.android.com/jetpack/androidx/releases/palette +// implementation "androidx.palette:palette:${version}" + version = '1.1.1' // https://developer.android.com/jetpack/androidx/releases/preference + implementation "androidx.preference:preference:${version}" +// version = '1.1.0' // https://developer.android.com/jetpack/androidx/releases/recyclerview +// implementation "androidx.recyclerview:recyclerview:${version}" +// version = '1.1.0' // https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout +// implementation "androidx.swiperefreshlayout:swiperefreshlayout:${version}" + + version = '1.2.0' // https://maven.google.com/web/index.html#com.google.android.material:material + implementation "com.google.android.material:material:${version}" + version = '2.8.6' // https://github.com/google/gson + implementation "com.google.code.gson:gson:${version}" + + version = '2.1.6' // https://github.com/InsertKoinIO/koin + implementation "org.koin:koin-core:${version}" + implementation "org.koin:koin-android:${version}" + implementation "org.koin:koin-androidx-scope:${version}" + implementation "org.koin:koin-androidx-viewmodel:${version}" + + version = '2.2.3' // https://github.com/kittinunf/Fuel + implementation "com.github.kittinunf.fuel:fuel:${version}" + implementation "com.github.kittinunf.fuel:fuel-android:${version}" + implementation "com.github.kittinunf.fuel:fuel-gson:${version}" + implementation "com.github.kittinunf.fuel:fuel-livedata:${version}" + implementation "com.github.kittinunf.fuel:fuel-kotlinx-serialization:${version}" + + version = '2.2.5' // https://developer.android.com/jetpack/androidx/releases/room + implementation "androidx.room:room-runtime:${version}" + kapt "androidx.room:room-compiler:${version}" + + version = '2.71828' // https://github.com/square/picasso + implementation "com.squareup.picasso:picasso:${version}" + + // TODO https://github.com/facebook/flipper +} diff --git a/demo/src/debug/AndroidManifest.xml b/demo/src/debug/AndroidManifest.xml index 3644647d..14de52bc 100644 --- a/demo/src/debug/AndroidManifest.xml +++ b/demo/src/debug/AndroidManifest.xml @@ -1,13 +1,12 @@ - + + + diff --git a/demo/src/debug/kotlin/me/shkschneider/skeleton/demo/DebugApplication.kt b/demo/src/debug/kotlin/me/shkschneider/skeleton/demo/DebugApplication.kt index 1a2934a6..a770cd50 100644 --- a/demo/src/debug/kotlin/me/shkschneider/skeleton/demo/DebugApplication.kt +++ b/demo/src/debug/kotlin/me/shkschneider/skeleton/demo/DebugApplication.kt @@ -1,39 +1,21 @@ package me.shkschneider.skeleton.demo -import com.facebook.flipper.android.AndroidFlipperClient -import com.facebook.flipper.android.utils.FlipperUtils -import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin -import com.facebook.flipper.plugins.inspector.DescriptorMapping -import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin -import com.facebook.flipper.plugins.network.NetworkFlipperPlugin -import com.facebook.soloader.SoLoader -import me.shkschneider.skeleton.demo.data.DataManager -import me.shkschneider.skeleton.kotlinx.Coroutines - class DebugApplication : MainApplication() { override fun onCreate() { super.onCreate() - flipper() - - Coroutines.io { - DataManager.dummy() - } - } - - private fun flipper() { - SoLoader.init(this, false); - if (FlipperUtils.shouldEnableFlipper(this)) { - AndroidFlipperClient.getInstance(this).also { - // Layout Inscpector - it.addPlugin(InspectorFlipperPlugin(this, DescriptorMapping.withDefaults())) - // Crash Reporter - it.addPlugin(CrashReporterPlugin.getInstance()) - // Network (OkHttp: addNetworkInterceptor(FlipperOkhttpInterceptor(NetworkFlipperPlugin()))) - it.addPlugin(NetworkFlipperPlugin()); - }.start() - } +// SoLoader.init(this, false); +// if (FlipperUtils.shouldEnableFlipper(this)) { +// AndroidFlipperClient.getInstance(this).also { +// // Layout Inscpector +// it.addPlugin(InspectorFlipperPlugin(this, DescriptorMapping.withDefaults())) +// // Crash Reporter +// it.addPlugin(CrashReporterPlugin.getInstance()) +// // Network (OkHttp: addNetworkInterceptor(FlipperOkhttpInterceptor(NetworkFlipperPlugin()))) +// it.addPlugin(NetworkFlipperPlugin()); +// }.start() +// } } } diff --git a/demo/src/main/AndroidManifest.xml b/demo/src/main/AndroidManifest.xml index 6fa536b8..1fc9bef4 100644 --- a/demo/src/main/AndroidManifest.xml +++ b/demo/src/main/AndroidManifest.xml @@ -53,17 +53,6 @@ android:name=".about.AboutActivity" android:label="@string/skeleton" /> - - - - - - - - diff --git a/demo/src/main/jni/Android.mk b/demo/src/main/jni/Android.mk deleted file mode 100644 index 0c643459..00000000 --- a/demo/src/main/jni/Android.mk +++ /dev/null @@ -1,8 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_MODULE := secrets -LOCAL_SRC_FILES := secrets.c - -include $(BUILD_SHARED_LIBRARY) diff --git a/demo/src/main/jni/Application.mk b/demo/src/main/jni/Application.mk deleted file mode 100644 index a252a72d..00000000 --- a/demo/src/main/jni/Application.mk +++ /dev/null @@ -1 +0,0 @@ -APP_ABI := all diff --git a/demo/src/main/jni/secrets.c b/demo/src/main/jni/secrets.c deleted file mode 100644 index cb4d3789..00000000 --- a/demo/src/main/jni/secrets.c +++ /dev/null @@ -1,8 +0,0 @@ -#include - -// Use this to securely store keys - -JNIEXPORT jstring JNICALL -Java_me_shkschneider_skeleton_demo_main_MainActivity_secretKey(JNIEnv *env, jobject instance) { - return (*env)-> NewStringUTF(env, "Skeleton"); -} diff --git a/demo/src/main/jniLibs/PLACEHOLDER b/demo/src/main/jniLibs/PLACEHOLDER deleted file mode 100644 index e69de29b..00000000 diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/Koin.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/Koin.kt new file mode 100644 index 00000000..009311b3 --- /dev/null +++ b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/Koin.kt @@ -0,0 +1,12 @@ +package me.shkschneider.skeleton.demo + +import org.koin.dsl.module +import java.util.UUID + +object Koin { + + val mainComponent = module { + factory { UUID.randomUUID() } + } + +} diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/MainApplication.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/MainApplication.kt index 9a1ccc9d..f1aae606 100644 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/MainApplication.kt +++ b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/MainApplication.kt @@ -1,16 +1,16 @@ package me.shkschneider.skeleton.demo import android.os.Build -import me.shkschneider.skeleton.SkeletonApplication +import me.shkschneider.skeleton.android.app.SkeletonApplication +import me.shkschneider.skeleton.android.content.IntentHelper +import me.shkschneider.skeleton.android.content.ShortcutHelper +import me.shkschneider.skeleton.android.content.intent +import me.shkschneider.skeleton.android.di.koin +import me.shkschneider.skeleton.android.provider.ContextProvider import me.shkschneider.skeleton.demo.about.AboutActivity -import me.shkschneider.skeleton.demo.data.DataManager -import me.shkschneider.skeleton.di.koin -import me.shkschneider.skeleton.extensions.Intent -import me.shkschneider.skeleton.helper.ContextHelper -import me.shkschneider.skeleton.helper.IntentHelper -import me.shkschneider.skeleton.helper.ShortcutHelper -import me.shkschneider.skeleton.kotlinx.Coroutines +import me.shkschneider.skeleton.kotlin.work.Coroutines import org.koin.dsl.module +import java.util.Locale import java.util.UUID open class MainApplication : SkeletonApplication() { @@ -18,23 +18,18 @@ open class MainApplication : SkeletonApplication() { override fun onCreate() { super.onCreate() - koin(module { - factory { UUID.randomUUID() } - }) + koin(Koin.mainComponent) shortcut("About") - - Coroutines.io { - DataManager.dummy() - } } - internal fun shortcut(shortcut: String) { + @Suppress("SameParameterValue") + private fun shortcut(shortcut: String) { if (Build.VERSION.SDK_INT >= 25) { - ShortcutHelper.setDynamicShortcuts(ShortcutHelper.Shortcut(shortcut.toLowerCase(), + ShortcutHelper.setDynamicShortcuts(ShortcutHelper.Shortcut(shortcut.toLowerCase(Locale.getDefault()), R.mipmap.ic_launcher, - shortcut.capitalize(), - Intent(ContextHelper.applicationContext(), AboutActivity::class) + shortcut.capitalize(Locale.getDefault()), + intent(ContextProvider.applicationContext(), AboutActivity::class) .setFlags(IntentHelper.FLAGS_CLEAR))) } } diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/MySecretCodeReceiver.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/MySecretCodeReceiver.kt deleted file mode 100644 index 508f655b..00000000 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/MySecretCodeReceiver.kt +++ /dev/null @@ -1,36 +0,0 @@ -package me.shkschneider.skeleton.demo - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import me.shkschneider.skeleton.demo.main.MainActivity -import me.shkschneider.skeleton.extensions.Intent - -import me.shkschneider.skeleton.helper.IntentHelper -import me.shkschneider.skeleton.helperx.log.Logger - -private const val SECRET_CODE = "SECRET_CODE" -private const val ACTION = "android.provider.Telephony.SECRET_CODE" - -// -class MySecretCodeReceiver : BroadcastReceiver() { - - override fun onReceive(context: Context, intent: Intent) { - intent.dataString?.let { dataString -> - var secretCode = dataString - intent.data?.scheme?.let { scheme -> - secretCode = dataString.substring(scheme.length) - if (secretCode.startsWith("://")) { - secretCode = secretCode.substring("://".length, secretCode.length) - } - } - Logger.debug("SecretCode: $secretCode") - if (intent.action == ACTION) { - context.startActivity(Intent(context, MainActivity::class) - .setFlags(IntentHelper.FLAGS_HOME) - .putExtra(SECRET_CODE, secretCode)) - } - } - } - -} diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/about/AboutActivity.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/about/AboutActivity.kt index 0225563b..13c433c9 100644 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/about/AboutActivity.kt +++ b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/about/AboutActivity.kt @@ -1,7 +1,7 @@ package me.shkschneider.skeleton.demo.about import android.os.Bundle -import me.shkschneider.skeleton.SkeletonActivity +import me.shkschneider.skeleton.android.app.SkeletonActivity import me.shkschneider.skeleton.demo.R class AboutActivity : SkeletonActivity() { diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/about/AboutFragment.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/about/AboutFragment.kt index 4b839796..e8850b5e 100644 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/about/AboutFragment.kt +++ b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/about/AboutFragment.kt @@ -4,11 +4,14 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat +import me.shkschneider.skeleton.android.BuildConfig +import me.shkschneider.skeleton.android.app.ApplicationHelper +import me.shkschneider.skeleton.android.os.AndroidHelper +import me.shkschneider.skeleton.android.util.Metrics import me.shkschneider.skeleton.demo.R -import me.shkschneider.skeleton.helper.AndroidHelper -import me.shkschneider.skeleton.helper.ApplicationHelper -import me.shkschneider.skeleton.helperx.Metrics +import java.util.Locale class AboutFragment : PreferenceFragmentCompat() { @@ -27,32 +30,32 @@ class AboutFragment : PreferenceFragmentCompat() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) // Application - findPreference("app_package").run { + findPreference("app_package")?.run { title = "PackageName" summary = ApplicationHelper.packageName } - findPreference("app_versionName").run { + findPreference("app_versionName")?.run { title = "VersionName" summary = ApplicationHelper.versionName() } - findPreference("app_versionCode").run { + findPreference("app_versionCode")?.run { title = "VersionCode" summary = ApplicationHelper.versionCode().toString() } - findPreference("app_revision").run { + findPreference("app_revision")?.run { title = "Revision" - summary = "?" // FIXME BuildConfig.REVISION + summary = BuildConfig.REVISION } - findPreference("app_variant").run { + findPreference("app_variant")?.run { title = "Variant" - summary = (if (ApplicationHelper.debuggable) "debug" else "release").toUpperCase() + summary = (if (ApplicationHelper.debuggable) "debug" else "release").toUpperCase(Locale.getDefault()) } // OS - findPreference("os_version").run { + findPreference("os_version")?.run { title = "Version" summary = AndroidHelper.codename() } - findPreference("os_api").run { + findPreference("os_api")?.run { title = "API" summary = AndroidHelper.api().toString() } diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/DataManager.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/DataManager.kt deleted file mode 100644 index 2c498cd8..00000000 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/DataManager.kt +++ /dev/null @@ -1,20 +0,0 @@ -package me.shkschneider.skeleton.demo.data - -import androidx.annotation.WorkerThread - -object DataManager { - - @WorkerThread - fun dummy() { - with(MyDatabase.get()) { - clearAllTables() - myModels().insert(MyModel(userName = "user.name1")) - myModels().insert(MyModel(userName = "user.name2")) - } - } - - @WorkerThread - fun getModels(): List = - MyDatabase.get().myModels().getAll() - -} diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/MyDatabase.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/MyDatabase.kt deleted file mode 100644 index 0f195f5b..00000000 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/MyDatabase.kt +++ /dev/null @@ -1,29 +0,0 @@ -package me.shkschneider.skeleton.demo.data - -import androidx.room.Database -import androidx.room.RoomDatabase -import androidx.room.TypeConverters -import me.shkschneider.skeleton.datax.SkeletonDatabaseBuilders -import me.shkschneider.skeleton.datax.SkeletonTypeConverters - -@Database(entities = [ - MyModel::class -], version = 1, exportSchema = false) -@TypeConverters(SkeletonTypeConverters::class) -abstract class MyDatabase : RoomDatabase() { - - abstract fun myModels(): MyModel.MyModelDao - - companion object { - - fun get() = db - - private val db: MyDatabase by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { - SkeletonDatabaseBuilders.memory(MyDatabase::class, arrayListOf( - // Migrations... - )).fallbackToDestructiveMigration().build() - } - - } - -} diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/MyModel.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/MyModel.kt deleted file mode 100644 index e41131ce..00000000 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/MyModel.kt +++ /dev/null @@ -1,33 +0,0 @@ -package me.shkschneider.skeleton.demo.data - -import android.graphics.Bitmap -import androidx.room.ColumnInfo -import androidx.room.Dao -import androidx.room.Entity -import androidx.room.Ignore -import androidx.room.PrimaryKey -import androidx.room.Query -import me.shkschneider.skeleton.datax.SkeletonDao -import java.io.Serializable - -@Entity(tableName = "MyModels", foreignKeys = [], indices = []) -data class MyModel( - @PrimaryKey(autoGenerate = true) var id: Long = 0, - @ColumnInfo(name = "user_name") var userName: String, - @ColumnInfo(name = "first_name") var firstName: String? = null, - @ColumnInfo(name = "last_name") var lastName: String? = null, - @ColumnInfo(name = "email") var email: String? = null, - @Ignore var avatar: Bitmap? = null -) : Serializable { - - constructor(): this(0, "", null, null, null, null) - - @Dao - abstract class MyModelDao : SkeletonDao { - - @Query("SELECT * FROM MyModels") - abstract override fun getAll(): List - - } - -} diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/ShkMod.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/ShkMod.kt deleted file mode 100644 index 0e12c7aa..00000000 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/data/ShkMod.kt +++ /dev/null @@ -1,9 +0,0 @@ -package me.shkschneider.skeleton.demo.data - -object ShkMod { - - const val BROADCAST_SECRET = "BROADCAST_SECRET" - const val BROADCAST_SECRET_CODE = "BROADCAST_SECRET_CODE" - const val URL = "https://raw.githubusercontent.com/shkschneider/android_manifest/master/VERSION.json" - -} diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/MainActivity.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/MainActivity.kt index 7315f164..09232ba2 100644 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/MainActivity.kt +++ b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/MainActivity.kt @@ -6,16 +6,14 @@ import android.view.MenuItem import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentStatePagerAdapter -import androidx.lifecycle.Observer import androidx.viewpager.widget.ViewPager import kotlinx.android.synthetic.main.activity_main.* -import me.shkschneider.skeleton.SkeletonActivity -import me.shkschneider.skeleton.SkeletonFragment +import me.shkschneider.skeleton.android.app.SkeletonActivity +import me.shkschneider.skeleton.android.app.SkeletonFragment +import me.shkschneider.skeleton.android.content.intent import me.shkschneider.skeleton.demo.R import me.shkschneider.skeleton.demo.about.AboutActivity -import me.shkschneider.skeleton.extensions.Intent -import me.shkschneider.skeleton.helperx.log.Logger -import me.shkschneider.skeleton.arch.viewModel +import me.shkschneider.skeleton.kotlin.log.Logger import org.koin.android.ext.android.inject import java.util.UUID @@ -23,14 +21,6 @@ class MainActivity : SkeletonActivity() { val uuid: UUID by inject() - val secretKey by lazy { secretKey() } - - init { - System.loadLibrary("secrets") - } - - external fun secretKey(): String - // region lifecycle override fun onCreate(savedInstanceState: Bundle?) { @@ -69,28 +59,13 @@ class MainActivity : SkeletonActivity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.menu_about -> { - startActivity(Intent(this, AboutActivity::class)) + startActivity(intent(this, AboutActivity::class)) return true } } return super.onOptionsItemSelected(item) } - // enregion - - // region viewmodel - - private val viewModel by viewModel() - - override fun onResume() { - super.onResume() - - viewModel.models().observe(this, Observer { - // update UI - @Suppress("UNUSED_VARIABLE") val breakpoint: Nothing? = null - }) - } - // endregion // region fragments diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/MainViewModel.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/MainViewModel.kt deleted file mode 100644 index a712a83d..00000000 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/MainViewModel.kt +++ /dev/null @@ -1,36 +0,0 @@ -package me.shkschneider.skeleton.demo.main - -import androidx.annotation.UiThread -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.ViewModel -import me.shkschneider.skeleton.demo.data.DataManager -import me.shkschneider.skeleton.demo.data.MyModel -import me.shkschneider.skeleton.kotlinx.Coroutines - -/** - * This is, so far, my favorite way of doing it. - * - * @see me.shkschneider.skeleton.SkeletonViewModel - */ -class MainViewModel : ViewModel() { - - private val models by lazy { - MutableLiveData>().apply { - // ... - } - } - - @UiThread - fun models(force: Boolean = false): LiveData> { - if (models.value == null || force) { - Coroutines.ioThenMain({ - DataManager.getModels() - }) { - models.postValue(it) - } - } - return models - } - -} diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/ShkFragment.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/ShkFragment.kt index f5e34dc3..6aa45f48 100644 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/ShkFragment.kt +++ b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/ShkFragment.kt @@ -13,10 +13,10 @@ import kotlinx.android.synthetic.main.content_shk_code.* import kotlinx.android.synthetic.main.content_shk_id.* import kotlinx.android.synthetic.main.content_shk_personal.* import kotlinx.android.synthetic.main.content_shk_skills.* -import me.shkschneider.skeleton.SkeletonFragment +import me.shkschneider.skeleton.android.app.SkeletonFragment +import me.shkschneider.skeleton.android.content.IntentHelper +import me.shkschneider.skeleton.android.text.SpannableStringHelper import me.shkschneider.skeleton.demo.R -import me.shkschneider.skeleton.helper.IntentHelper -import me.shkschneider.skeleton.helper.SpannableStringHelper private const val AVATAR = "https://raw.githubusercontent.com/shkschneider/shkschneider.github.io/master/shkschneider.png" private const val GITHUB = "https://github.com/shkschneider/android_Skeleton" diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/SkFragment.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/SkFragment.kt index c8eabbed..fc70e9d9 100644 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/SkFragment.kt +++ b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/main/SkFragment.kt @@ -1,5 +1,3 @@ -@file:Suppress("DEPRECATION") - package me.shkschneider.skeleton.demo.main import android.os.Bundle @@ -8,15 +6,10 @@ import android.view.View import android.view.ViewGroup import android.widget.LinearLayout import android.widget.TextView -import kotlinx.android.synthetic.main.fragment_sk.* -import me.shkschneider.skeleton.SkeletonFragment +import me.shkschneider.skeleton.android.app.SkeletonFragment +import me.shkschneider.skeleton.android.view.Inflater import me.shkschneider.skeleton.demo.R -import me.shkschneider.skeleton.extensions.revealOn -import me.shkschneider.skeleton.arch.fragmentManager -import me.shkschneider.skeleton.helperx.log.Logger -import me.shkschneider.skeleton.javax.AlphanumComparator -import me.shkschneider.skeleton.securityx.fingerprint.Fingerprint -import me.shkschneider.skeleton.uix.Inflater +import me.shkschneider.skeleton.kotlin.util.AlphanumComparator import java.lang.reflect.Modifier class SkFragment : SkeletonFragment() { @@ -28,81 +21,72 @@ class SkFragment : SkeletonFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - fill(view.findViewById(R.id.data) as LinearLayout, listOf( - me.shkschneider.skeleton.datax.DiskCache.Cache::class.java, - me.shkschneider.skeleton.datax.GsonParser::class.java, - me.shkschneider.skeleton.datax.Serializer::class.java, - me.shkschneider.skeleton.data.CharsetHelper::class.java, - me.shkschneider.skeleton.data.DatabaseHelper::class.java, - me.shkschneider.skeleton.data.DataHelper::class.java, - me.shkschneider.skeleton.data.FileHelper::class.java, - me.shkschneider.skeleton.data.SharedPreferencesHelper::class.java, - me.shkschneider.skeleton.data.StreamHelper::class.java - )) - fill(view.findViewById(R.id.helper) as LinearLayout, listOf( - me.shkschneider.skeleton.helperx.FinalCountdown::class.java, - Logger::class.java, - me.shkschneider.skeleton.helper.AccountHelper::class.java, - me.shkschneider.skeleton.helper.ActivityTransitionHelper::class.java, - me.shkschneider.skeleton.helper.AndroidHelper::class.java, - me.shkschneider.skeleton.helper.ApplicationHelper::class.java, - me.shkschneider.skeleton.helper.AssetsHelper::class.java, - me.shkschneider.skeleton.helper.BroadcastHelper::class.java, - me.shkschneider.skeleton.helper.BundleHelper::class.java, - me.shkschneider.skeleton.helper.ClipboardHelper::class.java, - me.shkschneider.skeleton.helper.ContextHelper::class.java, - me.shkschneider.skeleton.helper.DateTimeHelper::class.java, - me.shkschneider.skeleton.helper.DeviceHelper::class.java, - me.shkschneider.skeleton.helper.HandlerHelper::class.java, - me.shkschneider.skeleton.helper.IdHelper::class.java, - me.shkschneider.skeleton.helper.IntentHelper::class.java, - me.shkschneider.skeleton.helper.KeyboardHelper::class.java, - me.shkschneider.skeleton.helper.LocaleHelper::class.java, - me.shkschneider.skeleton.helper.NotificationHelper::class.java, - me.shkschneider.skeleton.helper.RunnableHelper::class.java, - me.shkschneider.skeleton.helper.ScreenHelper::class.java, - me.shkschneider.skeleton.helper.ShortcutHelper::class.java, - me.shkschneider.skeleton.helper.SoundHelper::class.java, - me.shkschneider.skeleton.helper.SpannableStringHelper::class.java, - me.shkschneider.skeleton.helper.SystemHelper::class.java, - me.shkschneider.skeleton.helper.ThreadHelper::class.java, - me.shkschneider.skeleton.helper.VibratorHelper::class.java - )) - fill(view.findViewById(R.id.java) as LinearLayout, listOf( - me.shkschneider.skeleton.javax.Randomizer::class.java, - me.shkschneider.skeleton.javax.SemanticVersion::class.java, - me.shkschneider.skeleton.javax.Tasker::class.java, - me.shkschneider.skeleton.java.StringHelper::class.java - )) - fill(view.findViewById(R.id.network) as LinearLayout, listOf( - me.shkschneider.skeleton.networkx.WebService::class.java, - me.shkschneider.skeleton.network.NetworkHelper::class.java, - me.shkschneider.skeleton.network.UrlHelper::class.java - )) - fill(view.findViewById(R.id.security) as LinearLayout, listOf( - me.shkschneider.skeleton.securityx.ComplexCrypt::class.java, - me.shkschneider.skeleton.securityx.SimpleCrypt::class.java, - me.shkschneider.skeleton.security.HashHelper::class.java, - me.shkschneider.skeleton.security.HmacHelper::class.java - )) - fill(view.findViewById(R.id.ui) as LinearLayout, listOf( - me.shkschneider.skeleton.uix.BottomSheet::class.java, - me.shkschneider.skeleton.uix.FloatingActionButtonCompat::class.java, - me.shkschneider.skeleton.uix.Inflater::class.java, - me.shkschneider.skeleton.uix.Notify::class.java, - me.shkschneider.skeleton.uix.OverlayLoader::class.java, - me.shkschneider.skeleton.uix.Tooltips::class.java - )) - - if (Fingerprint.isAvailable(view.context)) { - Fingerprint.scan(view.context, requireNotNull(fragmentManager())) {} - floatingActionButton.revealOn() - floatingActionButton.setOnClickListener { - Fingerprint.scan(view.context, requireNotNull(fragmentManager())) { _ -> - // TODO state - } - } - } + // TODO +// fill(view.findViewById(R.id.data) as LinearLayout, listOf( +// me.shkschneider.skeleton.datax.DiskCache.Cache::class.java, +// me.shkschneider.skeleton.datax.GsonParser::class.java, +// me.shkschneider.skeleton.datax.Serializer::class.java, +// me.shkschneider.skeleton.data.CharsetHelper::class.java, +// me.shkschneider.skeleton.data.DatabaseHelper::class.java, +// me.shkschneider.skeleton.data.DataHelper::class.java, +// me.shkschneider.skeleton.data.FileHelper::class.java, +// me.shkschneider.skeleton.data.SharedPreferencesHelper::class.java, +// me.shkschneider.skeleton.data.StreamHelper::class.java +// )) +// fill(view.findViewById(R.id.helper) as LinearLayout, listOf( +// me.shkschneider.skeleton.helperx.FinalCountdown::class.java, +// Logger::class.java, +// me.shkschneider.skeleton.helper.AccountHelper::class.java, +// me.shkschneider.skeleton.helper.ActivityTransitionHelper::class.java, +// me.shkschneider.skeleton.helper.AndroidHelper::class.java, +// me.shkschneider.skeleton.helper.ApplicationHelper::class.java, +// me.shkschneider.skeleton.helper.AssetsHelper::class.java, +// me.shkschneider.skeleton.helper.BroadcastHelper::class.java, +// me.shkschneider.skeleton.helper.BundleHelper::class.java, +// me.shkschneider.skeleton.helper.ClipboardHelper::class.java, +// me.shkschneider.skeleton.helper.ContextHelper::class.java, +// me.shkschneider.skeleton.helper.DateTimeHelper::class.java, +// me.shkschneider.skeleton.helper.DeviceHelper::class.java, +// me.shkschneider.skeleton.helper.HandlerHelper::class.java, +// me.shkschneider.skeleton.helper.IdHelper::class.java, +// me.shkschneider.skeleton.helper.IntentHelper::class.java, +// me.shkschneider.skeleton.helper.KeyboardHelper::class.java, +// me.shkschneider.skeleton.helper.LocaleHelper::class.java, +// me.shkschneider.skeleton.helper.NotificationHelper::class.java, +// me.shkschneider.skeleton.helper.RunnableHelper::class.java, +// me.shkschneider.skeleton.helper.ScreenHelper::class.java, +// me.shkschneider.skeleton.helper.ShortcutHelper::class.java, +// me.shkschneider.skeleton.helper.SoundHelper::class.java, +// me.shkschneider.skeleton.helper.SpannableStringHelper::class.java, +// me.shkschneider.skeleton.helper.SystemHelper::class.java, +// me.shkschneider.skeleton.helper.ThreadHelper::class.java, +// me.shkschneider.skeleton.helper.VibratorHelper::class.java +// )) +// fill(view.findViewById(R.id.java) as LinearLayout, listOf( +// me.shkschneider.skeleton.javax.Randomizer::class.java, +// me.shkschneider.skeleton.javax.SemanticVersion::class.java, +// me.shkschneider.skeleton.javax.Tasker::class.java, +// me.shkschneider.skeleton.java.StringHelper::class.java +// )) +// fill(view.findViewById(R.id.network) as LinearLayout, listOf( +// me.shkschneider.skeleton.networkx.WebService::class.java, +// me.shkschneider.skeleton.network.NetworkHelper::class.java, +// me.shkschneider.skeleton.network.UrlHelper::class.java +// )) +// fill(view.findViewById(R.id.security) as LinearLayout, listOf( +// me.shkschneider.skeleton.securityx.ComplexCrypt::class.java, +// me.shkschneider.skeleton.securityx.SimpleCrypt::class.java, +// me.shkschneider.skeleton.security.HashHelper::class.java, +// me.shkschneider.skeleton.security.HmacHelper::class.java +// )) +// fill(view.findViewById(R.id.ui) as LinearLayout, listOf( +// me.shkschneider.skeleton.uix.BottomSheet::class.java, +// me.shkschneider.skeleton.uix.FloatingActionButtonCompat::class.java, +// me.shkschneider.skeleton.uix.Inflater::class.java, +// me.shkschneider.skeleton.uix.Notify::class.java, +// me.shkschneider.skeleton.uix.OverlayLoader::class.java, +// me.shkschneider.skeleton.uix.Tooltips::class.java +// )) } private fun fill(linearLayout: LinearLayout?, cs: List>) { diff --git a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/net/NetworkManager.kt b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/net/NetworkManager.kt index 0ea7ba26..ff2b38dd 100644 --- a/demo/src/main/kotlin/me/shkschneider/skeleton/demo/net/NetworkManager.kt +++ b/demo/src/main/kotlin/me/shkschneider/skeleton/demo/net/NetworkManager.kt @@ -3,14 +3,15 @@ package me.shkschneider.skeleton.demo.net import com.github.kittinunf.fuel.core.FuelManager import com.github.kittinunf.fuel.core.Request import com.github.kittinunf.fuel.core.Response +import com.github.kittinunf.fuel.core.extensions.authentication import com.github.kittinunf.fuel.core.isSuccessful import com.google.gson.GsonBuilder import com.google.gson.annotations.SerializedName -import me.shkschneider.skeleton.datax.MemoryCache -import me.shkschneider.skeleton.helperx.log.Logger -import me.shkschneider.skeleton.networkx.WebService -import me.shkschneider.skeleton.networkx.WebServiceFailure -import me.shkschneider.skeleton.networkx.WebServiceSuccess +import me.shkschneider.skeleton.android.cache.MemoryCache +import me.shkschneider.skeleton.android.network.WebService +import me.shkschneider.skeleton.android.network.WebServiceFailure +import me.shkschneider.skeleton.android.network.WebServiceSuccess +import me.shkschneider.skeleton.kotlin.log.Logger import java.io.Serializable import java.nio.charset.Charset @@ -47,7 +48,7 @@ object NetworkManager { fun userAgent(success: WebServiceSuccess, failure: WebServiceFailure? = null): Request = proxy.get("https://httpbin.org/user-agent", success, failure).cache(success) - .authenticate("john", "doe") + .authentication().basic("john", "doe") .body("42") // If coming from cache, response.isSuccessful will be false diff --git a/settings.gradle b/settings.gradle index 508c60ff..090079d2 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,3 @@ include ':kotlin' include ':android' +include ':demo'