Как отключить OnBackPressedCallback?

Я вызываю DialogFragment, и мне нужно чтобы пользователь не мог по нажатию на OnBackPressedCallback выйти из этого DialogFragment, проще говоря отключить возможность OnBackPressedCallback?

Пробовал решить это следующим образом, но не сработало

callback = new OnBackPressedCallback(true) {
            @Override
            public void handleOnBackPressed()
            {
                callback.setEnabled(false);
            }
        };

Полный код данного DialogFragment

public class DialogLogout extends DialogFragment {
    OnBackPressedCallback callback;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        callback = new OnBackPressedCallback(true) {
            @Override
            public void handleOnBackPressed()
            {
                callback.setEnabled(false);
            }
        };
        requireActivity().getOnBackPressedDispatcher().addCallback(this, callback);

        View view = inflater.inflate(R.layout.dialog_logout, container, false);
        TextView exit_yes = view.findViewById(R.id.exit_yes);
        TextView exit_no = view.findViewById(R.id.exit_no);

        exit_yes.setOnClickListener(v ->
                finish());

        exit_no.setOnClickListener(v -> Objects.requireNonNull(getDialog()).dismiss());
        return view;
    }
    private void finish() {
        if (getActivity() != null) {
            getActivity().finish();
        }
    }
}

Ответы (1 шт):

Автор решения: Andrew

Есть несколько вариантов, например можно запретить сворачивание диалога (доки):

DialogFragment mDialog= new MyDialogFragment();
mDialog.setCancelable(false);
mDialog.show(getFragmentManager(), "dialog");

так же можно в onResume данного диалога положить слушатель нажатия на кнопку:

getDialog().setOnKeyListener(new OnKeyListener()
    {
        @Override
        public boolean onKey(android.content.DialogInterface dialog, int keyCode,android.view.KeyEvent event) {

            if ((keyCode ==  android.view.KeyEvent.KEYCODE_BACK))
                {
                     //Hide your keyboard here!!!
                     return true; // pretend we've processed it
                }
            else 
                return false; // pass on to be processed as normal
        }
    });

При создании диалога можно добавить отключение сворачивания в onCreateView:

setCancelable(false);

вот подобные обсуждения: 1, 2

→ Ссылка