Skip to content

Instantly share code, notes, and snippets.

@hvisser
hvisser / TestListFragment.java
Created October 30, 2012 08:23
ListFragment with custom header
package com.neenbedankt.listfragmentbug;
import android.annotation.TargetApi;
import android.app.ListFragment;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class TestListFragment extends ListFragment {
@hvisser
hvisser / TestListFragment.java
Created October 30, 2012 08:38
Fixed TestListFragment that won't crash on hitting the back key
package com.neenbedankt.listfragmentbug;
import android.annotation.TargetApi;
import android.app.ListFragment;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class TestListFragment extends ListFragment {
@hvisser
hvisser / gist:4504794
Created January 10, 2013 19:01
Android style lint check
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style android:name="MyStyle" parent="android:Theme.Light">
<!-- if the minSdk level is less then 11, then this should be a lint error, since android:actionBarStyle is since API 11,
unless this is in a -v11 (or better) resource folder -->
<item name="android:actionBarStyle">...</item>
</style>
</resources>
@hvisser
hvisser / layout.xml
Created July 24, 2013 15:58
Foreground selector maybe?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:addStatesFromChildren="true" // when any child has state_pressed, this container will also have!
android:orientation="vertical" android:background="@drawable/my_selector">
<ImageView android:clickable="true" .../>
<TextView android:clickable="true" .../>
</LinearLayout>
@hvisser
hvisser / TestStringArrayConverter.java
Last active February 20, 2017 00:40
Custom field converter example for Cupboard
package nl.qbusict.cupboard;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.test.AndroidTestCase;
import nl.qbusict.cupboard.convert.EntityConverter.ColumnType;
import nl.qbusict.cupboard.convert.FieldConverter;
@hvisser
hvisser / build.gradle
Created May 22, 2014 13:26
Snippet of a build.gradle that uses Gradle properties for key store passwords. I usually do not check in gradle.properties and on the CI machine the properties are provided using the -P switch.
apply plugin: 'android'
// use the standard Gradle version property, handy if you use plugins that also rely on this
version = "1.0"
ext {
// These properties are set in gradle.properties (not checked in to vcs) or using -P on the command line.
// If they are not set, provide a default otherwise the build won't run.
// Obviously, with the default password a release build will fail
keyStorePassword = ext.has("keyStorePassword") ? ext.keyStorePassword : "not-set"
public class StringArrayFieldConverter implements FieldConverter<String[]> {
@Override
public String[] fromCursorValue(Cursor cursor, int columnIndex) {
return cursor.getString(columnIndex).split(",");
}
@Override
public void toContentValue(String[] value, String key, ContentValues values) {
}
@hvisser
hvisser / proxy.py
Created July 11, 2014 12:22
Monkey runner script to set the proxy on Android from the "modify network" screen.
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import sys
import socket
import time
device = MonkeyRunner.waitForConnection()
host = socket.gethostbyname(socket.gethostname())
port = "8888"
if len(sys.argv) >= 2:
@hvisser
hvisser / Example.java
Created September 14, 2014 18:17
Another example of "embedding" entities in another Cupboard entity
// TypeToken is a Gson class
Type type = new TypeToken<List<Author>>(){}.getType();
GsonFieldConverterFactory factory = new GsonFieldConverterFactory(type);
// Register the factory and set the instance as the global Cupboard instance
CupboardFactory.setCupboard(new CupboardBuilder().registerFieldConverterFactory(factory).build());
@hvisser
hvisser / DemoModeEnabler.kt
Created January 23, 2018 11:44
Enables demo mode on a device for the purpose of taking screenshots
class DemoModeEnabler {
fun enable() {
executeShellCommand("settings put global sysui_demo_allowed 1")
sendCommand("exit")
sendCommand("enter")
sendCommand("notifications", "visible" to "false")
sendCommand("network", "wifi" to "hide")
sendCommand("battery", "level" to "100", "plugged" to "false")
sendCommand("clock", "hhmm" to "1000")