Skip to content

Instantly share code, notes, and snippets.

.idea
out/*
*.iml
target
settings.xml
@InsanusMokrassar
InsanusMokrassar / standard-pom
Last active March 6, 2017 08:31
standard-pom
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.github.insanusmokrassar</groupId>
<artifactId></artifactId>
<version></version>
<packaging>jar</packaging>
<name></name>
@InsanusMokrassar
InsanusMokrassar / FilesSaver
Last active April 20, 2017 05:38
It is common and simple files server which must work in all your java projects if you have internet access and know destination url
public class FilesSaver {
protected static String absolutePath;
public static void setAbsolutePath(String absolutePath) {
FilesSaver.absolutePath = absolutePath;
}
public static String constructPath(String relationPath) {
while (relationPath.matches("^/.*$")) {
relationPath = relationPath.replaceFirst("/", "");
@InsanusMokrassar
InsanusMokrassar / FieldsExtractor
Created April 12, 2017 17:25
Sheet of mamont. I think it will useless, but I will be able to be wrong
public class FieldsExtractor {
protected static final Map<Class, List<Field>> classFieldsCache = new HashMap<>();
public static List<Field> getPublicFields(Class targetClass) {
List<Field> result = new ArrayList<>();
if (!classFieldsCache.containsKey(targetClass)) {
List<Field> fields = new ArrayList<>();
Class currentValuesTypeClass = targetClass;
do {
@InsanusMokrassar
InsanusMokrassar / ActionCaller
Last active April 12, 2017 17:38
Use this for call action in different threads or after some time or other. Require RXJava library.
public class ActionCaller<T> implements Runnable {
protected final Action1<T> target;
protected final T value;
public ActionCaller(Action1<T> target, T value) {
this.target = target;
this.value = value;
}
@Override
fun calculateMeasure(
widthMeasureSpec: Int,
heightMeasureSpec: Int,
heightRatio: Int,
widthRatio: Int
): Pair<Int, Int> {
val originalWidth = MeasureSpec.getSize(widthMeasureSpec)
val originalHeight = MeasureSpec.getSize(heightMeasureSpec)
@InsanusMokrassar
InsanusMokrassar / LoggerLoaders.kt
Created August 25, 2017 17:48
Kotlin logger template
/**
* Need "LOGGER_CONFIG_PATH" environment variable which set the place where was put .properties file with config of logger
*/
fun loadLoggerConfig() {
FileInputStream(System.getenv("LOGGER_CONFIG_PATH")).use {
LogManager.getLogManager().readConfiguration(it)
}
}
/**
@InsanusMokrassar
InsanusMokrassar / dimens.xml
Last active November 5, 2017 04:47
Standard android dimens
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="textDefaultExtraSmallSize">10sp</dimen>
<dimen name="textDefaultSmallSize">14sp</dimen>
<dimen name="textDefaultMediumSize">18sp</dimen>
<dimen name="textDefaultLargeSize">22sp</dimen>
<dimen name="textDefaultExtraLargeSize">26sp</dimen>
<dimen name="viewDefaultSmallMargin">4dp</dimen>
<dimen name="viewDefaultMediumMargin">8dp</dimen>
@InsanusMokrassar
InsanusMokrassar / DatabaseExtensions.kt
Last active November 25, 2017 10:04
Very simple ORM CRUD Android SQL managment
import android.content.ContentValues
import android.database.Cursor
import android.database.sqlite.SQLiteDatabase
import android.util.Log
import kotlin.reflect.KClass
import kotlin.reflect.KProperty
val nativeTypesMap = mapOf(
Pair(
Int::class,
@InsanusMokrassar
InsanusMokrassar / AbstractViewHolder.kt
Last active November 22, 2017 05:45
Simple realisation of RecyclerViewAdapter and holder
import android.support.v7.widget.RecyclerView
import android.view.View
abstract class AbstractViewHolder<in T>(viewCreator: () -> View) : RecyclerView.ViewHolder(viewCreator()) {
abstract fun refreshItem(item: T)
}