Skip to content

Instantly share code, notes, and snippets.

View AfzalivE's full-sized avatar

Afzal Najam AfzalivE

View GitHub Profile
AfzalivE / pre-push
Created June 1, 2024 04:15
pre-push git hook to generate changelog file
# Save input for use in git lfs and for changelog generation.
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 / BottomSheetScrollView.kt
Last active May 24, 2024 00:37
BottomSheetScrollView for when you have a ViewPager with RecyclerViews in your BottomSheet
import android.content.Context
import android.util.AttributeSet
import android.view.View
import android.widget.FrameLayout
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.view.NestedScrollingChildHelper
import androidx.core.view.NestedScrollingParent2
import androidx.core.view.ViewCompat
import androidx.recyclerview.widget.LinearLayoutManager
class ForegroundServiceLauncher(private val serviceClass: Class<out Service>) {
private var isStarting = false
private var shouldStop = false
private var isCreated = false
fun startService(context: Context, block: Intent.() -> Unit = {}) {
if (!isCreated) {
isStarting = true
AfzalivE / private ime options samsung keyboard.txt
Created September 25, 2023 21:42
Samsung Keyboard private IME options
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 / 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 / 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:
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 / 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 / quotes.json
Last active February 20, 2023 19:59 — forked from signed0/quotes.json
json formatted quotes
"quote": "Life isn’t about getting and having, it’s about giving and being.",
"author": "Kevin Kruse"
"quote": "Whatever the mind of man can conceive and believe, it can achieve.",
"author": "Napoleon Hill"
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