Skip to content

Instantly share code, notes, and snippets.

View johnwatsondev's full-sized avatar
😐

JohnWatsonDev johnwatsondev

😐
  • 工厂
  • Hangzhou
View GitHub Profile
@johnwatsondev
johnwatsondev / material.sh
Created April 6, 2016 07:27 — forked from ahmedre/material.sh
material design icon download helper
#! /bin/bash
# a shell script to make it easier to download images from google's
# material design icons project.
#
# usage:
# sh ~/material.sh -f ic_pause.png https://github.com/google/material-design-icons/blob/master/av/drawable-xxhdpi/ic_pause_white_24dp.png
# by default, it outputs to app/src/main/res/drawable-* in the current
# directory, but you can override with -o.
#
@johnwatsondev
johnwatsondev / DatabaseHelper.java
Created April 6, 2016 07:54
Upgrade/downgrade database without deleting all data from database.
private class DatabaseHelper extends SQLiteOpenHelper {
private static final int FIELD_TYPE_NULL = 0;
private static final int FIELD_TYPE_INTEGER = 1;
private static final int FIELD_TYPE_FLOAT = 2;
private static final int FIELD_TYPE_STRING = 3;
public class ColoredSnackBar {
private static final int red = 0xfff44336;
private static final int green = 0xff4caf50;
private static final int blue = 0xff2195f3;
private static final int orange = 0xffffc107;
private static View getSnackBarLayout(Snackbar snackbar) {
if (snackbar != null) {
@johnwatsondev
johnwatsondev / uninstall.sh
Created October 25, 2016 07:20 — forked from klarstil/uninstall.sh
Uninstall git on Mac OS X
#!/bin/bash
if [ ! -r "/usr/local/git" ]; then
echo "Git doesn't appear to be installed via this installer. Aborting"
exit 1
fi
echo "This will uninstall git by removing /usr/local/git/**/*, /etc/paths.d/git, /etc/manpaths.d/git"
printf "Type 'yes' if you sure you wish to continue: "
read response
if [ "$response" == "yes" ]; then
sudo rm -rf /usr/local/git/
@johnwatsondev
johnwatsondev / README.md
Created November 21, 2016 10:22 — forked from hofmannsven/README.md
My simply Git Cheatsheet
@johnwatsondev
johnwatsondev / xcode-downloader.rb
Created May 2, 2017 04:13 — forked from iandundas/xcode-downloader.rb
Script for reliably downloading binaries (e.g. Xcode) from Apple's CDN
#!/usr/bin/env ruby
print "What is the URL of your Apple Downloads resource?\nURL:"
url = gets.strip
print "What is the ADCDownloadAuth cookie token:\nADCDownloadAuth: "
token = gets.strip
command = "aria2c --header \"Host: adcdownload.apple.com\" --header \"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\" --header \"Upgrade-Insecure-Requests: 1\" --header \"Cookie: ADCDownloadAuth=#{token}\" --header \"User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_1 like Mac OS X) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0 Mobile/14B72 Safari/602.1\" --header \"Accept-Language: en-us\" -x 16 -s 16 #{url} -d ~/Downloads"
@johnwatsondev
johnwatsondev / ReactNativeJson.java
Created June 19, 2017 14:31 — forked from viperwarp/ReactNativeJson.java
React-Native Module, ReadableMap/Array to Java JSON objects
private static WritableMap convertJsonToMap(JSONObject jsonObject) throws JSONException {
WritableMap map = new WritableNativeMap();
Iterator<String> iterator = jsonObject.keys();
while (iterator.hasNext()) {
String key = iterator.next();
Object value = jsonObject.get(key);
if (value instanceof JSONObject) {
map.putMap(key, convertJsonToMap((JSONObject) value));
} else if (value instanceof JSONArray) {
@johnwatsondev
johnwatsondev / SpanningLinearLayoutManager.java
Created December 26, 2017 14:10 — forked from janheinrichmerker/LICENSE
LinearLayoutManager implementation that stretches to fit all list items on screen and disables scrolling. Useful for dashboards etc.
package de.wilhelmgym.quiz.recyclerview;
import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.view.ViewGroup;
public class SpanningLinearLayoutManager extends LinearLayoutManager {
@johnwatsondev
johnwatsondev / SpanningGridLayoutManager.java
Created December 26, 2017 14:10 — forked from janheinrichmerker/SpanningGridLayoutManager.java
GridLayoutManager implementation that stretches to fit all grid items on screen and disables scrolling. Useful for dashboards etc.
package com.example;
import android.content.Context;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.view.ViewGroup;
public class SpanningGridLayoutManager extends GridLayoutManager {
@johnwatsondev
johnwatsondev / EqualSpacingItemDecoration.java
Created December 26, 2017 14:11 — forked from alexfu/EqualSpacingItemDecoration.java
Add equal spacing to RecyclerView items automatically. Can handle horizontal, vertical, and grid display modes
import android.graphics.Rect;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
public class EqualSpacingItemDecoration extends RecyclerView.ItemDecoration {
private final int spacing;
private int displayMode;
public static final int HORIZONTAL = 0;