Skip to content

Instantly share code, notes, and snippets.

View aashreys's full-sized avatar
zooming...

Aashrey Sharma aashreys

zooming...
View GitHub Profile
@aashreys
aashreys / figma-gist.js
Created November 29, 2022 19:16
Check if a Figma URL is that of the current file
export function isThisFile(url: string): boolean {
let formattedFilename = figma.root.name.trim()
formattedFilename = encodeURIComponent(formattedFilename).replace(/%20/g, '-')
let isThisFile = url.includes('figma.com') && url.includes(formattedFilename)
return isThisFile
}
@aashreys
aashreys / figma_gist.js
Created November 29, 2022 19:14
Get Figma Node ID from URL
export function getNodeIdFromUrl(url: string): string | null {
url = url.toLowerCase()
let startIndex: number = url.indexOf('node-id=') + 8
let endIndex: number = url.indexOf('&', startIndex)
if (startIndex) {
if (endIndex > 0) {
return url.substring(startIndex, endIndex).replace('%3a', ':')
} else {
return url.substring(startIndex).replace('%3a', ':')
}
@aashreys
aashreys / config.h
Last active December 20, 2023 09:28
Adding RGB Timeout functionality to your QMK keyboard
/* In your config.h define a new variable RGBLIGHT_TIMEOUT and give it a value in milliseconds */
#define RGBLIGHT_SLEEP // allows us to use rgblight_suspend() and rgblight_wakeup() in keymap.c
#define RGBLIGHT_TIMEOUT 30000 // 30 seconds
@aashreys
aashreys / wait-for-webserver.sh
Created July 21, 2017 02:39
A bash script which checks the status of a web server before executing commands.
#!/bin/bash
# wait-for-nlu.sh
set -e
host="$1"
shift
cmd="$@"
http_status="$(curl -s -o /dev/null -I -w "%{http_code}" http://www.webserver.com:8080/)"
@aashreys
aashreys / Instant handler runnable execution with Mockito
Last active October 27, 2023 23:48
Use Mockito to instantly execute handler runnables in your tests.
// Creating a handler which executes runnables immediately
Mockito.when(uiHandler.post(Mockito.any(Runnable.class))).thenAnswer(
new Answer<Object>() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
Runnable msg = invocation.getArgument(0);
msg.run();
return null;
}
}
@aashreys
aashreys / FlickrBaseEncoder.java
Created April 24, 2017 14:50
A class to encode number for use with Flickr's short url template.
/*
* Copyright {2017} {Aashrey Kamal Sharma}
*
* 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
*
* Unless required by applicable law or agreed to in writing, software
@aashreys
aashreys / Migrator.java
Last active April 24, 2017 04:01
A class for managing application migration across updates
/**
* A simple class for managing application migration across updates.
*
* Created by aashreys on 24/04/17.
*/
public class Migrator {
private static final String KEY_LAST_VERSION = "migrator_key_last_version";
@aashreys
aashreys / AspectRatioImageView.java
Created April 20, 2017 20:33
An ImageView which can be locked to an aspect ratio.
public class AspectRatioImageView extends ImageView {
private float widthToHeightRatio;
public AspectRatioImageView(Context context) {
super(context);
}
public AspectRatioImageView(Context context, AttributeSet attrs) {
super(context, attrs);
@aashreys
aashreys / dimens.xml
Created March 13, 2017 12:20
Standard dimensions for Android
<resources>
<dimen name="spacing_xxs">2dp</dimen>
<dimen name="spacing_xs">4dp</dimen>
<dimen name="spacing_small">8dp</dimen>
<dimen name="spacing_medium">16dp</dimen>
<dimen name="spacing_large">24dp</dimen>
<dimen name="spacing_xl">32dp</dimen>
<dimen name="spacing_xxl">48dp</dimen>
<dimen name="spacing_xxxl">72dp</dimen>
@aashreys
aashreys / EndlessScrollAdapter.java
Last active February 9, 2017 13:23
A RecyclerView.Adapter extension which adds a callback to assist in the creation of endlessly scrollable lists i.e. lists which load more data as the user reaches the end.
public class EndlessScrollAdapter extends RecyclerView.Adapter<EndlessScrollAdapter.ImageViewHolder> {
private static final String TAG = EndlessScrollAdapter.class.getSimpleName();
private int loadingThreshold = 5; // Default value
private LoadMoreCallback loadMoreCallback;
public EndlessScrollAdapter() {}