Compare commits

...

25 Commits

Author SHA1 Message Date
Jarno Rankinen 470c827356 Theming, replacing element_green with shades of grey 2023-10-05 23:28:22 +03:00
Jarno Rankinen 4ef107de8d Change default settings
- threaded messages off
- enable new session manager
- enable IP recording
2023-10-05 22:53:42 +03:00
Jarno Rankinen fd2420211c Merge branch 'v1.6.6' into v1.6.6-merge 2023-10-05 21:24:36 +03:00
Jarno Rankinen 7730122c4b Merge branch 'direct-share' into volfram 2023-09-05 20:40:11 +03:00
Jarno Rankinen 47740d6991 Fix direct share targets using Element app id 2023-09-05 20:39:19 +03:00
Jarno Rankinen 894472127f
Update README.md 2023-09-02 16:29:54 +03:00
Jarno Rankinen 841a0def08
Update README.md 2023-09-02 08:49:51 +03:00
Jarno Rankinen b4b7b7749f Rename APKs according to versions 2023-09-02 08:44:08 +03:00
Jarno Rankinen e1384bf80a Updated color scheme 2023-09-02 00:46:46 +03:00
Jarno Rankinen 86878e70f9 Fix hide shields setting getting reset to true when opening Labs page 2023-09-01 23:08:17 +03:00
Jarno Rankinen aa609fdeb6 Update README.md 2023-08-29 23:30:14 +03:00
Jarno Rankinen c1e03e3633 Add setting in Labs to hide the encyption shields from next to messages in rooms 2023-08-29 23:29:36 +03:00
Jarno Rankinen e5e790ead8 Revert "Show gray shield instead of red for a logged out device"
This reverts commit 3bc029839e.
2023-08-29 23:29:36 +03:00
Jarno Rankinen 1b0f965dfb
Update README.md 2023-08-29 00:32:23 +03:00
Jarno Rankinen 9e1ab131dc Add logo to resources 2023-08-29 00:29:05 +03:00
Jarno Rankinen 88f7050651 Added source version to readme 2023-08-29 00:15:53 +03:00
Jarno Rankinen 2143ad1c51 Updated readme 2023-08-29 00:15:12 +03:00
Jarno Rankinen 38da2ceb4e v1.6.5-dev.vfrm.1, changes to splash screen 2023-08-29 00:06:41 +03:00
Jarno Rankinen 6279954d7a Change app icon 2023-08-28 22:52:27 +03:00
Jarno Rankinen 1ee194d65e Don't show analytics opt-in dialog (can still activate via settings) 2023-08-28 22:12:21 +03:00
Jarno Rankinen 89d4802428 Use black theme instead of dark when set to follow system theme 2023-08-28 22:11:39 +03:00
Jarno Rankinen 4b4e2efe08 Revert "Force analytics off"
This reverts commit d310db5f67.
2023-08-28 21:28:23 +03:00
Jarno Rankinen 3bc029839e Show gray shield instead of red for a logged out device 2023-08-28 21:23:21 +03:00
Jarno Rankinen d310db5f67 Force analytics off 2023-08-26 23:50:36 +03:00
Jarno Rankinen 2e748a9f35 Renamed package to net.oranki.volfram and added extra version number .vfrm.X 2023-08-26 22:36:52 +03:00
52 changed files with 121 additions and 106 deletions

View File

