Skip to content

Commit

Permalink
alpha6
Browse files Browse the repository at this point in the history
  • Loading branch information
Hazer committed Jul 28, 2016
1 parent 2482103 commit 4e96a51
Show file tree
Hide file tree
Showing 10 changed files with 56 additions and 110 deletions.
9 changes: 5 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
ext {
libraries = [
supportVersion : "24.0.0",
supportVersion : "24.1.1",
ankoVersion : "0.8.3",
]
GROUP = "com.guizion.frameworks.yaf"
VERSION_NAME = "1.0.0-alpha4"
// GROUP = "io.vithor.frameworks.yaf"
VERSION_NAME = "1.0.0-alpha6"
}

buildscript {
ext.kotlin_version = '1.0.3'
ext.build_tools_version = '24.0.0'
ext.build_tools_version = '24.0.1'
ext.compile_sdk_version = 24
ext.min_sdk_version = 15
ext.target_sdk_version = 24
Expand All @@ -21,7 +22,7 @@ buildscript {
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.android.tools.build:gradle:2.2.0-alpha5'
classpath 'com.android.tools.build:gradle:2.2.0-alpha6'
classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.8"

// NOTE: Do not place your application dependencies here; they belong
Expand Down
24 changes: 24 additions & 0 deletions core/src/main/java/io/vithor/yamvpframework/core/NoRaceRunnable.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package io.vithor.yamvpframework.core

import android.view.ViewConfiguration

/**
* Created by Vithorio Polten on 7/15/16.
*/
class NoRaceRunnable(val interval: Int = ViewConfiguration.getDoubleTapTimeout(), val run: () -> Unit) : Runnable {
private var lastRun: Long = 0

private val lastRunTimeout: Long
get() {
return System.currentTimeMillis() - lastRun
}

override fun run() {
if (lastRunTimeout > interval) {
lastRun = System.currentTimeMillis()
run.invoke()
}
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,24 @@ abstract class PresentableActivity<P : BasePresenter<SK>, SK : Sketch> : BaseAct
var presenter: P? = null
private set

private var presenterClass: Class<P>? = null
private val presenterClass: Class<P> by lazy {
val type = (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0]
val name = type.toString().substring(6)
@Suppress("UNCHECKED_CAST")
return@lazy Class.forName(name) as? Class<P> ?: throw IllegalStateException("Class ${name} does not extends from BasePresenter or the Sketch implemented its not the same from BaseActivity.")
}

/**
* Instantiate a presenter instance
*
* @return The [BasePresenter] for this view
*/
override final fun createPresenter(): P {
@Suppress("UNCHECKED_CAST")
if (presenterClass == null) {
val type = (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0]
val name = type.toString().substring(6)
presenterClass = Class.forName(name) as? Class<P> ?: throw IllegalStateException("Class ${name} does not extends from BasePresenter or the Sketch implemented its not the same from BaseActivity.")
}
var inst = BasePresenter.getActiveInstance(presenterClass?.kotlin)
inst = inst ?: presenterClass?.newInstance()
return inst ?: throw IllegalStateException("Class ${presenterClass?.simpleName} must have a public no-args constructor.")
if (presenter != null) return presenter!!

var inst = BasePresenter.getActiveInstance(presenterClass.kotlin)
inst = inst ?: presenterClass.getConstructor(String::class.java)?.newInstance(presenterClass.kotlin.toString())
return inst ?: throw IllegalStateException("Class ${presenterClass.simpleName} must have a public no-args constructor.")
}

override fun activePresenter(): P? {
Expand All @@ -57,7 +58,7 @@ abstract class PresentableActivity<P : BasePresenter<SK>, SK : Sketch> : BaseAct
onViewSetup(savedInstanceState)

@Suppress("UNCHECKED_CAST")
val sketchView = this as? SK ?: throw IllegalStateException("${javaClass.simpleName} must implement ${ (presenterClass?.genericSuperclass as? ParameterizedType)?.actualTypeArguments!![0]}")
val sketchView = this as? SK ?: throw IllegalStateException("${javaClass.simpleName} must implement ${ (presenterClass.genericSuperclass as? ParameterizedType)?.actualTypeArguments!![0]}")
this.presenter!!.attachView(sketchView)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,23 +29,21 @@ internal object PresenterBucket {
}

object Singletons {
val bucket = SparseArray<BasePresenter<*>>(2)

/**
* Add Presenter to Bucket. Now it will not be destroyed on orientation change.
* DON'T FORGET TO RELEASE IT LATER!!!
* @param presenter Presenter to persist in memory.
*/
fun <SK : Sketch> add(presenter: BasePresenter<SK>) {
bucket.put(presenter.javaClass.kotlin.hashCode(), presenter)
PresenterBucket.add(presenter.javaClass.kotlin.toString(), presenter)
}

fun getRetainedInstance(presenterClass: KClass<out BasePresenter<out Sketch>>): BasePresenter<*>? {
return bucket.get(presenterClass.java.kotlin.hashCode())
return PresenterBucket.getRetainedInstance(presenterClass.toString())
}

fun <T: BasePresenter<*>> release(presenterClass: KClass<T>) {
bucket.remove(presenterClass.java.kotlin.hashCode())
PresenterBucket.release(presenterClass.toString())
}
}
}

This file was deleted.

This file was deleted.

2 changes: 1 addition & 1 deletion permissions/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ dependencies {
testCompile 'com.nhaarman:mockito-kotlin:0.5.0'
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

compile('com.github.afollestad:assent:0.2.4') {
compile('com.afollestad:assent:0.2.4') {
transitive = true
}
compile "com.android.support:support-v4:${libraries.supportVersion}"
Expand Down
8 changes: 4 additions & 4 deletions rest/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,11 @@ dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

compile project(':core')
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.google.code.gson:gson:2.6.2'
compile project(':gson')
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'

compile 'com.github.mrmike:ok2curl:0.2.3'
compile 'com.github.mrmike:ok2curl:0.2.5'
}

apply from: new File("${rootProject.projectDir}/publish.gradle")
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,17 @@ class SingleClickListener(val click: (v: View) -> Unit) : View.OnClickListener {

private var lastClick: Long = 0

private val lastClickTimeout: Long
get() {
return System.currentTimeMillis() - lastClick
}

override fun onClick(v: View) {
if (getLastClickTimeout() > DOUBLE_CLICK_TIMEOUT) {
if (lastClickTimeout > DOUBLE_CLICK_TIMEOUT) {
lastClick = System.currentTimeMillis()
click(v)
}
}

private fun getLastClickTimeout(): Long {
return System.currentTimeMillis() - lastClick
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ class PercentLinearLayout(context: Context, attrs: AttributeSet) : LinearLayout(
private val mPercentLayoutHelper: PercentLayoutHelper

init {

mPercentLayoutHelper = PercentLayoutHelper(this)
}

Expand All @@ -36,7 +35,6 @@ class PercentLinearLayout(context: Context, attrs: AttributeSet) : LinearLayout(
return LayoutParams(context, attrs)
}


class LayoutParams : LinearLayout.LayoutParams, PercentLayoutHelper.PercentLayoutParams {
var percentInfo: PercentLayoutHelper.PercentLayoutInfo? = null

Expand All @@ -51,15 +49,14 @@ class PercentLinearLayout(context: Context, attrs: AttributeSet) : LinearLayout(
constructor(width: Int, height: Int) : super(width, height) {
}


constructor(source: ViewGroup.LayoutParams) : super(source) {
}

constructor(source: MarginLayoutParams) : super(source) {
}

override fun getPercentLayoutInfo(): PercentLayoutHelper.PercentLayoutInfo? {
return percentLayoutInfo
return percentInfo
}
}

Expand Down

0 comments on commit 4e96a51

Please sign in to comment.