Skip to content

Instantly share code, notes, and snippets.

Fung LAM seventhmoon

Block or report user

Report or block seventhmoon

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View cuhk_campus_map_data.json
{
campus : [
{"id":"1", "campus_en":"Central Campus", "campus_xb5":"中央校園", "shortname":"", "color":"", "lat_lng":"(22.41938957865346, 114.20692563056946)", "contains_landmarks":"True"},
{"id":"2", "campus_en":"Chung Chi College", "campus_xb5":"崇基學院", "shortname":"cc", "color":"", "lat_lng":"(22.415214072123707, 114.2094898223877)", "contains_landmarks":"True"},
{"id":"3", "campus_en":"New Asia College", "campus_xb5":"新亞書院", "shortname":"na", "color":"", "lat_lng":"(22.42137810711142, 114.20880317687988)", "contains_landmarks":"True"},
{"id":"4", "campus_en":"United College", "campus_xb5":"聯合書院", "shortname":"uc", "color":"", "lat_lng":"(22.421417778212405, 114.20525193214417)", "contains_landmarks":"True"},
{"id":"5", "campus_en":"Shaw College", "campus_xb5":"逸夫書院", "shortname":"sc", "color":"", "lat_lng":"(22.42287320389422, 114.20157998800278)", "contains_landmarks":"True"},
{"id":"6", "campus_en":"Residential Area", "campus_xb5":"宿舍", "shortname":"", "color":"", "lat_lng":"", "contains_landmarks":"False"},
@seventhmoon
seventhmoon / GsonRequest.java
Last active Aug 29, 2015
GsonRequest for Volley
View GsonRequest.java
import java.io.UnsupportedEncodingException;
import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import com.android.volley.toolbox.JsonRequest;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
View TimeHelper.java
public class TimeHelper{
public static final SimpleDateFormat HMS_DATE_FORMAT = new SimpleDateFormat("hh:mm:ss");
public static long toMillis(int hour, int minute, int second){
return toSeconds(hour, minute, second) * 1000;
}
public static long toSeconds(int hour, int minute, int second){
return (hour * 3600 + minute * 60 + second);
}
@seventhmoon
seventhmoon / calcDist.java
Last active Aug 29, 2015
Convert LatLong to Meter
View calcDist.java
private double calcDist(double lat1, double lng1, double lat2, double lng2) {
double earthRadius = 3958.75;
double lat = Math.toRadians(lat2 - lat1);
double lng = Math.toRadians(lng2 - lng1);
double a = Math.sin(lat / 2) * Math.sin(lat / 2)
+ Math.cos(Math.toRadians(lat1))
* Math.cos(Math.toRadians(lat2)) * Math.sin(lng / 2)
* Math.sin(lng / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double dist = earthRadius * c;
View ViewPagerActivity.java
//implement ViewPager.SimpleOnPageChangeListener(), override the following method
public void onPageScrollStateChanged(int state) {
if (state == ViewPager2.SCROLL_STATE_IDLE) {
int curr = mViewPager.getCurrentItem();
int lastReal = mViewPager.getAdapter().getCount() - 2;
if (curr == 0) {
mViewPager.setCurrentItem(lastReal, false);
} else if (curr > lastReal) {
mViewPager.setCurrentItem(1, false);
}
@seventhmoon
seventhmoon / DefaultApplication.java
Last active Aug 29, 2015
Detect UI mode is TV or not
View DefaultApplication.java
import android.app.Application;
import android.app.UiModeManager;
import android.content.res.Configuration;
/**
* Created by fung.lam on 27/07/2015.
*/
public class DefaultApplication extends Application {
private boolean isRunningOnTv(){
View gist:1e2cd5fd098cc88b8ae1
Glide.with(this)
.load(url)
.asBitmap().diskCacheStrategy(DiskCacheStrategy.ALL).centerCrop()
.into(new BitmapImageViewTarget(mImageViewBackdrop) {
@Override
public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {
super.onResourceReady(bitmap, anim);
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
@seventhmoon
seventhmoon / GsonRequest.java
Last active Sep 10, 2015
GsonRequest for Volley
View GsonRequest.java
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.JsonRequest;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@seventhmoon
seventhmoon / AspectRatioImageView.java
Created Oct 27, 2015 — forked from JakeWharton/AspectRatioImageView.java
ImageView that respects an aspect ratio applied to a specific measurement.
View AspectRatioImageView.java
// Copyright 2012 Square, Inc.
package com.squareup.widgets;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.widget.ImageView;
/** Maintains an aspect ratio based on either width or height. Disabled by default. */
public class AspectRatioImageView extends ImageView {
@seventhmoon
seventhmoon / OkHttpStack.java
Created Dec 23, 2015
OkHttpStack for Volley
View OkHttpStack.java
import com.android.volley.toolbox.HurlStack;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.OkUrlFactory;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* An {@link com.android.volley.toolbox.HttpStack HttpStack} implementation which
You can’t perform that action at this time.