Fix issue where postponed transition would not start at the right time.
This commit is contained in:
parent
39d07c0081
commit
2674fd2df4
5 changed files with 25 additions and 25 deletions
|
@ -61,6 +61,9 @@ class PhotoEditorFragment : Fragment(R.layout.avatar_photo_editor_fragment), Ima
|
||||||
Navigation.findNavController(requireView()).popBackStack()
|
Navigation.findNavController(requireView()).popBackStack()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun restoreState() {
|
||||||
|
}
|
||||||
|
|
||||||
override fun onMainImageLoaded() {
|
override fun onMainImageLoaded() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -183,6 +183,10 @@ public class AvatarSelectionActivity extends AppCompatActivity implements Camera
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restoreState() {
|
||||||
|
}
|
||||||
|
|
||||||
public boolean popToRoot() {
|
public boolean popToRoot() {
|
||||||
final int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
|
final int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
|
||||||
if (backStackCount == 0) {
|
if (backStackCount == 0) {
|
||||||
|
|
|
@ -69,11 +69,6 @@ class MediaReviewImagePageFragment : Fragment(R.layout.fragment_container), Imag
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewStateRestored(savedInstanceState: Bundle?) {
|
|
||||||
super.onViewStateRestored(savedInstanceState)
|
|
||||||
restoreImageEditorState()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onSaveInstanceState(outState: Bundle) {
|
override fun onSaveInstanceState(outState: Bundle) {
|
||||||
super.onSaveInstanceState(outState)
|
super.onSaveInstanceState(outState)
|
||||||
|
|
||||||
|
@ -84,7 +79,6 @@ class MediaReviewImagePageFragment : Fragment(R.layout.fragment_container), Imag
|
||||||
val fragmentInManager: ImageEditorFragment? = childFragmentManager.findFragmentByTag(IMAGE_EDITOR_TAG) as? ImageEditorFragment
|
val fragmentInManager: ImageEditorFragment? = childFragmentManager.findFragmentByTag(IMAGE_EDITOR_TAG) as? ImageEditorFragment
|
||||||
|
|
||||||
return if (fragmentInManager != null) {
|
return if (fragmentInManager != null) {
|
||||||
sharedViewModel.sendCommand(HudCommand.ResumeEntryTransition)
|
|
||||||
fragmentInManager
|
fragmentInManager
|
||||||
} else {
|
} else {
|
||||||
val imageEditorFragment = ImageEditorFragment.newInstance(
|
val imageEditorFragment = ImageEditorFragment.newInstance(
|
||||||
|
@ -131,7 +125,7 @@ class MediaReviewImagePageFragment : Fragment(R.layout.fragment_container), Imag
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCancelEditing() {
|
override fun onCancelEditing() {
|
||||||
restoreImageEditorState()
|
restoreState()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onMainImageLoaded() {
|
override fun onMainImageLoaded() {
|
||||||
|
@ -142,7 +136,7 @@ class MediaReviewImagePageFragment : Fragment(R.layout.fragment_container), Imag
|
||||||
sharedViewModel.sendCommand(HudCommand.ResumeEntryTransition)
|
sharedViewModel.sendCommand(HudCommand.ResumeEntryTransition)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun restoreImageEditorState() {
|
override fun restoreState() {
|
||||||
val data = sharedViewModel.getEditorState(requireUri()) as? ImageEditorFragment.Data
|
val data = sharedViewModel.getEditorState(requireUri()) as? ImageEditorFragment.Data
|
||||||
|
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
|
|
|
@ -23,7 +23,6 @@ import androidx.recyclerview.widget.ItemTouchHelper
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import androidx.viewpager2.widget.ViewPager2
|
import androidx.viewpager2.widget.ViewPager2
|
||||||
import app.cash.exhaustive.Exhaustive
|
import app.cash.exhaustive.Exhaustive
|
||||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
|
import org.thoughtcrime.securesms.contacts.paged.ContactSearchKey
|
||||||
import org.thoughtcrime.securesms.conversation.MessageSendType
|
import org.thoughtcrime.securesms.conversation.MessageSendType
|
||||||
|
@ -40,6 +39,7 @@ import org.thoughtcrime.securesms.mediasend.v2.MediaValidator
|
||||||
import org.thoughtcrime.securesms.mediasend.v2.stories.StoriesMultiselectForwardActivity
|
import org.thoughtcrime.securesms.mediasend.v2.stories.StoriesMultiselectForwardActivity
|
||||||
import org.thoughtcrime.securesms.mms.SentMediaQuality
|
import org.thoughtcrime.securesms.mms.SentMediaQuality
|
||||||
import org.thoughtcrime.securesms.permissions.Permissions
|
import org.thoughtcrime.securesms.permissions.Permissions
|
||||||
|
import org.thoughtcrime.securesms.util.LifecycleDisposable
|
||||||
import org.thoughtcrime.securesms.util.MediaUtil
|
import org.thoughtcrime.securesms.util.MediaUtil
|
||||||
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
|
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
|
||||||
import org.thoughtcrime.securesms.util.fragments.requireListener
|
import org.thoughtcrime.securesms.util.fragments.requireListener
|
||||||
|
@ -80,11 +80,13 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
|
||||||
)
|
)
|
||||||
|
|
||||||
private var animatorSet: AnimatorSet? = null
|
private var animatorSet: AnimatorSet? = null
|
||||||
private var disposables: CompositeDisposable? = null
|
private var disposables: LifecycleDisposable = LifecycleDisposable()
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
postponeEnterTransition()
|
postponeEnterTransition()
|
||||||
|
|
||||||
|
disposables.bindTo(viewLifecycleOwner)
|
||||||
|
|
||||||
callback = requireListener()
|
callback = requireListener()
|
||||||
|
|
||||||
drawToolButton = view.findViewById(R.id.draw_tool)
|
drawToolButton = view.findViewById(R.id.draw_tool)
|
||||||
|
@ -110,15 +112,12 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
|
||||||
|
|
||||||
val pagerAdapter = MediaReviewFragmentPagerAdapter(this)
|
val pagerAdapter = MediaReviewFragmentPagerAdapter(this)
|
||||||
|
|
||||||
disposables = CompositeDisposable()
|
disposables += sharedViewModel.hudCommands.subscribe {
|
||||||
disposables?.add(
|
when (it) {
|
||||||
sharedViewModel.hudCommands.subscribe {
|
HudCommand.ResumeEntryTransition -> startPostponedEnterTransition()
|
||||||
when (it) {
|
else -> Unit
|
||||||
HudCommand.ResumeEntryTransition -> startPostponedEnterTransition()
|
|
||||||
else -> Unit
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
}
|
||||||
|
|
||||||
pager.adapter = pagerAdapter
|
pager.adapter = pagerAdapter
|
||||||
|
|
||||||
|
@ -251,11 +250,6 @@ class MediaReviewFragment : Fragment(R.layout.v2_media_review_fragment) {
|
||||||
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults)
|
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
|
||||||
disposables?.dispose()
|
|
||||||
super.onDestroyView()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun handleMediaValidatorFilterError(error: MediaValidator.FilterError) {
|
private fun handleMediaValidatorFilterError(error: MediaValidator.FilterError) {
|
||||||
@Exhaustive
|
@Exhaustive
|
||||||
when (error) {
|
when (error) {
|
||||||
|
|
|
@ -220,6 +220,7 @@ public final class ImageEditorFragment extends Fragment implements ImageEditorHu
|
||||||
@Override
|
@Override
|
||||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
controller.restoreState();
|
||||||
|
|
||||||
Mode mode = Mode.getByCode(requireArguments().getString(KEY_MODE));
|
Mode mode = Mode.getByCode(requireArguments().getString(KEY_MODE));
|
||||||
|
|
||||||
|
@ -588,8 +589,10 @@ public final class ImageEditorFragment extends Fragment implements ImageEditorHu
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClearAll() {
|
public void onClearAll() {
|
||||||
imageEditorView.getModel().clearUndoStack();
|
if (imageEditorView != null) {
|
||||||
updateHudDialRotation();
|
imageEditorView.getModel().clearUndoStack();
|
||||||
|
updateHudDialRotation();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1050,6 +1053,8 @@ public final class ImageEditorFragment extends Fragment implements ImageEditorHu
|
||||||
void onMainImageLoaded();
|
void onMainImageLoaded();
|
||||||
|
|
||||||
void onMainImageFailedToLoad();
|
void onMainImageFailedToLoad();
|
||||||
|
|
||||||
|
void restoreState();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class FaceDetectionResult {
|
private static class FaceDetectionResult {
|
||||||
|
|
Loading…
Add table
Reference in a new issue