Skip to content

Instantly share code, notes, and snippets.

View SurajBahadur's full-sized avatar
🎯
Focusing

Suraj Bahadur SurajBahadur

🎯
Focusing
View GitHub Profile
@SurajBahadur
SurajBahadur / MainActivity.kt
Last active December 20, 2022 21:33
Single and multiple runtime permissions in kotlin
package com.example.wififinder
import android.Manifest
import android.content.Context
import android.content.pm.PackageManager
import android.net.ConnectivityManager
import android.net.wifi.WifiManager
import android.os.Bundle
import android.util.Log
import android.view.View
@SurajBahadur
SurajBahadur / AdmobTest.kt
Created May 22, 2021 07:37
Function "onUserEarnedReward" is never used in admob
private fun showRewardedAds() {
val adRequest = AdRequest.Builder().build()
RewardedAd.load(requireContext(), getString(R.string.reward_id), adRequest, object : RewardedAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
if (isAdded)
hideProgress()
}
override fun onAdLoaded(rewardedAd: RewardedAd) {
@SurajBahadur
SurajBahadur / Extenstion.kt
Created April 11, 2021 19:59
Best Way To Get Class TAG In Kotlin For Debugging
val Any.TAG: String
get() {
val tag = javaClass.simpleName
return if (tag.length <= 23) tag else tag.substring(0, 23)
}
@SurajBahadur
SurajBahadur / LogHelper.kt
Created March 16, 2021 18:54
Log Helper Class
/*
* LogHelper object
*/
object LogHelper {
private const val TESTING: Boolean = false // set to "false" for release builds
private const val LOG_PREFIX: String = "codepudnit"
private const val MAX_LOG_TAG_LENGTH: Int = 64
private const val LOG_PREFIX_LENGTH: Int = LOG_PREFIX.length
@SurajBahadur
SurajBahadur / Demo.kt
Created February 4, 2021 10:36
SpannableStringBuilder example
val ssb = SpannableStringBuilder()
.color(getColor(R.color.color_grey))
{
append(getString(R.string.beta_version_stat))
appendLine()
}
.color(getColor(R.color.color_grey)) {
append(getString(R.string.exp_issue))
}
.color(getColor(R.color.colorPrimary)) {
@SurajBahadur
SurajBahadur / RoundedBackgroundSpan.kt
Created February 3, 2021 11:43
Nicest way to add rounded background span in TextView
import android.content.res.Resources
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.RectF
import android.text.style.ReplacementSpan
import kotlin.math.roundToInt
class RoundedBackgroundSpan(
private val textColor: Int,
@SurajBahadur
SurajBahadur / AdsFormActivity.kt
Created January 30, 2021 18:21
TextWatcher For More Than One EditText
class AdsFormActivity : AppCompatActivity() {
private lateinit var binding: ActivityAdsForm2Binding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_ads_form)
supportActionBar?.hide()
setClickListeners()
setTextWatchers()
}
@SurajBahadur
SurajBahadur / DemoAdapter.kt
Created January 29, 2021 10:32
Refracting RecyclerView Adapter to DataBinding
class StatsOverallAdapter(val data: Data?) : RecyclerView.Adapter<StatsOverallAdapter.StatsOverallViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): StatsOverallViewHolder {
val inflater = LayoutInflater.from(parent.context)
val binding = StatsOverallAdapterBinding.inflate(inflater,parent,false)
return StatsOverallViewHolder(binding)
}
override fun getItemCount() = 1
@SurajBahadur
SurajBahadur / slide_in_left.xml
Created January 24, 2021 09:09
Slide Animation Between activities In Android
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="-100%p"
android:toXDelta="0" />
</set>
@SurajBahadur
SurajBahadur / barrier_example
Created January 16, 2021 09:27
Barrier Example
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="96dp"