Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,83 +6,75 @@
package org.mozilla.vrbrowser.ui.widgets.settings;

import android.content.Context;
import android.widget.ScrollView;
import android.view.LayoutInflater;

import androidx.databinding.DataBindingUtil;

import org.mozilla.vrbrowser.R;
import org.mozilla.vrbrowser.audio.AudioEngine;
import org.mozilla.vrbrowser.browser.SettingsStore;
import org.mozilla.vrbrowser.ui.views.UIButton;
import org.mozilla.vrbrowser.ui.views.settings.ButtonSetting;
import org.mozilla.vrbrowser.databinding.OptionsControllerBinding;
import org.mozilla.vrbrowser.ui.views.settings.RadioGroupSetting;
import org.mozilla.vrbrowser.ui.widgets.WidgetManagerDelegate;

class ControllerOptionsView extends SettingsView {
private AudioEngine mAudio;
private UIButton mBackButton;
private RadioGroupSetting mPointerColorRadio;
private RadioGroupSetting mScrollDirectionRadio;
private ButtonSetting mResetButton;

private OptionsControllerBinding mBinding;

public ControllerOptionsView(Context aContext, WidgetManagerDelegate aWidgetManager) {
super(aContext, aWidgetManager);
initialize(aContext);
}

private void initialize(Context aContext) {
inflate(aContext, R.layout.options_controller, this);
mAudio = AudioEngine.fromContext(aContext);
LayoutInflater inflater = LayoutInflater.from(aContext);

// Inflate this data binding layout
mBinding = DataBindingUtil.inflate(inflater, R.layout.options_controller, this, true);

mBackButton = findViewById(R.id.backButton);
mBackButton.setOnClickListener(view -> {
if (mAudio != null) {
mAudio.playSound(AudioEngine.Sound.CLICK);
}
onDismiss();
});
mScrollbar = mBinding.scrollbar;

mScrollbar = findViewById(R.id.scrollbar);
// Header
mBinding.headerLayout.setBackClickListener(view -> onDismiss());

// Footer
mBinding.footerLayout.setResetClickListener(v -> resetOptions());

int color = SettingsStore.getInstance(getContext()).getPointerColor();
mPointerColorRadio = findViewById(R.id.pointer_color_radio);
mPointerColorRadio.setOnCheckedChangeListener(mPointerColorListener);
setPointerColor(mPointerColorRadio.getIdForValue(color), false);
mBinding.pointerColorRadio.setOnCheckedChangeListener(mPointerColorListener);
setPointerColor(mBinding.pointerColorRadio.getIdForValue(color), false);

int scrollDirection = SettingsStore.getInstance(getContext()).getScrollDirection();
mScrollDirectionRadio = findViewById(R.id.scroll_direction_radio);
mScrollDirectionRadio.setOnCheckedChangeListener(mScrollDirectionListener);
setScrollDirection(mScrollDirectionRadio.getIdForValue(scrollDirection), false);

mResetButton = findViewById(R.id.resetButton);
mResetButton.setOnClickListener(v -> resetOptions());
mBinding.scrollDirectionRadio.setOnCheckedChangeListener(mScrollDirectionListener);
setScrollDirection(mBinding.scrollDirectionRadio.getIdForValue(scrollDirection), false);
}

private void resetOptions() {
if (!mPointerColorRadio.getValueForId(mPointerColorRadio.getCheckedRadioButtonId()).equals(SettingsStore.POINTER_COLOR_DEFAULT_DEFAULT)) {
setPointerColor(mPointerColorRadio.getIdForValue(SettingsStore.POINTER_COLOR_DEFAULT_DEFAULT), true);
if (!mBinding.pointerColorRadio.getValueForId(mBinding.pointerColorRadio.getCheckedRadioButtonId()).equals(SettingsStore.POINTER_COLOR_DEFAULT_DEFAULT)) {
setPointerColor(mBinding.pointerColorRadio.getIdForValue(SettingsStore.POINTER_COLOR_DEFAULT_DEFAULT), true);
}
if (!mScrollDirectionRadio.getValueForId(mScrollDirectionRadio.getCheckedRadioButtonId()).equals(SettingsStore.SCROLL_DIRECTION_DEFAULT)) {
setScrollDirection(mScrollDirectionRadio.getIdForValue(SettingsStore.SCROLL_DIRECTION_DEFAULT), true);
if (!mBinding.scrollDirectionRadio.getValueForId(mBinding.scrollDirectionRadio.getCheckedRadioButtonId()).equals(SettingsStore.SCROLL_DIRECTION_DEFAULT)) {
setScrollDirection(mBinding.scrollDirectionRadio.getIdForValue(SettingsStore.SCROLL_DIRECTION_DEFAULT), true);
}
}

private void setPointerColor(int checkedId, boolean doApply) {
mPointerColorRadio.setOnCheckedChangeListener(null);
mPointerColorRadio.setChecked(checkedId, doApply);
mPointerColorRadio.setOnCheckedChangeListener(mPointerColorListener);
mBinding.pointerColorRadio.setOnCheckedChangeListener(null);
mBinding.pointerColorRadio.setChecked(checkedId, doApply);
mBinding.pointerColorRadio.setOnCheckedChangeListener(mPointerColorListener);

if (doApply) {
SettingsStore.getInstance(getContext()).setPointerColor((int)mPointerColorRadio.getValueForId(checkedId));
SettingsStore.getInstance(getContext()).setPointerColor((int)mBinding.pointerColorRadio.getValueForId(checkedId));
mWidgetManager.updatePointerColor();
}
}

private void setScrollDirection(int checkedId, boolean doApply) {
mScrollDirectionRadio.setOnCheckedChangeListener(null);
mScrollDirectionRadio.setChecked(checkedId, doApply);
mScrollDirectionRadio.setOnCheckedChangeListener(mScrollDirectionListener);
mBinding.scrollDirectionRadio.setOnCheckedChangeListener(null);
mBinding.scrollDirectionRadio.setChecked(checkedId, doApply);
mBinding.scrollDirectionRadio.setOnCheckedChangeListener(mScrollDirectionListener);

if (doApply) {
SettingsStore.getInstance(getContext()).setScrollDirection((int)mScrollDirectionRadio.getValueForId(checkedId));
SettingsStore.getInstance(getContext()).setScrollDirection((int)mBinding.scrollDirectionRadio.getValueForId(checkedId));
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,76 +6,63 @@
package org.mozilla.vrbrowser.ui.widgets.settings;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;

import androidx.databinding.DataBindingUtil;

import org.mozilla.vrbrowser.R;
import org.mozilla.vrbrowser.audio.AudioEngine;
import org.mozilla.vrbrowser.browser.SettingsStore;
import org.mozilla.vrbrowser.browser.engine.SessionStore;
import org.mozilla.vrbrowser.ui.views.UIButton;
import org.mozilla.vrbrowser.ui.views.settings.ButtonSetting;
import org.mozilla.vrbrowser.databinding.OptionsDeveloperBinding;
import org.mozilla.vrbrowser.ui.views.settings.SwitchSetting;
import org.mozilla.vrbrowser.ui.widgets.WidgetManagerDelegate;

import static org.mozilla.vrbrowser.utils.ServoUtils.isServoAvailable;

class DeveloperOptionsView extends SettingsView {
private AudioEngine mAudio;
private UIButton mBackButton;
private SwitchSetting mRemoteDebuggingSwitch;
private SwitchSetting mConsoleLogsSwitch;
private SwitchSetting mMultiprocessSwitch;
private SwitchSetting mPerformanceSwitch;
private SwitchSetting mServoSwitch;
private ButtonSetting mResetButton;

private OptionsDeveloperBinding mBinding;

public DeveloperOptionsView(Context aContext, WidgetManagerDelegate aWidgetManager) {
super(aContext, aWidgetManager);
initialize(aContext);
}

private void initialize(Context aContext) {
inflate(aContext, R.layout.options_developer, this);
LayoutInflater inflater = LayoutInflater.from(aContext);

mAudio = AudioEngine.fromContext(aContext);
// Inflate this data binding layout
mBinding = DataBindingUtil.inflate(inflater, R.layout.options_developer, this, true);

mBackButton = findViewById(R.id.backButton);
mBackButton.setOnClickListener(view -> {
if (mAudio != null) {
mAudio.playSound(AudioEngine.Sound.CLICK);
}
mScrollbar = mBinding.scrollbar;

onDismiss();
});
// Header
mBinding.headerLayout.setBackClickListener(view -> onDismiss());

mRemoteDebuggingSwitch = findViewById(R.id.remote_debugging_switch);
mRemoteDebuggingSwitch.setOnCheckedChangeListener(mRemoteDebuggingListener);
// Footer
mBinding.footerLayout.setResetClickListener(mResetListener);

// Switches
mBinding.remoteDebuggingSwitch.setOnCheckedChangeListener(mRemoteDebuggingListener);
setRemoteDebugging(SettingsStore.getInstance(getContext()).isRemoteDebuggingEnabled(), false);

mConsoleLogsSwitch = findViewById(R.id.show_console_switch);
mConsoleLogsSwitch.setOnCheckedChangeListener(mConsoleLogsListener);
mBinding.showConsoleSwitch.setOnCheckedChangeListener(mConsoleLogsListener);
setConsoleLogs(SettingsStore.getInstance(getContext()).isConsoleLogsEnabled(), false);

mMultiprocessSwitch = findViewById(R.id.multiprocess_switch);
mMultiprocessSwitch.setOnCheckedChangeListener(mMultiprocessListener);
mBinding.multiprocessSwitch.setOnCheckedChangeListener(mMultiprocessListener);
setMultiprocess(SettingsStore.getInstance(getContext()).isMultiprocessEnabled(), false);

mPerformanceSwitch = findViewById(R.id.performance_monitor_switch);
mPerformanceSwitch.setOnCheckedChangeListener(mPerformanceListener);
mBinding.performanceMonitorSwitch.setOnCheckedChangeListener(mPerformanceListener);
setPerformance(SettingsStore.getInstance(getContext()).isPerformanceMonitorEnabled(), false);

mServoSwitch = findViewById(R.id.servo_switch);
if (!isServoAvailable()) {
mServoSwitch.setVisibility(View.GONE);
mBinding.servoSwitch.setVisibility(View.GONE);

} else {
mServoSwitch.setOnCheckedChangeListener(mServoListener);
mBinding.servoSwitch.setOnCheckedChangeListener(mServoListener);
setServo(SettingsStore.getInstance(getContext()).isServoEnabled(), false);
}

mResetButton = findViewById(R.id.resetButton);
mResetButton.setOnClickListener(mResetListener);

mScrollbar = findViewById(R.id.scrollbar);
}

private SwitchSetting.OnCheckedChangeListener mRemoteDebuggingListener = (compoundButton, value, doApply) -> {
Expand All @@ -100,30 +87,34 @@ private void initialize(Context aContext) {

private OnClickListener mResetListener = (view) -> {
boolean restart = false;
if (mRemoteDebuggingSwitch.isChecked() != SettingsStore.REMOTE_DEBUGGING_DEFAULT) {
if (mBinding.remoteDebuggingSwitch.isChecked() != SettingsStore.REMOTE_DEBUGGING_DEFAULT) {
setRemoteDebugging(SettingsStore.REMOTE_DEBUGGING_DEFAULT, true);
restart = true;
}

if (mConsoleLogsSwitch.isChecked() != SettingsStore.CONSOLE_LOGS_DEFAULT) {
if (mBinding.showConsoleSwitch.isChecked() != SettingsStore.CONSOLE_LOGS_DEFAULT) {
setConsoleLogs(SettingsStore.CONSOLE_LOGS_DEFAULT, true);
}
if (mMultiprocessSwitch.isChecked() != SettingsStore.MULTIPROCESS_DEFAULT) {
if (mBinding.multiprocessSwitch.isChecked() != SettingsStore.MULTIPROCESS_DEFAULT) {
setMultiprocess(SettingsStore.MULTIPROCESS_DEFAULT, true);
}
if (mServoSwitch.isChecked() != SettingsStore.SERVO_DEFAULT) {
if (mBinding.servoSwitch.isChecked() != SettingsStore.SERVO_DEFAULT) {
setServo(SettingsStore.SERVO_DEFAULT, true);
}

if (mBinding.performanceMonitorSwitch.isChecked() != SettingsStore.PERFORMANCE_MONITOR_DEFAULT) {
setPerformance(SettingsStore.PERFORMANCE_MONITOR_DEFAULT, true);
}

if (restart && mDelegate != null) {
showRestartDialog();
}
};

private void setRemoteDebugging(boolean value, boolean doApply) {
mRemoteDebuggingSwitch.setOnCheckedChangeListener(null);
mRemoteDebuggingSwitch.setValue(value, doApply);
mRemoteDebuggingSwitch.setOnCheckedChangeListener(mRemoteDebuggingListener);
mBinding.remoteDebuggingSwitch.setOnCheckedChangeListener(null);
mBinding.remoteDebuggingSwitch.setValue(value, doApply);
mBinding.remoteDebuggingSwitch.setOnCheckedChangeListener(mRemoteDebuggingListener);

SettingsStore.getInstance(getContext()).setRemoteDebuggingEnabled(value);

Expand All @@ -133,9 +124,9 @@ private void setRemoteDebugging(boolean value, boolean doApply) {
}

private void setConsoleLogs(boolean value, boolean doApply) {
mConsoleLogsSwitch.setOnCheckedChangeListener(null);
mConsoleLogsSwitch.setValue(value, doApply);
mConsoleLogsSwitch.setOnCheckedChangeListener(mConsoleLogsListener);
mBinding.showConsoleSwitch.setOnCheckedChangeListener(null);
mBinding.showConsoleSwitch.setValue(value, doApply);
mBinding.showConsoleSwitch.setOnCheckedChangeListener(mConsoleLogsListener);

SettingsStore.getInstance(getContext()).setConsoleLogsEnabled(value);

Expand All @@ -145,9 +136,9 @@ private void setConsoleLogs(boolean value, boolean doApply) {
}

private void setMultiprocess(boolean value, boolean doApply) {
mMultiprocessSwitch.setOnCheckedChangeListener(null);
mMultiprocessSwitch.setValue(value, false);
mMultiprocessSwitch.setOnCheckedChangeListener(mMultiprocessListener);
mBinding.multiprocessSwitch.setOnCheckedChangeListener(null);
mBinding.multiprocessSwitch.setValue(value, false);
mBinding.multiprocessSwitch.setOnCheckedChangeListener(mMultiprocessListener);

SettingsStore.getInstance(getContext()).setMultiprocessEnabled(value);

Expand All @@ -157,17 +148,17 @@ private void setMultiprocess(boolean value, boolean doApply) {
}

private void setPerformance(boolean value, boolean doApply) {
mPerformanceSwitch.setOnCheckedChangeListener(null);
mPerformanceSwitch.setValue(value, false);
mPerformanceSwitch.setOnCheckedChangeListener(mPerformanceListener);
mBinding.performanceMonitorSwitch.setOnCheckedChangeListener(null);
mBinding.performanceMonitorSwitch.setValue(value, false);
mBinding.performanceMonitorSwitch.setOnCheckedChangeListener(mPerformanceListener);

SettingsStore.getInstance(getContext()).setPerformanceMonitorEnabled(value);
}

private void setServo(boolean value, boolean doApply) {
mServoSwitch.setOnCheckedChangeListener(null);
mServoSwitch.setValue(value, false);
mServoSwitch.setOnCheckedChangeListener(mServoListener);
mBinding.servoSwitch.setOnCheckedChangeListener(null);
mBinding.servoSwitch.setValue(value, false);
mBinding.servoSwitch.setOnCheckedChangeListener(mServoListener);

SettingsStore.getInstance(getContext()).setServoEnabled(value);

Expand Down
Loading