Merge branch 'develop' into feature/aris/thread_live_thread_list

This commit is contained in:
ariskotsomitopoulos 2022-03-10 18:48:41 +02:00
commit 34cfdfb6fe
96 changed files with 117 additions and 1432 deletions

View File

@ -87,11 +87,11 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-gradle- ${{ runner.os }}-gradle-
- name: Start synapse server - name: Start synapse server
run: | uses: michaelkaye/setup-matrix-synapse@v0.3.0
pip install matrix-synapse with:
curl https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh -o start.sh uploadLogs: true
chmod 777 start.sh httpPort: 8080
./start.sh --no-rate-limit disableRateLimiting: true
# package: org.matrix.android.sdk.session # package: org.matrix.android.sdk.session
- name: Run integration tests for Matrix SDK [org.matrix.android.sdk.session] API[${{ matrix.api-level }}] - name: Run integration tests for Matrix SDK [org.matrix.android.sdk.session] API[${{ matrix.api-level }}]
uses: reactivecircus/android-emulator-runner@v2 uses: reactivecircus/android-emulator-runner@v2
@ -274,10 +274,11 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-gradle- ${{ runner.os }}-gradle-
- name: Start synapse server - name: Start synapse server
run: | uses: michaelkaye/setup-matrix-synapse@v0.3.0
pip install matrix-synapse with:
curl -sL https://raw.githubusercontent.com/matrix-org/synapse/develop/demo/start.sh \ uploadLogs: true
| sed s/127.0.0.1/0.0.0.0/g | sed 's/http:\/\/localhost/http:\/\/10.0.2.2/g' | bash -s -- --no-rate-limit httpPort: 8080
disableRateLimiting: true
- uses: actions/setup-java@v2 - uses: actions/setup-java@v2
with: with:
distribution: 'adopt' distribution: 'adopt'

1
changelog.d/5346.misc Normal file
View File

@ -0,0 +1 @@
Selected space highlight changed in left panel

1
changelog.d/5384.misc Normal file
View File

@ -0,0 +1 @@
Add top margin before our first message

1
changelog.d/5448.bugfix Normal file
View File

@ -0,0 +1 @@
Fix missing messages when loading messages forwards

1
changelog.d/5501.misc Normal file
View File

@ -0,0 +1 @@
Use ColorPrimary for attachmentGalleryButton tint

View File

