Skip to content

Instantly share code, notes, and snippets.

View esabook's full-sized avatar
🛰️
Seeking planet

esabook

🛰️
Seeking planet
View GitHub Profile
@esabook
esabook / __Utils.java
Created May 14, 2019 03:49
Get color contrast
/**
* TODO: modify function for get color contrast based on `background color` and `foreground color` (not black or white only)
* based on sensitive eyes (Y of YIQ) {@linkplain "https://en.wikipedia.org/wiki/YIQ"}
*/
public static int getContrastColor(int color) {
@SuppressLint("Range")
double y = (299 * Color.red(color) + 587 * Color.green(color) + 114 * Color.blue(color)) / 1000;
return y >= 178 || color == Color.TRANSPARENT ? Color.rgb(130, 130, 130) : Color.WHITE;
}
@esabook
esabook / __Utils.java
Created May 14, 2019 03:51
decimal formatter
/**
* Decimal Localization Format, like #,###.## for US or #.###,## for ID
*
* @param Numobj
* @return
*/
//TODO: change to automatic localization detection
public static String DecimalFormater(Object Numobj) {
Object obj = String.valueOf(Numobj).matches("-?\\d+(\\.\\d+)?") ? Numobj : 0.00;
@esabook
esabook / __Utils.java
Created May 14, 2019 03:52
get localized date
/**
* @param date
* @return
*/
public static Date getLocalizedDate(Date date) {
try {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.MILLISECOND, TimeZone.getDefault().getRawOffset());
@esabook
esabook / __Utils.java
Created May 14, 2019 03:53
get bitmap from android view
/**
* get {@link Bitmap} object from {@link View}
*
* @param view
* @return
*/
public Bitmap getBitmapFromView(View view) {
//Define a bitmap with the same size as the view
Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
//Bind a canvas to it
@esabook
esabook / __Utils.java
Created May 14, 2019 03:53
hide soft keyboard
/**
* @param v
*/
public static void hideKeyboard(View v) {
if (v == null || v.getContext() == null) return;
InputMethodManager imm = (InputMethodManager)
v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null && imm.isAcceptingText()) {
imm.hideSoftInputFromWindow(v.getRootView().getWindowToken(), 0);
@esabook
esabook / __UpdateListener.java
Last active February 8, 2020 07:47
app center update listener
package ***.utils;
import android.app.Activity;
import android.support.v7.app.AlertDialog;
import com.microsoft.appcenter.distribute.Distribute;
import com.microsoft.appcenter.distribute.DistributeListener;
import com.microsoft.appcenter.distribute.ReleaseDetails;
import com.microsoft.appcenter.distribute.UpdateAction;
import ***.BuildConfig;
@esabook
esabook / __LocationProvider.java
Last active February 8, 2020 07:47
GPS location init for android
package ***.utils;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Criteria;
@esabook
esabook / __DeviceInfo.java
Last active February 8, 2020 07:46
device info reader
package ***.utils;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
@esabook
esabook / __ConnectionEvent.java
Last active February 8, 2020 07:46
connection listener for okhttp-retrofit
package ***.utils;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@esabook
esabook / __DataFactory.java
Last active February 8, 2020 07:46
retrofit service builder
package ***.__data;
import android.os.Handler;
import android.os.Looper;
import com.google.gson.GsonBuilder;
import ***.R;
import ***.utils.Contents;
import ***.utils.__ConnectionEvent;
import ***.utils.__GlobalApp;