Skip to content

Instantly share code, notes, and snippets.

@cyrilmottier
cyrilmottier / gist:3775335
Created September 24, 2012 10:20
Weird stack trace
java.lang.RuntimeException: Unable to get provider com.cyrilmottier.android.citybikes.provider.CityBikesProvider: java.lang.ClassNotFoundException: com.cyrilmottier.android.citybikes.provider.CityBikesProvider
at android.app.ActivityThread.installProvider(ActivityThread.java:4780)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4532)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4486)
at android.app.ActivityThread.access$1300(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1306)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:4977)
at java.lang.reflect.Method.invokeNative(Native Method)
@cyrilmottier
cyrilmottier / ViewAdditions.java
Created September 25, 2012 13:16
An implementation of a "findViewsByTag" method on Android
package com.cyrilmottier.android.tests;
import android.view.View;
import android.view.ViewGroup;
/**
* @author Cyril Mottier
*/
public class ViewAdditions {
@cyrilmottier
cyrilmottier / gist:3788097
Created September 26, 2012 13:39
ViewPager in a ListView
private OnPageChangeListener mOnPageChangeListener = new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// Do whatever you wan't to do. It's up to you ... not me :)
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// Do whatever you wan't to do. It's up to you ... not me :)
}
@cyrilmottier
cyrilmottier / gist:4317019
Created December 17, 2012 09:31
java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError: android.security.MessageDigest
at com.google.android.maps.KeyHelper.getSignatureFingerprint(KeyHelper.java:60)
at com.google.android.maps.MapActivity.createMap(MapActivity.java:552)
at com.google.android.maps.MapActivity.onCreate(MapActivity.java:422)
at com.cyrilmottier.android.polarissample.MainActivity.onCreate(MainActivity.java:92)
at android.app.Activity.performCreate(Activity.java:4492)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
@cyrilmottier
cyrilmottier / ClassA.java
Created January 10, 2013 09:16
Java puzzle: field instantiation
package com.cyrilmottier.test;
public class ClassA {
public ClassA() {
System.out.println("ClassA()");
method();
}
public void method() {
@cyrilmottier
cyrilmottier / gist:5292270
Created April 2, 2013 13:39
Passing additional information into a Cursor
package com.cyrilmottier.android.avelov.database;
import android.database.Cursor;
import android.database.CursorWrapper;
import android.os.Bundle;
/**
* A Cursor that completely re-writes the actual Cursor capabilities related to extras. It allows clients to use the setExtras(Bundle) (this
* method is actually hidden in the Android framework).
*
@cyrilmottier
cyrilmottier / ActionBarDrawerToggleHoneycomb.java
Created May 21, 2013 09:07
Extract from <android_sdk>/extras/android/support/v4/src/honeycomb/android/support/v4/app/ActionBarDrawerToggleHoneycomb.java
/**
* This class encapsulates some awful hacks.
*
* Before JB-MR2 (API 18) it was not possible to change the home-as-up indicator glyph
* in an action bar without some really gross hacks. Since the MR2 SDK is not published as of
* this writing, the new API is accessed via reflection here if available.
*/
class ActionBarDrawerToggleHoneycomb {
private static final String TAG = "ActionBarDrawerToggleHoneycomb";
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/rainbow_stripes_pattern"
android:tileMode="repeat" />
@ColorRes
private val RAINBOW_COLORS = intArrayOf(
R.color.pink,
R.color.orange,
R.color.yellow,
R.color.green,
R.color.emerald_green,
R.color.azur_blue,
R.color.blue,
R.color.cerulean_blue,
val colorCount = RAINBOW_COLORS.size
val colors = IntArray(colorCount * 2)
val stops = FloatArray(colorCount * 2)
for (i in 0 until colorCount) {
colors[i * 2] = ContextCompat.getColor(context, RAINBOW_COLORS[i])
colors[i * 2 + 1] = colors[i * 2]
stops[i * 2] = i / colorCount.toFloat()
stops[i * 2 + 1] = (i + 1) / colorCount.toFloat()
}