Skip to content

Commit

Permalink
Update: add some extensions and implement CommonLazy
Browse files Browse the repository at this point in the history
  • Loading branch information
Mindjet committed Oct 25, 2017
1 parent 0c4236a commit 61b730f
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 16 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# AnkoUtil

![version](https://jitpack.io/v/Mindjet/AnkoUtil.svg)

>*Aka Android-Kotlin-Util*
This is a library including **utils** and **function extension** for Android develop.
Expand Down
12 changes: 0 additions & 12 deletions library/src/main/java/io/github/mindjet/library/ActivityEx.kt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package io.github.mindjet.library.delegate

import android.app.Activity
import android.view.View
import kotlin.properties.ReadOnlyProperty
import kotlin.reflect.KProperty

/**
* Created by Mindjet on 2017/10/25.
*/
class CommonLazy<in T, out R>(private val initializer: (T, KProperty<*>) -> R) : ReadOnlyProperty<T, R> {

private var value: R? = null

override fun getValue(thisRef: T, property: KProperty<*>): R {
if (value == null) {
value = initializer(thisRef, property)
}
@Suppress("UNCHECKED_CAST")
return value as R
}

}

fun <T : View> Activity.bindView(id: Int): CommonLazy<Activity, T> {
return CommonLazy { activity, prop ->
activity.findViewById(id) ?: viewNotFound(activity, id, prop)
}
}

fun <T> viewNotFound(activity: Activity, id: Int, kProperty: KProperty<T>): Nothing {
throw ClassNotFoundException("View id $id is not found for ${kProperty.name} in ${activity::class.simpleName}")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.github.mindjet.library.extension

import android.app.Activity
import android.content.Intent

/**
* Created by Mindjet on 2017/10/17.
*/
inline fun <reified T> Activity.start() {
this.startActivity(Intent(this, T::class.java))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package io.github.mindjet.library.extension

/**
* Created by Mindjet on 2017/10/25.
*/
fun Int.toStream(): Array<Any?> {
return arrayOfNulls(this)
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.mindjet.library
package io.github.mindjet.library.extension

import android.content.Context
import android.util.Log
Expand All @@ -8,7 +8,7 @@ import android.widget.Toast
* Created by Mindjet on 2017/9/6.
*/
val testString = "This is a string."
var toast: Toast? = null
private var toast: Toast? = null

inline fun <reified T> T.log(log: Any) {
Log.e(T::class.simpleName, log.toString())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package io.github.mindjet.library
package io.github.mindjet.library.extension

import android.os.Build

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package io.github.mindjet.sample

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import io.github.mindjet.library.*
import io.github.mindjet.library.extension.*

class MainActivity : AppCompatActivity() {

Expand Down

0 comments on commit 61b730f

Please sign in to comment.