Skip to content

Instantly share code, notes, and snippets.

@venator85
venator85 / gist:4236391
Created December 7, 2012 20:48
My Eclipse formatting settings
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="12">
<profile kind="CodeFormatterProfile" name="Eclipse Alessio" version="12">
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
@venator85
venator85 / CollapsableLinearLayout.java
Created April 6, 2013 17:14
A LinearLayout subclass that can be collapsed and expanded in an animated fashion. Relies on NineOldAndroids for animation.
package com.animatedpiechart;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.ViewGroup;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
import android.widget.LinearLayout;
@venator85
venator85 / PausableHandler.java
Last active December 16, 2015 12:29
SemaphoreHandler
package cx.ath.venator.semaphorehandler;
import java.util.Vector;
import android.os.Handler;
import android.os.Message;
/**
* Message Handler class that supports buffering up of messages when the
* activity is paused i.e. in the background.
@venator85
venator85 / OttoIssue.java
Created April 30, 2013 07:26
Otto issue
package com.example.provaandroid;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.squareup.otto.Bus;
import com.squareup.otto.Produce;
import com.squareup.otto.Subscribe;
@venator85
venator85 / CheckableImageView.java
Created July 19, 2013 13:48
CheckableImageView
import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.widget.Checkable;
import android.widget.CompoundButton;
import android.widget.ImageView;
public class CheckableImageView extends ImageView implements Checkable {
@venator85
venator85 / gist:7529786
Created November 18, 2013 15:34
Simple Pager Adapter with views
public class MyPagerAdapter extends PagerAdapter {
private final List<View> pages;
public MyPagerAdapter(List<View> pages) {
super();
this.pages = pages;
}
@Override
@venator85
venator85 / LibraryProjectTestRunner.java
Created September 6, 2016 10:43
A Robolectric test runner for library projects compatible with Android Gradle plugin 2.2.0-alpha6 and later
import org.junit.runners.model.InitializationError;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.internal.bytecode.InstrumentationConfiguration;
import org.robolectric.manifest.AndroidManifest;
import org.robolectric.res.FileFsFile;
import org.robolectric.res.FsFile;
public class LibraryProjectTestRunner extends RobolectricTestRunner {
@venator85
venator85 / ApkCertificate.java
Created October 24, 2016 10:41
Extract the X509Certificate used to sign the app from the APK
package com.example.alessio.testapp;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import java.io.IOException;
import java.io.InputStream;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.zip.ZipEntry;
@venator85
venator85 / CertificateValidation.java
Created October 24, 2016 13:50
Manually verify a certificate (chain) against a root
public static void validateCertificate(X509Certificate toVerify, X509Certificate root) throws Exception {
CertificateFactory cf = CertificateFactory.getInstance("X.509");
CertPath cp = cf.generateCertPath(Collections.singletonList(toVerify));
TrustAnchor trustAnchor = new TrustAnchor(root, null);
CertPathValidator cpv = CertPathValidator.getInstance("PKIX");
PKIXParameters pkixParams = new PKIXParameters(Collections.singleton(trustAnchor));
pkixParams.setRevocationEnabled(false);
@venator85
venator85 / fold.sh
Created January 26, 2017 10:51
fold (hard wrap) in pure bash
fold() {
data="$1"
width="$2"
length=$(echo -n "$data" | wc -c)
while [ $length -gt $width ]
do
echo ${data:0:$width}
data=${data:$width}
length=$(echo -n "$data" | wc -c)
done