Skip to content

Instantly share code, notes, and snippets.

View caiodev's full-sized avatar
🎯
Focusing

Caio Costa 🇧🇷🇵🇹 caiodev

🎯
Focusing
View GitHub Profile
@caiodev
caiodev / NetworkChecker.kt
Created March 11, 2024 21:21
Code To Detect Internet Connection State Changes As Well As One-Time Requests On Android - Android API 23 (Marshmallow)
import android.net.ConnectivityManager
import android.net.Network
import android.net.NetworkCapabilities
import android.net.NetworkRequest
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
@caiodev
caiodev / MainActivity.kt
Last active November 1, 2020 16:13
Proto DataStore
package com.example.protodatastoreplayground
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.datastore.DataStore
import androidx.datastore.Serializer
import androidx.datastore.createDataStore
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
@caiodev
caiodev / gist:92375d8b4572380ead323e99071b0d5f
Created August 29, 2020 08:00
kotlin.serialization Error
Duplicate class kotlinx.serialization.AbstractSerialFormat found in modules jetified-kotlinx-serialization-core-jvm-1.0.0-RC.jar (org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.0.0-RC) and jetified-kotlinx-serialization-runtime-jvm-1.0-M1-1.4.0-rc.jar (org.jetbrains.kotlinx:kotlinx-serialization-runtime-jvm:1.0-M1-1.4.0-rc)
Duplicate class kotlinx.serialization.BinaryFormat found in modules jetified-kotlinx-serialization-core-jvm-1.0.0-RC.jar (org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.0.0-RC) and jetified-kotlinx-serialization-runtime-jvm-1.0-M1-1.4.0-rc.jar (org.jetbrains.kotlinx:kotlinx-serialization-runtime-jvm:1.0-M1-1.4.0-rc)
Duplicate class kotlinx.serialization.Contextual found in modules jetified-kotlinx-serialization-core-jvm-1.0.0-RC.jar (org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.0.0-RC) and jetified-kotlinx-serialization-runtime-jvm-1.0-M1-1.4.0-rc.jar (org.jetbrains.kotlinx:kotlinx-serialization-runtime-jvm:1.0-M1-1.4.0-rc)
Duplicate class kotlinx.serialization.Co
@caiodev
caiodev / CoroutinesTestExtension.kt
Last active March 11, 2024 02:15
Test extensions for JUnit 5 unit tests on Coroutines and LiveData
import kotlin.test.assertEquals
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.UnconfinedTestDispatcher
import kotlinx.coroutines.test.resetMain
import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.test.setMain
import org.junit.jupiter.api.Test
{
"files":{
"Rime+小鹤双拼+颜文字+笔画混合输入方案.md":{
"filename":"Rime+小鹤双拼+颜文字+笔画混合输入方案.md",
"type":"text/markdown",
"language":"Markdown",
"raw_url":"https://gist.githubusercontent.com/logithm/9592e4c62c912af382ae56b38930416d/raw/c14161a6bb07796e63350ef312a057df8a88995c/Rime+%E5%B0%8F%E9%B9%A4%E5%8F%8C%E6%8B%BC+%E9%A2%9C%E6%96%87%E5%AD%97+%E7%AC%94%E7%94%BB%E6%B7%B7%E5%90%88%E8%BE%93%E5%85%A5%E6%96%B9%E6%A1%88.md",
"size":1880
},
"X_emoji.dict.yaml":{
@caiodev
caiodev / NetworkChecking.kt
Created December 17, 2019 19:03
Check internet connection reactively
object NetworkChecking {
private val networkState = MutableLiveData<Boolean>()
private val networkRequest = NetworkRequest.Builder().apply {
addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
}
private val connectivityCallback = object : ConnectivityManager.NetworkCallback() {
@caiodev
caiodev / NetworkChecking.kt
Last active December 17, 2019 19:07
Check internet connection on Android
object NetworkChecking {
//Checks whether or not there is internet connection
fun checkIfInternetConnectionIsAvailable(applicationContext: Context): Int {
(applicationContext.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager).apply {
allNetworks.let { networkArray ->
if (networkArray.isNotEmpty()) {
networkArray.forEach { network ->
getNetworkCapabilities(network)?.let { networkCapabilities ->
if (networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)) {
@caiodev
caiodev / README-Template.md
Created February 11, 2019 18:42 — forked from PurpleBooth/README-Template.md
A template to make good README.md

Project Title

One Paragraph of project description goes here

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

XML Code:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".MainActivity">
package com.example.unknown.firebasetest;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;