Skip to content

Instantly share code, notes, and snippets.

View XavierTalpe's full-sized avatar

Xavier XavierTalpe

View GitHub Profile
@XavierTalpe
XavierTalpe / DateUtil.java
Created July 7, 2013 13:00
Demonstrates how to encode and decode datetime strings in ISO format, such that they can be stored in a SQL database.
public final class DateUtil {
private DateUtil() {
}
public static String toIsoString( Date aDate ) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ssZ" );
return simpleDateFormat.format( aDate );
}
@XavierTalpe
XavierTalpe / LruCache.java
Created July 7, 2013 12:52
Hash-map that can be used as a LRU cache.
public final class LruCache<K, V> extends LinkedHashMap<K, V> {
private final int fSize;
public LruCache( int aSize ) {
super( aSize + 1, 1.0f, true );
fSize = aSize;
}
@XavierTalpe
XavierTalpe / MyActivity.java
Last active December 17, 2015 12:49
Programmatically assigning a priority for BroadcastReceivers.
public class MyActivity extends Activity {
private BroadcastReceiver myBroadcastReceiver;
@Override
public void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
// Or programmatically asign a priority.
myBroadcastReceiver = new MyBroadcastReceiver();
@XavierTalpe
XavierTalpe / AndroidManifest.xml
Last active December 17, 2015 12:49
Intercepting broadcasts to other applications in Android.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application>
<receiver android:name=".SmsReceivedBroadcastReceiver">
<!-- A high priority makes sure our BroadCastReceiver is called first. -->
<intent-filter android:priority="999">
@XavierTalpe
XavierTalpe / 51-android.rules
Created May 9, 2013 19:50
A udev rules file to support all available Android devices on Ubuntu.
SUBSYSTEM=="usb", SYSFS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0B05", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="413c", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0489", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="04c5", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="091E", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="109b", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", MODE="0666"
@XavierTalpe
XavierTalpe / build.gradle
Created March 14, 2013 03:17
Bugfix for copying assets using v0.3 of the Android Gradle build system. This allows assets to be recursively copied into the APK.
task copyAssetsRec {
description 'Temporary fix to recursively add folders and files from assets. Remove in v0.4.'
ext.assetsSrcDir = file( "${projectDir}/src/main/assets" )
ext.assetsBuildDir = file( "${buildDir}/assets" )
inputs.dir assetsSrcDir
outputs.dir assetsBuildDir
doLast {
@XavierTalpe
XavierTalpe / Math.java
Created November 5, 2012 21:22
2D rotation around a point
double cosAlpha = Math.cos( angle );
double sinAlpha = Math.sin( angle );
double dX = x - originX;
double dY = y - originY;
double x = originX + cosAlpha * dX - sinAlpha * dY;
double y = originY + sinAlpha * dX + cosAlpha * dY;
@XavierTalpe
XavierTalpe / CompositeAdapter.java
Created September 22, 2012 08:49
Composite adapter class for Android
public final class CompositeAdapter<T> extends BaseAdapter {
private final List<T> fHeadings;
private final List<ListAdapter> fAdapters;
private int[] fLookupTable;
private final DataSetObserver fChildObserver;
private final Object fLock;