@ -20,7 +20,6 @@ import android.content.ClipData
import android.content.ClipboardManager import android.content.ClipboardManager
import android.content.Context import android.content.Context
import android.view.ContextMenu import android.view.ContextMenu
import android.view.Menu
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
@ -77,10 +76,7 @@ internal abstract class ValueItem : EpoxyModelWithHolder<ValueItem.Holder>() {
menuInfo: ContextMenu.ContextMenuInfo? menuInfo: ContextMenu.ContextMenuInfo?
) { ) {
if (copyValue != null) { if (copyValue != null) {
val menuItem = menu?.add( val menuItem = menu?.add(R.string.copy_value)
Menu.NONE, R.id.copy_value,
Menu.NONE, R.string.copy_value
)
val clipService = val clipService =
v?.context?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager v?.context?.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManager
menuItem?.setOnMenuItemClickListener { menuItem?.setOnMenuItemClickListener {

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/copy_value"
android:title="@string/copy_value" />
</menu>

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="copy_value">Copy Value</string> <string name="copy_value">Copy Value</string>
</resources> </resources>

View File

@ -71,19 +71,6 @@
android:enabled="false" android:enabled="false"
android:text="Destructive disabled" /> android:text="Destructive disabled" />
<Button
style="@style/Widget.Vector.Button.Unelevated.Bot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bot" />
<Button
style="@style/Widget.Vector.Button.Unelevated.Bot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="false"
android:text="Bot disabled" />
<Button <Button
style="@style/Widget.Vector.Button.Outlined" style="@style/Widget.Vector.Button.Outlined"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -98,19 +85,6 @@
android:enabled="false" android:enabled="false"
android:text="Outline disabled" /> android:text="Outline disabled" />
<Button
style="@style/Widget.Vector.Button.Outlined.Poll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Poll " />
<Button
style="@style/Widget.Vector.Button.Outlined.Poll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:enabled="false"
android:text="Poll disabled" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@ -74,7 +74,7 @@
android:padding="16dp"> android:padding="16dp">
<Button <Button
style="@style/Widget.Vector.Button.Outlined.SocialLogin.Google.Dark" style="@style/Widget.Vector.Button.Outlined.SocialLogin.Google.Light"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Continue with XXX" /> android:text="Continue with XXX" />

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#4285F4" android:state_enabled="true"/>
<item android:color="@color/vctr_disabled_view_color_light" android:state_enabled="false"/>
<item android:color="#3367D6" android:state_pressed="true"/>
<item android:color="#4285F4" android:state_focused="true"/>
</selector>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="DialpadKeyNumberStyle">
<item name="android:textColor">?attr/vctr_content_primary</item>
<item name="android:textSize">@dimen/dialpad_key_numbers_default_size</item>
<item name="android:fontFamily">sans-serif</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginBottom">@dimen/dialpad_key_number_default_margin_bottom</item>
<item name="android:gravity">center</item>
</style>
<style name="DialpadKeyLettersStyle">
<item name="android:textColor">?attr/vctr_content_secondary</item>
<item name="android:textSize">@dimen/dialpad_key_letters_size</item>
<item name="android:fontFamily">sans-serif-regular</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:gravity">center_horizontal</item>
</style>
<style name="DialpadKeyPoundStyle" parent="DialpadKeyNumberStyle">
<item name="android:textSize">@dimen/dialpad_key_pound_size</item>
<item name="android:layout_marginBottom">@dimen/dialpad_symbol_margin_bottom</item>
</style>
<style name="DialpadKeyStarStyle" parent="DialpadKeyNumberStyle">
<item name="android:textSize">@dimen/dialpad_key_star_size</item>
<item name="android:layout_marginBottom">@dimen/dialpad_symbol_margin_bottom</item>
</style>
</resources>

View File

@ -9,10 +9,6 @@
<color name="soft_resource_limit_exceeded">#2f9edb</color> <color name="soft_resource_limit_exceeded">#2f9edb</color>
<color name="hard_resource_limit_exceeded">?colorError</color> <color name="hard_resource_limit_exceeded">?colorError</color>
<!-- Button color -->
<color name="button_bot_background_color">#14368BD6</color>
<color name="button_bot_enabled_text_color">@color/palette_azure</color>
<!-- Notification (do not depends on theme) --> <!-- Notification (do not depends on theme) -->
<color name="notification_accent_color">@color/palette_azure</color> <color name="notification_accent_color">@color/palette_azure</color>
<color name="key_share_req_accent_color">@color/palette_melon</color> <color name="key_share_req_accent_color">@color/palette_melon</color>
@ -22,7 +18,6 @@
<color name="bg_call_screen_blur">#99000000</color> <color name="bg_call_screen_blur">#99000000</color>
<color name="bg_call_screen">#27303A</color> <color name="bg_call_screen">#27303A</color>
<color name="vctr_notice_secondary">#FF61708B</color>
<color name="vctr_notice_secondary_alpha12">#1E61708B</color> <color name="vctr_notice_secondary_alpha12">#1E61708B</color>
<!-- Other useful color --> <!-- Other useful color -->
@ -83,16 +78,6 @@
<color name="vctr_touch_guard_bg_dark">#BF000000</color> <color name="vctr_touch_guard_bg_dark">#BF000000</color>
<color name="vctr_touch_guard_bg_black">#BF000000</color> <color name="vctr_touch_guard_bg_black">#BF000000</color>
<attr name="vctr_attachment_selector_background" format="color" />
<color name="vctr_attachment_selector_background_light">#FFFFFFFF</color>
<color name="vctr_attachment_selector_background_dark">#FF22262E</color>
<color name="vctr_attachment_selector_background_black">#FF090A0C</color>
<attr name="vctr_attachment_selector_border" format="color" />
<color name="vctr_attachment_selector_border_light">#FFE9EDF1</color>
<color name="vctr_attachment_selector_border_dark">#FF22262E</color>
<color name="vctr_attachment_selector_border_black">#FF090A0C</color>
<attr name="vctr_room_active_widgets_banner_bg" format="color" /> <attr name="vctr_room_active_widgets_banner_bg" format="color" />
<color name="vctr_room_active_widgets_banner_bg_light">#EBEFF5</color> <color name="vctr_room_active_widgets_banner_bg_light">#EBEFF5</color>
<color name="vctr_room_active_widgets_banner_bg_dark">#27303A</color> <color name="vctr_room_active_widgets_banner_bg_dark">#27303A</color>
@ -107,9 +92,7 @@
<color name="vctr_waiting_background_color_light">#AAAAAAAA</color> <color name="vctr_waiting_background_color_light">#AAAAAAAA</color>
<color name="vctr_waiting_background_color_dark">#55555555</color> <color name="vctr_waiting_background_color_dark">#55555555</color>
<attr name="vctr_disabled_view_color" format="color" />
<color name="vctr_disabled_view_color_light">#EEEEEE</color> <color name="vctr_disabled_view_color_light">#EEEEEE</color>
<color name="vctr_disabled_view_color_dark">#61708B</color>
<attr name="vctr_reaction_background_off" format="color" /> <attr name="vctr_reaction_background_off" format="color" />
<color name="vctr_reaction_background_off_light">#FFF3F8FD</color> <color name="vctr_reaction_background_off_light">#FFF3F8FD</color>

View File

@ -9,20 +9,11 @@
<dimen name="layout_vertical_margin_big">32dp</dimen> <dimen name="layout_vertical_margin_big">32dp</dimen>
<dimen name="profile_avatar_size">50dp</dimen> <dimen name="profile_avatar_size">50dp</dimen>
<dimen name="floating_action_button_margin">16dp</dimen>
<dimen name="navigation_view_height">196dp</dimen>
<dimen name="navigation_avatar_top_margin">44dp</dimen>
<dimen name="item_decoration_left_margin">72dp</dimen>
<dimen name="item_event_message_state_size">16dp</dimen> <dimen name="item_event_message_state_size">16dp</dimen>
<dimen name="item_event_message_media_button_size">32dp</dimen> <dimen name="item_event_message_media_button_size">32dp</dimen>
<dimen name="chat_avatar_size">40dp</dimen>
<dimen name="member_list_avatar_size">60dp</dimen>
<dimen name="quote_width">4dp</dimen>
<dimen name="quote_gap">8dp</dimen> <dimen name="quote_gap">8dp</dimen>
<dimen name="drawable_padding_small">8dp</dimen>
<item name="dialog_width_ratio" format="float" type="dimen">0.75</item> <item name="dialog_width_ratio" format="float" type="dimen">0.75</item>

View File

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="UnusedResources">
<!-- Define all the colors used across the Element Android project <!--
Source: https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=1338%3A17947 --> Define all the colors used across the Element Android project
Source: https://www.figma.com/file/X4XTH9iS2KGJ2wFKDqkyed/Compound?node-id=1338%3A17947
Some colors are not used, but we want the palette to be complete so we ignore the lint error
UnusedResources for all the resources in this file
-->
<!-- For all themes --> <!-- For all themes -->
<color name="palette_azure">#368BD6</color> <color name="palette_azure">#368BD6</color>
@ -15,6 +19,7 @@
<color name="palette_element_green">#0DBD8B</color> <color name="palette_element_green">#0DBD8B</color>
<color name="palette_white">#FFFFFF</color> <color name="palette_white">#FFFFFF</color>
<color name="palette_vermilion">#FF5B55</color> <color name="palette_vermilion">#FF5B55</color>
<!-- (unused) -->
<color name="palette_ems">#7E69FF</color> <color name="palette_ems">#7E69FF</color>
<color name="palette_aqua">#2DC2C5</color> <color name="palette_aqua">#2DC2C5</color>
<color name="palette_prune">#5C56F5</color> <color name="palette_prune">#5C56F5</color>
@ -27,6 +32,7 @@
<color name="palette_gray_150">#8D97A5</color> <color name="palette_gray_150">#8D97A5</color>
<color name="palette_gray_200">#737D8C</color> <color name="palette_gray_200">#737D8C</color>
<color name="palette_black_900">#17191C</color> <color name="palette_black_900">#17191C</color>
<!-- (unused) -->
<color name="palette_ice">#F4F9FD</color> <color name="palette_ice">#F4F9FD</color>
<!-- For dark themes --> <!-- For dark themes -->

View File

@ -35,7 +35,6 @@
<attr name="vctr_system" format="color" /> <attr name="vctr_system" format="color" />
<color name="element_system_light">@color/palette_gray_25</color> <color name="element_system_light">@color/palette_gray_25</color>
<color name="element_system_dark">@color/palette_black_950</color> <color name="element_system_dark">@color/palette_black_950</color>
<color name="element_system_black">@color/palette_black_950</color>
<color name="element_background_light">@color/palette_white</color> <color name="element_background_light">@color/palette_white</color>
<color name="element_background_dark">@color/palette_black_800</color> <color name="element_background_dark">@color/palette_black_800</color>

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AttachmentTypeSelectorButton">
<item name="android:layout_width">56dp</item>
<item name="android:layout_height">56dp</item>
<item name="android:scaleType">center</item>
</style>
<style name="AttachmentTypeSelectorLabel">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">?vctr_content_primary</item>
<item name="android:textSize">14sp</item>
<item name="android:layout_marginTop">8dp</item>
</style>
</resources>

View File

@ -33,24 +33,6 @@
<!-- Keep default colors from the theme --> <!-- Keep default colors from the theme -->
</style> </style>
<style name="Widget.Vector.Button.Unelevated" parent="Widget.MaterialComponents.Button.UnelevatedButton">
<item name="android:paddingLeft">16dp</item>
<item name="android:paddingRight">16dp</item>
<item name="android:minWidth">94dp</item>
<item name="android:textAppearance">@style/TextAppearance.Vector.Button</item>
<item name="cornerRadius">8dp</item>
<item name="lineHeight">24sp</item>
</style>
<style name="Widget.Vector.Button.Unelevated.Bot">
<item name="materialThemeOverlay">@style/VectorMaterialThemeOverlayBot</item>
</style>
<style name="VectorMaterialThemeOverlayBot">
<item name="colorPrimary">@color/button_bot_background_color</item>
<item name="colorOnPrimary">@color/button_bot_enabled_text_color</item>
</style>
<style name="Widget.Vector.Button.Text" parent="Widget.MaterialComponents.Button.TextButton"> <style name="Widget.Vector.Button.Text" parent="Widget.MaterialComponents.Button.TextButton">
<item name="colorControlHighlight">?colorSecondary</item> <item name="colorControlHighlight">?colorSecondary</item>
<item name="materialThemeOverlay">@style/VectorMaterialThemeOverlayPositive</item> <item name="materialThemeOverlay">@style/VectorMaterialThemeOverlayPositive</item>
@ -83,9 +65,4 @@
<item name="colorPrimary">?colorOnPrimary</item> <item name="colorPrimary">?colorOnPrimary</item>
</style> </style>
<style name="Widget.Vector.Button.Outlined.Poll">
<item name="android:minHeight">44dp</item>
<item name="cornerRadius">10dp</item>
</style>
</resources> </resources>

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="UnusedResources">
<!-- This file contain styles to override the style from the library android-dialer-1.2.5.aar
This is why we ignore the lint error UnusedResources -->
<style name="DialpadKeyNumberStyle"> <style name="DialpadKeyNumberStyle">
<item name="android:textColor">?vctr_content_primary</item> <item name="android:textColor">?vctr_content_primary</item>

View File

@ -28,11 +28,6 @@
<item name="android:textColor">@color/black_54</item> <item name="android:textColor">@color/black_54</item>
</style> </style>
<style name="Widget.Vector.Button.Outlined.SocialLogin.Google.Dark">
<item name="android:backgroundTint">@color/button_social_google_background_selector_dark</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="Widget.Vector.Button.Outlined.SocialLogin.Github"> <style name="Widget.Vector.Button.Outlined.SocialLogin.Github">
<item name="icon">@drawable/ic_social_github</item> <item name="icon">@drawable/ic_social_github</item>
</style> </style>

View File

@ -11,8 +11,6 @@
<item name="vctr_fab_label_stroke">@color/vctr_fab_label_stroke_black</item> <item name="vctr_fab_label_stroke">@color/vctr_fab_label_stroke_black</item>
<item name="vctr_fab_label_color">@color/vctr_fab_label_color_black</item> <item name="vctr_fab_label_color">@color/vctr_fab_label_color_black</item>
<item name="vctr_touch_guard_bg">@color/vctr_touch_guard_bg_black</item> <item name="vctr_touch_guard_bg">@color/vctr_touch_guard_bg_black</item>
<item name="vctr_attachment_selector_background">@color/vctr_attachment_selector_background_black</item>
<item name="vctr_attachment_selector_border">@color/vctr_attachment_selector_border_black</item>
<item name="vctr_room_active_widgets_banner_bg">@color/vctr_room_active_widgets_banner_bg_black</item> <item name="vctr_room_active_widgets_banner_bg">@color/vctr_room_active_widgets_banner_bg_black</item>
<item name="vctr_room_active_widgets_banner_text">@color/vctr_room_active_widgets_banner_text_black</item> <item name="vctr_room_active_widgets_banner_text">@color/vctr_room_active_widgets_banner_text_black</item>
<item name="vctr_reaction_background_off">@color/vctr_reaction_background_off_black</item> <item name="vctr_reaction_background_off">@color/vctr_reaction_background_off_black</item>

View File

@ -21,8 +21,6 @@
<item name="vctr_fab_label_color">@color/vctr_fab_label_color_dark</item> <item name="vctr_fab_label_color">@color/vctr_fab_label_color_dark</item>
<item name="vctr_touch_guard_bg">@color/vctr_touch_guard_bg_dark</item> <item name="vctr_touch_guard_bg">@color/vctr_touch_guard_bg_dark</item>
<item name="vctr_keys_backup_banner_accent_color">@color/vctr_keys_backup_banner_accent_color_dark</item> <item name="vctr_keys_backup_banner_accent_color">@color/vctr_keys_backup_banner_accent_color_dark</item>
<item name="vctr_attachment_selector_background">@color/vctr_attachment_selector_background_dark</item>
<item name="vctr_attachment_selector_border">@color/vctr_attachment_selector_border_dark</item>
<item name="vctr_room_active_widgets_banner_bg">@color/vctr_room_active_widgets_banner_bg_dark</item> <item name="vctr_room_active_widgets_banner_bg">@color/vctr_room_active_widgets_banner_bg_dark</item>
<item name="vctr_room_active_widgets_banner_text">@color/vctr_room_active_widgets_banner_text_dark</item> <item name="vctr_room_active_widgets_banner_text">@color/vctr_room_active_widgets_banner_text_dark</item>
<item name="vctr_reaction_background_off">@color/vctr_reaction_background_off_dark</item> <item name="vctr_reaction_background_off">@color/vctr_reaction_background_off_dark</item>

View File

@ -21,8 +21,6 @@
<item name="vctr_fab_label_color">@color/vctr_fab_label_color_light</item> <item name="vctr_fab_label_color">@color/vctr_fab_label_color_light</item>
<item name="vctr_touch_guard_bg">@color/vctr_touch_guard_bg_light</item> <item name="vctr_touch_guard_bg">@color/vctr_touch_guard_bg_light</item>
<item name="vctr_keys_backup_banner_accent_color">@color/vctr_keys_backup_banner_accent_color_light</item> <item name="vctr_keys_backup_banner_accent_color">@color/vctr_keys_backup_banner_accent_color_light</item>
<item name="vctr_attachment_selector_background">@color/vctr_attachment_selector_background_light</item>
<item name="vctr_attachment_selector_border">@color/vctr_attachment_selector_border_light</item>
<item name="vctr_room_active_widgets_banner_bg">@color/vctr_room_active_widgets_banner_bg_light</item> <item name="vctr_room_active_widgets_banner_bg">@color/vctr_room_active_widgets_banner_bg_light</item>
<item name="vctr_room_active_widgets_banner_text">@color/vctr_room_active_widgets_banner_text_light</item> <item name="vctr_room_active_widgets_banner_text">@color/vctr_room_active_widgets_banner_text_light</item>
<item name="vctr_reaction_background_off">@color/vctr_reaction_background_off_light</item> <item name="vctr_reaction_background_off">@color/vctr_reaction_background_off_light</item>

View File

@ -34,9 +34,8 @@ android {
buildConfigField "String", "SDK_VERSION", "\"1.4.6\"" buildConfigField "String", "SDK_VERSION", "\"1.4.6\""
buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\"" buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\""
resValue "string", "git_sdk_revision", "\"${gitRevision()}\"" buildConfigField "String", "GIT_SDK_REVISION_UNIX_DATE", "\"${gitRevisionUnixDate()}\""
resValue "string", "git_sdk_revision_unix_date", "\"${gitRevisionUnixDate()}\"" buildConfigField "String", "GIT_SDK_REVISION_DATE", "\"${gitRevisionDate()}\""
resValue "string", "git_sdk_revision_date", "\"${gitRevisionDate()}\""
defaultConfig { defaultConfig {
consumerProguardFiles 'proguard-rules.pro' consumerProguardFiles 'proguard-rules.pro'

View File

@ -111,10 +111,10 @@ class E2eeSanityTests : InstrumentedTest {
otherAccounts.forEach { otherSession -> otherAccounts.forEach { otherSession ->
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = otherSession.getRoom(e2eRoomID)?.getTimeLineEvent(sentEventId!!) val timelineEvent = otherSession.getRoom(e2eRoomID)?.getTimelineEvent(sentEventId!!)
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.isEncrypted() && timelineEvent.isEncrypted() &&
timeLineEvent.root.getClearType() == EventType.MESSAGE timelineEvent.root.getClearType() == EventType.MESSAGE
} }
} }
} }
@ -147,12 +147,12 @@ class E2eeSanityTests : InstrumentedTest {
newAccount.forEach { otherSession -> newAccount.forEach { otherSession ->
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = otherSession.getRoom(e2eRoomID)?.getTimeLineEvent(sentEventId!!).also { val timelineEvent = otherSession.getRoom(e2eRoomID)?.getTimelineEvent(sentEventId!!).also {
Log.v("#E2E TEST", "Event seen by new user ${it?.root?.getClearType()}|${it?.root?.mCryptoError}") Log.v("#E2E TEST", "Event seen by new user ${it?.root?.getClearType()}|${it?.root?.mCryptoError}")
} }
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.root.getClearType() == EventType.ENCRYPTED && timelineEvent.root.getClearType() == EventType.ENCRYPTED &&
timeLineEvent.root.mCryptoError == MXCryptoError.ErrorType.UNKNOWN_INBOUND_SESSION_ID timelineEvent.root.mCryptoError == MXCryptoError.ErrorType.UNKNOWN_INBOUND_SESSION_ID
} }
} }
} }
@ -167,12 +167,12 @@ class E2eeSanityTests : InstrumentedTest {
newAccount.forEach { otherSession -> newAccount.forEach { otherSession ->
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = otherSession.getRoom(e2eRoomID)?.getTimeLineEvent(secondSentEventId!!).also { val timelineEvent = otherSession.getRoom(e2eRoomID)?.getTimelineEvent(secondSentEventId!!).also {
Log.v("#E2E TEST", "Second Event seen by new user ${it?.root?.getClearType()}|${it?.root?.mCryptoError}") Log.v("#E2E TEST", "Second Event seen by new user ${it?.root?.getClearType()}|${it?.root?.mCryptoError}")
} }
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.root.getClearType() == EventType.MESSAGE && timelineEvent.root.getClearType() == EventType.MESSAGE &&
secondMessage.equals(timeLineEvent.root.getClearContent().toModel<MessageContent>()?.body) secondMessage.equals(timelineEvent.root.getClearContent().toModel<MessageContent>()?.body)
} }
} }
} }
@ -230,10 +230,10 @@ class E2eeSanityTests : InstrumentedTest {
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = bobSession.getRoom(e2eRoomID)?.getTimeLineEvent(sentEventId) val timelineEvent = bobSession.getRoom(e2eRoomID)?.getTimelineEvent(sentEventId)
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.isEncrypted() && timelineEvent.isEncrypted() &&
timeLineEvent.root.getClearType() == EventType.MESSAGE timelineEvent.root.getClearType() == EventType.MESSAGE
} }
} }
// we want more so let's discard the session // we want more so let's discard the session
@ -277,11 +277,11 @@ class E2eeSanityTests : InstrumentedTest {
sentEventIds.forEach { sentEventId -> sentEventIds.forEach { sentEventId ->
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = newBobSession.getRoom(e2eRoomID)?.getTimeLineEvent(sentEventId)?.also { val timelineEvent = newBobSession.getRoom(e2eRoomID)?.getTimelineEvent(sentEventId)?.also {
Log.v("#E2E TEST", "Event seen by new user ${it.root.getClearType()}|${it.root.mCryptoError}") Log.v("#E2E TEST", "Event seen by new user ${it.root.getClearType()}|${it.root.mCryptoError}")
} }
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.root.getClearType() == EventType.ENCRYPTED timelineEvent.root.getClearType() == EventType.ENCRYPTED
} }
} }
} }
@ -339,10 +339,10 @@ class E2eeSanityTests : InstrumentedTest {
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = bobSession.getRoom(e2eRoomID)?.getTimeLineEvent(sentEventId) val timelineEvent = bobSession.getRoom(e2eRoomID)?.getTimelineEvent(sentEventId)
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.isEncrypted() && timelineEvent.isEncrypted() &&
timeLineEvent.root.getClearType() == EventType.MESSAGE timelineEvent.root.getClearType() == EventType.MESSAGE
} }
} }
} }
@ -362,7 +362,7 @@ class E2eeSanityTests : InstrumentedTest {
// Try to request // Try to request
sentEventIds.forEach { sentEventId -> sentEventIds.forEach { sentEventId ->
val event = newBobSession.getRoom(e2eRoomID)!!.getTimeLineEvent(sentEventId)!!.root val event = newBobSession.getRoom(e2eRoomID)!!.getTimelineEvent(sentEventId)!!.root
newBobSession.cryptoService().requestRoomKeyForEvent(event) newBobSession.cryptoService().requestRoomKeyForEvent(event)
} }
@ -381,7 +381,7 @@ class E2eeSanityTests : InstrumentedTest {
// now let new session re-request // now let new session re-request
sentEventIds.forEach { sentEventId -> sentEventIds.forEach { sentEventId ->
val event = newBobSession.getRoom(e2eRoomID)!!.getTimeLineEvent(sentEventId)!!.root val event = newBobSession.getRoom(e2eRoomID)!!.getTimelineEvent(sentEventId)!!.root
newBobSession.cryptoService().reRequestRoomKeyForEvent(event) newBobSession.cryptoService().reRequestRoomKeyForEvent(event)
} }
@ -420,10 +420,10 @@ class E2eeSanityTests : InstrumentedTest {
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = bobSessionWithBetterKey.getRoom(e2eRoomID)?.getTimeLineEvent(firstEventId) val timelineEvent = bobSessionWithBetterKey.getRoom(e2eRoomID)?.getTimelineEvent(firstEventId)
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.isEncrypted() && timelineEvent.isEncrypted() &&
timeLineEvent.root.getClearType() == EventType.MESSAGE timelineEvent.root.getClearType() == EventType.MESSAGE
} }
} }
} }
@ -448,17 +448,17 @@ class E2eeSanityTests : InstrumentedTest {
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = newBobSession.getRoom(e2eRoomID)?.getTimeLineEvent(secondEventId) val timelineEvent = newBobSession.getRoom(e2eRoomID)?.getTimelineEvent(secondEventId)
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.isEncrypted() && timelineEvent.isEncrypted() &&
timeLineEvent.root.getClearType() == EventType.MESSAGE timelineEvent.root.getClearType() == EventType.MESSAGE
} }
} }
} }
// check that both messages have same sessionId (it's just that we don't have index 0) // check that both messages have same sessionId (it's just that we don't have index 0)
val firstEventNewBobPov = newBobSession.getRoom(e2eRoomID)?.getTimeLineEvent(firstEventId) val firstEventNewBobPov = newBobSession.getRoom(e2eRoomID)?.getTimelineEvent(firstEventId)
val secondEventNewBobPov = newBobSession.getRoom(e2eRoomID)?.getTimeLineEvent(secondEventId) val secondEventNewBobPov = newBobSession.getRoom(e2eRoomID)?.getTimelineEvent(secondEventId)
val firstSessionId = firstEventNewBobPov!!.root.content.toModel<EncryptedEventContent>()!!.sessionId!! val firstSessionId = firstEventNewBobPov!!.root.content.toModel<EncryptedEventContent>()!!.sessionId!!
val secondSessionId = secondEventNewBobPov!!.root.content.toModel<EncryptedEventContent>()!!.sessionId!! val secondSessionId = secondEventNewBobPov!!.root.content.toModel<EncryptedEventContent>()!!.sessionId!!
@ -592,7 +592,7 @@ class E2eeSanityTests : InstrumentedTest {
sentEventIds.forEachIndexed { index, sentEventId -> sentEventIds.forEachIndexed { index, sentEventId ->
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val event = session.getRoom(e2eRoomID)!!.getTimeLineEvent(sentEventId)!!.root val event = session.getRoom(e2eRoomID)!!.getTimelineEvent(sentEventId)!!.root
testHelper.runBlockingTest { testHelper.runBlockingTest {
try { try {
session.cryptoService().decryptEvent(event, "").let { result -> session.cryptoService().decryptEvent(event, "").let { result ->
@ -618,10 +618,10 @@ class E2eeSanityTests : InstrumentedTest {
testHelper.waitWithLatch { latch -> testHelper.waitWithLatch { latch ->
sentEventIds.forEach { sentEventId -> sentEventIds.forEach { sentEventId ->
testHelper.retryPeriodicallyWithLatch(latch) { testHelper.retryPeriodicallyWithLatch(latch) {
val timeLineEvent = session.getRoom(e2eRoomID)?.getTimeLineEvent(sentEventId) val timelineEvent = session.getRoom(e2eRoomID)?.getTimelineEvent(sentEventId)
timeLineEvent != null && timelineEvent != null &&
timeLineEvent.isEncrypted() && timelineEvent.isEncrypted() &&
timeLineEvent.root.getClearType() == EventType.MESSAGE timelineEvent.root.getClearType() == EventType.MESSAGE
} }
} }
} }
@ -629,7 +629,7 @@ class E2eeSanityTests : InstrumentedTest {
private fun ensureCannotDecrypt(sentEventIds: List<String>, newBobSession: Session, e2eRoomID: String, expectedError: MXCryptoError.ErrorType?) { private fun ensureCannotDecrypt(sentEventIds: List<String>, newBobSession: Session, e2eRoomID: String, expectedError: MXCryptoError.ErrorType?) {
sentEventIds.forEach { sentEventId -> sentEventIds.forEach { sentEventId ->
val event = newBobSession.getRoom(e2eRoomID)!!.getTimeLineEvent(sentEventId)!!.root val event = newBobSession.getRoom(e2eRoomID)!!.getTimelineEvent(sentEventId)!!.root
testHelper.runBlockingTest { testHelper.runBlockingTest {
try { try {
newBobSession.cryptoService().decryptEvent(event, "") newBobSession.cryptoService().decryptEvent(event, "")

View File

@ -38,7 +38,7 @@ interface TimelineService {
/** /**
* Returns a snapshot of TimelineEvent event with eventId. * Returns a snapshot of TimelineEvent event with eventId.
* At the opposite of getTimeLineEventLive which will be updated when local echo event is synced, it will return null in this case. * At the opposite of getTimelineEventLive which will be updated when local echo event is synced, it will return null in this case.
* @param eventId the eventId to get the TimelineEvent * @param eventId the eventId to get the TimelineEvent
*/ */
fun getTimelineEvent(eventId: String): TimelineEvent? fun getTimelineEvent(eventId: String): TimelineEvent?

View File

@ -16,6 +16,7 @@
package org.matrix.android.sdk.internal.legacy.riot; package org.matrix.android.sdk.internal.legacy.riot;
import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
@ -196,6 +197,7 @@ public class LoginStorage {
/** /**
* Clear the stored values * Clear the stored values
*/ */
@SuppressLint("ApplySharedPref")
public void clear() { public void clear() {
SharedPreferences prefs = mContext.getSharedPreferences(PREFS_LOGIN, Context.MODE_PRIVATE); SharedPreferences prefs = mContext.getSharedPreferences(PREFS_LOGIN, Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit(); SharedPreferences.Editor editor = prefs.edit();

View File

@ -152,14 +152,14 @@ internal class TimelineChunk(private val chunkEntity: ChunkEntity,
val offsetCount = count - loadFromStorage.numberOfEvents val offsetCount = count - loadFromStorage.numberOfEvents
return if (direction == Timeline.Direction.FORWARDS && isLastForward.get()) { return if (offsetCount == 0) {
LoadMoreResult.SUCCESS
} else if (direction == Timeline.Direction.FORWARDS && isLastForward.get()) {
LoadMoreResult.REACHED_END LoadMoreResult.REACHED_END
} else if (direction == Timeline.Direction.BACKWARDS && isLastBackward.get()) { } else if (direction == Timeline.Direction.BACKWARDS && isLastBackward.get()) {
LoadMoreResult.REACHED_END LoadMoreResult.REACHED_END
} else if (timelineSettings.isThreadTimeline() && loadFromStorage.threadReachedEnd) { } else if (timelineSettings.isThreadTimeline() && loadFromStorage.threadReachedEnd) {
LoadMoreResult.REACHED_END LoadMoreResult.REACHED_END
} else if (offsetCount == 0) {
LoadMoreResult.SUCCESS
} else { } else {
delegateLoadMore(fetchOnServerIfNeeded, offsetCount, direction) delegateLoadMore(fetchOnServerIfNeeded, offsetCount, direction)
} }
@ -550,13 +550,18 @@ private fun RealmQuery<TimelineEventEntity>.offsets(
count: Int, count: Int,
startDisplayIndex: Int startDisplayIndex: Int
): RealmQuery<TimelineEventEntity> { ): RealmQuery<TimelineEventEntity> {
sort(TimelineEventEntityFields.DISPLAY_INDEX, Sort.DESCENDING) return if (direction == Timeline.Direction.BACKWARDS) {
if (direction == Timeline.Direction.BACKWARDS) {
lessThanOrEqualTo(TimelineEventEntityFields.DISPLAY_INDEX, startDisplayIndex) lessThanOrEqualTo(TimelineEventEntityFields.DISPLAY_INDEX, startDisplayIndex)
sort(TimelineEventEntityFields.DISPLAY_INDEX, Sort.DESCENDING)
limit(count.toLong())
} else { } else {
greaterThanOrEqualTo(TimelineEventEntityFields.DISPLAY_INDEX, startDisplayIndex) greaterThanOrEqualTo(TimelineEventEntityFields.DISPLAY_INDEX, startDisplayIndex)
// We need to sort ascending first so limit works in the right direction
sort(TimelineEventEntityFields.DISPLAY_INDEX, Sort.ASCENDING)
limit(count.toLong())
// Result is expected to be sorted descending
sort(TimelineEventEntityFields.DISPLAY_INDEX, Sort.DESCENDING)
} }
return limit(count.toLong())
} }
private fun Timeline.Direction.toPaginationDirection(): PaginationDirection { private fun Timeline.Direction.toPaginationDirection(): PaginationDirection {

View File

@ -15,24 +15,14 @@
<issue id="IconExpectedSize" severity="error" /> <issue id="IconExpectedSize" severity="error" />
<issue id="LocaleFolder" severity="error" /> <issue id="LocaleFolder" severity="error" />
<!-- String resource has to be used, for the rest we can ignore for now <issue id="TooManyViews" severity="warning">
TODO: stop ignoring warning at all those locations --> <!-- Ignore TooManyViews in debug build type -->
<ignore path="**/src/debug/**" />
</issue>
<issue id="UnusedResources" severity="error"> <issue id="UnusedResources" severity="error">
<ignore path="**/build.gradle" /> <!-- Ignore unused resource in debug build type -->
<ignore path="**/anim/**" /> <ignore path="**/src/debug/**" />
<ignore path="**/color/**" />
<ignore path="**/drawable*/**" />
<ignore path="**/layout/**" />
<ignore path="**/menu/**" />
<ignore path="**/raw/**" />
<ignore path="**/values/dimens.xml" />
<ignore path="**/values/colors.xml" />
<ignore path="**/values/palette.xml" />
<ignore path="**/values/palette_mobile.xml" />
<ignore path="**/values/donottranslate.xml" />
<ignore path="**/values/strings_login_v2.xml" />
<ignore path="**/library/ui-styles/src/main/res/values/**" />
<ignore path="**/xml/**" />
<!-- Following resources are for F-Droid variant only, so ignore for GPlay --> <!-- Following resources are for F-Droid variant only, so ignore for GPlay -->
<ignore regexp="settings_troubleshoot_test_service_boot_*" /> <ignore regexp="settings_troubleshoot_test_service_boot_*" />

View File

@ -105,6 +105,9 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : AbsBaseMessageItem<H>
} else { } else {
holder.timeView.isVisible = false holder.timeView.isVisible = false
} }
holder.additionalTopSpace.isVisible = attributes.informationData.messageLayout.addTopMargin
// Render send state indicator // Render send state indicator
holder.sendStateImageView.render(attributes.informationData.sendStateDecoration) holder.sendStateImageView.render(attributes.informationData.sendStateDecoration)
holder.eventSendingIndicator.isVisible = attributes.informationData.sendStateDecoration == SendStateDecoration.SENDING_MEDIA holder.eventSendingIndicator.isVisible = attributes.informationData.sendStateDecoration == SendStateDecoration.SENDING_MEDIA
@ -154,6 +157,7 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : AbsBaseMessageItem<H>
abstract class Holder(@IdRes stubId: Int) : AbsBaseMessageItem.Holder(stubId) { abstract class Holder(@IdRes stubId: Int) : AbsBaseMessageItem.Holder(stubId) {
val additionalTopSpace by bind<View>(R.id.additionalTopSpace)
val avatarImageView by bind<ImageView>(R.id.messageAvatarImageView) val avatarImageView by bind<ImageView>(R.id.messageAvatarImageView)
val memberNameView by bind<TextView>(R.id.messageMemberNameView) val memberNameView by bind<TextView>(R.id.messageMemberNameView)
val timeView by bind<TextView>(R.id.messageTimeView) val timeView by bind<TextView>(R.id.messageTimeView)

View File

@ -24,12 +24,14 @@ sealed interface TimelineMessageLayout : Parcelable {
val layoutRes: Int val layoutRes: Int
val showAvatar: Boolean val showAvatar: Boolean
val showDisplayName: Boolean val showDisplayName: Boolean
val addTopMargin: Boolean
val showTimestamp: Boolean val showTimestamp: Boolean
@Parcelize @Parcelize
data class Default(override val showAvatar: Boolean, data class Default(override val showAvatar: Boolean,
override val showDisplayName: Boolean, override val showDisplayName: Boolean,
override val showTimestamp: Boolean, override val showTimestamp: Boolean,
override val addTopMargin: Boolean = false,
// Keep defaultLayout generated on epoxy items // Keep defaultLayout generated on epoxy items
override val layoutRes: Int = 0) : TimelineMessageLayout override val layoutRes: Int = 0) : TimelineMessageLayout
@ -38,6 +40,7 @@ sealed interface TimelineMessageLayout : Parcelable {
override val showAvatar: Boolean, override val showAvatar: Boolean,
override val showDisplayName: Boolean, override val showDisplayName: Boolean,
override val showTimestamp: Boolean = true, override val showTimestamp: Boolean = true,
override val addTopMargin: Boolean = false,
val isIncoming: Boolean, val isIncoming: Boolean,
val isPseudoBubble: Boolean, val isPseudoBubble: Boolean,
val cornersRadius: CornersRadius, val cornersRadius: CornersRadius,

View File

@ -118,6 +118,7 @@ class TimelineMessageLayoutFactory @Inject constructor(private val session: Sess
TimelineMessageLayout.Bubble( TimelineMessageLayout.Bubble(
showAvatar = showInformation && !isSentByMe, showAvatar = showInformation && !isSentByMe,
showDisplayName = showInformation && !isSentByMe, showDisplayName = showInformation && !isSentByMe,
addTopMargin = isFirstFromThisSender && isSentByMe,
isIncoming = !isSentByMe, isIncoming = !isSentByMe,
cornersRadius = cornersRadius, cornersRadius = cornersRadius,
isPseudoBubble = messageContent.isPseudoBubble(), isPseudoBubble = messageContent.isPseudoBubble(),

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<translate
android:duration="200"
android:fromYDelta="20%"
android:toYDelta="0%" />
</set>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<translate
android:duration="200"
android:fromYDelta="000%"
android:toYDelta="000%" />
</set>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<translate
android:duration="200"
android:fromYDelta="0%"
android:toYDelta="20%" />
<alpha
android:duration="200"
android:fromAlpha="1.0"
android:toAlpha="0.0" />
</set>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="@integer/default_animation_duration"
android:fromXDelta="-100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="@integer/default_animation_duration"
android:fromXDelta="100%"
android:fromYDelta="0%"
android:toXDelta="0%"
android:toYDelta="0%" />
</set>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="@integer/default_animation_duration"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="-100%"
android:toYDelta="0%" />
</set>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="@integer/default_animation_duration"
android:fromXDelta="0%"
android:fromYDelta="0%"
android:toXDelta="100%"
android:toYDelta="0%" />
</set>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%p"
android:pivotY="50%"
android:toXScale="0"
android:toYScale="0" />
<alpha
android:fromAlpha="1"
android:toAlpha="0" />
</set>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="?vctr_attachment_selector_border" />
<corners android:radius="16dp" />
</shape>
</item>
<item
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="?vctr_attachment_selector_background" />
<corners android:radius="16dp" />
</shape>
</item>
</layer-list>

View File

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Copyright 2019 New Vector Ltd
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<stroke android:width="1dp" android:color="?colorSecondary" />
</shape>
</item>
</selector>

View File

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<shape>
<solid android:color="?colorSecondary" />
<corners android:radius="4dp" />
</shape>
</item>
<item>
<shape>
<solid android:color="@android:color/transparent" />
</shape>
</item>
</selector>

View File

@ -8,11 +8,12 @@
<solid android:color="@android:color/transparent" /> <solid android:color="@android:color/transparent" />
</shape> </shape>
</item> </item>
<item android:gravity="center_vertical|start" > <item android:gravity="center_vertical|start"
android:left="8dp"
android:right="11dp">
<shape> <shape>
<size android:width="4dp" android:height="40dp" /> <solid android:color="?vctr_content_quinary" />
<solid android:color="?colorSecondary" /> <corners android:radius="8dp"/>
<corners android:bottomRightRadius="8dp" android:topRightRadius="8dp" />
</shape> </shape>
</item> </item>
</layer-list> </layer-list>

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#F7F7F7" />
</shape>
</item>
<item
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape>
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="#E4E4E4" />
</shape>
</item>
</layer-list>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="270"
android:endColor="#00000000"
android:startColor="#8a000000"
android:type="linear" />
</shape>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="24.0" android:viewportWidth="24.0" android:width="24dp">
<path android:fillColor="#FFFFFF" android:pathData="M12,1c-4.97,0 -9,4.03 -9,9v7c0,1.66 1.34,3 3,3h3v-8H5v-2c0,-3.87 3.13,-7 7,-7s7,3.13 7,7v2h-4v8h3c1.66,0 3,-1.34 3,-3v-7c0,-4.97 -4.03,-9 -9,-9z"/>
</vector>

View File

@ -1,14 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="12dp"
android:height="14dp"
android:viewportWidth="12"
android:viewportHeight="14">
<path
android:strokeWidth="1"
android:pathData="M12,10.002L0,10.002a1.8,1.8 0,0 0,1.8 -1.8L1.8,5.2a4.2,4.2 0,1 1,8.4 0v3a1.8,1.8 0,0 0,1.8 1.8zM7.038,12.402a1.2,1.2 0,0 1,-2.076 0h2.076z"
android:strokeLineJoin="round"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#454545"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,21 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M4,19.5C4,18.1193 5.1193,17 6.5,17H20"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
<path
android:pathData="M6.5,2H20V22H6.5C5.1193,22 4,20.8807 4,19.5V4.5C4,3.1193 5.1193,2 6.5,2Z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,14 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M21.9994,16.9738V19.9846C22.0017,20.5498 21.7651,21.0898 21.3478,21.4718C20.9305,21.8539 20.3712,22.0427 19.8072,21.9918C16.7128,21.6563 13.7404,20.601 11.1289,18.9108C8.6992,17.3699 6.6393,15.3141 5.0953,12.8892C3.3959,10.271 2.3382,7.2901 2.0082,4.188C1.9574,3.6268 2.1452,3.0702 2.5258,2.6541C2.9064,2.2379 3.4448,2.0006 4.0093,2.0001H7.0261C8.0356,1.9902 8.896,2.7287 9.0373,3.7263C9.1646,4.6898 9.4007,5.6359 9.7412,6.5464C10.0175,7.2799 9.8407,8.1068 9.2887,8.664L8.0116,9.9386C9.4431,12.4512 11.5276,14.5315 14.0451,15.9602L15.3222,14.6856C15.8805,14.1346 16.7091,13.9583 17.444,14.234C18.3564,14.5738 19.3043,14.8094 20.2697,14.9365C21.2809,15.0789 22.0247,15.955 21.9994,16.9738Z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#2E2F32"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,14 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportWidth="16"
android:viewportHeight="16">
<path
android:pathData="M8,16C12.4183,16 16,12.4183 16,8C16,3.5817 12.4183,0 8,0C3.5817,0 0,3.5817 0,8C0,12.4183 3.5817,16 8,16ZM5.3333,8.3333C6.4379,8.3333 7.3333,7.3633 7.3333,6.1667C7.3333,4.97 6.4379,4 5.3333,4C4.2288,4 3.3333,4.97 3.3333,6.1667C3.3333,7.3633 4.2288,8.3333 5.3333,8.3333ZM11.5043,9.1296C12.472,9.1296 13.2564,8.2798 13.2564,7.2315C13.2564,6.1832 12.472,5.3333 11.5043,5.3333C10.5366,5.3333 9.7522,6.1832 9.7522,7.2315C9.7522,8.2798 10.5366,9.1296 11.5043,9.1296ZM6.1045,9.4089C7.5698,9.7298 8.6666,11.0353 8.6666,12.5969L8.6666,14.7587H4.6666L1.7144,11.6667C2.3548,10.2875 3.7345,9.3333 5.3333,9.3333C5.5971,9.3333 5.855,9.3593 6.1045,9.4089ZM9.5501,10.611C9.8385,11.2121 10,11.8856 10,12.5969L10,14.7587H11.5043L14.4675,11.6667C13.8465,10.6685 12.7515,10.0057 11.5043,10.0057C10.7807,10.0057 10.1084,10.2288 9.5501,10.611Z"
android:fillColor="#737D8C"
android:fillType="evenOdd"/>
<path
android:pathData="M8,14.6667C11.6819,14.6667 14.6667,11.6819 14.6667,8C14.6667,4.3181 11.6819,1.3333 8,1.3333C4.3181,1.3333 1.3333,4.3181 1.3333,8C1.3333,11.6819 4.3181,14.6667 8,14.6667ZM8,16C12.4183,16 16,12.4183 16,8C16,3.5817 12.4183,0 8,0C3.5817,0 0,3.5817 0,8C0,12.4183 3.5817,16 8,16Z"
android:fillColor="#737D8C"
android:fillType="evenOdd"/>
</vector>

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25dp"
android:height="25dp"
android:viewportWidth="25"
android:viewportHeight="25">
<path
android:pathData="M12.5084,8.2565C10.8211,8.1916 7.3514,8.6295 6.5078,8.8513C6.4579,8.8645 6.4004,8.8791 6.3362,8.8955C5.041,9.2261 0.9827,10.2618 0.5442,13.5436C0.2045,16.0862 1.9058,16.8558 2.7562,16.7386C3.3448,16.6648 5.0301,16.3983 6.5872,16.1189C8.1163,15.8446 8.1155,14.8359 8.115,14.1538C8.115,14.1413 8.115,14.1288 8.115,14.1165L8.115,12.7453C8.115,12.3961 8.4431,12.1942 8.8958,12.1396C10.4982,11.922 11.8359,11.9213 12.5055,11.9213L12.5112,11.9213C13.1807,11.9213 14.5018,11.922 16.1042,12.1396C16.5569,12.1942 16.885,12.3961 16.885,12.7453L16.885,14.1165C16.885,14.1289 16.885,14.1413 16.885,14.1538C16.8845,14.8359 16.8837,15.8446 18.4128,16.119C19.9699,16.3983 21.6552,16.6648 22.2438,16.7386C23.0942,16.8558 24.7955,16.0862 24.4558,13.5436C24.0173,10.2618 19.959,9.2261 18.6638,8.8955C18.5996,8.8791 18.5421,8.8645 18.4922,8.8513C17.6487,8.6295 14.1956,8.1916 12.5084,8.2565Z"
android:fillColor="#000000"/>
</vector>

View File

@ -1,11 +0,0 @@
<vector android:autoMirrored="true" android:height="40dp"
android:viewportHeight="40" android:viewportWidth="40"
android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="0.2" android:fillColor="#000000"
android:fillType="evenOdd"
android:pathData="M20,20m-20,0a20,20 0,1 1,40 0a20,20 0,1 1,-40 0"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFFFFF" android:fillType="nonZero"
android:pathData="M26,14.75L23.6225,14.75L22.25,13.25L17.75,13.25L16.3775,14.75L14,14.75C13.175,14.75 12.5,15.425 12.5,16.25L12.5,25.25C12.5,26.075 13.175,26.75 14,26.75L26,26.75C26.825,26.75 27.5,26.075 27.5,25.25L27.5,16.25C27.5,15.425 26.825,14.75 26,14.75ZM20,24.5C17.93,24.5 16.25,22.82 16.25,20.75L14.75,20.75L16.625,18.875L18.5,20.75L17,20.75C17,22.4075 18.3425,23.75 20,23.75C20.435,23.75 20.8475,23.6525 21.215,23.4875L21.77,24.0425C21.2375,24.32 20.645,24.5 20,24.5ZM23.375,22.625L21.5,20.75L23,20.75C23,19.0925 21.6575,17.75 20,17.75C19.565,17.75 19.1525,17.8475 18.785,18.0125L18.23,17.465C18.7625,17.18 19.355,17 20,17C22.07,17 23.75,18.68 23.75,20.75L25.25,20.75L23.375,22.625Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -1,7 +0,0 @@
<vector android:autoMirrored="true" android:height="18dp"
android:viewportHeight="18" android:viewportWidth="18"
android:width="18dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:fillType="nonZero"
android:pathData="M15,3.75L12.6225,3.75L11.25,2.25L6.75,2.25L5.3775,3.75L3,3.75C2.175,3.75 1.5,4.425 1.5,5.25L1.5,14.25C1.5,15.075 2.175,15.75 3,15.75L15,15.75C15.825,15.75 16.5,15.075 16.5,14.25L16.5,5.25C16.5,4.425 15.825,3.75 15,3.75ZM9,13.5C6.93,13.5 5.25,11.82 5.25,9.75L3.75,9.75L5.625,7.875L7.5,9.75L6,9.75C6,11.4075 7.3425,12.75 9,12.75C9.435,12.75 9.8475,12.6525 10.215,12.4875L10.77,13.0425C10.2375,13.32 9.645,13.5 9,13.5ZM12.375,11.625L10.5,9.75L12,9.75C12,8.0925 10.6575,6.75 9,6.75C8.565,6.75 8.1525,6.8475 7.785,7.0125L7.23,6.465C7.7625,6.18 8.355,6 9,6C11.07,6 12.75,7.68 12.75,9.75L14.25,9.75L12.375,11.625Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -1,11 +0,0 @@
<vector android:autoMirrored="true" android:height="40dp"
android:viewportHeight="40" android:viewportWidth="40"
android:width="40dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillAlpha="0.2" android:fillColor="#000000"
android:fillType="evenOdd"
android:pathData="M20,20m-20,0a20,20 0,1 1,40 0a20,20 0,1 1,-40 0"
android:strokeColor="#00000000" android:strokeWidth="1"/>
<path android:fillColor="#FFFFFF" android:fillType="nonZero"
android:pathData="M25.25,19.25L23.975,19.25C23.975,19.805 23.855,20.3225 23.6525,20.7875L24.575,21.71C24.995,20.975 25.25,20.1425 25.25,19.25L25.25,19.25ZM22.235,19.3775C22.235,19.3325 22.25,19.295 22.25,19.25L22.25,14.75C22.25,13.505 21.245,12.5 20,12.5C18.755,12.5 17.75,13.505 17.75,14.75L17.75,14.885L22.235,19.3775ZM14.2025,13.25L13.25,14.2025L17.7575,18.71L17.7575,19.25C17.7575,20.495 18.755,21.5 20,21.5C20.165,21.5 20.33,21.4775 20.4875,21.44L21.7325,22.685C21.2,22.9325 20.6075,23.075 20,23.075C17.93,23.075 16.025,21.5 16.025,19.25L14.75,19.25C14.75,21.8075 16.79,23.9225 19.25,24.29L19.25,26.75L20.75,26.75L20.75,24.29C21.4325,24.1925 22.0775,23.9525 22.655,23.615L25.7975,26.75L26.75,25.7975L14.2025,13.25Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -1,7 +0,0 @@
<vector android:autoMirrored="true" android:height="18dp"
android:viewportHeight="18" android:viewportWidth="18"
android:width="18dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FFFFFF" android:fillType="nonZero"
android:pathData="M14.25,8.25L12.975,8.25C12.975,8.805 12.855,9.3225 12.6525,9.7875L13.575,10.71C13.995,9.975 14.25,9.1425 14.25,8.25L14.25,8.25ZM11.235,8.3775C11.235,8.3325 11.25,8.295 11.25,8.25L11.25,3.75C11.25,2.505 10.245,1.5 9,1.5C7.755,1.5 6.75,2.505 6.75,3.75L6.75,3.885L11.235,8.3775ZM3.2025,2.25L2.25,3.2025L6.7575,7.71L6.7575,8.25C6.7575,9.495 7.755,10.5 9,10.5C9.165,10.5 9.33,10.4775 9.4875,10.44L10.7325,11.685C10.2,11.9325 9.6075,12.075 9,12.075C6.93,12.075 5.025,10.5 5.025,8.25L3.75,8.25C3.75,10.8075 5.79,12.9225 8.25,13.29L8.25,15.75L9.75,15.75L9.75,13.29C10.4325,13.1925 11.0775,12.9525 11.655,12.615L14.7975,15.75L15.75,14.7975L3.2025,2.25Z"
android:strokeColor="#00000000" android:strokeWidth="1"/>
</vector>

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M11,11H19V17H11V11ZM1,19V4.98C1,3.88 1.9,3 3,3H21C22.1,3 23,3.88 23,4.98V19C23,20.1 22.1,21 21,21H3C1.9,21 1,20.1 1,19ZM3,19.02H21V4.97H3V19.02Z"
android:fillColor="#ffffff"/>
</vector>

View File

@ -1,30 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="37dp"
android:height="36dp"
android:viewportWidth="37"
android:viewportHeight="36">
<path
android:pathData="M17.5911,26.2922C15.9951,27.3704 14.0711,28 12,28C9.7488,28 7.6713,27.2561 6,26.0007C3.5711,24.1763 2,21.2716 2,18C2,12.4772 6.4771,8 12,8C17.5228,8 22,12.4772 22,18C22,21.4518 20.2511,24.4951 17.5911,26.2922ZM12,18.5C13.6569,18.5 15,17.0449 15,15.25C15,13.4551 13.6569,12 12,12C10.3431,12 9,13.4551 9,15.25C9,17.0449 10.3431,18.5 12,18.5ZM12,26C14.162,26 16.1236,25.1424 17.5634,23.7488C16.673,21.5506 14.5176,20 12,20C9.4824,20 7.327,21.5506 6.4366,23.7488C7.8763,25.1424 9.838,26 12,26Z"
android:fillColor="#000000"
android:fillType="evenOdd"/>
<group>
<clip-path
android:pathData="M17.5911,26.2922C15.9951,27.3704 14.0711,28 12,28C9.7488,28 7.6713,27.2561 6,26.0007C3.5711,24.1763 2,21.2716 2,18C2,12.4772 6.4771,8 12,8C17.5228,8 22,12.4772 22,18C22,21.4518 20.2511,24.4951 17.5911,26.2922ZM12,18.5C13.6569,18.5 15,17.0449 15,15.25C15,13.4551 13.6569,12 12,12C10.3431,12 9,13.4551 9,15.25C9,17.0449 10.3431,18.5 12,18.5ZM12,26C14.162,26 16.1236,25.1424 17.5634,23.7488C16.673,21.5506 14.5176,20 12,20C9.4824,20 7.327,21.5506 6.4366,23.7488C7.8763,25.1424 9.838,26 12,26Z"
android:fillType="evenOdd"/>
<path
android:pathData="M17.5911,26.2922L16.4715,24.6349L17.5911,26.2922ZM6,26.0007L4.7989,27.5999L4.7989,27.5999L6,26.0007ZM17.5634,23.7488L18.9544,25.1859L19.9234,24.2479L19.4171,22.998L17.5634,23.7488ZM6.4366,23.7488L4.5829,22.998L4.0766,24.2479L5.0456,25.1859L6.4366,23.7488ZM12,30C14.4825,30 16.7945,29.244 18.7107,27.9494L16.4715,24.6349C15.1957,25.4968 13.6596,26 12,26V30ZM4.7989,27.5999C6.8046,29.1065 9.3008,30 12,30V26C10.1967,26 8.538,25.4058 7.2011,24.4016L4.7989,27.5999ZM0,18C0,21.9273 1.8887,25.414 4.7989,27.5999L7.2011,24.4016C5.2535,22.9387 4,20.616 4,18H0ZM12,6C5.3726,6 0,11.3726 0,18H4C4,13.5817 7.5817,10 12,10V6ZM24,18C24,11.3726 18.6274,6 12,6V10C16.4183,10 20,13.5817 20,18H24ZM18.7107,27.9494C21.8977,25.7963 24,22.144 24,18H20C20,20.7596 18.6045,23.1939 16.4715,24.6349L18.7107,27.9494ZM13,15.25C13,16.0941 12.4046,16.5 12,16.5V20.5C14.9091,20.5 17,17.9958 17,15.25H13ZM12,14C12.4046,14 13,14.4059 13,15.25H17C17,12.5042 14.9091,10 12,10V14ZM11,15.25C11,14.4059 11.5954,14 12,14V10C9.0909,10 7,12.5042 7,15.25H11ZM12,16.5C11.5954,16.5 11,16.0941 11,15.25H7C7,17.9958 9.0909,20.5 12,20.5V16.5ZM16.1724,22.3118C15.0906,23.3588 13.6223,24 12,24V28C14.7017,28 17.1567,26.926 18.9544,25.1859L16.1724,22.3118ZM12,22C13.6752,22 15.1146,23.0305 15.7097,24.4996L19.4171,22.998C18.2314,20.0707 15.3599,18 12,18V22ZM8.2903,24.4996C8.8854,23.0305 10.3248,22 12,22V18C8.6401,18 5.7686,20.0707 4.5829,22.998L8.2903,24.4996ZM12,24C10.3777,24 8.9094,23.3588 7.8276,22.3118L5.0456,25.1859C6.8433,26.926 9.2983,28 12,28V24Z"
android:fillColor="#000000"/>
</group>
<path
android:pathData="M27,18H35"
android:strokeWidth="2.5"
android:fillColor="#00000000"
android:strokeColor="#000000"
android:strokeLineCap="round"/>
<path
android:pathData="M31,14L31,22"
android:strokeWidth="2.5"
android:fillColor="#00000000"
android:strokeColor="#000000"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,30 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="37dp"
android:height="36dp"
android:viewportWidth="37"
android:viewportHeight="36">
<path
android:pathData="M17.5911,26.2922C15.9951,27.3704 14.0711,28 12,28C9.7488,28 7.6713,27.2561 6,26.0007C3.5711,24.1763 2,21.2716 2,18C2,12.4772 6.4771,8 12,8C17.5228,8 22,12.4772 22,18C22,21.4518 20.2511,24.4951 17.5911,26.2922ZM12,18.5C13.6569,18.5 15,17.0449 15,15.25C15,13.4551 13.6569,12 12,12C10.3431,12 9,13.4551 9,15.25C9,17.0449 10.3431,18.5 12,18.5ZM12,26C14.162,26 16.1236,25.1424 17.5634,23.7488C16.673,21.5506 14.5176,20 12,20C9.4824,20 7.327,21.5506 6.4366,23.7488C7.8763,25.1424 9.838,26 12,26Z"
android:fillColor="#000000"
android:fillType="evenOdd"/>
<group>
<clip-path
android:pathData="M17.5911,26.2922C15.9951,27.3704 14.0711,28 12,28C9.7488,28 7.6713,27.2561 6,26.0007C3.5711,24.1763 2,21.2716 2,18C2,12.4772 6.4771,8 12,8C17.5228,8 22,12.4772 22,18C22,21.4518 20.2511,24.4951 17.5911,26.2922ZM12,18.5C13.6569,18.5 15,17.0449 15,15.25C15,13.4551 13.6569,12 12,12C10.3431,12 9,13.4551 9,15.25C9,17.0449 10.3431,18.5 12,18.5ZM12,26C14.162,26 16.1236,25.1424 17.5634,23.7488C16.673,21.5506 14.5176,20 12,20C9.4824,20 7.327,21.5506 6.4366,23.7488C7.8763,25.1424 9.838,26 12,26Z"
android:fillType="evenOdd"/>
<path
android:pathData="M17.5911,26.2922L16.4715,24.6349L17.5911,26.2922ZM6,26.0007L4.7989,27.5999L4.7989,27.5999L6,26.0007ZM17.5634,23.7488L18.9544,25.1859L19.9234,24.2479L19.4171,22.998L17.5634,23.7488ZM6.4366,23.7488L4.5829,22.998L4.0766,24.2479L5.0456,25.1859L6.4366,23.7488ZM12,30C14.4825,30 16.7945,29.244 18.7107,27.9494L16.4715,24.6349C15.1957,25.4968 13.6596,26 12,26V30ZM4.7989,27.5999C6.8046,29.1065 9.3008,30 12,30V26C10.1967,26 8.538,25.4058 7.2011,24.4016L4.7989,27.5999ZM0,18C0,21.9273 1.8887,25.414 4.7989,27.5999L7.2011,24.4016C5.2535,22.9387 4,20.616 4,18H0ZM12,6C5.3726,6 0,11.3726 0,18H4C4,13.5817 7.5817,10 12,10V6ZM24,18C24,11.3726 18.6274,6 12,6V10C16.4183,10 20,13.5817 20,18H24ZM18.7107,27.9494C21.8977,25.7963 24,22.144 24,18H20C20,20.7596 18.6045,23.1939 16.4715,24.6349L18.7107,27.9494ZM13,15.25C13,16.0941 12.4046,16.5 12,16.5V20.5C14.9091,20.5 17,17.9958 17,15.25H13ZM12,14C12.4046,14 13,14.4059 13,15.25H17C17,12.5042 14.9091,10 12,10V14ZM11,15.25C11,14.4059 11.5954,14 12,14V10C9.0909,10 7,12.5042 7,15.25H11ZM12,16.5C11.5954,16.5 11,16.0941 11,15.25H7C7,17.9958 9.0909,20.5 12,20.5V16.5ZM16.1724,22.3118C15.0906,23.3588 13.6223,24 12,24V28C14.7017,28 17.1567,26.926 18.9544,25.1859L16.1724,22.3118ZM12,22C13.6752,22 15.1146,23.0305 15.7097,24.4996L19.4171,22.998C18.2314,20.0707 15.3599,18 12,18V22ZM8.2903,24.4996C8.8854,23.0305 10.3248,22 12,22V18C8.6401,18 5.7686,20.0707 4.5829,22.998L8.2903,24.4996ZM12,24C10.3777,24 8.9094,23.3588 7.8276,22.3118L5.0456,25.1859C6.8433,26.926 9.2983,28 12,28V24Z"
android:fillColor="#000000"/>
</group>
<path
android:pathData="M27,18H35"
android:strokeWidth="2.5"
android:fillColor="#00000000"
android:strokeColor="#000000"
android:strokeLineCap="round"/>
<path
android:pathData="M31,14L31,22"
android:strokeWidth="2.5"
android:fillColor="#00000000"
android:strokeColor="#000000"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,22 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="10dp"
android:height="14dp"
android:viewportWidth="10"
android:viewportHeight="14">
<path
android:strokeWidth="1"
android:pathData="M1,4.818a4,3.818 0,1 0,8 0a4,3.818 0,1 0,-8 0z"
android:strokeLineJoin="round"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#454545"
android:strokeLineCap="round"/>
<path
android:strokeWidth="1"
android:pathData="M2.834,8.03L2.143,13 5,11.364 7.857,13l-0.691,-4.975"
android:strokeLineJoin="round"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#454545"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="18dp"
android:height="22dp"
android:viewportWidth="18"
android:viewportHeight="22">
<path
android:pathData="M0,18.9226V8.7056C0,8.1252 0.2521,7.5734 0.6909,7.1935L7.6909,1.1333C8.4424,0.4827 9.5576,0.4827 10.3091,1.1333L17.3091,7.1935C17.7479,7.5734 18,8.1241 18,8.7045V18.9645C18,20.6363 16.6355,21.9833 14.9638,21.9686C11.8814,21.9416 7.015,21.9124 3.0756,21.95C1.3889,21.9661 0,20.6094 0,18.9226Z"
android:fillColor="#000000"/>
</vector>

View File

@ -1,22 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="13dp"
android:height="14dp"
android:viewportWidth="13"
android:viewportHeight="14">
<path
android:strokeWidth="1"
android:pathData="M2.2,6.4L10.8,6.4A1.2,1.2 0,0 1,12 7.6L12,11.8A1.2,1.2 0,0 1,10.8 13L2.2,13A1.2,1.2 0,0 1,1 11.8L1,7.6A1.2,1.2 0,0 1,2.2 6.4z"
android:strokeLineJoin="round"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#454545"
android:strokeLineCap="round"/>
<path
android:strokeWidth="1"
android:pathData="M3.444,6.4L3.444,4c0,-1.657 1.368,-3 3.056,-3s3.056,1.343 3.056,3v2.4"
android:strokeLineJoin="round"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#454545"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#FF000000"
android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
</vector>

View File

@ -1,30 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="22dp"
android:height="5dp"
android:viewportWidth="22"
android:viewportHeight="5">
<path
android:pathData="M9.333,2.5a1.429,1.5 0,1 0,2.858 0a1.429,1.5 0,1 0,-2.858 0z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#9E9E9E"
android:fillType="evenOdd"
android:strokeColor="#9E9E9E"
android:strokeLineCap="round"/>
<path
android:pathData="M17.666,2.5a1.429,1.5 0,1 0,2.858 0a1.429,1.5 0,1 0,-2.858 0z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#9E9E9E"
android:fillType="evenOdd"
android:strokeColor="#9E9E9E"
android:strokeLineCap="round"/>
<path
android:pathData="M1,2.5a1.429,1.5 0,1 0,2.858 0a1.429,1.5 0,1 0,-2.858 0z"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#9E9E9E"
android:fillType="evenOdd"
android:strokeColor="#9E9E9E"
android:strokeLineCap="round"/>
</vector>

View File

@ -1,30 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M3.5,0.5L20.5,0.5A3,3 0,0 1,23.5 3.5L23.5,20.5A3,3 0,0 1,20.5 23.5L3.5,23.5A3,3 0,0 1,0.5 20.5L0.5,3.5A3,3 0,0 1,3.5 0.5z"
android:strokeWidth="1"
android:fillColor="#00000000"
android:strokeColor="#000000"
android:fillType="evenOdd"/>
<path
android:pathData="M5.5,12L6.5,12A1.5,1.5 0,0 1,8 13.5L8,19.5A1.5,1.5 0,0 1,6.5 21L5.5,21A1.5,1.5 0,0 1,4 19.5L4,13.5A1.5,1.5 0,0 1,5.5 12z"
android:strokeWidth="1"
android:fillColor="#000000"
android:fillType="evenOdd"
android:strokeColor="#00000000"/>
<path
android:pathData="M11.5,9L12.5,9A1.5,1.5 0,0 1,14 10.5L14,19.5A1.5,1.5 0,0 1,12.5 21L11.5,21A1.5,1.5 0,0 1,10 19.5L10,10.5A1.5,1.5 0,0 1,11.5 9z"
android:strokeWidth="1"
android:fillColor="#000000"
android:fillType="evenOdd"
android:strokeColor="#00000000"/>
<path
android:pathData="M17.5,6L18.5,6A1.5,1.5 0,0 1,20 7.5L20,19.5A1.5,1.5 0,0 1,18.5 21L17.5,21A1.5,1.5 0,0 1,16 19.5L16,7.5A1.5,1.5 0,0 1,17.5 6z"
android:strokeWidth="1"
android:fillColor="#000000"
android:fillType="evenOdd"
android:strokeColor="#00000000"/>
</vector>

View File

@ -1,12 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<!-- Note: I adapted this vector manually since clip-path is API24+ -->
<path
android:fillColor="?vctr_disabled_view_color"
android:pathData="M10,5M10,0C4.5,0 0,4.5 0,10C0,15.5 4.5,20 10,20C15.5,20 20,15.5 20,10C20,4.5 15.5,0 10,0ZM10,18C5.6,18 2,14.4 2,10C2,5.6 5.6,2 10,2C14.4,2 18,5.6 18,10C18,14.4 14.4,18 10,18Z" />
</vector>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<size
android:width="8dp"
android:height="8dp" />
<solid android:color="?colorError" />
</shape>

View File

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="1dp" />
<solid android:color="#7D7D7D" />
</shape>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#28000000" />
<corners
android:bottomLeftRadius="23dp"
android:bottomRightRadius="23dp"
android:topLeftRadius="23dp"
android:topRightRadius="23dp" />
</shape>

View File

@ -1,46 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/incomingShareToolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:contentInsetStart="0dp">
<androidx.appcompat.widget.SearchView
android:id="@+id/incomingShareSearchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:queryHint="@string/room_filtering_filter_hint"
app:searchIcon="@drawable/ic_filter" />
</com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.AppBarLayout>
<androidx.fragment.app.FragmentContainerView
android:id="@+id/shareRoomListFragmentContainer"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appBarLayout" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?colorSurface"
android:orientation="vertical">
<im.vector.app.core.ui.views.BottomSheetActionButton
android:id="@+id/dialerChoiceDialPad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:actionTitle="@string/call_dial_pad_title"
app:leftIcon="@drawable/ic_call_dial_pad"
app:tint="?vctr_content_primary"
app:titleTextColor="?vctr_content_primary" />
<im.vector.app.core.ui.views.BottomSheetActionButton
android:id="@+id/dialerChoiceVoiceCall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:actionTitle="@string/action_voice_call"
app:leftIcon="@drawable/ic_call_answer"
app:tint="?vctr_content_primary"
app:titleTextColor="?vctr_content_primary" />
</LinearLayout>

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?colorSurface"
android:orientation="vertical">
<im.vector.app.core.ui.views.BottomSheetActionButton
android:id="@+id/callControlsSwitchCamera"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:actionTitle="@string/call_switch_camera"
app:leftIcon="@drawable/ic_video_flip"
app:tint="?vctr_content_primary"
app:titleTextColor="?vctr_content_primary"
tools:actionDescription="Front" />
<im.vector.app.core.ui.views.BottomSheetActionButton
android:id="@+id/callControlsOpenDialPad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:actionTitle="@string/call_dial_pad_title"
app:leftIcon="@drawable/ic_call_dial_pad"
app:tint="?vctr_content_primary"
app:titleTextColor="?vctr_content_primary"
tools:actionDescription="" />
<im.vector.app.core.ui.views.BottomSheetActionButton
android:id="@+id/callControlsToggleSDHD"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:actionTitle="@string/call_format_turn_hd_on"
app:leftIcon="@drawable/ic_hd"
app:tint="?vctr_content_primary"
app:titleTextColor="?vctr_content_primary"
tools:actionDescription="Front" />
<im.vector.app.core.ui.views.BottomSheetActionButton
android:id="@+id/callControlsToggleHoldResume"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:actionTitle="Hold/resume"
app:leftIcon="@drawable/ic_call_hold_action"
app:tint="?vctr_content_primary"
app:titleTextColor="?vctr_content_primary"
tools:actionDescription="" />
<im.vector.app.core.ui.views.BottomSheetActionButton
android:id="@+id/callControlsTransfer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:actionTitle="@string/call_transfer_title"
app:leftIcon="@drawable/ic_call_transfer"
app:tint="?vctr_content_primary"
app:titleTextColor="?vctr_content_primary"
tools:actionDescription="" />
</LinearLayout>

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<TextView
android:id="@+id/bootstrapDescriptionText"
style="@style/Widget.Vector.TextView.Body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:textColor="?vctr_content_primary"
app:layout_constraintBottom_toTopOf="@id/bootstrapAccountPasswordTil"
app:layout_constraintTop_toTopOf="parent"
tools:text="@string/enter_account_password" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/bootstrapAccountPasswordTil"
style="@style/Widget.Vector.TextInputLayout.Password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:errorEnabled="true"
app:layout_constraintBottom_toTopOf="@id/bootstrapPasswordButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/bootstrapDescriptionText">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/bootstrapAccountPasswordEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:maxLines="3"
android:singleLine="false"
tools:hint="@string/passphrase_enter_passphrase" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/bootstrapPasswordButton"
style="@style/Widget.Vector.Button.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/layout_vertical_margin"
android:text="@string/_continue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/bootstrapAccountPasswordTil" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,226 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:colorBackground"
android:paddingStart="36dp"
android:paddingTop="@dimen/layout_vertical_margin"
android:paddingEnd="36dp"
android:paddingBottom="@dimen/layout_vertical_margin">
<!-- Strategy: 5 Spaces are used to spread the remaining space, using weight -->
<Space
android:id="@+id/loginSplashSpace1"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/loginSplashLogoContainer"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="spread_inside"
app:layout_constraintVertical_weight="4" />
<LinearLayout
android:id="@+id/loginSplashLogoContainer"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@id/loginSplashSpace2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/loginSplashSpace1">
<ImageView
android:id="@+id/loginSplashLogo"
android:layout_width="64dp"
android:layout_height="64dp"
android:importantForAccessibility="no"
android:src="@drawable/element_logo_green"
android:transitionName="loginLogoTransition" />
<ImageView
android:id="@+id/logoType"
android:layout_width="wrap_content"
android:layout_height="44dp"
android:layout_marginTop="8dp"
android:contentDescription="@string/app_name"
android:src="@drawable/element_logotype"
app:tint="?colorSecondary"
tools:ignore="MissingPrefix" />
</LinearLayout>
<Space
android:id="@+id/loginSplashSpace2"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/loginSplashTitle"
app:layout_constraintTop_toBottomOf="@id/loginSplashLogoContainer"
app:layout_constraintVertical_weight="1" />
<TextView
android:id="@+id/loginSplashTitle"
style="@style/Widget.Vector.TextView.Title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/login_splash_title"
android:textColor="?vctr_content_primary"
android:transitionName="loginTitleTransition"
app:layout_constraintBottom_toTopOf="@id/loginSplashSpace3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/loginSplashSpace2" />
<Space
android:id="@+id/loginSplashSpace3"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/loginSplashContent"
app:layout_constraintTop_toBottomOf="@id/loginSplashTitle"
app:layout_constraintVertical_weight="2" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/loginSplashContent"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/loginSplashSpace4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/loginSplashSpace3">
<ImageView
android:id="@+id/loginSplashPicto1"
android:layout_width="32dp"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:importantForAccessibility="no"
android:src="@drawable/ic_login_splash_message_circle"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/loginSplashText1"
app:tint="?vctr_content_secondary"
tools:ignore="MissingPrefix" />
<TextView
android:id="@+id/loginSplashText1"
style="@style/Widget.Vector.TextView.Body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:gravity="start"
android:text="@string/login_splash_text1"
android:textColor="?vctr_content_secondary"
app:layout_constraintBottom_toTopOf="@id/loginSplashText2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/loginSplashPicto1"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/loginSplashPicto2"
android:layout_width="32dp"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:src="@drawable/ic_login_splash_lock"
app:layout_constraintStart_toStartOf="@id/loginSplashPicto1"
app:layout_constraintTop_toTopOf="@id/loginSplashText2"
app:tint="?vctr_content_secondary"
tools:ignore="MissingPrefix" />
<TextView
android:id="@+id/loginSplashText2"
style="@style/Widget.Vector.TextView.Body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="start"
android:text="@string/login_splash_text2"
android:textColor="?vctr_content_secondary"
app:layout_constraintBottom_toTopOf="@id/loginSplashText3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/loginSplashText1"
app:layout_constraintTop_toBottomOf="@id/loginSplashText1" />
<ImageView
android:id="@+id/loginSplashPicto3"
android:layout_width="32dp"
android:layout_height="wrap_content"
android:importantForAccessibility="no"
android:src="@drawable/ic_login_splash_sliders"
app:layout_constraintStart_toStartOf="@id/loginSplashPicto1"
app:layout_constraintTop_toTopOf="@id/loginSplashText3"
app:tint="?vctr_content_secondary"
tools:ignore="MissingPrefix" />
<TextView
android:id="@+id/loginSplashText3"
style="@style/Widget.Vector.TextView.Body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:gravity="start"
android:text="@string/login_splash_text3"
android:textColor="?vctr_content_secondary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/loginSplashText1"
app:layout_constraintTop_toBottomOf="@id/loginSplashText2" />
</androidx.constraintlayout.widget.ConstraintLayout>
<Space
android:id="@+id/loginSplashSpace4"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/loginSplashSubmit"
app:layout_constraintTop_toBottomOf="@id/loginSplashContent"
app:layout_constraintVertical_weight="2" />
<Button
android:id="@+id/loginSplashSubmit"
style="@style/Widget.Vector.Button.Login"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/login_splash_submit"
android:textAllCaps="true"
android:transitionName="loginSubmitTransition"
app:layout_constraintBottom_toTopOf="@id/loginSplashSpace5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/loginSplashSpace4" />
<TextView
android:id="@+id/loginSplashAlreadyHaveAccount"
style="@style/Widget.Vector.Button.Text.Login"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/login_splash_already_have_account"
android:textAllCaps="true"
android:transitionName="loginSubmitTransition"
app:layout_constraintBottom_toTopOf="@id/loginSplashSpace5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/loginSplashSubmit" />
<Space
android:id="@+id/loginSplashSpace5"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/loginSplashSubmit"
app:layout_constraintVertical_weight="4" />
<TextView
android:id="@+id/loginSplashVersion"
style="@style/Widget.Vector.TextView.Caption"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?vctr_content_secondary"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="@string/settings_version"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -1,73 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:colorBackground"
android:foreground="?attr/selectableItemBackground"
android:gravity="center_vertical"
android:padding="8dp"
tools:viewBindingIgnore="true">
<FrameLayout
android:id="@+id/createDirectRoomUserAvatarContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/createDirectRoomUserAvatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:importantForAccessibility="no"
tools:src="@sample/user_round_avatars" />
<ImageView
android:id="@+id/createDirectRoomUserAvatarChecked"
android:layout_width="40dp"
android:layout_height="40dp"
android:contentDescription="@string/a11y_checked"
android:scaleType="centerInside"
android:src="@drawable/ic_material_done"
android:visibility="visible"
app:tint="@android:color/white"
tools:ignore="MissingPrefix" />
</FrameLayout>
<TextView
android:id="@+id/createDirectRoomUserName"
style="@style/Widget.Vector.TextView.Subtitle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?vctr_content_primary"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/createDirectRoomUserID"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@id/createDirectRoomUserAvatarContainer"
app:layout_constraintTop_toTopOf="parent"
tools:text="@sample/users.json/data/displayName" />
<TextView
android:id="@+id/createDirectRoomUserID"
style="@style/Widget.Vector.TextView.Body"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:textColor="?vctr_content_secondary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@id/createDirectRoomUserName"
app:layout_constraintTop_toBottomOf="@id/createDirectRoomUserName"
tools:text="@sample/users.json/data/id" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -113,7 +113,7 @@
android:id="@+id/groupTmpLeave" android:id="@+id/groupTmpLeave"
android:layout_width="30dp" android:layout_width="30dp"
android:layout_height="30dp" android:layout_height="30dp"
android:layout_marginEnd="4dp" android:layout_marginEnd="10dp"
android:background="?selectableItemBackground" android:background="?selectableItemBackground"
android:clickable="true" android:clickable="true"
android:importantForAccessibility="no" android:importantForAccessibility="no"

View File

@ -1,29 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:viewBindingIgnore="true">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/codeBlockTextView"
style="@style/Widget.Vector.TextView.Body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="monospace" />
</HorizontalScrollView>
<TextView
android:id="@+id/codeBlockEditedView"
style="@style/Widget.Vector.TextView.Body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp" />
</LinearLayout>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pollItemContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/Widget.Vector.Button.Unelevated.Bot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Create Github issue" />

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:viewBindingIgnore="true">
<im.vector.app.features.home.room.list.UnreadCounterBadgeView
android:id="@+id/actionUnreadCounterBadgeView"
style="@style/Widget.Vector.TextView.Micro"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:gravity="center"
android:minWidth="8dp"
android:minHeight="8dp"
android:paddingStart="4dp"
android:paddingEnd="4dp"
android:textColor="?colorOnError"
tools:background="@drawable/bg_unread_highlight"
tools:text="4" />
</FrameLayout>

View File

@ -40,7 +40,8 @@
android:layout_height="@dimen/layout_touch_size" android:layout_height="@dimen/layout_touch_size"
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground"
android:contentDescription="@string/attachment_type_gallery" android:contentDescription="@string/attachment_type_gallery"
android:src="@drawable/ic_attachment_gallery" /> android:src="@drawable/ic_attachment_gallery"
app:tint="?colorPrimary" />
<ImageButton <ImageButton
android:id="@+id/attachmentStickersButton" android:id="@+id/attachmentStickersButton"

View File

@ -26,12 +26,18 @@
android:padding="2dp" android:padding="2dp"
tools:src="@sample/user_round_avatars" /> tools:src="@sample/user_round_avatars" />
<View
android:id="@+id/additionalTopSpace"
android:layout_height="12dp"
android:layout_width="0dp"
android:layout_toEndOf="@id/messageStartGuideline" />
<TextView <TextView
android:id="@+id/messageMemberNameView" android:id="@+id/messageMemberNameView"
style="@style/Widget.Vector.TextView.Subtitle" style="@style/Widget.Vector.TextView.Subtitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentTop="true" android:layout_below="@id/additionalTopSpace"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginEnd="4dp" android:layout_marginEnd="4dp"

View File

@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:parentTag="android.widget.LinearLayout">
<TextView
android:id="@+id/receiptMore"
style="@style/Widget.Vector.TextView.Caption"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginEnd="8dp"
android:gravity="center"
android:textColor="?vctr_content_primary"
tools:text="999+" />
<ImageView
android:id="@+id/receiptAvatar5"
android:layout_width="16dp"
android:layout_height="16dp"
android:adjustViewBounds="true"
android:importantForAccessibility="no"
android:scaleType="centerCrop"
tools:src="@sample/user_round_avatars" />
<ImageView
android:id="@+id/receiptAvatar4"
android:layout_width="16dp"
android:layout_height="16dp"
android:adjustViewBounds="true"
android:importantForAccessibility="no"
android:scaleType="centerCrop"
tools:src="@sample/user_round_avatars" />
<ImageView
android:id="@+id/receiptAvatar3"
android:layout_width="16dp"
android:layout_height="16dp"
android:adjustViewBounds="true"
android:importantForAccessibility="no"
android:scaleType="centerCrop"
tools:src="@sample/user_round_avatars" />
<ImageView
android:id="@+id/receiptAvatar2"
android:layout_width="16dp"
android:layout_height="16dp"
android:adjustViewBounds="true"
android:importantForAccessibility="no"
android:scaleType="centerCrop"
tools:src="@sample/user_round_avatars" />
<ImageView
android:id="@+id/receiptAvatar1"
android:layout_width="16dp"
android:layout_height="16dp"
android:adjustViewBounds="true"
android:importantForAccessibility="no"
android:scaleType="centerCrop"
tools:src="@sample/user_round_avatars" />
</merge>

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="16dp"/>

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_submit"
android:icon="@drawable/ic_material_done"
android:title="@string/ok"
app:iconTint="?colorPrimary"
app:showAsAction="always" />
</menu>

View File

@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/mediaViewerShareAction"
android:icon="@drawable/ic_material_share"
android:title="@string/action_share"
app:iconTint="?colorSecondary"
app:showAsAction="ifRoom" />
</menu>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,15 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="debug_screen" translatable="false">Debug screen</string>
<string name="ellipsis" translatable="false"></string> <string name="ellipsis" translatable="false"></string>
<string name="plus_sign" translatable="false">+</string>
<string name="semicolon_sign" translatable="false">:</string>
<string name="password_hint" translatable="false">********</string>
<string name="matrix_room_alias_prefix" translatable="false">#</string>
<!-- Temporary string --> <!-- Temporary string -->
<string name="not_implemented" translatable="false">Not implemented yet in ${app_name}</string> <string name="not_implemented" translatable="false">Not implemented yet in ${app_name}</string>

View File

@ -19,7 +19,6 @@
<string name="login_enter_your_email">Enter an email associated to your Matrix account</string> <string name="login_enter_your_email">Enter an email associated to your Matrix account</string>
<string name="login_choose_a_new_password">Choose a new password</string> <string name="login_choose_a_new_password">Choose a new password</string>
<string name="login_please_choose_a_user_name">Please choose an identifier</string> <string name="login_please_choose_a_user_name">Please choose an identifier</string>
<string name="login_please_choose_a_user_name_help">Your identifier will be used to connect to your Matrix account</string>
<string name="login_please_choose_a_user_name_help_2">Once your account is created, your identifier cannot be modified. However you will be able to change your display name.</string> <string name="login_please_choose_a_user_name_help_2">Once your account is created, your identifier cannot be modified. However you will be able to change your display name.</string>
<string name="login_if_you_re_not_sure_select_this_option">If you\'re not sure, select this option</string> <string name="login_if_you_re_not_sure_select_this_option">If you\'re not sure, select this option</string>
<string name="login_element_matrix_server_and_others">Element Matrix Server and others</string> <string name="login_element_matrix_server_and_others">Element Matrix Server and others</string>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<paths>
<cache-path
name="shared"
path="/" />
</paths>

View File

@ -1,6 +0,0 @@
<chip
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:chipBackgroundColor="@color/keyword_background_selector"
app:closeIconTint="@color/keyword_foreground_selector"
/>