Skip to content

Instantly share code, notes, and snippets.

View Nilzor's full-sized avatar

Frode Nilsen Nilzor

  • Forse.no
  • Oslo, Norway
View GitHub Profile
@Nilzor
Nilzor / UsefulBindingAdapters.kt
Last active August 29, 2022 19:22
Useful binding adapters
object GeneralBindingAdapters {
/**
* To allow binding image resource Int in addition to Drawable.
* Saves you from depending on Resouces in the ViewModel,
*/
@JvmStatic
@BindingAdapter("android:src")
fun setImageResource(imageView: ImageView, resource: Int) {
imageView.setImageResource(resource)
@Nilzor
Nilzor / build.gradle
Created June 19, 2021 06:20
Temp build.gradle matrix plugin
buildscript {
repositories {
mavenCentral()
jcenter()
}
}
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.5.10'
id 'org.jetbrains.intellij' version '1.0'
@Nilzor
Nilzor / attempt_onclick.kt
Created June 16, 2021 13:58
Attempt at bindingconverter
@BindingConversion
@JvmStatic
fun konverto1(action: (() -> Unit)?) : View.OnClickListener? {
return View.OnClickListener { action?.invoke() }
}
@Nilzor
Nilzor / ContentTypeInterceptor.kt
Last active June 19, 2020 12:02
An OkHttp interceptor allowing you to override Content-Type for POST, PUT and PATCH requests
/**
* Overrides the HTTP Header Content-Type for POST, PATCH and PUT calls to the given [contentType]
*/
class ContentTypeInterceptor(private val contentType: String) : Interceptor {
override fun intercept(chain: Interceptor.Chain): Response {
val request = chain.request()
val chainBuilder = request.newBuilder()
request.body()?.let {
val newBody = ForwardingRequestbody(it, contentType)
when (request.method()) {
@Nilzor
Nilzor / ToothpickTest.kt
Created June 3, 2020 19:03
Toothpick overriding and stuff
package no.ruter.sales.utils
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.core.IsInstanceOf
import org.junit.Test
import toothpick.Scope
import toothpick.Toothpick
import toothpick.config.Module
import toothpick.ktp.binding.bind
import toothpick.ktp.binding.module
@Nilzor
Nilzor / databinderror.txt
Last active May 17, 2020 05:12
Databind error
import com.myapp.shared.databinding.FragmentSaleProductBindingImpl;
^
symbol: class FragmentSaleProductBindingImpl
^
warning Binding adapter AK(android.widget.ImageView, com.myapp.shared.model.viewmodel.overview.ConnectivityState) already exists for connectivityState! Overriding com.myapp.shared.bindingadapters.ValidatorBindingAdapter.Companion#setIdleCardImage with com.myapp.shared.bindingadapters.ValidatorBindingAdapter#setIdleCardImage
warning Binding adapter AK(android.widget.ImageView, com.myapp.shared.model.viewmodel.overview.ConnectivityState) already exists for connectivityState! Overriding com.myapp.shared.bindingadapters.ValidatorBindingAdapter.Companion#setIdleCardImage with com.myapp.shared.bindingadapters.ValidatorBindingAdapter#setIdleCardImage
warning Binding adapter AK(android.widget.TextView, com.myapp.shared.model.viewmodel.overview.ConnectivityState) already exists for connectivityState! Overriding com.myapp.shared.bindingadapters.ValidatorBin
@Nilzor
Nilzor / BuyTicketButton.kt
Created April 23, 2020 06:14
DAtabinding to custom prop
class BuyTicketButton(context: Context, attrs: AttributeSet?) : FrameLayout(context, attrs) {
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : this(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : this(context, attrs)
init {
val view = LayoutInflater.from(context)!!.inflate(R.layout.button_ticket, this, true)
val attributes = context.obtainStyledAttributes(attrs, R.styleable.BuyTicketButton)
val imageSrc = attributes.getResourceId(R.styleable.BuyTicketButton_imageSrc, 0)
@Nilzor
Nilzor / multiple_null_checks.kt
Created March 18, 2020 21:41
Kotlin shorthands
fun <R, A, B> withNoNulls(p1: A?, p2: B?, function: (p1: A, p2: B) -> R): R? = p1?.let { p2?.let { function.invoke(p1, p2) } }
fun <R, A, B, C> withNoNulls(p1: A?, p2: B?, p3: C?, function: (p1: A, p2: B, p3: C) -> R): R? = p1?.let { p2?.let { p3?.let { function.invoke(p1, p2, p3) } } }
@Nilzor
Nilzor / keybase.md
Created September 19, 2017 08:56
Keybase proof

Keybase proof

I hereby claim:

  • I am nilzor on github.
  • I am frodenilsen (https://keybase.io/frodenilsen) on keybase.
  • I have a public key ASAl5OwmAffcKHYFXAub-yC-Z2TP1v9XlbbFy70Qtt55eAo

To claim this, I am signing this object:

@Nilzor
Nilzor / debug.log
Created September 9, 2017 14:03
Xamarin HttpClient log
Android application is debugging.
Loaded assembly: /storage/emulated/0/Android/data/xam_android_news.xam_android_news/files/.__override__/xam-android-news.dll
Loaded assembly: /storage/emulated/0/Android/data/xam_android_news.xam_android_news/files/.__override__/RestSharp.dll [External]
Loaded assembly: Mono.Android.dll [External]
Loaded assembly: Java.Interop.dll [External]
Loaded assembly: System.Runtime.dll [External]
Loaded assembly: System.Collections.Concurrent.dll [External]
09-09 13:59:37.789 I/art ( 3889): Not late-enabling -Xcheck:jni (already on)
09-09 13:59:37.789 W/art ( 3889): Unexpected CPU variant for X86 using defaults: x86
09-09 13:59:37.828 W/monodroid( 3889): Creating public update directory: `/data/user/0/xam_android_news.xam_android_news/files/.__override__`