Skip to content

Instantly share code, notes, and snippets.

@panpf
panpf / ViewModelBinder.kt
Last active June 9, 2018 13:17
Android arch ViewModel kotlin bind
@file:Suppress("RedundantVisibilityModifier")
package me.panpf.arch.ktx
import android.arch.lifecycle.ViewModel
import android.arch.lifecycle.ViewModelProviders
import android.support.v4.app.Fragment
import android.support.v4.app.FragmentActivity
import kotlin.properties.ReadOnlyProperty
import kotlin.reflect.KClass
@panpf
panpf / HanziToPinyin.java
Created May 26, 2018 00:49
从 Android 自带通讯录软件中提取的汉子转拼音工具类
package me.panpf.recycler.sticky.sample.util;
/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
@panpf
panpf / ListQuerier.java
Created March 1, 2018 06:09
Android List 查询器,可查询列表、统计个数、获取单个元素
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ListQuerier<Data> {
@panpf
panpf / NetworkState.java
Created March 1, 2018 04:54
Android 网络状态工具类
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
/**
* 判断网络状态的工具类,可一次性满足是否有网络以及什么网络类型
*/
@panpf
panpf / AESHelper.java
Last active June 30, 2023 07:58
AES 加解密
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Base64;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
@panpf
panpf / DESHelper.java
Last active September 28, 2017 09:46
DES 对称加解密
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Base64;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.InvalidKeySpecException;
@panpf
panpf / RSAHelper.java
Last active September 29, 2017 03:33
RSA 加密、解密、生成 KEY、签名、验证
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
@panpf
panpf / JsonUtils.java
Created July 20, 2017 03:20
解析Json工具类
package com.yingyonghui.market.util;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonSyntaxException;
import com.yingyonghui.market.net.SafeJsonArray;
import com.yingyonghui.market.net.SafeJsonObject;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.reflect.Type;
@panpf
panpf / FileUtils.java
Last active July 19, 2017 10:23
循环删除或清空目录
/**
* 循环删除目录
*/
public static boolean delete(File file) {
if (file == null || !file.exists()) {
return false;
}
if (file.isFile()) {
return file.delete();
@panpf
panpf / gist:5444871ffdb7f2a7cd9d26d27ea37df9
Created December 13, 2016 10:18
创建一个可以改变颜色的ColorFilter
/**
* 创建一个可以改变颜色的ColorFilter
* @param color 透明度是没有用的
* @return ColorMatrixColorFilter
*/
public static ColorMatrixColorFilter makeResetColorFilter(int color){
float mRed = Color.red(color);
float mGreen = Color.green(color);