Refactor browser & userAgent's capabilities

This commit is contained in:
redphx
2024-07-06 15:53:01 +07:00
parent b6746598a3
commit 2b63edb7eb
14 changed files with 48 additions and 25 deletions

View File

@@ -41,7 +41,7 @@ export class GameBar {
this.actions = [
new ScreenshotAction(),
...(STATES.userAgentHasTouchSupport && (getPref(PrefKey.STREAM_TOUCH_CONTROLLER) !== 'off') ? [new TouchControlAction()] : []),
...(STATES.userAgent.capabilities.touch && (getPref(PrefKey.STREAM_TOUCH_CONTROLLER) !== 'off') ? [new TouchControlAction()] : []),
new MicrophoneAction(),
];

View File

@@ -683,7 +683,7 @@ let PATCH_ORDERS: PatchArray = [
'remotePlayKeepAlive',
'remotePlayDirectConnectUrl',
'remotePlayDisableAchievementToast',
STATES.userAgentHasTouchSupport && 'patchUpdateInputConfigurationAsync',
STATES.userAgent.capabilities.touch && 'patchUpdateInputConfigurationAsync',
] : []),
...(BX_FLAGS.EnableXcloudLogging ? [
@@ -709,7 +709,7 @@ let PLAYING_PATCH_ORDERS: PatchArray = [
// Skip feedback dialog
getPref(PrefKey.STREAM_DISABLE_FEEDBACK_DIALOG) && 'skipFeedbackDialog',
...(STATES.userAgentHasTouchSupport ? [
...(STATES.userAgent.capabilities.touch ? [
getPref(PrefKey.STREAM_TOUCH_CONTROLLER) === 'all' && 'patchShowSensorControls',
getPref(PrefKey.STREAM_TOUCH_CONTROLLER) === 'all' && 'exposeTouchLayoutManager',
(getPref(PrefKey.STREAM_TOUCH_CONTROLLER) === 'off' || getPref(PrefKey.STREAM_TOUCH_CONTROLLER_AUTO_OFF)) && 'disableTakRenderer',

View File

@@ -91,7 +91,7 @@ export class StreamBadges {
let batteryLevel = '100%';
let batteryLevelInt = 100;
let isCharging = false;
if ('getBattery' in navigator) {
if (STATES.browser.capabilities.batteryApi) {
try {
const bm = await (navigator as NavigatorBattery).getBattery();
isCharging = bm.charging;
@@ -224,7 +224,7 @@ export class StreamBadges {
// Battery
let batteryLevel = '';
if ('getBattery' in navigator) {
if (STATES.browser.capabilities.batteryApi) {
batteryLevel = '100%';
}
@@ -338,7 +338,7 @@ export class StreamBadges {
// Get battery level
try {
'getBattery' in navigator && (navigator as NavigatorBattery).getBattery().then(bm => {
STATES.browser.capabilities.batteryApi && (navigator as NavigatorBattery).getBattery().then(bm => {
streamBadges.startBatteryLevel = Math.round(bm.level * 100);
});
} catch(e) {}

View File

@@ -103,7 +103,7 @@ export class StreamSettings {
}],
},
STATES.userAgentHasTouchSupport && {
STATES.userAgent.capabilities.touch && {
group: 'touch-controller',
label: t('touch-controller'),
items: [{

View File

@@ -35,7 +35,7 @@ function cloneStreamHudButton($orgButton: HTMLElement, label: string, svgIcon: t
}
};
if (STATES.browserHasTouchSupport) {
if (STATES.browser.capabilities.touch) {
$container.addEventListener('transitionstart', onTransitionStart);
$container.addEventListener('transitionend', onTransitionEnd);
}

View File

@@ -66,8 +66,8 @@ const SETTINGS_UI = {
},
[t('touch-controller')]: {
note: !STATES.userAgentHasTouchSupport ? '⚠️ ' + t('device-unsupported-touch') : null,
unsupported: !STATES.userAgentHasTouchSupport,
note: !STATES.userAgent.capabilities.touch ? '⚠️ ' + t('device-unsupported-touch') : null,
unsupported: !STATES.userAgent.capabilities.touch,
items: [
PrefKey.STREAM_TOUCH_CONTROLLER,
PrefKey.STREAM_TOUCH_CONTROLLER_AUTO_OFF,

View File

@@ -26,8 +26,10 @@ export function localRedirect(path: string) {
$anchor.click();
}
export function setupStreamUi() {
StreamSettings.getInstance();
onChangeVideoPlayerType();
}
(window as any).localRedirect = localRedirect;