@@ -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
@@ -51,18 +50,20 @@ import timber.log.Timber
5150 *
5251 * This is visible on [StudyOptionsFragment]
5352 */
54- class EditDeckDescriptionDialog : DialogFragment (R .layout.dialog_deck_description ) {
53+ class EditDeckDescriptionDialog : DialogFragment () {
5554 private val deckId: DeckId
5655 get() = requireArguments().getLong(ARG_DECK_ID )
5756
57+ private lateinit var dialogView: View
58+
5859 private val deckDescriptionInput: TextInputEditText
59- get() = requireView() .findViewById(R .id.deck_description_input)
60+ get() = dialogView .findViewById(R .id.deck_description_input)
6061
6162 private val formatAsMarkdownInput: CheckBox
62- get() = requireView() .findViewById(R .id.format_as_markdown)
63+ get() = dialogView .findViewById(R .id.format_as_markdown)
6364
6465 private val topAppBar: MaterialToolbar
65- get() = requireView() .findViewById(R .id.topAppBar)
66+ get() = dialogView .findViewById(R .id.topAppBar)
6667
6768 private val saveMenuItem: MenuItem
6869 get() = topAppBar.menu.findItem(R .id.action_save)
@@ -95,26 +96,20 @@ class EditDeckDescriptionDialog : DialogFragment(R.layout.dialog_deck_descriptio
9596 }
9697 }
9798
98- override fun onCreateDialog (savedInstanceState : Bundle ? ): Dialog =
99- super .onCreateDialog(savedInstanceState).also {
100- it.setCanceledOnTouchOutside(false )
101- it.setCancelable(false )
102- try {
103- (it as androidx.activity.ComponentDialog )
104- .onBackPressedDispatcher
105- .addCallback(this , onUnsavedChangesBackCallback)
106- } catch (e: Exception ) {
107- Timber .w(e, " EditDeckDescription::backPressed" )
108- CrashReportService .sendExceptionReport(e, " EditDeckDescription" , " backPressed" , onlyIfSilent = true )
99+ override fun onCreateDialog (savedInstanceState : Bundle ? ): Dialog {
100+ this .dialogView = layoutInflater.inflate(R .layout.dialog_deck_description, null )
101+ return MaterialAlertDialogBuilder (requireContext())
102+ .show {
103+ setView(dialogView)
104+ }.apply {
105+ setupDialogView(dialogView)
106+ setCanceledOnTouchOutside(false )
107+ setCancelable(false )
108+ onBackPressedDispatcher.addCallback(this , onUnsavedChangesBackCallback)
109109 }
110- }
111-
112- override fun onViewCreated (
113- view : View ,
114- savedInstanceState : Bundle ? ,
115- ) {
116- super .onViewCreated(view, savedInstanceState)
110+ }
117111
112+ fun setupDialogView (view : View ) {
118113 // load initial state
119114 launchCatchingTask {
120115 val dialog = this @EditDeckDescriptionDialog
0 commit comments