Skip to content

Instantly share code, notes, and snippets.

@droibit
droibit / cleanup_android_studio.sh
Last active October 21, 2022 09:22
Clean up Android Studio.
#!/bin/bash
version=$1
if [[ $version =~ ^(Preview)?[0-9]+\.[0-9]$ ]]; then
echo "Clean up Android Studio $version."
else
echo "You should specify the version(e.g. 3.0 or Preview3.0) of Android Studio."
exit 1
fi
@droibit
droibit / cleanup_intellij_ce.sh
Created March 5, 2018 04:54
Clean up IntelliJ IDEA CE.
#!/bin/bash
version=$1
if [[ $version =~ ^20[0-9]{2}\.[0-9]{1,3}$ ]]; then
echo "Clean up IntelliJ CE $version."
else
echo "You should specify the version(e.g. 2017.2) of IntelliJ."
exit 1
fi
val json = app.assets.open("timeline.json").use {
it.bufferedReader().readText()
}
@droibit
droibit / CombineCoroutineContextSample.kt
Last active October 25, 2017 14:50
Sample of combine coroutine context.
val parentJob = Job()
launch(parentJob + CommonPool) {
try {
Timber.d("[${Thread.currentThread().name}]: start job1.")
delay(1500L)
Timber.d("[${Thread.currentThread().name}]: stop job2.")
} catch (e: CancellationException) {
Timber.d("[${Thread.currentThread().name}]: cancel job1.")
}
}
@droibit
droibit / Permission.java
Last active December 7, 2020 11:28
Helper class for runtime permission of Android M
import android.Manifest;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.annotation.NonNull;
@droibit
droibit / ClippinExtension.kt
Created July 13, 2015 04:53
Clippin extension for Kotlin
/**
* Shortcut of the [Clippin.animate().target(view)].
*/
public fun View.clip(): ClippingAnimator = Clippin.animate().target(this)
// call example
val view = ... // create view
view.clip().circleCenter(Clippin.CENTER_LEFT_BOTTOM)
.duration(600)
.show {
@droibit
droibit / ArrayAdapterExt.kt
Last active March 5, 2018 04:55
ArrayAdapter<T>内の全Itemを取得するための拡張メソッド
// ArrayAdapter.getItems() with iterator
public class ArrayAdapterIterator<T>(val adapter: ArrayAdapter<T>) {
private var index = 0
fun next() = adapter.getItem(index++)
fun hasNext() = index < adapter.getCount()
}
public fun <T>ArrayAdapter<T>.iterator(): ArrayAdapterIterator<T> = ArrayAdapterIterator(this)
@droibit
droibit / PauseHandler.kt
Last active August 29, 2015 14:17
レジューム時に処理をフックするためのハンドラ
package com.droibit.utils
import android.os.Handler
import android.os.Message
import java.util.*
/**
* ActivityもしくはFragmentのレジューム時に処理をフックするためのハンドラ。
*
* 参考: