Skip to content

Instantly share code, notes, and snippets.

@stefanrusek
stefanrusek / Fix for android v4.2.2
Created November 8, 2014 03:37
This is a work around for the appcompat v21 on android 4.2.2.
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
menu = new MenuWrapper(menu) {
private MenuItem fix(MenuItem item) {
try {
Field f = item.getClass().getDeclaredField("mEmulateProviderVisibilityOverride");
f.setAccessible(true);
@dlew
dlew / themes-debug.xml
Last active January 20, 2025 16:07
With the new theming in AppCompat, a lot of assets are tinted automatically for you via theme attributes. That has often led me to wonder "where the hell did this color come from?" You can replace your normal theme with this debug theme to help figure out the source of that color.
<!-- You can change the parent around to whatever you normally use -->
<style name="DebugColors" parent="Theme.AppCompat">
<!-- System colors -->
<item name="android:windowBackground">@color/__debugWindowBackground</item>
<item name="android:colorPressedHighlight">#FF4400</item>
<item name="android:colorLongPressedHighlight">#FF0044</item>
<item name="android:colorFocusedHighlight">#44FF00</item>
<item name="android:colorActivatedHighlight">#00FF44</item>
@meoyawn
meoyawn / EmptyRecyclerView.java
Created November 1, 2014 11:20
RecyclerView doesn't have an emptyView support, we gotta fix that
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.util.AttributeSet;
import android.view.View;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class EmptyRecyclerView extends RecyclerView {
@Nullable View emptyView;
@realdadfish
realdadfish / ViewMatchers.java
Created October 29, 2014 07:44
Workaround for Espresso / Android Test Kit to "support" RecyclerView matching.
public class ViewMatchers
{
@SuppressWarnings("unchecked")
public static Matcher<View> withRecyclerView(@IdRes int viewId)
{
return allOf(isAssignableFrom(RecyclerView.class), withId(viewId));
}
@SuppressWarnings("unchecked")
public static ViewInteraction onRecyclerItemView(@IdRes int identifyingView, Matcher<View> identifyingMatcher, Matcher<View> childMatcher)
@chris95x8
chris95x8 / build.gradle
Created October 28, 2014 14:00
Extended toolbar with two floating-label edit texts. The layout was made according to this image from the Material Design guidelines: http://i.imgur.com/x8QsuxU.png The layout below looks like this: http://i.imgur.com/8sOTv7h.png
dependencies {
compile 'com.android.support:appcompat-v7:21.+'
compile 'com.wrapp.floatlabelededittext:library:0.0.5'
}
@alexjlockwood
alexjlockwood / ActivityTransitionCoordinator.java
Last active August 29, 2015 14:08
ActivityTransitionCoordinator.java
package android.app;
import android.content.Context;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Bundle;
import android.os.Handler;
import android.os.Parcelable;
import android.os.ResultReceiver;
@hamidp
hamidp / ContinueWithIfEmptyOperator.java
Created October 13, 2014 18:04
ContinueWithIfEmpty operator
package com.trello.core.rx;
import rx.Observable;
import rx.Subscriber;
/**
* Passes control to another Observable if the source observable does not emit any items.
*
* Handy if you've a CacheObservable that does a cheap lookup and a DoHardWorkObservable that does the
* hard work and you want to only do the hard work if CacheObservable is empty.
private ObjectAnimator animateRegularProgress(int finalProgress) {
ObjectAnimator animation = ObjectAnimator.ofInt(regularProgressBar, PROPERTY_NAME, 0, finalProgress);
animation.setDuration(ANIM_PROGRESS);
animation.setInterpolator(new LinearInterpolator());
return animation;
}
private void animateTextProgress(float end, float total, ObjectAnimator barAnimationToCoupleTo) {
@trxcllnt
trxcllnt / expandRecursive.js
Created October 3, 2014 08:07
Ix/Rx expandRecursive is a depth-first recursive expansion on the sequences.
var Ix = require('ix'),
Rx = require('rx'),
Enumerable = Ix.Enumerable,
Enumerator = Ix.Enumerator,
Observable = Rx.Observable;
Observable.permute = function(root, hasPermutation, resultSelector) {
return Observable
.returnValue({ value: root, depth: -1 })
.expandRecursive(function(wrapper) {
apply plugin: "sonar-runner"
sonarRunner {
sonarProperties {
// connectivity
property "sonar.host.url", "http://your.server/sonar"
property "sonar.jdbc.url", "jdbc:mysql://..."
property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
property "sonar.jdbc.username", "..."
// project configuration