bitmask_android issueshttps://0xacab.org/leap/bitmask_android/-/issues2024-01-16T14:49:42Zhttps://0xacab.org/leap/bitmask_android/-/issues/9127zh_Auto2024-01-16T14:49:42Zkwadronautzh_AutoA big part here is history and explaining, todo is all the way down.
Regarding the confusion with the different Chinese scripts. The internet doesn't agree on everything…
zh-Hans stands for simplified, zh-Hant for traditional. Simplifie...A big part here is history and explaining, todo is all the way down.
Regarding the confusion with the different Chinese scripts. The internet doesn't agree on everything…
zh-Hans stands for simplified, zh-Hant for traditional. Simplified is most used in mainland China, Singapore and Malaysia. Traditional in Taiwan, Hong Kong and Macau.
At some point zh was most translated and transifex didn't support all the variants and scripts.
![image](/uploads/6735bebc0fe11867597bf33ffe0d8f29/image.png)
From looking at the [unicode resources](https://github.com/unicode-org/icu/releases/tag/release-56-2), zh is traditional.
Unicode defines it as follow: this is supposedly [followed by Android](https://developer.android.com/reference/java/util/Locale.html#locale-data)]
```
zh Language
|
+------+
| |
Hans Hant Script
| |
| +----+
| | |
CN HK TW
```
Source of the tree: https://unicode-org.github.io/icu/userguide/locale/resources.html
Now, people [disagree]((https://gist.github.com/amake/0ac7724681ac1c178c6f95a5b09f03ce)) about the actual behavior.
> On Android 6:
> zh-CN and zh-SG fall back to zh (Simplified)
> zh-TW, zh-HK, and zh-MO have specific resources (Traditional)
>
> On Android 7:
> zh-Hans-CN and zh-Hans-SG fall back to zh (Simplified)
> zh-Hant-TW, zh-Hant-HK, and zh-Hant-MO fall back to their language-region locales (Traditional)
> zh-Hans-HK and zh-Hans-MO have specific resources (Simplified)
We map `zh: zh-rCN, zh_TW: zh-rTW,`, so that looks good, I had it checked through l10nlabs. The situation after merging, removing and fixing in 2022 is:
![image](/uploads/4a3b789c7f51f16acbc1e27d60b53a1a/image.png)
https://0xacab.org/leap/bitmask_android/-/blob/master/app/src/main/res/values-zh-rCN/strings.xml
https://0xacab.org/leap/bitmask_android/-/blob/master/.tx/config
Other sources:
https://android.googlesource.com/platform/packages/apps/Settings/+/master/res/
https://stackoverflow.com/a/59804316
Todo:
- [ ] move existing translations towards zh-Hant and zh-Hans
- [ ] check Android versions and changes of above
- [ ] change the transifex setuphttps://0xacab.org/leap/bitmask_android/-/issues/9126handle java.lang.OutOfMemoryError error2023-01-11T02:19:02Zcybertahandle java.lang.OutOfMemoryError error<3 to the pen testers ;)
```
Exception java.lang.OutOfMemoryError:
at java.lang.StringFactory.newStringFromBytes (StringFactory.java:81)
at java.lang.StringFactory.newStringFromBytes (StringFactory.java:54)
at java.lang.StringFact...<3 to the pen testers ;)
```
Exception java.lang.OutOfMemoryError:
at java.lang.StringFactory.newStringFromBytes (StringFactory.java:81)
at java.lang.StringFactory.newStringFromBytes (StringFactory.java:54)
at java.lang.StringFactory.newStringFromBytes (StringFactory.java:46)
at se.leap.bitmaskclient.base.utils.InputStreamHelper.inputStreamToJson (InputStreamHelper.java:40)
at se.leap.bitmaskclient.base.utils.InputStreamHelper.extractKeyFromInputStream (InputStreamHelper.java:29)
at se.leap.bitmaskclient.providersetup.ProviderManager.providersFromFiles (ProviderManager.java:129)
at se.leap.bitmaskclient.providersetup.ProviderManager.addCustomProviders (ProviderManager.java:119)
at se.leap.bitmaskclient.providersetup.ProviderManager.<init> (ProviderManager.java:65)
at se.leap.bitmaskclient.providersetup.ProviderManager.getInstance (ProviderManager.java:52)
at se.leap.bitmaskclient.providersetup.activities.ProviderSetupBaseActivity.onCreate (ProviderSetupBaseActivity.java:82)
at se.leap.bitmaskclient.providersetup.activities.ProviderListBaseActivity.onCreate (ProviderListBaseActivity.java:72)
at android.app.Activity.performCreate (Activity.java:7023)
at android.app.Activity.performCreate (Activity.java:7014)
at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1215)
at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2734)
at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2859)
at android.app.ActivityThread.-wrap11
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1592)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6518)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)
```https://0xacab.org/leap/bitmask_android/-/issues/9124Incorrect indicator: not blocking2022-12-13T16:10:06ZkwadronautIncorrect indicator: not blockingWhen not being connected to the VPN, you still get in the indicator bar that '* blocks all outgoing internet traffic. ![image](/uploads/d5fc8d76f23f9229858af6d547eeeb76/image.png) This is not true, it's just an insecure connection over y...When not being connected to the VPN, you still get in the indicator bar that '* blocks all outgoing internet traffic. ![image](/uploads/d5fc8d76f23f9229858af6d547eeeb76/image.png) This is not true, it's just an insecure connection over your regular network. Tickbox in Android settings of 'always on vpn' is not set.
![Screenshot_20221212-145546](/uploads/adb4160cb1c951058da47dac535e474b/Screenshot_20221212-145546.png)https://0xacab.org/leap/bitmask_android/-/issues/9123'Stop blocking' or 'connect automatically to the best location?'2022-12-13T01:59:35Zkwadronaut'Stop blocking' or 'connect automatically to the best location?'Situation: I couldn't use bridges to connect to Amsterdam, got the feedback if I want to 'connect automatically to the best location?'
Different situations are now possible:
1. Automatically try another location
1. I want to manually c...Situation: I couldn't use bridges to connect to Amsterdam, got the feedback if I want to 'connect automatically to the best location?'
Different situations are now possible:
1. Automatically try another location
1. I want to manually choose another location
1. Use advanced settings to disable/enable snowflake, switch bridges on or off
1. keep network traffic blocked ^^
1. ok, whatever, I'll use plain network, unblock.
Propose to have 1. and 4. and 5. Not showing or suggesting advanced or other manual settings is good, but pushing users back to plain network is not always a good idea.https://0xacab.org/leap/bitmask_android/-/issues/9122Crashes riseupvpn2022-12-16T01:05:58ZkwadronautCrashes riseupvpnI had a lot of riseupvpn crashes today. I expect OOM, but forgot to keep logs (There's a checkmark in the logs screen).
I tested with 1.1.6RC1
Crash happens after first run after update when switching to another app.
![image](/uploads/4...I had a lot of riseupvpn crashes today. I expect OOM, but forgot to keep logs (There's a checkmark in the logs screen).
I tested with 1.1.6RC1
Crash happens after first run after update when switching to another app.
![image](/uploads/458e35b904c8644fbdd6291efe6c55ea/image.png)
I couldn't reproduce.https://0xacab.org/leap/bitmask_android/-/issues/9121Update UI RiseupVPN cant change selection2022-12-16T01:05:58ZkwadronautUpdate UI RiseupVPN cant change selectionI can't manually select/change to recommended location after upgrading in the hamburger menu > select location. Removed cache, now it works as expected.
![Screenshot_20221212-122624](/uploads/481a4d9f045f64cb4e40cebca4ebd1b1/Screenshot_...I can't manually select/change to recommended location after upgrading in the hamburger menu > select location. Removed cache, now it works as expected.
![Screenshot_20221212-122624](/uploads/481a4d9f045f64cb4e40cebca4ebd1b1/Screenshot_20221212-122624.png)https://0xacab.org/leap/bitmask_android/-/issues/9120Block non-VPN incoming traffic in lockdown mode2024-03-01T12:26:39ZcybertaBlock non-VPN incoming traffic in lockdown modesee https://github.com/leapcode/bitmask_android/pull/235see https://github.com/leapcode/bitmask_android/pull/2352024.05 LEAP VPN Releasehttps://0xacab.org/leap/bitmask_android/-/issues/9119remove x86 from builds, packages2022-12-15T23:21:28Zkwadronautremove x86 from builds, packagesShould be checked if only this image was removed or more:
```
sdkmanager "system-images;android-31;google_apis;x86"
Warning: Failed to find package 'system-images;android-31;google_apis;x86'
```
see fa30299cShould be checked if only this image was removed or more:
```
sdkmanager "system-images;android-31;google_apis;x86"
Warning: Failed to find package 'system-images;android-31;google_apis;x86'
```
see fa30299chttps://0xacab.org/leap/bitmask_android/-/issues/9117Finish BitmaskVPN redesign2022-11-28T16:15:54Zmcy100Finish BitmaskVPN redesignmcy100mcy100https://0xacab.org/leap/bitmask_android/-/issues/9116Finish RiseupVPN Redesign2022-11-22T15:28:02Zmcy100Finish RiseupVPN Redesignmcy100mcy100https://0xacab.org/leap/bitmask_android/-/issues/9113Cancel the cancellation2022-12-15T23:24:38ZkwadronautCancel the cancellationWhen disconnecting, you get a dialog box if you're sure you want to do that. Some people find it confusing: cancel the connection or cancel the cancellation?
![cancel-cancel](/uploads/298d18d67652bb47d5633ac8166c4b0c/cancel-cancel.png)
...When disconnecting, you get a dialog box if you're sure you want to do that. Some people find it confusing: cancel the connection or cancel the cancellation?
![cancel-cancel](/uploads/298d18d67652bb47d5633ac8166c4b0c/cancel-cancel.png)
I think we can either leave the extra prompt or [keep connected] [disconnect].https://0xacab.org/leap/bitmask_android/-/issues/9112support --tls-crypt2022-10-11T16:45:34Zcybertasupport --tls-cryptclient counterpart of leap/container-platform/openvpn#4
# [client changes](https://0xacab.org/leap/container-platform/openvpn/-/issues/4)
1. preship ta.key
2. pass tls-crypt ta.key parameter to openvpn invocation.
3. implement fetch ta....client counterpart of leap/container-platform/openvpn#4
# [client changes](https://0xacab.org/leap/container-platform/openvpn/-/issues/4)
1. preship ta.key
2. pass tls-crypt ta.key parameter to openvpn invocation.
3. implement fetch ta.key from /certhttps://0xacab.org/leap/bitmask_android/-/issues/9111Move Background tasks from JobIntentService to Workmanager2022-08-09T10:10:23ZcybertaMove Background tasks from JobIntentService to Workmanagerhttps://developer.android.com/topic/libraries/architecture/workmanager
Unfortunately JobIntentServices have been deprecated after it was already the replacement for IntentServices.https://developer.android.com/topic/libraries/architecture/workmanager
Unfortunately JobIntentServices have been deprecated after it was already the replacement for IntentServices.https://0xacab.org/leap/bitmask_android/-/issues/9110get rid of 1 of 3 provider.json's2022-08-07T21:41:16Zcybertaget rid of 1 of 3 provider.json'scurrently we have provider.json in use in 3 different locations
e.g. riseup.net/provider.json, black.riseup.net/provider.json and api.black.riseup.net:443/provider.json.
We should only keep black.riseup.net/provider.json and api.black.r...currently we have provider.json in use in 3 different locations
e.g. riseup.net/provider.json, black.riseup.net/provider.json and api.black.riseup.net:443/provider.json.
We should only keep black.riseup.net/provider.json and api.black.riseup.net:443/provider.json, whereever we depend on riseup.net/provider.json we should use black.riseup.net/provider.json instead.cybertacybertahttps://0xacab.org/leap/bitmask_android/-/issues/9109Change source flow2022-11-30T11:53:48ZkwadronautChange source flowcurrently transifex useses different places for automatic updates:
![transifex-sourcesScreenshot_from_2022-07-28_16-32-10](/uploads/cc33c1efa2462a34ff324a2ac7e4350d/transifex-sourcesScreenshot_from_2022-07-28_16-32-10.png)
For Android, ...currently transifex useses different places for automatic updates:
![transifex-sourcesScreenshot_from_2022-07-28_16-32-10](/uploads/cc33c1efa2462a34ff324a2ac7e4350d/transifex-sourcesScreenshot_from_2022-07-28_16-32-10.png)
For Android, currently we push to 0xacab, then once in a while push to leap.se/git; which overwrites what's on 0xacab again.
My proposal is to:
* push regularly to a beta branch, so people can test, try and *give feedback on source strings*
* merge that into main/master on 0xacab, which pushes to leap.se/git - or we push there manually. But deactivate the push from leap.se to 0xacab.cybertacybertahttps://0xacab.org/leap/bitmask_android/-/issues/9108add UI to allow manual bridge pinning2022-08-01T15:34:26Zcybertaadd UI to allow manual bridge pinningWith https://0xacab.org/leap/bitmask_android/-/merge_requests/190 (38e9d4af and 5afdb3d3) we can currently pin bridges during compile time to test specific bridges.
For convenience we should offer a way to pin bridges without the need...With https://0xacab.org/leap/bitmask_android/-/merge_requests/190 (38e9d4af and 5afdb3d3) we can currently pin bridges during compile time to test specific bridges.
For convenience we should offer a way to pin bridges without the need to compile the app by implementing some more settings entries available to Beta and Debug builds.cybertacybertahttps://0xacab.org/leap/bitmask_android/-/issues/9107Add Stop-Action to Tor notification2022-07-05T00:29:30ZcybertaAdd Stop-Action to Tor notificationMainly to stop failing or endless tor bootstrapping attempts.
There's one case when there's no other way to stop tor at all:
If the vpn cert is expired but renewal fails (in the concrete case: due to ca cert transition). in that case ...Mainly to stop failing or endless tor bootstrapping attempts.
There's one case when there's no other way to stop tor at all:
If the vpn cert is expired but renewal fails (in the concrete case: due to ca cert transition). in that case tor+snowflake is started as a last resort, but only stopped on cert download failure, if no torified app is configured.
A simple cancel button fixes that issue (and probably similar issues).cybertacybertahttps://0xacab.org/leap/bitmask_android/-/issues/9106intro screen layout for pads2022-07-04T21:15:24Zcybertaintro screen layout for pads![intro_pad](/uploads/c2729d479b801a5c1a05b8ce408768fd/intro_pad.png)
The text could be more vertically centered.
Also instead of using "\n" in strings for formatting we should define the allowed width for the text in the layout files...![intro_pad](/uploads/c2729d479b801a5c1a05b8ce408768fd/intro_pad.png)
The text could be more vertically centered.
Also instead of using "\n" in strings for formatting we should define the allowed width for the text in the layout files (e.g. in a ConstraintLayout)https://0xacab.org/leap/bitmask_android/-/issues/9105restart tor on snowflake settings change2022-07-04T21:56:41Zcybertarestart tor on snowflake settings changeif tor is running in vpn proxy mode, the app should restart tor on snowflake settings changesif tor is running in vpn proxy mode, the app should restart tor on snowflake settings changescybertacybertahttps://0xacab.org/leap/bitmask_android/-/issues/9104Torified apps: add support for IPv62022-09-11T21:57:56ZcybertaTorified apps: add support for IPv6Currently only IPv4 is supported. We need to check if IPv6 works out of the box, then we just need to adapt the check in StreamCapture.Currently only IPv4 is supported. We need to check if IPv6 works out of the box, then we just need to adapt the check in StreamCapture.cybertacyberta