Skip to content

Instantly share code, notes, and snippets.

View k0siara's full-sized avatar
🧐
Investigating a bug

Patryk Kosieradzki k0siara

🧐
Investigating a bug
View GitHub Profile
@k0siara
k0siara / NoticeDialogFragment.kt
Created November 5, 2022 21:15
NoticeDialogFragment.kt
class NoticeDialogFragment : DialogFragment() {
internal lateinit var listener: NoticeDialogListener
interface NoticeDialogListener {
fun onDialogPositiveClick(dialog: DialogFragment)
fun onDialogNegativeClick(dialog: DialogFragment)
}
override fun onAttach(context: Context) {
super.onAttach(context)
@k0siara
k0siara / BetterMyFragment.kt
Created November 5, 2022 21:10
BetterMyFragment.kt
class MyFragment : Fragment(R.layout.my_layout) {
fun onSomeAction() {
coroutineScope.launch {
// Code A
when (val dialogResult = showDialogAndAwaitResult()) {
DialogResult.Ok -> {
// Code C
}
@k0siara
k0siara / MyFragment.kt
Created November 5, 2022 21:08
MyFragment.kt
class MyFragment : Fragment(R.layout.my_layout) {
fun onSomeAction() {
// Code A
showDialog(
onOkClicked = { ... },
onCancelClicked = { ... }
)
@k0siara
k0siara / HomeFragment.kt
Last active November 5, 2022 21:05
HomeFragment.kt
class HomeFragment : Fragment(R.layout.home_fragment) {
private val binding by viewBinding<HomeFragmentBinding>()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.button.setOnClickListener {
findNavController().navigate(HomeFragmentDirections.toMyDialog())
}
@k0siara
k0siara / home_nav_graph.xml
Last active November 5, 2022 21:01
home_nav_graph.xml
<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/home_nav_graph"
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/homeFragment"
android:name="org.example.HomeFragment"
@k0siara
k0siara / main_nav_graph.xml
Last active November 5, 2022 20:59
main_nav_graph.xml
<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/main_nav_graph"
app:startDestination="@id/startDestinationFragment">
...
<include app:graph="@navigation/my_dialog_nav_graph" />
@k0siara
k0siara / my_dialog_nav_graph.xml
Created November 5, 2022 20:58
my_dialog_nav_graph.xml
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_dialog_nav_graph"
app:startDestination="@id/myDialog">
<dialog
android:id="@+id/myDialog"
android:name="com.example.MyDialog">
@k0siara
k0siara / SafeUseOfFragmentManager.kt
Last active May 16, 2023 03:54
SafeUseOfFragmentManager.kt
fun confirmStartGame() {
val fm = supportFragmentManager
if (fm.isStateSaved) return
    val newFragment = StartGameDialogFragment()
    newFragment.show(newFragment, "game")
}
@k0siara
k0siara / FragmentManagerExample.kt
Created November 5, 2022 20:51
FragmentManagerExample.kt
fun confirmStartGame() {
    val newFragment = StartGameDialogFragment()
    newFragment.show(supportFragmentManager, "game")
}
@k0siara
k0siara / CustomDialog.kt
Last active November 6, 2022 09:58
CustomDialog.kt
class CustomDialog : DialogFragment(R.layout.custom_dialog) {
private val binding by viewBinding<CustomDialogBinding>()
private val viewModel by viewModels<CustomDialogViewModel>()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// Setup UI and other stuff ...
}
}