@@ -32,7 +32,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
3232import com.google.android.material.textfield.TextInputEditText
3333import com.ichi2.anki.CollectionManager.TR
3434import com.ichi2.anki.CollectionManager.withCol
35- import com.ichi2.anki.CrashReportService
3635import com.ichi2.anki.R
3736import com.ichi2.anki.StudyOptionsFragment
3837import com.ichi2.anki.launchCatchingTask
@@ -50,18 +49,20 @@ import timber.log.Timber
5049 *
5150 * This is visible on [StudyOptionsFragment]
5251 */
53- class EditDeckDescriptionDialog : DialogFragment (R .layout.dialog_deck_description ) {
52+ class EditDeckDescriptionDialog : DialogFragment () {
5453 private val deckId: DeckId
5554 get() = requireArguments().getLong(ARG_DECK_ID )
5655
56+ private lateinit var dialogView: View
57+
5758 private val deckDescriptionInput: TextInputEditText
58- get() = requireView() .findViewById(R .id.deck_description_input)
59+ get() = dialogView .findViewById(R .id.deck_description_input)
5960
6061 private val formatAsMarkdownInput: CheckBox
61- get() = requireView() .findViewById(R .id.format_as_markdown)
62+ get() = dialogView .findViewById(R .id.format_as_markdown)
6263
6364 private val topAppBar: MaterialToolbar
64- get() = requireView() .findViewById(R .id.topAppBar)
65+ get() = dialogView .findViewById(R .id.topAppBar)
6566
6667 private val saveMenuItem: MenuItem
6768 get() = topAppBar.menu.findItem(R .id.action_save)
@@ -94,26 +95,20 @@ class EditDeckDescriptionDialog : DialogFragment(R.layout.dialog_deck_descriptio
9495 }
9596 }
9697
97- override fun onCreateDialog (savedInstanceState : Bundle ? ): Dialog =
98- super .onCreateDialog(savedInstanceState).also {
99- it.setCanceledOnTouchOutside(false )
100- it.setCancelable(false )
101- try {
102- (it as androidx.activity.ComponentDialog )
103- .onBackPressedDispatcher
104- .addCallback(this , onUnsavedChangesBackCallback)
105- } catch (e: Exception ) {
106- Timber .w(e, " EditDeckDescription::backPressed" )
107- CrashReportService .sendExceptionReport(e, " EditDeckDescription" , " backPressed" , onlyIfSilent = true )
98+ override fun onCreateDialog (savedInstanceState : Bundle ? ): Dialog {
99+ this .dialogView = layoutInflater.inflate(R .layout.dialog_deck_description, null )
100+ return MaterialAlertDialogBuilder (requireContext())
101+ .show {
102+ setView(dialogView)
103+ }.apply {
104+ setupDialogView(dialogView)
105+ setCanceledOnTouchOutside(false )
106+ setCancelable(false )
107+ onBackPressedDispatcher.addCallback(this , onUnsavedChangesBackCallback)
108108 }
109- }
110-
111- override fun onViewCreated (
112- view : View ,
113- savedInstanceState : Bundle ? ,
114- ) {
115- super .onViewCreated(view, savedInstanceState)
109+ }
116110
111+ fun setupDialogView (view : View ) {
117112 // load initial state
118113 launchCatchingTask {
119114 val dialog = this @EditDeckDescriptionDialog
0 commit comments