Skip to content

Instantly share code, notes, and snippets.

@Piasy
Piasy / DeepCopy.java
Created February 20, 2016 00:25
Java Immutable Blog
List<Integer> list1 = new ArrayList<>();
list1.add(1);
List<Integer> list2 = new ArrayList<>(list1);
list1.add(2);
for (ResolvedDependency dependency :
project.configurations.getByName("compile").resolvedConfiguration.firstLevelModuleDependencies) {
// dependency是gradle api定义的依赖,可以获取moduleGroup,moduleName,moduleVersion信息,
// 包括maven依赖、本地子module依赖,间接依赖在dependency.children中,
// 而这个依赖的本地文件则在dependency.moduleArtifacts中
}
private static final String TAG = "RxScreenshotDetector";
private static final String EXTERNAL_CONTENT_URI_MATCHER =
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.toString();
private static final String[] PROJECTION = new String[] {
MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.DATA,
MediaStore.Images.Media.DATE_ADDED
};
private static final String SORT_ORDER = MediaStore.Images.Media.DATE_ADDED + " DESC";
private static final long DEFAULT_DETECT_WINDOW_SECONDS = 10;
static Observable<Integer> detect(Observable<Void> clicks, final long maxIntervalMillis,
final int minComboTimesCared) {
return clicks.map(new Func1<Void, Integer>() {
@Override
public Integer call(Void aVoid) {
return 1;
}
}).timestamp()
.scan(new Func2<Timestamped<Integer>, Timestamped<Integer>, Timestamped<Integer>>() {
@Piasy
Piasy / SplashActivityV1.java
Last active October 1, 2015 16:47
App launch accelerate source code
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mFragmentManager = getSupportFragmentManager();
mFragmentManager.beginTransaction()
.add(android.R.id.content, new SplashFragment(), SPLASH_FRAGMENT)
.commit();
Observable.create(subscriber -> {
Timber.plant(new Timber.DebugTree());
@Piasy
Piasy / jacoco.gradle
Created August 23, 2015 08:41
Android Gradle build script that create jacocoReport task for all sub projects, with some customization
/**
* List of modules that don't require Jacoco
*/
def ignoredByJacoco = [
'presentation'
]
/**
* module class dirs
* */
@Piasy
Piasy / Inner.java
Created August 21, 2015 17:13
An attempt to make it work when AutoParcel && AutoGson comes with Generic field that also annotated with AutoParcel
package com.github.piasy.model.entities;
import android.support.annotation.NonNull;
import auto.parcel.AutoParcel;
import com.github.piasy.common.utils.model.AutoGson;
/**
* Created by Piasy{github.com/Piasy} on 15/8/21.
*/
@AutoParcel
@Piasy
Piasy / AutoGenTypeAdapterFactory.java
Last active August 29, 2015 14:27 — forked from JakeWharton/AutoGson.java
A Gson TypeAdapterFactory which allows serialization of @autovalue types. Apache 2 licensed.
import com.google.gson.Gson;
import com.google.gson.TypeAdapter;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
public final class AutoGenTypeAdapterFactory implements TypeAdapterFactory {
@SuppressWarnings("unchecked")
@Override
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
package com.younglive.livestreaming.utils.view;
/*
* Author: Felipe Herranz (felhr85@gmail.com)
* Contributors:Francesco Verheye (verheye.francesco@gmail.com)
* Israel Dominguez (dominguez.israel@gmail.com)
*/
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
public abstract class HeaderFooterRecyclerViewAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<VH> {
private static final int VIEW_TYPE_MAX_COUNT = 1000;
private static final int HEADER_VIEW_TYPE_OFFSET = 0;
private static final int FOOTER_VIEW_TYPE_OFFSET = HEADER_VIEW_TYPE_OFFSET + VIEW_TYPE_MAX_COUNT;
private static final int CONTENT_VIEW_TYPE_OFFSET = FOOTER_VIEW_TYPE_OFFSET + VIEW_TYPE_MAX_COUNT;