Skip to content

Instantly share code, notes, and snippets.

@twocity
twocity / shise
Created September 18, 2014 09:09
var s2t = function(str) {
var _str = '';
var po;
for(var i=0; i < str.length; i++) {
if((po = sMap.indexOf(str.charAt(i))) != -1)
_str += tMap.charAt(po);
else
_str += str.charAt(i);
}
return _str;
@twocity
twocity / UiHandler
Created April 2, 2014 14:43
A thin wrapper of {@link Handler} to run a callback in UI thread,copy of UnifiledEmail
/*
* Copyright (C) 2012 Google Inc.
* Licensed to 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
*
@twocity
twocity / ApiApplication.java
Created February 25, 2014 07:42
usage of ricebook api client
package com.ricebook.app.api;
import com.ricebook.app.api.utils.OkClientFactory;
import com.ricebook.app.api.utils.RestAdapterFactory;
import android.app.Application;
import retrofit.RestAdapter;
/**
@twocity
twocity / build.gradle
Last active December 11, 2021 09:13
android gradle change output apk file name.
android.applicationVariants.all { variant ->
println "*********" + variant.description + "**********";
def variants = variant.baseName.split("-");
def apkName = "ricebook-";
apkName += variants[0];
apkName += "-v" + android.defaultConfig.versionName;
if (!variant.zipAlign) {
apkName += "-unaligned";
}
if (variant.buildType.name == "release") {
@twocity
twocity / build.gradle
Created December 17, 2013 08:00
gradle ndk build
/////////////
// NDK Support
//////////////
// If using this, Android studio will fail run the following to set the environment variable for android studio:
// export ANDROID_NDK_HOME=/Android/android-ndk-r8e (Linux)
// launchctl setenv ANDROID_NDK_HOME /Android/android-ndk-r8e (Mac)
// or, better, add the export to the .profile of your user home and re-login
task copyNativeLibs(type: Copy, dependsOn: 'buildNative') {
from(new File('src/main/libs')) { include '**/*.so' }
into new File(buildDir, 'native-libs')
public class RoundedDrawable extends Drawable {
private static final boolean USE_VIGNETTE = true;
private RectF mRect = new RectF();
private final Paint paint;
private final int mRadius;
private final BitmapShader bitmapShader;
public RoundedDrawable(Bitmap bitmap, int radius) {
bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
paint = new Paint();
@twocity
twocity / AsyncTaskUtil.java
Created November 4, 2013 05:08
an asynctask helper
/*
* Copyright (C) 2012 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
*
* Unless required by applicable law or agreed to in writing, software
@twocity
twocity / gist:7297924
Last active December 27, 2015 08:39
android gallery3d source snap
public static String getLocalizedName(Resources res, int bucketId,
String name) {
if (bucketId == MediaSetUtils.CAMERA_BUCKET_ID) {
return res.getString(R.string.folder_camera);
} else if (bucketId == MediaSetUtils.DOWNLOAD_BUCKET_ID) {
return res.getString(R.string.folder_download);
} else if (bucketId == MediaSetUtils.IMPORTED_BUCKET_ID) {
return res.getString(R.string.folder_imported);
} else if (bucketId == MediaSetUtils.SNAPSHOT_BUCKET_ID) {
return res.getString(R.string.folder_screenshot);
/**
* A {@link HttpRequest.ConnectionFactory connection factory} which uses OkHttp.
* <p/>
* Call {@link HttpRequest#setConnectionFactory(HttpRequest.ConnectionFactory)} with an instance of
* this class to enable.
*/
public class OkConnectionFactory implements HttpRequest.ConnectionFactory {
private final OkHttpClient client;
public OkConnectionFactory() {
@twocity
twocity / LoadMoreListView.java
Created July 19, 2013 15:53
auto loadmore listview
public class LoadMoreListView extends ListView implements OnScrollListener {
private static final String TAG = "LoadMoreListView";
/**
* Listener that will receive notifications every time the list scrolls.
*/
private OnScrollListener mOnScrollListener;
private LayoutInflater mInflater;