Fix missing background on video player bar.

This commit is contained in:
Alex Hart 2021-07-22 11:10:57 -03:00
parent aa67c82634
commit ce31e642dd
4 changed files with 41 additions and 21 deletions

View file

@ -57,6 +57,7 @@ import android.view.View.OnKeyListener;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.widget.Button; import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
@ -381,7 +382,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
private MenuItem searchViewItem; private MenuItem searchViewItem;
private MessageRequestsBottomView messageRequestBottomView; private MessageRequestsBottomView messageRequestBottomView;
private ConversationReactionDelegate reactionDelegate; private ConversationReactionDelegate reactionDelegate;
private Stub<VoiceNotePlayerView> voiceNotePlayerViewStub; private Stub<FrameLayout> voiceNotePlayerViewStub;
private AttachmentManager attachmentManager; private AttachmentManager attachmentManager;
private AudioRecorder audioRecorder; private AudioRecorder audioRecorder;
@ -413,6 +414,7 @@ public class ConversationActivity extends PassphraseRequiredActivity
private VoiceRecorderWakeLock voiceRecorderWakeLock; private VoiceRecorderWakeLock voiceRecorderWakeLock;
private DraftViewModel draftViewModel; private DraftViewModel draftViewModel;
private VoiceNoteMediaController voiceNoteMediaController; private VoiceNoteMediaController voiceNoteMediaController;
private VoiceNotePlayerView voiceNotePlayerView;
private LiveRecipient recipient; private LiveRecipient recipient;
@ -2076,19 +2078,25 @@ public class ConversationActivity extends PassphraseRequiredActivity
voiceNoteMediaController.getVoiceNotePlayerViewState().observe(this, state -> { voiceNoteMediaController.getVoiceNotePlayerViewState().observe(this, state -> {
if (state.isPresent()) { if (state.isPresent()) {
if (!voiceNotePlayerViewStub.resolved()) { requireVoiceNotePlayerView().show();
voiceNotePlayerViewStub.get().setListener(new VoiceNotePlayerViewListener()); requireVoiceNotePlayerView().setState(state.get());
}
voiceNotePlayerViewStub.get().show();
voiceNotePlayerViewStub.get().setState(state.get());
} else if (voiceNotePlayerViewStub.resolved()) { } else if (voiceNotePlayerViewStub.resolved()) {
voiceNotePlayerViewStub.get().hide(); requireVoiceNotePlayerView().hide();
} }
}); });
voiceNoteMediaController.getVoiceNotePlaybackState().observe(ConversationActivity.this, inputPanel.getPlaybackStateObserver()); voiceNoteMediaController.getVoiceNotePlaybackState().observe(ConversationActivity.this, inputPanel.getPlaybackStateObserver());
} }
private @NonNull VoiceNotePlayerView requireVoiceNotePlayerView() {
if (voiceNotePlayerView == null) {
voiceNotePlayerView = voiceNotePlayerViewStub.get().findViewById(R.id.voice_note_player_view);
voiceNotePlayerView.setListener(new VoiceNotePlayerViewListener());
}
return voiceNotePlayerView;
}
private void updateWallpaper(@Nullable ChatWallpaper chatWallpaper) { private void updateWallpaper(@Nullable ChatWallpaper chatWallpaper) {
Log.d(TAG, "Setting wallpaper."); Log.d(TAG, "Setting wallpaper.");
if (chatWallpaper != null) { if (chatWallpaper != null) {

View file

@ -38,6 +38,7 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
@ -58,8 +59,6 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet; import androidx.constraintlayout.widget.ConstraintSet;
import androidx.core.content.res.ResourcesCompat; import androidx.core.content.res.ResourcesCompat;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders; import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
@ -92,7 +91,6 @@ import org.thoughtcrime.securesms.components.reminder.ReminderView;
import org.thoughtcrime.securesms.components.reminder.ServiceOutageReminder; import org.thoughtcrime.securesms.components.reminder.ServiceOutageReminder;
import org.thoughtcrime.securesms.components.reminder.UnauthorizedReminder; import org.thoughtcrime.securesms.components.reminder.UnauthorizedReminder;
import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity; import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity;
import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaController;
import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaControllerOwner; import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaControllerOwner;
import org.thoughtcrime.securesms.components.voice.VoiceNotePlayerView; import org.thoughtcrime.securesms.components.voice.VoiceNotePlayerView;
import org.thoughtcrime.securesms.conversation.ConversationFragment; import org.thoughtcrime.securesms.conversation.ConversationFragment;
@ -195,7 +193,9 @@ public class ConversationListFragment extends MainFragment implements ActionMode
private Drawable archiveDrawable; private Drawable archiveDrawable;
private AppForegroundObserver.Listener appForegroundObserver; private AppForegroundObserver.Listener appForegroundObserver;
private VoiceNoteMediaControllerOwner mediaControllerOwner; private VoiceNoteMediaControllerOwner mediaControllerOwner;
private Stub<VoiceNotePlayerView> voiceNotePlayerViewStub; private Stub<FrameLayout> voiceNotePlayerViewStub;
private VoiceNotePlayerView voiceNotePlayerView;
private Stopwatch startupStopwatch; private Stopwatch startupStopwatch;
@ -531,18 +531,24 @@ public class ConversationListFragment extends MainFragment implements ActionMode
private void initializeVoiceNotePlayer() { private void initializeVoiceNotePlayer() {
mediaControllerOwner.getVoiceNoteMediaController().getVoiceNotePlayerViewState().observe(getViewLifecycleOwner(), state -> { mediaControllerOwner.getVoiceNoteMediaController().getVoiceNotePlayerViewState().observe(getViewLifecycleOwner(), state -> {
if (state.isPresent()) { if (state.isPresent()) {
if (!voiceNotePlayerViewStub.resolved()) { requireVoiceNotePlayerView().setState(state.get());
voiceNotePlayerViewStub.get().setListener(new VoiceNotePlayerViewListener()); requireVoiceNotePlayerView().show();
}
voiceNotePlayerViewStub.get().setState(state.get());
voiceNotePlayerViewStub.get().show();
} else if (voiceNotePlayerViewStub.resolved()) { } else if (voiceNotePlayerViewStub.resolved()) {
voiceNotePlayerViewStub.get().hide(); requireVoiceNotePlayerView().hide();
} }
}); });
} }
private @NonNull VoiceNotePlayerView requireVoiceNotePlayerView() {
if (voiceNotePlayerView == null) {
voiceNotePlayerView = voiceNotePlayerViewStub.get().findViewById(R.id.voice_note_player_view);
voiceNotePlayerView.setListener(new VoiceNotePlayerViewListener());
}
return voiceNotePlayerView;
}
private void initializeListAdapters() { private void initializeListAdapters() {
defaultAdapter = new ConversationListAdapter(GlideApp.with(this), this); defaultAdapter = new ConversationListAdapter(GlideApp.with(this), this);
searchAdapter = new ConversationListSearchAdapter(GlideApp.with(this), this, Locale.getDefault()); searchAdapter = new ConversationListSearchAdapter(GlideApp.with(this), this, Locale.getDefault());

View file

@ -1,5 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<org.thoughtcrime.securesms.components.voice.VoiceNotePlayerView xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/voice_note_player_view_background">
<org.thoughtcrime.securesms.components.voice.VoiceNotePlayerView
android:id="@+id/voice_note_player_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="?selectableItemBackground" /> android:background="?selectableItemBackground" />
</FrameLayout>

View file

@ -2,7 +2,6 @@
<merge xmlns:android="http://schemas.android.com/apk/res/android" <merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:background="@color/voice_note_player_view_background"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
<com.airbnb.lottie.LottieAnimationView <com.airbnb.lottie.LottieAnimationView