Skip to content

Instantly share code, notes, and snippets.

View AfzalivE's full-sized avatar

Afzal Najam AfzalivE

View GitHub Profile
@AfzalivE
AfzalivE / SnapshotFlowRecomposition.kt
Last active October 29, 2024 15:30
A jetpack compose preview demonstrating the effects of recomposition for a snapshot flow.
@Preview
@Composable
private fun SnapshotFlowPreview() {
var someState by remember { mutableStateOf("") }
var someOtherState by remember { mutableStateOf("") }
val onSomeStateChange: (String) -> Unit = { newState ->
someOtherState = newState
}
// Replace this line with the commented one.
@AfzalivE
AfzalivE / pre-push
Created June 1, 2024 04:15
pre-push git hook to generate changelog file
#!/bin/sh
# Save input for use in git lfs and for changelog generation.
stdin_input=`cat`
command -v git-lfs >/dev/null 2>&1 || { echo >&2 "\nThis repository is configured for Git LFS but 'git-lfs' was not found on your path. If you no longer wish to use Git LFS, remove this hook by deleting the 'pre-push' file in the hooks directory (set by 'core.hookspath'; usually '.git/hooks').\n"; exit 2; }
echo "$stdin_input" | git lfs pre-push "$@"
zero=$(git hash-object --stdin </dev/null | tr '[0-9a-f]' '0')
@AfzalivE
AfzalivE / private ime options samsung keyboard.txt
Created September 25, 2023 21:42
Samsung Keyboard private IME options
customInputConnection,
customSymbols,
customSymbolsForCMSymbolKey,
customSymbolsForPeriodKey,
disableAllToolbarItems,
disableAmbiguousMode,
disableAutoCorrection,
disableBackspaceKey,
disableCandidateExpand,
disableClipboard,
@AfzalivE
AfzalivE / sideberry styles.css
Last active September 6, 2023 19:53
Sideberry collapsible styles
#root.root {--tabs-activated-shadow: box-shadow: 0 0 1px rgba(128, 128, 142, 0.9);;}
#root {
--tabs-font: 1rem -apple-system;
--tabs-count-font: .625rem -apple-system;
--bookmarks-bookmark-font: .875rem -apple-system;
--bookmarks-folder-font: 9pt -apple-system;
--nav-btn-width: 30px;
--nav-btn-height: 30px;
--tabs-inner-gap: 8px;
}
@AfzalivE
AfzalivE / sidebery styles.css
Created September 6, 2023 13:40
Sidebery my first settings
#root.root {--tabs-font: 1rem -apple-system;}
#root.root {--tabs-indent: 12px;}
#root.root {--tabs-inner-gap: 5px;}
#root.root {--tabs-count-font: 0.625rem -apple-system;}
#root.root {--general-border-radius: 8px;}
#root.root {--d-fast: 0.1s;}
@AfzalivE
AfzalivE / userChrome.css
Created September 6, 2023 13:38 — forked from lucaspar/userChrome.css
Stylesheets for collapsible vertical tabs for Firefox. Tabs expand horizontally when hovered, similar to Edge's.
/*
How to use this CSS:
0. Install the Sidebery extension: https://addons.mozilla.org/en-US/firefox/addon/sidebery/.
1. In Sidebery settings:
a. Set the title preface must as "[S] " (without quotes).
This is used by CSS rules below to identify when Sidebery is active.
b. Set 'Tabs tree structure' to false -- this stylesheet doesn't adapt to
multiple tab levels, but feel free to tweak it!
c. Copy and paste the "SIDEBERY STYLES" section below as a custom
@AfzalivE
AfzalivE / NumberPicker.kt
Created August 20, 2023 01:10
AndroidView NumberPicker type in test
import android.widget.NumberPicker
import android.widget.Toast
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.setText
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.viewinterop.AndroidView
@AfzalivE
AfzalivE / Readme.md
Last active February 6, 2023 15:49
Figma to Drawable folder Transnomino recipe

This is a recipe for Transnomino app on Mac to rename and move files exported from Figma to an Android app's drawable folders.

There's one assumption here that layer names in figma are something like Light/Layer Name and Dark/Layer Name. Although, I imagine it'd be trivial to change it to something that's separated by a character other than /.

In Figma, the layer suffixes needs to be either

  1. HDPI, MDPI, XHDPI, XXHDPI, XXXHDPI
  2. -hdpi, -mdpi, -xhdpi, -xxhdpi, -xxxhdpi

If using #2, disable the 3rd step (Hyphenate suffix).

@AfzalivE
AfzalivE / CustomTestRunner.kt
Last active August 3, 2022 22:30
Disable soft-keyboards for tests
import androidx.test.runner.AndroidJUnitRunner
class CustomJunitRunner : AndroidJUnitRunner() {
private var enabledImes = emptyList<String>()
override fun callApplicationOnCreate(app: Application?) {
super.callApplicationOnCreate(app)
enabledImes = getEnabledImes()
disableSoftKeyboards(enabledImes)
@AfzalivE
AfzalivE / ComposeLayoutPreviewHelper.kt
Last active February 9, 2023 14:37
AbstractComposeView layout preview helper
package com.yourpackage
import android.os.Bundle
import android.view.View
import androidx.compose.runtime.MonotonicFrameClock
import androidx.compose.runtime.PausableMonotonicFrameClock
import androidx.compose.runtime.Recomposer
import androidx.compose.ui.InternalComposeUiApi
import androidx.compose.ui.platform.AbstractComposeView
import androidx.compose.ui.platform.AndroidUiDispatcher