Skip to content

Instantly share code, notes, and snippets.

View samuel22gj's full-sized avatar
👨‍💻
Coding

Samuel Huang samuel22gj

👨‍💻
Coding
View GitHub Profile
@samuel22gj
samuel22gj / BooleanTypeAdapterTest.kt
Last active December 17, 2021 08:34
SafeBooleanTypeAdapter for Kotlin
class BooleanTypeAdapterTest {
@Test
fun testBooleanTypeAdapter() {
val gson = GsonBuilder()
.registerTypeAdapter(Boolean::class.javaObjectType, BooleanObjectTypeAdapter())
.registerTypeAdapter(Boolean::class.javaPrimitiveType, BooleanPrimitiveTypeAdapter())
.create()
assertEquals(null, gson.fromJson("""{"isBoolean"=null}""", Foo::class.java).isBoolean)
@samuel22gj
samuel22gj / BarcodeEncoder.kt
Created April 25, 2022 14:33
Generate QR Code by ZXing in Android
import android.graphics.Bitmap
import com.google.zxing.BarcodeFormat
import com.google.zxing.EncodeHintType
import com.google.zxing.MultiFormatWriter
import com.google.zxing.common.BitMatrix
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
object BarcodeEncoder {
@samuel22gj
samuel22gj / compress.sh
Created November 17, 2022 08:16
compress mp3 by 48k bitrate and remove title metadata
#!/usr/bin/env bash
set -o errexit
set -o pipefail
set -o nounset
OIFS="$IFS"
IFS=$'\n'
info () {