Fix a couple issues with fragmentization refactor.

* Fix a crash from detached fragment.
* Fix sticker search sends.
This commit is contained in:
Alex Hart
2022-02-03 14:48:52 -04:00
committed by GitHub
parent bfae20941a
commit f0414922be
3 changed files with 23 additions and 3 deletions

View File

@@ -200,6 +200,8 @@ import org.thoughtcrime.securesms.keyboard.KeyboardPagerViewModel;
import org.thoughtcrime.securesms.keyboard.emoji.EmojiKeyboardPageFragment;
import org.thoughtcrime.securesms.keyboard.emoji.search.EmojiSearchFragment;
import org.thoughtcrime.securesms.keyboard.gif.GifKeyboardPageFragment;
import org.thoughtcrime.securesms.keyboard.sticker.StickerKeyboardPageFragment;
import org.thoughtcrime.securesms.keyboard.sticker.StickerSearchDialogFragment;
import org.thoughtcrime.securesms.keyvalue.PaymentsValues;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.linkpreview.LinkPreview;
@@ -338,7 +340,8 @@ public class ConversationParentFragment extends Fragment
EmojiEventListener,
GifKeyboardPageFragment.Host,
EmojiKeyboardPageFragment.Callback,
EmojiSearchFragment.Callback
EmojiSearchFragment.Callback,
StickerKeyboardPageFragment.Callback
{
private static final int SHORTCUT_ICON_SIZE = Build.VERSION.SDK_INT >= 26 ? ViewUtil.dpToPx(72) : ViewUtil.dpToPx(48 + 16 * 2);
@@ -2473,6 +2476,11 @@ public class ConversationParentFragment extends Fragment
}
private void onRecipientChanged(@NonNull Recipient recipient) {
if (getContext() == null) {
Log.w(TAG, "onRecipientChanged called in detached state. Ignoring.");
return;
}
Log.i(TAG, "onModified(" + recipient.getId() + ") " + recipient.getRegistered());
titleView.setTitle(glideRequests, recipient);
titleView.setVerified(identityRecords.isVerified());
@@ -3460,6 +3468,10 @@ public class ConversationParentFragment extends Fragment
return voiceNoteMediaController;
}
@Override public void openStickerSearch() {
StickerSearchDialogFragment.show(getChildFragmentManager());
}
// Listeners
private final class DeleteCanceledVoiceNoteListener implements ListenableFuture.Listener<VoiceNoteDraft> {

View File

@@ -87,11 +87,14 @@ class StickerKeyboardPageFragment :
view.findViewById<KeyboardPageSearchView>(R.id.sticker_keyboard_search_text).callbacks = object : KeyboardPageSearchView.Callbacks {
override fun onClicked() {
StickerSearchDialogFragment.show(requireActivity().supportFragmentManager)
findListener<Callback>()!!.openStickerSearch()
}
}
view.findViewById<View>(R.id.sticker_search).setOnClickListener { StickerSearchDialogFragment.show(requireActivity().supportFragmentManager) }
view.findViewById<View>(R.id.sticker_search).setOnClickListener {
findListener<Callback>()!!.openStickerSearch()
}
view.findViewById<View>(R.id.sticker_manage).setOnClickListener { findListener<StickerEventListener>()?.onStickerManagementClicked() }
ApplicationDependencies.getDatabaseObserver().registerStickerObserver(this)
@@ -237,4 +240,8 @@ class StickerKeyboardPageFragment :
}
}
}
interface Callback {
fun openStickerSearch()
}
}

View File

@@ -96,6 +96,7 @@ class StickerSearchDialogFragment : DialogFragment(), KeyboardStickerListAdapter
override fun onStickerLongClicked(sticker: KeyboardStickerListAdapter.Sticker) = Unit
companion object {
@JvmStatic
fun show(fragmentManager: FragmentManager) {
StickerSearchDialogFragment().show(fragmentManager, "TAG")
}