Skip to content

Instantly share code, notes, and snippets.

View paramsen's full-sized avatar
🏠
Working from home

Pär Nils Amsen paramsen

🏠
Working from home
View GitHub Profile
@paramsen
paramsen / Timer.java
Created May 11, 2017 07:00
RxJava Timer for fun
/**
* Rx based timer that implements a simple timer functionality. Should be
* disposed when it goes out of scope since RxJava leaks otherwise.
*
* @author Pär Amsen 05/2017
*/
public class Timer {
private Observable<Void> timer;
private long time;
private boolean started;
@paramsen
paramsen / StickyHeaderActivity.java
Created May 16, 2017 21:10
StickyHeaderAdapter impl for Mike
package com.paramsen.testground;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@paramsen
paramsen / CraneView.java
Last active August 3, 2017 08:01
Android: Simple trigonometric formula for calculating cascading joint rotations for an arm joint system.
// This is free and unencumbered software released into the public domain.
//
// Anyone is free to copy, modify, publish, use, compile, sell, or
// distribute this software, either in source code form or as a compiled
// binary, for any purpose, commercial or non-commercial, and by any
// means.
//
// In jurisdictions that recognize copyright laws, the author or authors
// of this software dedicate any and all copyright interest in the
// software to the public domain. We make this dedication for the benefit
@paramsen
paramsen / build.gradle
Created June 20, 2017 10:12
Crashlytics+Cmake NDK
android {
//...
}
dependencies {
compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.6@aar') {
transitive = true
}
}
@paramsen
paramsen / CustomFrameLayout.java
Last active January 10, 2018 08:50
Android; Mixing wrap_content and match_parent in a wrap_content FrameLayout
/**
* Wraps the inflated TextView, adds an ImageView programatically that matches_parent by force.
* By default the FrameLayout would adjust it's bounds to the added ImageView, even if we add a
* LayoutParams with MATCH_PARENT. I omitted it here since it doesn't matter.
*
* @author Pär Amsen 07/2017
*/
public class CustomFrameLayout extends FrameLayout {
public CustomFrameLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
@paramsen
paramsen / Vector2Png.kt
Created January 9, 2018 15:00
Batch convert <vector> to png for mdpi..xxxhdpi using Canvas api
/**
* Run convertVectorsToPngs() test, get the pngs from the device by "adb pull <the path>" and paste the res folders
* into your android project.
*
* @author Pär Amsen 01/2018
*/
@RunWith(AndroidJUnit4::class)
class Vector2Png {
lateinit var context: Context
lateinit var baseDir: File
@paramsen
paramsen / ConcurrentRequestSource.java
Last active January 11, 2018 12:17
Concurrent queue workers (download stuff synchronized in parallel)
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import java.util.concurrent.atomic.AtomicBoolean;
// MIT License
//
// Copyright(c) 2017 Pär Amsen
//
@paramsen
paramsen / batch-convert-dpi.kts
Last active January 15, 2018 12:06
[Android util] [kotlin script] Batch convert Android res from xxxhdpi to *dpi sizes using imagemagick
/**
* Batch conversion from one dpi to the others using imagemagick
* (got some Windows and personal machine hardcoded stuff, change that)
*
* Usage: kotlinc -script batch-convert-dpi.kts <output dir> <paths to input files (pngs)>
*/
import java.io.File
import jdk.nashorn.internal.runtime.ScriptingFunctions.readLine
import java.io.BufferedReader
@paramsen
paramsen / OkHttpFileDownloader.java
Last active February 13, 2018 22:20
Rx/OkHttp Android file downloader
import java.io.File;
import io.reactivex.Single;
import io.reactivex.schedulers.Schedulers;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okio.BufferedSink;
import okio.BufferedSource;
import okio.Okio;
@paramsen
paramsen / basic_upload_apks_service_account.py
Last active April 5, 2018 08:00 — forked from machinekoder/Google Play Api - Apk Upload.md
This python script uploads an apk file into Google Play Store using Android Play Publisher API
#!/usr/bin/env python
#
# Copyright 2014 Marta Rodriguez.
#
# Licensed under the Apache License, Version 2.0 (the 'License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#