Skip to content

Instantly share code, notes, and snippets.

View am3n's full-sized avatar
🙂

Amirhosein Barati am3n

🙂
View GitHub Profile
@am3n
am3n / BaseDao.kt
Created July 11, 2019 08:32
Android Room Generic DAO + LiveData.observeOnce(..)
package com.example.db.dao
import android.annotation.SuppressLint
import android.os.AsyncTask
import android.os.Process
import android.os.Process.THREAD_PRIORITY_BACKGROUND
import android.util.Log
import java.util.ArrayList
@am3n
am3n / KeyboardManager.kt
Created July 11, 2019 08:39
Listen to keyboard open/close in android with LiveData
package com.example
import android.annotation.SuppressLint
import android.app.Activity
import android.graphics.Rect
import android.view.View
import android.view.ViewTreeObserver
import androidx.lifecycle.LiveData
import java.lang.ref.WeakReference
@am3n
am3n / MetricsUtil.kt
Created July 11, 2019 08:46
Convert (Float/Int) and (Dp/Px) to each other with Kotlin Extensions :) in android
package com.example
import android.content.res.Resources
val Int.iPx2Dp: Int get() = (this / Resources.getSystem().displayMetrics.density).toInt()
val Int.iDp2Px: Int get() = (this * Resources.getSystem().displayMetrics.density).toInt()
val Int.fPx2Dp: Float get() = this / Resources.getSystem().displayMetrics.density
val Int.fDp2Px: Float get() = this * Resources.getSystem().displayMetrics.density
val Float.iPx2Dp: Int get() = (this / Resources.getSystem().displayMetrics.density).toInt()
val Float.iDp2Px: Int get() = (this * Resources.getSystem().displayMetrics.density).toInt()
package ir.dariacard
import android.text.Editable
import android.text.TextUtils
import android.text.TextWatcher
import androidx.annotation.NonNull
import androidx.appcompat.widget.AppCompatEditText
import java.lang.Exception
import java.text.NumberFormat
@am3n
am3n / Rcl.kt
Created December 4, 2019 07:47
Generics and tools for android recyclerview
package ir.dariacard.view
import android.animation.AnimatorSet
import android.animation.ObjectAnimator
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.extensions.LayoutContainer
import android.content.Context
import android.graphics.Canvas
import android.graphics.PorterDuff
import android.Manifest
import android.annotation.SuppressLint
import android.app.*
import android.content.*
import android.content.pm.PackageManager
import android.content.pm.ShortcutInfo
import android.content.pm.ShortcutManager
import android.content.res.ColorStateList
import android.content.res.Configuration
import android.content.res.Resources
@am3n
am3n / build.gradle
Created May 18, 2020 18:57
Proguard rules debug/release for all projects
...
buildTypes {
debug {
debuggable true
minifyEnabled true
shrinkResources true
...
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'PathToProjectsDir\\proguard-rules-debug.pro'
}
val width = getScreenWidth()
val height = getScreenHeight()
val min = min(width, height)
val radius = min/2 * 4/5
val center = PointF(0f, 0f)
val points = Array(5) { PointF() }
val angle36 = toRadians(36.0)
val angle72 = toRadians(72.0)
@am3n
am3n / doze_mode_adb_commands.sh
Last active September 24, 2021 12:46 — forked from y-polek/doze_mode_adb_commands.sh
adb commands to test Doze mode
#! /bin/zsh
# Buttery powered state
adb shell dumpsys battery | grep powered
# Unplug battery
adb shell dumpsys battery unplug
# Reset battery
adb shell dumpsys battery reset
@am3n
am3n / README.md
Last active April 15, 2022 19:04
Set docker http-proxy

put the docker-set-http-proxy.sh in a directory

run chmod +x docker-set-http-proxy.sh to access execute permission

run ./docker-set-http-proxy.sh YOUR_HTTP_PROXY_HOST YOUR_HTTP_PROXY_PORT