diff --git a/app/src/common/shared/com/igalia/wolvic/PlatformActivityPlugin.java b/app/src/common/shared/com/igalia/wolvic/PlatformActivityPlugin.java index 8e6ab79cae..bad5291d8c 100644 --- a/app/src/common/shared/com/igalia/wolvic/PlatformActivityPlugin.java +++ b/app/src/common/shared/com/igalia/wolvic/PlatformActivityPlugin.java @@ -2,4 +2,5 @@ public interface PlatformActivityPlugin { void onKeyboardVisibilityChange(boolean isVisible); + void onVideoAvailabilityChange(); } diff --git a/app/src/common/shared/com/igalia/wolvic/VRBrowserActivity.java b/app/src/common/shared/com/igalia/wolvic/VRBrowserActivity.java index 9db705dcd9..8e55333cb3 100644 --- a/app/src/common/shared/com/igalia/wolvic/VRBrowserActivity.java +++ b/app/src/common/shared/com/igalia/wolvic/VRBrowserActivity.java @@ -440,6 +440,10 @@ public void onWindowVideoAvailabilityChanged(@NonNull WindowWidget aWindow) { WidgetManagerDelegate.CPU_LEVEL_NORMAL; queueRunnable(() -> setCPULevelNative(cpuLevel)); + + if (mPlatformPlugin != null) { + mPlatformPlugin.onVideoAvailabilityChange(); + } } }); diff --git a/app/src/main/res/layout/visionglass_layout.xml b/app/src/main/res/layout/visionglass_layout.xml index 0d9263c716..9779d62045 100644 --- a/app/src/main/res/layout/visionglass_layout.xml +++ b/app/src/main/res/layout/visionglass_layout.xml @@ -1,5 +1,6 @@ @@ -47,6 +48,61 @@ android:layout_marginTop="10dp" android:layout_marginBottom="10dp"/> + + + + + + + + + + + + + + + + + + + { @@ -441,11 +486,61 @@ private void setupPhoneUI() { mDelegate.setHeadLockEnabled(headlockButton.isChecked()); }); + findViewById(R.id.phoneUIPlayButton).setOnClickListener(v -> { + Media media = getActiveMedia(); + if (media == null) + return; + if (media.isPlaying()) { + media.pause(); + } else { + media.play(); + } + }); + + findViewById(R.id.phoneUISeekBackward10Button).setOnClickListener(v -> { + Media media = getActiveMedia(); + if (media == null) + return; + media.seek(media.getCurrentTime() - 10); + }); + + findViewById(R.id.phoneUISeekForward30Button).setOnClickListener(v -> { + Media media = getActiveMedia(); + if (media == null) + return; + media.seek(media.getCurrentTime() + 30); + }); + findViewById(R.id.phoneUIVoiceButton).setOnClickListener(v -> { // Delegate all the voice input handling in the KeyboardWidget which already handles // all the potential voice input cases. mDelegate.getKeyboard().simulateVoiceButtonClick(); }); + + findViewById(R.id.phoneUIMuteButton).setOnClickListener(v -> { + Media media = getActiveMedia(); + if (media == null) + return; + media.setMuted(!media.isMuted()); + ((ImageButton) findViewById(R.id.phoneUIMuteButton)).setImageResource(!media.isMuted() ? R.drawable.ic_icon_media_volume : R.drawable.ic_icon_media_volume_muted); + }); + + mMediaSeekbar = findViewById(R.id.phoneUIMediaSeekBar); + mMediaSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int i, boolean b) {} + + @Override + public void onStartTrackingTouch(SeekBar seekBar) {} + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + Media media = getActiveMedia(); + if (media == null || !media.canSeek() || media.getDuration() == 0) + return; + media.seek((seekBar.getProgress() / 100.0) * media.getDuration()); + } + }); } }