android keep screen on option (#8344)
* android keep screen on option Keep screen on option relays on floating window. Three options: Never, During controlled(default), During service is on Signed-off-by: 21pages <sunboeasy@gmail.com> * When rustdesk is in forground, be consistent with the settings Signed-off-by: 21pages <sunboeasy@gmail.com> --------- Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
parent
bc875a35b0
commit
ab451b9056
@ -11,7 +11,9 @@ import android.graphics.PixelFormat
|
|||||||
import android.graphics.drawable.BitmapDrawable
|
import android.graphics.drawable.BitmapDrawable
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.os.Handler
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
|
import android.os.Looper
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
@ -20,6 +22,7 @@ import android.view.WindowManager
|
|||||||
import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
|
import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
|
||||||
import android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|
import android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
|
||||||
import android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
|
import android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
|
||||||
|
import android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.PopupMenu
|
import android.widget.PopupMenu
|
||||||
import com.caverock.androidsvg.SVG
|
import com.caverock.androidsvg.SVG
|
||||||
@ -39,6 +42,7 @@ class FloatingWindowService : Service(), View.OnTouchListener {
|
|||||||
private var lastDownX = 0f
|
private var lastDownX = 0f
|
||||||
private var lastDownY = 0f
|
private var lastDownY = 0f
|
||||||
private var viewCreated = false;
|
private var viewCreated = false;
|
||||||
|
private var keepScreenOn = KeepScreenOn.DURING_CONTROLLED
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val logTag = "floatingService"
|
private val logTag = "floatingService"
|
||||||
@ -69,12 +73,21 @@ class FloatingWindowService : Service(), View.OnTouchListener {
|
|||||||
}
|
}
|
||||||
Log.d(logTag, "floating window size: $viewWidth x $viewHeight, transparency: $viewTransparency, lastLayoutX: $lastLayoutX, lastLayoutY: $lastLayoutY, customSvg: $customSvg")
|
Log.d(logTag, "floating window size: $viewWidth x $viewHeight, transparency: $viewTransparency, lastLayoutX: $lastLayoutX, lastLayoutY: $lastLayoutY, customSvg: $customSvg")
|
||||||
createView(windowManager)
|
createView(windowManager)
|
||||||
|
handler.postDelayed(runnable, 1000)
|
||||||
Log.d(logTag, "onCreate success")
|
Log.d(logTag, "onCreate success")
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Log.d(logTag, "onCreate failed: $e")
|
Log.d(logTag, "onCreate failed: $e")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDestroy() {
|
||||||
|
super.onDestroy()
|
||||||
|
if (viewCreated) {
|
||||||
|
windowManager.removeView(floatingView)
|
||||||
|
}
|
||||||
|
handler.removeCallbacks(runnable)
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
private fun createView(windowManager: WindowManager) {
|
private fun createView(windowManager: WindowManager) {
|
||||||
floatingView = ImageView(this)
|
floatingView = ImageView(this)
|
||||||
@ -151,6 +164,15 @@ class FloatingWindowService : Service(), View.OnTouchListener {
|
|||||||
layoutParams.x = lastLayoutX
|
layoutParams.x = lastLayoutX
|
||||||
layoutParams.y = lastLayoutY
|
layoutParams.y = lastLayoutY
|
||||||
|
|
||||||
|
val keepScreenOnOption = FFI.getLocalOption("keep-screen-on").lowercase()
|
||||||
|
keepScreenOn = when (keepScreenOnOption) {
|
||||||
|
"never" -> KeepScreenOn.NEVER
|
||||||
|
"service-on" -> KeepScreenOn.SERVICE_ON
|
||||||
|
else -> KeepScreenOn.DURING_CONTROLLED
|
||||||
|
}
|
||||||
|
Log.d(logTag, "keepScreenOn option: $keepScreenOnOption, value: $keepScreenOn")
|
||||||
|
updateKeepScreenOnLayoutParams()
|
||||||
|
|
||||||
windowManager.addView(floatingView, layoutParams)
|
windowManager.addView(floatingView, layoutParams)
|
||||||
moveToScreenSide()
|
moveToScreenSide()
|
||||||
}
|
}
|
||||||
@ -200,12 +222,7 @@ class FloatingWindowService : Service(), View.OnTouchListener {
|
|||||||
lastOrientation = resources.configuration.orientation
|
lastOrientation = resources.configuration.orientation
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
|
||||||
super.onDestroy()
|
|
||||||
if (viewCreated) {
|
|
||||||
windowManager.removeView(floatingView)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun performClick() {
|
private fun performClick() {
|
||||||
showPopupMenu()
|
showPopupMenu()
|
||||||
@ -326,5 +343,36 @@ class FloatingWindowService : Service(), View.OnTouchListener {
|
|||||||
private fun stopMainService() {
|
private fun stopMainService() {
|
||||||
MainActivity.flutterMethodChannel?.invokeMethod("stop_service", null)
|
MainActivity.flutterMethodChannel?.invokeMethod("stop_service", null)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum class KeepScreenOn {
|
||||||
|
NEVER,
|
||||||
|
DURING_CONTROLLED,
|
||||||
|
SERVICE_ON,
|
||||||
|
}
|
||||||
|
|
||||||
|
private val handler = Handler(Looper.getMainLooper())
|
||||||
|
private val runnable = object : Runnable {
|
||||||
|
override fun run() {
|
||||||
|
if (updateKeepScreenOnLayoutParams()) {
|
||||||
|
windowManager.updateViewLayout(floatingView, layoutParams)
|
||||||
|
}
|
||||||
|
handler.postDelayed(this, 1000) // 1000 milliseconds = 1 second
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun updateKeepScreenOnLayoutParams(): Boolean {
|
||||||
|
val oldOn = layoutParams.flags and FLAG_KEEP_SCREEN_ON != 0
|
||||||
|
val newOn = keepScreenOn == KeepScreenOn.SERVICE_ON || (keepScreenOn == KeepScreenOn.DURING_CONTROLLED && MainService.isStart)
|
||||||
|
if (oldOn != newOn) {
|
||||||
|
Log.d(logTag, "change keep screen on to $newOn")
|
||||||
|
if (newOn) {
|
||||||
|
layoutParams.flags = layoutParams.flags or FLAG_KEEP_SCREEN_ON
|
||||||
|
} else {
|
||||||
|
layoutParams.flags = layoutParams.flags and FLAG_KEEP_SCREEN_ON.inv()
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,6 +139,8 @@ const String kOptionToggleViewOnly = "view-only";
|
|||||||
|
|
||||||
const String kOptionDisableFloatingWindow = "disable-floating-window";
|
const String kOptionDisableFloatingWindow = "disable-floating-window";
|
||||||
|
|
||||||
|
const String kOptionKeepScreenOn = "keep-screen-on";
|
||||||
|
|
||||||
const String kUrlActionClose = "close";
|
const String kUrlActionClose = "close";
|
||||||
|
|
||||||
const String kTabLabelHomePage = "Home";
|
const String kTabLabelHomePage = "Home";
|
||||||
|
@ -35,12 +35,41 @@ class SettingsPage extends StatefulWidget implements PageShape {
|
|||||||
|
|
||||||
const url = 'https://rustdesk.com/';
|
const url = 'https://rustdesk.com/';
|
||||||
|
|
||||||
|
enum KeepScreenOn {
|
||||||
|
never,
|
||||||
|
duringControlled,
|
||||||
|
serviceOn,
|
||||||
|
}
|
||||||
|
|
||||||
|
String _keepScreenOnToOption(KeepScreenOn value) {
|
||||||
|
switch (value) {
|
||||||
|
case KeepScreenOn.never:
|
||||||
|
return 'never';
|
||||||
|
case KeepScreenOn.duringControlled:
|
||||||
|
return 'during-controlled';
|
||||||
|
case KeepScreenOn.serviceOn:
|
||||||
|
return 'service-on';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
KeepScreenOn optionToKeepScreenOn(String value) {
|
||||||
|
switch (value) {
|
||||||
|
case 'never':
|
||||||
|
return KeepScreenOn.never;
|
||||||
|
case 'service-on':
|
||||||
|
return KeepScreenOn.serviceOn;
|
||||||
|
default:
|
||||||
|
return KeepScreenOn.duringControlled;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
||||||
final _hasIgnoreBattery =
|
final _hasIgnoreBattery =
|
||||||
false; //androidVersion >= 26; // remove because not work on every device
|
false; //androidVersion >= 26; // remove because not work on every device
|
||||||
var _ignoreBatteryOpt = false;
|
var _ignoreBatteryOpt = false;
|
||||||
var _enableStartOnBoot = false;
|
var _enableStartOnBoot = false;
|
||||||
var _floatingWindowDisabled = false;
|
var _floatingWindowDisabled = false;
|
||||||
|
var _keepScreenOn = KeepScreenOn.duringControlled; // relay on floating window
|
||||||
var _enableAbr = false;
|
var _enableAbr = false;
|
||||||
var _denyLANDiscovery = false;
|
var _denyLANDiscovery = false;
|
||||||
var _onlyWhiteList = false;
|
var _onlyWhiteList = false;
|
||||||
@ -96,6 +125,15 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
_floatingWindowDisabled = floatingWindowDisabled;
|
_floatingWindowDisabled = floatingWindowDisabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final keepScreenOn = _floatingWindowDisabled
|
||||||
|
? KeepScreenOn.never
|
||||||
|
: optionToKeepScreenOn(
|
||||||
|
bind.mainGetLocalOption(key: kOptionKeepScreenOn));
|
||||||
|
if (keepScreenOn != _keepScreenOn) {
|
||||||
|
update = true;
|
||||||
|
_keepScreenOn = keepScreenOn;
|
||||||
|
}
|
||||||
|
|
||||||
final enableAbrRes = option2bool(
|
final enableAbrRes = option2bool(
|
||||||
kOptionEnableAbr, await bind.mainGetOption(key: kOptionEnableAbr));
|
kOptionEnableAbr, await bind.mainGetOption(key: kOptionEnableAbr));
|
||||||
if (enableAbrRes != _enableAbr) {
|
if (enableAbrRes != _enableAbr) {
|
||||||
@ -524,6 +562,29 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
|
|||||||
? null
|
? null
|
||||||
: onFloatingWindowChanged));
|
: onFloatingWindowChanged));
|
||||||
|
|
||||||
|
enhancementsTiles.add(_getPopupDialogRadioEntry(
|
||||||
|
title: 'Keep screen on',
|
||||||
|
list: [
|
||||||
|
_RadioEntry('Never', _keepScreenOnToOption(KeepScreenOn.never)),
|
||||||
|
_RadioEntry('During controlled',
|
||||||
|
_keepScreenOnToOption(KeepScreenOn.duringControlled)),
|
||||||
|
_RadioEntry('During service is on',
|
||||||
|
_keepScreenOnToOption(KeepScreenOn.serviceOn)),
|
||||||
|
],
|
||||||
|
getter: () => _keepScreenOnToOption(_floatingWindowDisabled
|
||||||
|
? KeepScreenOn.never
|
||||||
|
: optionToKeepScreenOn(
|
||||||
|
bind.mainGetLocalOption(key: kOptionKeepScreenOn))),
|
||||||
|
asyncSetter: isOptionFixed(kOptionKeepScreenOn) || _floatingWindowDisabled
|
||||||
|
? null
|
||||||
|
: (value) async {
|
||||||
|
await bind.mainSetLocalOption(
|
||||||
|
key: kOptionKeepScreenOn, value: value);
|
||||||
|
setState(() => _keepScreenOn = optionToKeepScreenOn(value));
|
||||||
|
gFFI.serverModel.androidUpdatekeepScreenOn();
|
||||||
|
},
|
||||||
|
));
|
||||||
|
|
||||||
final disabledSettings = bind.isDisableSettings();
|
final disabledSettings = bind.isDisableSettings();
|
||||||
final settings = SettingsList(
|
final settings = SettingsList(
|
||||||
sections: [
|
sections: [
|
||||||
@ -947,7 +1008,7 @@ class _RadioEntry {
|
|||||||
typedef _RadioEntryGetter = String Function();
|
typedef _RadioEntryGetter = String Function();
|
||||||
typedef _RadioEntrySetter = Future<void> Function(String);
|
typedef _RadioEntrySetter = Future<void> Function(String);
|
||||||
|
|
||||||
_getPopupDialogRadioEntry({
|
SettingsTile _getPopupDialogRadioEntry({
|
||||||
required String title,
|
required String title,
|
||||||
required List<_RadioEntry> list,
|
required List<_RadioEntry> list,
|
||||||
required _RadioEntryGetter getter,
|
required _RadioEntryGetter getter,
|
||||||
@ -1001,7 +1062,7 @@ _getPopupDialogRadioEntry({
|
|||||||
|
|
||||||
return SettingsTile(
|
return SettingsTile(
|
||||||
title: Text(translate(title)),
|
title: Text(translate(title)),
|
||||||
onPressed: (context) => showDialog(),
|
onPressed: asyncSetter == null ? null : (context) => showDialog(),
|
||||||
value: Padding(
|
value: Padding(
|
||||||
padding: EdgeInsets.symmetric(vertical: 8),
|
padding: EdgeInsets.symmetric(vertical: 8),
|
||||||
child: Obx(() => Text(translate(valueText.value))),
|
child: Obx(() => Text(translate(valueText.value))),
|
||||||
|
@ -4,6 +4,7 @@ import 'dart:convert';
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hbb/consts.dart';
|
import 'package:flutter_hbb/consts.dart';
|
||||||
import 'package:flutter_hbb/main.dart';
|
import 'package:flutter_hbb/main.dart';
|
||||||
|
import 'package:flutter_hbb/mobile/pages/settings_page.dart';
|
||||||
import 'package:flutter_hbb/models/chat_model.dart';
|
import 'package:flutter_hbb/models/chat_model.dart';
|
||||||
import 'package:flutter_hbb/models/platform_model.dart';
|
import 'package:flutter_hbb/models/platform_model.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
@ -421,7 +422,7 @@ class ServerModel with ChangeNotifier {
|
|||||||
await bind.mainStartService();
|
await bind.mainStartService();
|
||||||
updateClientState();
|
updateClientState();
|
||||||
if (isAndroid) {
|
if (isAndroid) {
|
||||||
WakelockPlus.enable();
|
androidUpdatekeepScreenOn();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -514,6 +515,7 @@ class ServerModel with ChangeNotifier {
|
|||||||
}
|
}
|
||||||
if (_clients.length != oldClientLenght) {
|
if (_clients.length != oldClientLenght) {
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
if (isAndroid) androidUpdatekeepScreenOn();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -548,6 +550,7 @@ class ServerModel with ChangeNotifier {
|
|||||||
scrollToBottom();
|
scrollToBottom();
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
if (isAndroid && !client.authorized) showLoginDialog(client);
|
if (isAndroid && !client.authorized) showLoginDialog(client);
|
||||||
|
if (isAndroid) androidUpdatekeepScreenOn();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("Failed to call loginRequest,error:$e");
|
debugPrint("Failed to call loginRequest,error:$e");
|
||||||
}
|
}
|
||||||
@ -668,6 +671,7 @@ class ServerModel with ChangeNotifier {
|
|||||||
final index = _clients.indexOf(client);
|
final index = _clients.indexOf(client);
|
||||||
tabController.remove(index);
|
tabController.remove(index);
|
||||||
_clients.remove(client);
|
_clients.remove(client);
|
||||||
|
if (isAndroid) androidUpdatekeepScreenOn();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -691,6 +695,7 @@ class ServerModel with ChangeNotifier {
|
|||||||
if (desktopType == DesktopType.cm && _clients.isEmpty) {
|
if (desktopType == DesktopType.cm && _clients.isEmpty) {
|
||||||
hideCmWindow();
|
hideCmWindow();
|
||||||
}
|
}
|
||||||
|
if (isAndroid) androidUpdatekeepScreenOn();
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
debugPrint("onClientRemove failed,error:$e");
|
debugPrint("onClientRemove failed,error:$e");
|
||||||
@ -702,6 +707,7 @@ class ServerModel with ChangeNotifier {
|
|||||||
_clients.map((client) => bind.cmCloseConnection(connId: client.id)));
|
_clients.map((client) => bind.cmCloseConnection(connId: client.id)));
|
||||||
_clients.clear();
|
_clients.clear();
|
||||||
tabController.state.value.tabs.clear();
|
tabController.state.value.tabs.clear();
|
||||||
|
if (isAndroid) androidUpdatekeepScreenOn();
|
||||||
}
|
}
|
||||||
|
|
||||||
void jumpTo(int id) {
|
void jumpTo(int id) {
|
||||||
@ -739,6 +745,27 @@ class ServerModel with ChangeNotifier {
|
|||||||
debugPrint("updateVoiceCallState failed: $e");
|
debugPrint("updateVoiceCallState failed: $e");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void androidUpdatekeepScreenOn() async {
|
||||||
|
if (!isAndroid) return;
|
||||||
|
var floatingWindowDisabled =
|
||||||
|
bind.mainGetLocalOption(key: kOptionDisableFloatingWindow) == "Y" ||
|
||||||
|
!await AndroidPermissionManager.check(kSystemAlertWindow);
|
||||||
|
final keepScreenOn = floatingWindowDisabled
|
||||||
|
? KeepScreenOn.never
|
||||||
|
: optionToKeepScreenOn(
|
||||||
|
bind.mainGetLocalOption(key: kOptionKeepScreenOn));
|
||||||
|
final on = ((keepScreenOn == KeepScreenOn.serviceOn) && _isStart) ||
|
||||||
|
(keepScreenOn == KeepScreenOn.duringControlled &&
|
||||||
|
_clients.map((e) => !e.disconnected).isNotEmpty);
|
||||||
|
if (on != await WakelockPlus.enabled) {
|
||||||
|
if (on) {
|
||||||
|
WakelockPlus.enable();
|
||||||
|
} else {
|
||||||
|
WakelockPlus.disable();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ClientType {
|
enum ClientType {
|
||||||
|
@ -2100,6 +2100,9 @@ pub mod keys {
|
|||||||
pub const OPTION_FLOATING_WINDOW_TRANSPARENCY: &str = "floating-window-transparency";
|
pub const OPTION_FLOATING_WINDOW_TRANSPARENCY: &str = "floating-window-transparency";
|
||||||
pub const OPTION_FLOATING_WINDOW_SVG: &str = "floating-window-svg";
|
pub const OPTION_FLOATING_WINDOW_SVG: &str = "floating-window-svg";
|
||||||
|
|
||||||
|
// android keep screen on
|
||||||
|
pub const OPTION_KEEP_SCREEN_ON: &str = "keep-screen-on";
|
||||||
|
|
||||||
pub const OPTION_DISABLE_GROUP_PANEL: &str = "disable-group-panel";
|
pub const OPTION_DISABLE_GROUP_PANEL: &str = "disable-group-panel";
|
||||||
pub const OPTION_PRE_ELEVATE_SERVICE: &str = "pre-elevate-service";
|
pub const OPTION_PRE_ELEVATE_SERVICE: &str = "pre-elevate-service";
|
||||||
|
|
||||||
@ -2163,6 +2166,7 @@ pub mod keys {
|
|||||||
OPTION_FLOATING_WINDOW_UNTOUCHABLE,
|
OPTION_FLOATING_WINDOW_UNTOUCHABLE,
|
||||||
OPTION_FLOATING_WINDOW_TRANSPARENCY,
|
OPTION_FLOATING_WINDOW_TRANSPARENCY,
|
||||||
OPTION_FLOATING_WINDOW_SVG,
|
OPTION_FLOATING_WINDOW_SVG,
|
||||||
|
OPTION_KEEP_SCREEN_ON,
|
||||||
OPTION_DISABLE_GROUP_PANEL,
|
OPTION_DISABLE_GROUP_PANEL,
|
||||||
OPTION_PRE_ELEVATE_SERVICE,
|
OPTION_PRE_ELEVATE_SERVICE,
|
||||||
];
|
];
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "使用纹理渲染"),
|
("Use texture rendering", "使用纹理渲染"),
|
||||||
("Floating window", "悬浮窗"),
|
("Floating window", "悬浮窗"),
|
||||||
("floating_window_tip", "有助于保持RustDesk后台服务"),
|
("floating_window_tip", "有助于保持RustDesk后台服务"),
|
||||||
|
("Keep screen on", "保持屏幕开启"),
|
||||||
|
("Never", "从不"),
|
||||||
|
("During controlled", "被控期间"),
|
||||||
|
("During service is on", "服务开启期间"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Použít vykreslování textur"),
|
("Use texture rendering", "Použít vykreslování textur"),
|
||||||
("Floating window", "Plovoucí okno"),
|
("Floating window", "Plovoucí okno"),
|
||||||
("floating_window_tip", "Pomáhá udržovat službu RustDesk na pozadí"),
|
("floating_window_tip", "Pomáhá udržovat službu RustDesk na pozadí"),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Textur-Rendering verwenden"),
|
("Use texture rendering", "Textur-Rendering verwenden"),
|
||||||
("Floating window", "Schwebendes Fenster"),
|
("Floating window", "Schwebendes Fenster"),
|
||||||
("floating_window_tip", "Es hilft dabei, RustDesk im Hintergrund auszuführen."),
|
("floating_window_tip", "Es hilft dabei, RustDesk im Hintergrund auszuführen."),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Usar renderizado de texturas"),
|
("Use texture rendering", "Usar renderizado de texturas"),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Utiliser le rendu de texture"),
|
("Use texture rendering", "Utiliser le rendu de texture"),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Usa rendering texture"),
|
("Use texture rendering", "Usa rendering texture"),
|
||||||
("Floating window", "Finestra galleggiante"),
|
("Floating window", "Finestra galleggiante"),
|
||||||
("floating_window_tip", "Aiuta a mantenere il servizio di RustDesk in background"),
|
("floating_window_tip", "Aiuta a mantenere il servizio di RustDesk in background"),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Izmantot tekstūras renderēšanu"),
|
("Use texture rendering", "Izmantot tekstūras renderēšanu"),
|
||||||
("Floating window", "Peldošs logs"),
|
("Floating window", "Peldošs logs"),
|
||||||
("floating_window_tip", "Tas palīdz uzturēt RustDesk fona servisu"),
|
("floating_window_tip", "Tas palīdz uzturēt RustDesk fona servisu"),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Textuurrendering gebruiken"),
|
("Use texture rendering", "Textuurrendering gebruiken"),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Визуализация текстур"),
|
("Use texture rendering", "Визуализация текстур"),
|
||||||
("Floating window", "Плавающее окно"),
|
("Floating window", "Плавающее окно"),
|
||||||
("floating_window_tip", "Помогает поддерживать фоновую службу RustDesk"),
|
("floating_window_tip", "Помогает поддерживать фоновую службу RustDesk"),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Použiť vykresľovanie textúr"),
|
("Use texture rendering", "Použiť vykresľovanie textúr"),
|
||||||
("Floating window", "Plávajúce okno"),
|
("Floating window", "Plávajúce okno"),
|
||||||
("floating_window_tip", "Pomáha udržiavať službu RustDesk na pozadí"),
|
("floating_window_tip", "Pomáha udržiavať službu RustDesk na pozadí"),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "使用紋理渲染"),
|
("Use texture rendering", "使用紋理渲染"),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", "Використовувати візуалізацію текстур"),
|
("Use texture rendering", "Використовувати візуалізацію текстур"),
|
||||||
("Floating window", "Рухоме вікно"),
|
("Floating window", "Рухоме вікно"),
|
||||||
("floating_window_tip", "Допомагає зберегти фонову службу Rustdesk"),
|
("floating_window_tip", "Допомагає зберегти фонову службу Rustdesk"),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -617,5 +617,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Use texture rendering", ""),
|
("Use texture rendering", ""),
|
||||||
("Floating window", ""),
|
("Floating window", ""),
|
||||||
("floating_window_tip", ""),
|
("floating_window_tip", ""),
|
||||||
|
("Keep screen on", ""),
|
||||||
|
("Never", ""),
|
||||||
|
("During controlled", ""),
|
||||||
|
("During service is on", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user