@ -1,58 +1,15 @@
[![Latest build](https://github.com/vector-im/element-android/actions/workflows/build.yml/badge.svg?query=branch%3Adevelop)](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop) # Volfram
[![Weblate](https://translate.element.io/widgets/element-android/-/svg-badge.svg)](https://translate.element.io/engage/element-android/?utm_source=widget)
[![Element Android Matrix room #element-android:matrix.org](https://img.shields.io/matrix/element-android:matrix.org.svg?label=%23element-android:matrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#element-android:matrix.org)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=vector-im_element-android&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=vector-im_element-android&metric=vulnerabilities)](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=vector-im_element-android&metric=bugs)](https://sonarcloud.io/summary/new_code?id=vector-im_element-android)
# Element Android ![logo](https://github.com/0ranki/volfram/blob/volfram/resources/img/volfram-logo.png?raw=true)
Element Android is an Android Matrix Client provided by [Element](https://element.io/). The app can be run on every Android devices with Android OS Lollipop and more (API 21). This is a fork of Element Android, with slight modifications mainly to the UI.
It is a total rewrite of [Riot-Android](https://github.com/vector-im/riot-android) with a new user experience. Idea is to stay close to Element, but introduce changes that make the app a bit more approachable.
[<img src="resources/img/google-play-badge.png" alt="Get it on Google Play" height="60">](https://play.google.com/store/apps/details?id=im.vector.app) ### Current changes:
[<img src="resources/img/f-droid-badge.png" alt="Get it on F-Droid" height="60">](https://f-droid.org/app/im.vector.app) - Based on the 1.6.5 release of Element
- Use black theme instead of dark when set to follow system theme
Build of develop branch: [![GitHub Action](https://github.com/vector-im/element-android/actions/workflows/build.yml/badge.svg?query=branch%3Adevelop)](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop) Nightly test status: [![allScreensTest](https://github.com/vector-im/element-android/actions/workflows/nightly.yml/badge.svg)](https://github.com/vector-im/element-android/actions/workflows/nightly.yml) - Toggle for visibility of encryption shields in Labs, by default shields are hidden
- New icon, name and logo to differentiate from upstream and allow simultaneous install
# New Android SDK
Element is based on a new Android SDK fully written in Kotlin (like Element). In order to make the early development as fast as possible, Element and the new SDK currently share the same git repository.
At each Element release, the SDK module is copied to a dedicated repository: https://github.com/matrix-org/matrix-android-sdk2. That way, third party apps can add a regular gradle dependency to use it. So more details on how to do that here: https://github.com/matrix-org/matrix-android-sdk2.
# Roadmap
The version 1.0.0 of Element still misses some features which was previously included in Riot-Android.
The team will work to add them on a regular basis.
# Releases to app stores
There is some delay between when a release is created and when it appears in the app stores (Google Play Store and F-Droid). Here are some of the reasons:
* Not all versioned releases that appear on GitHub are considered stable. Each release is first considered beta: this continues for at least two days. If the release is stable (no serious issues or crashes are reported), then it is released as a production release in Google Play Store, and a request is sent to F-Droid too.
* Each release on the Google Play Store undergoes review by Google before it comes out. This can take an unpredictable amount of time. In some cases it has taken several weeks.
* In order for F-Droid to guarantee that the app you receive exactly matches the public source code, they build releases themselves. When a release is considered stable, Element staff inform the F-Droid maintainers and it is added to the build queue. Depending on the load on F-Droid's infrastructure, it can take some time for releases to be built. This always takes at least 24 hours, and can take several days.
If you would like to receive releases more quickly (bearing in mind that they may not be stable) you have a number of options:
1. [Sign up to receive beta releases](https://play.google.com/apps/testing/im.vector.app) via the Google Play Store.
2. Install a [release APK](https://github.com/vector-im/element-android/releases) directly - download the relevant .apk file and allow installing from untrusted sources in your device settings. Note: these releases are the Google Play version, which depend on some Google services. If you prefer to avoid that, try the latest dev builds, and choose the F-Droid version.
3. If you're really brave, install the [very latest dev build](https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%3Adevelop) - pick a build, then click on `Summary` to download the APKs from there: `vector-Fdroid-debug` and `vector-Gplay-debug` contains the APK for the desired store. Each file contains 5 APKs. 4 APKs for every supported specific architecture of device. In doubt you can install the `universal` APK.
## Contributing
Please refer to [CONTRIBUTING.md](./CONTRIBUTING.md) if you want to contribute on Matrix Android projects!
Come chat with the community in the dedicated Matrix [room](https://matrix.to/#/#element-android:matrix.org).
Also [this documentation](./docs/_developer_onboarding.md) can hopefully help developers to start working on the project.
## Triaging issues
Issues are triaged by community members and the Android App Team, following the [triage process](https://github.com/vector-im/element-meta/wiki/Triage-process).
We use [issue labels](https://github.com/vector-im/element-meta/wiki/Issue-labelling) to sort all incoming issues.
All credits belong to devs of https://github.com/vector-im/element-android, I barely know what I'm doing with Kotlin.

View File

@ -463,6 +463,9 @@
<string name="labs_enable_new_app_layout_title">Enable new layout</string> <string name="labs_enable_new_app_layout_title">Enable new layout</string>
<string name="labs_enable_new_app_layout_summary">A simplified Element with optional tabs</string> <string name="labs_enable_new_app_layout_summary">A simplified Element with optional tabs</string>
<string name="labs_enable_hide_shields_title">Hide encryption shields</string>
<string name="labs_enable_hide_shields_summary">Hide encryption shields next to messages in rooms</string>
<string name="labs_enable_deferred_dm_title">Enable deferred DMs</string> <string name="labs_enable_deferred_dm_title">Enable deferred DMs</string>
<string name="labs_enable_deferred_dm_summary">Create DM only on first message</string> <string name="labs_enable_deferred_dm_summary">Create DM only on first message</string>

View File

@ -0,0 +1,22 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:viewportWidth="64"
android:viewportHeight="64">
<path
android:pathData="M23.04,3.84C23.04,1.7192 24.7593,0 26.88,0C41.0185,0 52.48,11.4615 52.48,25.6C52.48,27.7208 50.7608,29.44 48.64,29.44C46.5193,29.44 44.8,27.7208 44.8,25.6C44.8,15.7031 36.777,7.68 26.88,7.68C24.7593,7.68 23.04,5.9608 23.04,3.84Z"
android:fillColor="#000000"
android:fillType="evenOdd"/>
<path
android:pathData="M40.96,60.16C40.96,62.2808 39.2407,64 37.12,64C22.9815,64 11.52,52.5385 11.52,38.4C11.52,36.2792 13.2392,34.56 15.36,34.56C17.4807,34.56 19.2,36.2792 19.2,38.4C19.2,48.2969 27.223,56.32 37.12,56.32C39.2407,56.32 40.96,58.0392 40.96,60.16Z"
android:fillColor="#000000"
android:fillType="evenOdd"/>
<path
android:pathData="M3.84,40.96C1.7192,40.96 -0,39.2407 -0,37.12C-0,22.9815 11.4615,11.52 25.6,11.52C27.7208,11.52 29.44,13.2392 29.44,15.36C29.44,17.4807 27.7208,19.2 25.6,19.2C15.7031,19.2 7.68,27.223 7.68,37.12C7.68,39.2407 5.9608,40.96 3.84,40.96Z"
android:fillColor="#000000"
android:fillType="evenOdd"/>
<path
android:pathData="M60.16,23.04C62.2808,23.04 64,24.7593 64,26.88C64,41.0185 52.5385,52.48 38.4,52.48C36.2792,52.48 34.56,50.7608 34.56,48.64C34.56,46.5193 36.2792,44.8 38.4,44.8C48.2969,44.8 56.32,36.777 56.32,26.88C56.32,24.7593 58.0392,23.04 60.16,23.04Z"
android:fillColor="#000000"
android:fillType="evenOdd"/>
</vector>

View File

@ -5,7 +5,7 @@
Source: https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=1521%3A23026 --> Source: https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=1521%3A23026 -->
<color name="element_accent_light">@color/palette_element_green</color> <color name="element_accent_light">@color/palette_element_green</color>
<color name="element_accent_dark">@color/palette_element_green</color> <color name="element_accent_dark">@color/palette_gray_400</color>
<color name="element_alert_light">@color/palette_vermilion</color> <color name="element_alert_light">@color/palette_vermilion</color>
<color name="element_alert_dark">@color/palette_vermilion</color> <color name="element_alert_dark">@color/palette_vermilion</color>

View File

@ -11,6 +11,7 @@
</style> </style>
<style name="ThemeOverlay.Vector.HomeFilterTabLayout" parent="Theme.Vector.Launcher"> <style name="ThemeOverlay.Vector.HomeFilterTabLayout" parent="Theme.Vector.Launcher">
<item name="colorPrimary">?vctr_content_primary</item>
<item name="colorSurface">?vctr_toolbar_background</item> <item name="colorSurface">?vctr_toolbar_background</item>
<item name="colorOnSurface">?vctr_content_secondary</item> <item name="colorOnSurface">?vctr_content_secondary</item>
</style> </style>

View File

@ -4,9 +4,9 @@
<!-- Launcher Theme, only used for VectorLauncherActivity (will be use even before the Activity is started) --> <!-- Launcher Theme, only used for VectorLauncherActivity (will be use even before the Activity is started) -->
<style name="Theme.Vector.Launcher" parent="Theme.MaterialComponents.Light.NoActionBar"> <style name="Theme.Vector.Launcher" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item> <item name="android:windowBackground">@drawable/splash</item>
<item name="colorPrimary">@color/element_accent_light</item> <item name="colorPrimary">#000000</item>
<item name="android:statusBarColor">@color/element_accent_light</item> <item name="android:statusBarColor">#000000</item>
<item name="android:navigationBarColor">@color/element_accent_light</item> <item name="android:navigationBarColor">#000000</item>
</style> </style>
<style name="Theme.Vector.Black.AttachmentsPreview"> <style name="Theme.Vector.Black.AttachmentsPreview">

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -38,6 +38,8 @@ ext.versionMinor = 6
// When creating a hotfix, you should decrease the value, since the current value // When creating a hotfix, you should decrease the value, since the current value
// is the value for the next regular release. // is the value for the next regular release.
ext.versionPatch = 6 ext.versionPatch = 6
// Volfram specific version number
ext.versionVfrm = 1
static def getGitTimestamp() { static def getGitTimestamp() {
def cmd = 'git show -s --format=%ct' def cmd = 'git show -s --format=%ct'
@ -103,7 +105,7 @@ static def gitBranchName() {
// For Google Play build, build on any other branch than main will have a "-dev" suffix // For Google Play build, build on any other branch than main will have a "-dev" suffix
static def getGplayVersionSuffix() { static def getGplayVersionSuffix() {
if (gitBranchName() == "main") { if (gitBranchName() == "volfram") {
return "" return ""
} else { } else {
return "-dev" return "-dev"
@ -145,7 +147,7 @@ android {
compileSdk versions.compileSdk compileSdk versions.compileSdk
defaultConfig { defaultConfig {
applicationId "im.vector.app" applicationId "net.oranki.volfram"
// Set to API 21: see #405 // Set to API 21: see #405
minSdk versions.minSdk minSdk versions.minSdk
targetSdk versions.targetSdk targetSdk versions.targetSdk
@ -205,7 +207,8 @@ android {
// See https://issuetracker.google.com/issues/171133218 // See https://issuetracker.google.com/issues/171133218
output.versionCodeOverride = baseVariantVersion + baseAbiVersionCode output.versionCodeOverride = baseVariantVersion + baseAbiVersionCode
print "ABI " + output.getFilter(OutputFile.ABI) + " \t-> VersionCode = " + output.versionCode + "\n" print "ABI " + output.getFilter(OutputFile.ABI) + " \t-> VersionCode = " + output.versionCode + "\n"
output.outputFileName = output.outputFileName.replace("vector-app", "vector") output.outputFileName = output.outputFileName.replace("vector-app", "volfram")
output.outputFileName = output.outputFileName.replace("release", "release-" + versionMajor +"."+ versionMinor +"."+ versionPatch +".vfrm."+ versionVfrm)
} }
} }
@ -249,7 +252,7 @@ android {
debug { debug {
applicationIdSuffix ".debug" applicationIdSuffix ".debug"
signingConfig signingConfigs.debug signingConfig signingConfigs.debug
resValue "string", "app_name", "Element - dbg" resValue "string", "app_name", "Volfram - dbg"
if (project.hasProperty("coverage")) { if (project.hasProperty("coverage")) {
testCoverageEnabled = coverage == "true" testCoverageEnabled = coverage == "true"
@ -257,7 +260,7 @@ android {
} }
release { release {
resValue "string", "app_name", "Element" resValue "string", "app_name", "Volfram"
postprocessing { postprocessing {
// FIXME Set to true. // FIXME Set to true.
removeUnusedCode false removeUnusedCode false
@ -267,6 +270,7 @@ android {
optimizeCode true optimizeCode true
proguardFiles 'proguard-rules.pro' proguardFiles 'proguard-rules.pro'
} }
signingConfig signingConfigs.release
// signingConfig signingConfigs.release // signingConfig signingConfigs.release
} }
@ -320,14 +324,14 @@ android {
dimension "store" dimension "store"
isDefault = true isDefault = true
versionName "${versionMajor}.${versionMinor}.${versionPatch}${getGplayVersionSuffix()}" versionName "${versionMajor}.${versionMinor}.${versionPatch}${getGplayVersionSuffix()}.vfrm.${versionVfrm}"
buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"G\"" buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"G\""
buildConfigField "String", "FLAVOR_DESCRIPTION", "\"GooglePlay\"" buildConfigField "String", "FLAVOR_DESCRIPTION", "\"GooglePlay\""
} }
fdroid { fdroid {
dimension "store" dimension "store"
versionName "${versionMajor}.${versionMinor}.${versionPatch}${getFdroidVersionSuffix()}" versionName "${versionMajor}.${versionMinor}.${versionPatch}${getFdroidVersionSuffix()}.vfrm.${versionVfrm}"
buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"F\"" buildConfigField "String", "SHORT_FLAVOR_DESCRIPTION", "\"F\""
buildConfigField "String", "FLAVOR_DESCRIPTION", "\"FDroid\"" buildConfigField "String", "FLAVOR_DESCRIPTION", "\"FDroid\""
} }

View File

@ -85,6 +85,11 @@ class DebugFeaturesStateFactory @Inject constructor(
key = DebugFeatureKeys.newAppLayoutEnabled, key = DebugFeatureKeys.newAppLayoutEnabled,
factory = VectorFeatures::isNewAppLayoutFeatureEnabled factory = VectorFeatures::isNewAppLayoutFeatureEnabled
), ),
createBooleanFeature(
label = "Disable Encryption Shields",
key = DebugFeatureKeys.shieldVisibilityDisabled,
factory = VectorFeatures::isShieldVisibilityDisabled
),
createBooleanFeature( createBooleanFeature(
label = "Enable QR Code Login", label = "Enable QR Code Login",
key = DebugFeatureKeys.qrCodeLoginEnabled, key = DebugFeatureKeys.qrCodeLoginEnabled,

View File

@ -76,6 +76,9 @@ class DebugVectorFeatures(
override fun isNewAppLayoutFeatureEnabled(): Boolean = read(DebugFeatureKeys.newAppLayoutEnabled) override fun isNewAppLayoutFeatureEnabled(): Boolean = read(DebugFeatureKeys.newAppLayoutEnabled)
?: vectorFeatures.isNewAppLayoutFeatureEnabled() ?: vectorFeatures.isNewAppLayoutFeatureEnabled()
override fun isShieldVisibilityDisabled(): Boolean = read(DebugFeatureKeys.shieldVisibilityDisabled)
?: vectorFeatures.isShieldVisibilityDisabled()
override fun isQrCodeLoginEnabled() = read(DebugFeatureKeys.qrCodeLoginEnabled) override fun isQrCodeLoginEnabled() = read(DebugFeatureKeys.qrCodeLoginEnabled)
?: vectorFeatures.isQrCodeLoginEnabled() ?: vectorFeatures.isQrCodeLoginEnabled()
@ -150,6 +153,7 @@ object DebugFeatureKeys {
val screenSharing = booleanPreferencesKey("screen-sharing") val screenSharing = booleanPreferencesKey("screen-sharing")
val forceUsageOfOpusEncoder = booleanPreferencesKey("force-usage-of-opus-encoder") val forceUsageOfOpusEncoder = booleanPreferencesKey("force-usage-of-opus-encoder")
val newAppLayoutEnabled = booleanPreferencesKey("new-app-layout-enabled") val newAppLayoutEnabled = booleanPreferencesKey("new-app-layout-enabled")
val shieldVisibilityDisabled = booleanPreferencesKey("shield-visibility-disabled")
val qrCodeLoginEnabled = booleanPreferencesKey("qr-code-login-enabled") val qrCodeLoginEnabled = booleanPreferencesKey("qr-code-login-enabled")
val qrCodeLoginForAllServers = booleanPreferencesKey("qr-code-login-for-all-servers") val qrCodeLoginForAllServers = booleanPreferencesKey("qr-code-login-for-all-servers")
val reciprocateQrCodeLogin = booleanPreferencesKey("reciprocate-qr-code-login") val reciprocateQrCodeLogin = booleanPreferencesKey("reciprocate-qr-code-login")

View File

@ -2,6 +2,6 @@
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<share-target android:targetClass="im.vector.app.features.share.IncomingShareActivity"> <share-target android:targetClass="im.vector.app.features.share.IncomingShareActivity">
<data android:mimeType="*/*" /> <data android:mimeType="*/*" />
<category android:name="im.vector.app.debug.SHORTCUT_SHARE" /> <category android:name="net.oranki.volfram.debug.SHORTCUT_SHARE" />
</share-target> </share-target>
</shortcuts> </shortcuts>

View File

@ -10,7 +10,7 @@
"client_info": { "client_info": {
"mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d", "mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d",
"android_client_info": { "android_client_info": {
"package_name": "im.vector.app.debug" "package_name": "net.oranki.volfram.debug"
} }
}, },
"oauth_client": [ "oauth_client": [

View File

@ -10,7 +10,7 @@
"client_info": { "client_info": {
"mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d", "mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d",
"android_client_info": { "android_client_info": {
"package_name": "im.vector.app.nightly" "package_name": "net.oranki.volfram.nightly"
} }
}, },
"oauth_client": [ "oauth_client": [

View File

@ -10,7 +10,7 @@
"client_info": { "client_info": {
"mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d", "mobilesdk_app_id": "1:912726360885:android:4ef8f3a0021e774d",
"android_client_info": { "android_client_info": {
"package_name": "im.vector.app" "package_name": "net.oranki.volfram"
} }
}, },
"oauth_client": [ "oauth_client": [

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -5,6 +5,6 @@
android:viewportHeight="108"> android:viewportHeight="108">
<path <path
android:pathData="m0,0h108v108h-108z" android:pathData="m0,0h108v108h-108z"
android:fillColor="@color/launcher_background" android:fillColor="@color/palette_white"
android:fillType="evenOdd"/> android:fillType="evenOdd"/>
</vector> </vector>

View File

@ -5,18 +5,18 @@
android:viewportHeight="108"> android:viewportHeight="108">
<path <path
android:pathData="M47.28,32.88C47.28,31.289 48.569,30 50.16,30C60.764,30 69.36,38.596 69.36,49.2C69.36,50.791 68.071,52.08 66.48,52.08C64.89,52.08 63.6,50.791 63.6,49.2C63.6,41.777 57.583,35.76 50.16,35.76C48.569,35.76 47.28,34.471 47.28,32.88Z" android:pathData="M47.28,32.88C47.28,31.289 48.569,30 50.16,30C60.764,30 69.36,38.596 69.36,49.2C69.36,50.791 68.071,52.08 66.48,52.08C64.89,52.08 63.6,50.791 63.6,49.2C63.6,41.777 57.583,35.76 50.16,35.76C48.569,35.76 47.28,34.471 47.28,32.88Z"
android:fillColor="#ffffff" android:fillColor="#000000"
android:fillType="evenOdd"/> android:fillType="evenOdd"/>
<path <path
android:pathData="M60.72,75.12C60.72,76.711 59.431,78 57.84,78C47.236,78 38.64,69.404 38.64,58.8C38.64,57.209 39.929,55.92 41.52,55.92C43.111,55.92 44.4,57.209 44.4,58.8C44.4,66.223 50.417,72.24 57.84,72.24C59.431,72.24 60.72,73.529 60.72,75.12Z" android:pathData="M60.72,75.12C60.72,76.711 59.431,78 57.84,78C47.236,78 38.64,69.404 38.64,58.8C38.64,57.209 39.929,55.92 41.52,55.92C43.111,55.92 44.4,57.209 44.4,58.8C44.4,66.223 50.417,72.24 57.84,72.24C59.431,72.24 60.72,73.529 60.72,75.12Z"
android:fillColor="#ffffff" android:fillColor="#000000"
android:fillType="evenOdd"/> android:fillType="evenOdd"/>
<path <path
android:pathData="M32.88,60.72C31.289,60.72 30,59.431 30,57.84C30,47.236 38.596,38.64 49.2,38.64C50.791,38.64 52.08,39.929 52.08,41.52C52.08,43.111 50.791,44.4 49.2,44.4C41.777,44.4 35.76,50.417 35.76,57.84C35.76,59.431 34.471,60.72 32.88,60.72Z" android:pathData="M32.88,60.72C31.289,60.72 30,59.431 30,57.84C30,47.236 38.596,38.64 49.2,38.64C50.791,38.64 52.08,39.929 52.08,41.52C52.08,43.111 50.791,44.4 49.2,44.4C41.777,44.4 35.76,50.417 35.76,57.84C35.76,59.431 34.471,60.72 32.88,60.72Z"
android:fillColor="#ffffff" android:fillColor="#000000"
android:fillType="evenOdd"/> android:fillType="evenOdd"/>
<path <path
android:pathData="M75.12,47.28C76.711,47.28 78,48.569 78,50.16C78,60.764 69.404,69.36 58.8,69.36C57.209,69.36 55.92,68.071 55.92,66.48C55.92,64.89 57.209,63.6 58.8,63.6C66.223,63.6 72.24,57.583 72.24,50.16C72.24,48.569 73.529,47.28 75.12,47.28Z" android:pathData="M75.12,47.28C76.711,47.28 78,48.569 78,50.16C78,60.764 69.404,69.36 58.8,69.36C57.209,69.36 55.92,68.071 55.92,66.48C55.92,64.89 57.209,63.6 58.8,63.6C66.223,63.6 72.24,57.583 72.24,50.16C72.24,48.569 73.529,47.28 75.12,47.28Z"
android:fillColor="#ffffff" android:fillColor="#000000"
android:fillType="evenOdd"/> android:fillType="evenOdd"/>
</vector> </vector>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" /> <background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground" /> <foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon> </adaptive-icon>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background" /> <background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground" /> <foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon> </adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 880 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@ -2,6 +2,6 @@
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<share-target android:targetClass="im.vector.app.features.share.IncomingShareActivity"> <share-target android:targetClass="im.vector.app.features.share.IncomingShareActivity">
<data android:mimeType="*/*" /> <data android:mimeType="*/*" />
<category android:name="im.vector.app.nightly.SHORTCUT_SHARE" /> <category android:name="net.oranki.volfram.nightly.SHORTCUT_SHARE" />
</share-target> </share-target>
</shortcuts> </shortcuts>

View File

@ -2,6 +2,6 @@
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android"> <shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<share-target android:targetClass="im.vector.app.features.share.IncomingShareActivity"> <share-target android:targetClass="im.vector.app.features.share.IncomingShareActivity">
<data android:mimeType="*/*" /> <data android:mimeType="*/*" />
<category android:name="im.vector.app.SHORTCUT_SHARE" /> <category android:name="net.oranki.volfram.SHORTCUT_SHARE" />
</share-target> </share-target>
</shortcuts> </shortcuts>

View File

@ -39,14 +39,15 @@
<!-- Level 1: Labs --> <!-- Level 1: Labs -->
<bool name="settings_labs_deferred_dm_visible">true</bool> <bool name="settings_labs_deferred_dm_visible">true</bool>
<bool name="settings_labs_deferred_dm_default">true</bool> <bool name="settings_labs_deferred_dm_default">true</bool>
<bool name="settings_labs_thread_messages_default">true</bool> <bool name="settings_labs_thread_messages_default">false</bool>
<bool name="settings_labs_new_app_layout_default">true</bool> <bool name="settings_labs_new_app_layout_default">true</bool>
<bool name="settings_labs_new_session_manager_default">false</bool> <bool name="settings_labs_hide_shields_default">true</bool>
<bool name="settings_labs_new_session_manager_default">true</bool>
<bool name="settings_labs_new_session_manager_visible">true</bool> <bool name="settings_labs_new_session_manager_visible">true</bool>
<bool name="settings_labs_client_info_recording_default">false</bool> <bool name="settings_labs_client_info_recording_default">true</bool>
<bool name="settings_labs_client_info_recording_visible">true</bool> <bool name="settings_labs_client_info_recording_visible">true</bool>
<bool name="settings_timeline_show_live_sender_info_visible">true</bool> <bool name="settings_timeline_show_live_sender_info_visible">true</bool>
<bool name="settings_timeline_show_live_sender_info_default">false</bool> <bool name="settings_timeline_show_live_sender_info_default">true</bool>
<bool name="settings_labs_rich_text_editor_visible">true</bool> <bool name="settings_labs_rich_text_editor_visible">true</bool>
<bool name="settings_labs_rich_text_editor_default">false</bool> <bool name="settings_labs_rich_text_editor_default">false</bool>
<bool name="settings_labs_enable_voice_broadcast_visible">true</bool> <bool name="settings_labs_enable_voice_broadcast_visible">true</bool>
@ -58,6 +59,6 @@
<!-- Level 1: Legals --> <!-- Level 1: Legals -->
<!-- Level 3: Security & Privacy, Sessions --> <!-- Level 3: Security & Privacy, Sessions -->
<bool name="settings_session_manager_show_ip_address">false</bool> <bool name="settings_session_manager_show_ip_address">true</bool>
</resources> </resources>

View File

@ -23,7 +23,7 @@
<!-- It is the push gateway for UnifiedPush --> <!-- It is the push gateway for UnifiedPush -->
<string name="default_push_gateway_http_url" translatable="false">https://matrix.gateway.unifiedpush.org/_matrix/push/v1/notify</string> <string name="default_push_gateway_http_url" translatable="false">https://matrix.gateway.unifiedpush.org/_matrix/push/v1/notify</string>
<!-- Note: pusher_app_id cannot exceed 64 chars --> <!-- Note: pusher_app_id cannot exceed 64 chars -->
<string name="pusher_app_id" translatable="false">im.vector.app.android</string> <string name="pusher_app_id" translatable="false">net.oranki.volfram</string>
<!-- preferred jitsi domain --> <!-- preferred jitsi domain -->
<string name="preferred_jitsi_domain" translatable="false">meet.element.io</string> <string name="preferred_jitsi_domain" translatable="false">meet.element.io</string>

View File

@ -40,6 +40,7 @@ interface VectorFeatures {
* use [VectorPreferences.isNewAppLayoutEnabled] instead. * use [VectorPreferences.isNewAppLayoutEnabled] instead.
*/ */
fun isNewAppLayoutFeatureEnabled(): Boolean fun isNewAppLayoutFeatureEnabled(): Boolean
fun isShieldVisibilityDisabled(): Boolean
fun isQrCodeLoginEnabled(): Boolean fun isQrCodeLoginEnabled(): Boolean
fun isQrCodeLoginForAllServers(): Boolean fun isQrCodeLoginForAllServers(): Boolean
fun isReciprocateQrCodeLogin(): Boolean fun isReciprocateQrCodeLogin(): Boolean
@ -60,6 +61,7 @@ class DefaultVectorFeatures : VectorFeatures {
override fun isLocationSharingEnabled() = Config.ENABLE_LOCATION_SHARING override fun isLocationSharingEnabled() = Config.ENABLE_LOCATION_SHARING
override fun forceUsageOfOpusEncoder(): Boolean = false override fun forceUsageOfOpusEncoder(): Boolean = false
override fun isNewAppLayoutFeatureEnabled(): Boolean = true override fun isNewAppLayoutFeatureEnabled(): Boolean = true
override fun isShieldVisibilityDisabled(): Boolean = true
override fun isQrCodeLoginEnabled(): Boolean = true override fun isQrCodeLoginEnabled(): Boolean = true
override fun isQrCodeLoginForAllServers(): Boolean = false override fun isQrCodeLoginForAllServers(): Boolean = false
override fun isReciprocateQrCodeLogin(): Boolean = false override fun isReciprocateQrCodeLogin(): Boolean = false

View File

@ -317,7 +317,7 @@ class HomeActivity :
} }
private fun handleShowAnalyticsOptIn() { private fun handleShowAnalyticsOptIn() {
navigator.openAnalyticsOptIn(this) // navigator.openAnalyticsOptIn(this)
} }
/** /**

View File

@ -26,6 +26,7 @@ import im.vector.app.features.home.room.detail.timeline.item.MessageInformationD
import im.vector.app.features.home.room.detail.timeline.item.ReferencesInfoData import im.vector.app.features.home.room.detail.timeline.item.ReferencesInfoData
import im.vector.app.features.home.room.detail.timeline.item.SendStateDecoration import im.vector.app.features.home.room.detail.timeline.item.SendStateDecoration
import im.vector.app.features.home.room.detail.timeline.style.TimelineMessageLayoutFactory import im.vector.app.features.home.room.detail.timeline.style.TimelineMessageLayoutFactory
import im.vector.app.features.settings.VectorPreferences
import org.matrix.android.sdk.api.extensions.orFalse import org.matrix.android.sdk.api.extensions.orFalse
import org.matrix.android.sdk.api.session.Session import org.matrix.android.sdk.api.session.Session
import org.matrix.android.sdk.api.session.crypto.model.MessageVerificationState import org.matrix.android.sdk.api.session.crypto.model.MessageVerificationState
@ -55,6 +56,7 @@ class MessageInformationDataFactory @Inject constructor(
private val messageLayoutFactory: TimelineMessageLayoutFactory, private val messageLayoutFactory: TimelineMessageLayoutFactory,
private val reactionsSummaryFactory: ReactionsSummaryFactory, private val reactionsSummaryFactory: ReactionsSummaryFactory,
private val pollResponseDataFactory: PollResponseDataFactory, private val pollResponseDataFactory: PollResponseDataFactory,
private val vectorPreferences: VectorPreferences,
) { ) {
fun create(params: TimelineItemFactoryParams): MessageInformationData { fun create(params: TimelineItemFactoryParams): MessageInformationData {
@ -147,7 +149,7 @@ class MessageInformationDataFactory @Inject constructor(
} }
private fun getE2EDecorationV2(roomSummary: RoomSummary?, event: Event): E2EDecoration { private fun getE2EDecorationV2(roomSummary: RoomSummary?, event: Event): E2EDecoration {
if (roomSummary?.isEncrypted != true) { if (roomSummary?.isEncrypted != true || vectorPreferences.isShieldVisibilityDisabled()) {
// No decoration for clear room // No decoration for clear room
// Questionable? what if the event is E2E? // Questionable? what if the event is E2E?
return E2EDecoration.NONE return E2EDecoration.NONE

View File

@ -70,6 +70,7 @@ class VectorPreferences @Inject constructor(
const val SETTINGS_BACKGROUND_SYNC_DIVIDER_PREFERENCE_KEY = "SETTINGS_BACKGROUND_SYNC_DIVIDER_PREFERENCE_KEY" const val SETTINGS_BACKGROUND_SYNC_DIVIDER_PREFERENCE_KEY = "SETTINGS_BACKGROUND_SYNC_DIVIDER_PREFERENCE_KEY"
const val SETTINGS_LABS_PREFERENCE_KEY = "SETTINGS_LABS_PREFERENCE_KEY" const val SETTINGS_LABS_PREFERENCE_KEY = "SETTINGS_LABS_PREFERENCE_KEY"
const val SETTINGS_LABS_NEW_APP_LAYOUT_KEY = "SETTINGS_LABS_NEW_APP_LAYOUT_KEY" const val SETTINGS_LABS_NEW_APP_LAYOUT_KEY = "SETTINGS_LABS_NEW_APP_LAYOUT_KEY"
const val SETTINGS_LABS_HIDE_SHIELDS_KEY = "SETTINGS_LABS_HIDE_SHIELDS_KEY"
const val SETTINGS_LABS_DEFERRED_DM_KEY = "SETTINGS_LABS_DEFERRED_DM_KEY" const val SETTINGS_LABS_DEFERRED_DM_KEY = "SETTINGS_LABS_DEFERRED_DM_KEY"
const val SETTINGS_LABS_RICH_TEXT_EDITOR_KEY = "SETTINGS_LABS_RICH_TEXT_EDITOR_KEY" const val SETTINGS_LABS_RICH_TEXT_EDITOR_KEY = "SETTINGS_LABS_RICH_TEXT_EDITOR_KEY"
const val SETTINGS_LABS_NEW_SESSION_MANAGER_KEY = "SETTINGS_LABS_NEW_SESSION_MANAGER_KEY" const val SETTINGS_LABS_NEW_SESSION_MANAGER_KEY = "SETTINGS_LABS_NEW_SESSION_MANAGER_KEY"
@ -305,6 +306,8 @@ class VectorPreferences @Inject constructor(
SETTINGS_SECURITY_USE_FLAG_SECURE, SETTINGS_SECURITY_USE_FLAG_SECURE,
SETTINGS_SECURITY_INCOGNITO_KEYBOARD_PREFERENCE_KEY, SETTINGS_SECURITY_INCOGNITO_KEYBOARD_PREFERENCE_KEY,
SETTINGS_LABS_HIDE_SHIELDS_KEY,
ShortcutsHandler.SHARED_PREF_KEY, ShortcutsHandler.SHARED_PREF_KEY,
) )
} }
@ -1123,7 +1126,7 @@ class VectorPreferences @Inject constructor(
* Indicates whether or not thread messages are enabled. * Indicates whether or not thread messages are enabled.
*/ */
fun areThreadMessagesEnabled(): Boolean { fun areThreadMessagesEnabled(): Boolean {
return defaultPrefs.getBoolean(SETTINGS_LABS_ENABLE_THREAD_MESSAGES, getDefault(R.bool.settings_labs_thread_messages_default)) return defaultPrefs.getBoolean(SETTINGS_LABS_ENABLE_THREAD_MESSAGES, false)
} }
/** /**
@ -1141,7 +1144,7 @@ class VectorPreferences @Inject constructor(
* Should be removed when Threads flag will be removed * Should be removed when Threads flag will be removed
*/ */
fun wasThreadFlagChangedManually(): Boolean { fun wasThreadFlagChangedManually(): Boolean {
return defaultPrefs.getBoolean(SETTINGS_LABS_THREAD_MESSAGES_CHANGED_BY_USER, false) return defaultPrefs.getBoolean(SETTINGS_LABS_THREAD_MESSAGES_CHANGED_BY_USER, true)
} }
/** /**
@ -1217,6 +1220,13 @@ class VectorPreferences @Inject constructor(
defaultPrefs.getBoolean(SETTINGS_LABS_NEW_APP_LAYOUT_KEY, getDefault(R.bool.settings_labs_new_app_layout_default)) defaultPrefs.getBoolean(SETTINGS_LABS_NEW_APP_LAYOUT_KEY, getDefault(R.bool.settings_labs_new_app_layout_default))
} }
/**
* Indicates if the encryption shields in rooms next to messages are hidden
*/
fun isShieldVisibilityDisabled() : Boolean {
return defaultPrefs.getBoolean(SETTINGS_LABS_HIDE_SHIELDS_KEY, getDefault(R.bool.settings_labs_hide_shields_default))
}
/** /**
* Indicates whether or not deferred DMs are enabled. * Indicates whether or not deferred DMs are enabled.
*/ */
@ -1228,18 +1238,18 @@ class VectorPreferences @Inject constructor(
* Indicates whether or not new session manager screens are enabled. * Indicates whether or not new session manager screens are enabled.
*/ */
fun isNewSessionManagerEnabled(): Boolean { fun isNewSessionManagerEnabled(): Boolean {
return defaultPrefs.getBoolean(SETTINGS_LABS_NEW_SESSION_MANAGER_KEY, getDefault(R.bool.settings_labs_new_session_manager_default)) return defaultPrefs.getBoolean(SETTINGS_LABS_NEW_SESSION_MANAGER_KEY, true)
} }
/** /**
* Indicates whether or not client info recording is enabled. * Indicates whether or not client info recording is enabled.
*/ */
fun isClientInfoRecordingEnabled(): Boolean { fun isClientInfoRecordingEnabled(): Boolean {
return defaultPrefs.getBoolean(SETTINGS_LABS_CLIENT_INFO_RECORDING_KEY, getDefault(R.bool.settings_labs_client_info_recording_default)) return defaultPrefs.getBoolean(SETTINGS_LABS_CLIENT_INFO_RECORDING_KEY, true)
} }
fun showLiveSenderInfo(): Boolean { fun showLiveSenderInfo(): Boolean {
return defaultPrefs.getBoolean(SETTINGS_TIMELINE_SHOW_LIVE_SENDER_INFO, getDefault(R.bool.settings_timeline_show_live_sender_info_default)) return defaultPrefs.getBoolean(SETTINGS_TIMELINE_SHOW_LIVE_SENDER_INFO, true)
} }
fun isRichTextEditorEnabled(): Boolean { fun isRichTextEditorEnabled(): Boolean {
@ -1252,7 +1262,7 @@ class VectorPreferences @Inject constructor(
} }
fun showIpAddressInSessionManagerScreens(): Boolean { fun showIpAddressInSessionManagerScreens(): Boolean {
return defaultPrefs.getBoolean(SETTINGS_SESSION_MANAGER_SHOW_IP_ADDRESS, getDefault(R.bool.settings_session_manager_show_ip_address)) return defaultPrefs.getBoolean(SETTINGS_SESSION_MANAGER_SHOW_IP_ADDRESS, true)
} }
fun setIpAddressVisibilityInDeviceManagerScreens(isVisible: Boolean) { fun setIpAddressVisibilityInDeviceManagerScreens(isVisible: Boolean) {

View File

@ -133,7 +133,7 @@ object ThemeUtils {
*/ */
fun setActivityTheme(activity: Activity, otherThemes: ActivityOtherThemes) { fun setActivityTheme(activity: Activity, otherThemes: ActivityOtherThemes) {
when (getApplicationTheme(activity)) { when (getApplicationTheme(activity)) {
SYSTEM_THEME_VALUE -> if (isSystemDarkTheme(activity.resources)) activity.setTheme(otherThemes.dark) SYSTEM_THEME_VALUE -> if (isSystemDarkTheme(activity.resources)) activity.setTheme(otherThemes.black)
THEME_DARK_VALUE -> activity.setTheme(otherThemes.dark) THEME_DARK_VALUE -> activity.setTheme(otherThemes.dark)
THEME_BLACK_VALUE -> activity.setTheme(otherThemes.black) THEME_BLACK_VALUE -> activity.setTheme(otherThemes.black)
} }
@ -202,7 +202,7 @@ object ThemeUtils {
@StyleRes @StyleRes
private fun themeToRes(context: Context, theme: String): Int = private fun themeToRes(context: Context, theme: String): Int =
when (theme) { when (theme) {
SYSTEM_THEME_VALUE -> if (isSystemDarkTheme(context.resources)) R.style.Theme_Vector_Dark else R.style.Theme_Vector_Light SYSTEM_THEME_VALUE -> if (isSystemDarkTheme(context.resources)) R.style.Theme_Vector_Black else R.style.Theme_Vector_Light
THEME_DARK_VALUE -> R.style.Theme_Vector_Dark THEME_DARK_VALUE -> R.style.Theme_Vector_Dark
THEME_BLACK_VALUE -> R.style.Theme_Vector_Black THEME_BLACK_VALUE -> R.style.Theme_Vector_Black
else -> R.style.Theme_Vector_Light else -> R.style.Theme_Vector_Light

View File

@ -37,7 +37,7 @@
android:layout_width="64dp" android:layout_width="64dp"
android:layout_height="64dp" android:layout_height="64dp"
android:importantForAccessibility="no" android:importantForAccessibility="no"
android:src="@drawable/element_logo_green" android:src="@drawable/element_logo_black"
android:transitionName="loginLogoTransition" /> android:transitionName="loginLogoTransition" />
<ImageView <ImageView
@ -47,7 +47,7 @@
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:contentDescription="@string/app_name" android:contentDescription="@string/app_name"
android:src="@drawable/element_logotype" android:src="@drawable/element_logotype"
app:tint="?colorSecondary" app:tint="@color/palette_black_900"
tools:ignore="MissingPrefix" /> tools:ignore="MissingPrefix" />
</LinearLayout> </LinearLayout>

View File

@ -115,7 +115,7 @@
app:layout_constraintBottom_toTopOf="@id/newLayoutCreateChatButton" app:layout_constraintBottom_toTopOf="@id/newLayoutCreateChatButton"
app:layout_constraintEnd_toEndOf="@id/newLayoutCreateChatButton" app:layout_constraintEnd_toEndOf="@id/newLayoutCreateChatButton"
app:layout_constraintStart_toStartOf="@id/newLayoutCreateChatButton" app:layout_constraintStart_toStartOf="@id/newLayoutCreateChatButton"
app:tint="?attr/colorPrimary" app:tint="?vctr_content_primary"
tools:targetApi="lollipop_mr1" tools:targetApi="lollipop_mr1"
tools:visibility="visible" /> tools:visibility="visible" />

View File

@ -51,7 +51,7 @@
android:title="@string/settings_rageshake"> android:title="@string/settings_rageshake">
<im.vector.app.core.preference.VectorSwitchPreference <im.vector.app.core.preference.VectorSwitchPreference
android:defaultValue="true" android:defaultValue="false"
android:key="SETTINGS_USE_RAGE_SHAKE_KEY" android:key="SETTINGS_USE_RAGE_SHAKE_KEY"
android:title="@string/send_bug_report_rage_shake" /> android:title="@string/send_bug_report_rage_shake" />

View File

@ -89,6 +89,12 @@
android:summary="@string/labs_enable_new_app_layout_summary" android:summary="@string/labs_enable_new_app_layout_summary"
android:title="@string/labs_enable_new_app_layout_title" /> android:title="@string/labs_enable_new_app_layout_title" />
<im.vector.app.core.preference.VectorSwitchPreference
android:defaultValue="@bool/settings_labs_hide_shields_default"
android:key="SETTINGS_LABS_HIDE_SHIELDS_KEY"
android:summary="@string/labs_enable_hide_shields_summary"
android:title="@string/labs_enable_hide_shields_title" />
<im.vector.app.core.preference.VectorSwitchPreference <im.vector.app.core.preference.VectorSwitchPreference
android:defaultValue="@bool/settings_labs_deferred_dm_default" android:defaultValue="@bool/settings_labs_deferred_dm_default"
android:key="SETTINGS_LABS_DEFERRED_DM_KEY" android:key="SETTINGS_LABS_DEFERRED_DM_KEY"