Skip to content

Instantly share code, notes, and snippets.

@VAdaihiep
VAdaihiep / AutoUpdateLocationService.java
Last active November 12, 2020 11:15
Tracking current location in background in interval. User google play service version 6.1.71. Use with newer google play service will be updated soon. Usage: context.startService(new Intent(context, AutoUpdateLocationService.class)); to start tracking. context.stopService(new Intent(context, AutoUpdateLocationService.class)); to stop tracking.
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesClient;
import com.google.android.gms.common.GooglePlayServicesUtil;
@VAdaihiep
VAdaihiep / GMapV2Direction.java
Created January 14, 2015 08:02
Draw route and get other information like instruction, duration, distance,... async. Add loopj android http async to use this gist. Usage: gmapV2Direction.drawRoute(...., new OnDrawedRouteListener(){...});
import android.text.Html;
import android.util.Log;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.PolylineOptions;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.TextHttpResponseHandler;
import org.apache.http.Header;
@VAdaihiep
VAdaihiep / CursorToArrayListObject
Created January 19, 2015 11:16
Convert Cursor to ArrayList object
/**
* convert from cursor to arraylist of object
*
* @param <E>
*
* @param cursor
* @param class
* @return object
*/
public static <E> ArrayList<E> cursorToArrayListObject(Cursor cursor,
@VAdaihiep
VAdaihiep / SnappingRecyclerView.java
Created October 29, 2015 08:26
SnappingRecyclerView horizontal in simplest way. Original version: http://stackoverflow.com/a/29171652/1393920
package vn.mog.mygimi.home;
import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
public final class SnappingRecyclerView extends RecyclerView {
@VAdaihiep
VAdaihiep / MyListFragment.java
Created November 6, 2015 03:19
Keep state (data) in Fragment when replace fragment and go back
package vn.vadaihiep.keepstatefragment;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
@VAdaihiep
VAdaihiep / MyLog.java
Created November 11, 2015 04:37
Log auto turn off when build release
import android.util.Log;
import vn.mog.mygimi.BuildConfig;
/**
* Created by VAdaihiep on 11/11/2015.
*/
public class MyLog {
public static String DEFAULT_TAG = "VAdaihiep";
@VAdaihiep
VAdaihiep / TimeAgo.java
Created March 17, 2016 07:22
Calculate and return time ago
import java.util.Date;
import android.content.res.Resources;
public class TimeAgo {
public static String timeAgo(Date date) {
return timeAgo(date.getTime());
}
@VAdaihiep
VAdaihiep / OneSignalRestClient.java
Created March 18, 2016 04:04
Demo Custom Http Client from OneSignal SDK Android
/**
* Modified MIT License
*
* Copyright 2015 OneSignal
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
@VAdaihiep
VAdaihiep / PhoneNumberEditText.java
Created March 22, 2016 03:54
EditText auto add space when input phone number (phone number in Vietnam). Example: 01234567890 -> 0123 456 7890
import android.content.Context;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.method.DigitsKeyListener;
import android.util.AttributeSet;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
@VAdaihiep
VAdaihiep / LoadMoreListView.java
Last active March 29, 2016 14:15
Load more (paging) ListView in simplest way
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.HeaderViewListAdapter;
import android.widget.ListView;
public class LoadMoreListView extends ListView implements AbsListView.OnScrollListener {
private OnLoadMorListener onLoadMorListener;