Skip to content

Instantly share code, notes, and snippets.

package io.jween.rx;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.subjects.PublishSubject;
/**
* RxJava version Event Bus
*
@Jween
Jween / Foreground.java
Created July 22, 2016 10:06
Detect If android app is in foreground or not
/**
* Usage:
*
* 1. Get the Foreground Singleton, passing a Context or Application object unless you
* are sure that the Singleton has definitely already been initialised elsewhere.
*
* 2.a) Perform a direct, synchronous check: Foreground.isForeground() / .isBackground()
*
* or
*
@Jween
Jween / local.properties.reader.groovy
Created March 15, 2016 04:02
Read data from local.properties file in gradle script
//
// read bintray user and api key form gitignored local.properties file
//
def FILE_LOCAL_PROPERTIES = "local.properties"
Properties localProp = new Properties()
def getFileInDir = { dir ->
File ret = new File("$dir$File.separator$FILE_LOCAL_PROPERTIES")
ret?.exists() ? ret : null
}
@Jween
Jween / SharedPrefer.java
Last active January 19, 2016 02:20
Useful wrapper to simplify the android SharedPreference
/**
*
* Use tips
*
* --read some key-value
* SharedPrefer.from(context)
* .open("com.meizu.flyme.meepo.SOME_SHARED_PREFERENCE") // optional
* .read()
* .getXxx(KYE, DEFAULT_VALUE);
@Jween
Jween / filter_resources
Last active August 29, 2015 14:07
filter resources example script for android gradle
def filterVariant = { variantToFilter, filterTask->
def variantRes = android.sourceSets."${variantToFilter.toLowerCase()}".res
variantRes.srcDirs.each{ resDir->
def filterOutput = "${buildDir}/res-filter"
if (resDir.toString().contains(filterOutput)) {
return
}
// remove all the add-resource nodes
filterTask.from fileTree(dir: resDir, include: 'values*/*.xml')
@Jween
Jween / gradle_package_so_files
Last active August 29, 2015 14:06
package so files for android module when building with gradle
// requires gradleAfter from [gradle_after](https://gist.github.com/Jween/039f4625b69d598b856d) ahead
//
// for packaging so files in command line
// invoke hint:
// > gradle -p someModule -P [unpackageSo=ture|false]
// -unpackageSo optional, false by default, to package apk with so files inside
// if set to true, the package task will skip packaging so files into apk file
//
if (gradleAfter(1.12) ) {
@Jween
Jween / build.gradle
Last active August 29, 2015 14:05
detect android gradle plugin version by gradle version, solve the dependency issues
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
// com.android.tools.build:gradle:0.6.+ -> gradle 1.8
// com.android.tools.build:gradle:0.7.+ -> gradle 1.9
// com.android.tools.build:gradle:0.8.+ -> gradle 1.9/1.10
// com.android.tools.build:gradle:0.9.+ -> gradle 1.10/1.11
@Jween
Jween / gradle_after
Last active August 29, 2015 14:04
determine gradle version
// returns true if greater, null if equal, false otherwise
def gradleAfter = {
[
gradle.gradleVersion.tokenize('.')*.toInteger(),
it.toString().tokenize('.')*.toInteger()
].transpose().inject(null){ result, item ->
result != null ?:
(item[0] > item[1] ?: item[0] == item[1] ? null : false);
}
}