Skip to content

Instantly share code, notes, and snippets.

@janakagamini
janakagamini / MultiGlide.kt
Created December 16, 2020 07:45
Filter a list of invalid image urls using coroutines and Glide
/**
* From the given list of urls, returns a list of urls that were successfully downloaded by Glide
* and cached.
*
* @param imageUrls List of image urls.
* @return
*/
suspend fun Activity.tryImageUrls(imageUrls: List<String>): List<String> {
return imageUrls.map {
try {
@janakagamini
janakagamini / FirebaseUserIdTokenInterceptor.java
Last active June 4, 2021 06:36
A simple Interceptor to include a Firebase user's id token in all requests. Useful for authenticating Firebase users with a custom backend. See: https://firebase.google.com/docs/auth/admin/verify-id-tokens#retrieve_id_tokens_on_clients)
public class FirebaseUserIdTokenInterceptor implements Interceptor {
// Custom header for passing ID token in request.
private static final String X_FIREBASE_ID_TOKEN = "YOUR-CUSTOM-HEADER";
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
try {
@janakagamini
janakagamini / IntToAlphabet.java
Last active March 14, 2019 07:37
Integer to Alphabet Conversion
public class IntToAlphabet {
public static String toAlphabetic(int i) {
if (i < 0) {
return "-" + toAlphabetic(-i - 1);
}
int quot = i / 26;
int rem = i % 26;
char letter = (char) ((int) 'A' + rem);
if (quot == 0) {
@janakagamini
janakagamini / PowerSetUtil.java
Created August 31, 2016 02:52
A power set generator that can filter out sets that don't include a particular element.
import java.util.LinkedHashSet;
public class PowerSetUtil {
/**
* Returns the power set from the given set by using a binary counter
* Example: S = {a,b,c}
* P(S) = {[], [c], [b], [b, c], [a], [a, c], [a, b], [a, b, c]}
* @param set String[]
* @return LinkedHashSet
*/
@janakagamini
janakagamini / ShaUtil.java
Created June 24, 2016 02:51
Generating SHA1 hash of a String
//Source: Somewhere on StackOVerFlow I cant remember.
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class ShaUtil{
public static String getHash( String toHash )
{
String hash = "";
@janakagamini
janakagamini / ApplicationMain.scala
Last active January 15, 2016 11:22
A simple websocket server to process incoming ecg readings and write to InfluxDB using akka reactive streams. Client to produce ecg data can be found at: https://github.com/janakagamini/ecg_ws_source
package com.example
import java.util.concurrent.TimeoutException
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.HttpMethods._
import akka.http.scaladsl.model._
import akka.http.scaladsl.model.ws._
import akka.stream.ActorMaterializer
@janakagamini
janakagamini / ParseProxyObject.java
Last active January 4, 2016 11:01 — forked from jamiechapman/ParseProxyObject.java
Since ParseObject is not Parcelable or Serializable this class makes a best effort to make a copy of a given ParseObject that is Serializable
// By Janaka Jayasuriya, @pinkydoe
// Original By Jamie Chapman, @chappers57
// License: open, do as you wish, just don't blame me if stuff breaks ;-)
package us.peripl.app.util;
import com.parse.ParseFile;
import com.parse.ParseGeoPoint;
import com.parse.ParseObject;