This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Validation functions that returns a lists of error messages as UiText. | |
private const val ValidPasswordSpecialCharacters = "!?\$&#._-" | |
private const val ValidUsernameSpecialCharacters = "$&._-" | |
private const val MinDigitCount = 1 | |
private const val MinSpecialCharacterCount = 1 | |
private const val MinPasswordLength = 8 | |
private const val MaxPasswordLength = 25 | |
private const val MinUsernameLength = 2 | |
private const val MaxUsernameLength = 25 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.view.View | |
import androidx.lifecycle.Lifecycle | |
import androidx.lifecycle.LifecycleEventObserver | |
import androidx.lifecycle.LifecycleOwner | |
import androidx.lifecycle.findViewTreeLifecycleOwner | |
import kotlinx.coroutines.CoroutineScope | |
import kotlinx.coroutines.Dispatchers | |
import kotlinx.coroutines.SupervisorJob | |
import kotlinx.coroutines.cancel | |
import kotlinx.coroutines.launch |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import android.os.Bundle | |
import android.widget.Toast | |
import androidx.appcompat.app.AppCompatActivity | |
class MainActivity : AppCompatActivity() { | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@file:Suppress("NOTHING_TO_INLINE") | |
import android.animation.ArgbEvaluator | |
import android.animation.TimeInterpolator | |
import android.animation.TypeEvaluator | |
import android.animation.ValueAnimator | |
import android.view.animation.LinearInterpolator | |
import kotlinx.coroutines.channels.awaitClose | |
import kotlinx.coroutines.flow.Flow | |
import kotlinx.coroutines.flow.callbackFlow |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import androidx.recyclerview.widget.LinearLayoutManager | |
import androidx.recyclerview.widget.RecyclerView | |
import kotlinx.coroutines.channels.awaitClose | |
import kotlinx.coroutines.flow.Flow | |
import kotlinx.coroutines.flow.callbackFlow | |
import kotlinx.coroutines.flow.distinctUntilChanged | |
fun <K : Any> RecyclerView.itemVisibilityFlow( | |
itemKey: K, | |
getItemKey: (position: Int) -> K?, |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import androidx.recyclerview.widget.AsyncListDiffer | |
import androidx.recyclerview.widget.ListAdapter | |
import kotlinx.coroutines.channels.awaitClose | |
import kotlinx.coroutines.flow.Flow | |
import kotlinx.coroutines.flow.callbackFlow | |
import kotlinx.coroutines.flow.emptyFlow | |
import kotlinx.coroutines.suspendCancellableCoroutine | |
import kotlin.reflect.full.allSuperclasses | |
suspend fun <T : Any> ListAdapter<T, *>.awaitCurrentListChanged( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import androidx.fragment.app.Fragment | |
import androidx.fragment.app.FragmentActivity | |
import androidx.fragment.app.FragmentManager | |
import androidx.lifecycle.Lifecycle | |
import androidx.recyclerview.widget.AsyncListDiffer | |
import androidx.recyclerview.widget.AsyncListDiffer.ListListener | |
import androidx.recyclerview.widget.DiffUtil | |
import androidx.viewpager2.adapter.FragmentStateAdapter | |
abstract class FragmentStateListAdapter<T>( |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package packagename | |
import androidx.activity.ComponentActivity | |
import androidx.activity.compose.rememberLauncherForActivityResult | |
import androidx.activity.result.ActivityResultCallback | |
import androidx.activity.result.ActivityResultLauncher | |
import androidx.activity.result.contract.ActivityResultContract | |
import androidx.compose.runtime.Composable | |
import androidx.compose.runtime.remember | |
import androidx.compose.runtime.rememberCoroutineScope |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import androidx.recyclerview.widget.AdapterListUpdateCallback | |
import androidx.recyclerview.widget.AsyncDifferConfig | |
import androidx.recyclerview.widget.AsyncListDiffer | |
import androidx.recyclerview.widget.AsyncListDiffer.ListListener | |
import androidx.recyclerview.widget.DiffUtil | |
import androidx.recyclerview.widget.RecyclerView | |
abstract class ExtendedListAdapter<T, VH : RecyclerView.ViewHolder> : RecyclerView.Adapter<VH> { | |
val currentList: List<T> get() = _differ.currentList |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import kotlin.reflect.KClass | |
fun main() { | |
val baseDependencies = listOf( | |
Gun(bullets = 50), | |
Hammer(power = 100), | |
) | |
val dependencyClasses = listOf( | |
Hero::class, |
OlderNewer