Move Low Bandwidth feature to devtools. (#32797)

* Move and rename low bandwidth mode.

* Still in use.

* remove string

* Add a test for low bandwidth mode

* Test requests too

* update snaps

* New year!
This commit is contained in:
Will Hunt
2026-04-07 12:16:35 +00:00
committed by GitHub
parent 811670a08c
commit 5de316b752
7 changed files with 116 additions and 10 deletions
@@ -115,6 +115,7 @@ const DevtoolsDialog: React.FC<IProps> = ({ roomId, threadRootId, onFinished })
<SettingsFlag name="developerMode" level={SettingLevel.ACCOUNT} />
<SettingsFlag name="showHiddenEventsInTimeline" level={SettingLevel.DEVICE} />
<SettingsFlag name="enableWidgetScreenshots" level={SettingLevel.ACCOUNT} />
<SettingsFlag name="lowBandwidth" level={SettingLevel.DEVICE} />
</Form.Root>
{/* The settings field needs to be outside `Form.Root` because `SettingsField` will have a inner Form,
Otherwise we end up with a nester `Form` and that prohibits `preventDefault` so setting the value
@@ -16,7 +16,7 @@ import { SettingLevel } from "../../../../../settings/SettingLevel";
import SdkConfig from "../../../../../SdkConfig";
import BetaCard from "../../../beta/BetaCard";
import SettingsFlag from "../../../elements/SettingsFlag";
import { type FeatureSettingKey, LabGroup, labGroupNames } from "../../../../../settings/Settings";
import { type FeatureSettingKey, type LabGroup, labGroupNames } from "../../../../../settings/Settings";
import { EnhancedMap } from "../../../../../utils/maps";
import { SettingsSection } from "../../shared/SettingsSection";
import { SettingsSubsection, SettingsSubsectionText } from "../../shared/SettingsSubsection";
@@ -71,10 +71,6 @@ export default class LabsUserSettingsTab extends React.Component<EmptyObject> {
.push(<SettingsFlag level={SettingLevel.DEVICE} name={f} key={f} />);
});
groups
.getOrCreate(LabGroup.Experimental, [])
.push(<SettingsFlag key="lowBandwidth" name="lowBandwidth" level={SettingLevel.DEVICE} />);
labsSections = (
<>
{sortBy(Array.from(groups.entries()), "0").map(([group, flags]) => (
+2 -2
View File
@@ -828,8 +828,8 @@
"invalid_device_key_id": "Invalid device key ID",
"invalid_json": "Doesn't look like valid JSON.",
"level": "Level",
"low_bandwidth_mode": "Low bandwidth mode",
"low_bandwidth_mode_description": "Requires compatible homeserver.",
"low_bandwidth_mode": "Disable bandwidth-heavy features",
"low_bandwidth_mode_description": "Disables encryption, presence, avatars, read receipts, and typing notifications",
"main_timeline": "Main timeline",
"manual_device_verification": "Manual device verification",
"no_receipt_found": "No receipt found",
+4
View File
@@ -327,6 +327,10 @@ export interface Settings {
}>;
"breadcrumbs": IBaseSetting<boolean>;
"showHiddenEventsInTimeline": IBaseSetting<boolean>;
/**
* This is the 2019-era low bandwidth that deals with disabling features of the
* client. It does NOT make any API or spec changes.
*/
"lowBandwidth": IBaseSetting<boolean>;
"fallbackICEServerAllowed": IBaseSetting<boolean | null>;
"RoomList.preferredSorting": IBaseSetting<SortingAlgorithm>;