Skip to content

Instantly share code, notes, and snippets.

@nhaarman
nhaarman / ktlint
Last active December 18, 2020 07:25
A Gradle wrapper-like ktlint wrapper
#!/bin/bash
ktlint_version="0.40.0"
########################################################################
# A wrapper for ktlint which automatically downloads and runs ktlint.
# ktlint executables will be installed under `build/ktlint`.
#
# Usage
#
# Download and run ktlint, passing arguments:
@alexfu
alexfu / avd_im_feeling_lucky.sh
Created August 16, 2019 14:03
Starts up a random AVD
#!/usr/bin/env bash
emulator=$ANDROID_HOME/tools/emulator
adb=$ANDROID_HOME/platform-tools/adb
EMULATOR_COUNT=$($emulator -list-avds | wc -l | cut -c 8)
RANDOM_INDEX=$(shuf -i 1-$EMULATOR_COUNT -n 1)
EMULATOR_NAME=$($emulator -list-avds | head -n $RANDOM_INDEX | tail -n 1)
printf "Starting $EMULATOR_NAME..."
sealed class Optional<out T: Any> {
abstract val isPresent: Boolean
}
object None : Optional<Nothing>() {
override val isPresent: Boolean = false
}
data class Some<T: Any>(val value: T) : Optional<T>() {
override val isPresent: Boolean = true
}
fun <T: Any> T?.asOptional(): Optional<T> = this?.let(::Some) ?: None
@slightfoot
slightfoot / TestActivity.java
Created August 30, 2014 19:41
Test for restoring view state in ViewPager. Because ViewPager does not populate the pages before first Layout and default view state restoration happens before layout.
package com.dd.test;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.StringRes;
@cbeyls
cbeyls / WindowInsetsFrameLayout.java
Last active February 5, 2020 10:58
A fragment container enabling the use of android:fitsSystemWindows in fragment layouts.
package be.digitalia.common.widgets;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.support.v4.util.ObjectsCompat;
import android.util.AttributeSet;
import android.view.View;
@chrisbanes
chrisbanes / FloatLabelLayout.java
Last active March 15, 2024 06:39
FloatLabelLayout
/*
* Copyright 2014 Chris Banes
*
* 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
@stuart-marks
stuart-marks / DynamicFiltering.java
Created April 8, 2014 00:12
Dynamic filtering using Java 8 streams.
import java.util.*;
import java.util.function.*;
import java.util.stream.*;
import static java.util.stream.Collectors.*;
import static java.util.Comparator.*;
/**
* http://stackoverflow.com/questions/22845574/how-to-dynamically-do-filtering-in-java-8
*
@nolanlawson
nolanlawson / completion-for-gradle.md
Last active April 5, 2024 07:43
Gradle tab completion for Bash. Works on both Mac and Linux.

Gradle tab completion script for Bash

A tab completion script that works for Bash. Relies on the BSD md5 command on Mac and md5sum on Linux, so as long as you have one of those two commands, this should work.

Usage

$ gradle [TAB]
@romannurik
romannurik / SwipeDismissListViewTouchListener.java
Last active May 1, 2021 10:16
**BETA** Android 4.0-style "Swipe to Dismiss" sample code
Moved to
https://github.com/romannurik/android-swipetodismiss

tmux cheatsheet

As configured in my dotfiles.

start new:

tmux

start new with session name: