Skip to content

Instantly share code, notes, and snippets.

infix fun <T> Boolean.ifElse(param: T): T? = if (this) param else null
fun main() {
printBool(true)
printBool(false)
}
fun printBool(bool: Boolean) {
println(bool ifElse "true" ?: "false")
}
@hector6872
hector6872 / AutoMaxLinesTextView.kt
Last active August 13, 2018 09:10
AutoMaxLinesTextView for Android (Kotlin)
class AutoMaxLinesTextView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = android.R.attr.textViewStyle
) : AppCompatTextView(context, attrs, defStyleAttr) {
override fun onLayout(
changed: Boolean,
left: Int,
top: Int,
#!/usr/bin/env python
#################
## CREDENTIALS ##
#################
GH_PERSONAL_ACCESS_TOKEN = ''
BB_USERNAME = ''
BB_APP_PASSWORD = ''
BB_OAUTH_KEY = ''
@hector6872
hector6872 / gh2bb_migrate_cheapass.py
Created June 8, 2018 18:53
Migrate all your private github repos to bitbucket because you're CHEAP.
__author__ = 'schwa'
import os
import subprocess
import glob
from github import Github # pip install PyGithub
from bitbucket.bitbucket import Bitbucket # pip install --user bitbucket-api
GH_USERNAME = '[email protected]'
GH_PASSWORD = '1234'
@Takhion
Takhion / ExhaustiveWhen.kt
Last active July 28, 2021 19:19
Exhaustive `when` mapping in Kotlin
@file:Suppress("PackageDirectoryMismatch") // root package looks great when importing, ie. `import exhaustive`
/**
* Allows requiring an exhaustive mapping in a `when` block when used with the [rangeTo] operator.
* @sample [exhaustive_when_example]
*/
@Suppress("ClassName") // lowercase because it should look like a keyword
object exhaustive {
@ArthurNagy
ArthurNagy / RoundedBottomSheetDialogFragment.kt
Last active March 10, 2025 08:53
Rounded modal bottom sheet as seen in new Google products(Tasks, News, etc.), described in this article: https://medium.com/halcyon-mobile/implementing-googles-refreshed-modal-bottom-sheet-4e76cb5de65b
package com.your.package
import android.app.Dialog
import android.os.Bundle
import com.your.package.R
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
/**
* BottomSheetDialog fragment that uses a custom
@hector6872
hector6872 / AspectRatioCardView.kt
Created May 9, 2018 16:21
AspectRatioCardView Android - Kotlin
class AspectRatioCardView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : CardView(context, attrs, defStyleAttr) {
private var ratio = 1.0f
init {
attrs?.let {
@suhtai
suhtai / Logger.kt
Last active May 17, 2018 10:35
Fluent Logging with Kotlin
inline fun <A> A.logWith(logger: Logger, block: Logger.(A) -> Unit) : A =
this.also { logger.block(it) }
// With interface injection
interface HasLog {
val log: Logger
fun <A> A.log(block: Logger.(A) -> Unit) : A =
logWith(logger, block)
}
@srishanbhattarai
srishanbhattarai / android.txt
Last active March 22, 2025 04:46
Android Emulator CPU/Memory high usage solution
https://stackoverflow.com/questions/37063267/high-cpu-usage-with-android-emulator-qemu-system-i386-exe
The cause of the constant CPU usage is the sound. If you do not need sound in your emulator you can disable it by editing the AVD's config file.
Change/add those two lines
hw.audioInput=no
hw.audioOutput=no
On Linux/Mac the file is located at ~/.android/avd/<AVD_Name>.avd/config.ini
On Windows the file is located at C:\Users\<username>\.android\avd\<AVD_Name>.avd\config.ini
@hector6872
hector6872 / MultiState.kt
Last active April 24, 2018 14:53
MultiStateFrameLayout Kotlin Android
enum class MultiState {
CONTENT,
EMPTY,
LOADING,
ERROR
}