Skip to content

Instantly share code, notes, and snippets.

View pardom-zz's full-sized avatar

Michael Pardo pardom-zz

View GitHub Profile
@pardom-zz
pardom-zz / lit_to_res.py
Last active December 13, 2015 21:39
Python script to look for xml literal strings in Android resources, and convert them to string resources.
#!/usr/bin/env python
# encoding: utf-8
import os
import sys
import xml.etree.ElementTree as ET
import re
idAttrib = '{http://schemas.android.com/apk/res/android}id'
@pardom-zz
pardom-zz / AudioMeter.java
Created March 19, 2014 15:34
Audio amplitude detector for Android.
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder.AudioSource;
import android.os.Process;
public class AudioMeter extends Thread {
/////////////////////////////////////////////////////////////////
// PUBLIC CONSTANTS
// Convenience constants
@pardom-zz
pardom-zz / adbs.sh
Last active August 29, 2015 14:01
An adb wrapper to select a device by position instead of "-s <serialNumber>"
if [ "$#" == "0" ]; then
echo "usage: adbs <device> <command>"
n=0
while read -r line
do
if [ "$n" -gt "0" ] && [ -n "$line" ]; then
echo "$n: " "$line"
else
echo "$line"
@pardom-zz
pardom-zz / HelloWorld.kt
Last active August 29, 2015 14:22
Kotlin Hello World
package hello
import hello.Language.*
enum class Language(val greeting: String) {
EN("Hello"), ES("Hola"), FR("Bonjour")
}
open class Person(var name: String, var lang: Language = EN) {
fun greet() = println("${lang.greeting}, $name!")
@pardom-zz
pardom-zz / Properties.kt
Created July 4, 2015 00:47
Kotlin observable properties
import com.sun.jdi.InvalidTypeException
import java.util.LinkedHashSet
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
public object Properties {
fun observable<T>(initialValue: T): ReadWriteProperty<Any?, T> {
return ObservableProperty(initialValue)
}
}
remote.getIt(foo) // Observable<Bar>
//.doOnNext { local.saveIt(bar).toBlocking().single() } // "Interrupted while waiting for subscription to complete" on errors.
.flatMap { bar -> local.saveIt(bar).map { bar } } // Hacky, but makes saving part of stream and won't throw exceptions due to blocking observable.
@Plumbed(MyViewIntent.class)
class MyView extends FrameLayout {
@Inject
public MyViewIntent viewIntent;
@Out("red")
public Observable<Integer> red;
@Out("green")
public Observable<Integer> green;
@Out("blue")
@pardom-zz
pardom-zz / DaggerService.kt
Created May 6, 2016 15:07
Service Factories
class DaggerService(private val rootComponent: Any) : ServicesFactory() {
override fun bindServices(services: Binder) {
val key = services.getKey<Any>()
if (key !is WithComponent) {
return
}
val parent = services.getService<Any>(NAME) ?: rootComponent
val component = key.createComponent(parent)
import rx.Observable
import java.util.LinkedHashMap
class HashStreamMap<K> : LinkedHashMap<K, Observable<*>>, MutableStreamMap<K> {
constructor() : super()
constructor(initialCapacity: Int) : super(initialCapacity)
constructor(initialCapacity: Int, loadFactor: Float) : super(initialCapacity, loadFactor)
package clean.news.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import clean.news.R
import clean.news.core.entity.Item.ListType
import clean.news.inject.ModuleContext
import clean.news.ui.item.list.ItemListKey.ItemListModule