android support! thanks to TachiWeb devs.
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package xyz.nulldev.androidcompat.util
|
||||
|
||||
import android.content.Context
|
||||
import org.kodein.di.DI
|
||||
import org.kodein.di.conf.global
|
||||
import org.kodein.di.instance
|
||||
import xyz.nulldev.androidcompat.androidimpl.CustomContext
|
||||
import xyz.nulldev.androidcompat.androidimpl.FakePackageManager
|
||||
import xyz.nulldev.androidcompat.info.ApplicationInfoImpl
|
||||
import xyz.nulldev.androidcompat.io.AndroidFiles
|
||||
import xyz.nulldev.androidcompat.pm.PackageController
|
||||
import xyz.nulldev.androidcompat.service.ServiceSupport
|
||||
|
||||
/**
|
||||
* Helper class to allow access to Kodein from Java
|
||||
*/
|
||||
object KodeinGlobalHelper {
|
||||
/**
|
||||
* Get the Kodein object
|
||||
*/
|
||||
@JvmStatic
|
||||
fun kodein() = DI.global
|
||||
|
||||
/**
|
||||
* Get a dependency
|
||||
*/
|
||||
@JvmStatic
|
||||
fun <T : Any> instance(type: Class<T>, kodein: DI? = null): T {
|
||||
return when(type) {
|
||||
AndroidFiles::class.java -> {
|
||||
val instance: AndroidFiles by (kodein ?: kodein()).instance()
|
||||
instance as T
|
||||
}
|
||||
ApplicationInfoImpl::class.java -> {
|
||||
val instance: ApplicationInfoImpl by (kodein ?: kodein()).instance()
|
||||
instance as T
|
||||
}
|
||||
ServiceSupport::class.java -> {
|
||||
val instance: ServiceSupport by (kodein ?: kodein()).instance()
|
||||
instance as T
|
||||
}
|
||||
FakePackageManager::class.java -> {
|
||||
val instance: FakePackageManager by (kodein ?: kodein()).instance()
|
||||
instance as T
|
||||
}
|
||||
PackageController::class.java -> {
|
||||
val instance: PackageController by (kodein ?: kodein()).instance()
|
||||
instance as T
|
||||
}
|
||||
CustomContext::class.java -> {
|
||||
val instance: CustomContext by (kodein ?: kodein()).instance()
|
||||
instance as T
|
||||
}
|
||||
Context::class.java -> {
|
||||
val instance: Context by (kodein ?: kodein()).instance()
|
||||
instance as T
|
||||
}
|
||||
else -> throw IllegalArgumentException("Kodein instance not found")
|
||||
}
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun <T : Any> instance(type: Class<T>): T {
|
||||
return instance(type, null)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright 2016 Andy Bao
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package xyz.nulldev.androidcompat.util
|
||||
|
||||
import android.net.Uri
|
||||
import java.io.File
|
||||
import java.net.URI
|
||||
|
||||
/**
|
||||
* Utilites to convert between Java and Android Uris.
|
||||
*/
|
||||
fun Uri.java() = URI(this.toString())
|
||||
fun Uri.file() = File(this.path)
|
||||
fun URI.android() = Uri.parse(this.toString())!!
|
||||
Reference in New Issue
Block a user