Ensure videos are paused properly in MediaSendActivity.
This commit is contained in:
parent
2f23a13a6f
commit
096c9e0ff7
6 changed files with 58 additions and 0 deletions
|
@ -82,9 +82,17 @@ public class MediaSendFragment extends Fragment {
|
|||
super.onHiddenChanged(hidden);
|
||||
if (!hidden) {
|
||||
viewModel.onImageEditorStarted();
|
||||
} else {
|
||||
fragmentPagerAdapter.notifyHidden();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
fragmentPagerAdapter.notifyHidden();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
|
@ -143,6 +151,7 @@ public class MediaSendFragment extends Fragment {
|
|||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
viewModel.onPageChanged(position);
|
||||
fragmentPagerAdapter.notifyPageChanged(position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,8 @@ import androidx.fragment.app.FragmentStatePagerAdapter;
|
|||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import org.thoughtcrime.securesms.scribbles.ImageEditorFragment;
|
||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||
|
||||
|
@ -119,4 +121,21 @@ class MediaSendFragmentPagerAdapter extends FragmentStatePagerAdapter {
|
|||
@Nullable View getPlaybackControls(int position) {
|
||||
return fragments.containsKey(position) ? fragments.get(position).getPlaybackControls() : null;
|
||||
}
|
||||
|
||||
void notifyHidden() {
|
||||
Stream.of(fragments.values()).forEach(MediaSendPageFragment::notifyHidden);
|
||||
}
|
||||
|
||||
void notifyPageChanged(int currentPage) {
|
||||
notifyHiddenIfExists(currentPage - 1);
|
||||
notifyHiddenIfExists(currentPage + 1);
|
||||
}
|
||||
|
||||
private void notifyHiddenIfExists(int position) {
|
||||
MediaSendPageFragment fragment = fragments.get(position);
|
||||
|
||||
if (fragment != null) {
|
||||
fragment.notifyHidden();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,4 +65,8 @@ public class MediaSendGifFragment extends Fragment implements MediaSendPageFragm
|
|||
|
||||
@Override
|
||||
public void restoreState(@NonNull Object state) { }
|
||||
|
||||
@Override
|
||||
public void notifyHidden() {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,4 +19,6 @@ public interface MediaSendPageFragment {
|
|||
@Nullable Object saveState();
|
||||
|
||||
void restoreState(@NonNull Object state);
|
||||
|
||||
void notifyHidden();
|
||||
}
|
||||
|
|
|
@ -59,6 +59,19 @@ public class MediaSendVideoFragment extends Fragment implements MediaSendPageFra
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
super.onPause();
|
||||
notifyHidden();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHiddenChanged(boolean hidden) {
|
||||
if (hidden) {
|
||||
notifyHidden();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUri(@NonNull Uri uri) {
|
||||
this.uri = uri;
|
||||
|
@ -82,4 +95,11 @@ public class MediaSendVideoFragment extends Fragment implements MediaSendPageFra
|
|||
|
||||
@Override
|
||||
public void restoreState(@NonNull Object state) { }
|
||||
|
||||
@Override
|
||||
public void notifyHidden() {
|
||||
if (getView() != null) {
|
||||
((VideoPlayer) getView()).pause();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -212,6 +212,10 @@ public final class ImageEditorFragment extends Fragment implements ImageEditorHu
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyHidden() {
|
||||
}
|
||||
|
||||
private void changeEntityColor(int selectedColor) {
|
||||
if (currentSelection != null) {
|
||||
Renderer renderer = currentSelection.getRenderer();
|
||||
|
|
Loading…
Add table
Reference in a new issue