forked from cwtch.im/cwtch-ui
Initial Commit of Fastlane + Debug Accessibiltiy Views
This commit is contained in:
parent
af3c6940bd
commit
47e26f18fc
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
Binary file not shown.
After Width: | Height: | Size: 381 KiB |
Binary file not shown.
After Width: | Height: | Size: 204 KiB |
Binary file not shown.
After Width: | Height: | Size: 346 KiB |
Binary file not shown.
After Width: | Height: | Size: 177 KiB |
|
@ -0,0 +1,16 @@
|
||||||
|
Cwtch (/kʊtʃ/ - a Welsh word roughly translating to “a hug that creates a safe place”) is a decentralized,
|
||||||
|
privacy-preserving, multi-party messaging protocol that can be used to build metadata resistant applications.
|
||||||
|
|
||||||
|
- Decentralized and Open: There is no “Cwtch service” or “Cwtch network”. Participants in Cwtch
|
||||||
|
can host their own safe spaces, or lend their infrastructure to others seeking a safe space.
|
||||||
|
The Cwtch protocol is open, and anyone is free to build bots, services and user interfaces and
|
||||||
|
integrate and interact with Cwtch.
|
||||||
|
|
||||||
|
- Privacy Preserving: All communication in Cwtch is end-to-end encrypted and takes place over Tor v3
|
||||||
|
onion services.
|
||||||
|
|
||||||
|
- Metadata Resistant: Cwtch has been designed such that no information is exchanged or available to
|
||||||
|
anyone without their explicit consent, including on-the-wire messages and protocol metadata.
|
||||||
|
|
||||||
|
For more information on how Cwtch works and a guide to metadata resistant communication please
|
||||||
|
checkout the Cwtch Handbook: https://docs.cwtch.im/
|
|
@ -0,0 +1 @@
|
||||||
|
Metadata resistant privacy platform designed to help you resist surveillance
|
|
@ -0,0 +1 @@
|
||||||
|
Cwtch
|
|
@ -0,0 +1 @@
|
||||||
|
https://cwtch.im/cwtch-explainer.mp4
|
|
@ -132,6 +132,7 @@ class FlwtchState extends State<Flwtch> with WindowListener {
|
||||||
],
|
],
|
||||||
supportedLocales: AppLocalizations.supportedLocales,
|
supportedLocales: AppLocalizations.supportedLocales,
|
||||||
title: 'Cwtch',
|
title: 'Cwtch',
|
||||||
|
showSemanticsDebugger: settings.useSemanticDebugger,
|
||||||
theme: mkThemeData(settings),
|
theme: mkThemeData(settings),
|
||||||
home: (!appState.cwtchInit || appState.modalState != ModalState.none) ? SplashView() : ProfileMgrView(),
|
home: (!appState.cwtchInit || appState.modalState != ModalState.none) ? SplashView() : ProfileMgrView(),
|
||||||
),
|
),
|
||||||
|
|
|
@ -63,9 +63,17 @@ class Settings extends ChangeNotifier {
|
||||||
String _customTorAuth = "";
|
String _customTorAuth = "";
|
||||||
bool _useTorCache = false;
|
bool _useTorCache = false;
|
||||||
String _torCacheDir = "";
|
String _torCacheDir = "";
|
||||||
|
bool _useSemanticDebugger = false;
|
||||||
|
|
||||||
String get torCacheDir => _torCacheDir;
|
String get torCacheDir => _torCacheDir;
|
||||||
|
|
||||||
|
set useSemanticDebugger(bool newval) {
|
||||||
|
this._useSemanticDebugger = newval;
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool get useSemanticDebugger => _useSemanticDebugger;
|
||||||
|
|
||||||
void setTheme(String themeId, String mode) {
|
void setTheme(String themeId, String mode) {
|
||||||
theme = getTheme(themeId, mode);
|
theme = getTheme(themeId, mode);
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|
|
@ -472,6 +472,24 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
|
||||||
child: SelectableText(AppLocalizations.of(context)!.versionBuilddate.replaceAll("%1", EnvironmentConfig.BUILD_VER).replaceAll("%2", EnvironmentConfig.BUILD_DATE)),
|
child: SelectableText(AppLocalizations.of(context)!.versionBuilddate.replaceAll("%1", EnvironmentConfig.BUILD_VER).replaceAll("%2", EnvironmentConfig.BUILD_DATE)),
|
||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
|
Visibility(
|
||||||
|
visible: EnvironmentConfig.BUILD_VER == dev_version && !Platform.isAndroid,
|
||||||
|
child: SwitchListTile(
|
||||||
|
title: Text("Show Semantic Debugger", style: TextStyle(color: settings.current().mainTextColor)),
|
||||||
|
subtitle: Text("Show Accessibility Debugging View"),
|
||||||
|
value: settings.useSemanticDebugger,
|
||||||
|
onChanged: (bool value) {
|
||||||
|
if (value) {
|
||||||
|
settings.useSemanticDebugger = value;
|
||||||
|
} else {
|
||||||
|
settings.useSemanticDebugger = value;
|
||||||
|
}
|
||||||
|
saveSettings(context);
|
||||||
|
},
|
||||||
|
activeTrackColor: settings.theme.defaultButtonActiveColor,
|
||||||
|
inactiveTrackColor: settings.theme.defaultButtonDisabledColor,
|
||||||
|
secondary: Icon(Icons.settings_accessibility, color: settings.current().mainTextColor),
|
||||||
|
)),
|
||||||
Visibility(
|
Visibility(
|
||||||
visible: EnvironmentConfig.BUILD_VER == dev_version && !Platform.isAndroid,
|
visible: EnvironmentConfig.BUILD_VER == dev_version && !Platform.isAndroid,
|
||||||
child: FutureBuilder(
|
child: FutureBuilder(
|
||||||
|
|
Loading…
Reference in New Issue