Skip to content

Instantly share code, notes, and snippets.

View decodeandroid's full-sized avatar
🏠
Working from home

Decode Android decodeandroid

🏠
Working from home
View GitHub Profile
@decodeandroid
decodeandroid / ExternalStorageScreen.kt
Created March 12, 2025 12:54
Android Storage: Comprehensive Guide with Simplified Explanation
import android.Manifest
import android.content.Context
import android.os.Build
import android.widget.Toast
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
@decodeandroid
decodeandroid / GalleryApp.kt
Created February 17, 2025 03:02
Building a Gallery App with Jetpack Compose and Content Providers
import android.Manifest
import android.content.ContentResolver
import android.content.ContentValues
import android.content.Context
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.MediaStore
import android.util.Size
@decodeandroid
decodeandroid / ComposeSmsActivity.java
Created January 23, 2025 03:33
Read Write SMS using Content Providers in Jetpack Compose Android
import android.app.Activity;
public class ComposeSmsActivity extends Activity {
}
@decodeandroid
decodeandroid / CallLogHelper.kt
Last active January 4, 2025 04:48
Read & Write Call Logs in Android using Content Provider & Jetpack Compose
import android.Manifest
import android.annotation.SuppressLint
import android.content.ContentValues
import android.content.Context
import android.database.Cursor
import android.provider.CallLog
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.background
import androidx.compose.foundation.border
@decodeandroid
decodeandroid / ContactManager.kt
Last active December 28, 2024 03:42
Read & Write Contacts in Android using Jetpack Compose
import android.Manifest
import android.app.Activity
import android.content.ContentProviderOperation
import android.content.ContentResolver
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.provider.ContactsContract
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
@decodeandroid
decodeandroid / Manifest.kt
Last active December 18, 2024 18:36
Content Resolver and Content Provider in Android
<permission
android:name="com.example.learngit.ACCESS_USERS"
android:protectionLevel="normal" />
<provider
android:name=".phase2.MyContentProvider"
android:authorities="com.example.learngit"
android:enabled="true"
android:exported="true"
android:permission="com.example.learngit.ACCESS_USERS"/>
@decodeandroid
decodeandroid / MainActivity.kt
Last active December 2, 2024 06:11
Permission Handling in Jetpack Compose | Android Kotlin
val permissionManager = PermissionManager(this@MainActivity)
setContent {
var permissionResults by remember {
mutableStateOf<Map<String, Boolean>>(emptyMap())
}
var showSettingsDialogForPermission by remember { mutableStateOf<String?>(null) }
val permissions = listOf(
@decodeandroid
decodeandroid / ImageCropper.kt
Last active May 23, 2025 13:30
Custom Image Cropper using Jetpack Compose
import android.graphics.Bitmap
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.detectDragGestures
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
@decodeandroid
decodeandroid / SpiritLevelView.kt
Last active December 4, 2024 12:41
Spirit Level View Jetpack Compose
import android.content.Context.SENSOR_SERVICE
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager
import androidx.compose.animation.core.Animatable
import androidx.compose.animation.core.tween
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@decodeandroid
decodeandroid / SnakeGame.kt
Created October 6, 2024 05:04
Snake Game Jetpack Compose
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding