Skip to content

Instantly share code, notes, and snippets.

View harryhan24's full-sized avatar

harry han harryhan24

View GitHub Profile
@harryhan24
harryhan24 / build.gradle
Created June 28, 2018 14:38 — forked from davebren/build.gradle
gradle flavors and resources example
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.3"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 23
@harryhan24
harryhan24 / Extensions.kt
Created July 2, 2018 15:44 — forked from albertogiunta/Extensions.kt
Extension functions (Kotlin) & build.gradle files for Android projects
/**
* ANY
*/
fun Any.toJson(): String = GsonInitializer.toJson(this)
/**
* VIEW
*/
fun View.toggleVisibility(setAsVisible: Boolean) = if (setAsVisible) this.visible() else this.gone()
@harryhan24
harryhan24 / serverless.yml
Created July 21, 2018 02:58 — forked from DavidWells/serverless.yml
DynamoDB custom index serverless.yml example
service: service-name
provider:
name: aws
runtime: nodejs6.10
functions:
myfunc:
handler: handler.myfunc
class AnkoViewHolder<out V : AnkoComponent<ViewGroup>>(val parent: ViewGroup, val createUI: () -> V) {
class ViewHolder<out V : AnkoComponent<ViewGroup>>(val view: View, val ui: V) : RecyclerView.ViewHolder(view)
val ankoContext by lazy { AnkoContext.createReusable(parent.context, parent) }
val viewHolder by lazy {
val ui = createUI()
val view = ui.createView(ankoContext)
view.setupTapEffectForBG(true) // default for every item in application
// TODO some items may be disabled...
ViewHolder(view, ui)
class AnkoUIMaker(val context: Context) {
private val constraintlayoutID = R.id.ankoConstraintLayout
fun UiMake(): View =
context.constraintLayout {
id = constraintlayoutID
// 추가
textView("Anko Hello").lparams(wrapContent, wrapContent) {
startToStart = constraintlayoutID
endToEnd = constraintlayoutID
topToTop = constraintlayoutID
@harryhan24
harryhan24 / AnkoExtensions.kt
Created August 4, 2018 07:28 — forked from baeyeongpyo/AnkoExtensions.kt
Anko Stream Extensions
inline fun <V : View> V.alpha(alpha: Double): V {
this.alpha = alpha.toFloat()
return this
}
inline fun <V : View> V.backgroundColor(color: Int): V {
backgroundColor = color
return this
}
abstract class BaseFragment<VB : ViewDataBinding, VM : BaseViewModel> : DaggerFragment() {
abstract fun getViewModelClass(): Class<VM>
abstract fun layoutId(): Int
@Inject
lateinit var viewModelFactory: ViewModelProvider.Factory
protected lateinit var binding: VB
protected lateinit var viewModel: VM
class MainViewModel {
val visible = ObservableBoolean(false)
}
@harryhan24
harryhan24 / LiveDataExtensions.kt
Created September 28, 2018 21:44 — forked from jamiesanson/LiveDataExtensions.kt
LiveData NonNull Observers
/**
* Extends LiveData allowing Kotlin DSL for onChanged callback usage
*/
fun <T> LiveData<T>.observeNonNull(lifecycleOwner: LifecycleOwner, onItem: (T) -> Unit) {
this.observe(lifecycleOwner, object : NonNullObserver<T> {
override fun onChangedNonNull(t: T) {
onItem(t)
}
})
}