Merge commit 'e3bf4c1e7bce8c752b4fef54be9a76893561a24a' into sc
Merge v1.0.5 pt. 5 Conflicts: README.md vector/src/main/java/im/vector/app/features/login/LoginFragment.kt vector/src/main/java/im/vector/app/features/themes/ThemeUtils.kt
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve Element
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. Samsung S6]
|
||||
- OS: [e.g. Android 6.0]
|
||||
|
||||
**Additional context**
|
||||
- App version and store [e.g. 1.0.0 - F-Droid]
|
||||
- Homeserver: [e.g. matrix.org]
|
||||
|
||||
Add any other context about the problem here.
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: type:suggestion
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
@ -5,13 +5,15 @@ Features ✨:
|
||||
- Protect access to the app by a pin code (#1700)
|
||||
|
||||
Improvements 🙌:
|
||||
-
|
||||
- Give user the possibility to prevent accidental call (#1869)
|
||||
|
||||
Bugfix 🐛:
|
||||
- Fix invisible toolbar (Status.im theme) (#1746)
|
||||
- Fix relative date time formatting (#822)
|
||||
- Fix crash reported by RageShake
|
||||
|
||||
Translations 🗣:
|
||||
-
|
||||
- Add PlayStore description resources in the Triple-T format, to let Weblate handle them
|
||||
|
||||
SDK API changes ⚠️:
|
||||
-
|
||||
@ -20,6 +22,7 @@ Build 🧱:
|
||||
-
|
||||
|
||||
Other changes:
|
||||
- Use `Context#getSystemService` extension function provided by `core-ktx` (#1702)
|
||||
- Hide Flair settings, this is not implemented yet.
|
||||
- Rename package `im.vector.riotx.attachmentviewer` to `im.vector.lib.attachmentviewer`
|
||||
- Rename package `im.vector.riotx.multipicker` to `im.vector.lib.multipicker`
|
||||
|
@ -40,7 +40,7 @@ For now, the Matrix SDK and the Element application are in the same project. So
|
||||
## I want to help translating Element
|
||||
|
||||
If you want to fix an issue with an English string, please submit a PR.
|
||||
If you want to fix an issue in other languages, or add a missing translation, or even add a new language, please use [Weblate](https://translate.riot.im/projects/riot-android/).
|
||||
If you want to fix an issue in other languages, or add a missing translation, or even add a new language, please use [Weblate](https://translate.riot.im/projects/element-android/).
|
||||
|
||||
## I want to submit a PR to fix an issue
|
||||
|
||||
|
@ -22,6 +22,7 @@ import android.content.IntentFilter
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.Network
|
||||
import android.os.Build
|
||||
import androidx.core.content.getSystemService
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
@ -53,7 +54,7 @@ internal class FallbackNetworkCallbackStrategy @Inject constructor(private val c
|
||||
internal class PreferredNetworkCallbackStrategy @Inject constructor(context: Context) : NetworkCallbackStrategy {
|
||||
|
||||
private var hasChangedCallback: (() -> Unit)? = null
|
||||
private val conn = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
private val conn = context.getSystemService<ConnectivityManager>()!!
|
||||
private val networkCallback = object : ConnectivityManager.NetworkCallback() {
|
||||
|
||||
override fun onLost(network: Network) {
|
||||
|
@ -24,6 +24,7 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.NetworkInfo
|
||||
import androidx.core.content.getSystemService
|
||||
import javax.inject.Inject
|
||||
|
||||
internal class NetworkInfoReceiver @Inject constructor() : BroadcastReceiver() {
|
||||
@ -31,7 +32,7 @@ internal class NetworkInfoReceiver @Inject constructor() : BroadcastReceiver() {
|
||||
var isConnectedCallback: ((Boolean) -> Unit)? = null
|
||||
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
val conn = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
val conn = context.getSystemService<ConnectivityManager>()!!
|
||||
val networkInfo: NetworkInfo? = conn.activeNetworkInfo
|
||||
isConnectedCallback?.invoke(networkInfo?.isConnected ?: false)
|
||||
}
|
||||
|
@ -21,4 +21,275 @@
|
||||
<string name="notice_room_name_changed">%1$s রুম এর নাম এতে পরিবর্তন করেছে: %2$s</string>
|
||||
<string name="notice_placed_video_call">%s একটি ভিডিও কল স্থাপন করেছিল।</string>
|
||||
<string name="notice_placed_voice_call">%s একটি ভয়েস কল দিয়েছে।</string>
|
||||
<string name="summary_message">%1$s: %2$s</string>
|
||||
<string name="summary_you_sent_image">আপনি একটি ছবি প্রেরণ করেছেন।</string>
|
||||
<string name="summary_you_sent_sticker">আপনি একটি স্তিকার পাঠিয়েছেন।</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_by_you">আপনার আমন্ত্রণ</string>
|
||||
<string name="notice_room_created">%1$s কক্ষটি তৈরি করেছেন</string>
|
||||
<string name="notice_room_created_by_you">আপনি কক্ষটি তৈরি করেছেন</string>
|
||||
<string name="notice_room_invite_by_you">আপনি %1$s কে আমন্ত্রিত করেছেন</string>
|
||||
<string name="notice_room_join_by_you">আপনি কক্ষে যোগ দিয়েছেন</string>
|
||||
<string name="notice_room_leave_by_you">আপনি কক্ষ ছেড়ে দিয়েছেন</string>
|
||||
<string name="notice_room_reject_by_you">আপনি আমন্ত্রণটি বাতিল করেছেন</string>
|
||||
<string name="notice_room_kick_by_you">আপনি %1$s কে কীক করেছেন</string>
|
||||
<string name="notice_room_unban_by_you">আপনি %1$s কে নিষিদ্ধ মুক্ত করেছেন</string>
|
||||
<string name="notice_room_ban_by_you">আপনি %1$s কে নিষিদ্ধ করেছেন</string>
|
||||
<string name="notice_room_withdraw_by_you">আপনি %1$s এর আমন্ত্রণ প্রত্যাহার করেছেন</string>
|
||||
<string name="notice_avatar_url_changed_by_you">আপনি আপনার অবতারটি পরিবর্তন করেছেন</string>
|
||||
<string name="notice_display_name_set_by_you">আপনি আপনার প্রদর্শনের নামটি %1$s তে সেট করেছেন</string>
|
||||
<string name="notice_display_name_changed_from_by_you">আপনি আপনার প্রদর্শনের নামটি %1$s থেকে %2$s এ পরিবর্তন করেছেন</string>
|
||||
<string name="notice_display_name_removed_by_you">আপনি আপনার প্রদর্শনের নামটি সরিয়ে দিয়েছেন (যেটা ছিল %1$s)</string>
|
||||
<string name="notice_room_topic_changed_by_you">আপনি বিষয়টিকে এতে পরিবর্তন করেছেন: %1$s</string>
|
||||
<string name="notice_room_avatar_changed">%1$s কক্ষের অবতারটি পরিবর্তন করেছে</string>
|
||||
<string name="notice_room_avatar_changed_by_you">আপনি কক্ষের অবতারটি পরিবর্তন করেছেন</string>
|
||||
<string name="notice_room_name_changed_by_you">আপনি কক্ষের নাম এতে পরিবর্তন করেছেন:%1$s</string>
|
||||
<string name="notice_placed_video_call_by_you">আপনি একটি ভিডিও কল করেছেন।</string>
|
||||
<string name="notice_placed_voice_call_by_you">আপনি একটি ভয়েস কল দিয়েছেন।</string>
|
||||
<string name="notice_call_candidates">কল সেটআপ করার জন্য %s ডেটা প্রেরণ করেছে।</string>
|
||||
<string name="notice_call_candidates_by_you">আপনি কল সেটআপ করার জন্য ডেটা প্রেরণ করেছেন।</string>
|
||||
<string name="notice_answered_call">%s কলটির উত্তর দিয়েছে।</string>
|
||||
<string name="notice_answered_call_by_you">আপনি কলটি উত্তর দিয়েছেন।</string>
|
||||
<string name="notice_ended_call">%s কলটি শেষ করেছেন।</string>
|
||||
<string name="notice_ended_call_by_you">আপনি কলটি শেষ করেছেন।</string>
|
||||
<string name="notice_made_future_room_visibility">%1$s ভবিষ্যতের ঘরের ইতিহাস %2$s এর কাছে দৃশ্যমান করে তুলেছে</string>
|
||||
<string name="notice_made_future_room_visibility_by_you">আপনি ভবিষ্যতের কক্ষ ইতিহাস %1$s এর কাছে দৃশ্যমান করেছেন</string>
|
||||
<string name="notice_room_visibility_invited">কক্ষের সমস্ত সদস্য, যখন থেকে তারা আমন্ত্রিত।</string>
|
||||
<string name="notice_room_visibility_joined">কক্ষের সমস্ত সদস্য, যখন থেকে তারা যোগদান করেছিল।</string>
|
||||
<string name="notice_room_visibility_shared">সমস্ত কক্ষের সদস্য।</string>
|
||||
<string name="notice_room_visibility_world_readable">যে কেউ।</string>
|
||||
<string name="notice_room_visibility_unknown">অজানা (%s)।</string>
|
||||
<string name="notice_end_to_end">%1$s এন্ড-টু-এন্ড এনক্রিপশন চালু করেছে (%2$s)</string>
|
||||
<string name="notice_end_to_end_by_you">আপনি শেষ-থেকে-শেষ এনক্রিপশন চালু করেছেন (%1$s)</string>
|
||||
<string name="notice_room_update">%s এই কক্ষটিকে আপগ্রেড করেছে।</string>
|
||||
<string name="notice_room_update_by_you">আপনি এই কক্ষটি আপগ্রেড করেছেন।</string>
|
||||
|
||||
<string name="notice_requested_voip_conference">%1$s একটি ভিওআইপি সম্মেলনের জন্য অনুরোধ করেছে</string>
|
||||
<string name="notice_requested_voip_conference_by_you">আপনি একটি ভিওআইপি সম্মেলনের অনুরোধ করেছেন</string>
|
||||
<string name="notice_voip_started">ভিওআইপি সম্মেলন শুরু হয়েছে</string>
|
||||
<string name="notice_voip_finished">ভিওআইপি সম্মেলন শেষ হয়েছে</string>
|
||||
|
||||
<string name="notice_avatar_changed_too">(আবতারটিও পরিবর্তন করা হয়েছিল)</string>
|
||||
<string name="notice_room_name_removed">%1$s কক্ষের নাম সরিয়েছে</string>
|
||||
<string name="notice_room_name_removed_by_you">আপনি কক্ষের নাম সরিয়েছেন</string>
|
||||
<string name="notice_room_topic_removed">%1$s কক্ষের বিষয় মুছে ফেলেছে</string>
|
||||
<string name="notice_room_topic_removed_by_you">আপনি কক্ষের বিষয়টিকে সরিয়ে দিয়েছেন</string>
|
||||
<string name="notice_room_avatar_removed">%1$s কক্ষের অবতার সরিয়ে নিয়েছে</string>
|
||||
<string name="notice_room_avatar_removed_by_you">আপনি কক্ষের অবতার সরিয়েছেন</string>
|
||||
<string name="notice_event_redacted">বার্তা সরানো হয়েছে</string>
|
||||
<string name="notice_event_redacted_by">%1$s দ্বারা বার্তা সরানো হয়েছে</string>
|
||||
<string name="notice_event_redacted_with_reason">বার্তা সরানো হয়েছে [কারণ:%1$s]</string>
|
||||
<string name="notice_event_redacted_by_with_reason">%1$s দ্বারা বার্তা সরানো হয়েছে [কারণ: %2$s]</string>
|
||||
<string name="notice_profile_change_redacted">%1$s তাদের প্রোফাইল %2$ আপডেট করেছে</string>
|
||||
<string name="notice_profile_change_redacted_by_you">আপনি আপনার প্রোফাইল %1$s আপডেট করেছেন</string>
|
||||
<string name="notice_room_third_party_invite">%1$s %2$s কে ঘরে যোগদানের জন্য একটি আমন্ত্রণ পাঠিয়েছে</string>
|
||||
<string name="notice_room_third_party_invite_by_you">আপনি %1$s কে ঘরে যোগদানের জন্য একটি আমন্ত্রণ প্রেরণ করেছেন</string>
|
||||
<string name="notice_room_third_party_revoked_invite">%1$s %2$s এর কক্ষে যোগদানের আমন্ত্রণ বাতিল করে দিয়েছিল</string>
|
||||
<string name="notice_room_third_party_revoked_invite_by_you">আপনি %1$s এর কক্ষে যোগদানের জন্য আমন্ত্রণটি বাতিল করেছেন</string>
|
||||
<string name="notice_room_third_party_registered_invite">%1$s %2$s এর জন্য আমন্ত্রণটি গ্রহণ করেছে</string>
|
||||
<string name="notice_room_third_party_registered_invite_by_you">আপনি %1$s এর জন্য আমন্ত্রণটি গ্রহণ করেছেন</string>
|
||||
|
||||
<string name="notice_widget_added">%1$s %2$s উইজেট যুক্ত করেছে</string>
|
||||
<string name="notice_widget_added_by_you">আপনি %1$s উইজেট যুক্ত করেছেন</string>
|
||||
<string name="notice_widget_removed">%1$s %2$s উইজেট সরিয়ে দিয়েছেন</string>
|
||||
<string name="notice_widget_removed_by_you">আপনি %1$s উইজেট সরিয়েছেন</string>
|
||||
<string name="notice_widget_modified">%1$s %2$s উইজেট পরিবর্তন করেছেন</string>
|
||||
<string name="notice_widget_modified_by_you">আপনি %1$s উইজেট পরিবর্তন করেছেন</string>
|
||||
|
||||
<string name="power_level_admin">অ্যাডমিন</string>
|
||||
<string name="power_level_moderator">নিয়ামক</string>
|
||||
<string name="power_level_default">ডিফল্ট</string>
|
||||
<string name="power_level_custom">কাস্টম (%1$d)</string>
|
||||
<string name="power_level_custom_no_value">কাস্টম</string>
|
||||
|
||||
<string name="notice_power_level_changed_by_you">আপনি %1$s এর পাওয়ার স্তর পরিবর্তন করেছেন।</string>
|
||||
<string name="notice_power_level_changed">%1$s %2$s এর পাওয়ার স্তর পরিবর্তন করেছে।</string>
|
||||
<string name="notice_power_level_diff">%1$s %2$s থেকে %3$s পর্যন্ত</string>
|
||||
|
||||
<string name="notice_crypto_unable_to_decrypt">** ডিক্রিপ্ট করতে অক্ষম: %s **</string>
|
||||
<string name="notice_crypto_error_unkwown_inbound_session_id">প্রেরকের ডিভাইস আমাদের এই বার্তার জন্য কীগুলি প্রেরণ করেনি।</string>
|
||||
|
||||
<string name="could_not_redact">পুনরায় প্রতিক্রিয়া করতে পারেনি</string>
|
||||
<string name="unable_to_send_message">বার্তা পাঠাতে অক্ষম</string>
|
||||
|
||||
<string name="message_failed_to_upload">চিত্র আপলোড করতে ব্যর্থ</string>
|
||||
|
||||
<string name="network_error">নেটওয়ার্ক ত্রুটি</string>
|
||||
<string name="matrix_error">ম্যাট্রিক্স ত্রুটি</string>
|
||||
|
||||
<string name="room_error_join_failed_empty_room">খালি কক্ষে পুনরায় যোগদান করা বর্তমানে সম্ভব নয়।</string>
|
||||
|
||||
<string name="encrypted_message">এনক্রিপ্ট করা বার্তা</string>
|
||||
|
||||
<string name="medium_email">ইমেল ঠিকানা</string>
|
||||
<string name="medium_phone_number">ফোন নম্বর</string>
|
||||
|
||||
<string name="room_displayname_invite_from">%s থেকে আমন্ত্রণ করুন</string>
|
||||
<string name="room_displayname_room_invite">কক্ষ আমন্ত্রণ</string>
|
||||
|
||||
<string name="room_displayname_two_members">%1$s এবং %2$s</string>
|
||||
|
||||
<plurals name="room_displayname_three_and_more_members">
|
||||
<item quantity="one">%1$s এবং অন্য ১ জন</item>
|
||||
<item quantity="other">%1$s এবং অন্যান্য %2$d জন</item>
|
||||
</plurals>
|
||||
|
||||
<string name="room_displayname_empty_room">খালি কক্ষ</string>
|
||||
|
||||
|
||||
<string name="verification_emoji_dog">কুকুর</string>
|
||||
<string name="verification_emoji_cat">বেড়াল</string>
|
||||
<string name="verification_emoji_lion">সিংহ</string>
|
||||
<string name="verification_emoji_horse">ঘোড়া</string>
|
||||
<string name="verification_emoji_unicorn">ইউনিকর্ন</string>
|
||||
<string name="verification_emoji_pig">শূকর</string>
|
||||
<string name="verification_emoji_elephant">হাতি</string>
|
||||
<string name="verification_emoji_rabbit">খরগোশ</string>
|
||||
<string name="verification_emoji_panda">পান্ডা</string>
|
||||
<string name="verification_emoji_rooster">গৃহপালিত মোরগ</string>
|
||||
<string name="verification_emoji_penguin">পেংগুইন</string>
|
||||
<string name="verification_emoji_turtle">কচ্ছপ</string>
|
||||
<string name="verification_emoji_fish">মাছ</string>
|
||||
<string name="verification_emoji_octopus">অক্টোপাস</string>
|
||||
<string name="verification_emoji_butterfly">প্রজাপতি</string>
|
||||
<string name="verification_emoji_flower">ফুল</string>
|
||||
<string name="verification_emoji_tree">গাছ</string>
|
||||
<string name="verification_emoji_cactus">ফণীমনসা</string>
|
||||
<string name="verification_emoji_mushroom">মাশরুম</string>
|
||||
<string name="verification_emoji_globe">পৃথিবী</string>
|
||||
<string name="verification_emoji_moon">চন্দ্র</string>
|
||||
<string name="verification_emoji_cloud">মেঘ</string>
|
||||
<string name="verification_emoji_fire">আগুন</string>
|
||||
<string name="verification_emoji_banana">কলা</string>
|
||||
<string name="verification_emoji_apple">আপেল</string>
|
||||
<string name="verification_emoji_strawberry">স্ট্রবেরি</string>
|
||||
<string name="verification_emoji_corn">ভূট্টা</string>
|
||||
<string name="verification_emoji_pizza">পিজা</string>
|
||||
<string name="verification_emoji_cake">কেক</string>
|
||||
<string name="verification_emoji_heart">হৃদয়</string>
|
||||
<string name="verification_emoji_smiley">স্মাইলি</string>
|
||||
<string name="verification_emoji_robot">রোবট</string>
|
||||
<string name="verification_emoji_hat">টুপি</string>
|
||||
<string name="verification_emoji_glasses">চশমা</string>
|
||||
<string name="verification_emoji_wrench">রেঞ্চ</string>
|
||||
<string name="verification_emoji_santa">সান্তা</string>
|
||||
<string name="verification_emoji_thumbsup">থাম্বস আপ</string>
|
||||
<string name="verification_emoji_umbrella">ছাতা</string>
|
||||
<string name="verification_emoji_hourglass">বালিঘড়ি</string>
|
||||
<string name="verification_emoji_clock">ঘড়ি</string>
|
||||
<string name="verification_emoji_gift">উপহার</string>
|
||||
<string name="verification_emoji_lightbulb">আলো বালব</string>
|
||||
<string name="verification_emoji_book">বই</string>
|
||||
<string name="verification_emoji_pencil">পেন্সিল</string>
|
||||
<string name="verification_emoji_paperclip">পেপার ক্লিপ</string>
|
||||
<string name="verification_emoji_scissors">কাঁচি</string>
|
||||
<string name="verification_emoji_lock">লক</string>
|
||||
<string name="verification_emoji_key">চাবি</string>
|
||||
<string name="verification_emoji_hammer">হাতুড়ি</string>
|
||||
<string name="verification_emoji_telephone">টেলিফোন</string>
|
||||
<string name="verification_emoji_flag">পতাকা</string>
|
||||
<string name="verification_emoji_train">রেলগাড়ি</string>
|
||||
<string name="verification_emoji_bicycle">সাইকেল</string>
|
||||
<string name="verification_emoji_airplane">বিমান</string>
|
||||
<string name="verification_emoji_rocket">রকেট</string>
|
||||
<string name="verification_emoji_trophy">ট্রফি</string>
|
||||
<string name="verification_emoji_ball">বল</string>
|
||||
<string name="verification_emoji_guitar">গিটার</string>
|
||||
<string name="verification_emoji_trumpet">ট্রাম্পেট</string>
|
||||
<string name="verification_emoji_bell">ঘণ্টা</string>
|
||||
<string name="verification_emoji_anchor">নোঙ্গর</string>
|
||||
<string name="verification_emoji_headphone">হেডফোন</string>
|
||||
<string name="verification_emoji_folder">ফোল্ডার</string>
|
||||
<string name="verification_emoji_pin">পিন</string>
|
||||
|
||||
<string name="initial_sync_start_importing_account">প্রাথমিক সিঙ্ক:
|
||||
\nঅ্যাকাউন্ট আমদানি করা হচ্ছে…</string>
|
||||
<string name="initial_sync_start_importing_account_crypto">প্রাথমিক সিঙ্ক:
|
||||
\nক্রিপ্টো আমদানি হচ্ছে</string>
|
||||
<string name="initial_sync_start_importing_account_rooms">প্রাথমিক সিঙ্ক:
|
||||
\nকক্ষগুলি আমদানি করা হচ্ছে</string>
|
||||
<string name="initial_sync_start_importing_account_joined_rooms">প্রাথমিক সিঙ্ক:
|
||||
\nযোগ করা কক্ষগুলিতে আমদানি করা হিচ্ছে</string>
|
||||
<string name="initial_sync_start_importing_account_invited_rooms">প্রাথমিক সিঙ্ক:
|
||||
\nআমন্ত্রিত করা কক্ষগুলিতে আমদানি করা হিচ্ছে</string>
|
||||
<string name="initial_sync_start_importing_account_left_rooms">প্রাথমিক সিঙ্ক:
|
||||
\nছেড়ে দেওয়া কক্ষগুলিতে আমদানি করা হিচ্ছে</string>
|
||||
<string name="initial_sync_start_importing_account_groups">প্রাথমিক সিঙ্ক:
|
||||
\nসম্প্রদায়গুলি আমদানি করা হচ্ছে</string>
|
||||
<string name="initial_sync_start_importing_account_data">প্রাথমিক সিঙ্ক:
|
||||
\nঅ্যাকাউন্ট ডেটা আমদানি করা হচ্ছে</string>
|
||||
|
||||
<string name="event_status_sending_message">বার্তা প্রেরণ করা হচ্ছে …</string>
|
||||
<string name="clear_timeline_send_queue">প্রেরণ সারি পরিষ্কার করুন</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_with_reason">%1$s এর আমন্ত্রণ। কারণ: %2$s</string>
|
||||
<string name="notice_room_invite_no_invitee_with_reason_by_you">আপনার আমন্ত্রণ। কারণ: %1$s</string>
|
||||
<string name="notice_room_invite_with_reason">%1$s আমন্ত্রিত করেছেন %2$s কে। কারণ: %3$s</string>
|
||||
<string name="notice_room_invite_with_reason_by_you">আপনি %1$s কে আমন্ত্রিত করেছেন। কারণ: %2$s</string>
|
||||
<string name="notice_room_invite_you_with_reason">%1$s আপনাকে আমন্ত্রণ করেছে। কারণ: %2$s</string>
|
||||
<string name="notice_room_join_with_reason">%1$s রুম এ যোগ দিয়েছে। কারণ: %2$s</string>
|
||||
<string name="notice_room_join_with_reason_by_you">আপনি কক্ষে যোগ দিয়েছেন। কারণ: %1$s</string>
|
||||
<string name="notice_room_leave_with_reason">%1$s রুম ছেড়ে দিয়েছে। কারণ: %2$s</string>
|
||||
<string name="notice_room_leave_with_reason_by_you">আপনি কক্ষ ছেড়ে দিয়েছেন। কারণ: %1$s</string>
|
||||
<string name="notice_room_reject_with_reason">%1$s আমন্ত্রণ বাতিল করেছেন। কারণ: %2$s</string>
|
||||
<string name="notice_room_reject_with_reason_by_you">আপনি আমন্ত্রণটি বাতিল করেছেন। কারণ: %1$s</string>
|
||||
<string name="notice_room_kick_with_reason">%1$s %2$s কে কিক করেছে। কারণ: %2$s</string>
|
||||
<string name="notice_room_kick_with_reason_by_you">আপনি %1$s কে কীক করেছেন। কারণ: %2$s</string>
|
||||
<string name="notice_room_unban_with_reason">%1$s %2$s কে নিষিদ্ধ তালিকা থেকে মুক্ত করেছে। কারণ: %3$s</string>
|
||||
<string name="notice_room_unban_with_reason_by_you">আপনি %1$s কে নিষিদ্ধ মুক্ত করেছেন। কারণ: %2$s</string>
|
||||
<string name="notice_room_ban_with_reason">%1$s %2$s কে নিষিদ্ধ করেছে। কারণ: %3$s</string>
|
||||
<string name="notice_room_ban_with_reason_by_you">আপনি %1$s কে নিষিদ্ধ করেছেন। কারণ: %2$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason">%1$s রুমের সাথে যোগ দিতে %2$s কে একটি আমন্ত্রণ পাঠিয়েছেন। কারণ: %3$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason_by_you">আপনি %1$s কে ঘরে যোগদানের জন্য একটি আমন্ত্রণ প্রেরণ করেছেন। কারণ: %2$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason">%1$s %2$s এর কক্ষে যোগদানের আমন্ত্রণ বাতিল করে দিয়েছিল। কারণ: %3$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason_by_you">আপনি %1$s এর কক্ষে যোগদানের জন্য আমন্ত্রণটি বাতিল করেছেন। কারণ: %2$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason">%1$s %2$s এর জন্য আমন্ত্রণ গ্রহণ করেছেন। কারণ: %3$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason_by_you">আপনি %1$s এর জন্য আমন্ত্রণটি গ্রহণ করেছেন। কারণ: %2$s</string>
|
||||
<string name="notice_room_withdraw_with_reason">%1$s %2$s এর আমন্ত্রণ ফেরত নিয়েছে। কারণ: %3$s</string>
|
||||
<string name="notice_room_withdraw_with_reason_by_you">আপনি %1$s এর আমন্ত্রণ প্রত্যাহার করেছেন। কারণ: %2$s</string>
|
||||
|
||||
<plurals name="notice_room_aliases_added">
|
||||
<item quantity="one">%1$s এই ঘরের ঠিকানা হিসাবে %2$s যুক্ত করেছে।</item>
|
||||
<item quantity="other">%1$s এই ঘরের ঠিকানাগুলি হিসাবে %2$s যুক্ত করেছে।</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_added_by_you">
|
||||
<item quantity="one">আপনি এই কক্ষের জন্য ঠিকানা হিসাবে %1$s যুক্ত করেছেন।</item>
|
||||
<item quantity="other">আপনি এই কক্ষের ঠিকানা হিসাবে %1$s যুক্ত করেছেন।</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed">
|
||||
<item quantity="one">%1$s এই ঘরের ঠিকানা হিসাবে %2$s সরানো হয়েছে।</item>
|
||||
<item quantity="other">%1$s %3$s কে এই ঘরের ঠিকানা হিসাবে সরানো হয়েছে।</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed_by_you">
|
||||
<item quantity="one">আপনি এই ঘরের ঠিকানা হিসাবে %1$s সরিয়েছেন।</item>
|
||||
<item quantity="other">আপনি এই ঘরের ঠিকানা হিসাবে %2$s গুলি সরিয়েছেন।</item>
|
||||
</plurals>
|
||||
|
||||
<string name="notice_room_aliases_added_and_removed">%1$s %2$s যোগ করেছে এবং %3$s গুলি এই ঘরের ঠিকানা হিসাবে সরানো হয়েছে।</string>
|
||||
<string name="notice_room_aliases_added_and_removed_by_you">আপনি %1$s যোগ করেছেন এবং %2$s কে এই ঘরের ঠিকানা হিসাবে সরিয়ে দিয়েছেন।</string>
|
||||
|
||||
<string name="notice_room_canonical_alias_set">%1$s এই ঘরের মূল ঠিকানাটি %2$s তে সেট করে।</string>
|
||||
<string name="notice_room_canonical_alias_set_by_you">আপনি এই ঘরের মূল ঠিকানাটি %1$s তে সেট করেছেন।</string>
|
||||
<string name="notice_room_canonical_alias_unset">%1$s এই ঘরের মূল ঠিকানা সরিয়ে নিয়েছে।</string>
|
||||
<string name="notice_room_canonical_alias_unset_by_you">আপনি এই ঘরের মূল ঠিকানা সরিয়েছেন।</string>
|
||||
|
||||
<string name="notice_room_guest_access_can_join">%1$s অতিথিদের ঘরে যোগদানের অনুমতি দিয়েছে।</string>
|
||||
<string name="notice_room_guest_access_can_join_by_you">আপনি অতিথিদের ঘরে যোগদানের অনুমতি দিয়েছেন।</string>
|
||||
<string name="notice_room_guest_access_forbidden">%1$s অতিথিদের ঘরে যোগদান করতে বাধা দিয়েছে।</string>
|
||||
<string name="notice_room_guest_access_forbidden_by_you">আপনি অতিথিদের ঘরে যোগদান করতে বাধা দিয়েছেন।</string>
|
||||
|
||||
<string name="notice_end_to_end_ok">%1$s এন্ড-টু-এন্ড এনক্রিপশন চালু করেছে।</string>
|
||||
<string name="notice_end_to_end_ok_by_you">আপনি শেষ থেকে শেষ এনক্রিপশন চালু করেছেন।</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm">%1$s এন্ড-টু-এন্ড এনক্রিপশন চালু করেছে (অজানা অ্যালগরিদম %2$s)।</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm_by_you">আপনি শেষ-থেকে-শেষ এনক্রিপশন চালু করেছেন (অজানা অ্যালগরিদম %1$s )।</string>
|
||||
|
||||
<string name="key_verification_request_fallback_message">%s আপনার কীটি যাচাই করার জন্য অনুরোধ করছে, তবে আপনার ক্লায়েন্ট ইন-চ্যাট কী যাচাইকরণ সমর্থন করে না। কীগুলি যাচাই করতে আপনাকে লিগ্যাসি কী যাচাইকরণ ব্যবহার করতে হবে।</string>
|
||||
|
||||
<string name="call_notification_answer">গ্রহণ</string>
|
||||
<string name="call_notification_reject">পতন</string>
|
||||
<string name="call_notification_hangup">বন্ধ করুন</string>
|
||||
|
||||
</resources>
|
||||
|
@ -204,6 +204,103 @@
|
||||
<string name="notice_end_to_end_ok">%1$s aktivierte Ende-zu-Ende-Verschlüsselung.</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm">%1$s aktivierte Ende-zu-Ende-Verschlüsselung (unbekannter Algorithmus %2$s).</string>
|
||||
|
||||
<string name="key_verification_request_fallback_message">%s fordert zur Überprüfung Ihres Schlüssels auf, jedoch unterstützt Ihr Client nicht die Schlüsselüberprüfung im Chat. Sie müssen die herkömmliche Schlüsselüberprüfung verwenden, um die Schlüssel zu überprüfen.</string>
|
||||
<string name="key_verification_request_fallback_message">%s fordert zur Überprüfung deines Schlüssels auf, jedoch unterstützt dein Client nicht die Schlüsselüberprüfung im Chat. Du musst die herkömmliche Schlüsselüberprüfung verwenden, um die Schlüssel zu überprüfen.</string>
|
||||
|
||||
<string name="summary_you_sent_image">Du hast ein Bild gesendet.</string>
|
||||
<string name="summary_you_sent_sticker">Du hast einen Sticker gesendet.</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_by_you">Deine Einladung</string>
|
||||
<string name="notice_room_created">%1$s hat den Raum erstellt</string>
|
||||
<string name="notice_room_created_by_you">Du hast den Raum erstellt</string>
|
||||
<string name="notice_room_invite_by_you">Du hast $1$s eingeladen</string>
|
||||
<string name="notice_room_join_by_you">Du bist dem Raum beigetreten</string>
|
||||
<string name="notice_room_leave_by_you">Du hast den Raum verlassen</string>
|
||||
<string name="notice_room_reject_by_you">Du hast die Einladung abgelehnt</string>
|
||||
<string name="notice_room_kick_by_you">Du hast %1$s aus dem Raum entfernt</string>
|
||||
<string name="notice_room_unban_by_you">Du hast den Bann von %1$s aufgehoben</string>
|
||||
<string name="notice_room_ban_by_you">Du hast %1$s gebannt</string>
|
||||
<string name="notice_room_withdraw_by_you">Du hast die Einladung von %1$s zurückgenommen</string>
|
||||
<string name="notice_avatar_url_changed_by_you">Du hast dein Profilbild geändert</string>
|
||||
<string name="notice_display_name_set_by_you">Du hast deinen Anzeigenamen zu %1$s geändert</string>
|
||||
<string name="notice_display_name_changed_from_by_you">Du hast deinen Anzeigenamen von %1$s zu %2$s geändert</string>
|
||||
<string name="notice_display_name_removed_by_you">Du hast deinen Anzeigenamen entfernt (er war %1$s)</string>
|
||||
<string name="notice_room_topic_changed_by_you">Du hast das Thema geändert auf: %1$s</string>
|
||||
<string name="notice_room_avatar_changed">%1$s hat das Bild des Raumes geändert</string>
|
||||
<string name="notice_room_avatar_changed_by_you">Du hast das Bild des Raumes geändert</string>
|
||||
<string name="notice_room_name_changed_by_you">Du hast den Raumnamen zu %1$s geändert</string>
|
||||
<string name="notice_placed_video_call_by_you">Du hast einen Videoanruf gestartet.</string>
|
||||
<string name="notice_placed_voice_call_by_you">Du hast einen Audioanruf gestartet.</string>
|
||||
<string name="notice_answered_call_by_you">Du hast den Anruf angenommen.</string>
|
||||
<string name="notice_ended_call_by_you">Du hast den Anruf beendet.</string>
|
||||
<string name="notice_made_future_room_visibility_by_you">Du hast den zukünftigen Nachrichtenverlauf für %1$s sichtbar gemacht</string>
|
||||
<string name="notice_end_to_end_by_you">Du hast Ende-zu-Ende-Verschlüsselung aktiviert (%1$s)</string>
|
||||
<string name="notice_room_update_by_you">Du hast den Raum aufgwertet.</string>
|
||||
|
||||
<string name="notice_requested_voip_conference_by_you">Du hast eine VoIP-Konferenz angefordert</string>
|
||||
<string name="notice_room_name_removed_by_you">Du hast den Raumnamen entfernt</string>
|
||||
<string name="notice_room_topic_removed_by_you">Du hast das Raumthema entfernt</string>
|
||||
<string name="notice_room_avatar_removed">%1$s hat das Bild des Raumes entfernt</string>
|
||||
<string name="notice_room_avatar_removed_by_you">Du hast das Bild des Raumes entfernt</string>
|
||||
<string name="notice_profile_change_redacted_by_you">Du hast dein Profil %1$s aktualisiert</string>
|
||||
<string name="notice_room_third_party_invite_by_you">Du hast %1$s in den Raum eingeladen</string>
|
||||
<string name="notice_room_third_party_revoked_invite_by_you">Du hast die Einladung für %1$s zurückgenommen</string>
|
||||
<string name="notice_room_third_party_registered_invite_by_you">Du hast die Einladung für %1$s akzeptiert</string>
|
||||
|
||||
<string name="notice_widget_added">%1$s hat das %2$s Widget hinzugefügt</string>
|
||||
<string name="notice_widget_added_by_you">Du hast das %1$s Widget hinzugefügt</string>
|
||||
<string name="notice_widget_removed">%1$s hat das %2$s Widget entfernt</string>
|
||||
<string name="notice_widget_removed_by_you">Du hast das %1$s Widget entfernt</string>
|
||||
<string name="notice_widget_modified">%1$s hat das %2$s Widget modifiziert</string>
|
||||
<string name="notice_widget_modified_by_you">Du hast das %1$s Widget modifiziert</string>
|
||||
|
||||
<string name="power_level_admin">Administrator</string>
|
||||
<string name="power_level_moderator">Moderator</string>
|
||||
<string name="power_level_default">Standard</string>
|
||||
<string name="power_level_custom">Benutzerdefiniert (%1$d)</string>
|
||||
<string name="power_level_custom_no_value">Benutzerdefiniert</string>
|
||||
|
||||
<string name="notice_power_level_changed_by_you">Du hast die Berechtigungsstufe von %1$s geändert.</string>
|
||||
<string name="notice_power_level_changed">%1$s hat die Berechtigungsstufe von %2$s geändert.</string>
|
||||
<string name="notice_power_level_diff">%1$s von %2$s zu %3$s</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_with_reason_by_you">Deine Einladung. Grund: %1$s</string>
|
||||
<string name="notice_room_invite_with_reason_by_you">Du hast %1$s eingeladen. Grund: %2$s</string>
|
||||
<string name="notice_room_join_with_reason_by_you">Du bist dem Raum beigetreten. Grund: %1$s</string>
|
||||
<string name="notice_room_leave_with_reason_by_you">Du hast den Raum verlassen. Grund: %1$s</string>
|
||||
<string name="notice_room_reject_with_reason_by_you">Du hast die Einladung abgelehnt. Grund: %1$s</string>
|
||||
<string name="notice_room_kick_with_reason_by_you">Du hast %1$s aus dem Raum entfernt. Grund %2$s</string>
|
||||
<string name="notice_room_unban_with_reason_by_you">Du hast den Bann von %1$s aufgehoben. Grund: %2$s</string>
|
||||
<string name="notice_room_ban_with_reason_by_you">Du hast %1$s gebannt. Grund: %2$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason_by_you">Du hast %1$s in den Raum eingeladen. Grund: %2$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason_by_you">Du hast die Einladung für %1$s zurückgenommen. Grund: %2$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason_by_you">Du hast die Einladung von %1$s angenommen. Grund: %2$s</string>
|
||||
<string name="notice_room_withdraw_with_reason_by_you">Du hast die Einladung von %1$s abgelehnt. Grund: %2$s</string>
|
||||
|
||||
<plurals name="notice_room_aliases_added_by_you">
|
||||
<item quantity="one">Du hast die Raumaddresse %1$s hinzugefügt.</item>
|
||||
<item quantity="other">Du hast die Raumaddressen %1$s hinzugefügt.</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed_by_you">
|
||||
<item quantity="one">Du hast die Raumaddresse %1$s vom Raum entfernt.</item>
|
||||
<item quantity="other">Du hast die Raumaddressen %1$s vom Raum entfernt.</item>
|
||||
</plurals>
|
||||
|
||||
<string name="notice_room_aliases_added_and_removed_by_you">Du hast den Raumaddressen %1$s hinzugefügt und %2$s entfernt.</string>
|
||||
|
||||
<string name="notice_room_canonical_alias_set_by_you">Du hast die Hauptaddresse für diesen Raum auf %1$s gesetzt.</string>
|
||||
<string name="notice_room_canonical_alias_unset_by_you">Du hast die Hauptaddresse des Raums entfernt.</string>
|
||||
|
||||
<string name="notice_room_guest_access_can_join_by_you">Du hast Gästen erlaubt dem Raum beizutreten.</string>
|
||||
<string name="notice_room_guest_access_forbidden_by_you">Du hast Gästen untersagt dem Raum beizutreten.</string>
|
||||
|
||||
<string name="notice_end_to_end_ok_by_you">Du hast Ende-zu-Ende-Verschlüsselung aktiviert.</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm_by_you">Du hast Ende-zu-Ende-Verschlüsselung aktiviert (unbekannter Algorithmus %1$s).</string>
|
||||
|
||||
<string name="call_notification_answer">Akzeptiere</string>
|
||||
<string name="call_notification_reject">Ablehnen</string>
|
||||
<string name="call_notification_hangup">Anruf beenden</string>
|
||||
|
||||
<string name="notice_call_candidates">%s hat Daten gesendet, um einen Anruf zu starten.</string>
|
||||
<string name="notice_call_candidates_by_you">Du hast Daten geschickt, um eine Anruf zu starten.</string>
|
||||
</resources>
|
||||
|
@ -199,4 +199,104 @@
|
||||
<string name="key_verification_request_fallback_message">%s soovib verifitseerida sinu võtmeid, kuid sinu kasutatav klient ei oska vestluse-sisest verifitseerimist teha. Sa pead kasutama traditsioonilist verifitseerimislahendust.</string>
|
||||
|
||||
<string name="notice_room_created">Kasutaja %1$s lõi jututoa</string>
|
||||
<string name="summary_you_sent_image">Sina saatsid pildi.</string>
|
||||
<string name="summary_you_sent_sticker">Sina saatsid kleepsu.</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_by_you">Sinu kutse</string>
|
||||
<string name="notice_room_created_by_you">Sa lõid jututoa</string>
|
||||
<string name="notice_room_invite_by_you">Sina kutsusid kasutajat %1$s</string>
|
||||
<string name="notice_room_join_by_you">Sina liitusid jututoaga</string>
|
||||
<string name="notice_room_leave_by_you">Sina lahkusid jututoast</string>
|
||||
<string name="notice_room_reject_by_you">Sina lükkasid kutse tagasi</string>
|
||||
<string name="notice_room_kick_by_you">Sina müksasid %1$s välja</string>
|
||||
<string name="notice_room_unban">%1$s taastas %2$s ligipääsu</string>
|
||||
<string name="notice_room_unban_by_you">Sina taastasid %1$s ligipääsu</string>
|
||||
<string name="notice_room_ban">%1$s keelas %1$s ligipääsu</string>
|
||||
<string name="notice_room_ban_by_you">Sina keelasid %1$s ligipääsu</string>
|
||||
<string name="notice_room_withdraw_by_you">Sina võtsid tagasi %1$s kutse</string>
|
||||
<string name="notice_avatar_url_changed_by_you">Sina muutsid oma tunnuspilti</string>
|
||||
<string name="notice_display_name_set_by_you">Sina määrasid oma kuvatavaks nimeks %1$s</string>
|
||||
<string name="notice_display_name_changed_from_by_you">Sina muutsid senise kuvatava nime %1$s uueks nimeks %2$s</string>
|
||||
<string name="notice_display_name_removed_by_you">Sina eemaldasid oma kuvatava nime (oli %1$s)</string>
|
||||
<string name="notice_room_topic_changed_by_you">Sina muutsid uueks teemaks %1$s</string>
|
||||
<string name="notice_room_avatar_changed">%1$s muutis jututoa tunnuspilti</string>
|
||||
<string name="notice_room_avatar_changed_by_you">Sina muutsid jututoa tunnuspilti</string>
|
||||
<string name="notice_room_name_changed_by_you">Sina muutsid jututoa uueks nimeks %1$s</string>
|
||||
<string name="notice_placed_video_call_by_you">Sa alustasid videokõnet.</string>
|
||||
<string name="notice_placed_voice_call_by_you">Sa alustasid häälkõnet.</string>
|
||||
<string name="notice_call_candidates">%s saatis info kõne algatamiseks.</string>
|
||||
<string name="notice_call_candidates_by_you">Sa saatsid info kõne algatamiseks.</string>
|
||||
<string name="notice_answered_call_by_you">Sa vastasid kõnele.</string>
|
||||
<string name="notice_ended_call_by_you">Sa lõpetasid kõne.</string>
|
||||
<string name="notice_made_future_room_visibility_by_you">Sa seadistasid, et tulevane jututoa ajalugu on nähtav kasutajale %1$s</string>
|
||||
<string name="notice_end_to_end_by_you">Sa lülitasid sisse läbiva krüptimise (%1$s)</string>
|
||||
<string name="notice_room_update_by_you">Sa uuendasid seda jututuba.</string>
|
||||
|
||||
<string name="notice_requested_voip_conference_by_you">Sa algatasid VoIP rühmakõne</string>
|
||||
<string name="notice_room_name_removed_by_you">Sa eemaldasid jututoa nime</string>
|
||||
<string name="notice_room_topic_removed_by_you">Sa eemaldasid jututoa teema</string>
|
||||
<string name="notice_room_avatar_removed">%1$s eemaldas jututoa tunnuspildi</string>
|
||||
<string name="notice_room_avatar_removed_by_you">Sa eemaldasid jututoa tunnuspildi</string>
|
||||
<string name="notice_profile_change_redacted_by_you">Sa uuendasid oma profiili %1$s</string>
|
||||
<string name="notice_room_third_party_invite_by_you">Sina saatsid kasutajale %1$s kutse jututoaga liitumiseks</string>
|
||||
<string name="notice_room_third_party_revoked_invite_by_you">Sina võtsid tagasi jututoaga liitumise kutse kasutajalt %1$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_by_you">Sina võtsid vastu kutse %1$s nimel</string>
|
||||
|
||||
<string name="notice_widget_added">%1$s lisas %2$s vidina</string>
|
||||
<string name="notice_widget_added_by_you">Sina lisasid %1$s vidina</string>
|
||||
<string name="notice_widget_removed">%1$s eemaldas %2$s vidina</string>
|
||||
<string name="notice_widget_removed_by_you">Sina eemdaldasid %1$s vidina</string>
|
||||
<string name="notice_widget_modified">%1$s muutis %2$s vidinat</string>
|
||||
<string name="notice_widget_modified_by_you">Sa muutsid %1$s vidinat</string>
|
||||
|
||||
<string name="power_level_admin">Peakasutaja</string>
|
||||
<string name="power_level_moderator">Moderaator</string>
|
||||
<string name="power_level_default">Tavakasutaja</string>
|
||||
<string name="power_level_custom">Kohandatud kasutajaõigused (%1$s)</string>
|
||||
<string name="power_level_custom_no_value">Kohandatud õigused</string>
|
||||
|
||||
<string name="notice_power_level_changed_by_you">Sina muutsid kasutaja %1$s õigusi.</string>
|
||||
<string name="notice_power_level_changed">%1$s muutis kasutaja %2$s õigusi.</string>
|
||||
<string name="notice_power_level_diff">%1$s õiguste muutus %2$s -> %3$s</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_with_reason_by_you">Sinu kutse. Põhjus %1$s</string>
|
||||
<string name="notice_room_invite_with_reason_by_you">Sina kutsusid kasutajat %1$s. Põhjus: %1$s</string>
|
||||
<string name="notice_room_join_with_reason_by_you">Sina liitusid jututoaga. Põhjus: %1$s</string>
|
||||
<string name="notice_room_leave_with_reason_by_you">Sina lahkusid jututoast. Põhjus: %1$s</string>
|
||||
<string name="notice_room_reject_with_reason_by_you">Sina lükkasid kutse tagasi. Põhjus: %1$s</string>
|
||||
<string name="notice_room_kick_with_reason_by_you">Sina müksasid kasutaja %1$s välja. Põhjus: %2$s</string>
|
||||
<string name="notice_room_unban_with_reason">%1$s taastas ligipääsu kasutajale %2$s. Põhjus: %3$s</string>
|
||||
<string name="notice_room_unban_with_reason_by_you">Sina taastasid kasutaja %1$s ligipääsu. Põhjus: %2$s</string>
|
||||
<string name="notice_room_ban_with_reason">%1$s keelas kasutaja %2$s ligipääsu. Põhjus: %3$s</string>
|
||||
<string name="notice_room_ban_with_reason_by_you">Sina keelasid kasutaja %1$s ligipääsu. Põhjus: %2$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason_by_you">Sina saatsid kasutajale %1$s kutse jututoaga liitumiseks. Põhjus: %2$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason_by_you">Sina võtsid tagasi jututoaga liitumise kutse kasutajalt %1$s. Põhjus: %2$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason_by_you">Sina võtsid vastu kutse %1$s nimel. Põhjus: %2$s</string>
|
||||
<string name="notice_room_withdraw_with_reason_by_you">Sina võtsid tagasi kasutaja %1$s kutse. Põhjus: %2$s</string>
|
||||
|
||||
<plurals name="notice_room_aliases_added_by_you">
|
||||
<item quantity="one">Sina lisasid %1$s selle jututoa aadressiks.</item>
|
||||
<item quantity="other">Sina lisasid %1$s selle jututoa aadressideks.</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed_by_you">
|
||||
<item quantity="one">Sina eemaldasid %1$s, kui selle jututoa aadressi.</item>
|
||||
<item quantity="other">Sina eemaldasid %1$s selle jututoa aadresside hulgast.</item>
|
||||
</plurals>
|
||||
|
||||
<string name="notice_room_aliases_added_and_removed_by_you">Sina lisasid %1$s selle jututoa aadressiks ning eemaldasid %2$s aadresside hulgast.</string>
|
||||
|
||||
<string name="notice_room_canonical_alias_set_by_you">Sina seadistasid selle jututoa põhiaadressiks %1$s.</string>
|
||||
<string name="notice_room_canonical_alias_unset_by_you">Sina eemaldasid selle jututoa põhiaadressi.</string>
|
||||
|
||||
<string name="notice_room_guest_access_can_join_by_you">Sina lubasid külalistel selle jututoaga liituda.</string>
|
||||
<string name="notice_room_guest_access_forbidden_by_you">Sina seadistasid, et külalised ei või selle jututoaga liituda.</string>
|
||||
|
||||
<string name="notice_end_to_end_ok_by_you">Sa lülitasid sisse läbiva krüptimise.</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm_by_you">Sa lülitasid sisse läbiva krüptimise (kasutusel on tundmatu algoritm %1$s).</string>
|
||||
|
||||
<string name="call_notification_answer">Võta vastu</string>
|
||||
<string name="call_notification_reject">Keeldu</string>
|
||||
<string name="call_notification_hangup">Lõpeta kõne</string>
|
||||
|
||||
</resources>
|
||||
|
@ -204,4 +204,100 @@
|
||||
<string name="key_verification_request_fallback_message">%s sta chiedendo di verificare la tua chiave, ma il tuo client non supporta la verifica in-chat. Dovrai usare il metodo di verifica obsoleto per verificare le chiavi.</string>
|
||||
|
||||
<string name="notice_room_created">%1$s ha creato la stanza</string>
|
||||
<string name="summary_you_sent_image">Hai inviato un\'immagine.</string>
|
||||
<string name="summary_you_sent_sticker">Hai inviato un adesivo.</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_by_you">Il tuo invito</string>
|
||||
<string name="notice_room_created_by_you">Hai creato la stanza</string>
|
||||
<string name="notice_room_invite_by_you">Hai invitato %1$s</string>
|
||||
<string name="notice_room_join_by_you">Sei entrato nella stanza</string>
|
||||
<string name="notice_room_leave_by_you">Sei uscito dalla stanza</string>
|
||||
<string name="notice_room_reject_by_you">Hai rifiutato l\'invito</string>
|
||||
<string name="notice_room_kick_by_you">Hai buttato fuori %1$s</string>
|
||||
<string name="notice_room_unban_by_you">Hai riammesso %1$s</string>
|
||||
<string name="notice_room_ban_by_you">Hai bandito %1$s</string>
|
||||
<string name="notice_room_withdraw_by_you">Hai ritirato l\'invito di %1$s</string>
|
||||
<string name="notice_avatar_url_changed_by_you">Hai cambiato il tuo avatar</string>
|
||||
<string name="notice_display_name_set_by_you">Hai impostato il tuo nome visualizzato a %1$s</string>
|
||||
<string name="notice_display_name_changed_from_by_you">Hai cambiato il tuo nome visualizzato da %1$s a %2$s</string>
|
||||
<string name="notice_display_name_removed_by_you">Hai rimosso il tuo nome visibile (era %1$s)</string>
|
||||
<string name="notice_room_topic_changed_by_you">Hai cambiato l\'argomento a: %1$s</string>
|
||||
<string name="notice_room_avatar_changed">%1$s ha modificato l\'avatar della stanza</string>
|
||||
<string name="notice_room_avatar_changed_by_you">Hai modificato l\'avatar della stanza</string>
|
||||
<string name="notice_room_name_changed_by_you">Hai cambiato il nome della stanza a: %1$s</string>
|
||||
<string name="notice_placed_video_call_by_you">Hai iniziato una videochiamata.</string>
|
||||
<string name="notice_placed_voice_call_by_you">Hai iniziato una telefonata.</string>
|
||||
<string name="notice_call_candidates">%s ha inviato dati per impostare la chiamata.</string>
|
||||
<string name="notice_call_candidates_by_you">Hai inviato dati per impostare la chiamata.</string>
|
||||
<string name="notice_answered_call_by_you">Hai risposto alla chiamata.</string>
|
||||
<string name="notice_ended_call_by_you">Hai terminato la chiamata.</string>
|
||||
<string name="notice_made_future_room_visibility_by_you">Hai reso visibile la futura cronologia della stanza a %1$s</string>
|
||||
<string name="notice_end_to_end_by_you">Hai attivato la crittografia end-to-end (%1$s)</string>
|
||||
<string name="notice_room_update_by_you">Hai aggiornato questa stanza.</string>
|
||||
|
||||
<string name="notice_requested_voip_conference_by_you">Hai richiesto una conferenza VoIP</string>
|
||||
<string name="notice_room_name_removed_by_you">Hai rimosso il nome della stanza</string>
|
||||
<string name="notice_room_topic_removed_by_you">Hai rimosso l\'argomento della stanza</string>
|
||||
<string name="notice_room_avatar_removed">%1$s ha rimosso l\'avatar della stanza</string>
|
||||
<string name="notice_room_avatar_removed_by_you">Hai rimosso l\'avatar della stanza</string>
|
||||
<string name="notice_profile_change_redacted_by_you">Hai aggiornato il tuo profilo %1$s</string>
|
||||
<string name="notice_room_third_party_invite_by_you">Hai mandato un invito a %1$s a unirsi alla stanza</string>
|
||||
<string name="notice_room_third_party_revoked_invite_by_you">Hai revocato l\'invito per %1$s a unirsi alla stanza</string>
|
||||
<string name="notice_room_third_party_registered_invite_by_you">Hai accettato l\'invito per %1$s</string>
|
||||
|
||||
<string name="notice_widget_added">%1$s ha aggiunto il widget %2$s</string>
|
||||
<string name="notice_widget_added_by_you">Hai aggiunto il widget %1$s</string>
|
||||
<string name="notice_widget_removed">%1$s ha rimosso il widget %2$s</string>
|
||||
<string name="notice_widget_removed_by_you">Hai rimosso il widget %1$s</string>
|
||||
<string name="notice_widget_modified">%1$s ha modificato il widget %2$s</string>
|
||||
<string name="notice_widget_modified_by_you">Hai modificato il widget %1$s</string>
|
||||
|
||||
<string name="power_level_admin">Amministratore</string>
|
||||
<string name="power_level_moderator">Moderatore</string>
|
||||
<string name="power_level_default">Predefinito</string>
|
||||
<string name="power_level_custom">Personalizzato (%1$d)</string>
|
||||
<string name="power_level_custom_no_value">Personalizzato</string>
|
||||
|
||||
<string name="notice_power_level_changed_by_you">Hai cambiato il livello di potere di %1$s.</string>
|
||||
<string name="notice_power_level_changed">%1$s ha cambiato il livello di potere di %2$s.</string>
|
||||
<string name="notice_power_level_diff">%1$s da %2$s a %3$s</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_with_reason_by_you">Il tuo invito. Motivo: %1$s</string>
|
||||
<string name="notice_room_invite_with_reason_by_you">Hai invitato %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_join_with_reason_by_you">Sei entrato nella stanza. Motivo: %1$s</string>
|
||||
<string name="notice_room_leave_with_reason_by_you">Sei uscito dalla stanza. Motivo: %1$s</string>
|
||||
<string name="notice_room_reject_with_reason_by_you">Hai rifiutato l\'invito. Motivo: %1$s</string>
|
||||
<string name="notice_room_kick_with_reason_by_you">Hai buttato fuori %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_unban_with_reason_by_you">Hai riammesso %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_ban_with_reason_by_you">Hai bandito %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason_by_you">Hai mandato un invito a %1$s a unirsi alla stanza. Motivo: %2$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason_by_you">Hai revocato l\'invito a %1$s a unirsi alla stanza. Motivo: %2$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason_by_you">Hai accettato l\'invito per %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_withdraw_with_reason_by_you">Hai ritirato l\'invito di %2$s. Motivo: %2$s</string>
|
||||
|
||||
<plurals name="notice_room_aliases_added_by_you">
|
||||
<item quantity="one">Hai aggiunto %1$s come indirizzo per questa stanza.</item>
|
||||
<item quantity="other">Hai aggiunto %1$s come indirizzi per questa stanza.</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed_by_you">
|
||||
<item quantity="one">Hai rimosso %1$s come indirizzo per questa stanza.</item>
|
||||
<item quantity="other">Hai rimosso %2$s come indirizzi per questa stanza.</item>
|
||||
</plurals>
|
||||
|
||||
<string name="notice_room_aliases_added_and_removed_by_you">Hai aggiunto %1$s e rimosso %2$s come indirizzi per questa stanza.</string>
|
||||
|
||||
<string name="notice_room_canonical_alias_set_by_you">Hai impostato l\'indirizzo principale per questa stanza a %1$s.</string>
|
||||
<string name="notice_room_canonical_alias_unset_by_you">Hai rimosso l\'indirizzo principale per questa stanza.</string>
|
||||
|
||||
<string name="notice_room_guest_access_can_join_by_you">Hai permesso l\'accesso alla stanza per gli ospiti.</string>
|
||||
<string name="notice_room_guest_access_forbidden_by_you">Hai impedito l\'accesso alla stanza per gli ospiti.</string>
|
||||
|
||||
<string name="notice_end_to_end_ok_by_you">Hai attivato la crittografia end-to-end.</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm_by_you">Hai attivato la crittografia end-to-end (algoritmo %1$s sconosciuto).</string>
|
||||
|
||||
<string name="call_notification_answer">Accetta</string>
|
||||
<string name="call_notification_reject">Rifiuta</string>
|
||||
<string name="call_notification_hangup">Riaggancia</string>
|
||||
|
||||
</resources>
|
||||
|
@ -2,52 +2,52 @@
|
||||
<resources>
|
||||
|
||||
<string name="summary_message">%1$s: %2$s</string>
|
||||
<string name="summary_user_sent_image">%1$s enviou uma imagem.</string>
|
||||
<string name="summary_user_sent_image">%1$s enviou uma foto.</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee">convite de %s</string>
|
||||
<string name="notice_room_invite">%1$s convidou %2$s</string>
|
||||
<string name="notice_room_invite_you">%1$s convidou você</string>
|
||||
<string name="notice_room_join">%1$s entrou</string>
|
||||
<string name="notice_room_leave">%1$s saiu</string>
|
||||
<string name="notice_room_join">%1$s entrou na sala</string>
|
||||
<string name="notice_room_leave">%1$s saiu da sala</string>
|
||||
<string name="notice_room_reject">%1$s recusou o convite</string>
|
||||
<string name="notice_room_kick">%1$s expulsou %2$s</string>
|
||||
<string name="notice_room_unban">%1$s des-baniu %2$s</string>
|
||||
<string name="notice_room_kick">%1$s removeu %2$s</string>
|
||||
<string name="notice_room_unban">%1$s removeu o banimento de %2$s</string>
|
||||
<string name="notice_room_ban">%1$s baniu %2$s</string>
|
||||
<string name="notice_room_withdraw">%1$s cancelou o convite de %2$s</string>
|
||||
<string name="notice_avatar_url_changed">%1$s mudou seu avatar</string>
|
||||
<string name="notice_display_name_set">%1$s definiu seu nome público como %2$s</string>
|
||||
<string name="notice_display_name_changed_from">%1$s alterou seu nome públido de %2$s para %3$s</string>
|
||||
<string name="notice_display_name_removed">%1$s apagou seu nome público (%2$s)</string>
|
||||
<string name="notice_room_topic_changed">%1$s alterou o tópico desta sala para: %2$s</string>
|
||||
<string name="notice_room_name_changed">%1$s alterou o nome desta sala para: %2$s</string>
|
||||
<string name="notice_room_withdraw">%1$s desfez o convite a %2$s</string>
|
||||
<string name="notice_avatar_url_changed">%1$s alterou a foto de perfil</string>
|
||||
<string name="notice_display_name_set">%1$s definiu o nome e sobrenome como %2$s</string>
|
||||
<string name="notice_display_name_changed_from">%1$s alterou o nome e sobrenome de %2$s para %3$s</string>
|
||||
<string name="notice_display_name_removed">%1$s removeu o nome e sobrenome (era %2$s)</string>
|
||||
<string name="notice_room_topic_changed">%1$s alterou a descrição para: %2$s</string>
|
||||
<string name="notice_room_name_changed">%1$s alterou o nome da sala para: %2$s</string>
|
||||
<string name="notice_placed_video_call">%s iniciou uma chamada de vídeo.</string>
|
||||
<string name="notice_placed_voice_call">%s iniciou uma chamada de voz.</string>
|
||||
<string name="notice_answered_call">%s respondeu à chamada.</string>
|
||||
<string name="notice_answered_call">%s aceitou a chamada.</string>
|
||||
<string name="notice_ended_call">%s encerrou a chamada.</string>
|
||||
<string name="notice_made_future_room_visibility">%1$s deixou o histórico futuro desta sala visível para %2$s</string>
|
||||
<string name="notice_room_visibility_invited">todas as pessoas que integram esta sala, a partir do momento em que foram convidadas.</string>
|
||||
<string name="notice_room_visibility_joined">todas as pessoas que integram esta sala, a partir do momento em que entraram.</string>
|
||||
<string name="notice_room_visibility_shared">todas as pessoas que integram esta sala.</string>
|
||||
<string name="notice_made_future_room_visibility">%1$s deixou o histórico futuro da sala visível para %2$s</string>
|
||||
<string name="notice_room_visibility_invited">todos os membros da sala, a partir do momento em que foram convidados.</string>
|
||||
<string name="notice_room_visibility_joined">todos os membros da sala, a partir do momento em que entraram nela.</string>
|
||||
<string name="notice_room_visibility_shared">todos os membros da sala.</string>
|
||||
<string name="notice_room_visibility_world_readable">qualquer pessoa.</string>
|
||||
<string name="notice_room_visibility_unknown">desconhedido (%s).</string>
|
||||
<string name="notice_end_to_end">%1$s ativou a criptografia ponta-a-ponta (%2$s)</string>
|
||||
<string name="notice_room_visibility_unknown">desconhecido (%s).</string>
|
||||
<string name="notice_end_to_end">%1$s ativou a criptografia de ponta a ponta (%2$s)</string>
|
||||
|
||||
<string name="notice_requested_voip_conference">%1$s solicitou uma conferência VoIP</string>
|
||||
<string name="notice_voip_started">A conferência VoIP começou</string>
|
||||
<string name="notice_voip_finished">A conferência VoIP terminou</string>
|
||||
<string name="notice_requested_voip_conference">%1$s deseja iniciar uma chamada em grupo</string>
|
||||
<string name="notice_voip_started">Chamada em grupo iniciada</string>
|
||||
<string name="notice_voip_finished">Chamada em grupo encerrada</string>
|
||||
|
||||
<string name="notice_avatar_changed_too">(o avatar também foi alterado)</string>
|
||||
<string name="notice_room_name_removed">%1$s apagou o nome da sala</string>
|
||||
<string name="notice_room_topic_removed">%1$s apagou o tópico da sala</string>
|
||||
<string name="notice_profile_change_redacted">%1$s atualizou o seu perfil %2$s</string>
|
||||
<string name="notice_room_third_party_invite">%1$s enviou um convite para que %2$s se junte à sala</string>
|
||||
<string name="notice_avatar_changed_too">(a foto de perfil também foi alterada)</string>
|
||||
<string name="notice_room_name_removed">%1$s removeu o nome da sala</string>
|
||||
<string name="notice_room_topic_removed">%1$s removeu a descrição da sala</string>
|
||||
<string name="notice_profile_change_redacted">%1$s atualizou o perfil %2$s</string>
|
||||
<string name="notice_room_third_party_invite">%1$s enviou um convite para %2$s entrar na sala</string>
|
||||
<string name="notice_room_third_party_registered_invite">%1$s aceitou o convite para %2$s</string>
|
||||
|
||||
<string name="notice_crypto_unable_to_decrypt">** Impossível descriptografar: %s **</string>
|
||||
<string name="notice_crypto_error_unkwown_inbound_session_id">O dispositivo de quem enviou a mensagem não nos enviou as chaves para esta mensagem.</string>
|
||||
<string name="notice_crypto_unable_to_decrypt">** Não foi possível descriptografar: %s **</string>
|
||||
<string name="notice_crypto_error_unkwown_inbound_session_id">O aparelho do remetente não nos enviou as chaves para esta mensagem.</string>
|
||||
|
||||
<!-- Room Screen -->
|
||||
<string name="could_not_redact">Não foi possível apagar</string>
|
||||
<string name="could_not_redact">Não foi possível redigir</string>
|
||||
<string name="unable_to_send_message">Não foi possível enviar a mensagem</string>
|
||||
|
||||
<string name="message_failed_to_upload">O envio da imagem falhou</string>
|
||||
@ -63,16 +63,16 @@
|
||||
<!-- call events -->
|
||||
|
||||
<!-- room error messages -->
|
||||
<string name="room_error_join_failed_empty_room">Ainda não é possível voltar a entrar em uma sala vazia.</string>
|
||||
<string name="room_error_join_failed_empty_room">Atualmente, não é possível entrar novamente em uma sala vazia.</string>
|
||||
|
||||
<string name="encrypted_message">Mensagem criptografada</string>
|
||||
|
||||
<!-- medium friendly name -->
|
||||
<string name="medium_email">Endereço de email</string>
|
||||
<string name="medium_email">Endereço de e-mail</string>
|
||||
<string name="medium_phone_number">Número de telefone</string>
|
||||
|
||||
|
||||
<string name="summary_user_sent_sticker">%1$s enviou um sticker.</string>
|
||||
<string name="summary_user_sent_sticker">%1$s enviou uma figurinha.</string>
|
||||
|
||||
<!-- Room display name -->
|
||||
<string name="room_displayname_invite_from">Convite de %s</string>
|
||||
@ -81,9 +81,229 @@
|
||||
<string name="room_displayname_empty_room">Sala vazia</string>
|
||||
|
||||
<plurals name="room_displayname_three_and_more_members">
|
||||
<item quantity="one">%1$s e 1 outra/o</item>
|
||||
<item quantity="other">%1$s e %2$d outras/os</item>
|
||||
<item quantity="one">%1$s e 1 outro</item>
|
||||
<item quantity="other">%1$s e %2$d outros</item>
|
||||
</plurals>
|
||||
|
||||
|
||||
<string name="summary_you_sent_image">Você enviou uma foto.</string>
|
||||
<string name="summary_you_sent_sticker">Você enviou uma figurinha.</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_by_you">Seu convite</string>
|
||||
<string name="notice_room_created">%1$s criou a sala</string>
|
||||
<string name="notice_room_created_by_you">Você criou a sala</string>
|
||||
<string name="notice_room_invite_by_you">Você convidou %1$s</string>
|
||||
<string name="notice_room_join_by_you">Você entrou na sala</string>
|
||||
<string name="notice_room_leave_by_you">Você saiu da sala</string>
|
||||
<string name="notice_room_reject_by_you">Você recusou o convite</string>
|
||||
<string name="notice_room_kick_by_you">Você removeu %1$s</string>
|
||||
<string name="notice_room_unban_by_you">Você removeu o banimento de %1$s</string>
|
||||
<string name="notice_room_ban_by_you">Você baniu %1$s</string>
|
||||
<string name="notice_room_withdraw_by_you">Você desfez o convite a %1$s</string>
|
||||
<string name="notice_avatar_url_changed_by_you">Você alterou a sua foto de perfil</string>
|
||||
<string name="notice_display_name_set_by_you">Você definiu o seu nome e sobrenome como %1$s</string>
|
||||
<string name="notice_display_name_changed_from_by_you">Você alterou o seu nome e sobrenome de %1$s para %2$s</string>
|
||||
<string name="notice_display_name_removed_by_you">Você removeu o seu nome e sobrenome (era %1$s)</string>
|
||||
<string name="notice_room_topic_changed_by_you">Você alterou a descrição para: %1$s</string>
|
||||
<string name="notice_room_avatar_changed">%1$s alterou a foto da sala</string>
|
||||
<string name="notice_room_avatar_changed_by_you">Você alterou a foto da sala</string>
|
||||
<string name="notice_room_name_changed_by_you">Você alterou o nome da sala para: %1$s</string>
|
||||
<string name="notice_placed_video_call_by_you">Você iniciou uma chamada de vídeo.</string>
|
||||
<string name="notice_placed_voice_call_by_you">Você iniciou uma chamada de voz.</string>
|
||||
<string name="notice_call_candidates">%s enviou dados para configurar a chamada.</string>
|
||||
<string name="notice_call_candidates_by_you">Você enviou dados para configurar a chamada.</string>
|
||||
<string name="notice_answered_call_by_you">Você aceitou a chamada.</string>
|
||||
<string name="notice_ended_call_by_you">Você encerrou a chamada.</string>
|
||||
<string name="notice_made_future_room_visibility_by_you">Você deixou o histórico futuro da sala visível para %1$s</string>
|
||||
<string name="notice_end_to_end_by_you">Você ativou a criptografia de ponta a ponta (%1$s)</string>
|
||||
<string name="notice_room_update">%s atualizou esta sala.</string>
|
||||
<string name="notice_room_update_by_you">Você atualizou esta sala.</string>
|
||||
|
||||
<string name="notice_requested_voip_conference_by_you">Você solicitou uma chamada em grupo</string>
|
||||
<string name="notice_room_name_removed_by_you">Você removeu o nome da sala</string>
|
||||
<string name="notice_room_topic_removed_by_you">Você removeu a descrição da sala</string>
|
||||
<string name="notice_room_avatar_removed">%1$s removeu a foto da sala</string>
|
||||
<string name="notice_room_avatar_removed_by_you">Você removeu a foto da sala</string>
|
||||
<string name="notice_event_redacted">Mensagem removida</string>
|
||||
<string name="notice_event_redacted_by">Mensagem removida por %1$s</string>
|
||||
<string name="notice_event_redacted_with_reason">Mensagem removida [motivo: %1$s]</string>
|
||||
<string name="notice_event_redacted_by_with_reason">Mensagem removida por %1$s [motivo: %2$s]</string>
|
||||
<string name="notice_profile_change_redacted_by_you">Você atualizou o seu perfil %1$s</string>
|
||||
<string name="notice_room_third_party_invite_by_you">Você enviou um convite para %1$s entrar na sala</string>
|
||||
<string name="notice_room_third_party_revoked_invite">%1$s cancelou o convite a %2$s para entrar na sala</string>
|
||||
<string name="notice_room_third_party_revoked_invite_by_you">Você cancelou o convite a %1$s para entrar na sala</string>
|
||||
<string name="notice_room_third_party_registered_invite_by_you">Você aceitou o convite para %1$s</string>
|
||||
|
||||
<string name="notice_widget_added">%1$s adicionou o widget %2$s</string>
|
||||
<string name="notice_widget_added_by_you">Você adicionou o widget %1$s</string>
|
||||
<string name="notice_widget_removed">%1$s removeu o widget %2$s</string>
|
||||
<string name="notice_widget_removed_by_you">Você removeu o widget %1$s</string>
|
||||
<string name="notice_widget_modified">%1$s editou o widget %2$s</string>
|
||||
<string name="notice_widget_modified_by_you">Você editou o widget %1$s</string>
|
||||
|
||||
<string name="power_level_admin">Administrador</string>
|
||||
<string name="power_level_moderator">Moderador</string>
|
||||
<string name="power_level_default">Padrão</string>
|
||||
<string name="power_level_custom">Personalizado (%1$d)</string>
|
||||
<string name="power_level_custom_no_value">Personalizado</string>
|
||||
|
||||
<string name="notice_power_level_changed_by_you">Você alterou o nível de permissão de %1$s.</string>
|
||||
<string name="notice_power_level_changed">%1$s alterou o nível de permissão de %2$s.</string>
|
||||
<string name="notice_power_level_diff">%1$s de %2$s para %3$s</string>
|
||||
|
||||
<string name="verification_emoji_dog">Cachorro</string>
|
||||
<string name="verification_emoji_cat">Gato</string>
|
||||
<string name="verification_emoji_lion">Leão</string>
|
||||
<string name="verification_emoji_horse">Cavalo</string>
|
||||
<string name="verification_emoji_unicorn">Unicórnio</string>
|
||||
<string name="verification_emoji_pig">Porco</string>
|
||||
<string name="verification_emoji_elephant">Elefante</string>
|
||||
<string name="verification_emoji_rabbit">Coelho</string>
|
||||
<string name="verification_emoji_panda">Panda</string>
|
||||
<string name="verification_emoji_rooster">Galo</string>
|
||||
<string name="verification_emoji_penguin">Pinguim</string>
|
||||
<string name="verification_emoji_turtle">Tartaruga</string>
|
||||
<string name="verification_emoji_fish">Peixe</string>
|
||||
<string name="verification_emoji_octopus">Polvo</string>
|
||||
<string name="verification_emoji_butterfly">Borboleta</string>
|
||||
<string name="verification_emoji_flower">Flor</string>
|
||||
<string name="verification_emoji_tree">Árvore</string>
|
||||
<string name="verification_emoji_cactus">Cacto</string>
|
||||
<string name="verification_emoji_mushroom">Cogumelo</string>
|
||||
<string name="verification_emoji_globe">Globo</string>
|
||||
<string name="verification_emoji_moon">Lua</string>
|
||||
<string name="verification_emoji_cloud">Nuvem</string>
|
||||
<string name="verification_emoji_fire">Fogo</string>
|
||||
<string name="verification_emoji_banana">Banana</string>
|
||||
<string name="verification_emoji_apple">Maçã</string>
|
||||
<string name="verification_emoji_strawberry">Morango</string>
|
||||
<string name="verification_emoji_corn">Milho</string>
|
||||
<string name="verification_emoji_pizza">Pizza</string>
|
||||
<string name="verification_emoji_cake">Bolo</string>
|
||||
<string name="verification_emoji_heart">Coração</string>
|
||||
<string name="verification_emoji_smiley">Sorriso</string>
|
||||
<string name="verification_emoji_robot">Robô</string>
|
||||
<string name="verification_emoji_hat">Chapéu</string>
|
||||
<string name="verification_emoji_glasses">Óculos</string>
|
||||
<string name="verification_emoji_wrench">Chave inglesa</string>
|
||||
<string name="verification_emoji_santa">Papai-noel</string>
|
||||
<string name="verification_emoji_thumbsup">Joinha</string>
|
||||
<string name="verification_emoji_umbrella">Guarda-chuva</string>
|
||||
<string name="verification_emoji_hourglass">Ampulheta</string>
|
||||
<string name="verification_emoji_clock">Relógio</string>
|
||||
<string name="verification_emoji_gift">Presente</string>
|
||||
<string name="verification_emoji_lightbulb">Lâmpada</string>
|
||||
<string name="verification_emoji_book">Livro</string>
|
||||
<string name="verification_emoji_pencil">Lápis</string>
|
||||
<string name="verification_emoji_paperclip">Clipe de papel</string>
|
||||
<string name="verification_emoji_scissors">Tesoura</string>
|
||||
<string name="verification_emoji_lock">Cadeado</string>
|
||||
<string name="verification_emoji_key">Chave</string>
|
||||
<string name="verification_emoji_hammer">Martelo</string>
|
||||
<string name="verification_emoji_telephone">Telefone</string>
|
||||
<string name="verification_emoji_flag">Bandeira</string>
|
||||
<string name="verification_emoji_train">Trem</string>
|
||||
<string name="verification_emoji_bicycle">Bicicleta</string>
|
||||
<string name="verification_emoji_airplane">Avião</string>
|
||||
<string name="verification_emoji_rocket">Foguete</string>
|
||||
<string name="verification_emoji_trophy">Troféu</string>
|
||||
<string name="verification_emoji_ball">Bola</string>
|
||||
<string name="verification_emoji_guitar">Guitarra</string>
|
||||
<string name="verification_emoji_trumpet">Trombeta</string>
|
||||
<string name="verification_emoji_bell">Sino</string>
|
||||
<string name="verification_emoji_anchor">Âncora</string>
|
||||
<string name="verification_emoji_headphone">Fones de ouvido</string>
|
||||
<string name="verification_emoji_folder">Pasta</string>
|
||||
<string name="verification_emoji_pin">Alfinete</string>
|
||||
|
||||
<string name="initial_sync_start_importing_account">Primeira sincronização:↵
|
||||
\nImportando a conta…</string>
|
||||
<string name="initial_sync_start_importing_account_crypto">Primeira sincronização:↵
|
||||
\nImportando as chaves de criptografia</string>
|
||||
<string name="initial_sync_start_importing_account_rooms">Primeira sincronização:↵
|
||||
\nImportando as salas</string>
|
||||
<string name="initial_sync_start_importing_account_joined_rooms">Primeira sincronização:↵
|
||||
\nImportando as salas em que você entrou</string>
|
||||
<string name="initial_sync_start_importing_account_invited_rooms">Primeira sincronização:↵
|
||||
\nImportando as salas em que você foi convidado</string>
|
||||
<string name="initial_sync_start_importing_account_left_rooms">Primeira sincronização:↵
|
||||
\nImportando as salas em que você saiu</string>
|
||||
<string name="initial_sync_start_importing_account_groups">Primeira sincronização:↵
|
||||
\nImportando as comunidades</string>
|
||||
<string name="initial_sync_start_importing_account_data">Primeira sincronização:↵
|
||||
\nImportando os dados da conta</string>
|
||||
|
||||
<string name="event_status_sending_message">Enviando mensagem…</string>
|
||||
<string name="clear_timeline_send_queue">Limpar a fila de envio</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_with_reason">Convite de %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_invite_no_invitee_with_reason_by_you">O seu convite. Motivo: %1$s</string>
|
||||
<string name="notice_room_invite_with_reason">%1$s convidou %2$s. Motivo: %3$s</string>
|
||||
<string name="notice_room_invite_with_reason_by_you">Você convidou %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_invite_you_with_reason">%1$s convidou você. Motivo: %2$s</string>
|
||||
<string name="notice_room_join_with_reason">%1$s entrou na sala. Motivo: %2$s</string>
|
||||
<string name="notice_room_join_with_reason_by_you">Você entrou na sala. Motivo: %1$s</string>
|
||||
<string name="notice_room_leave_with_reason">%1$s saiu da sala. Motivo: %2$s</string>
|
||||
<string name="notice_room_leave_with_reason_by_you">Você saiu da sala. Motivo: %1$s</string>
|
||||
<string name="notice_room_reject_with_reason">%1$s recusou o convite. Motivo: %2$s</string>
|
||||
<string name="notice_room_reject_with_reason_by_you">Você recusou o convite. Motivo: %1$s</string>
|
||||
<string name="notice_room_kick_with_reason">%1$s removeu %2$s. Motivo: %3$s</string>
|
||||
<string name="notice_room_kick_with_reason_by_you">Você removeu %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_unban_with_reason">%1$s removeu o banimento de %2$s. Motivo: %3$s</string>
|
||||
<string name="notice_room_unban_with_reason_by_you">Você removeu o banimento de %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_ban_with_reason">%1$s baniu %2$s. Motivo: %3$s</string>
|
||||
<string name="notice_room_ban_with_reason_by_you">Você baniu %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason">%1$s enviou um convite para %2$s entrar na sala. Motivo: %3$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason_by_you">Você enviou um convite para %1$s entrar na sala. Motivo: %2$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason">%1$s revogou o convite para %2$s entrar na sala. Motivo: %3$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason_by_you">Você revogou o convite para %1$s entrar na sala. Motivo: %2$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason">%1$s aceitou o convite para %2$s. Motivo: %3$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason_by_you">Você aceitou o convite para %1$s. Motivo: %2$s</string>
|
||||
<string name="notice_room_withdraw_with_reason">%1$s desfez o convite de %2$s. Motivo: %3$s</string>
|
||||
<string name="notice_room_withdraw_with_reason_by_you">Você desfez o convite de %1$s. Motivo: %2$s</string>
|
||||
|
||||
<plurals name="notice_room_aliases_added">
|
||||
<item quantity="one">%1$s adicionou %2$s como um endereço desta sala.</item>
|
||||
<item quantity="other">%1$s adicionou %2$s como endereços desta sala.</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_added_by_you">
|
||||
<item quantity="one">Você adicionou %1$s como um endereço desta sala.</item>
|
||||
<item quantity="other">Você adicionou %1$s como endereços desta sala.</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed">
|
||||
<item quantity="one">%1$s removeu %2$s como um endereço desta sala.</item>
|
||||
<item quantity="other">%1$s removeu %3$s como endereços desta sala.</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed_by_you">
|
||||
<item quantity="one">Você removeu %1$s como um endereço desta sala.</item>
|
||||
<item quantity="other">Você removeu %2$s como endereços desta sala.</item>
|
||||
</plurals>
|
||||
|
||||
<string name="notice_room_aliases_added_and_removed">%1$s adicionou %2$s e removeu %3$s como endereços desta sala.</string>
|
||||
<string name="notice_room_aliases_added_and_removed_by_you">Você adicionou %1$s e removeu %2$s como endereços desta sala.</string>
|
||||
|
||||
<string name="notice_room_canonical_alias_set">%1$s definiu o endereço principal desta sala como %2$s.</string>
|
||||
<string name="notice_room_canonical_alias_set_by_you">Você definiu o endereço principal desta sala como %1$s.</string>
|
||||
<string name="notice_room_canonical_alias_unset">%1$s removeu o endereço principal desta sala.</string>
|
||||
<string name="notice_room_canonical_alias_unset_by_you">Você removeu o endereço principal desta sala.</string>
|
||||
|
||||
<string name="notice_room_guest_access_can_join">%1$s permitiu que convidados entrem na sala.</string>
|
||||
<string name="notice_room_guest_access_can_join_by_you">Você permitiu que convidados entrem na sala.</string>
|
||||
<string name="notice_room_guest_access_forbidden">%1$s impediu que convidados entrem na sala.</string>
|
||||
<string name="notice_room_guest_access_forbidden_by_you">Você impediu que convidados entrem na sala.</string>
|
||||
|
||||
<string name="notice_end_to_end_ok">%1$s ativou a criptografia de ponta a ponta.</string>
|
||||
<string name="notice_end_to_end_ok_by_you">Você ativou a criptografia de ponta a ponta.</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm">%1$s ativou a criptografia de ponta a ponta (algoritmo não reconhecido %2$s).</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm_by_you">Você ativou a criptografia de ponta a ponta (algoritmo não reconhecido %1$s).</string>
|
||||
|
||||
<string name="key_verification_request_fallback_message">%s deseja verificar a sua chave, mas o seu aplicativo não suporta a verificação da chave da conversa. Você precisará usar a verificação tradicional de chaves para verificar chaves.</string>
|
||||
|
||||
<string name="call_notification_answer">Aceitar</string>
|
||||
<string name="call_notification_reject">Recusar</string>
|
||||
<string name="call_notification_hangup">Encerrar</string>
|
||||
|
||||
</resources>
|
||||
|
@ -195,9 +195,9 @@
|
||||
|
||||
<string name="notice_room_created">%1$s создал(а) комнату</string>
|
||||
<plurals name="notice_room_aliases_added">
|
||||
<item quantity="one">%1$s добавил(а) адрес %2$s для комнаты.</item>
|
||||
<item quantity="few">%1$s добавил(а) адреса %2$s для комнаты.</item>
|
||||
<item quantity="many">%1$s добавил(а) адреса %2$s для комнаты.</item>
|
||||
<item quantity="one">%1$s добавил(а) %2$s в качестве адреса для этой комнаты.</item>
|
||||
<item quantity="few">%1$s добавил(а) %2$s в качестве адресов для этой комнаты.</item>
|
||||
<item quantity="many">%1$s добавил(а) %2$s в качестве адресов для этой комнаты.</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed">
|
||||
@ -307,4 +307,14 @@
|
||||
<string name="notice_end_to_end_ok_by_you">Вы включили сквозное шифрование.</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm_by_you">Вы включили сквозное шифрование (неизвестный алгоритм %1$s).</string>
|
||||
|
||||
<string name="notice_room_avatar_changed">%1$s изменил(а) аватар комнаты</string>
|
||||
<string name="notice_room_avatar_changed_by_you">Вы изменили аватар комнаты</string>
|
||||
<string name="notice_call_candidates">%s отправил(а) данные для начала звонка.</string>
|
||||
<string name="notice_call_candidates_by_you">Вы отправили данные для начала звонка.</string>
|
||||
<string name="notice_room_avatar_removed">%1$s удалил(а) аватар комнаты</string>
|
||||
<string name="notice_room_avatar_removed_by_you">Вы удалили аватар комнаты</string>
|
||||
<string name="call_notification_answer">Принять</string>
|
||||
<string name="call_notification_reject">Отклонить</string>
|
||||
<string name="call_notification_hangup">Завершить звонок</string>
|
||||
|
||||
</resources>
|
||||
|
@ -13,7 +13,7 @@
|
||||
<string name="notice_room_ban">%1$s 封禁了 %2$s</string>
|
||||
<string name="notice_avatar_url_changed">%1$s 更换了他们的头像</string>
|
||||
<string name="notice_display_name_set">%1$s 将他们的昵称设置为 %2$s</string>
|
||||
<string name="notice_display_name_changed_from">%1$s 把他的昵称从 %2$s 改为 %3$s</string>
|
||||
<string name="notice_display_name_changed_from">%1$s 把他们的昵称从 %2$s 改为 %3$s</string>
|
||||
<string name="notice_display_name_removed">%1$s 移除了他们的昵称 (%2$s)</string>
|
||||
<string name="notice_room_topic_changed">%1$s 把主题改为: %2$s</string>
|
||||
<string name="notice_room_name_changed">%1$s 把聊天室名称改为: %2$s</string>
|
||||
@ -26,7 +26,7 @@
|
||||
<string name="notice_room_visibility_shared">所有聊天室成员。</string>
|
||||
<string name="notice_room_visibility_world_readable">任何人。</string>
|
||||
<string name="notice_room_visibility_unknown">未知(%s)。</string>
|
||||
<string name="notice_end_to_end">%1$s 开启了端对端加密(%2$s)</string>
|
||||
<string name="notice_end_to_end">%1$s 开启了端到端加密(%2$s)</string>
|
||||
|
||||
<string name="notice_requested_voip_conference">%1$s 请求了一次 VoIP 会议</string>
|
||||
<string name="notice_voip_started">VoIP 会议已开始</string>
|
||||
@ -52,9 +52,9 @@
|
||||
<string name="medium_email">电子邮箱地址</string>
|
||||
<string name="medium_phone_number">手机号码</string>
|
||||
|
||||
<string name="notice_room_withdraw">%1$s 撤销了对 %2$s 的邀请</string>
|
||||
<string name="notice_made_future_room_visibility">%1$s 让之后的聊天室历史记录对 %2$s 可见</string>
|
||||
<string name="notice_profile_change_redacted">%1$s 更新了他们的简介 %2$s</string>
|
||||
<string name="notice_room_withdraw">%1$s 撤回了对 %2$s 的邀请</string>
|
||||
<string name="notice_made_future_room_visibility">%1$s 让未来的聊天室历史记录对 %2$s 可见</string>
|
||||
<string name="notice_profile_change_redacted">%1$s 更新了他的个人档案 %2$s</string>
|
||||
<string name="notice_room_third_party_invite">%1$s 向 %2$s 发送了加入聊天室的邀请</string>
|
||||
<string name="notice_room_third_party_registered_invite">%1$s 接受了 %2$s 的邀请</string>
|
||||
|
||||
@ -155,12 +155,12 @@
|
||||
<string name="initial_sync_start_importing_account_data">初始化同步:
|
||||
\n正在导入账号数据</string>
|
||||
|
||||
<string name="notice_room_update">%s 升级了聊天室。</string>
|
||||
<string name="notice_room_update">%s 升级了此聊天室。</string>
|
||||
|
||||
<string name="event_status_sending_message">正在发送消息…</string>
|
||||
<string name="clear_timeline_send_queue">清除正在发送队列</string>
|
||||
|
||||
<string name="notice_room_third_party_revoked_invite">%1$s 撤回了对 %2$s 邀请</string>
|
||||
<string name="notice_room_third_party_revoked_invite">%1$s 撤回了对 %2$s 加入聊天室的邀请</string>
|
||||
<string name="verification_emoji_pin">置顶</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_with_reason">%1$s 的邀请。理由:%2$s</string>
|
||||
@ -170,8 +170,8 @@
|
||||
<string name="notice_room_leave_with_reason">%1$s 离开了聊天室。理由:%2$s</string>
|
||||
<string name="notice_room_reject_with_reason">%1$s 已拒绝邀请。理由:%2$s</string>
|
||||
<string name="notice_room_kick_with_reason">%1$s 踢走了 %2$s。理由:%3$s</string>
|
||||
<string name="notice_room_unban_with_reason">%1$s 取消封锁了 %2$s。理由:%3$s</string>
|
||||
<string name="notice_room_ban_with_reason">%1$s 封锁了 %2$s。理由:%3$s</string>
|
||||
<string name="notice_room_unban_with_reason">%1$s 解封了 %2$s。理由:%3$s</string>
|
||||
<string name="notice_room_ban_with_reason">%1$s 封禁了 %2$s。理由:%3$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason">%1$s 已发送邀请给 %2$s 来加入聊天室。理由:%3$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason">%1$s 撤销了 %2$s 加入聊天室的邀請。理由:%3$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason">%1$s 接受 %2$s 的邀請。理由:%3$s</string>
|
||||
@ -185,10 +185,10 @@
|
||||
<item quantity="other">%1$s 移除了此聊天室的 %3$s 地址。</item>
|
||||
</plurals>
|
||||
|
||||
<string name="notice_room_aliases_added_and_removed">%1$s 为此聊天室新增 %2$s 并移除 %3$s 地址。</string>
|
||||
<string name="notice_room_aliases_added_and_removed">%1$s 为此聊天室新增了 %2$s 并移除 %3$s 地址。</string>
|
||||
|
||||
<string name="notice_room_canonical_alias_set">%1$s 为此聊天室设定了 %2$s 为主地址。</string>
|
||||
<string name="notice_room_canonical_alias_unset">%1$s 为此聊天室移除了主要地址。</string>
|
||||
<string name="notice_room_canonical_alias_set">%1$s 将此聊天室的主地址设为了 %2$s。</string>
|
||||
<string name="notice_room_canonical_alias_unset">%1$s 为此聊天室移除了主地址。</string>
|
||||
|
||||
<string name="notice_room_guest_access_can_join">%1$s 已允许访客加入聊天室。</string>
|
||||
<string name="notice_room_guest_access_forbidden">%1$s 已禁止访客加入聊天室。</string>
|
||||
@ -198,5 +198,99 @@
|
||||
|
||||
<string name="key_verification_request_fallback_message">%s 正在请求验证您的密钥,但您的客户端不支援聊天中密钥验证。 您将必须使用旧版的密钥验证来验证金钥。</string>
|
||||
|
||||
<string name="notice_room_created">%1$s 创建了这个房间</string>
|
||||
<string name="notice_room_created">%1$s 创建了这个聊天室</string>
|
||||
<string name="summary_you_sent_image">您发送了一张图片。</string>
|
||||
<string name="summary_you_sent_sticker">您发送了一张贴纸。</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_by_you">您的邀请</string>
|
||||
<string name="notice_room_created_by_you">您创建了这个聊天室</string>
|
||||
<string name="notice_room_invite_by_you">您邀请了 %1$s</string>
|
||||
<string name="notice_room_join_by_you">您加入了聊天室</string>
|
||||
<string name="notice_room_leave_by_you">您离开了聊天室</string>
|
||||
<string name="notice_room_reject_by_you">您拒绝了邀请</string>
|
||||
<string name="notice_room_kick_by_you">您移除了 %1$s</string>
|
||||
<string name="notice_room_unban_by_you">您解封了 %1$s</string>
|
||||
<string name="notice_room_ban_by_you">您封禁了 %1$s</string>
|
||||
<string name="notice_room_withdraw_by_you">您撤回了对 %1$s 的邀请</string>
|
||||
<string name="notice_avatar_url_changed_by_you">您更换了您的头像</string>
|
||||
<string name="notice_display_name_set_by_you">您将您的昵称设置为 %1$s</string>
|
||||
<string name="notice_display_name_changed_from_by_you">您将您的昵称从 %1$s 改为 %2$s</string>
|
||||
<string name="notice_display_name_removed_by_you">您移除了您的昵称 (%1$s)</string>
|
||||
<string name="notice_room_topic_changed_by_you">您把主题改为:%1$s</string>
|
||||
<string name="notice_room_avatar_changed">%1$s 变更了聊天室头像</string>
|
||||
<string name="notice_room_avatar_changed_by_you">您变更了聊天室头像</string>
|
||||
<string name="notice_room_name_changed_by_you">您把聊天室名称改为:%1$s</string>
|
||||
<string name="notice_placed_video_call_by_you">您发起了一次视频通话。</string>
|
||||
<string name="notice_placed_voice_call_by_you">您发起了一次语音通话。</string>
|
||||
<string name="notice_call_candidates">%s 发送了数据以建立通话。</string>
|
||||
<string name="notice_call_candidates_by_you">您发送了数据以建立通话。</string>
|
||||
<string name="notice_answered_call_by_you">您接听了通话。</string>
|
||||
<string name="notice_ended_call_by_you">您结束了通话。</string>
|
||||
<string name="notice_made_future_room_visibility_by_you">您已让未来的聊天室记录对 %1$s 可见</string>
|
||||
<string name="notice_end_to_end_by_you">您开启了端到端加密(%1$s)</string>
|
||||
<string name="notice_room_update_by_you">您升级了此聊天室。</string>
|
||||
|
||||
<string name="notice_requested_voip_conference_by_you">您请求了 VoIP 会议</string>
|
||||
<string name="notice_room_name_removed_by_you">您移除了聊天室名称</string>
|
||||
<string name="notice_room_topic_removed_by_you">您移除了聊天室主题</string>
|
||||
<string name="notice_room_avatar_removed">%1$s 移除了聊天室头像</string>
|
||||
<string name="notice_room_avatar_removed_by_you">您移除了聊天室头像</string>
|
||||
<string name="notice_profile_change_redacted_by_you">您更新了您的个人档案 %1$s</string>
|
||||
<string name="notice_room_third_party_invite_by_you">您向 %1$s 发送了加入聊天室的邀请</string>
|
||||
<string name="notice_room_third_party_revoked_invite_by_you">您已撤回了对 %1$s 加入聊天室的邀请</string>
|
||||
<string name="notice_room_third_party_registered_invite_by_you">您接受了 %1$s 的邀请</string>
|
||||
|
||||
<string name="notice_widget_added">%1$s 添加了 %2$s 小部件</string>
|
||||
<string name="notice_widget_added_by_you">您添加了 %1$s 小部件</string>
|
||||
<string name="notice_widget_removed">%1$s 移除了 %2$s 小部件</string>
|
||||
<string name="notice_widget_removed_by_you">您移除了 %1$s 小部件</string>
|
||||
<string name="notice_widget_modified">%1$s 修改了 %2$s 小部件</string>
|
||||
<string name="notice_widget_modified_by_you">您修改了 %1$s 小部件</string>
|
||||
|
||||
<string name="power_level_admin">管理员</string>
|
||||
<string name="power_level_moderator">审核员</string>
|
||||
<string name="power_level_default">默认</string>
|
||||
<string name="power_level_custom">自定义(%1$d)</string>
|
||||
<string name="power_level_custom_no_value">自定义</string>
|
||||
|
||||
<string name="notice_power_level_changed_by_you">您更改了%1$s 的权力等级。</string>
|
||||
<string name="notice_power_level_changed">%1$s 更改了 %2$s 的权力等级。</string>
|
||||
<string name="notice_power_level_diff">%1$s 从 %2$s 到 %3$s</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_with_reason_by_you">您的邀请。理由:%1$s</string>
|
||||
<string name="notice_room_invite_with_reason_by_you">您邀请了 %1$s。理由:%2$s</string>
|
||||
<string name="notice_room_join_with_reason_by_you">您加入了聊天室。理由:%1$s</string>
|
||||
<string name="notice_room_leave_with_reason_by_you">您离开了聊天室。理由:%1$s</string>
|
||||
<string name="notice_room_reject_with_reason_by_you">您拒绝了邀请。理由:%1$s</string>
|
||||
<string name="notice_room_kick_with_reason_by_you">您踢走了 %1$s。理由:%2$s</string>
|
||||
<string name="notice_room_unban_with_reason_by_you">您解封了 %1$s。理由:%2$s</string>
|
||||
<string name="notice_room_ban_with_reason_by_you">您封禁了 %1$s。理由:%2$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason_by_you">您已发送邀请给 %1$s 来加入聊天室。理由:%2$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason_by_you">您撤销了 %1$s 加入聊天室的邀请。理由:%2$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason_by_you">您接受了 %1$s 的邀请。理由:%2$s</string>
|
||||
<string name="notice_room_withdraw_with_reason_by_you">您撤回了 %1$s 的邀请。理由:%2$s</string>
|
||||
|
||||
<plurals name="notice_room_aliases_added_by_you">
|
||||
<item quantity="other">您新增了 %1$s 为此聊天室的地址。</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed_by_you">
|
||||
<item quantity="other">您移除了此聊天室的 %2$s 地址。</item>
|
||||
</plurals>
|
||||
|
||||
<string name="notice_room_aliases_added_and_removed_by_you">您为此聊天室新增了 %1$s 并移除了 %2$s 地址。</string>
|
||||
|
||||
<string name="notice_room_canonical_alias_set_by_you">您将此聊天室的主地址设为了 %1$s。</string>
|
||||
<string name="notice_room_canonical_alias_unset_by_you">您移除了此聊天室的主地址。</string>
|
||||
|
||||
<string name="notice_room_guest_access_can_join_by_you">您已允许访客加入聊天室。</string>
|
||||
<string name="notice_room_guest_access_forbidden_by_you">您已禁止访客加入聊天室。</string>
|
||||
|
||||
<string name="notice_end_to_end_ok_by_you">您已开启端到端加密。</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm_by_you">您已开启端到端加密(无法识别的算法 %1$s)。</string>
|
||||
|
||||
<string name="call_notification_answer">接受</string>
|
||||
<string name="call_notification_reject">拒绝</string>
|
||||
<string name="call_notification_hangup">挂断</string>
|
||||
|
||||
</resources>
|
||||
|
@ -200,4 +200,98 @@
|
||||
<string name="key_verification_request_fallback_message">%s 正在請求驗證您的金鑰,但您的客戶端不支援聊天中金鑰驗證。您將必須使用舊版的金鑰驗證來驗證金鑰。</string>
|
||||
|
||||
<string name="notice_room_created">%1$s 建立了聊天室</string>
|
||||
<string name="summary_you_sent_image">您傳送了圖片。</string>
|
||||
<string name="summary_you_sent_sticker">您傳送了貼圖。</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_by_you">您的邀請</string>
|
||||
<string name="notice_room_created_by_you">您建立了聊天室</string>
|
||||
<string name="notice_room_invite_by_you">您邀請了 %1$s</string>
|
||||
<string name="notice_room_join_by_you">您加入了聊天室</string>
|
||||
<string name="notice_room_leave_by_you">您離開的聊天室</string>
|
||||
<string name="notice_room_reject_by_you">您回絕了邀請</string>
|
||||
<string name="notice_room_kick_by_you">您踢除了 %1$s</string>
|
||||
<string name="notice_room_unban_by_you">您取消封鎖了 %1$s</string>
|
||||
<string name="notice_room_ban_by_you">您封鎖了 %1$s</string>
|
||||
<string name="notice_room_withdraw_by_you">您撤銷了 %1$s 的邀請</string>
|
||||
<string name="notice_avatar_url_changed_by_you">您變更了您的大頭貼</string>
|
||||
<string name="notice_display_name_set_by_you">您將您的顯示名稱設定為 %1$s</string>
|
||||
<string name="notice_display_name_changed_from_by_you">您將您的顯示名稱從 %1$s 變更為 %2$s</string>
|
||||
<string name="notice_display_name_removed_by_you">您移除了您的顯示名稱(其曾為 %1$s)</string>
|
||||
<string name="notice_room_topic_changed_by_you">您將主題變更為:%1$s</string>
|
||||
<string name="notice_room_avatar_changed">%1$s 變更了聊天室大頭貼</string>
|
||||
<string name="notice_room_avatar_changed_by_you">您變更了聊天室大頭貼</string>
|
||||
<string name="notice_room_name_changed_by_you">您將聊天室名稱變更為:%1$s</string>
|
||||
<string name="notice_placed_video_call_by_you">您發起了視訊通話。</string>
|
||||
<string name="notice_placed_voice_call_by_you">您發起了音訊通話。</string>
|
||||
<string name="notice_call_candidates">%s 傳送了資料以建立通話。</string>
|
||||
<string name="notice_call_candidates_by_you">您傳送了資料以建立通話。</string>
|
||||
<string name="notice_answered_call_by_you">您接了通話。</string>
|
||||
<string name="notice_ended_call_by_you">您結束了通話。</string>
|
||||
<string name="notice_made_future_room_visibility_by_you">您已將未來的聊天室歷史設定為對 %1$s 可見</string>
|
||||
<string name="notice_end_to_end_by_you">您開啟了端到端加密 (%1$s)</string>
|
||||
<string name="notice_room_update_by_you">您升級了此聊天室。</string>
|
||||
|
||||
<string name="notice_requested_voip_conference_by_you">您請求了 VoIP 會議</string>
|
||||
<string name="notice_room_name_removed_by_you">您移除了聊天室名稱</string>
|
||||
<string name="notice_room_topic_removed_by_you">您移除了聊天室主題</string>
|
||||
<string name="notice_room_avatar_removed">%1$s 移除了聊天室大頭貼</string>
|
||||
<string name="notice_room_avatar_removed_by_you">您移除了聊天室大頭貼</string>
|
||||
<string name="notice_profile_change_redacted_by_you">您更新了您的個人檔案 %1$s</string>
|
||||
<string name="notice_room_third_party_invite_by_you">您傳送了邀請給 %1$s 以加入聊天室</string>
|
||||
<string name="notice_room_third_party_revoked_invite_by_you">您已撤銷對 %1$s 加入聊天室的邀請</string>
|
||||
<string name="notice_room_third_party_registered_invite_by_you">您接受了 %1$s 的邀請</string>
|
||||
|
||||
<string name="notice_widget_added">%1$s 新增了 %2$s 小工具</string>
|
||||
<string name="notice_widget_added_by_you">您新增了 %1$s 小工具</string>
|
||||
<string name="notice_widget_removed">%1$s 移除了 %2$s 小工具</string>
|
||||
<string name="notice_widget_removed_by_you">您移除了 %1$s 小工具</string>
|
||||
<string name="notice_widget_modified">%1$s 修改了 %2$s 小工具</string>
|
||||
<string name="notice_widget_modified_by_you">您修改了 %1$s 小工具</string>
|
||||
|
||||
<string name="power_level_admin">管理員</string>
|
||||
<string name="power_level_moderator">板主</string>
|
||||
<string name="power_level_default">預設</string>
|
||||
<string name="power_level_custom">自訂 (%1$d)</string>
|
||||
<string name="power_level_custom_no_value">自訂</string>
|
||||
|
||||
<string name="notice_power_level_changed_by_you">您變更了 %1$s 的權力等級。</string>
|
||||
<string name="notice_power_level_changed">%1$s 變更了 %2$s 的權力等級。</string>
|
||||
<string name="notice_power_level_diff">%1$s 從 %2$s 到 %3$s</string>
|
||||
|
||||
<string name="notice_room_invite_no_invitee_with_reason_by_you">您的邀請。理由:%1$s</string>
|
||||
<string name="notice_room_invite_with_reason_by_you">您邀請了 %1$s。理由:%2$s</string>
|
||||
<string name="notice_room_join_with_reason_by_you">您加入了聊天室。理由:%1$s</string>
|
||||
<string name="notice_room_leave_with_reason_by_you">您離開了聊天室。理由:%1$s</string>
|
||||
<string name="notice_room_reject_with_reason_by_you">您回絕了邀請。理由:%1$s</string>
|
||||
<string name="notice_room_kick_with_reason_by_you">您踢除了 %1$s。理由:%2$s</string>
|
||||
<string name="notice_room_unban_with_reason_by_you">您取消封鎖了 %1$s。理由:%2$s</string>
|
||||
<string name="notice_room_ban_with_reason_by_you">您封鎖了 %1$s。理由:%2$s</string>
|
||||
<string name="notice_room_third_party_invite_with_reason_by_you">您傳甕了邀請給 %1$s 以加入聊天室。理由:%2$s</string>
|
||||
<string name="notice_room_third_party_revoked_invite_with_reason_by_you">您撤銷了 %1$s 加入聊天室的邀請。理由:%2$s</string>
|
||||
<string name="notice_room_third_party_registered_invite_with_reason_by_you">您接受了 %1$s 的邀請。理由:%2$s</string>
|
||||
<string name="notice_room_withdraw_with_reason_by_you">您撤回了 %1$s 的邀請。理由:%2$s</string>
|
||||
|
||||
<plurals name="notice_room_aliases_added_by_you">
|
||||
<item quantity="other">您為此聊天室新增了 %1$s 作為地址。</item>
|
||||
</plurals>
|
||||
|
||||
<plurals name="notice_room_aliases_removed_by_you">
|
||||
<item quantity="other">您為此聊天室移除了 %2$s 作為地址。</item>
|
||||
</plurals>
|
||||
|
||||
<string name="notice_room_aliases_added_and_removed_by_you">您為此聊天室新增了 %1$s 並移除了 %2$s 作為地址。</string>
|
||||
|
||||
<string name="notice_room_canonical_alias_set_by_you">您將此聊天室的主要地址設定為 %1$s。</string>
|
||||
<string name="notice_room_canonical_alias_unset_by_you">您將此聊天室的主要地址移除。</string>
|
||||
|
||||
<string name="notice_room_guest_access_can_join_by_you">您已允許訪客加入聊天室。</string>
|
||||
<string name="notice_room_guest_access_forbidden_by_you">您已阻止訪客加入聊天室。</string>
|
||||
|
||||
<string name="notice_end_to_end_ok_by_you">您開啟了端到端加密。</string>
|
||||
<string name="notice_end_to_end_unknown_algorithm_by_you">您開啟了端到端加密(無法識別的演算法 %1$s)。</string>
|
||||
|
||||
<string name="call_notification_answer">接受</string>
|
||||
<string name="call_notification_reject">拒絕</string>
|
||||
<string name="call_notification_hangup">掛斷</string>
|
||||
|
||||
</resources>
|
||||
|
@ -169,3 +169,6 @@ enum class===76
|
||||
### Do not import temporary legacy classes
|
||||
import im.vector.matrix.android.internal.legacy.riot===3
|
||||
import org.matrix.androidsdk.crypto.data===2
|
||||
|
||||
### Use `Context#getSystemService` extension function provided by `core-ktx`
|
||||
getSystemService\(Context
|
||||
|
@ -6,6 +6,7 @@
|
||||
<issue id="MissingTranslation" severity="warning" />
|
||||
<issue id="TypographyEllipsis" severity="error" />
|
||||
<issue id="ImpliedQuantity" severity="warning" />
|
||||
<issue id="UnusedQuantity" severity="error" />
|
||||
<issue id="IconXmlAndPng" severity="error" />
|
||||
<issue id="IconDipSize" severity="error" />
|
||||
<issue id="IconDuplicatesConfig" severity="error" />
|
||||
|
@ -19,11 +19,11 @@ package im.vector.app.features.debug
|
||||
import android.app.Activity
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.Person
|
||||
import androidx.core.content.getSystemService
|
||||
import butterknife.OnClick
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.di.ActiveSessionHolder
|
||||
@ -83,7 +83,7 @@ class DebugMenuActivity : VectorBaseActivity() {
|
||||
|
||||
@OnClick(R.id.debug_test_notification)
|
||||
fun testNotification() {
|
||||
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||
val notificationManager = getSystemService<NotificationManager>()!!
|
||||
|
||||
// Create channel first
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
@ -95,7 +95,7 @@ class DebugMenuActivity : VectorBaseActivity() {
|
||||
)
|
||||
|
||||
channel.description = "Channel description"
|
||||
(getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).createNotificationChannel(channel)
|
||||
notificationManager.createNotificationChannel(channel)
|
||||
|
||||
val channel2 =
|
||||
NotificationChannel(
|
||||
@ -105,7 +105,7 @@ class DebugMenuActivity : VectorBaseActivity() {
|
||||
)
|
||||
|
||||
channel2.description = "Channel description 2"
|
||||
(getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).createNotificationChannel(channel2)
|
||||
notificationManager.createNotificationChannel(channel2)
|
||||
}
|
||||
|
||||
val builder = NotificationCompat.Builder(this, "CHAN")
|
||||
|
@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/store_title" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="@string/store_whats_new" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="@string/store_short_description" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="@string/store_full_description" />
|
||||
|
||||
</LinearLayout>
|
@ -15,9 +15,9 @@
|
||||
*/
|
||||
package im.vector.app.fdroid.features.settings.troubleshoot
|
||||
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.core.net.ConnectivityManagerCompat
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.resources.StringProvider
|
||||
@ -29,7 +29,7 @@ class TestBackgroundRestrictions @Inject constructor(private val context: AppCom
|
||||
: TroubleshootTest(R.string.settings_troubleshoot_test_bg_restricted_title) {
|
||||
|
||||
override fun perform() {
|
||||
(context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager).apply {
|
||||
context.getSystemService<ConnectivityManager>()!!.apply {
|
||||
// Checks if the device is on a metered network
|
||||
if (isActiveNetworkMetered) {
|
||||
// Checks user’s Data Saver settings.
|
||||
|
@ -26,6 +26,7 @@ import android.os.PowerManager
|
||||
import androidx.core.content.ContextCompat
|
||||
import im.vector.app.core.di.HasVectorInjector
|
||||
import im.vector.app.core.services.VectorSyncService
|
||||
import androidx.core.content.getSystemService
|
||||
import im.vector.matrix.android.internal.session.sync.job.SyncService
|
||||
import timber.log.Timber
|
||||
|
||||
@ -42,7 +43,7 @@ class AlarmSyncBroadcastReceiver : BroadcastReceiver() {
|
||||
}
|
||||
|
||||
// Acquire a lock to give enough time for the sync :/
|
||||
(context.getSystemService(Context.POWER_SERVICE) as PowerManager).run {
|
||||
context.getSystemService<PowerManager>()!!.run {
|
||||
newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "riotx:fdroidSynclock").apply {
|
||||
acquire((10_000).toLong())
|
||||
}
|
||||
@ -74,7 +75,7 @@ class AlarmSyncBroadcastReceiver : BroadcastReceiver() {
|
||||
}
|
||||
val pIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
val firstMillis = System.currentTimeMillis() + delay
|
||||
val alarmMgr = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
val alarmMgr = context.getSystemService<AlarmManager>()!!
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
alarmMgr.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, firstMillis, pIntent)
|
||||
} else {
|
||||
@ -86,7 +87,7 @@ class AlarmSyncBroadcastReceiver : BroadcastReceiver() {
|
||||
Timber.v("Cancel alarm")
|
||||
val intent = Intent(context, AlarmSyncBroadcastReceiver::class.java)
|
||||
val pIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||
val alarmMgr = context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
val alarmMgr = context.getSystemService<AlarmManager>()!!
|
||||
alarmMgr.cancel(pIntent)
|
||||
}
|
||||
}
|
||||
|
@ -21,8 +21,24 @@ import android.text.format.DateUtils
|
||||
import im.vector.app.core.resources.LocaleProvider
|
||||
import org.threeten.bp.LocalDateTime
|
||||
import org.threeten.bp.format.DateTimeFormatter
|
||||
import java.util.Calendar
|
||||
import java.util.Date
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
* Returns the timestamp for the start of the day of the provided time.
|
||||
* For example, for the time "Jul 21, 11:11" the start of the day: "Jul 21, 00:00" is returned.
|
||||
*/
|
||||
fun startOfDay(time: Long): Long {
|
||||
val calendar = Calendar.getInstance()
|
||||
calendar.time = Date(time)
|
||||
calendar.set(Calendar.HOUR_OF_DAY, 0)
|
||||
calendar.set(Calendar.MINUTE, 0)
|
||||
calendar.set(Calendar.SECOND, 0)
|
||||
calendar.set(Calendar.MILLISECOND, 0)
|
||||
return calendar.time.time
|
||||
}
|
||||
|
||||
class VectorDateFormatter @Inject constructor(private val context: Context,
|
||||
private val localeProvider: LocaleProvider) {
|
||||
|
||||
@ -41,15 +57,23 @@ class VectorDateFormatter @Inject constructor(private val context: Context,
|
||||
return messageDayFormatter.format(localDateTime)
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats a localized relative date time for the last 2 days, e.g, "Today, HH:MM", "Yesterday, HH:MM" or
|
||||
* "2 days ago, HH:MM".
|
||||
* For earlier timestamps the absolute date time is returned, e.g. "Month Day, HH:MM".
|
||||
*
|
||||
* @param time the absolute timestamp [ms] that should be formatted relative to now
|
||||
*/
|
||||
fun formatRelativeDateTime(time: Long?): String {
|
||||
if (time == null) {
|
||||
return ""
|
||||
}
|
||||
val now = System.currentTimeMillis()
|
||||
return DateUtils.getRelativeDateTimeString(
|
||||
context,
|
||||
time,
|
||||
DateUtils.DAY_IN_MILLIS,
|
||||
2 * DateUtils.DAY_IN_MILLIS,
|
||||
now - startOfDay(now - 2 * DateUtils.DAY_IN_MILLIS),
|
||||
DateUtils.FORMAT_SHOW_WEEKDAY or DateUtils.FORMAT_SHOW_TIME
|
||||
).toString()
|
||||
}
|
||||
|
@ -23,7 +23,6 @@ import androidx.recyclerview.widget.RecyclerView
|
||||
import com.airbnb.epoxy.EpoxyController
|
||||
import com.airbnb.epoxy.EpoxyVisibilityTracker
|
||||
import im.vector.app.R
|
||||
import im.vector.app.features.themes.ThemeUtils
|
||||
|
||||
/**
|
||||
* Apply a Vertical LinearLayout Manager to the recyclerView and set the adapter from the epoxy controller
|
||||
@ -46,7 +45,7 @@ fun RecyclerView.configureWith(epoxyController: EpoxyController,
|
||||
if (showDivider) {
|
||||
addItemDecoration(
|
||||
DividerItemDecoration(context, DividerItemDecoration.VERTICAL).apply {
|
||||
ContextCompat.getDrawable(context, ThemeUtils.getResourceId(context, R.drawable.divider_horizontal_light))?.let {
|
||||
ContextCompat.getDrawable(context, R.drawable.divider_horizontal)?.let {
|
||||
setDrawable(it)
|
||||
}
|
||||
}
|
||||
|
@ -16,12 +16,12 @@
|
||||
|
||||
package im.vector.app.core.extensions
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import androidx.core.content.getSystemService
|
||||
|
||||
fun View.hideKeyboard() {
|
||||
val imm = context?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
|
||||
val imm = context?.getSystemService<InputMethodManager>()
|
||||
imm?.hideSoftInputFromWindow(windowToken, 0)
|
||||
}
|
||||
|
||||
@ -29,6 +29,6 @@ fun View.showKeyboard(andRequestFocus: Boolean = false) {
|
||||
if (andRequestFocus) {
|
||||
requestFocus()
|
||||
}
|
||||
val imm = context?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
|
||||
val imm = context?.getSystemService<InputMethodManager>()
|
||||
imm?.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
|
||||
}
|
||||
|
@ -23,6 +23,7 @@ import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.provider.MediaStore
|
||||
import androidx.annotation.WorkerThread
|
||||
import androidx.core.content.getSystemService
|
||||
import arrow.core.Try
|
||||
import okio.buffer
|
||||
import okio.sink
|
||||
@ -85,7 +86,7 @@ fun addEntryToDownloadManager(context: Context,
|
||||
null
|
||||
}
|
||||
} else {
|
||||
val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as? DownloadManager
|
||||
val downloadManager = context.getSystemService<DownloadManager>()
|
||||
@Suppress("DEPRECATION")
|
||||
downloadManager?.addCompletedDownload(title, description, true, mimeType, file.absolutePath, file.length(), true)
|
||||
return null
|
||||
|
@ -23,6 +23,7 @@ import android.hardware.Camera
|
||||
import android.hardware.camera2.CameraCharacteristics
|
||||
import android.hardware.camera2.CameraManager
|
||||
import android.os.Build
|
||||
import androidx.core.content.getSystemService
|
||||
import javax.inject.Inject
|
||||
|
||||
class HardwareInfo @Inject constructor(
|
||||
@ -36,7 +37,7 @@ class HardwareInfo @Inject constructor(
|
||||
return Camera.getNumberOfCameras() > 0
|
||||
}
|
||||
|
||||
val manager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager? ?: return Camera.getNumberOfCameras() > 0
|
||||
val manager = context.getSystemService<CameraManager>() ?: return Camera.getNumberOfCameras() > 0
|
||||
|
||||
return manager.cameraIdList.any {
|
||||
val lensFacing = manager.getCameraCharacteristics(it).get(CameraCharacteristics.LENS_FACING)
|
||||
|
@ -20,9 +20,10 @@ import android.content.Context
|
||||
import android.os.Build
|
||||
import android.os.VibrationEffect
|
||||
import android.os.Vibrator
|
||||
import androidx.core.content.getSystemService
|
||||
|
||||
fun vibrate(context: Context, durationMillis: Long = 100) {
|
||||
val vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator? ?: return
|
||||
val vibrator = context.getSystemService<Vibrator>() ?: return
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
vibrator.vibrate(VibrationEffect.createOneShot(durationMillis, VibrationEffect.DEFAULT_AMPLITUDE))
|
||||
} else {
|
||||
|
@ -21,6 +21,7 @@ import android.media.AudioAttributes
|
||||
import android.media.AudioManager
|
||||
import android.media.MediaPlayer
|
||||
import android.os.Build
|
||||
import androidx.core.content.getSystemService
|
||||
import im.vector.app.R
|
||||
import timber.log.Timber
|
||||
|
||||
@ -33,7 +34,7 @@ class CallRingPlayer(
|
||||
private var player: MediaPlayer? = null
|
||||
|
||||
fun start() {
|
||||
val audioManager: AudioManager = applicationContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
||||
val audioManager = applicationContext.getSystemService<AudioManager>()!!
|
||||
player?.release()
|
||||
player = createPlayer()
|
||||
|
||||
|
@ -172,7 +172,7 @@ class CallService : VectorService(), WiredHeadsetStateReceiver.HeadsetEventListe
|
||||
// turn the screen on for 3 seconds
|
||||
// if (Matrix.getInstance(VectorApp.getInstance())!!.pushManager.isScreenTurnedOn) {
|
||||
// try {
|
||||
// val pm = getSystemService(Context.POWER_SERVICE) as PowerManager
|
||||
// val pm = getSystemService<PowerManager>()!!
|
||||
// val wl = pm.newWakeLock(
|
||||
// WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON or PowerManager.ACQUIRE_CAUSES_WAKEUP,
|
||||
// CallService::class.java.simpleName)
|
||||
|
@ -21,6 +21,7 @@ import android.app.PendingIntent
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import androidx.core.content.getSystemService
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.extensions.vectorComponent
|
||||
import im.vector.app.features.notifications.NotificationUtils
|
||||
@ -64,7 +65,7 @@ class VectorSyncService : SyncService() {
|
||||
}
|
||||
|
||||
private fun removeForegroundNotification() {
|
||||
val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||
val notificationManager = getSystemService<NotificationManager>()!!
|
||||
notificationManager.cancel(NotificationUtils.NOTIFICATION_ID_FOREGROUND_SERVICE)
|
||||
}
|
||||
|
||||
@ -75,7 +76,7 @@ class VectorSyncService : SyncService() {
|
||||
PendingIntent.getService(this, 0, newIntent(this, sessionId), 0)
|
||||
}
|
||||
val firstMillis = System.currentTimeMillis() + delay
|
||||
val alarmMgr = getSystemService(Context.ALARM_SERVICE) as AlarmManager
|
||||
val alarmMgr = getSystemService<AlarmManager>()!!
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
alarmMgr.setAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, firstMillis, pendingIntent)
|
||||
} else {
|
||||
|
@ -35,6 +35,7 @@ import androidx.browser.customtabs.CustomTabsIntent
|
||||
import androidx.browser.customtabs.CustomTabsSession
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.FileProvider
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.fragment.app.Fragment
|
||||
import im.vector.app.BuildConfig
|
||||
import im.vector.app.R
|
||||
@ -375,7 +376,7 @@ private fun saveMediaLegacy(context: Context, mediaMimeType: String?, title: Str
|
||||
}
|
||||
val savedFile = saveFileIntoLegacy(file, downloadDir, outputFilename)
|
||||
if (savedFile != null) {
|
||||
val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as? DownloadManager
|
||||
val downloadManager = context.getSystemService<DownloadManager>()
|
||||
downloadManager?.addCompletedDownload(
|
||||
savedFile.name,
|
||||
title,
|
||||
|
@ -30,6 +30,7 @@ import android.provider.Settings
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.fragment.app.Fragment
|
||||
import im.vector.app.R
|
||||
import im.vector.app.features.notifications.NotificationUtils
|
||||
@ -47,7 +48,7 @@ import im.vector.app.features.notifications.NotificationUtils
|
||||
fun isIgnoringBatteryOptimizations(context: Context): Boolean {
|
||||
// no issue before Android M, battery optimisations did not exist
|
||||
return Build.VERSION.SDK_INT < Build.VERSION_CODES.M
|
||||
|| (context.getSystemService(Context.POWER_SERVICE) as PowerManager?)?.isIgnoringBatteryOptimizations(context.packageName) == true
|
||||
|| context.getSystemService<PowerManager>()?.isIgnoringBatteryOptimizations(context.packageName) == true
|
||||
}
|
||||
|
||||
fun isAirplaneModeOn(context: Context): Boolean {
|
||||
@ -84,7 +85,7 @@ fun requestDisablingBatteryOptimization(activity: Activity, fragment: Fragment?,
|
||||
* @param text the text to copy
|
||||
*/
|
||||
fun copyToClipboard(context: Context, text: CharSequence, showToast: Boolean = true, @StringRes toastMessage: Int = R.string.copied_to_clipboard) {
|
||||
val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clipboard = context.getSystemService<ClipboardManager>()!!
|
||||
clipboard.setPrimaryClip(ClipData.newPlainText("", text))
|
||||
if (showToast) {
|
||||
context.toast(toastMessage)
|
||||
|
@ -22,6 +22,7 @@ import android.bluetooth.BluetoothProfile
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.media.AudioManager
|
||||
import androidx.core.content.getSystemService
|
||||
import im.vector.app.core.services.WiredHeadsetStateReceiver
|
||||
import im.vector.matrix.android.api.session.call.MxCall
|
||||
import timber.log.Timber
|
||||
@ -55,9 +56,9 @@ class CallAudioManager(
|
||||
|
||||
init {
|
||||
executor.execute {
|
||||
audioManager = applicationContext.getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
||||
audioManager = applicationContext.getSystemService()
|
||||
}
|
||||
val bm = applicationContext.getSystemService(Context.BLUETOOTH_SERVICE) as? BluetoothManager
|
||||
val bm = applicationContext.getSystemService<BluetoothManager>()
|
||||
val adapter = bm?.adapter
|
||||
Timber.d("## VOIP Bluetooth adapter $adapter")
|
||||
bluetoothAdapter = adapter
|
||||
|
@ -28,6 +28,7 @@ import android.view.View
|
||||
import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.isInvisible
|
||||
import androidx.core.view.isVisible
|
||||
@ -458,7 +459,7 @@ class VectorCallActivity : VectorBaseActivity(), CallControlsView.InteractionLis
|
||||
)
|
||||
}
|
||||
|
||||
with(getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager) {
|
||||
with(getSystemService<KeyguardManager>()!!) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
requestDismissKeyguard(this@VectorCallActivity, null)
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import android.content.Context
|
||||
import android.hardware.camera2.CameraManager
|
||||
import android.os.Build
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.content.getSystemService
|
||||
import im.vector.app.ActiveSessionDataSource
|
||||
import im.vector.app.core.services.BluetoothHeadsetReceiver
|
||||
import im.vector.app.core.services.CallService
|
||||
@ -480,7 +481,7 @@ class WebRtcPeerConnectionManager @Inject constructor(
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
val restarter = CameraRestarter(cameraInUse?.name ?: "", callContext.mxCall.callId)
|
||||
callContext.cameraAvailabilityCallback = restarter
|
||||
val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
|
||||
val cameraManager = context.getSystemService<CameraManager>()!!
|
||||
cameraManager.registerAvailabilityCallback(restarter, null)
|
||||
}
|
||||
}
|
||||
@ -792,7 +793,7 @@ class WebRtcPeerConnectionManager @Inject constructor(
|
||||
|
||||
currentCall?.cameraAvailabilityCallback?.let { cameraAvailabilityCallback ->
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager
|
||||
val cameraManager = context.getSystemService<CameraManager>()!!
|
||||
cameraManager.unregisterAvailabilityCallback(cameraAvailabilityCallback)
|
||||
}
|
||||
}
|
||||
@ -1048,8 +1049,7 @@ class WebRtcPeerConnectionManager @Inject constructor(
|
||||
// re-start the capture
|
||||
// TODO notify that video is enabled
|
||||
videoCapturer?.startCapture(currentCaptureMode.width, currentCaptureMode.height, currentCaptureMode.fps)
|
||||
(context.getSystemService(Context.CAMERA_SERVICE) as? CameraManager)
|
||||
?.unregisterAvailabilityCallback(this)
|
||||
context.getSystemService<CameraManager>()?.unregisterAvailabilityCallback(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,11 +18,12 @@ package im.vector.app.features.call.telecom
|
||||
|
||||
import android.content.Context
|
||||
import android.telephony.TelephonyManager
|
||||
import androidx.core.content.getSystemService
|
||||
|
||||
object TelecomUtils {
|
||||
|
||||
fun isLineBusy(context: Context): Boolean {
|
||||
val telephonyManager = context.getSystemService(Context.TELEPHONY_SERVICE) as? TelephonyManager
|
||||
val telephonyManager = context.getSystemService<TelephonyManager>()
|
||||
?: return false
|
||||
return telephonyManager.callState != TelephonyManager.CALL_STATE_IDLE
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import android.content.Context
|
||||
import android.content.pm.ShortcutManager
|
||||
import android.graphics.Bitmap
|
||||
import android.os.Build
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.core.content.pm.ShortcutInfoCompat
|
||||
import androidx.core.content.pm.ShortcutManagerCompat
|
||||
import androidx.core.graphics.drawable.IconCompat
|
||||
@ -96,7 +97,7 @@ class ShortcutsHandler @Inject constructor(
|
||||
// We can only disabled pinned shortcuts with the API, but at least it will prevent the crash
|
||||
if (ShortcutManagerCompat.isRequestPinShortcutSupported(context)) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
|
||||
context.getSystemService(ShortcutManager::class.java)
|
||||
context.getSystemService<ShortcutManager>()
|
||||
?.let {
|
||||
it.disableShortcuts(it.pinnedShortcuts.map { pinnedShortcut -> pinnedShortcut.id })
|
||||
}
|
||||
|
@ -600,6 +600,20 @@ class RoomDetailFragment @Inject constructor(
|
||||
}
|
||||
|
||||
private fun safeStartCall(isVideoCall: Boolean) {
|
||||
if (vectorPreferences.preventAccidentalCall()) {
|
||||
AlertDialog.Builder(requireActivity())
|
||||
.setMessage(if (isVideoCall) R.string.start_video_call_prompt_msg else R.string.start_voice_call_prompt_msg)
|
||||
.setPositiveButton(if (isVideoCall) R.string.start_video_call else R.string.start_voice_call) { _, _ ->
|
||||
safeStartCall2(isVideoCall)
|
||||
}
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.show()
|
||||
} else {
|
||||
safeStartCall2(isVideoCall)
|
||||
}
|
||||
}
|
||||
|
||||
private fun safeStartCall2(isVideoCall: Boolean) {
|
||||
val startCallAction = RoomDetailAction.StartCall(isVideoCall)
|
||||
roomDetailViewModel.pendingAction = startCallAction
|
||||
if (isVideoCall) {
|
||||
|
@ -20,7 +20,6 @@ import android.util.AttributeSet
|
||||
import android.view.View
|
||||
import androidx.appcompat.widget.AppCompatTextView
|
||||
import im.vector.app.R
|
||||
import im.vector.app.features.themes.ThemeUtils
|
||||
|
||||
class UnreadCounterBadgeView : AppCompatTextView {
|
||||
|
||||
@ -38,7 +37,7 @@ class UnreadCounterBadgeView : AppCompatTextView {
|
||||
val bgRes = if (state.highlighted) {
|
||||
R.drawable.bg_unread_highlight
|
||||
} else {
|
||||
ThemeUtils.getResourceId(context, R.drawable.bg_unread_notification_light)
|
||||
R.drawable.bg_unread_notification
|
||||
}
|
||||
setBackgroundResource(bgRes)
|
||||
text = RoomSummaryFormatter.formatUnreadMessagesCounter(state.count)
|
||||
|
@ -22,7 +22,6 @@ import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import androidx.core.view.isVisible
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
import im.vector.app.R
|
||||
import im.vector.app.features.themes.ThemeUtils
|
||||
import kotlinx.android.synthetic.main.motion_fab_menu_merge.view.*
|
||||
|
||||
class FabMenuView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null,
|
||||
@ -37,12 +36,6 @@ class FabMenuView @JvmOverloads constructor(context: Context, attrs: AttributeSe
|
||||
override fun onFinishInflate() {
|
||||
super.onFinishInflate()
|
||||
|
||||
// Tint label background
|
||||
listOf(createRoomItemChatLabel, createRoomItemGroupLabel)
|
||||
.forEach {
|
||||
it.setBackgroundResource(ThemeUtils.getResourceId(context, R.drawable.vector_label_background_light))
|
||||
}
|
||||
|
||||
listOf(createRoomItemChat, createRoomItemChatLabel)
|
||||
.forEach {
|
||||
it.setOnClickListener {
|
||||
|
@ -77,6 +77,10 @@ class LoginCaptchaFragment @Inject constructor(
|
||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||
super.onPageStarted(view, url, favicon)
|
||||
|
||||
if (!isAdded) {
|
||||
return
|
||||
}
|
||||
|
||||
// Show loader
|
||||
loginCaptchaProgress.isVisible = true
|
||||
}
|
||||
@ -84,6 +88,10 @@ class LoginCaptchaFragment @Inject constructor(
|
||||
override fun onPageFinished(view: WebView, url: String) {
|
||||
super.onPageFinished(view, url)
|
||||
|
||||
if (!isAdded) {
|
||||
return
|
||||
}
|
||||
|
||||
// Hide loader
|
||||
loginCaptchaProgress.isVisible = false
|
||||
}
|
||||
|
@ -442,7 +442,7 @@ class NotificationDrawerManager @Inject constructor(private val context: Context
|
||||
/*
|
||||
TODO
|
||||
if (Matrix.getInstance(VectorApp.getInstance())!!.pushManager.isScreenTurnedOn) {
|
||||
val pm = VectorApp.getInstance().getSystemService(Context.POWER_SERVICE) as PowerManager
|
||||
val pm = VectorApp.getInstance().getSystemService<PowerManager>()!!
|
||||
val wl = pm.newWakeLock(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON or PowerManager.ACQUIRE_CAUSES_WAKEUP,
|
||||
NotificationDrawerManager::class.java.name)
|
||||
wl.acquire(3000)
|
||||
|
@ -35,6 +35,7 @@ import androidx.core.app.NotificationManagerCompat
|
||||
import androidx.core.app.RemoteInput
|
||||
import androidx.core.app.TaskStackBuilder
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.core.graphics.drawable.IconCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import im.vector.app.BuildConfig
|
||||
@ -856,7 +857,7 @@ class NotificationUtils @Inject constructor(private val context: Context,
|
||||
}
|
||||
|
||||
// We cannot use NotificationManagerCompat here.
|
||||
val setting = (context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).currentInterruptionFilter
|
||||
val setting = context.getSystemService<NotificationManager>()!!.currentInterruptionFilter
|
||||
|
||||
return setting == NotificationManager.INTERRUPTION_FILTER_NONE
|
||||
|| setting == NotificationManager.INTERRUPTION_FILTER_ALARMS
|
||||
|
@ -21,6 +21,7 @@ import android.hardware.Sensor
|
||||
import android.hardware.SensorManager
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.getSystemService
|
||||
import com.squareup.seismic.ShakeDetector
|
||||
import im.vector.app.R
|
||||
import im.vector.app.core.hardware.vibrate
|
||||
@ -41,7 +42,7 @@ class RageShake @Inject constructor(private val activity: AppCompatActivity,
|
||||
var interceptor: (() -> Unit)? = null
|
||||
|
||||
fun start() {
|
||||
val sensorManager = activity.getSystemService(AppCompatActivity.SENSOR_SERVICE) as? SensorManager ?: return
|
||||
val sensorManager = activity.getSystemService<SensorManager>() ?: return
|
||||
|
||||
shakeDetector = ShakeDetector(this).apply {
|
||||
setSensitivity(vectorPreferences.getRageshakeSensitivity())
|
||||
@ -94,8 +95,7 @@ class RageShake @Inject constructor(private val activity: AppCompatActivity,
|
||||
* Check if the feature is available
|
||||
*/
|
||||
fun isAvailable(context: Context): Boolean {
|
||||
return (context.getSystemService(AppCompatActivity.SENSOR_SERVICE) as? SensorManager)
|
||||
?.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) != null
|
||||
return context.getSystemService<SensorManager>()?.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) != null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,11 +24,11 @@ import android.provider.MediaStore
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.squareup.seismic.ShakeDetector
|
||||
import im.vector.matrix.android.api.extensions.tryThis
|
||||
import im.vector.app.BuildConfig
|
||||
import im.vector.app.R
|
||||
import im.vector.app.features.homeserver.ServerUrlsRepository
|
||||
import im.vector.app.features.themes.ThemeUtils
|
||||
import im.vector.matrix.android.api.extensions.tryThis
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
@ -111,6 +111,7 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||
// notifications
|
||||
const val SETTINGS_ENABLE_ALL_NOTIF_PREFERENCE_KEY = "SETTINGS_ENABLE_ALL_NOTIF_PREFERENCE_KEY"
|
||||
const val SETTINGS_ENABLE_THIS_DEVICE_PREFERENCE_KEY = "SETTINGS_ENABLE_THIS_DEVICE_PREFERENCE_KEY"
|
||||
|
||||
// public static final String SETTINGS_TURN_SCREEN_ON_PREFERENCE_KEY = "SETTINGS_TURN_SCREEN_ON_PREFERENCE_KEY";
|
||||
const val SETTINGS_SYSTEM_CALL_NOTIFICATION_PREFERENCE_KEY = "SETTINGS_SYSTEM_CALL_NOTIFICATION_PREFERENCE_KEY"
|
||||
const val SETTINGS_SYSTEM_NOISY_NOTIFICATION_PREFERENCE_KEY = "SETTINGS_SYSTEM_NOISY_NOTIFICATION_PREFERENCE_KEY"
|
||||
@ -131,6 +132,7 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||
const val SETTINGS_SET_SYNC_DELAY_PREFERENCE_KEY = "SETTINGS_SET_SYNC_DELAY_PREFERENCE_KEY"
|
||||
|
||||
// Calls
|
||||
const val SETTINGS_CALL_PREVENT_ACCIDENTAL_CALL_KEY = "SETTINGS_CALL_PREVENT_ACCIDENTAL_CALL_KEY"
|
||||
const val SETTINGS_CALL_RINGTONE_USE_RIOT_PREFERENCE_KEY = "SETTINGS_CALL_RINGTONE_USE_RIOT_PREFERENCE_KEY"
|
||||
const val SETTINGS_CALL_RINGTONE_URI_PREFERENCE_KEY = "SETTINGS_CALL_RINGTONE_URI_PREFERENCE_KEY"
|
||||
|
||||
@ -148,6 +150,7 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||
private const val SETTINGS_LABS_SHOW_HIDDEN_EVENTS_PREFERENCE_KEY = "SETTINGS_LABS_SHOW_HIDDEN_EVENTS_PREFERENCE_KEY"
|
||||
private const val SETTINGS_LABS_ENABLE_SWIPE_TO_REPLY = "SETTINGS_LABS_ENABLE_SWIPE_TO_REPLY"
|
||||
private const val SETTINGS_DEVELOPER_MODE_FAIL_FAST_PREFERENCE_KEY = "SETTINGS_DEVELOPER_MODE_FAIL_FAST_PREFERENCE_KEY"
|
||||
|
||||
// SETTINGS_LABS_HIDE_TECHNICAL_E2E_ERRORS
|
||||
private const val SETTINGS_LABS_MERGE_E2E_ERRORS = "SETTINGS_LABS_MERGE_E2E_ERRORS"
|
||||
const val SETTINGS_LABS_UNREAD_NOTIFICATIONS_AS_TAB = "SETTINGS_LABS_UNREAD_NOTIFICATIONS_AS_TAB"
|
||||
@ -645,6 +648,13 @@ class VectorPreferences @Inject constructor(private val context: Context) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tells if a confirmation dialog should be displayed before staring a call
|
||||
*/
|
||||
fun preventAccidentalCall(): Boolean {
|
||||
return defaultPrefs.getBoolean(SETTINGS_CALL_PREVENT_ACCIDENTAL_CALL_KEY, false)
|
||||
}
|
||||
|
||||
/**
|
||||
* Tells if the read receipts should be shown
|
||||
*
|
||||
|
@ -266,74 +266,6 @@ object ThemeUtils {
|
||||
return null
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the resource Id applied to the current theme
|
||||
*
|
||||
* @param c the context
|
||||
* @param resourceId the resource id in the light theme
|
||||
* @return the resource Id for the current theme
|
||||
*/
|
||||
// TODO Now that we are API 21, this is not necessary anymore
|
||||
fun getResourceId(c: Context, resourceId: Int): Int {
|
||||
val theme = getApplicationTheme(c)
|
||||
|
||||
return when (theme) {
|
||||
THEME_LIGHT_VALUE -> resourceId
|
||||
THEME_SC_LIGHT_VALUE -> {
|
||||
return when (resourceId) {
|
||||
R.drawable.bg_search_edit_text_light -> R.drawable.bg_search_edit_text_light
|
||||
R.drawable.bg_unread_notification_light -> R.drawable.bg_unread_notification_sc_light
|
||||
R.drawable.vector_label_background_light -> R.drawable.vector_label_background_light
|
||||
R.drawable.divider_horizontal_light -> R.drawable.divider_horizontal_light
|
||||
else -> {
|
||||
Timber.w("Warning, missing case for wanted drawable in sc_light theme")
|
||||
resourceId
|
||||
}
|
||||
}
|
||||
}
|
||||
THEME_DARK_VALUE -> {
|
||||
return when (resourceId) {
|
||||
R.drawable.bg_search_edit_text_light -> R.drawable.bg_search_edit_text_dark
|
||||
R.drawable.bg_unread_notification_light -> R.drawable.bg_unread_notification_dark
|
||||
R.drawable.vector_label_background_light -> R.drawable.vector_label_background_dark
|
||||
R.drawable.divider_horizontal_light -> R.drawable.divider_horizontal_dark
|
||||
else -> {
|
||||
Timber.w("Warning, missing case for wanted drawable in dark theme")
|
||||
resourceId
|
||||
}
|
||||
}
|
||||
}
|
||||
THEME_BLACK_VALUE -> {
|
||||
return when (resourceId) {
|
||||
R.drawable.bg_search_edit_text_light -> R.drawable.bg_search_edit_text_black
|
||||
R.drawable.bg_unread_notification_light -> R.drawable.bg_unread_notification_black
|
||||
R.drawable.vector_label_background_light -> R.drawable.vector_label_background_black
|
||||
R.drawable.divider_horizontal_light -> R.drawable.divider_horizontal_black
|
||||
else -> {
|
||||
Timber.w("Warning, missing case for wanted drawable in black theme")
|
||||
resourceId
|
||||
}
|
||||
}
|
||||
}
|
||||
THEME_SC_VALUE, THEME_SC_DARK_VALUE, THEME_SC_COLORED_VALUE, THEME_SC_DARK_COLORED_VALUE -> {
|
||||
return when (resourceId) {
|
||||
R.drawable.bg_search_edit_text_light -> R.drawable.bg_search_edit_text_sc
|
||||
R.drawable.bg_unread_notification_light -> R.drawable.bg_unread_notification_sc
|
||||
R.drawable.vector_label_background_light -> R.drawable.vector_label_background_sc
|
||||
R.drawable.divider_horizontal_light -> R.drawable.divider_horizontal_sc
|
||||
else -> {
|
||||
Timber.w("Warning, missing case for wanted drawable in sc theme")
|
||||
resourceId
|
||||
}
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
Timber.w("Warning, missing theme: $theme")
|
||||
resourceId
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the menu icons colors
|
||||
*
|
||||
|
30
vector/src/main/play/listings/en-US/full_description.txt
Normal file
@ -0,0 +1,30 @@
|
||||
Element is a new type of messenger and collaboration app that:
|
||||
|
||||
1. Puts you in control to preserve your privacy
|
||||
2. Lets you communicate with anyone in the Matrix network, and even beyond by integrating with apps such as Slack
|
||||
3. Protects you from advertising, datamining and walled gardens
|
||||
4. Secures you through end-to-end encryption, with cross-signing to verify others
|
||||
|
||||
Element is completely different from other messaging and collaboration apps because it is decentralised and open source.
|
||||
|
||||
Element lets you self-host - or choose a host - so that you have privacy, ownership and control of your data and conversations. It gives you access to an open network; so you’re not just stuck speaking to other Element users only. And it is very secure.
|
||||
|
||||
Element is able to do all this because it operates on Matrix - the standard for open, decentralised communication.
|
||||
|
||||
Element puts you in control by letting you choose who hosts your conversations. From the Element app, you can choose to host in different ways:
|
||||
|
||||
1. Get a free account on the matrix.org public server
|
||||
2. Self-host your account by running a server on your own hardware
|
||||
3. Sign up for an account on a custom server by simply subscribing to the Element Matrix Services hosting platform
|
||||
|
||||
<b>Why choose Element?</b>
|
||||
|
||||
<b>OWN YOUR DATA</b>: You decide where to keep your data and messages. You own it and control it, not some MEGACORP that mines your data or gives access to third parties.
|
||||
|
||||
<b>OPEN MESSAGING AND COLLABORATION</b>: You can chat with anyone else in the Matrix network, whether they’re using Element or another Matrix app, and even if they are using a different messaging system of the likes of Slack, IRC or XMPP.
|
||||
|
||||
<b>SUPER-SECURE</b>: Real end-to-end encryption (only those in the conversation can decrypt messages), and cross-signing to verify the devices of conversation participants.
|
||||
|
||||
<b>COMPLETE COMMUNICATION</b>: Messaging, voice and video calls, file sharing, screen sharing and a whole bunch of integrations, bots and widgets. Build rooms, communities, stay in touch and get things done.
|
||||
|
||||
<b>EVERYWHERE YOU ARE</b>: Stay in touch wherever you are with fully synchronised message history across all your devices and on the web at https://element.io/app.
|
@ -0,0 +1 @@
|
||||
Secure decentralised chat & VoIP. Keep your data safe from third parties.
|
1
vector/src/main/play/listings/en-US/title.txt
Normal file
@ -0,0 +1 @@
|
||||
Element (previously Riot.im)
|
1
vector/src/main/play/listings/fr/title.txt
Normal file
@ -0,0 +1 @@
|
||||
Element (anciennement Riot.im)
|
1
vector/src/main/play/listings/zh_Hans/title.txt
Normal file
@ -0,0 +1 @@
|
||||
Element(曾为 Riot.im)
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="?riot_primary_text_color" android:state_enabled="true" />
|
||||
<item android:color="?riot_primary_text_color_disabled" android:state_enabled="false" />
|
||||
</selector>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/riot_primary_text_color_dark" android:state_enabled="true" />
|
||||
<item android:color="@color/riot_primary_text_color_disabled_dark" android:state_enabled="false" />
|
||||
</selector>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/riot_primary_text_color_light" android:state_enabled="true" />
|
||||
<item android:color="@color/riot_secondary_text_color_light" android:state_enabled="false" />
|
||||
</selector>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="@color/riot_primary_text_color_status" android:state_enabled="true" />
|
||||
<item android:color="@color/riot_primary_text_color_disabled_status" android:state_enabled="false" />
|
||||
</selector>
|
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 197 B |
Before Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 43 KiB |
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/riotx_search_background_mobile_black" />
|
||||
<corners android:radius="4dp" />
|
||||
</shape>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/riotx_search_background_mobile_dark" />
|
||||
<corners android:radius="4dp" />
|
||||
</shape>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/riotx_search_background_mobile_light" />
|
||||
<corners android:radius="4dp" />
|
||||
</shape>
|
@ -5,5 +5,5 @@
|
||||
|
||||
<corners android:radius="40dp" />
|
||||
|
||||
<solid android:color="@color/riotx_unread_room_badge_dark" />
|
||||
<solid android:color="?riotx_unread_room_badge" />
|
||||
</shape>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<corners android:radius="40dp" />
|
||||
|
||||
<solid android:color="@color/riotx_unread_room_badge_black" />
|
||||
</shape>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<corners android:radius="40dp" />
|
||||
|
||||
<solid android:color="@color/riotx_unread_room_badge_light" />
|
||||
</shape>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
|
||||
<!-- required on android < 4.2 devices -->
|
||||
<solid android:color="@android:color/transparent" />
|
||||
|
||||
<stroke
|
||||
android:width="4dp"
|
||||
android:color="@color/direct_chat_ring_color_black" />
|
||||
</shape>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
|
||||
<!-- required on android < 4.2 devices -->
|
||||
<solid android:color="@android:color/transparent" />
|
||||
|
||||
<stroke
|
||||
android:width="4dp"
|
||||
android:color="@color/direct_chat_ring_color_dark" />
|
||||
</shape>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
|
||||
<!-- required on android < 4.2 devices -->
|
||||
<solid android:color="@android:color/transparent" />
|
||||
|
||||
<stroke
|
||||
android:width="4dp"
|
||||
android:color="@color/direct_chat_ring_color_light" />
|
||||
</shape>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
|
||||
<!-- required on android < 4.2 devices -->
|
||||
<solid android:color="@android:color/transparent" />
|
||||
|
||||
<stroke
|
||||
android:width="4dp"
|
||||
android:color="@color/direct_chat_ring_color_status" />
|
||||
</shape>
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<size android:height="1dp" />
|
||||
<solid android:color="@color/riotx_header_panel_border_mobile_dark" />
|
||||
<solid android:color="?riotx_header_panel_border_mobile" />
|
||||
</shape>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<size android:height="1dp" />
|
||||
<solid android:color="@color/riotx_header_panel_border_mobile_black" />
|
||||
</shape>
|
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<size android:height="1dp" />
|
||||
<solid android:color="@color/riotx_header_panel_border_mobile_light" />
|
||||
</shape>
|
@ -9,7 +9,7 @@
|
||||
<item android:left="6dp" android:right="2dp">
|
||||
<shape>
|
||||
<corners android:bottomRightRadius="4dp" android:topRightRadius="4dp" />
|
||||
<solid android:color="@color/riotx_header_panel_background_dark" />
|
||||
<solid android:color="?riotx_header_panel_background" />
|
||||
</shape>
|
||||
</item>
|
||||
|
@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:state_checked="true">
|
||||
|
||||
<layer-list>
|
||||
|
||||
<!-- Draw the BG. -->
|
||||
<item android:left="6dp" android:right="2dp">
|
||||
<shape>
|
||||
<corners android:bottomRightRadius="4dp" android:topRightRadius="4dp" />
|
||||
<solid android:color="@color/riotx_header_panel_background_black" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<item android:gravity="start" android:left="2dp">
|
||||
<shape>
|
||||
<size android:width="4dp" />
|
||||
<corners android:bottomLeftRadius="40dp" android:topLeftRadius="40dp" />
|
||||
<solid android:color="@color/riotx_accent" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
</layer-list>
|
||||
|
||||
</item>
|
||||
|
||||
<item android:state_checked="false">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
|
||||
</selector>
|
@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item android:state_checked="true">
|
||||
|
||||
<layer-list>
|
||||
|
||||
<!-- Draw the BG. -->
|
||||
<item android:left="6dp" android:right="2dp">
|
||||
<shape>
|
||||
<corners android:bottomRightRadius="4dp" android:topRightRadius="4dp" />
|
||||
<solid android:color="@color/riotx_header_panel_background_light" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
<item android:gravity="start" android:left="2dp">
|
||||
<shape>
|
||||
<size android:width="4dp" />
|
||||
<corners android:bottomLeftRadius="40dp" android:topLeftRadius="40dp" />
|
||||
<solid android:color="@color/riotx_accent" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
</layer-list>
|
||||
|
||||
</item>
|
||||
|
||||
<item android:state_checked="false">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
|
||||
</selector>
|
@ -6,6 +6,6 @@
|
||||
android:width="1dp"
|
||||
android:height="1dp" />
|
||||
|
||||
<solid android:color="@color/list_divider_color_dark" />
|
||||
<solid android:color="?list_divider_color" />
|
||||
|
||||
</shape>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<size
|
||||
android:width="1dp"
|
||||
android:height="1dp" />
|
||||
|
||||
<solid android:color="@color/list_divider_color_light" />
|
||||
|
||||
</shape>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="#343a46" />
|
||||
</shape>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="#1A000000" />
|
||||
</shape>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="#1A000000" />
|
||||
</shape>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="#1A000000" />
|
||||
</shape>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="#1A000000" />
|
||||
</shape>
|
@ -2,5 +2,5 @@
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="#343a46" />
|
||||
<solid android:color="?riotx_header_panel_border_mobile" />
|
||||
</shape>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="@color/riotx_header_panel_border_mobile_black" />
|
||||
</shape>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="@color/riotx_header_panel_border_mobile_dark" />
|
||||
</shape>
|
@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="10dp" />
|
||||
<solid android:color="@color/riotx_header_panel_border_mobile_light" />
|
||||
</shape>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:endColor="#1a1a1a"
|
||||
android:startColor="#212121"
|
||||
android:type="linear" />
|
||||
</shape>
|
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:endColor="#c0c0c0"
|
||||
android:startColor="#e1e1e1"
|
||||
android:type="linear" />
|
||||
</shape>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:endColor="#212121"
|
||||
android:startColor="#1a1a1a" />
|
||||
</shape>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:endColor="#e1e1e1"
|
||||
android:startColor="#d3d3d3" />
|
||||
</shape>
|
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#4d4d4d" />
|
||||
<padding
|
||||
android:bottom="4dp"
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="4dp" />
|
||||
<corners android:radius="3dp" />
|
||||
</shape>
|
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#FFF2F2F2" />
|
||||
<padding
|
||||
android:bottom="4dp"
|
||||
android:left="16dp"
|
||||
android:right="16dp"
|
||||
android:top="4dp" />
|
||||
<corners android:radius="3dp" />
|
||||
</shape>
|
@ -4,10 +4,10 @@
|
||||
|
||||
<corners android:radius="3dp" />
|
||||
|
||||
<solid android:color="@color/riotx_fab_label_bg_light" />
|
||||
<solid android:color="?riotx_fab_label_bg" />
|
||||
|
||||
<stroke
|
||||
android:width="0.5dp"
|
||||
android:color="#1EFFFFFF" />
|
||||
android:color="?riotx_fab_label_stroke" />
|
||||
|
||||
</shape>
|
@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<corners android:radius="3dp" />
|
||||
|
||||
<solid android:color="@color/riotx_fab_label_bg_black" />
|
||||
|
||||
<stroke
|
||||
android:width="0.5dp"
|
||||
android:color="@color/black" />
|
||||
|
||||
</shape>
|
@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<corners android:radius="3dp" />
|
||||
|
||||
<solid android:color="@color/riotx_fab_label_bg_dark" />
|
||||
|
||||
<stroke
|
||||
android:width="0.5dp"
|
||||
android:color="@color/black" />
|
||||
|
||||
</shape>
|
21
vector/src/main/res/drawable/vector_tabbar_background.xml
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<!-- Non focused states -->
|
||||
<item android:drawable="@drawable/vector_tabbar_unselected_background" android:state_focused="false" android:state_pressed="false" android:state_selected="false" />
|
||||
<item android:drawable="@drawable/vector_tabbar_selected_background" android:state_focused="false" android:state_pressed="false" android:state_selected="true" />
|
||||
|
||||
<!-- Focused states -->
|
||||
<item android:drawable="@drawable/vector_tabbar_unselected_background" android:state_focused="true" android:state_pressed="false" android:state_selected="false" />
|
||||
<item android:drawable="@drawable/vector_tabbar_selected_background" android:state_focused="true" android:state_pressed="false" android:state_selected="true" />
|
||||
|
||||
<!-- Pressed -->
|
||||
<!-- Non focused states -->
|
||||
<item android:drawable="@drawable/vector_tabbar_unselected_background" android:state_focused="false" android:state_pressed="true" android:state_selected="false" />
|
||||
<item android:drawable="@drawable/vector_tabbar_selected_background" android:state_focused="false" android:state_pressed="true" android:state_selected="true" />
|
||||
|
||||
<!-- Focused states -->
|
||||
<item android:drawable="@drawable/vector_tabbar_unselected_background" android:state_focused="true" android:state_pressed="true" android:state_selected="false" />
|
||||
<item android:drawable="@drawable/vector_tabbar_selected_background" android:state_focused="true" android:state_pressed="true" android:state_selected="true" />
|
||||
|
||||
</selector>
|