Skip to content

Instantly share code, notes, and snippets.

View liangfeidotme's full-sized avatar

Fei Liang liangfeidotme

View GitHub Profile
data class Animal(val name: String)
val animals = listOf(Animal("cat"), Animal("dog"), Animal("wolf"))
fun main() {
println("Hello, world!!!")
println(animals.joinToString(",") { it.name })
}
@liangfeidotme
liangfeidotme / FileUtils.kt
Created January 24, 2019 09:23
Read the asset file into a String.
object FileUtils {
fun readAssetFileToString(context: Context, assetFileName: String)
= context.assets.open(assetFileName).bufferedReader().use { it.readText() }
}
@liangfeidotme
liangfeidotme / ArrayList.java
Created June 12, 2016 08:59
Create an array in declaration.
public static List<String> githubList = new ArrayList<String>() {{
add("linkedin");
add("tumblr");
add("square");
add("google");
add("stripe");
add("angular");
add("facebook");
add("rails");
}};
@liangfeidotme
liangfeidotme / AndroidHeapDumper.java
Created June 6, 2016 17:31
Dump Android hprof data
Debug.dumpHprofData(heapDumpFile.getAbsolutePath())
@liangfeidotme
liangfeidotme / AndroidHeapDumper.java
Created June 6, 2016 17:22
Customize an Android Toast
final Toast toast = new Toast(context);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
LayoutInflater inflater = LayoutInflater.from(context);
toast.setView(inflater.inflate(R.layout.leak_canary_heap_dump_toast, null));
toast.show();
@liangfeidotme
liangfeidotme / LeakCanary.java
Created June 6, 2016 16:08
Check whether android debugger is attached.
@Override public boolean isDebuggerAttached() {
return Debug.isDebuggerConnected();
}
@liangfeidotme
liangfeidotme / LeakCanary.java
Created June 6, 2016 16:05
Check whether the external storage is writable.
@Override
public boolean isLeakStorageWritable() {
if (!hasStoragePermission()) {
return false;
}
String state = Environment.getExternalStorageState();
return Environment.MEDIA_MOUNTED.equals(state);
}
@TargetApi(M)
@liangfeidotme
liangfeidotme / activity_include.xml
Last active April 15, 2019 13:08
Use Android Data Binding with include tag
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:bind="http://schemas.android.com/apk/res-auto">
<data>
<import type="com.liangfeizc.databindingsamples.basic.User" />
<variable
name="user"
type="User" />