A Flutter based Cwtch UI
Go to file
Dan Ballard 4c46620733 Merge pull request 'Fix MacOS DMG Location' (#171) from fyne/cwtch-ui:fix-macos-dmg-location into trunk
Reviewed-on: cwtch.im/cwtch-ui#171
2021-09-09 00:24:09 +00:00
android Fix Android Delete Contact API 2021-08-27 14:25:20 -07:00
assets Android Icons + Debug Fixes 2021-07-15 13:07:11 -07:00
integration_test Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
ios Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
lib Leave the Cwtch.app local path in 2021-09-04 18:48:49 +01:00
linux linux: exec cwtch instead of keeping sh process 2021-09-01 23:20:50 -04:00
macos copyright 2021-08-30 17:28:09 -04:00
test Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
test_driver Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
windows Android Icons + Debug Fixes 2021-07-15 13:07:11 -07:00
.drone.yml drone checkout from forked repo 2021-09-08 09:56:40 -07:00
.gitignore gitignore more libcwtch/tor binaries 2021-09-08 13:03:25 -04:00
.metadata Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
ARCH.md Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
LIBCWTCH-GO.version update linux install scripts and LIBCWTCH-GO version 2021-08-30 15:34:56 -07:00
LICENSE mit license 2021-06-25 15:13:50 -07:00
README.md update README for mac build instructions to get libcwtch-go; translations update 2021-08-30 15:50:24 -07:00
SPEC.md Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
cwtch-android-lifecycle.png Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
cwtch.png Android Icons + Debug Fixes 2021-07-15 13:07:11 -07:00
fetch-libcwtch-go.ps1 Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
fetch-libcwtch-go.sh Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
fetch-tor-win.ps1 Pull the old version from the Cwtch archive rather than the new version from Tor directly 2021-08-26 10:41:06 -07:00
fetch-tor.sh Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
l10n.yaml Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
pubspec.lock Format Dates to match OS Locale 2021-08-16 15:04:05 -07:00
pubspec.yaml pubspec version update 2021-08-30 16:01:08 -07:00
quality.sh add quality.sh and run 2021-07-14 15:07:29 -07:00
regenerate_opaque_theme.sh Fresh Respository Commit - Cwtch Beta 2021-06-24 16:10:45 -07:00
update-icons.sh Android Icons + Debug Fixes 2021-07-15 13:07:11 -07:00

README.md

Cwtch UI

A Flutter based Cwtch UI.

This README covers build instructions, for information on Cwtch itself please go to https://cwtch.im

Installing

  • Android: Available from the Google Play Store (currently patrons only) or from https://cwtch.im/download/ as an APK
  • Windows: Available from https://cwtch.im/download/ as an installer or .zip file
  • Linux: Available from https://cwtch.im/download/ as a .tar.gz
    • install.home.sh installs the app into your home directory
    • install.sys.sh as root to install system wide
    • or run out of the unziped directory
  • MacOS: Cwtch.dmg coming soon...

Running

Cwtch processes the following environment variables:

  • CWTCH_HOME= overrides the default storage path of ~/.cwtch with what ever you choose
  • LOG_FILE= will reroute all of libcwtch-go's logging to the specified file instead of the console
  • LOG_LEVEL=debug will set the log level to debug instead of info

Building

Getting Started

First you will need a valid flutter sdk installation and run flutter pub get to fetch dependencies.

You will probably want to disable Analytics on the Flutter Tool: flutter config --no-analytics

Building on Linux (for Linux)

  • run fetch-libcwtch-go.shlibCwtch-go to fetch a prebuild version of libCwtch-go.so go to ./linux. Include ./linux in LD_LIBRARY_PATH
  • run fetch-tor.sh and/or ensure that tor is in $PATH
  • run flutter run -d linux

Building on Windows (for Windows)

  • run fetch-libcwtch-go.ps1 to fetch a prebuild version of libCwtch.dll
  • run fetch-tor-win.ps1 to fetch Tor for windows
  • run flutter run -d windows

Building on Linux/Windows (for Android)

  • Follow the steps above to fetch libCwtch-go and tor (these will fetch Android versions of these binaries also)
  • run flutter run with an Android phone connect via USB (or some other valid debug mode)

Building on MacOS

results in a Cwtch.dmg that has libCwtch.dylib and tor in it as well and can be installed into Applications

Known Platform Issues

  • Windows: Flutter engine has a known bug around the Right Shift key being sticky. We have implemented a partial workaround, if this happens, tap left shift and it will reset.

l10n Instructions

Adding a new string

Strings are managed directly from our Lokalise(url?) project. Keys should be valid Dart variable names in lowerCamelCase. After adding a new key and providing/obtaining translations for it, follow the next step to update your local copy.

Updating translations

Only Open Privacy staff members can update translations.

In Lokalise, hit Download and make sure:

  • Format is set to "Flutter (.arb)
  • Output filename is set to l10n/intl_%LANG_ISO%.%FORMAT%
  • Empty translations is set to "Replace with base language"
  • Order "Last Update"

Build, download and unzip the output, overwriting lib/l10n. The next time Flwtch is built, Flutter will notice the changes and update app_localizations.dart accordingly (thanks to generate:true in pubspec.yaml).

Adding a language

If a new language has been added to the Lokalise project, two additional manual steps need to be done:

  • Create a new key called localeXX for the name of the language
  • Add it to the settings pane by updating getLanguageFull() in lib/views/globalsettingsview.dart

Then rebuild as normal.

Using a string

Any widget underneath the main MaterialApp should be able to:

import 'package:flutter_gen/gen_l10n/app_localizations.dart';

and then use:

Text(AppLocalizations.of(context)!.stringIdentifer),

Configuration

With generate: true in pubspec.yaml, the Flutter build process checks l10n.yaml for input/output filenames.