Skip to content

Instantly share code, notes, and snippets.

View djensen47's full-sized avatar

Dave Jensen djensen47

View GitHub Profile
@ljubisa987
ljubisa987 / gist:e33cd5597da07172c55d
Last active July 26, 2021 18:02
TextInputLayout temporary workaround for hint not showing on initial load for SDK > 20
import android.content.Context;
import android.graphics.Canvas;
import android.support.design.widget.TextInputLayout;
import android.support.v4.view.ViewCompat;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
public class CustomTextInputLayout extends TextInputLayout {
@mikea
mikea / gist:6493bdccad356297d471
Last active September 13, 2015 23:19
LazyGroupBy for RxJava
public static <K, T> Observable.Transformer<T, Pair<K, Observable<T>>> lazyGroupBy(
final Func1<? super T, ? extends K> keySelector) {
return new Observable.Transformer<T, Pair<K, Observable<T>>>() {
@Override
public Observable<Pair<K, Observable<T>>> call(Observable<T> observable) {
return Observable.create(s -> {
Map<K, Subscriber<? super T>> children = new HashMap<>();
Multimap<K, T> buffer = ArrayListMultimap.create();
Set<K> createdObservers = new HashSet<>();
@alexsinger
alexsinger / build.gradle
Last active July 10, 2019 04:42
Separate Crashlytics reporting for debug and release buildTypes using a Gradle build
// The following code allows an app to report Crashlytics crashes separately
// for release and debug buildTypes when using Gradle. This code should be inserted
// into the specified locations within your build.gradle (Module:app) file
// The buildTypes { } block should be inserted inside the android { } block
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ext.crashlyticsApiSecret = "release api secret"
@dustin-graham
dustin-graham / ApiService.java
Created February 15, 2015 06:17
Infinite Scrolling Android RecyclerView with RxJava
public static Observable<List<String>> paginatedThings(final Observable<Void> onNextObservable) {
return Observable.create(new Observable.OnSubscribe<List<String>>() {
@Override
public void call(final Subscriber<? super List<String>> subscriber) {
onNextObservable.subscribe(new Observer<Void>() {
int latestPage = -1;
@Override
public void onCompleted() {
subscriber.onCompleted();
@mislavs
mislavs / BooksAdapter
Created October 29, 2014 19:58
RecyclerView.Adapter implementation for displaying a list of Book objects.
package com.msvs.bookshelf.adapters;
import android.os.Handler;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
@tyvsmith
tyvsmith / App.java
Last active August 29, 2015 14:04
Android ListAdapter using custom ViewGroup over ViewHolder pattern
package com.example.app;
public class App {
public String id;
public String name;
public String icon_url;
@Override
public String toString() {
return name;
@chrisbanes
chrisbanes / FloatLabelLayout.java
Last active September 4, 2024 05:58
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
@wbroek
wbroek / genymotionwithplay.txt
Last active February 13, 2025 09:37
Genymotion with Google Play Services for ARM
NOTE: Easier way is the X86 way, described on https://www.genymotion.com/help/desktop/faq/#google-play-services
Download the following ZIPs:
ARM Translation Installer v1.1 (http://www.mirrorcreator.com/files/0ZIO8PME/Genymotion-ARM-Translation_v1.1.zip_links)
Download the correct GApps for your Android version:
Google Apps for Android 6.0 (https://www.androidfilehost.com/?fid=24052804347835438 - benzo-gapps-M-20151011-signed-chroma-r3.zip)
Google Apps for Android 5.1 (https://www.androidfilehost.com/?fid=96042739161891406 - gapps-L-4-21-15.zip)
Google Apps for Android 5.0 (https://www.androidfilehost.com/?fid=95784891001614559 - gapps-lp-20141109-signed.zip)
@pbojinov
pbojinov / README.md
Last active January 31, 2025 05:04
Two way iframe communication- Check out working example here: http://pbojinov.github.io/iframe-communication/

Two way iframe communication

The main difference between the two pages is the method of sending messages. Recieving messages is the same in both.

Parent

Send messages to iframe using iframeEl.contentWindow.postMessage Recieve messages using window.addEventListener('message')

iframe

@domenic
domenic / after-thrawn.md
Last active November 28, 2023 20:06
What next after the Thrawn Trilogy?

What to Read After The Thrawn Trilogy?

The first post-Return of the Jedi book series anyone should read is The Thrawn Trilogy: namely Heir to the Empire, Dark Force Rising, and The Last Command, all by Timothy Zahn. They are an excellent introduction to the "New Republic era" of the Star Wars Expanded Universe (EU), and notably they were the first books written in real-world time to explore this era.

But after that, what should you read?

Background: The Eras of the Expanded Universe

First, be aware that the post-Return of the Jedi EU is broken up into three main eras: