Skip to content

Instantly share code, notes, and snippets.

View arulwastaken's full-sized avatar
🎯
Focusing

Arul arulwastaken

🎯
Focusing
  • Tamilnadu
View GitHub Profile
package com.codingwitharul.bill_it.common.auth
import com.codingwitharul.bill_it.common.model.GoogleUser
import com.codingwitharul.bill_it.data.networking.ApiClientHelper
import com.codingwitharul.bill_it.utils.toThrowable
import io.ktor.http.*
import io.ktor.server.cio.*
import io.ktor.server.engine.*
import io.ktor.client.request.*
import io.ktor.client.statement.*
package com.codingwitharul.bill_it.common.auth
import androidx.compose.runtime.Composable
actual class GoogleAuthProvider(val oauth: GoogleOAuthDesktop) {
@Composable
actual fun getUiProvider(): GoogleAuthenticator {
return GoogleAuthenticator(oauth)
}
package com.codingwitharul.bill_it.common.auth
import androidx.compose.runtime.Composable
actual class GoogleAuthProvider() {
@Composable
actual fun getUiProvider(): GoogleAuthenticator = GoogleAuthenticator()
actual suspend fun signOut() {
package com.codingwitharul.bill_it.common.auth
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalContext
import androidx.credentials.CredentialManager
import com.google.firebase.auth.FirebaseAuth
actual class GoogleAuthProvider(val credentialManager: CredentialManager) {
@Composable
actual fun getUiProvider(): GoogleAuthenticator {
@arulwastaken
arulwastaken / GoogleAuthProvider.kt
Last active August 7, 2025 12:52
GoogleAuthProvider.kt Used inside Jetpack Composable and GoogleAuthenticator used for trigger action
package com.codingwitharul.bill_it.common.auth
import androidx.compose.runtime.Composable
import com.codingwitharul.bill_it.common.auth.GoogleAuthenticator
expect class GoogleAuthProvider {
@Composable
fun getUiProvider(): GoogleAuthenticator
@arulwastaken
arulwastaken / ImageCaptureView.kt
Last active July 18, 2025 11:03
Common ImageCaptureView Includes with custom camera design
@Preview
@Composable
fun ImageCaptureView(onImageCaptured: (Path?) -> Unit, onClose: () -> Unit = {}) {
val scope = rememberCoroutineScope()
val callback = remember {
object : CameraCallback() {
override fun onCaptureImage(image: Path?, error: String?) {
showToast("Image Captured $image")
onImageCaptured(image)
@arulwastaken
arulwastaken / Camera.ios.kt
Created July 18, 2025 10:26
/iosMain/Camera.ios.kt
@OptIn(ExperimentalForeignApi::class)
@Composable
actual fun CameraView(callback: CameraCallback) {
val session = AVCaptureSession()
session.sessionPreset = AVCaptureSessionPresetPhoto
val output = AVCaptureStillImageOutput().apply {
outputSettings = mapOf(AVVideoCodecKey to platform.AVFoundation.AVVideoCodecJPEG)
}
session.addOutput(output)
val cameraPreviewLayer = AVCaptureVideoPreviewLayer(session = session)
@arulwastaken
arulwastaken / Camera.android.kt
Created July 18, 2025 09:41
/androidMain/CameraView.android.kt
package com.codingwitharul.bookmyslot.common
import android.content.Context
import android.net.Uri
import android.util.Log
import androidx.camera.core.CameraSelector
import androidx.camera.core.ImageCapture
import androidx.camera.core.ImageCapture.OutputFileOptions.Builder
import androidx.camera.core.ImageCaptureException
import androidx.camera.core.Preview
@arulwastaken
arulwastaken / Camera.kt
Last active July 18, 2025 06:17
/commonMain/common/Camera.kt
sealed class CameraEvent {
object Init : CameraEvent()
object CaptureImage : CameraEvent()
object SwitchCamera : CameraEvent()
}
abstract class CameraCallback {
private val _event = Channel<CameraEvent>()
val eventFlow: Flow<CameraEvent> get() = _event.receiveAsFlow()
suspend fun sendEvent(event: CameraEvent) {
package com.codingwitharul.bookmyslot.data.repo
import com.codingwitharul.bookmyslot.data.db.DatabaseHelper
import com.codingwitharul.bookmyslot.data.networking.ApiClientHelper
import com.codingwitharul.bookmyslot.data.networking.EndPoints
import com.codingwitharul.bookmyslot.data.networking.apiEndPoint
import com.codingwitharul.bookmyslot.data.networking.models.ApiResponse
import com.codingwitharul.bookmyslot.data.networking.models.ErrorType
import com.codingwitharul.bookmyslot.data.networking.models.getErrorData
import com.codingwitharul.bookmyslot.data.networking.safeRequest