Merge branch 'master' into import_export_keywords

This commit is contained in:
Naveen Singh 2024-12-25 20:46:51 +05:30 committed by GitHub
commit 025a3a2729
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
127 changed files with 4238 additions and 235 deletions

View file

@ -18,7 +18,7 @@ module.exports = async ({github, context}) => {
initialBody = context.payload.comment.body;
} else if (context.eventName == 'issues') {
initialBody = context.payload.issue.body;
} else if (context.eventName == 'pull_request') {
} else if (context.eventName == 'pull_request_target') {
initialBody = context.payload.pull_request.body;
} else {
console.log('Aborting: No body found');
@ -34,7 +34,7 @@ module.exports = async ({github, context}) => {
// Regex for finding images (simple variant) ![ALT_TEXT](https://*.githubusercontent.com/<number>/<variousHexStringsAnd->.<fileExtension>)
const REGEX_USER_CONTENT_IMAGE_LOOKUP = /\!\[(.*)\]\((https:\/\/[-a-z0-9]+\.githubusercontent\.com\/\d+\/[-0-9a-f]{32,512}\.(jpg|gif|png))\)/gm;
const REGEX_ASSETS_IMAGE_LOCKUP = /\!\[(.*)\]\((https:\/\/github\.com\/[-\w\d]+\/[-\w\d]+\/assets\/\d+\/[\-0-9a-f]{32,512})\)/gm;
const REGEX_ASSETS_IMAGE_LOCKUP = /\!\[(.*)\]\((https:\/\/github\.com\/user-attachments\/assets\/[\-0-9a-f]{36,})\)/gm;
// Check if we found something
let foundSimpleImages = REGEX_USER_CONTENT_IMAGE_LOOKUP.test(initialBody)
@ -77,7 +77,7 @@ module.exports = async ({github, context}) => {
repo: context.repo.repo,
body: newBody
});
} else if (context.eventName == 'pull_request') {
} else if (context.eventName == 'pull_request_target') {
console.log('Updating pull request', context.payload.pull_request.number);
await github.rest.pulls.update({
pull_number: context.payload.pull_request.number,

View file

@ -1,6 +1,3 @@
# This workflow has write permissions on the repo
# It MUST NOT check out a PR and run untrusted code
name: Image Minimizer
on:
@ -11,20 +8,16 @@ on:
pull_request_target:
types: [opened, edited]
permissions:
issues: write
pull-requests: write
jobs:
try-minimize:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
token: ${{ secrets.FOSSIFYBOT_TOKEN }}
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 16
@ -32,9 +25,10 @@ jobs:
run: npm i probe-image-size@7.2.3 --ignore-scripts
- name: Minimize simple images
uses: actions/github-script@v6
uses: actions/github-script@v7
timeout-minutes: 3
with:
github-token: ${{ secrets.FOSSIFYBOT_TOKEN }}
script: |
const script = require('.github/workflows/image-minimizer.js');
await script({github, context});

View file

@ -1,25 +1,24 @@
name: no-response
# Both `issue_comment` and `scheduled` event types are required for this Action
# to work properly.
on:
issue_comment:
types: [created]
schedule:
# Run daily at midnight.
- cron: '0 0 * * *'
permissions:
issues: write
pull-requests: write
- cron: '0 0 * * *' # Runs daily at midnight
workflow_dispatch:
jobs:
noResponse:
runs-on: ubuntu-latest
steps:
- uses: lee-dohm/no-response@v0.5.0
- uses: actions/stale@v9
with:
token: ${{ github.token }}
repo-token: ${{ secrets.FOSSIFYBOT_TOKEN }}
days-before-stale: -1
# Number of days of inactivity before an issue is closed for lack of response.
daysUntilClose: 30
responseRequiredLabel: waiting for author
days-before-close: 14
only-labels: 'waiting for author'
stale-issue-label: 'waiting for author'
stale-pr-label: 'waiting for author'
remove-stale-when-updated: false
ignore-updates: true
close-issue-message: This issue has been automatically closed due to inactivity. We requested additional information but have not received a response from the original author. Without the requested details, we cannot proceed. If you have or find the information needed, please comment so we can reopen the issue.
close-pr-message: This pull request has been automatically closed due to inactivity. We requested additional information but have not received a response from the original author. Without the requested details, we cannot proceed. If you have the needed information or updates, please reopen the PR or comment so we can continue the review.

9
.github/workflows/pr.yml vendored Normal file
View file

@ -0,0 +1,9 @@
name: PR
on:
pull_request:
branches: [ master ]
jobs:
call-pr-workflow:
uses: FossifyOrg/.github/.github/workflows/pr.yml@main

10
.github/workflows/testing-build.yml vendored Normal file
View file

@ -0,0 +1,10 @@
name: Testing build (on PR)
on:
pull_request:
branches: [ master ]
types: [ labeled, opened, synchronize, reopened ]
jobs:
call-testing-build-workflow:
uses: FossifyOrg/.github/.github/workflows/testing-build.yml@main

View file

@ -1,6 +1,12 @@
Changelog
==========
Version 1.0.1 *(2024-02-09)*
----------------------------
* Minor bug fixes and improvements
* Added some translations
Version 1.0.0 *(2024-01-24)*
----------------------------

View file

@ -1,7 +1,7 @@
# Fossify Messages
<img alt="Logo" src="graphics/icon.webp" width="120" />
<a href="https://f-droid.org/packages/org.fossify.messages/"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on-en.svg" alt="Get it on F-Droid" height=80/></a> <a href="https://apt.izzysoft.de/fdroid/index/apk/org.fossify.messages"><img src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height=80/></a>
<a href='https://play.google.com/store/apps/details?id=org.fossify.messages'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png' height=80/></a> <a href="https://f-droid.org/packages/org.fossify.messages/"><img src="https://fdroid.gitlab.io/artwork/badge/get-it-on-en.svg" alt="Get it on F-Droid" height=80/></a> <a href="https://apt.izzysoft.de/fdroid/index/apk/org.fossify.messages"><img src="https://gitlab.com/IzzyOnDroid/repo/-/raw/master/assets/IzzyOnDroid.png" alt="Get it on IzzyOnDroid" height=80/></a>
Fossify Messages is your trusted messaging companion, designed to enhance your messaging experience in various ways.

View file

@ -7,6 +7,7 @@ plugins {
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.ksp)
alias(libs.plugins.detekt)
}
val keystorePropertiesFile: File = rootProject.file("keystore.properties")
@ -92,10 +93,16 @@ android {
lint {
checkReleaseBuilds = false
abortOnError = false
abortOnError = true
warningsAsErrors = true
baseline = file("lint-baseline.xml")
}
}
detekt {
baseline = file("detekt-baseline.xml")
}
dependencies {
implementation(libs.fossify.commons)
implementation(libs.eventbus)

428
app/detekt-baseline.xml Normal file
View file

@ -0,0 +1,428 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues></ManuallySuppressedIssues>
<CurrentIssues>
<ID>ComplexCondition:Activity.kt$contact.rawId &gt; 1000000 &amp;&amp; contact.contactId &gt; 1000000 &amp;&amp; contact.rawId == contact.contactId &amp;&amp; (isPackageInstalled(simpleContacts) || isPackageInstalled(simpleContactsDebug))</ID>
<ID>ComplexCondition:NewConversationActivity.kt$NewConversationActivity$(intent.action == Intent.ACTION_SENDTO || intent.action == Intent.ACTION_SEND || intent.action == Intent.ACTION_VIEW) &amp;&amp; intent.dataString != null</ID>
<ID>ComplexCondition:NewConversationActivity.kt$NewConversationActivity$contact.phoneNumbers.any { it.normalizedNumber.contains(searchString, true) } || contact.name.contains(searchString, true) || contact.name.contains(searchString.normalizeString(), true) || contact.name.normalizeString().contains(searchString, true)</ID>
<ID>CyclomaticComplexMethod:MainActivity.kt$MainActivity$private fun getNewConversations(cachedConversations: ArrayList&lt;Conversation&gt;)</ID>
<ID>CyclomaticComplexMethod:MessagesImporter.kt$MessagesImporter$private fun InputStream.importXml()</ID>
<ID>CyclomaticComplexMethod:NotificationHelper.kt$NotificationHelper$@SuppressLint("NewApi") fun showMessageNotification( messageId: Long, address: String, body: String, threadId: Long, bitmap: Bitmap?, sender: String?, alertOnlyOnce: Boolean = false )</ID>
<ID>CyclomaticComplexMethod:ThreadActivity.kt$ThreadActivity$@SuppressLint("MissingPermission") private fun getThreadItems(): ArrayList&lt;ThreadItem&gt;</ID>
<ID>CyclomaticComplexMethod:ThreadActivity.kt$ThreadActivity$private fun refreshMenuItems()</ID>
<ID>CyclomaticComplexMethod:ThreadActivity.kt$ThreadActivity$private fun setupButtons()</ID>
<ID>CyclomaticComplexMethod:ThreadActivity.kt$ThreadActivity$private fun setupThread()</ID>
<ID>EmptyCatchBlock:Context.kt${ }</ID>
<ID>EmptyCatchBlock:MessagesWriter.kt$MessagesWriter${ }</ID>
<ID>EmptyFunctionBlock:ArchivedConversationsAdapter.kt$ArchivedConversationsAdapter${}</ID>
<ID>EmptyFunctionBlock:BaseConversationsAdapter.kt$BaseConversationsAdapter${}</ID>
<ID>EmptyFunctionBlock:ContactsAdapter.kt$ContactsAdapter${}</ID>
<ID>EmptyFunctionBlock:ManageBlockedKeywordsAdapter.kt$ManageBlockedKeywordsAdapter${}</ID>
<ID>EmptyFunctionBlock:RecycleBinConversationsAdapter.kt$RecycleBinConversationsAdapter${}</ID>
<ID>EmptyFunctionBlock:SearchResultsAdapter.kt$SearchResultsAdapter${}</ID>
<ID>EmptyFunctionBlock:ThreadActivity.kt$ThreadActivity.&lt;no name provided&gt;${}</ID>
<ID>EmptyFunctionBlock:ThreadAdapter.kt$ThreadAdapter${}</ID>
<ID>ForbiddenComment:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$// TODO: Need to check whether SC still trying to deliver the SMS to destination and will send the report again?</ID>
<ID>FunctionParameterNaming:Config.kt$Config$SIMId: Int</ID>
<ID>LargeClass:ThreadActivity.kt$ThreadActivity : SimpleActivity</ID>
<ID>LongMethod:Context.kt$fun Context.getConversations(threadId: Long? = null, privateContacts: ArrayList&lt;SimpleContact&gt; = ArrayList()): ArrayList&lt;Conversation&gt;</ID>
<ID>LongMethod:Context.kt$fun Context.getMMS(threadId: Long? = null, getImageResolutions: Boolean = false, sortOrder: String? = null, dateFrom: Int = -1): ArrayList&lt;Message&gt;</ID>
<ID>LongMethod:Context.kt$fun Context.getMessages( threadId: Long, getImageResolutions: Boolean, dateFrom: Int = -1, includeScheduledMessages: Boolean = true, limit: Int = MESSAGES_LIMIT ): ArrayList&lt;Message&gt;</ID>
<ID>LongMethod:MessagesReader.kt$MessagesReader$private fun getMmsMessages(threadIds: List&lt;Long&gt;, includeTextOnlyAttachment: Boolean = false): List&lt;MmsBackup&gt;</ID>
<ID>LongMethod:NotificationHelper.kt$NotificationHelper$@SuppressLint("NewApi") fun showMessageNotification( messageId: Long, address: String, body: String, threadId: Long, bitmap: Bitmap?, sender: String?, alertOnlyOnce: Boolean = false )</ID>
<ID>LongMethod:ThreadActivity.kt$ThreadActivity$private fun setupAttachmentPickerView()</ID>
<ID>LongMethod:ThreadActivity.kt$ThreadActivity$private fun setupButtons()</ID>
<ID>LongMethod:ThreadActivity.kt$ThreadActivity$private fun setupThread()</ID>
<ID>LongParameterList:AttachmentPreviews.kt$( activity: Activity, uri: Uri, attachment: Boolean = false, onClick: (() -&gt; Unit)? = null, onLongClick: (() -&gt; Unit)? = null, onVCardLoaded: (() -&gt; Unit)? = null, )</ID>
<ID>LongParameterList:AttachmentPreviews.kt$( uri: Uri, title: String, mimeType: String, onClick: (() -&gt; Unit)? = null, onLongClick: (() -&gt; Unit)? = null, onRemoveButtonClicked: (() -&gt; Unit)? = null )</ID>
<ID>LongParameterList:Context.kt$( address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int, subscriptionId: Int )</ID>
<ID>LongParameterList:Context.kt$( uri: Uri, projection: Array&lt;String&gt;, selection: String? = null, selectionArgs: Array&lt;String&gt;? = null, sortOrder: String? = null, callback: (cursor: Cursor) -&gt; Unit )</ID>
<ID>LongParameterList:MessagingUtils.kt$MessagingUtils$( subId: Int, dest: String, text: String, timestamp: Long, threadId: Long, status: Int = Sms.STATUS_NONE, type: Int = Sms.MESSAGE_TYPE_OUTBOX, messageId: Long? = null )</ID>
<ID>LongParameterList:NotificationHelper.kt$NotificationHelper$( messageId: Long, address: String, body: String, threadId: Long, bitmap: Bitmap?, sender: String?, alertOnlyOnce: Boolean = false )</ID>
<ID>LongParameterList:SmsReceiver.kt$SmsReceiver$( context: Context, address: String, subject: String, body: String, date: Long, read: Int, threadId: Long, type: Int, subscriptionId: Int, status: Int )</ID>
<ID>LongParameterList:SmsSender.kt$SmsSender$( subId: Int, dest: String, messages: ArrayList&lt;String&gt;, serviceCenter: String?, requireDeliveryReport: Boolean, messageUri: Uri )</ID>
<ID>LongParameterList:SmsSender.kt$SmsSender$( subId: Int, destination: String, body: String, serviceCenter: String?, requireDeliveryReport: Boolean, messageUri: Uri )</ID>
<ID>MagicNumber:Activity.kt$1000000</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.7f</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.8f</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$0.9f</ID>
<ID>MagicNumber:BaseConversationsAdapter.kt$BaseConversationsAdapter$1.2f</ID>
<ID>MagicNumber:ContactsAdapter.kt$ContactsAdapter$1.2f</ID>
<ID>MagicNumber:Context.kt$10</ID>
<ID>MagicNumber:Context.kt$1000</ID>
<ID>MagicNumber:Context.kt$1000L</ID>
<ID>MagicNumber:Context.kt$500L</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$0.6f</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$100</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$180f</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$270f</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$3</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$30</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$56</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$6</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$8</ID>
<ID>MagicNumber:ImageCompressor.kt$ImageCompressor$90f</ID>
<ID>MagicNumber:MainActivity.kt$MainActivity$30</ID>
<ID>MagicNumber:Message.kt$Message$1000L</ID>
<ID>MagicNumber:Message.kt$Message.Companion$31</ID>
<ID>MagicNumber:MessageDetailsDialog.kt$MessageDetailsDialog$1000L</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$3</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$4</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$5</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$6</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$7</ID>
<ID>MagicNumber:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$8</ID>
<ID>MagicNumber:ScheduleMessageDialog.kt$ScheduleMessageDialog$23</ID>
<ID>MagicNumber:ScheduleMessageDialog.kt$ScheduleMessageDialog$5</ID>
<ID>MagicNumber:ScheduleMessageDialog.kt$ScheduleMessageDialog$59</ID>
<ID>MagicNumber:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$3000</ID>
<ID>MagicNumber:SearchResultsAdapter.kt$SearchResultsAdapter$0.8f</ID>
<ID>MagicNumber:SearchResultsAdapter.kt$SearchResultsAdapter$0.9f</ID>
<ID>MagicNumber:SearchResultsAdapter.kt$SearchResultsAdapter$1.2f</ID>
<ID>MagicNumber:SettingsActivity.kt$SettingsActivity$3</ID>
<ID>MagicNumber:SettingsActivity.kt$SettingsActivity$4</ID>
<ID>MagicNumber:SettingsActivity.kt$SettingsActivity$5</ID>
<ID>MagicNumber:SettingsActivity.kt$SettingsActivity$6</ID>
<ID>MagicNumber:SettingsActivity.kt$SettingsActivity$7</ID>
<ID>MagicNumber:SmsReceiver.kt$SmsReceiver$1000</ID>
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$0x03</ID>
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$0x3f</ID>
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$16</ID>
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$24</ID>
<ID>MagicNumber:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$3</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$0.4f</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$0.9f</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$1000</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$1000L</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$14</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$15</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$150</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$16</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$2</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$20</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$30</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$300</ID>
<ID>MagicNumber:ThreadActivity.kt$ThreadActivity$500L</ID>
<ID>MagicNumber:ThreadAdapter.kt$ThreadAdapter$0.8f</ID>
<ID>MagicNumber:ThreadAdapter.kt$ThreadAdapter$4</ID>
<ID>MagicNumber:VCardViewerAdapter.kt$VCardViewerAdapter.VCardContactViewHolder$1.1f</ID>
<ID>MagicNumber:VCardViewerAdapter.kt$VCardViewerAdapter.VCardPropertyViewHolder$1.1f</ID>
<ID>MatchingDeclarationName:ThreadItems.kt$ThreadItem</ID>
<ID>MaxLineLength:AddBlockedKeywordDialog.kt$AddBlockedKeywordDialog$class</ID>
<ID>MaxLineLength:ArchivedConversationsAdapter.kt$ArchivedConversationsAdapter$val conversationsToRemove = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList&lt;Conversation&gt;</ID>
<ID>MaxLineLength:ArchivedConversationsAdapter.kt$ArchivedConversationsAdapter$val conversationsToUnarchive = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList&lt;Conversation&gt;</ID>
<ID>MaxLineLength:AttachmentPreviews.kt$vcardAttachmentHolder</ID>
<ID>MaxLineLength:AttachmentPreviews.kt$vcardSubtitle.text = context.resources.getQuantityString(R.plurals.and_other_contacts, quantity, quantity)</ID>
<ID>MaxLineLength:AttachmentsAdapter.kt$AttachmentsAdapter$onClick = { activity.launchViewIntent(attachment.uri, attachment.mimetype, attachment.filename) }</ID>
<ID>MaxLineLength:AttachmentsAdapter.kt$AttachmentsAdapter.&lt;no name provided&gt;$override</ID>
<ID>MaxLineLength:AutoCompleteTextViewAdapter.kt$AutoCompleteTextViewAdapter$class</ID>
<ID>MaxLineLength:BaseConversationsAdapter.kt$BaseConversationsAdapter$SimpleContactsHelper(activity).loadContactImage(conversation.photoUri, conversationImage, conversation.title, placeholder)</ID>
<ID>MaxLineLength:BaseConversationsAdapter.kt$BaseConversationsAdapter$protected fun getSelectedItems()</ID>
<ID>MaxLineLength:BaseConversationsAdapter.kt$BaseConversationsAdapter.&lt;no name provided&gt;$override fun onItemRangeMoved(fromPosition: Int, toPosition: Int, itemCount: Int)</ID>
<ID>MaxLineLength:Config.kt$Config$set(lockScreenVisibilitySetting) = prefs.edit().putInt(LOCK_SCREEN_VISIBILITY, lockScreenVisibilitySetting).apply()</ID>
<ID>MaxLineLength:Constants.kt$/** Not to be used with real messages persisted in the telephony db. This is for internal use only (e.g. scheduled messages, notification ids etc). */</ID>
<ID>MaxLineLength:ContactsAdapter.kt$ContactsAdapter$activity: SimpleActivity</ID>
<ID>MaxLineLength:Context.kt$for</ID>
<ID>MaxLineLength:Context.kt$fun</ID>
<ID>MaxLineLength:Context.kt$if</ID>
<ID>MaxLineLength:Context.kt$selection = "${Sms.DATE} &lt; ${dateFrom.toLong()}"</ID>
<ID>MaxLineLength:Context.kt$val attachment = Attachment(partId, id, Uri.withAppendedPath(uri, partId.toString()).toString(), mimetype, 0, 0, attachmentName)</ID>
<ID>MaxLineLength:Context.kt$val contact = SimpleContact(addressId, addressId, name, photoUri, arrayListOf(phoneNumber), ArrayList(), ArrayList())</ID>
<ID>MaxLineLength:Context.kt$val conversation = Conversation(id, snippet, date.toInt(), read, title, photoUri, isGroupConversation, phoneNumbers.first(), isArchived = archived)</ID>
<ID>MaxLineLength:Context.kt$val photoUri = if (phoneNumbers.size == 1) simpleContactHelper.getPhotoUriFromPhoneNumber(phoneNumbers.first()) else ""</ID>
<ID>MaxLineLength:Context.kt$val privateContact = privateContacts.firstOrNull { it.phoneNumbers.first().normalizedNumber == senderNumber }</ID>
<ID>MaxLineLength:ConversationDetailsActivity.kt$ConversationDetailsActivity$setupMaterialScrollListener(scrollingView = binding.participantsRecyclerview, toolbar = binding.conversationDetailsToolbar)</ID>
<ID>MaxLineLength:ConversationsAdapter.kt$ConversationsAdapter$findItem(R.id.cab_block_number).title = activity.addLockedLabelIfNeeded(org.fossify.commons.R.string.block_number)</ID>
<ID>MaxLineLength:ConversationsAdapter.kt$ConversationsAdapter$findItem(R.id.cab_dial_number).isVisible = isSingleSelection &amp;&amp; !isGroupConversation &amp;&amp; !isShortCodeWithLetters(selectedConversation.phoneNumber)</ID>
<ID>MaxLineLength:ConversationsAdapter.kt$ConversationsAdapter$menu.findItem(R.id.cab_pin_conversation).isVisible = selectedConversations.any { !pinnedConversations.contains(it.threadId.toString()) }</ID>
<ID>MaxLineLength:ConversationsAdapter.kt$ConversationsAdapter$menu.findItem(R.id.cab_unpin_conversation).isVisible = selectedConversations.any { pinnedConversations.contains(it.threadId.toString()) }</ID>
<ID>MaxLineLength:ConversationsAdapter.kt$ConversationsAdapter$val conversationsMarkedAsRead = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList&lt;Conversation&gt;</ID>
<ID>MaxLineLength:ConversationsAdapter.kt$ConversationsAdapter$val conversationsMarkedAsUnread = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList&lt;Conversation&gt;</ID>
<ID>MaxLineLength:ConversationsAdapter.kt$ConversationsAdapter$val conversationsToRemove = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList&lt;Conversation&gt;</ID>
<ID>MaxLineLength:ConversationsAdapter.kt$ConversationsAdapter$val question = String.format(resources.getString(org.fossify.commons.R.string.block_confirmation), numbersString)</ID>
<ID>MaxLineLength:ConversationsDao.kt$ConversationsDao$@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE (SELECT COUNT(*) FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND messages.thread_id = conversations.thread_id) &gt; 0")</ID>
<ID>MaxLineLength:ConversationsDao.kt$ConversationsDao$@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE archived = 0")</ID>
<ID>MaxLineLength:ConversationsDao.kt$ConversationsDao$@Query("SELECT (SELECT body FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND messages.thread_id = conversations.thread_id ORDER BY messages.date DESC LIMIT 1) as new_snippet, * FROM conversations WHERE archived = 1")</ID>
<ID>MaxLineLength:DirectReplyReceiver.kt$DirectReplyReceiver$context.notificationHelper.showMessageNotification(messageId, address, body, threadId, bitmap, sender = null, alertOnlyOnce = true)</ID>
<ID>MaxLineLength:DirectReplyReceiver.kt$DirectReplyReceiver$val message = context.getMessages(threadId, getImageResolutions = false, includeScheduledMessages = false, limit = 1).lastOrNull()</ID>
<ID>MaxLineLength:Gson.kt$private val gsonBuilder = GsonBuilder().registerTypeAdapter(object : TypeToken&lt;Map&lt;String, Any&gt;&gt;() {}.type, MapDeserializerDoubleAsIntFix())</ID>
<ID>MaxLineLength:HeadlessSmsSendService.kt$HeadlessSmsSendService$val number = Uri.decode(intent.dataString!!.removePrefix("sms:").removePrefix("smsto:").removePrefix("mms").removePrefix("mmsto:").trim())</ID>
<ID>MaxLineLength:ImageCompressor.kt$ImageCompressor$fun</ID>
<ID>MaxLineLength:ImageCompressor.kt$ImageCompressor$private</ID>
<ID>MaxLineLength:ImageCompressor.kt$ImageCompressor$var imageFile = File(outputDirectory, System.currentTimeMillis().toString().plus(mimeType.getExtensionFromMimeType()))</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$(drawable as LayerDrawable).findDrawableByLayerId(org.fossify.commons.R.id.shortcut_plus_background).applyColorFilter(appIconColor)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$// there are no cached conversations on the first run so we show the loading placeholder and progress until we are done loading from telephony</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$// while SEND_SMS and READ_SMS permissions are mandatory, READ_CONTACTS is optional. If we don't have it, we just won't be able to show the contact name in some cases</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_2_title_commons, org.fossify.commons.R.string.faq_2_text_commons))</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$faqItems.add(FAQItem(org.fossify.commons.R.string.faq_6_title_commons, org.fossify.commons.R.string.faq_6_text_commons))</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$val searchResult = SearchResult(-1, conversation.title, conversation.phoneNumber, date, conversation.threadId, conversation.photoUri)</ID>
<ID>MaxLineLength:MainActivity.kt$MainActivity$val searchResult = SearchResult(message.id, recipient, message.body, date, message.threadId, message.senderPhotoUri)</ID>
<ID>MaxLineLength:ManageBlockedKeywordsActivity.kt$ManageBlockedKeywordsActivity$ManageBlockedKeywordsAdapter</ID>
<ID>MaxLineLength:ManageBlockedKeywordsActivity.kt$ManageBlockedKeywordsActivity$setupMaterialScrollListener(scrollingView = binding.manageBlockedKeywordsList, toolbar = binding.blockKeywordsToolbar)</ID>
<ID>MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND recycle_bin_messages.deleted_ts &lt; :timestamp")</ID>
<ID>MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL AND thread_id = :threadId")</ID>
<ID>MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NOT NULL")</ID>
<ID>MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND thread_id = :threadId AND is_scheduled = 1")</ID>
<ID>MaxLineLength:MessagesDao.kt$MessagesDao$@Query("SELECT messages.* FROM messages LEFT OUTER JOIN recycle_bin_messages ON messages.id = recycle_bin_messages.id WHERE recycle_bin_messages.id IS NULL AND thread_id = :threadId")</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase$@Database(entities = [Conversation::class, Attachment::class, MessageAttachment::class, Message::class, RecycleBinMessage::class], version = 8)</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion$db</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$"INSERT OR IGNORE INTO conversations_new (thread_id, snippet, date, read, title, photo_uri, is_group_conversation, phone_number) "</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$"SELECT thread_id, snippet, date, read, title, photo_uri, is_group_conversation, phone_number FROM conversations"</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$execSQL("CREATE TABLE IF NOT EXISTS `attachments` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `message_id` INTEGER NOT NULL, `uri_string` TEXT NOT NULL, `mimetype` TEXT NOT NULL, `width` INTEGER NOT NULL, `height` INTEGER NOT NULL, `filename` TEXT NOT NULL)")</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$execSQL("CREATE TABLE IF NOT EXISTS `message_attachments` (`id` INTEGER PRIMARY KEY NOT NULL, `text` TEXT NOT NULL, `attachments` TEXT NOT NULL)")</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$execSQL("CREATE TABLE IF NOT EXISTS `messages` (`id` INTEGER PRIMARY KEY NOT NULL, `body` TEXT NOT NULL, `type` INTEGER NOT NULL, `participants` TEXT NOT NULL, `date` INTEGER NOT NULL, `read` INTEGER NOT NULL, `thread_id` INTEGER NOT NULL, `is_mms` INTEGER NOT NULL, `attachment` TEXT, `sender_name` TEXT NOT NULL, `sender_photo_uri` TEXT NOT NULL, `subscription_id` INTEGER NOT NULL)")</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$execSQL("CREATE TABLE IF NOT EXISTS `recycle_bin_messages` (`id` INTEGER NOT NULL PRIMARY KEY, `deleted_ts` INTEGER NOT NULL)")</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$execSQL("CREATE TABLE conversations_new (`thread_id` INTEGER NOT NULL PRIMARY KEY, `snippet` TEXT NOT NULL, `date` INTEGER NOT NULL, `read` INTEGER NOT NULL, `title` TEXT NOT NULL, `photo_uri` TEXT NOT NULL, `is_group_conversation` INTEGER NOT NULL, `phone_number` TEXT NOT NULL)")</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_conversations_id` ON `conversations` (`thread_id`)")</ID>
<ID>MaxLineLength:MessagesDatabase.kt$MessagesDatabase.Companion.&lt;no name provided&gt;$execSQL("CREATE UNIQUE INDEX IF NOT EXISTS `index_recycle_bin_messages_id` ON `recycle_bin_messages` (`id`)")</ID>
<ID>MaxLineLength:MessagesImporter.kt$MessagesImporter$messagesFailed &gt; 0 &amp;&amp; messagesImported &gt; 0 -&gt; activity.toast(org.fossify.commons.R.string.importing_some_entries_failed)</ID>
<ID>MaxLineLength:MessagesReader.kt$MessagesReader$parts.add(MmsPart(contentDisposition, charset, contentId, contentLocation, contentType, ctStart, ctType, filename, name, sequenceOrder, text, data))</ID>
<ID>MaxLineLength:MessagesReader.kt$MessagesReader$smsList.add(SmsBackup(subscriptionId, address, body, date, dateSent, locked, protocol, read, status, type, serviceCenter))</ID>
<ID>MaxLineLength:MessagesReader.kt$MessagesReader$val partUri = if (isQPlus()) Mms.Part.CONTENT_URI.buildUpon().appendPath(partId.toString()).build() else Uri.parse("content://mms/part/$partId")</ID>
<ID>MaxLineLength:MessagesReader.kt$MessagesReader$val uri = if (isRPlus()) Mms.Addr.getAddrUriForMessage(messageId.toString()) else Uri.parse("content://mms/$messageId/addr")</ID>
<ID>MaxLineLength:MessagesWriter.kt$MessagesWriter$// 2. write parts - parts depend on the msg id, check if part exist before writing, write data if it is a non-text part</ID>
<ID>MaxLineLength:MessagesWriter.kt$MessagesWriter$val addressUri = if (isRPlus()) Mms.Addr.getAddrUriForMessage(messageId.toString()) else Uri.parse("content://mms/$messageId/addr")</ID>
<ID>MaxLineLength:MessagesWriter.kt$MessagesWriter$val selection = "${Mms.Part.CONTENT_LOCATION} = ? AND ${Mms.Part.CONTENT_TYPE} = ? AND ${Mms.Part.MSG_ID} = ? AND ${Mms.Part.CONTENT_ID} = ?"</ID>
<ID>MaxLineLength:MessagesWriter.kt$MessagesWriter$val selectionArgs = arrayOf(mmsBackup.date.toString(), mmsBackup.dateSent.toString(), threadId.toString(), mmsBackup.messageBox.toString())</ID>
<ID>MaxLineLength:MessagesWriter.kt$MessagesWriter$val selectionArgs = arrayOf(mmsPart.contentLocation.toString(), mmsPart.contentType, messageId.toString(), mmsPart.contentId.toString())</ID>
<ID>MaxLineLength:Messaging.kt$*</ID>
<ID>MaxLineLength:Messaging.kt$fun</ID>
<ID>MaxLineLength:Messaging.kt$messagingUtils.sendSmsMessage(text, addresses.toSet(), settings.subscriptionId, settings.deliveryReports, messageId)</ID>
<ID>MaxLineLength:MessagingUtils.kt$MessagingUtils$context.showErrorToast(e.localizedMessage ?: context.getString(org.fossify.commons.R.string.unknown_error_occurred))</ID>
<ID>MaxLineLength:MessagingUtils.kt$MessagingUtils$fun</ID>
<ID>MaxLineLength:MmsPart.kt$MmsPart$return !(text != null || contentType.lowercase().startsWith("text") || contentType.lowercase() == "application/smil")</ID>
<ID>MaxLineLength:MmsReceiver.kt$MmsReceiver$override fun onError(context: Context, error: String)</ID>
<ID>MaxLineLength:NewConversationActivity.kt$NewConversationActivity$// READ_CONTACTS permission is not mandatory, but without it we won't be able to show any suggestions during typing</ID>
<ID>MaxLineLength:NewConversationActivity.kt$NewConversationActivity$SimpleContactsHelper(this@NewConversationActivity).loadContactImage(contact.photoUri, suggestedContactImage, contact.name)</ID>
<ID>MaxLineLength:NewConversationActivity.kt$NewConversationActivity$if</ID>
<ID>MaxLineLength:NewConversationActivity.kt$NewConversationActivity$items.add(RadioItem(index, "${phoneNumber.normalizedNumber} ($type)", phoneNumber.normalizedNumber))</ID>
<ID>MaxLineLength:NewConversationActivity.kt$NewConversationActivity$val number = intent.dataString!!.removePrefix("sms:").removePrefix("smsto:").removePrefix("mms").removePrefix("mmsto:").replace("+", "%2b").trim()</ID>
<ID>MaxLineLength:NewConversationActivity.kt$NewConversationActivity$}</ID>
<ID>MaxLineLength:NotificationHelper.kt$NotificationHelper$PendingIntent.getActivity(context, notificationId, contentIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE)</ID>
<ID>MaxLineLength:NotificationHelper.kt$NotificationHelper$PendingIntent.getBroadcast(context, notificationId, deleteSmsIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE)</ID>
<ID>MaxLineLength:NotificationHelper.kt$NotificationHelper$PendingIntent.getBroadcast(context, notificationId, markAsReadIntent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE)</ID>
<ID>MaxLineLength:NotificationHelper.kt$NotificationHelper$builder.addAction(org.fossify.commons.R.drawable.ic_check_vector, context.getString(R.string.mark_as_read), markAsReadPendingIntent)</ID>
<ID>MaxLineLength:NotificationHelper.kt$NotificationHelper$private</ID>
<ID>MaxLineLength:NotificationHelper.kt$NotificationHelper$val activeStyle = NotificationCompat.MessagingStyle.extractMessagingStyleFromNotification(currentNotification.notification)</ID>
<ID>MaxLineLength:NotificationHelper.kt$NotificationHelper$val contentPendingIntent = PendingIntent.getActivity(context, notificationId, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_MUTABLE)</ID>
<ID>MaxLineLength:RecycleBinConversationsAdapter.kt$RecycleBinConversationsAdapter$val conversationsToRemove = currentList.filter { selectedKeys.contains(it.hashCode()) } as ArrayList&lt;Conversation&gt;</ID>
<ID>MaxLineLength:ScheduleMessageDialog.kt$ScheduleMessageDialog$activity</ID>
<ID>MaxLineLength:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$context.showErrorToast(e.localizedMessage ?: context.getString(org.fossify.commons.R.string.unknown_error_occurred))</ID>
<ID>MaxLineLength:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$val wakelock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "simple.messenger:scheduled.message.receiver")</ID>
<ID>MaxLineLength:SearchResult.kt$SearchResult</ID>
<ID>MaxLineLength:SearchResultsAdapter.kt$SearchResultsAdapter$SimpleContactsHelper(activity).loadContactImage(searchResult.photoUri, searchResultImage, searchResult.title)</ID>
<ID>MaxLineLength:SearchResultsAdapter.kt$SearchResultsAdapter$activity: SimpleActivity</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$ConfirmationDialog(this@SettingsActivity, "", confirmationTextId, org.fossify.commons.R.string.ok, 0) { }</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$private</ID>
<ID>MaxLineLength:SettingsActivity.kt$SettingsActivity$settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") &amp;&amp; !isTiramisuPlus())</ID>
<ID>MaxLineLength:SmsReceiver.kt$SmsReceiver$handleMessage(context, address, subject, body, date, read, threadId, type, subscriptionId, status)</ID>
<ID>MaxLineLength:SmsReceiver.kt$SmsReceiver$val newMessageId = context.insertNewSMS(address, subject, body, date, read, threadId, type, subscriptionId)</ID>
<ID>MaxLineLength:SmsReceiver.kt$SmsReceiver$val participant = SimpleContact(0, 0, senderName, photoUri, arrayListOf(phoneNumber), ArrayList(), ArrayList())</ID>
<ID>MaxLineLength:SmsSender.kt$SmsSender$val intent = Intent(SendStatusReceiver.SMS_DELIVERED_ACTION, requestUri, app, SmsStatusDeliveredReceiver::class.java)</ID>
<ID>MaxLineLength:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$// TODO: Need to check whether SC still trying to deliver the SMS to destination and will send the report again?</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$(selectedContactBg as LayerDrawable).findDrawableByLayerId(R.id.selected_contact_bg).applyColorFilter(properPrimaryColor)</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$// do not show the date/time above every message, only if the difference between the 2 messages is at least MIN_DATE_TIME_DIFF_SECS,</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$CAPTURE_VIDEO_INTENT, PICK_DOCUMENT_INTENT, CAPTURE_AUDIO_INTENT, PICK_PHOTO_INTENT, PICK_VIDEO_INTENT -&gt; addAttachment(data)</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$binding.messageHolder.scheduledMessageButton.text</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$binding.messageHolder.threadSelectSimNumber.text = (availableSIMCards[currentSIMCardIndex].id).toString()</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$deleteMessages = { messages, toRecycleBin, fromRecycleBin -&gt; deleteMessages(messages, toRecycleBin, fromRecycleBin) }</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$findItem(R.id.add_number_to_contact).isVisible</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$findItem(R.id.archive).isVisible = threadItems.isNotEmpty() &amp;&amp; conversation?.isArchived == false &amp;&amp; !isRecycleBin &amp;&amp; archiveAvailable</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$findItem(R.id.rename_conversation).isVisible = participants.size &gt; 1 &amp;&amp; conversation != null &amp;&amp; !isRecycleBin</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$findItem(R.id.unarchive).isVisible = threadItems.isNotEmpty() &amp;&amp; conversation?.isArchived == true &amp;&amp; !isRecycleBin &amp;&amp; archiveAvailable</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$if</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$it.height = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT)!!.toInt()</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$it.width = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH)!!.toInt()</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$launchActivityForResult(this, PICK_SAVE_FILE_INTENT, error = org.fossify.commons.R.string.system_service_disabled)</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$messages = messages.filter { !recycledMessages.contains(it.id) }.toMutableList() as ArrayList&lt;Message&gt;</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$private</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$privateContacts.firstOrNull { it.doesHavePhoneNumber(participant.phoneNumbers.first().normalizedNumber) }</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$updateMaterialActivityViews(binding.threadCoordinator, null, useTransparentNavigation = false, useTopSearchMenu = false)</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$val contact = SimpleContact(number.hashCode(), number.hashCode(), number, "", arrayListOf(phoneNumber), ArrayList(), ArrayList())</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$val firstRowWidth = parentWidth - resources.getDimension(org.fossify.commons.R.dimen.normal_icon_size).toInt() + sideMargin / 2</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$val isSentFromDifferentKnownSIM = prevSIMId != -1 &amp;&amp; message.subscriptionId != -1 &amp;&amp; prevSIMId != message.subscriptionId</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$val question = String.format(resources.getString(org.fossify.commons.R.string.block_confirmation), numbersString)</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$val shouldScrollToBottom = currentList.lastOrNull() != threadItems.lastOrNull() &amp;&amp; lastPosition - lastVisiblePosition == 1</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity$val subscriptionId = availableSIMCards.getOrNull(currentSIMCardIndex)?.subscriptionId ?: SmsManager.getDefaultSmsSubscriptionId()</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity.&lt;no name provided&gt;$override fun onProgress(insets: WindowInsetsCompat, runningAnimations: MutableList&lt;WindowInsetsAnimationCompat&gt;)</ID>
<ID>MaxLineLength:ThreadActivity.kt$ThreadActivity.&lt;no name provided&gt;$val isCloseToBottom = lastVisibleItemPosition &gt;= getOrCreateThreadAdapter().itemCount - SCROLL_TO_BOTTOM_FAB_LIMIT</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter$// not sure how we can get UnknownFormatConversionException here, so show the error and hope that someone reports it</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter$mimetype.isImageMimeType() || mimetype.isVideoMimeType() -&gt; setupImageView(holder, binding = this, message, attachment)</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter$mimetype.isVCardMimeType() -&gt; setupVCardView(holder, threadMessageAttachmentsHolder, message, attachment)</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter$private</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter$private fun getSelectedItems()</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter$text = dateTime.date.formatDateOrTime(context, hideTimeAtOtherDays = false, showYearEvenIfCurrent = false)</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter$threadSuccess.setImageResource(if (isDelivered) R.drawable.ic_check_double_vector else org.fossify.commons.R.drawable.ic_check_vector)</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter$val</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter.&lt;no name provided&gt;$override</ID>
<ID>MaxLineLength:ThreadAdapter.kt$ThreadAdapter.&lt;no name provided&gt;$override fun onResourceReady(dr: Drawable, a: Any, t: Target&lt;Drawable&gt;, d: DataSource, i: Boolean)</ID>
<ID>MaxLineLength:VCard.kt$Telephone::class.java</ID>
<ID>MaxLineLength:VCard.kt$VCardPropertyWrapper.Companion$is Note -&gt; VCardPropertyWrapper(value, context.getString(org.fossify.commons.R.string.notes), property)</ID>
<ID>MaxLineLength:VCard.kt$VCardPropertyWrapper.Companion$is Telephone -&gt; VCardPropertyWrapper(text.normalizePhoneNumber(), getPropertyTypeString(context), property)</ID>
<ID>MaxLineLength:VCard.kt$VCardWrapper$data</ID>
<ID>MaxLineLength:VCardViewerActivity.kt$VCardViewerActivity$updateMaterialActivityViews(binding.vcardViewerCoordinator, binding.contactsList, useTransparentNavigation = true, useTopSearchMenu = false)</ID>
<ID>MaxLineLength:VCardViewerAdapter.kt$VCardViewerAdapter.VCardPropertyViewHolder$inner</ID>
<ID>NestedBlockDepth:AttachmentUtils.kt$AttachmentUtils$private fun readBody(parser: XmlPullParser): List&lt;String&gt;</ID>
<ID>NestedBlockDepth:Context.kt$fun Context.getAllDrafts(): HashMap&lt;Long, String?&gt;</ID>
<ID>NestedBlockDepth:Context.kt$fun Context.getThreadParticipants(threadId: Long, contactsMap: HashMap&lt;Int, SimpleContact&gt;?): ArrayList&lt;SimpleContact&gt;</ID>
<ID>NestedBlockDepth:MessagesImporter.kt$MessagesImporter$private fun InputStream.importXml()</ID>
<ID>NestedBlockDepth:MessagesWriter.kt$MessagesWriter$@SuppressLint("NewApi") private fun writeMmsPart(mmsPart: MmsPart, messageId: Long)</ID>
<ID>NestedBlockDepth:Messaging.kt$fun Context.sendMessageCompat(text: String, addresses: List&lt;String&gt;, subId: Int?, attachments: List&lt;Attachment&gt;, messageId: Long? = null)</ID>
<ID>NestedBlockDepth:MessagingUtils.kt$MessagingUtils$@Deprecated("TODO: Move/rewrite MMS code into the app.") fun sendMmsMessage(text: String, addresses: List&lt;String&gt;, attachment: Attachment?, settings: Settings, messageId: Long? = null)</ID>
<ID>NestedBlockDepth:MessagingUtils.kt$MessagingUtils$fun updateSmsMessageSendingStatus(messageUri: Uri?, type: Int)</ID>
<ID>NestedBlockDepth:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$override fun updateAndroidDatabase(context: Context, intent: Intent, receiverResultCode: Int)</ID>
<ID>NestedBlockDepth:ThreadActivity.kt$ThreadActivity$private fun fetchNextMessages()</ID>
<ID>NestedBlockDepth:ThreadActivity.kt$ThreadActivity$private fun setupAttachmentSizes()</ID>
<ID>NestedBlockDepth:ThreadActivity.kt$ThreadActivity$private fun setupButtons()</ID>
<ID>NestedBlockDepth:ThreadAdapter.kt$ThreadAdapter$private fun setupSentMessageView(messageBinding: ItemMessageBinding, message: Message)</ID>
<ID>NestedBlockDepth:ThreadAdapter.kt$ThreadAdapter$private fun setupView(holder: ViewHolder, view: View, message: Message)</ID>
<ID>PrintStackTrace:Context.kt$e</ID>
<ID>PrintStackTrace:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$e</ID>
<ID>PrintStackTrace:SmsManager.kt$e</ID>
<ID>ReturnCount:Context.kt$fun Context.getFileSizeFromUri(uri: Uri): Long</ID>
<ID>ReturnCount:Context.kt$fun Context.getNameAndPhotoFromPhoneNumber(number: String): NamePhoto</ID>
<ID>ReturnCount:MapDeserializerDoubleAsIntFix.kt$MapDeserializerDoubleAsIntFix$fun read(element: JsonElement): Any?</ID>
<ID>ReturnCount:MessagesReader.kt$MessagesReader$@SuppressLint("NewApi") private fun usePart(partId: Long, block: (InputStream) -&gt; String): String</ID>
<ID>ReturnCount:ThreadActivity.kt$ThreadActivity$private fun addAttachment(uri: Uri)</ID>
<ID>ReturnCount:VCardParser.kt$fun VCard?.parseNameFromVCard(): String?</ID>
<ID>SpreadOperator:Context.kt$(*scheduledMessages)</ID>
<ID>SpreadOperator:MainActivity.kt$MainActivity$(*currentMessages.toTypedArray())</ID>
<ID>SpreadOperator:ThreadActivity.kt$ThreadActivity$(*currentMessages.toTypedArray())</ID>
<ID>SwallowedException:Activity.kt$e: ActivityNotFoundException</ID>
<ID>SwallowedException:ArchivedConversationsActivity.kt$ArchivedConversationsActivity$e: Exception</ID>
<ID>SwallowedException:AttachmentPreviews.kt$e: Exception</ID>
<ID>SwallowedException:Context.kt$e: Exception</ID>
<ID>SwallowedException:Context.kt$e: FileNotFoundException</ID>
<ID>SwallowedException:ImageCompressor.kt$ImageCompressor$e: Exception</ID>
<ID>SwallowedException:JsonElement.kt$e: Exception</ID>
<ID>SwallowedException:MainActivity.kt$MainActivity$e: Exception</ID>
<ID>SwallowedException:MessagesImporter.kt$MessagesImporter$e: Exception</ID>
<ID>SwallowedException:MessagesImporter.kt$MessagesImporter$e: IllegalArgumentException</ID>
<ID>SwallowedException:MessagesImporter.kt$MessagesImporter$e: SerializationException</ID>
<ID>SwallowedException:MessagesReader.kt$MessagesReader$e: IOException</ID>
<ID>SwallowedException:MessagesWriter.kt$MessagesWriter$e: Exception</ID>
<ID>SwallowedException:MmsReceiver.kt$MmsReceiver$e: Exception</ID>
<ID>SwallowedException:NewConversationActivity.kt$NewConversationActivity$e: Exception</ID>
<ID>SwallowedException:RecycleBinConversationsActivity.kt$RecycleBinConversationsActivity$e: Exception</ID>
<ID>SwallowedException:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$e: NullPointerException</ID>
<ID>SwallowedException:ThreadActivity.kt$ThreadActivity$e: ActivityNotFoundException</ID>
<ID>SwallowedException:ThreadActivity.kt$ThreadActivity$e: Exception</ID>
<ID>SwallowedException:VCardParser.kt$e: Exception</ID>
<ID>ThrowingExceptionsWithoutMessageOrCause:AttachmentUtils.kt$AttachmentUtils$IllegalStateException()</ID>
<ID>ThrowingExceptionsWithoutMessageOrCause:MessagesImporter.kt$MessagesImporter$IllegalStateException()</ID>
<ID>ThrowsCount:SmsSender.kt$SmsSender$fun sendMessage( subId: Int, destination: String, body: String, serviceCenter: String?, requireDeliveryReport: Boolean, messageUri: Uri )</ID>
<ID>TooGenericExceptionCaught:Activity.kt$e: Exception</ID>
<ID>TooGenericExceptionCaught:ArchivedConversationsActivity.kt$ArchivedConversationsActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:AttachmentPreviews.kt$e: Exception</ID>
<ID>TooGenericExceptionCaught:Context.kt$e: Exception</ID>
<ID>TooGenericExceptionCaught:DirectReplyReceiver.kt$DirectReplyReceiver$e: Exception</ID>
<ID>TooGenericExceptionCaught:ImageCompressor.kt$ImageCompressor$e: Exception</ID>
<ID>TooGenericExceptionCaught:JsonElement.kt$e: Exception</ID>
<ID>TooGenericExceptionCaught:MainActivity.kt$MainActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:MessagesImporter.kt$MessagesImporter$e: Exception</ID>
<ID>TooGenericExceptionCaught:MessagesWriter.kt$MessagesWriter$e: Exception</ID>
<ID>TooGenericExceptionCaught:Messaging.kt$e: Exception</ID>
<ID>TooGenericExceptionCaught:MessagingUtils.kt$MessagingUtils$e: Error</ID>
<ID>TooGenericExceptionCaught:MessagingUtils.kt$MessagingUtils$e: Exception</ID>
<ID>TooGenericExceptionCaught:MmsReceiver.kt$MmsReceiver$e: Exception</ID>
<ID>TooGenericExceptionCaught:NewConversationActivity.kt$NewConversationActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:RecycleBinConversationsActivity.kt$RecycleBinConversationsActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$e: Error</ID>
<ID>TooGenericExceptionCaught:ScheduledMessageReceiver.kt$ScheduledMessageReceiver$e: Exception</ID>
<ID>TooGenericExceptionCaught:SettingsActivity.kt$SettingsActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:SmsManager.kt$e: Exception</ID>
<ID>TooGenericExceptionCaught:SmsSender.kt$SmsSender$e: Exception</ID>
<ID>TooGenericExceptionCaught:SmsStatusDeliveredReceiver.kt$SmsStatusDeliveredReceiver$e: NullPointerException</ID>
<ID>TooGenericExceptionCaught:ThreadActivity.kt$ThreadActivity$e: Error</ID>
<ID>TooGenericExceptionCaught:ThreadActivity.kt$ThreadActivity$e: Exception</ID>
<ID>TooGenericExceptionCaught:ThreadAdapter.kt$ThreadAdapter$e: Exception</ID>
<ID>TooGenericExceptionCaught:VCardParser.kt$e: Exception</ID>
<ID>TooManyFunctions:ArchivedConversationsActivity.kt$ArchivedConversationsActivity : SimpleActivity</ID>
<ID>TooManyFunctions:BaseConversationsAdapter.kt$BaseConversationsAdapter : MyRecyclerViewListAdapterOnPopupTextUpdate</ID>
<ID>TooManyFunctions:ContactsAdapter.kt$ContactsAdapter : MyRecyclerViewAdapter</ID>
<ID>TooManyFunctions:Context.kt$org.fossify.messages.extensions.Context.kt</ID>
<ID>TooManyFunctions:ConversationsAdapter.kt$ConversationsAdapter : BaseConversationsAdapter</ID>
<ID>TooManyFunctions:ConversationsDao.kt$ConversationsDao</ID>
<ID>TooManyFunctions:JsonObject.kt$org.fossify.messages.extensions.gson.JsonObject.kt</ID>
<ID>TooManyFunctions:MainActivity.kt$MainActivity : SimpleActivity</ID>
<ID>TooManyFunctions:ManageBlockedKeywordsAdapter.kt$ManageBlockedKeywordsAdapter : MyRecyclerViewAdapter</ID>
<ID>TooManyFunctions:MessagesDao.kt$MessagesDao</ID>
<ID>TooManyFunctions:RecycleBinConversationsActivity.kt$RecycleBinConversationsActivity : SimpleActivity</ID>
<ID>TooManyFunctions:SearchResultsAdapter.kt$SearchResultsAdapter : MyRecyclerViewAdapter</ID>
<ID>TooManyFunctions:SettingsActivity.kt$SettingsActivity : SimpleActivity</ID>
<ID>TooManyFunctions:ThreadActivity.kt$ThreadActivity : SimpleActivity</ID>
<ID>TooManyFunctions:ThreadAdapter.kt$ThreadAdapter : MyRecyclerViewListAdapter</ID>
<ID>UnusedParameter:ArchivedConversationsActivity.kt$ArchivedConversationsActivity$event: Events.RefreshMessages</ID>
<ID>UnusedParameter:MainActivity.kt$MainActivity$event: Events.RefreshMessages</ID>
<ID>UnusedParameter:RecycleBinConversationsActivity.kt$RecycleBinConversationsActivity$event: Events.RefreshMessages</ID>
<ID>UnusedParameter:ThreadActivity.kt$ThreadActivity$event: Events.RefreshMessages</ID>
<ID>UnusedPrivateMember:MessagesImporter.kt$MessagesImporter$private fun isJsonMimeType(mimeType: String): Boolean</ID>
<ID>UseCheckOrError:AttachmentUtils.kt$AttachmentUtils$throw IllegalStateException()</ID>
<ID>UseCheckOrError:MessagesImporter.kt$MessagesImporter$throw IllegalStateException()</ID>
<ID>UseRequire:SmsSender.kt$SmsSender$throw IllegalArgumentException("SmsSender: empty text message")</ID>
<ID>VariableNaming:MainActivity.kt$MainActivity$private val MAKE_DEFAULT_APP_REQUEST = 1</ID>
<ID>VariableNaming:MessagesWriter.kt$MessagesWriter$private val INVALID_ID = -1L</ID>
<ID>VariableNaming:ThreadActivity.kt$ThreadActivity$private val MIN_DATE_TIME_DIFF_SECS = 300</ID>
<ID>VariableNaming:ThreadActivity.kt$ThreadActivity$private val SCROLL_TO_BOTTOM_FAB_LIMIT = 20</ID>
<ID>VariableNaming:ThreadActivity.kt$ThreadActivity$private val TYPE_DELETE = 16</ID>
<ID>VariableNaming:ThreadActivity.kt$ThreadActivity$private val TYPE_EDIT = 14</ID>
<ID>VariableNaming:ThreadActivity.kt$ThreadActivity$private val TYPE_SEND = 15</ID>
<ID>WildcardImport:Activity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ArchivedConversationsActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:AttachmentPreviews.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:AttachmentPreviews.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:AttachmentsAdapter.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:AttachmentsAdapter.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:AttachmentsAdapter.kt$import org.fossify.messages.helpers.*</ID>
<ID>WildcardImport:BaseConversationsAdapter.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:Context.kt$import android.provider.Telephony.*</ID>
<ID>WildcardImport:Context.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:Context.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:Context.kt$import org.fossify.messages.helpers.*</ID>
<ID>WildcardImport:Context.kt$import org.fossify.messages.models.*</ID>
<ID>WildcardImport:ConversationDetailsActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ConversationDetailsActivity.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:ConversationsAdapter.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ConversationsAdapter.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:DirectReplyReceiver.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:ExportMessagesDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:JsonElement.kt$import com.google.gson.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:MainActivity.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:ManageBlockedKeywordsActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ManageBlockedKeywordsAdapter.kt$import android.view.*</ID>
<ID>WildcardImport:MessagesDao.kt$import androidx.room.*</ID>
<ID>WildcardImport:MessagesDatabase.kt$import org.fossify.messages.models.*</ID>
<ID>WildcardImport:MessagesImporter.kt$import org.fossify.messages.models.*</ID>
<ID>WildcardImport:MessagesReader.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:MessagesReader.kt$import org.fossify.messages.models.*</ID>
<ID>WildcardImport:MmsReceiver.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:NewConversationActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:NewConversationActivity.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:NewConversationActivity.kt$import org.fossify.messages.helpers.*</ID>
<ID>WildcardImport:RecycleBinConversationsActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ScheduleMessageDialog.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.dialogs.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:SettingsActivity.kt$import org.fossify.messages.helpers.*</ID>
<ID>WildcardImport:SmsReceiver.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:SmsStatusSentReceiver.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:ThreadActivity.kt$import androidx.core.view.*</ID>
<ID>WildcardImport:ThreadActivity.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ThreadActivity.kt$import org.fossify.commons.helpers.*</ID>
<ID>WildcardImport:ThreadActivity.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:ThreadActivity.kt$import org.fossify.messages.helpers.*</ID>
<ID>WildcardImport:ThreadActivity.kt$import org.fossify.messages.messaging.*</ID>
<ID>WildcardImport:ThreadActivity.kt$import org.fossify.messages.models.*</ID>
<ID>WildcardImport:ThreadActivity.kt$import org.fossify.messages.models.ThreadItem.*</ID>
<ID>WildcardImport:ThreadAdapter.kt$import org.fossify.commons.extensions.*</ID>
<ID>WildcardImport:ThreadAdapter.kt$import org.fossify.messages.databinding.*</ID>
<ID>WildcardImport:ThreadAdapter.kt$import org.fossify.messages.extensions.*</ID>
<ID>WildcardImport:ThreadAdapter.kt$import org.fossify.messages.helpers.*</ID>
<ID>WildcardImport:ThreadAdapter.kt$import org.fossify.messages.models.ThreadItem.*</ID>
<ID>WildcardImport:VCard.kt$import ezvcard.property.*</ID>
<ID>WildcardImport:VCardViewerAdapter.kt$import org.fossify.commons.extensions.*</ID>
</CurrentIssues>
</SmellBaseline>

2178
app/lint-baseline.xml Normal file

File diff suppressed because it is too large Load diff

View file

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

View file

@ -227,9 +227,9 @@ class ManageBlockedKeywordsActivity : BaseSimpleActivity(), RefreshRecyclerViewL
private fun updateBlockedKeywords() {
ensureBackgroundThread {
val blockedKeywords = config.blockedKeywords
val blockedKeywords = config.blockedKeywords.sorted().toArrayList()
runOnUiThread {
ManageBlockedKeywordsAdapter(this, blockedKeywords.toArrayList(), this, binding.manageBlockedKeywordsList) {
ManageBlockedKeywordsAdapter(this, blockedKeywords, this, binding.manageBlockedKeywordsList) {
addOrEditBlockedKeyword(it as String)
}.apply {
binding.manageBlockedKeywordsList.adapter = this

View file

@ -5,13 +5,41 @@ import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.provider.DocumentsContract
import androidx.activity.result.contract.ActivityResultContracts
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.encodeToStream
import org.fossify.commons.activities.ManageBlockedNumbersActivity
import org.fossify.commons.dialogs.*
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.*
import org.fossify.commons.dialogs.ChangeDateTimeFormatDialog
import org.fossify.commons.dialogs.ConfirmationDialog
import org.fossify.commons.dialogs.FeatureLockedDialog
import org.fossify.commons.dialogs.RadioGroupDialog
import org.fossify.commons.dialogs.SecurityDialog
import org.fossify.commons.extensions.addLockedLabelIfNeeded
import org.fossify.commons.extensions.beGoneIf
import org.fossify.commons.extensions.beVisibleIf
import org.fossify.commons.extensions.getBlockedNumbers
import org.fossify.commons.extensions.getCustomizeColorsString
import org.fossify.commons.extensions.getFontSizeText
import org.fossify.commons.extensions.getProperPrimaryColor
import org.fossify.commons.extensions.isOrWasThankYouInstalled
import org.fossify.commons.extensions.launchPurchaseThankYouIntent
import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.toast
import org.fossify.commons.extensions.updateTextColors
import org.fossify.commons.extensions.viewBinding
import org.fossify.commons.helpers.FONT_SIZE_EXTRA_LARGE
import org.fossify.commons.helpers.FONT_SIZE_LARGE
import org.fossify.commons.helpers.FONT_SIZE_MEDIUM
import org.fossify.commons.helpers.FONT_SIZE_SMALL
import org.fossify.commons.helpers.NavigationIcon
import org.fossify.commons.helpers.PROTECTION_FINGERPRINT
import org.fossify.commons.helpers.SHOW_ALL_TABS
import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.helpers.isNougatPlus
import org.fossify.commons.helpers.isOreoPlus
import org.fossify.commons.helpers.isPiePlus
import org.fossify.commons.helpers.isTiramisuPlus
import org.fossify.commons.models.RadioItem
import org.fossify.messages.R
import org.fossify.messages.databinding.ActivitySettingsBinding
@ -19,7 +47,19 @@ import org.fossify.messages.dialogs.ExportMessagesDialog
import org.fossify.messages.extensions.config
import org.fossify.messages.extensions.emptyMessagesRecycleBin
import org.fossify.messages.extensions.messagesDB
import org.fossify.messages.helpers.*
import org.fossify.messages.helpers.FILE_SIZE_100_KB
import org.fossify.messages.helpers.FILE_SIZE_1_MB
import org.fossify.messages.helpers.FILE_SIZE_200_KB
import org.fossify.messages.helpers.FILE_SIZE_2_MB
import org.fossify.messages.helpers.FILE_SIZE_300_KB
import org.fossify.messages.helpers.FILE_SIZE_600_KB
import org.fossify.messages.helpers.FILE_SIZE_NONE
import org.fossify.messages.helpers.LOCK_SCREEN_NOTHING
import org.fossify.messages.helpers.LOCK_SCREEN_SENDER
import org.fossify.messages.helpers.LOCK_SCREEN_SENDER_MESSAGE
import org.fossify.messages.helpers.MessagesImporter
import org.fossify.messages.helpers.MessagesReader
import org.fossify.messages.helpers.refreshMessages
import java.util.Locale
import kotlin.system.exitProcess
@ -27,7 +67,14 @@ class SettingsActivity : SimpleActivity() {
private var blockedNumbersAtPause = -1
private var recycleBinMessages = 0
private val messagesFileType = "application/json"
private val messageImportFileTypes = listOf("application/json", "application/xml", "text/xml")
private val messageImportFileTypes = buildList {
add("application/json")
add("application/xml")
add("text/xml")
if (!isPiePlus()) {
add("application/octet-stream")
}
}
private val binding by viewBinding(ActivitySettingsBinding::inflate)
@ -42,7 +89,10 @@ class SettingsActivity : SimpleActivity() {
useTransparentNavigation = true,
useTopSearchMenu = false
)
setupMaterialScrollListener(scrollingView = binding.settingsNestedScrollview, toolbar = binding.settingsToolbar)
setupMaterialScrollListener(
scrollingView = binding.settingsNestedScrollview,
toolbar = binding.settingsToolbar
)
}
override fun onResume() {
@ -73,7 +123,9 @@ class SettingsActivity : SimpleActivity() {
setupMessagesImport()
updateTextColors(binding.settingsNestedScrollview)
if (blockedNumbersAtPause != -1 && blockedNumbersAtPause != getBlockedNumbers().hashCode()) {
if (
blockedNumbersAtPause != -1 && blockedNumbersAtPause != getBlockedNumbers().hashCode()
) {
refreshMessages()
}
@ -90,13 +142,15 @@ class SettingsActivity : SimpleActivity() {
}
}
private val getContent = registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri ->
private val getContent =
registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri ->
if (uri != null) {
MessagesImporter(this).importMessages(uri)
}
}
private val saveDocument = registerForActivityResult(ActivityResultContracts.CreateDocument(messagesFileType)) { uri ->
private val saveDocument =
registerForActivityResult(ActivityResultContracts.CreateDocument(messagesFileType)) { uri ->
if (uri != null) {
toast(org.fossify.commons.R.string.exporting)
exportMessages(uri)
@ -106,7 +160,7 @@ class SettingsActivity : SimpleActivity() {
private fun setupMessagesExport() {
binding.settingsExportMessagesHolder.setOnClickListener {
ExportMessagesDialog(this) { fileName ->
saveDocument.launch(fileName)
saveDocument.launch("$fileName.json")
}
}
}
@ -117,25 +171,37 @@ class SettingsActivity : SimpleActivity() {
}
}
@OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
private fun exportMessages(uri: Uri) {
ensureBackgroundThread {
var success = false
try {
MessagesReader(this).getMessagesToExport(config.exportSms, config.exportMms) { messagesToExport ->
MessagesReader(this).getMessagesToExport(
config.exportSms,
config.exportMms
) { messagesToExport ->
if (messagesToExport.isEmpty()) {
toast(org.fossify.commons.R.string.no_entries_for_exporting)
return@getMessagesToExport
}
val json = Json { encodeDefaults = true }
val jsonString = json.encodeToString(messagesToExport)
val outputStream = contentResolver.openOutputStream(uri)!!
outputStream.use {
it.write(jsonString.toByteArray())
contentResolver.openOutputStream(uri)!!.buffered().use { outputStream ->
json.encodeToStream(messagesToExport, outputStream)
}
success = true
toast(org.fossify.commons.R.string.exporting_successful)
}
} catch (e: Exception) {
showErrorToast(e)
} catch (e: Throwable) { // also catch OutOfMemoryError etc.
showErrorToast(e.toString())
} finally {
if (!success) {
// delete the file to avoid leaving behind an empty/corrupt file
try {
DocumentsContract.deleteDocument(contentResolver, uri)
} catch (ignored: Exception) {
// ignored because we don't want to overwhelm the user with two error messages
}
}
}
}
}
@ -167,7 +233,10 @@ class SettingsActivity : SimpleActivity() {
}
private fun setupUseEnglish() = binding.apply {
settingsUseEnglishHolder.beVisibleIf((config.wasUseEnglishToggled || Locale.getDefault().language != "en") && !isTiramisuPlus())
settingsUseEnglishHolder.beVisibleIf(
(config.wasUseEnglishToggled || Locale.getDefault().language != "en")
&& !isTiramisuPlus()
)
settingsUseEnglish.isChecked = config.useEnglish
settingsUseEnglishHolder.setOnClickListener {
settingsUseEnglish.toggle()
@ -187,7 +256,8 @@ class SettingsActivity : SimpleActivity() {
// support for device-wise blocking came on Android 7, rely only on that
@TargetApi(Build.VERSION_CODES.N)
private fun setupManageBlockedNumbers() = binding.apply {
settingsManageBlockedNumbers.text = addLockedLabelIfNeeded(org.fossify.commons.R.string.manage_blocked_numbers)
settingsManageBlockedNumbers.text =
addLockedLabelIfNeeded(org.fossify.commons.R.string.manage_blocked_numbers)
settingsManageBlockedNumbersHolder.beVisibleIf(isNougatPlus())
settingsManageBlockedNumbersHolder.setOnClickListener {
@ -202,7 +272,8 @@ class SettingsActivity : SimpleActivity() {
}
private fun setupManageBlockedKeywords() = binding.apply {
settingsManageBlockedKeywords.text = addLockedLabelIfNeeded(R.string.manage_blocked_keywords)
settingsManageBlockedKeywords.text =
addLockedLabelIfNeeded(R.string.manage_blocked_keywords)
settingsManageBlockedKeywordsHolder.setOnClickListener {
if (isOrWasThankYouInstalled()) {
@ -230,7 +301,10 @@ class SettingsActivity : SimpleActivity() {
RadioItem(FONT_SIZE_SMALL, getString(org.fossify.commons.R.string.small)),
RadioItem(FONT_SIZE_MEDIUM, getString(org.fossify.commons.R.string.medium)),
RadioItem(FONT_SIZE_LARGE, getString(org.fossify.commons.R.string.large)),
RadioItem(FONT_SIZE_EXTRA_LARGE, getString(org.fossify.commons.R.string.extra_large))
RadioItem(
FONT_SIZE_EXTRA_LARGE,
getString(org.fossify.commons.R.string.extra_large)
)
)
RadioGroupDialog(this@SettingsActivity, items, config.fontSize) {
@ -352,7 +426,11 @@ class SettingsActivity : SimpleActivity() {
recycleBinMessages = messagesDB.getArchivedCount()
runOnUiThread {
settingsEmptyRecycleBinSize.text =
resources.getQuantityString(R.plurals.delete_messages, recycleBinMessages, recycleBinMessages)
resources.getQuantityString(
R.plurals.delete_messages,
recycleBinMessages,
recycleBinMessages
)
}
}
@ -372,7 +450,11 @@ class SettingsActivity : SimpleActivity() {
}
recycleBinMessages = 0
settingsEmptyRecycleBinSize.text =
resources.getQuantityString(R.plurals.delete_messages, recycleBinMessages, recycleBinMessages)
resources.getQuantityString(
R.plurals.delete_messages,
recycleBinMessages,
recycleBinMessages
)
}
}
}
@ -381,8 +463,17 @@ class SettingsActivity : SimpleActivity() {
private fun setupAppPasswordProtection() = binding.apply {
settingsAppPasswordProtection.isChecked = config.isAppPasswordProtectionOn
settingsAppPasswordProtectionHolder.setOnClickListener {
val tabToShow = if (config.isAppPasswordProtectionOn) config.appProtectionType else SHOW_ALL_TABS
SecurityDialog(this@SettingsActivity, config.appPasswordHash, tabToShow) { hash, type, success ->
val tabToShow = if (config.isAppPasswordProtectionOn) {
config.appProtectionType
} else {
SHOW_ALL_TABS
}
SecurityDialog(
activity = this@SettingsActivity,
requiredHash = config.appPasswordHash,
showTabIndex = tabToShow
) { hash, type, success ->
if (success) {
val hasPasswordProtection = config.isAppPasswordProtectionOn
settingsAppPasswordProtection.isChecked = !hasPasswordProtection
@ -391,13 +482,20 @@ class SettingsActivity : SimpleActivity() {
config.appProtectionType = type
if (config.isAppPasswordProtectionOn) {
val confirmationTextId = if (config.appProtectionType == PROTECTION_FINGERPRINT) {
val confirmationTextId =
if (config.appProtectionType == PROTECTION_FINGERPRINT) {
org.fossify.commons.R.string.fingerprint_setup_successfully
} else {
org.fossify.commons.R.string.protection_setup_successfully
}
ConfirmationDialog(this@SettingsActivity, "", confirmationTextId, org.fossify.commons.R.string.ok, 0) { }
ConfirmationDialog(
activity = this@SettingsActivity,
message = "",
messageId = confirmationTextId,
positive = org.fossify.commons.R.string.ok,
negative = 0
) { }
}
}
}

View file

@ -278,11 +278,11 @@ fun Context.getConversations(threadId: Long? = null, privateContacts: ArrayList<
projection += Threads.ARCHIVED
}
var selection = "${Threads.MESSAGE_COUNT} > ?"
var selectionArgs = arrayOf("0")
var selection = "${Threads.MESSAGE_COUNT} > 0"
var selectionArgs = arrayOf<String>()
if (threadId != null) {
selection += " AND ${Threads._ID} = ?"
selectionArgs = arrayOf("0", threadId.toString())
selectionArgs += threadId.toString()
}
val sortOrder = "${Threads.DATE} DESC"
@ -355,11 +355,10 @@ private fun Context.queryCursorUnsafe(
fun Context.getConversationIds(): List<Long> {
val uri = Uri.parse("${Threads.CONTENT_URI}?simple=true")
val projection = arrayOf(Threads._ID)
val selection = "${Threads.MESSAGE_COUNT} > ?"
val selectionArgs = arrayOf("0")
val selection = "${Threads.MESSAGE_COUNT} > 0"
val sortOrder = "${Threads.DATE} ASC"
val conversationIds = mutableListOf<Long>()
queryCursor(uri, projection, selection, selectionArgs, sortOrder, true) { cursor ->
queryCursor(uri, projection, selection, null, sortOrder, true) { cursor ->
val id = cursor.getLongValue(Threads._ID)
conversationIds.add(id)
}
@ -990,11 +989,13 @@ fun Context.deleteSmsDraft(threadId: Long) {
}
fun Context.updateLastConversationMessage(threadId: Long) {
// update the date and the snippet of the thread, by triggering the
// following Android code (which runs even if no messages are deleted):
// https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android14-release/src/com/android/providers/telephony/MmsSmsProvider.java#1409
val uri = Threads.CONTENT_URI
val selection = "${Threads._ID} = ?"
val selectionArgs = arrayOf(threadId.toString())
val selection = "1 = 0" // always-false condition, because we don't actually want to delete any messages
try {
contentResolver.delete(uri, selection, selectionArgs)
contentResolver.delete(uri, selection, null)
val newConversation = getConversations(threadId)[0]
insertOrUpdateConversation(newConversation)
} catch (e: Exception) {
@ -1058,16 +1059,9 @@ fun Context.insertOrUpdateConversation(
conversation: Conversation,
cachedConv: Conversation? = conversationsDB.getConversationWithThreadId(conversation.threadId)
) {
val updatedConv = if (cachedConv != null) {
val usesCustomTitle = cachedConv.usesCustomTitle
val title = if (usesCustomTitle) {
cachedConv.title
} else {
conversation.title
}
conversation.copy(title = title, usesCustomTitle = usesCustomTitle)
} else {
conversation
var updatedConv = conversation
if (cachedConv != null && cachedConv.usesCustomTitle) {
updatedConv = updatedConv.copy(title = cachedConv.title, usesCustomTitle = cachedConv.usesCustomTitle)
}
conversationsDB.insertOrUpdate(updatedConv)
}

View file

@ -4,6 +4,7 @@ import android.net.Uri
import android.util.Xml
import kotlinx.serialization.SerializationException
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.toast
import org.fossify.commons.helpers.ensureBackgroundThread
@ -32,23 +33,29 @@ class MessagesImporter(private val activity: SimpleActivity) {
} else {
importJson(uri)
}
} catch (e: Exception) {
activity.showErrorToast(e)
} catch (e: Throwable) { // also catch OutOfMemoryError etc.
activity.showErrorToast(e.toString())
}
}
@OptIn(kotlinx.serialization.ExperimentalSerializationApi::class)
private fun importJson(uri: Uri) {
try {
val jsonString = activity.contentResolver.openInputStream(uri)!!.use { inputStream ->
inputStream.bufferedReader().readText()
val deserializedList = activity.contentResolver.openInputStream(uri)!!.buffered().use { inputStream ->
Json.decodeFromStream<List<MessagesBackup>>(inputStream)
}
val deserializedList = Json.decodeFromString<List<MessagesBackup>>(jsonString)
if (deserializedList.isEmpty()) {
activity.toast(org.fossify.commons.R.string.no_entries_for_importing)
return
}
ImportMessagesDialog(activity, deserializedList)
val messages = deserializedList.map { message ->
// workaround for messages not being imported on Android 14 when the device has a different subscriptionId (see #191)
when (message) {
is SmsBackup -> message.copy(subscriptionId = -1)
is MmsBackup -> message.copy(subscriptionId = -1)
}
}
ImportMessagesDialog(activity, messages)
} catch (e: SerializationException) {
activity.toast(org.fossify.commons.R.string.invalid_file_format)
} catch (e: IllegalArgumentException) {

View file

@ -0,0 +1,17 @@
package org.fossify.messages.helpers
import android.content.Context
import org.fossify.messages.extensions.config
object ReceiverUtils {
fun isMessageFilteredOut(context: Context, body: String): Boolean {
for (blockedKeyword in context.config.blockedKeywords) {
if (body.contains(blockedKeyword, ignoreCase = true)) {
return true
}
}
return false
}
}

View file

@ -6,13 +6,14 @@ import android.os.Handler
import android.os.Looper
import com.bumptech.glide.Glide
import com.klinker.android.send_message.MmsReceivedReceiver
import org.fossify.commons.extensions.isNumberBlocked
import org.fossify.commons.extensions.normalizePhoneNumber
import org.fossify.commons.extensions.showErrorToast
import org.fossify.commons.extensions.*
import org.fossify.commons.helpers.SimpleContactsHelper
import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.messages.R
import org.fossify.messages.extensions.*
import org.fossify.messages.helpers.ReceiverUtils.isMessageFilteredOut
import org.fossify.messages.helpers.refreshMessages
import org.fossify.messages.models.Message
// more info at https://github.com/klinker41/android-smsmms
class MmsReceiver : MmsReceivedReceiver() {
@ -27,7 +28,33 @@ class MmsReceiver : MmsReceivedReceiver() {
val address = mms.getSender()?.phoneNumbers?.first()?.normalizedNumber ?: ""
val size = context.resources.getDimension(R.dimen.notification_large_icon_size).toInt()
val privateCursor = context.getMyContactsCursor(false, true)
ensureBackgroundThread {
if (context.baseConfig.blockUnknownNumbers) {
val simpleContactsHelper = SimpleContactsHelper(context)
simpleContactsHelper.exists(address, privateCursor) { exists ->
if (exists) {
handleMmsMessage(context, mms, size, address)
}
}
} else {
handleMmsMessage(context, mms, size, address)
}
}
}
override fun onError(context: Context, error: String) = context.showErrorToast(context.getString(R.string.couldnt_download_mms))
private fun handleMmsMessage(
context: Context,
mms: Message,
size: Int,
address: String
) {
if (isMessageFilteredOut(context, mms.body)) {
return
}
val glideBitmap = try {
Glide.with(context)
.asBitmap()
@ -50,6 +77,3 @@ class MmsReceiver : MmsReceivedReceiver() {
}
}
}
override fun onError(context: Context, error: String) = context.showErrorToast(context.getString(R.string.couldnt_download_mms))
}

View file

@ -14,6 +14,7 @@ import org.fossify.commons.helpers.ensureBackgroundThread
import org.fossify.commons.models.PhoneNumber
import org.fossify.commons.models.SimpleContact
import org.fossify.messages.extensions.*
import org.fossify.messages.helpers.ReceiverUtils.isMessageFilteredOut
import org.fossify.messages.helpers.refreshMessages
import org.fossify.messages.models.Message
@ -40,7 +41,6 @@ class SmsReceiver : BroadcastReceiver() {
date = System.currentTimeMillis()
threadId = context.getThreadId(address)
}
if (context.baseConfig.blockUnknownNumbers) {
val simpleContactsHelper = SimpleContactsHelper(context)
simpleContactsHelper.exists(address, privateCursor) { exists ->
@ -122,14 +122,4 @@ class SmsReceiver : BroadcastReceiver() {
}
}
}
private fun isMessageFilteredOut(context: Context, body: String): Boolean {
for (blockedKeyword in context.config.blockedKeywords) {
if (body.contains(blockedKeyword, ignoreCase = true)) {
return true
}
}
return false
}
}

View file

@ -13,9 +13,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/small_margin"
android:paddingTop="@dimen/activity_margin"
android:paddingTop="@dimen/medium_margin"
android:paddingEnd="@dimen/normal_margin"
android:paddingBottom="@dimen/activity_margin">
android:paddingBottom="@dimen/medium_margin">
<ImageView
android:id="@+id/conversation_image"

View file

@ -112,6 +112,7 @@
android:hint="@string/type_a_message"
android:inputType="textCapSentences|textMultiLine"
android:minHeight="@dimen/normal_icon_size"
android:maxLines="8"
app:layout_constraintBottom_toTopOf="@+id/attachment_picker_divider"
app:layout_constraintEnd_toStartOf="@id/thread_select_sim_icon"
app:layout_constraintStart_toEndOf="@+id/thread_add_attachment" />

View file

@ -1,2 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="restore">পুনরুদ্ধার করুন</string>
<string name="restore_all_messages">সমস্ত বার্তা পুনরুদ্ধার করুন</string>
<string name="empty_recycle_bin_messages_confirmation">আপনি কি রিসাইকেল বিন খালি করার বিষয়ে নিশ্চিত? বার্তা স্থায়ীভাবে হারিয়ে যাবে।</string>
<string name="sender_and_message">প্রেরক এবং বার্তা</string>
<string name="no_option_selected">আপনাকে অন্তত একটি আইটেম নির্বাচন করতে হবে</string>
<string name="import_mms">এমএমএস ইমপোর্ট করুন</string>
<string name="empty_destination_address">একটি খালি নম্বরে বার্তা পাঠাতে পারবেন না</string>
<string name="unable_to_save_message">টেলিফোনি ডাটাবেসে বার্তা সংরক্ষণ করতে অক্ষম</string>
<string name="error_radio_turned_off">বার্তা পাঠানো যায়নি, রেডিও বন্ধ আছে</string>
<string name="carrier_send_error">বার্তা পাঠানো যায়নি, ক্যারিয়ার ত্রুটি</string>
<string name="unknown_error_occurred_sending_message">বার্তা পাঠানো যায়নি, ত্রুটি কোড: %d</string>
<string name="invalid_short_code">এর মত শর্ট কোডে উত্তর দিতে পারবেন না</string>
<string name="attachment_sized_exceeds_max_limit">সংযুক্তির আকার সর্বাধিক এমএমএস সীমা ছাড়িয়ে গেছে</string>
<string name="sim_card_not_available">সিম কার্ড উপলব্ধ নেই</string>
<string name="couldnt_download_mms">এমএমএস ডাউনলোড করা যায়নি</string>
<string name="faq_1_title">কেন অ্যাপটির ইন্টারনেট অ্যাক্সেস প্রয়োজন?</string>
<string name="faq_2_text">এমএমএস আকার ক্যারিয়ার দ্বারা সীমিত, আপনি অ্যাপ সেটিংসে একটি ছোট সীমা সেট করে চেষ্টা করতে পারেন।</string>
<string name="faq_2_title">অন্য প্রান্তের জন আমার এমএমএস পাচ্ছে না, আমি কি এটি সম্পর্কে কিছু করতে পারি?</string>
<string name="faq_3_title">অ্যাপটি কি সময় নির্ধারিত বার্তা সমর্থন করে?</string>
<string name="faq_3_text">হ্যাঁ, আপনি পাঠান বোতামটি দীর্ঘক্ষণ টিপে এবং পছন্দসই তারিখ এবং সময় বেছে নিয়ে ভবিষ্যতে পাঠানোর জন্য বার্তাগুলি নির্ধারণ করতে পারেন।</string>
<string name="members">সদস্যরা</string>
<string name="conversation_name">কথোপকথনের নাম</string>
<string name="new_conversation">নতুন কথোপকথন</string>
<string name="add_contact_or_number">কন্টাক্ট বা নম্বর যোগ করুন…</string>
<string name="suggestions">পরামর্শ</string>
<string name="rename_conversation_warning">শুধুমাত্র আপনি এই কথোপকথন নাম দেখতে পারবেন</string>
<string name="rename_conversation">কথোপকথনের নাম পরিবর্তন করুন</string>
<string name="scheduled_message">সময় নির্ধারিত বার্তা</string>
<string name="schedule_message">বার্তা পাঠানোর জন্য সময় নির্ধারণ করুন</string>
<string name="schedule_send">পাঠানোর সময় নির্ধারণ করুন</string>
<string name="message_details">বার্তার বিবরণ</string>
<string name="cancel_schedule_send">পাঠানোর নির্ধারিত সময় বাতিল করুন</string>
<string name="message_details_received_at">এই সময়ে প্রাপ্ত</string>
<string name="update_message">বার্তা আপডেট করুন</string>
<string name="schedule_send_warning">ফোনটি চালু রাখুন এবং নিশ্চিত করুন যে ব্যাকগ্রাউন্ডে থাকা অবস্থায় অ্যাপটিকে বন্ধ করার কিছু নেই।</string>
<string name="message_details_sender">প্রেরক</string>
<string name="must_pick_time_in_the_future">আপনাকে অবশ্যই ভবিষ্যতের একটি সময় বেছে নিতে হবে</string>
<string name="send_now">এখনই পাঠান</string>
<string name="message_details_receiver">প্রাপক</string>
<string name="message_details_sent_at">এই সময়ে পাঠানো হয়েছে</string>
<string name="show_archived_conversations">আর্কাইভ করা কথোপকথন দেখুন</string>
<string name="empty_archive">সমস্ত আর্কাইভ করা কথোপকথন মুছুন</string>
<string name="archive">আর্কাইভ করুন</string>
<string name="empty_archive_confirmation">আপনি কি নিশ্চিত যে আপনি আর্কাইভ খালি করতে চান? সমস্ত আর্কাইভ করা কথোপকথন স্থায়ীভাবে হারিয়ে যাবে।</string>
<string name="restore_whole_conversation_confirmation">আপনি কি এই কথোপকথনের সমস্ত বার্তা পুনরুদ্ধার করার বিষয়ে নিশ্চিত?</string>
<plurals name="delete_conversations">
<item quantity="one">%d টি কথোপকথন</item>
<item quantity="other">%d গুলো কথোপকথন</item>
</plurals>
<string name="blocked_keywords">ব্লক করা কীওয়ার্ড</string>
<string name="manage_blocked_keywords">ব্লক করা কীওয়ার্ড পরিচালনা করুন</string>
<string name="not_blocking_keywords">আপনি কোন কীওয়ার্ড ব্লক করছেন না. আপনি এখানে কীওয়ার্ড যুক্ত করতে পারেন যাতে সেগুলি ধারণকারী সমস্ত বার্তা ব্লক করা যায়।</string>
<string name="mms_file_size_limit">পাঠানো এমএমএস চিত্রের আকার পরিবর্তন করুন</string>
<string name="mms_file_size_limit_none">কোন সীমা নেই</string>
<string name="messages">বার্তাসমূহ</string>
<string name="outgoing_messages">বহির্গামী বার্তা</string>
<string name="group_message_mms">এমএমএস হিসাবে গ্রুপ বার্তা পাঠান</string>
<string name="send_long_message_mms">এমএমএস হিসাবে দীর্ঘ বার্তা পাঠান</string>
<string name="export_messages">বার্তা এক্সপোর্ট করুন</string>
<string name="import_messages">বার্তা ইমপোর্ট করুন</string>
<string name="import_sms">এসএমএস ইমপোর্ট করুন</string>
<string name="export_sms">এসএমএস এক্সপোর্ট করুন</string>
<string name="export_mms">এমএমএস এক্সপোর্ট করুন</string>
<string name="error_service_is_unavailable">বার্তা পাঠানো যায়নি, পরিষেবা অনুপলব্ধ</string>
<string name="invalid_short_code_desc">আপনি শুধুমাত্র \"503501\" এর মতো নম্বর সহ শর্ট কোডের উত্তর দিতে পারেন কিন্তু \"AB-CD0\" এর মতো অক্ষর এবং সংখ্যা সম্বলিত কোডগুলিতে নয়।</string>
<string name="faq_1_text">দুঃখজনকভাবে এটি এমএমএস সংযুক্তি পাঠানোর জন্য প্রয়োজন. অন্যান্য অ্যাপের তুলনায় এমএমএস পাঠাতে না পারা সত্যিই একটি বড় অসুবিধা হবে, তাই আমরা এই পথে যাওয়ার সিদ্ধান্ত নিয়েছি। যাইহোক, সাধারণত, কোন বিজ্ঞাপন, ট্র্যাকিং বা বিশ্লেষণ কোনো কিছুই নেই, ইন্টারনেট শুধুমাত্র এমএমএস পাঠানোর জন্য ব্যবহার করা হয়।</string>
<string name="pin_conversation">উপরে পিন করুন</string>
<string name="archived_conversations">আর্কাইভকৃত বার্তাসমূহ</string>
<string name="forward_message">ফরোয়ার্ড করুন</string>
<string name="no_archived_conversations">কোনো আর্কাইভকৃত কথোপকথন পাওয়া যায়নি</string>
<string name="enable_custom_notifications">কাস্টম বিজ্ঞপ্তি সক্রিয় করুন</string>
<string name="archive_emptied_successfully">আর্কাইভ সফলভাবে খালি করা হয়েছে</string>
<string name="add_a_blocked_keyword">একটি ব্লকড কীওয়ার্ড যোগ করুন</string>
<string name="unarchive">আর্কাইভ মুক্ত করুন</string>
<string name="lock_screen_visibility">লক স্ক্রীন বিজ্ঞপ্তি দৃশ্যমানতা</string>
<plurals name="and_other_contacts">
<item quantity="one">এবং আরও %d জন</item>
<item quantity="other">এবং আরও %d জনকে</item>
</plurals>
<string name="message_sending_error">\'%s\' এর নিকট আপনার বার্তা পাঠানো হয় নি</string>
<string name="add_person">ব্যক্তি যোগ করুন</string>
<string name="attachment">সংযুক্তি</string>
<string name="no_conversations_found">কোন সংরক্ষিত কথোপকথন পাওয়া যায়নি</string>
<string name="start_conversation">একটি কথোপকথন শুরু করুন</string>
<string name="reply">উত্তর দিন</string>
<string name="show_character_counter">বার্তা লেখার সময় একটি অক্ষর কাউন্টার দেখান</string>
<string name="loading_messages">বার্তা লোড হচ্ছে…</string>
<string name="no_reply_support">প্রেরক উত্তর সমর্থন করে না</string>
<string name="conversation_details">কথোপকথনের বিবরণ</string>
<string name="skip_the_recycle_bin_messages">রিসাইকেল বিন এড়িয়ে যান, সরাসরি বার্তা মুছুন</string>
<string name="delete_whole_conversation_confirmation">আপনি কি এই কথোপকথনের সমস্ত বার্তা মুছে ফেলার বিষয়ে নিশ্চিত?</string>
<string name="archive_confirmation">আপনি কি নিশ্চিত আপনি %s আর্কাইভ করতে চান?</string>
<string name="restore_confirmation">আপনি কি %s পুনরুদ্ধার করার বিষয়ে নিশ্চিত?</string>
<string name="keyword">কীওয়ার্ড</string>
<plurals name="delete_messages">
<item quantity="one">%d টি বার্তা</item>
<item quantity="other">%d গুলো বার্তা</item>
</plurals>
<string name="sender_only">শুধুমাত্র প্রেরক</string>
<string name="enable_delivery_reports">ডেলিভারি রিপোর্ট সক্রিয় করুন</string>
<string name="use_simple_characters">বার্তা পাঠানোর সময় উচ্চারণ এবং ডায়াক্রিটিকগুলি সরান</string>
<string name="send_on_enter">এন্টার চাপলে বার্তা পাঠান</string>
<string name="type_a_message">একটি বার্তা লিখুন…</string>
<string name="message_not_sent_short">বার্তা পাঠানো হয়নি</string>
<string name="message_not_sent_touch_retry">পাঠানো হয় নি। পুনরায় চেষ্টা করতে স্পর্শ করুন।</string>
<string name="draft">খসড়া</string>
<string name="sending">পাঠানো হচ্ছে…</string>
<string name="unpin_conversation">আনপিন করুন</string>
<string name="compress_error">নির্বাচিত আকারে ছবি সংকুচিত করা যায় নি</string>
<string name="duplicate_item_warning">সদৃশ আইটেম অন্তর্ভুক্ত করা হয়নি</string>
<string name="channel_received_sms">এসএমএস পেয়েছেন</string>
<string name="new_message">নতুন বার্তা</string>
<string name="mark_as_read">পঠিত হিসাবে চিহ্নিত করুন</string>
<string name="mark_as_unread">অপঠিত হিসাবে চিহ্নিত করুন</string>
<string name="me">আমি</string>
<string name="app_launcher_name">Messages</string>
</resources>

View file

@ -2,7 +2,7 @@
<resources>
<string name="type_a_message">Escriviu un missatge…</string>
<string name="message_not_sent_short">Missatge no enviat</string>
<string name="message_not_sent_touch_retry">No s\'ha enviat. Toqueu per tornar-ho a provar.</string>
<string name="message_not_sent_touch_retry">No s\'ha enviat. Toqueu per a tornar-ho a provar.</string>
<string name="message_sending_error">El vostre missatge a «%s» no s\'ha enviat</string>
<string name="add_person">Afegeix una persona</string>
<string name="attachment">Adjunt</string>
@ -21,6 +21,7 @@
<string name="duplicate_item_warning">No s\'ha inclòs l\'element duplicat</string>
<plurals name="and_other_contacts">
<item quantity="one">i %d altra</item>
<item quantity="many">i %d altres</item>
<item quantity="other">i %d altres</item>
</plurals>
<string name="new_conversation">Conversa nova</string>
@ -64,10 +65,12 @@
<string name="restore_confirmation">Segur que voleu restaurar %s\?</string>
<plurals name="delete_conversations">
<item quantity="one">%d conversa</item>
<item quantity="many">%d converses</item>
<item quantity="other">%d converses</item>
</plurals>
<plurals name="delete_messages">
<item quantity="one">%d missatge</item>
<item quantity="many">%d missatges</item>
<item quantity="other">%d missatges</item>
</plurals>
<string name="keyword">Paraula clau</string>
@ -106,9 +109,14 @@
<string name="sim_card_not_available">La targeta SIM no està disponible</string>
<string name="couldnt_download_mms">No es poden baixar MMS</string>
<string name="faq_1_title">Per què l\'aplicació requereix accés a Internet\?</string>
<string name="faq_1_text">Malauradament, és necessari per enviar adjunts MMS. No poder enviar MMS seria un gran desavantatge en comparació amb altres aplicacions, així que vam decidir anar per aquest camí. Tanmateix, com sol ser, no hi ha cap anunci, seguiment o anàlisi de cap mena, Internet només s\'utilitza per enviar MMS.</string>
<string name="faq_1_text">Malauradament, és necessari per a enviar adjunts MMS. No poder enviar MMS seria un gran desavantatge en comparació amb altres aplicacions, així que vam decidir anar per aquest camí. Tanmateix, com sol ser, no hi ha cap anunci, seguiment o anàlisi de cap mena, Internet només s\'utilitza per a enviar MMS.</string>
<string name="faq_2_text">La mida dels MMS està limitada pels operadors, podeu provar d\'establir un límit més petit a la configuració de l\'aplicació.</string>
<string name="faq_3_title">L\'aplicació admet missatges programats\?</string>
<string name="faq_3_text">Sí, podeu programar missatges per enviar-los en el futur prement prolongadament el botó Envia i escollint la data i l\'hora desitjades.</string>
<string name="faq_3_text">Sí, podeu programar missatges per a enviar-los en el futur prement prolongadament el botó Envia i escollint la data i l\'hora desitjades.</string>
<string name="faq_2_title">L\'altre extrem no ha rebut el meu MMS, hi puc fer alguna cosa\?</string>
<string name="enable_custom_notifications">Activa les notificacions personalitzades</string>
<string name="app_launcher_name">Missatges</string>
<string name="update_message">Actualitza el missatge</string>
<string name="message_details">Detalls del missatge</string>
<string name="me">Jo</string>
</resources>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_launcher_name">Beskeder</string>
<string name="type_a_message">Skriv en besked…</string>
<string name="message_not_sent_short">Beskeden blev ikke sendt</string>
<string name="message_not_sent_touch_retry">Blev ikke sendt, tryk for at gensende.</string>
@ -9,21 +10,55 @@
<string name="no_conversations_found">Ingen gemte samtaler er fundet</string>
<string name="start_conversation">Start en samtale</string>
<string name="reply">Svar</string>
<string name="show_character_counter">Vis en karaktertæller ved skrivning af beskeder</string>
<string name="show_character_counter">Vis en tegntæller ved skrivning af beskeder</string>
<string name="loading_messages">Henter beskeder…</string>
<string name="no_reply_support">Afsender understøtter ikke svar</string>
<string name="draft">Udkast</string>
<string name="sending">Sender…</string>
<string name="pin_conversation">Sæt fast i toppen</string>
<string name="unpin_conversation">Frigør</string>
<string name="forward_message">Fremad</string>
<string name="compress_error">Billedet kan ikke komprimeres til den valgte størrelse</string>
<string name="duplicate_item_warning">Dublet blev ikke inkluderet</string>
<string name="new_conversation">Ny Samtale</string>
<string name="add_contact_or_number">Tilføj kontakt eller nummer…</string>
<string name="suggestions">Forslag</string>
<string name="members">Medlemmer</string>
<string name="conversation_name">Samtalenavn</string>
<string name="conversation_details">Samtaledetaljer</string>
<string name="rename_conversation">Omdøb samtale</string>
<string name="rename_conversation_warning">Kun du kan se dette samtalenavn</string>
<string name="scheduled_message">Planlagt besked</string>
<string name="schedule_message">Planlæg besked</string>
<string name="schedule_send">Planlæg afsendelse</string>
<string name="cancel_schedule_send">Annuler planlagt afsendelse</string>
<string name="must_pick_time_in_the_future">Du skal vælge et tidspunkt i fremtiden</string>
<string name="schedule_send_warning">Hold telefonen tændt, og sørg for, at der ikke er noget der afbryder appen, mens den er i baggrunden.</string>
<string name="update_message">Opdater besked</string>
<string name="send_now">Send nu</string>
<string name="message_details">Beskeddetaljer</string>
<string name="message_details_sender">Afsender</string>
<string name="message_details_receiver">Modtager</string>
<string name="message_details_sent_at">Sendt</string>
<string name="message_details_received_at">Modtaget</string>
<string name="channel_received_sms">Modtag SMS</string>
<string name="new_message">Ny Besked</string>
<string name="new_message">Ny besked</string>
<string name="mark_as_read">Marker som læst</string>
<string name="mark_as_unread">Marker som ulæst</string>
<string name="me">Mig</string>
<string name="enable_custom_notifications">Aktiver tilpassede beskeder</string>
<string name="unarchive">Fjerne arkivering</string>
<string name="empty_archive">Slet alle arkiverede samtaler</string>
<string name="archived_conversations">Arkiv</string>
<string name="show_archived_conversations">Vis arkiverede samtaler</string>
<string name="archive">Arkiv</string>
<string name="no_archived_conversations">Ingen arkiverede samtaler fundet</string>
<string name="archive_emptied_successfully">Arkivet er successfuldt blevet tømt</string>
<string name="empty_archive_confirmation">Er du sikker på, at du vil tømme arkivet? Alle arkiverede samtaler vil gå permanent tabt.</string>
<string name="restore">Gendan</string>
<string name="restore_all_messages">Gendan alle beskeder</string>
<string name="empty_recycle_bin_messages_confirmation">Er du sikker på, at du vil tømme papirkurven? Beskederne vil være permanent tabt.</string>
<string name="skip_the_recycle_bin_messages">Brug ikke papirkurven, slet beskeder med det samme</string>
<string name="delete_whole_conversation_confirmation">Er du sikker på, at du vil slette alle beskeder i denne samtale\?</string>
<plurals name="delete_conversations">
<item quantity="one">%d samtale</item>
@ -33,23 +68,52 @@
<item quantity="one">%d besked</item>
<item quantity="other">%d beskeder</item>
</plurals>
<string name="lock_screen_visibility">Synlighed af meddelelse på låseskærmen</string>
<string name="sender_and_message">Afsender og meddelelse</string>
<string name="archive_confirmation">Er du sikker på du vil arkivere %s?</string>
<string name="restore_whole_conversation_confirmation">Er du sikker på, at du vil gendanne alle beskeder i denne samtale?</string>
<string name="restore_confirmation">Er du sikker på du vil gendanne %s?</string>
<string name="keyword">Nøgleord</string>
<string name="blocked_keywords">Blokerede nøgleord</string>
<string name="manage_blocked_keywords">Administrer blokerede nøgleord</string>
<string name="not_blocking_keywords">Du blokerer ikke nogen søgeord. Du kan tilføje nøgleord her for at blokere alle beskeder, der indeholder dem.</string>
<string name="add_a_blocked_keyword">Tilføj et blokeret nøgleord</string>
<string name="lock_screen_visibility">Synlighed af notifikation på låseskærmen</string>
<string name="sender_and_message">Afsender og besked</string>
<string name="sender_only">Kun afsender</string>
<string name="enable_delivery_reports">Aktiver leveringsrapporter</string>
<string name="use_simple_characters">Fjerne accenter og diakritiske tegn ved afsendelse af meddelelser</string>
<string name="use_simple_characters">Fjerne accenter og diakritiske tegn ved afsendelse af beskeder</string>
<string name="send_on_enter">Send besked, når der trykkes Enter</string>
<string name="mms_file_size_limit">Ændr størrelse på MMS-billeder</string>
<string name="mms_file_size_limit_none">Ingen grænse</string>
<string name="outgoing_messages">Udgående meddelelser</string>
<string name="group_message_mms">Send gruppemeddelelser som MMS</string>
<string name="outgoing_messages">Udgående beskeder</string>
<string name="group_message_mms">Send gruppebeskeder som MMS</string>
<string name="send_long_message_mms">Send lange beskeder som MMS</string>
<string name="messages">Beskeder</string>
<string name="export_messages">Eksporter beskeder</string>
<string name="export_sms">Eksporter SMS</string>
<string name="export_mms">Eksportér MMS</string>
<string name="import_messages">Importer beskeder</string>
<string name="import_sms">Importer SMS</string>
<string name="import_mms">Importér MMS</string>
<string name="no_option_selected">Du skal vælge mindst ét element</string>
<string name="empty_destination_address">Kan ikke sende besked til et tomt nummer</string>
<string name="unable_to_save_message">Kan ikke gemme besked i telefonens database</string>
<string name="error_service_is_unavailable">Kunne ikke sende besked, service ikke tilgængelig</string>
<string name="error_radio_turned_off">Kunne ike sende meddelels, radio er slukket</string>
<string name="carrier_send_error">Kunne ikke sende besked; operatørfejl</string>
<string name="unknown_error_occurred_sending_message">Kunne ikke sende besked, fejlmeddelelse: %d</string>
<string name="invalid_short_code">Kan ikke svare på korte koder som denne</string>
<string name="invalid_short_code_desc">Du kan kun svare på korte koder med tal som \"503501\", men ikke på koder, der indeholder bogstaver og tal som \"AB-CD0\".</string>
<string name="attachment_sized_exceeds_max_limit">Størrelse på vedhæftning overstiger maks</string>
<string name="sim_card_not_available">SIM-kort ikke tilgængeligt</string>
<string name="couldnt_download_mms">Kunne ikke hente MMS</string>
<string name="faq_1_title">Hvorfor kræver appen adgang til internettet\?</string>
<string name="faq_1_text">Desværre er det nødvendigt for at sende MMS-vedhæftede filer. Ikke at kunne være i stand til at sende MMS ville være en virkelig stor ulempe i forhold til andre apps, så vi besluttede at gå denne vej. Men som normalt er der ingen annoncer, sporing eller analyse overhovedet, internettet bruges kun til at sende MMS.</string>
<string name="faq_2_title">Den anden ende modtager ikke min MMS, er der noget jeg kan gøre ved det\?</string>
<string name="faq_2_text">MMS-størrelsen er begrænset af udbydere, du kan prøve at sætte en mindre grænse i appindstillingerne.</string>
<string name="faq_3_title">Kan man planlægge afsendelse?</string>
<string name="faq_3_text">Ja, du kan planlægge beskeder til at blive sendt i fremtiden ved at trykke længe på Send-knappen og vælge den ønskede dato og tid.</string>
<plurals name="and_other_contacts">
<item quantity="one">og %d anden</item>
<item quantity="other">og %d andre</item>
</plurals>
</resources>

View file

@ -115,5 +115,5 @@
<string name="faq_3_title">Unterstützt die App geplante Nachrichten?</string>
<string name="faq_3_text">Ja, du kannst den Versand von Nachrichten für die Zukunft planen, indem du lange auf die Senden-Schaltfläche drückst und das gewünschte Datum und die Uhrzeit auswählst.</string>
<string name="enable_custom_notifications">Benutzerdefinierte Benachrichtigungen aktivieren</string>
<string name="app_launcher_name">Nachrichten</string>
<string name="app_launcher_name">Mitteilungen</string>
</resources>

View file

@ -118,5 +118,5 @@
<string name="faq_3_title">¿La aplicación admite mensajes programados\?</string>
<string name="faq_3_text">Sí, puedes programar el envío de mensajes en el futuro pulsando prolongadamente el botón de envío y eligiendo la fecha y hora deseadas.</string>
<string name="enable_custom_notifications">Activar las notificaciones personalizadas</string>
<string name="app_launcher_name">Messages</string>
<string name="app_launcher_name">Mensajes</string>
</resources>

View file

@ -1,2 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="app_launcher_name">Mezuak</string>
<string name="type_a_message">Idatzi mezu bat…</string>
<string name="message_not_sent_short">Mezua ez da bidali</string>
<string name="message_not_sent_touch_retry">Ez da bidali. Ukitu berriro saiatzeko.</string>
<string name="message_sending_error">zure mezua \'%s\'-ri ez da bidali</string>
<string name="add_person">Gehitu pertsona</string>
<string name="attachment">Eranskina</string>
<string name="no_conversations_found">Ez da gordetako elkarrizketarik aurkitu</string>
<string name="start_conversation">Hasi elkarrizketa</string>
<string name="draft">Zirriborroa</string>
<string name="reply">Erantzun</string>
<string name="loading_messages">Mezuak kargatzen…</string>
<string name="no_reply_support">Bidaltzaileak ez ditu erantzunik onartzen</string>
<string name="sending">Bidaltzen…</string>
<string name="pin_conversation">Finkatu goian</string>
<string name="unpin_conversation">Askatu aingura</string>
<string name="show_character_counter">Erakutsi karaktere-kontagailua mezuak idaztean</string>
<string name="forward_message">Birbidali</string>
<string name="compress_error">Ezin da irudia konprimitu hautatutako tamainara</string>
</resources>

View file

@ -1,2 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="unarchive">درآوردن از بایگانی</string>
<string name="enable_custom_notifications">تنظیم اعلان شخصی‌شده</string>
<string name="archive">بایگانی کردن</string>
<string name="show_archived_conversations">نمایش بایگانی‌ها</string>
<string name="empty_archive">حذف همه‌ی بایگانی‌ها</string>
<string name="no_archived_conversations">هیچ پیامی در بایگانی نیست</string>
<string name="archive_emptied_successfully">بایگانی با موفقیت خالی شد</string>
<string name="restore">بازیابی</string>
<string name="restore_all_messages">بازیابی همه‌ی پیام‌ها</string>
<string name="skip_the_recycle_bin_messages">بی‌خیال سطل شو، پیام‌ها را درجا حذف کن</string>
<string name="delete_whole_conversation_confirmation">همه‌ی پیام‌های این گفت‌وگو حذف شود؟</string>
<string name="restore_confirmation">%s بازیابی شود؟</string>
<plurals name="delete_conversations">
<item quantity="one">%d گفت‌وگو</item>
<item quantity="other">%d گفت‌وگو</item>
</plurals>
<string name="keyword">کلیدواژه</string>
<string name="blocked_keywords">کلیدواژه‌های مسدودشده</string>
<string name="not_blocking_keywords">کلیدواژه‌ای برای مسدودسازی ندارید. می‌توانید کلیدواژه‌ای اضافه کنید تا پیام‌های حاوی آن مسدود شوند.</string>
<string name="lock_screen_visibility">نمایش اعلان در صفحه‌ی قفل</string>
<string name="sender_and_message">فرستنده و پیام</string>
<string name="mms_file_size_limit">تغییر اندازه‌ی تصاویر ارسالی در فراپیام</string>
<string name="outgoing_messages">پیام‌های ارسالی</string>
<string name="group_message_mms">ارسال پیام گروهی در قالب فراپیام</string>
<string name="send_long_message_mms">ارسال پیام‌های طولانی در قالب فراپیام</string>
<string name="export_messages">برون‌برد پیام‌ها</string>
<string name="export_mms">برون‌برد فراپیام‌ها</string>
<string name="import_messages">درون‌برد پیام‌ها</string>
<string name="import_sms">درون‌برد پیامک‌ها</string>
<string name="import_mms">درون‌برد فراپیام‌ها</string>
<string name="no_option_selected">حداقل یک مورد را انتخاب کنید</string>
<string name="empty_destination_address">ارسال پیام به شماره‌ی خالی امکان‌پذیر نیست</string>
<string name="unable_to_save_message">ذخیره‌سازی پیام در دادگان تلفن امکان‌پذیر نیست</string>
<string name="invalid_short_code">پاسخ به کدهای کوتاه مثل این امکان‌پذیر نیست</string>
<string name="error_service_is_unavailable">پیام ارسال نشد، خارج از دسترس</string>
<string name="error_radio_turned_off">پیام ارسال نشد، فرستنده خاموش است</string>
<string name="carrier_send_error">پیام ارسال نشد، خطای اپراتور</string>
<string name="attachment_sized_exceeds_max_limit">اندازه‌ی پیوست بیشتر از حد مجاز فراپیام است</string>
<string name="sim_card_not_available">سیم‌کارت نیست</string>
<string name="faq_1_title">این برنامه چه نیازی به دسترسی به اینترنت دارد؟</string>
<string name="faq_2_title">طرف مقابل فراپیام مرا نمی‌گیرد، چه کار می‌توانم بکنم؟</string>
<string name="faq_2_text">اندازه‌ی فراپیام از سوی اپراتور محدود شده است؛ می‌توانید در تنظیمات برنامه، حد کمتری را امتحان کنید.</string>
<string name="faq_3_title">آیا این برنامه از پیام‌های زمان‌بندی‌شده پشتیبانی می‌کند؟</string>
<string name="type_a_message">متن پیام…‏</string>
<string name="message_not_sent_touch_retry">ارسال نشد. برای تلاش دوباره، لمس کنید.</string>
<string name="message_sending_error">پیام شما به %s ارسال نشده</string>
<string name="unknown_error_occurred_sending_message">پیام ارسال نشد، خطای کد %d</string>
<string name="duplicate_item_warning">مورد تکراری درج نشد</string>
<plurals name="and_other_contacts">
<item quantity="one">و %d نفر دیگر</item>
<item quantity="other">و %d نفر دیگر</item>
</plurals>
<string name="add_contact_or_number">افزودن مخاطب یا شماره…</string>
<string name="members">عضوها</string>
<string name="conversation_name">عنوان گفت‌وگو</string>
<string name="conversation_details">جزئیات گفت‌وگو</string>
<string name="rename_conversation_warning">تنها شما می‌توانید این عنوان گفت‌وگو را ببینید</string>
<string name="schedule_send_warning">گوشی را روشن نگه دارید و مطمئن شوید که هیچ‌چیز فعالیت برنامه در پس‌زمینه را متوقف نکند.</string>
<string name="archived_conversations">بایگانی</string>
<string name="empty_archive_confirmation">بایگانی، خالی شود؟ همه‌ی پیام‌های بایگانی برای همیشه حذف می‌شوند.</string>
<string name="empty_recycle_bin_messages_confirmation">سطل زباله، خالی شود؟ پیام‌ها برای همیشه حذف می‌شوند.</string>
<string name="archive_confirmation">%s بایگانی شود؟</string>
<string name="restore_whole_conversation_confirmation">همه‌ی پیام‌های این گفت‌وگو بازیابی شود؟</string>
<plurals name="delete_messages">
<item quantity="one">%d پیام</item>
<item quantity="other">%d پیام</item>
</plurals>
<string name="manage_blocked_keywords">مدیریت کلیدواژه‌های مسدودشده</string>
<string name="enable_delivery_reports">گزارش تحویل پیام</string>
<string name="use_simple_characters">حذف نشانه‌های حروف لاتین هنگام ارسال پیام</string>
<string name="mms_file_size_limit_none">بدون محدودیت</string>
<string name="messages">پیام‌ها</string>
<string name="export_sms">برون‌برد پیامک‌ها</string>
<string name="invalid_short_code_desc">فقط می‌توانید به سرشماره‌های عددی مثل 7575 پیام بفرستید؛ نه به سرشماره‌های الفبایی مثل IRANCELL.</string>
<string name="couldnt_download_mms">فراپیام بارگیری نشد</string>
<string name="faq_1_text">متأسفانه برای ارسال فراپیام لازم است. عدم امکان ارسال فراپیام، در مقایسه با دیگر برنامه‌ها، کمبود بزرگی به حساب می‌آید؛ بنابراین تصمیم گرفتیم بی‌خیالش نشویم. با این حال، طبق معمول، هیچ تبلیغات، ردیابی یا تحلیل داده‌ای به هیچ وجه در کار نیست؛ اینترنت فقط برای ارسال فراپیام استفاده می‌شود.</string>
<string name="add_person">افزودن گیرنده</string>
<string name="add_a_blocked_keyword">افزودن کلیدواژه‌ی مسدودشده</string>
<string name="faq_3_text">بله، می‌توانید با نگه‌داشتن دکمه‌ی ارسال و انتخاب تاریخ و ساعت دلخواه، پیام‌ها را برای ارسال در آینده زمان‌بندی کنید.</string>
<string name="app_launcher_name">پیام‌ها</string>
<string name="message_not_sent_short">پیام ارسال نشد</string>
<string name="attachment">پیوست</string>
<string name="start_conversation">گفت‌وگویی را آغاز کنید</string>
<string name="reply">پاسخ</string>
<string name="loading_messages">در حال بارگیری پیام‌ها…</string>
<string name="no_reply_support">فرستنده، امکان دریافت پاسخ ندارد</string>
<string name="draft">پیش‌نویس</string>
<string name="sending">در حال ارسال…</string>
<string name="pin_conversation">سنجاق به بالا</string>
<string name="unpin_conversation">برداشتن سنجاق</string>
<string name="forward_message">ارسال به دیگری</string>
<string name="compress_error">امکان فشرده‌سازی تصویر به اندازه‌ی انتخاب‌شده وجود ندارد</string>
<string name="new_conversation">گفت‌وگوی تازه</string>
<string name="suggestions">پیشنهادها</string>
<string name="no_conversations_found">هیچ گفت‌وگویی نداشته اید</string>
<string name="show_character_counter">نمایش شمارشگر نویسه‌ها هنگام نوشتن پیام</string>
<string name="rename_conversation">تغییر عنوان گفت‌وگو</string>
<string name="scheduled_message">پیام زمان‌بندی‌شده</string>
<string name="schedule_message">زمان‌بندی پیام</string>
<string name="schedule_send">ارسال زمان‌دار</string>
<string name="cancel_schedule_send">لغو ارسال زمان‌دار</string>
<string name="must_pick_time_in_the_future">باید زمانی در آینده انتخاب کنید</string>
<string name="update_message">به‌روزرسانی پیام</string>
<string name="send_now">همین الآن بفرست</string>
<string name="message_details">اطلاعات پیام</string>
<string name="message_details_sender">فرستنده</string>
<string name="message_details_receiver">گیرنده</string>
<string name="message_details_received_at">دریافتی در</string>
<string name="message_details_sent_at">ارسالی در</string>
<string name="channel_received_sms">پیامک دریافتی</string>
<string name="new_message">پیام تازه</string>
<string name="mark_as_read">خوانده شده</string>
<string name="mark_as_unread">خوانده نشده</string>
<string name="me">من</string>
<string name="sender_only">فقط فرستنده</string>
<string name="send_on_enter">ارسال پیام با کلید اینتر</string>
</resources>

View file

@ -50,13 +50,13 @@
<string name="mark_as_unread">Merkitse lukemattomaksi</string>
<string name="me">Minä</string>
<string name="unarchive">Poista arkivointi</string>
<string name="empty_archive">Poista kaikki arkivoidut keskustelut</string>
<string name="empty_archive">Poista kaikki arkistoidut keskustelut</string>
<string name="archived_conversations">Arkisto</string>
<string name="show_archived_conversations">Näytä arkivoidut keskustelut</string>
<string name="show_archived_conversations">Näytä arkistoidut keskustelut</string>
<string name="archive">Arkivoi</string>
<string name="no_archived_conversations">Arkivoituja keskusteluja ei löytynyt</string>
<string name="archive_emptied_successfully">Arkisto tyhjennettiin onnistuneesti</string>
<string name="empty_archive_confirmation">Haluatko tyhjentää arkiston\? Kaikki arkivoidut keskustelut menetetään pysyvästi.</string>
<string name="empty_archive_confirmation">Haluatko tyhjentää arkiston? Kaikki arkistoidut keskustelut menetetään pysyvästi.</string>
<string name="restore">Palauta</string>
<string name="restore_all_messages">Palauta kaikki viestit</string>
<string name="empty_recycle_bin_messages_confirmation">Haluatko tyhjentää Roskakorin\? Viestit menetetään pysyvästi.</string>
@ -114,4 +114,6 @@
<string name="faq_2_text">Operaattorit rajoittavat MMS-kokoa, voit yrittää asettaa pienemmän rajan sovelluksen asetuksissa.</string>
<string name="faq_3_title">Tukeeko sovellus ajoitettua viestien lähetystä\?</string>
<string name="faq_3_text">Kyllä tukee ja voit ajoittaa viestin lähetyksen painamalla lähetyspainiketta pitkään ja valitsemalla halutun päivän ja kellonajan.</string>
<string name="app_launcher_name">Viestit</string>
<string name="enable_custom_notifications">Käytä mukautettuja ilmoituksia</string>
</resources>

View file

@ -118,4 +118,5 @@
<string name="enable_custom_notifications">Activer les notifications personnalisées</string>
<string name="suggestions">Suggestions</string>
<string name="archived_conversations">Archive</string>
<string name="app_launcher_name">Messages</string>
</resources>

View file

@ -26,4 +26,94 @@
<item quantity="one">और %d अन्य</item>
<item quantity="other">और %d अन्य</item>
</plurals>
<string name="archive_confirmation">क्या आप वाकई %s को संग्रहित करना चाहते हैं?</string>
<string name="restore_confirmation">क्या आप वाकई %s को पुनर्स्थापित करना चाहते हैं?</string>
<plurals name="delete_conversations">
<item quantity="one">%d वार्तालाप</item>
<item quantity="other">%d वार्तालाप</item>
</plurals>
<string name="add_a_blocked_keyword">एक अवरुद्ध कीवर्ड जोड़ें</string>
<string name="lock_screen_visibility">लॉक स्क्रीन अधिसूचना दृश्यता</string>
<string name="send_on_enter">एंटर दबाने पर मैसेज भेजें</string>
<string name="mms_file_size_limit_none">कोई सीमा नहीं</string>
<string name="messages">संदेशों</string>
<string name="enable_custom_notifications">कस्टम सूचनाएं सक्षम करें</string>
<string name="show_archived_conversations">संग्रहीत वार्तालाप दिखाएँ</string>
<string name="archive_emptied_successfully">संग्रह सफलतापूर्वक खाली कर दिया गया है</string>
<string name="empty_archive_confirmation">क्या आप वाकई संग्रह को खाली करना चाहते हैं? सभी संग्रहीत वार्तालाप स्थायी रूप से खो जाएंगे।</string>
<string name="restore_whole_conversation_confirmation">क्या आप वाकई इस वार्तालाप के सभी संदेशों को पुनर्स्थापित करना चाहते हैं?</string>
<string name="blocked_keywords">अवरुद्ध कीवर्ड</string>
<string name="manage_blocked_keywords">अवरुद्ध कीवर्ड प्रबंधित करें</string>
<string name="not_blocking_keywords">आप किसी भी कीवर्ड को ब्लॉक नहीं कर रहे हैं. आप यहां मौजूद सभी संदेशों को ब्लॉक करने के लिए कीवर्ड जोड़ सकते हैं।</string>
<string name="sender_and_message">प्रेषक और संदेश</string>
<string name="use_simple_characters">संदेश भेजते समय उच्चारण और विशेषक चिह्न हटाएँ</string>
<string name="attachment_sized_exceeds_max_limit">अनुलग्नक का आकार अधिकतम MMS सीमा से अधिक है</string>
<string name="error_radio_turned_off">संदेश नहीं भेजा जा सका, रेडियो बंद हो गया</string>
<string name="mms_file_size_limit">भेजी गई MMS इमेजेस का आकार बदलें</string>
<string name="outgoing_messages">जावक संदेश</string>
<string name="export_messages">संदेश निर्यात करें</string>
<string name="export_sms">SMS निर्यात करें</string>
<string name="import_messages">संदेश आयात करें</string>
<string name="import_mms">MMS आयात करें</string>
<string name="export_mms">MMS निर्यात करें</string>
<string name="no_option_selected">आपको कम से कम एक आइटम का चयन करना होगा</string>
<string name="empty_destination_address">खाली नंबर पर संदेश नहीं भेजा जा सकता</string>
<string name="error_service_is_unavailable">संदेश नहीं भेजा जा सका, सेवा अनुपलब्ध है</string>
<string name="carrier_send_error">संदेश नहीं भेजा जा सका, वाहक त्रुटि</string>
<string name="couldnt_download_mms">MMS डाउनलोड नहीं हो सका</string>
<string name="faq_1_title">ऐप को इंटरनेट तक पहुंच की आवश्यकता क्यों है?</string>
<string name="faq_2_title">दूसरे पक्ष को मेरा MMS प्राप्त नहीं हो रहा है, क्या मैं इसके बारे में कुछ कर सकता हूँ?</string>
<string name="faq_2_text">MMS का आकार वाहकों द्वारा सीमित है, आप ऐप सेटिंग में एक छोटी सीमा निर्धारित करने का प्रयास कर सकते हैं।</string>
<string name="faq_3_title">क्या ऐप निर्धारित संदेशों का समर्थन करता है?</string>
<string name="group_message_mms">समूह संदेशों को MMS के रूप में भेजें</string>
<string name="send_long_message_mms">ग्रुप वर्चस्व को MMS के रूप में शेयर में रखा गया</string>
<string name="import_sms">SMS आयात करें</string>
<string name="sim_card_not_available">SIM कार्ड उपलब्ध नहीं है</string>
<string name="faq_1_text">अफसोस की बात है कि MMS अनुलग्नक भेजने के लिए इसकी आवश्यकता है। MMS नहीं भेज पाना अन्य ऐप्स की तुलना में वास्तव में एक बड़ा नुकसान होगा, इसलिए हमने इस रास्ते पर जाने का फैसला किया। हालाँकि, जैसा कि आमतौर पर होता है, इसमें कोई विज्ञापन, ट्रैकिंग या विश्लेषण नहीं होता है, इंटरनेट का उपयोग केवल MMS भेजने के लिए किया जाता है।</string>
<string name="me">मैं</string>
<string name="sender_only">केवल प्रेषक</string>
<string name="unable_to_save_message">संदेश को टेलीफ़ोनी डेटाबेस में सहेजने में असमर्थ</string>
<string name="app_launcher_name">संदेश</string>
<string name="duplicate_item_warning">डुप्लीकेट आइटम शामिल नहीं था</string>
<string name="members">सदस्यों</string>
<string name="conversation_details">बातचीत का विवरण</string>
<string name="rename_conversation">बातचीत का नाम बदलें</string>
<string name="rename_conversation_warning">इस वार्तालाप का नाम केवल आप ही देख सकते हैं</string>
<string name="schedule_message">संदेश शेड्यूल करें</string>
<string name="schedule_send">शेड्यूल भेजें</string>
<string name="scheduled_message">शेड्यूल किया गया संदेश</string>
<string name="cancel_schedule_send">शेड्यूल भेजना रद्द करें</string>
<string name="must_pick_time_in_the_future">आपको भविष्य में कोई समय चुनना होगा</string>
<string name="schedule_send_warning">फ़ोन चालू रखें और सुनिश्चित करें कि बैकग्राउंड में ऐप बंद न हो।</string>
<string name="update_message">संदेश अपडेट करें</string>
<string name="send_now">अभी भेजें</string>
<string name="message_details">संदेश विवरण</string>
<string name="channel_received_sms">SMS प्राप्त हुआ</string>
<string name="message_details_sender">प्रेषक</string>
<string name="message_details_receiver">प्राप्तकर्ता</string>
<string name="message_details_sent_at">पर भेजा गया</string>
<string name="message_details_received_at">पर प्राप्त हुआ</string>
<string name="new_message">नया सन्देश</string>
<string name="mark_as_read">पढ़ा गया के रूप में चिह्नित करें</string>
<string name="mark_as_unread">अपठित के रूप में चिह्नित करें</string>
<string name="unarchive">संग्रह से निकालें</string>
<string name="archived_conversations">संग्रहालय</string>
<string name="restore">पुनर्स्थापित</string>
<string name="delete_whole_conversation_confirmation">क्या आप वाकई इस वार्तालाप के सभी संदेशों को हटाना चाहते हैं?</string>
<string name="restore_all_messages">सभी संदेश पुनर्स्थापित करें</string>
<string name="empty_recycle_bin_messages_confirmation">क्या आप वाकई रीसायकल बिन खाली करना चाहते हैं? संदेश स्थायी रूप से खो जायेंगे।</string>
<string name="skip_the_recycle_bin_messages">रीसायकल बिन छोड़ें, संदेशों को सीधे हटाएं</string>
<plurals name="delete_messages">
<item quantity="one">%d संदेश</item>
<item quantity="other">%d संदेश</item>
</plurals>
<string name="keyword">कीवर्ड</string>
<string name="enable_delivery_reports">डिलीवरी रिपोर्ट सक्षम करें</string>
<string name="invalid_short_code_desc">आप केवल \"503501\" जैसे नंबरों वाले छोटे कोड का उत्तर दे सकते हैं, लेकिन \"AB-CD0\" जैसे अक्षरों और संख्याओं वाले कोड का नहीं।</string>
<string name="unknown_error_occurred_sending_message">संदेश नहीं भेजा जा सका, त्रुटि कोड: %d</string>
<string name="invalid_short_code">इस तरह के छोटे कोड का उत्तर नहीं दे सकते</string>
<string name="faq_3_text">हां, आप भेजें बटन को देर तक दबाकर और वांछित दिनांक और समय चुनकर भविष्य में भेजे जाने वाले संदेशों को शेड्यूल कर सकते हैं।</string>
<string name="empty_archive">सभी संग्रहीत वार्तालाप हटाएँ</string>
<string name="archive">संग्रहालय</string>
<string name="no_archived_conversations">कोई संग्रहीत वार्तालाप नहीं मिला है</string>
</resources>

View file

@ -86,4 +86,34 @@
<string name="faq_2_text">Az MMS méretét korlátozzák a szolgáltatók, próbáljon kisebb korlátot beállítani az alkalmazásbeállításokban.</string>
<string name="faq_3_title">Az alkalmazás támogatja az ütemezett üzeneteket\?</string>
<string name="faq_3_text">Igen, a Küldés gomb hosszú megnyomásával, és a kívánt dátum és idő kiválasztásával beütemezheti a jövőben elküldendő üzeneteket.</string>
<string name="enable_custom_notifications">Egyéni értesítések engedélyezése</string>
<string name="archived_conversations">Archívum</string>
<string name="show_archived_conversations">Archivált beszélgetések megjelenítése</string>
<string name="archive">Archívum</string>
<string name="no_archived_conversations">Nem találhatók archivált beszélgetések</string>
<string name="archive_emptied_successfully">Az archívum kiürítése sikeresen megtörtént</string>
<string name="restore">Visszaállítás</string>
<string name="restore_all_messages">Az összes üzenet visszaállítása</string>
<string name="keyword">Kulcsszó</string>
<string name="blocked_keywords">Letiltott kulcsszavak</string>
<string name="empty_archive_confirmation">Biztos benne, hogy ki akarja üríteni az archívumot? Az összes archivált beszélgetés véglegesen elvész.</string>
<string name="manage_blocked_keywords">Letiltott kulcsszavak kezelése</string>
<string name="attachment_sized_exceeds_max_limit">A melléklet mérete meghaladja a maximális MMS-korlátot</string>
<string name="sim_card_not_available">SIM-kártya nem elérhető</string>
<string name="couldnt_download_mms">Az MMS letöltése nem sikerült</string>
<string name="empty_archive">Törölje az összes archivált beszélgetést</string>
<string name="empty_recycle_bin_messages_confirmation">Biztosan ki szeretné üríteni a Lomtárat? Az üzenetek véglegesen elvesznek.</string>
<string name="skip_the_recycle_bin_messages">Lomtár kihagyása, üzenetek közvetlen törlése</string>
<string name="app_launcher_name">Üzenetek</string>
<string name="message_details">Üzenet részletei</string>
<string name="message_details_sender">Küldő</string>
<string name="message_details_receiver">Címzett</string>
<string name="message_details_sent_at">Elküldve ekkor</string>
<string name="message_details_received_at">Beérkezett ekkor</string>
<string name="archive_confirmation">Biztosan archiválni szeretné a következőt: %s?</string>
<string name="restore_whole_conversation_confirmation">Biztosan vissza szeretné állítani a beszélgetés összes üzenetét?</string>
<string name="restore_confirmation">Biztosan vissza szeretné állítani %s-t?</string>
<string name="not_blocking_keywords">Ön nem tiltott le egyetlen kulcsszót sem. Itt adhat hozzá kulcsszavakat az ezeket tartalmazó üzenetek blokkolásához.</string>
<string name="add_a_blocked_keyword">Adjon hozzá egy letiltott kulcsszót</string>
<string name="unarchive">Archiválás visszavonása</string>
</resources>

View file

@ -1,2 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="app_launcher_name">Messages</string>
<string name="message_not_sent_short">Message non inviate</string>
<string name="message_not_sent_touch_retry">Non inviate. Tocca pro retentar.</string>
</resources>

View file

@ -19,7 +19,7 @@
<string name="compress_error">Tidak dapat mengompres gambar ke ukuran yang dipilih</string>
<string name="duplicate_item_warning">Item duplikat tidak termasuk</string>
<plurals name="and_other_contacts">
<item quantity="other">and %d others</item>
<item quantity="other">dan %d lainnya</item>
</plurals>
<string name="new_conversation">Percakapan baru</string>
<string name="add_contact_or_number">Tambahkan Kontak atau Nomor…</string>
@ -75,4 +75,42 @@
<string name="faq_2_text">Ukuran MMS dibatasi oleh penyedia, Anda dapat menetapkan batas yang lebih kecil dalam pengaturan aplikasi.</string>
<string name="faq_3_title">Apakah aplikasi mendukung penjadwalan pesan\?</string>
<string name="faq_3_text">Ya, Anda bisa menjadwalkan pesan untuk dikirim di masa depan dengan menekan lama pada tombol Kirim dan memilih tanggal dan waktu yang diinginkan.</string>
<string name="enable_custom_notifications">Aktifkan notifikasi khusus</string>
<string name="message_details">Detail pesan</string>
<string name="message_details_receiver">Penerima</string>
<string name="message_details_sent_at">Dikirim pukul</string>
<string name="message_details_received_at">Diterima pukul</string>
<string name="archived_conversations">Arsip</string>
<string name="show_archived_conversations">Tampilkan percakapan yang diarsipkan</string>
<string name="archive">Arsip</string>
<string name="no_archived_conversations">Tidak ada arsip percakapan yang ditemukan</string>
<string name="archive_emptied_successfully">Arsip telah berhasil dikosongkan</string>
<string name="empty_archive_confirmation">Anda yakin ingin mengosongkan arsip? Semua percakapan yang diarsipkan akan hilang secara permanen.</string>
<string name="app_launcher_name">Pesan</string>
<string name="pin_conversation">Sematkan ke atas</string>
<string name="message_details_sender">Pengirim</string>
<string name="update_message">Perbarui pesan</string>
<string name="empty_archive">Hapus semua percakapan yang diarsipkan</string>
<string name="me">Saya</string>
<string name="unarchive">Tidak diarsipkan</string>
<string name="restore">Pulihkan</string>
<string name="restore_all_messages">Pulihkan semua pesan</string>
<string name="restore_confirmation">Anda yakin ingin memulihkan %s?</string>
<string name="export_sms">Ekspor SMS</string>
<string name="import_messages">Impir pesan</string>
<string name="import_sms">Impor SMS</string>
<string name="couldnt_download_mms">Tidak dapat mengunduh MMS</string>
<string name="keyword">Kata kunci</string>
<string name="attachment_sized_exceeds_max_limit">Ukuran lampiran melebihi batas maksimum yang diizinkan untuk MMS</string>
<string name="blocked_keywords">Kata kunci yang diblokir</string>
<string name="export_messages">Ekspor pesan</string>
<string name="sim_card_not_available">Kartu SIM tidak tersedia</string>
<string name="not_blocking_keywords">Anda belum memblokir kata kunci apa pun. Anda dapat menambahkan kata kunci di sini untuk memblokir semua pesan yang mengandung kata kunci tersebut.</string>
<string name="messages">Pesan</string>
<string name="manage_blocked_keywords">Kelola kata kunci yang diblokir</string>
<string name="empty_recycle_bin_messages_confirmation">Anda yakin ingin mengosongkan Keranjang Sampah? Pesan-pesan di dalamnya akan hilang secara permanen.</string>
<string name="skip_the_recycle_bin_messages">Lewati Keranjang Sampah, hapus pesan secara langsung</string>
<string name="archive_confirmation">Anda yakin ingin mengarsipkan %s?</string>
<string name="restore_whole_conversation_confirmation">Anda yakin ingin memulihkan semua pesan dari percakapan ini?</string>
<string name="add_a_blocked_keyword">Tambahkan kata kunci yang diblokir</string>
</resources>

View file

@ -67,4 +67,18 @@
<string name="faq_1_text">למרבה הצער, זה נחוץ לשליחת קבצי MMS מצורפים. אי היכולת לשלוח MMS תהיה חיסרון עצום בהשוואה לאפליקציות אחרות, אז החלטנו ללכת בדרך זו. עם זאת, כמו בדרך כלל, אין מודעות, מעקב או ניתוח כלשהם, האינטרנט משמש רק לשליחת MMS.</string>
<string name="faq_2_title">הקצה השני לא מקבל את ה-MMS שלי, האם יש משהו שאני יכול לעשות בנידון\?</string>
<string name="faq_2_text">גודל ה-MMS מוגבל על ידי הספקים, אתה יכול לנסות להגדיר מגבלה קטנה יותר בהגדרות האפליקציה.</string>
<string name="app_launcher_name">הודעות</string>
<string name="members">חברים</string>
<string name="conversation_name">שם שיחה</string>
<string name="conversation_details">פרטי שיחה</string>
<string name="rename_conversation">שינוי שם שיחה</string>
<string name="rename_conversation_warning">רק אתה יכול לראות את שם השיחה הזה</string>
<string name="scheduled_message">הודעה מתוזמנת</string>
<string name="schedule_message">הודעת לוח זמנים</string>
<string name="schedule_send">תכנן משלוח</string>
<string name="cancel_schedule_send">בטל משלוח מתוכנן</string>
<string name="must_pick_time_in_the_future">יש לבחור נקודת זמן בעתיד</string>
<string name="update_message">עדכון הודעה</string>
<string name="faq_3_text">כן, אתה יכול לתזמן שליחת הודעות בעתיד על ידי לחיצה ארוכה על כפתור השליחה ובחירת התאריך והשעה הרצויים.</string>
<string name="duplicate_item_warning">פריט כפול לא נכלל</string>
</resources>

View file

@ -20,7 +20,7 @@
<string name="compress_error">選択したサイズに画像を圧縮できません</string>
<string name="duplicate_item_warning">重複したアイテムは含まれていませんでした</string>
<plurals name="and_other_contacts">
<item quantity="other">and %d others</item>
<item quantity="other">とあと%d件</item>
</plurals>
<string name="new_conversation">新しい会話</string>
<string name="add_contact_or_number">連絡先や電話番号を追加…</string>
@ -50,16 +50,16 @@
<plurals name="delete_messages">
<item quantity="other">%d件のメッセージ</item>
</plurals>
<string name="lock_screen_visibility">ロック画面の通知表示</string>
<string name="sender_and_message">差出人とメッセージ</string>
<string name="sender_only">差出人のみ</string>
<string name="enable_delivery_reports">配信確認レポートを有効にする</string>
<string name="use_simple_characters">送信するメッセージから発音記号を取り除く (英語)</string>
<string name="lock_screen_visibility">ロック画面の通知の可視性</string>
<string name="sender_and_message">送信者とメッセージ</string>
<string name="sender_only">送信者のみ</string>
<string name="enable_delivery_reports">配信レポートを有効にする</string>
<string name="use_simple_characters">送信するメッセージから発音記号を取り除く</string>
<string name="send_on_enter">Enter キーでメッセージを送信</string>
<string name="mms_file_size_limit">送信する MMS の画像をリサイズ</string>
<string name="mms_file_size_limit_none">制限しない</string>
<string name="mms_file_size_limit">送信した MMS の画像をリサイズ</string>
<string name="mms_file_size_limit_none">制限</string>
<string name="outgoing_messages">送信するメッセージ</string>
<string name="group_message_mms">グループメッセージ MMS として送信</string>
<string name="group_message_mms">グループメッセージ MMS として送信</string>
<string name="send_long_message_mms">長いメッセージを MMS として送信</string>
<string name="messages">メッセージ</string>
<string name="export_messages">メッセージをエクスポート</string>
@ -68,8 +68,8 @@
<string name="import_messages">メッセージをインポート</string>
<string name="import_sms">SMS をインポート</string>
<string name="import_mms">MMS をインポート</string>
<string name="no_option_selected">1 つ以上のアイテムを選択する必要があります</string>
<string name="empty_destination_address">番号を空にすることはできません</string>
<string name="no_option_selected">1 つ以上のアイテムを選択してください</string>
<string name="empty_destination_address">空の番号にメッセージを送信できません</string>
<string name="unable_to_save_message">メッセージを電話データベースに保存できませんでした</string>
<string name="error_service_is_unavailable">メッセージを送信できませんでした (サービス利用不可)</string>
<string name="error_radio_turned_off">メッセージを送信できませんでした (無線オフにより)</string>
@ -78,9 +78,39 @@
<string name="invalid_short_code">このようなショートコードには返信できません</string>
<string name="invalid_short_code_desc">「503501」のような数字のみのショートコードには返信できますが、「AB-CD0」のようなアルファベットと数字を含んだショートコードには返信できません。</string>
<string name="faq_1_title">なぜアプリの使用にインターネットへのアクセスが必要なのですか?</string>
<string name="faq_1_text">MMS (マルチメディアメッセージサービス) にはインターネットが必要となります。ほかのアプリでは使用できる MMS が使用できないことは大きな不利益となるため、このようになっています。 ただし、通常通り広告・追跡・分析は一切行わず、インターネットは MMS のみに使用されます。</string>
<string name="faq_2_title">メッセージ相手が MMS を受信できません。何かできますか?</string>
<string name="faq_2_text">MMS のサイズは通信キャリアによって制限されています。アプリの設定で制限を小さくしてみてください(「送信する MMS の画像をリサイズ」から制限を小さくできます)</string>
<string name="faq_1_text">SSMの添付ファイルを送信するために必要となります。ほかのアプリでは使用できるMMSを使用できないことは非常な不利となるため、そのようになっています。ただし他の場合と同様、広告・追跡・分析は一切行わず、インターネットはMMSのみに使用されます。</string>
<string name="faq_2_title">メッセージ相手が MMS を受信できません。どうすればいいですか?</string>
<string name="faq_2_text">MMSのサイズは通信キャリアによって制限されています。アプリの設定で制限を小さくしてみてください。</string>
<string name="faq_3_title">アプリは予約メッセージをサポートしていますか?</string>
<string name="faq_3_text">はい、送信ボタンを長押しして、希望の日付と時刻を選択することで、今後送信したいメッセージを予約できます。</string>
<string name="message_details_sender">送信者</string>
<string name="app_launcher_name">メッセージ</string>
<string name="message_details">メッセージ詳細</string>
<string name="message_details_receiver">受信者</string>
<string name="empty_archive">すべてのアーカイブされた会話を削除する</string>
<string name="archived_conversations">アーカイブ</string>
<string name="unarchive">非アーカイブ</string>
<string name="show_archived_conversations">アーカイブされた会話を表示する</string>
<string name="archive">アーカイブ</string>
<string name="no_archived_conversations">アーカイブされた会話が見つかりませんでした</string>
<string name="restore_all_messages">すべてのメッセージを復元する</string>
<string name="restore">復元</string>
<string name="enable_custom_notifications">カスタム通知を有効にする</string>
<string name="keyword">キーワード</string>
<string name="blocked_keywords">ブロックされたキーワード</string>
<string name="manage_blocked_keywords">ブロックされたキーワードを管理する</string>
<string name="add_a_blocked_keyword">ブロックされたキーワードを追加する</string>
<string name="not_blocking_keywords">キーワードをブロックしていません。 ここでキーワードを追加して、それらを含むすべてのメッセージをブロックすることができます。</string>
<string name="skip_the_recycle_bin_messages">ごみ箱に入れずメッセージを直接削除</string>
<string name="attachment_sized_exceeds_max_limit">添付ファイルのサイズがMMSの制限を超えています</string>
<string name="sim_card_not_available">SIMカードは利用できません</string>
<string name="message_details_sent_at">送信時間</string>
<string name="message_details_received_at">受信時間</string>
<string name="archive_emptied_successfully">アーカイブを空にしました</string>
<string name="empty_archive_confirmation">アーカイブを空にしてよろしいですか?全ての会話は完全に消去されます。</string>
<string name="empty_recycle_bin_messages_confirmation">ごみ箱を空にしてよろしいですか?メッセージは完全に消去されます。</string>
<string name="restore_confirmation">%sを復元してよろしいですか</string>
<string name="archive_confirmation">%sをアーカイブしてよろしいですか</string>
<string name="restore_whole_conversation_confirmation">この会話の全てのメッセージを復元してよろしいですか?</string>
<string name="couldnt_download_mms">MMSをダウンロードできませんでした</string>
</resources>

View file

@ -1,2 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="unarchive">보관 해제</string>
<string name="archived_conversations">보관</string>
<string name="no_archived_conversations">보관한 대화가 없습니다</string>
<string name="archive_emptied_successfully">보관된 대화가 삭제되었습니다</string>
<string name="restore">복원</string>
<string name="empty_archive_confirmation">보관한 대화를 삭제하시겠습니까? 모든 보관된 대화가 영구적으로 삭제됩니다.</string>
<string name="sender_and_message">보낸 사람 및 내용</string>
<string name="sender_only">보낸 사람만</string>
<string name="enable_delivery_reports">수신 확인 사용</string>
<string name="mms_file_size_limit">MMS 이미지 크기 조정</string>
<string name="send_on_enter">엔터 입력 시 메시지 전송</string>
<string name="use_simple_characters">메시지 전송 시 악센트 및 발음 부호 제거</string>
<string name="mms_file_size_limit_none">제한 없음</string>
<string name="messages">메시지</string>
<string name="send_long_message_mms">긴 메시지를 MMS로 전송</string>
<string name="outgoing_messages">보내는 메시지</string>
<string name="group_message_mms">그룹 메시지를 MMS로 전송</string>
<string name="export_messages">메시지 내보내기</string>
<string name="export_sms">SMS 내보내기</string>
<string name="export_mms">MMS 내보내기</string>
<string name="import_messages">메시지 불러오기</string>
<string name="import_sms">SMS 불러오기</string>
<string name="import_mms">MMS 불러오기</string>
<string name="no_option_selected">한 개 이상의 항목을 선택해야 합니다</string>
<string name="error_radio_turned_off">무선 통신이 사용 중지되어 있어 메시지가 전송되지 않았습니다</string>
<string name="carrier_send_error">통신 오류로 인해 메시지가 전송되지 않았습니다</string>
<string name="unknown_error_occurred_sending_message">다음 오류로 인해 메시지가 전송되지 않았습니다: %d</string>
<string name="invalid_short_code">해당 단축 코드에는 답장할 수 없습니다</string>
<string name="sim_card_not_available">SIM 카드를 사용할 수 없습니다</string>
<string name="couldnt_download_mms">MMS를 다운로드할 수 없습니다</string>
<string name="attachment_sized_exceeds_max_limit">첨부 파일의 크기가 MMS 제한을 초과합니다</string>
<string name="faq_1_title">왜 인터넷 접근 권한이 필요한가요?</string>
<string name="faq_3_title">예약 메시지를 지원하나요?</string>
<string name="faq_3_text">네, 전송 버튼을 길게 눌러서 원하는 날짜와 시간에 메시지를 전송하도록 예약할 수 있습니다.</string>
<string name="faq_2_title">받는 사람이 제 MMS를 못 받았다고 합니다. 제가 무엇을 해야 하나요?</string>
<string name="faq_2_text">MMS 크기는 이동 통신사에 의해 제한됩니다. 앱 설정에서 저 작은 크기로 설정해보세요.</string>
<string name="new_message">새 메시지</string>
<string name="enable_custom_notifications">사용자 지정 알림 사용</string>
<string name="empty_archive">보관한 대화 모두 삭제</string>
<string name="show_archived_conversations">보관된 대화 표시</string>
<plurals name="delete_conversations">
<item quantity="other">대화 %d개</item>
</plurals>
<plurals name="delete_messages">
<item quantity="other">메시지 %d개</item>
</plurals>
<string name="not_blocking_keywords">차단한 키워드가 없습니다. 특정 키워드를 포함한 메시지를 차단하려면 여기에 단어를 추가하세요.</string>
<string name="lock_screen_visibility">잠금 화면 알림 표시 여부</string>
<string name="empty_destination_address">빈 번호로 메지지를 보낼 수 없습니다</string>
<string name="unable_to_save_message">메시지를 Telephony 저장소에 저장할 수 없습니다</string>
<string name="error_service_is_unavailable">통신 서비스를 사용할 수 없어 메시지가 전송되지 않았습니다</string>
<string name="invalid_short_code_desc">\"AB-CD0\"과 같은 단어를 포함한 단축 코드가 아닌 \"503501\"과 같은 숫자 단축 코드에만 답장할 수 있습니다.</string>
<string name="faq_1_text">안타깝게도 MMS 첨부 파일을 전송하려면 인터넷 접근이 필요합니다. MMS를 전송하지 못한다면 다른 앱과 비교하여 큰 단점이 될 것입니다. 하지만 저희의 다른 앱과 마찬가지로 광고나 추적, 분석따위는 포함되어 있지 않고, 인터넷은 MMS 전송을 위해서만 사용됩니다.</string>
<string name="message_not_sent_short">메시지 전송 안 됨</string>
<string name="no_conversations_found">저장된 대화가 없습니다</string>
<string name="reply">답장</string>
<string name="unpin_conversation">고정 해제</string>
<string name="members">참여자</string>
<string name="conversation_name">대화명</string>
<string name="schedule_send_warning">휴대전화의 전원이 켜져있고 앱이 백그라운드에서 종료되지 않도록 설정하세요.</string>
<string name="skip_the_recycle_bin_messages">휴지통에 보관하지 않고 바로 삭제</string>
<string name="delete_whole_conversation_confirmation">이 대화의 메시지를 모두 삭제하시겠습니까?</string>
<string name="empty_recycle_bin_messages_confirmation">휴지통을 비우시겠습니까? 모든 메시지가 영구적으로 삭제됩니다.</string>
<string name="restore_all_messages">모든 메시지 복원</string>
<string name="restore_whole_conversation_confirmation">이 대화의 모든 메시지를 복원하시겠습니까?</string>
<string name="archive_confirmation">%s를 보관하시겠습니까?</string>
<string name="restore_confirmation">%s를 복원하시겠습니까?</string>
<string name="blocked_keywords">차단된 단어</string>
<string name="keyword">단어</string>
<string name="manage_blocked_keywords">차단한 키워드</string>
<string name="add_a_blocked_keyword">차단 키워드 추가</string>
<string name="app_launcher_name">메시지</string>
<string name="type_a_message">메시지를 입력하세요…</string>
<string name="message_not_sent_touch_retry">전송되지 않았습니다. 다시 시도하려면 선택하세요.</string>
<string name="message_sending_error">\'%s\'에게 전송한 메시지가 전송되지 않았습니다</string>
<string name="add_person">수신자 추가</string>
<string name="attachment">첨부</string>
<string name="start_conversation">대화 시작</string>
<string name="show_character_counter">메시지 작성 시 글자 수 표시</string>
<string name="loading_messages">메시지 불러오는 중…</string>
<string name="no_reply_support">보낸 사람이 답장 기능을 지원하지 않습니다</string>
<string name="draft">임시 저장</string>
<string name="sending">전송 중…</string>
<string name="pin_conversation">상단에 고정</string>
<string name="forward_message">전달</string>
<string name="compress_error">사진을 선택한 크기로 압축할 수 없습니다</string>
<string name="duplicate_item_warning">중복된 항목이 제외되었습니다</string>
<plurals name="and_other_contacts">
<item quantity="other">외 %d명</item>
</plurals>
<string name="new_conversation">새 대화</string>
<string name="add_contact_or_number">연락처 또는 전화번호 추가…</string>
<string name="suggestions">제안</string>
<string name="conversation_details">대화 세부 사항</string>
<string name="rename_conversation">대화명 편집</string>
<string name="rename_conversation_warning">대화명은 다른 사람한테 표시되지 않습니다</string>
<string name="scheduled_message">예약된 메시지</string>
<string name="schedule_message">메시지 예약</string>
<string name="schedule_send">예약 전송</string>
<string name="cancel_schedule_send">예약 전송 취소</string>
<string name="must_pick_time_in_the_future">미래의 시간을 선택해야 합니다</string>
<string name="update_message">메시지 수정</string>
<string name="send_now">지금 전송</string>
<string name="message_details">메시지 세부 정보</string>
<string name="message_details_sender">보낸 사람</string>
<string name="message_details_receiver">받는 사람</string>
<string name="message_details_sent_at">전송 시간</string>
<string name="message_details_received_at">받은 시간</string>
<string name="channel_received_sms">받은 메시지</string>
<string name="mark_as_read">읽음으로 표시</string>
<string name="mark_as_unread">읽지 않음으로 표시</string>
<string name="me"></string>
<string name="archive">보관</string>
</resources>

View file

@ -103,7 +103,7 @@
<string name="error_radio_turned_off">Kon het bericht niet verzenden: vliegtuigmodus</string>
<string name="carrier_send_error">Kon het bericht niet verzenden: netwerkfout</string>
<string name="unknown_error_occurred_sending_message">Kon het bericht niet verzenden: foutcode %d</string>
<string name="invalid_short_code">Er kan niet gereageerd worden op korte codes zoals deze</string>
<string name="invalid_short_code">Er kan niet worden gereageerd op dit bericht</string>
<string name="invalid_short_code_desc">Er kan alleen worden gereageerd op korte codes met cijfers, zoals \"503501\", maar niet op codes met letters en cijfers, zoals \"AB-CD0\".</string>
<string name="attachment_sized_exceeds_max_limit">De bestandsgrootte van de bijlage overschrijdt de limiet voor MMS</string>
<string name="sim_card_not_available">Simkaart niet beschikbaar</string>

View file

@ -20,9 +20,9 @@
<string name="compress_error">Não pôde comprimir imagem ao tamanho selecionado</string>
<string name="duplicate_item_warning">O item duplicado não foi incluído</string>
<plurals name="and_other_contacts">
<item quantity="one">and %d other</item>
<item quantity="many">and %d others</item>
<item quantity="other">and %d others</item>
<item quantity="one">E %d outro</item>
<item quantity="many">E %d outros</item>
<item quantity="other">E %d outros</item>
</plurals>
<string name="new_conversation">Nova conversa</string>
<string name="add_contact_or_number">Adicionar contato ou número…</string>
@ -117,4 +117,6 @@
<string name="enable_custom_notifications">Ativar notificações personalizadas</string>
<string name="update_message">Atualizar mensagem</string>
<string name="message_details">Detalhes da mensagem</string>
<string name="couldnt_download_mms">Não foi possível baixar o MMS</string>
<string name="app_launcher_name">Mensagens</string>
</resources>

View file

@ -1,2 +1,122 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="archive_emptied_successfully">O arquivo foi limpo com sucesso</string>
<string name="type_a_message">Escrever uma mensagem…</string>
<string name="reply">Responder</string>
<string name="schedule_send_warning">Mantenha o telefone ligado e verifique se não há nada que esteja a bloquear a aplicação em segundo plano.</string>
<string name="send_now">Enviar agora</string>
<string name="no_archived_conversations">Não existem conversas arquivadas</string>
<string name="empty_archive_confirmation">Tem a certeza de que pretende limpar o arquivo? Todas as conversas arquivadas serão eliminadas.</string>
<string name="restore">Restaurar</string>
<string name="delete_whole_conversation_confirmation">Tem a certeza de que pretende apagar todas as mensagens desta conversa?</string>
<string name="archive_confirmation">Tem a certeza de que pretende arquivar %s?</string>
<string name="no_conversations_found">Não foram encontradas conversas</string>
<plurals name="delete_conversations">
<item quantity="one">%d conversa</item>
<item quantity="many">%d conversas</item>
<item quantity="other"></item>
</plurals>
<plurals name="delete_messages">
<item quantity="one">%d mensagem</item>
<item quantity="many">%d mensagens</item>
<item quantity="other"></item>
</plurals>
<string name="mms_file_size_limit_none">Sem limite</string>
<string name="group_message_mms">Enviar mensagens de grupo como MMS</string>
<string name="send_long_message_mms">Enviar mensagens longas como MMS</string>
<string name="messages">Mensagens</string>
<string name="export_messages">Exportar mensagens</string>
<string name="unknown_error_occurred_sending_message">Não foi possível enviar a mensagem. Erro: %d</string>
<string name="attachment_sized_exceeds_max_limit">O anexo excede o tamanho máximo permitido para MMS</string>
<string name="sim_card_not_available">Cartão SIM não encontrado</string>
<string name="couldnt_download_mms">Não foi possível descarregar a MMS</string>
<string name="faq_1_title">Porque é que a aplicação requer acesso à Internet?</string>
<string name="faq_3_title">Posso agendar mensagens com esta aplicação?</string>
<string name="update_message">Atualizar mensagem</string>
<string name="export_sms">Exportar SMS</string>
<string name="send_on_enter">Enviar mensagem ao premir Enter</string>
<string name="app_launcher_name">Mensagens</string>
<string name="message_not_sent_short">Mensagem não enviada</string>
<string name="message_not_sent_touch_retry">Não enviada. Toque para tentar novamente.</string>
<string name="message_sending_error">A mensagem destinada a \'%s\' não foi enviada</string>
<string name="start_conversation">Iniciar uma conversa</string>
<string name="add_person">Adicionar pessoa</string>
<string name="attachment">Anexo</string>
<string name="show_character_counter">Mostrar número de caracteres ao escrever a mensagem</string>
<string name="loading_messages">A carregar mensagens…</string>
<string name="message_details_received_at">Recebida a</string>
<string name="duplicate_item_warning">O item duplicado não foi incluído</string>
<plurals name="and_other_contacts">
<item quantity="one">e mais %d</item>
<item quantity="many">e mais %d</item>
<item quantity="other"></item>
</plurals>
<string name="new_conversation">Nova conversa</string>
<string name="add_contact_or_number">Adicionar contacto ou número…</string>
<string name="suggestions">Sugestões</string>
<string name="members">Membros</string>
<string name="conversation_name">Nome da conversa</string>
<string name="conversation_details">Detalhes da conversa</string>
<string name="rename_conversation">Renomear conversa</string>
<string name="rename_conversation_warning">Apenas você pode ver o nome desta conversa</string>
<string name="message_details">Detalhes da mensagem</string>
<string name="channel_received_sms">SMS recebida</string>
<string name="new_message">Nova mensagem</string>
<string name="mark_as_read">Marcar como lida</string>
<string name="mark_as_unread">Marcar como não lida</string>
<string name="sending">A enviar…</string>
<string name="scheduled_message">Mensagem agendada</string>
<string name="schedule_message">Agendar mensagem</string>
<string name="schedule_send">Agendar envio</string>
<string name="message_details_sender">Remetente</string>
<string name="me">Eu</string>
<string name="pin_conversation">Fixar</string>
<string name="unpin_conversation">Desafixar</string>
<string name="cancel_schedule_send">Cancelar envio agendado</string>
<string name="enable_custom_notifications">Ativar notificações personalizadas</string>
<string name="empty_archive">Eliminar todas as conversas arquivadas</string>
<string name="archived_conversations">Arquivo</string>
<string name="show_archived_conversations">Mostrar conversas arquivadas</string>
<string name="unarchive">Desarquivar</string>
<string name="empty_recycle_bin_messages_confirmation">Tem a certeza de que pretende esvaziar a reciclagem? As mensagens não poderão ser recuperadas.</string>
<string name="skip_the_recycle_bin_messages">Eliminar mensagens sem as colocar na reciclagem</string>
<string name="restore_whole_conversation_confirmation">Tem a certeza de que pretende restaurar todas as mensagens desta conversa?</string>
<string name="restore_all_messages">Restaurar todas as mensagens</string>
<string name="archive">Arquivo</string>
<string name="restore_confirmation">Tem a certeza de que pretende restaurar %s?</string>
<string name="export_mms">Exportar MMS</string>
<string name="import_messages">Importar mensagens</string>
<string name="import_sms">Importar SMS</string>
<string name="import_mms">Importar MMS</string>
<string name="no_option_selected">Tem que selecionar, pelo menos, 1 item</string>
<string name="empty_destination_address">Não pode enviar mensagens se não existir um destinatário</string>
<string name="error_service_is_unavailable">Serviço indisponível. Não pode enviar a mensagem</string>
<string name="lock_screen_visibility">Notificação no ecrã de bloqueio</string>
<string name="sender_and_message">Remetente e mensagem</string>
<string name="sender_only">Apenas remetente</string>
<string name="enable_delivery_reports">Ativar relatórios de entrega</string>
<string name="carrier_send_error">Erro da operadora. Não pode enviar a mensagem</string>
<string name="faq_1_text">Infelizmente, é a única forma de poder enviar anexos MMS. Não ter a capacidade de enviar MMS representaria uma enorme desvantagem comparativamente a outras aplicações e foi por isso que tomámos esta decisão. Mas, como habitualmente, a aplicação não tem anúncios, não rastreia os utilizadores nem recolhe dados pessoais. Esta permissão apenas é necessária para enviar MMS.</string>
<string name="faq_2_title">O destinatário não recebe as minhas MMS, o que posso fazer?</string>
<string name="keyword">Palavra-chave</string>
<string name="blocked_keywords">Palavras-chave bloqueadas</string>
<string name="manage_blocked_keywords">Gerir palavras-chave bloqueadas</string>
<string name="not_blocking_keywords">Não existem quaisquer palavras-chave bloqueadas. Pode adicionar palavras-chave para bloquear todas as mensagens que as contenham.</string>
<string name="add_a_blocked_keyword">Adicionar palavra-chave</string>
<string name="use_simple_characters">Remover acentos e diacríticos nas mensagens enviadas</string>
<string name="unable_to_save_message">Não foi possível guardar a mensagem na base de dados do telefone</string>
<string name="error_radio_turned_off">Rádio desligado. Não pode enviar a mensagem</string>
<string name="invalid_short_code">Não é possível responder a códigos deste tipo</string>
<string name="faq_2_text">O tamanho das MMS é limitado pelas operadoras. Tente definir um limite inferior nas definições da aplicação.</string>
<string name="faq_3_text">Sim, pode agendar mensagens e escolher a data e hora de envio com um toque longo no botão Enviar.</string>
<string name="invalid_short_code_desc">Apenas é possível responder a códigos curtos com números como, por exemplo, e não a códigos que combinem letras e números com, por exemplo, \"AB-CD0\".</string>
<string name="must_pick_time_in_the_future">Tem que escolher um momento futuro</string>
<string name="mms_file_size_limit">Redimensionar imagens MMS enviadas</string>
<string name="outgoing_messages">Mensagens a enviar</string>
<string name="no_reply_support">O remetente não aceita respostas</string>
<string name="draft">Rascunho</string>
<string name="forward_message">Encaminhar</string>
<string name="compress_error">Não foi possível comprimir a imagem para o tamanho selecionado</string>
<string name="message_details_receiver">Destinatário</string>
<string name="message_details_sent_at">Enviada a</string>
</resources>

View file

@ -14,7 +14,7 @@
<string name="no_reply_support">O remetente não aceita respostas</string>
<string name="draft">Rascunho</string>
<string name="sending">A enviar…</string>
<string name="pin_conversation">Fixar</string>
<string name="pin_conversation">Afixar no topo</string>
<string name="unpin_conversation">Desafixar</string>
<string name="forward_message">Encaminhar</string>
<string name="compress_error">Não foi possível comprimir a imagem para o tamanho selecionado</string>
@ -61,7 +61,7 @@
<string name="restore_all_messages">Restaurar todas as mensagens</string>
<string name="empty_recycle_bin_messages_confirmation">Tem a certeza de que pretende esvaziar a reciclagem\? As mensagens não poderão ser recuperadas.</string>
<string name="skip_the_recycle_bin_messages">Eliminar mensagens sem as colocar na reciclagem</string>
<string name="delete_whole_conversation_confirmation">Tem a certeza de que pretende apagar todas as mensagens desta conversa\?</string>
<string name="delete_whole_conversation_confirmation">Tem a certeza de que pretende eliminar todas as mensagens desta conversa?</string>
<string name="archive_confirmation">Tem a certeza de que pretende arquivar %s\?</string>
<string name="restore_whole_conversation_confirmation">Tem a certeza de que pretende restaurar todas as mensagens desta conversa\?</string>
<string name="restore_confirmation">Tem a certeza de que pretende restaurar %s\?</string>
@ -118,4 +118,5 @@
<string name="faq_3_text">Sim, pode agendar mensagens e escolher a data e hora de envio com um toque longo no botão Enviar.</string>
<string name="enable_custom_notifications">Ativar notificações personalizadas</string>
<string name="message_details">Detalhes da mensagem</string>
<string name="app_launcher_name">Mensagens</string>
</resources>

View file

@ -1,29 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="type_a_message">Introduceţi un mesaj…</string>
<string name="type_a_message">Introdu un mesaj…</string>
<string name="message_not_sent_short">Mesajul nu a fost trimis</string>
<string name="message_not_sent_touch_retry">Mesajul nu a fost trimis. Apasă pentru a încerca din nou.</string>
<string name="message_sending_error">Mesajul tău către \'%s\' nu a fost trimis</string>
<string name="add_person">Adaugă o persoană</string>
<string name="attachment">Anexă</string>
<string name="no_conversations_found">Nu au fost găsite conversaţii stocate</string>
<string name="start_conversation">Începe o conversaţie</string>
<string name="attachment">Atașament</string>
<string name="no_conversations_found">Nu au fost găsite conversații stocate</string>
<string name="start_conversation">Începe o conversație</string>
<string name="reply">Răspunde</string>
<string name="show_character_counter">Afişează un contor de caractere la scrierea mesajelor</string>
<string name="show_character_counter">Afișează un contor de caractere la scrierea mesajelor</string>
<string name="loading_messages">Încărcare mesaje…</string>
<string name="no_reply_support">Expeditorul nu suportă funcţia de a răspunde la mesaje</string>
<string name="no_reply_support">Expeditorul nu suportă funcția de a răspunde la mesaje</string>
<string name="draft">Ciornă</string>
<string name="sending">Trimitere…</string>
<string name="pin_conversation">Fixare în vârf</string>
<string name="pin_conversation">Fixare în partea de sus</string>
<string name="unpin_conversation">Elimină fixarea</string>
<string name="forward_message">Redirecţionare</string>
<string name="forward_message">Redirecționare</string>
<string name="compress_error">Nu se poate comprima imaginea la dimensiunea selectată</string>
<plurals name="and_other_contacts">
<item quantity="one">și %d alt</item>
<item quantity="few">și %d altele</item>
<item quantity="other">și %d de altele</item>
<item quantity="one">și încă %d</item>
<item quantity="few">și încă %d</item>
<item quantity="other">și încă %d</item>
</plurals>
<string name="new_conversation">Conversaţie nouă</string>
<string name="new_conversation">Conversație nouă</string>
<string name="add_contact_or_number">Adaugă contact sau număr de telefon…</string>
<string name="suggestions">Sugestii</string>
<string name="channel_received_sms">SMS-uri primite</string>
@ -31,11 +31,11 @@
<string name="mark_as_read">Marchează ca citit</string>
<string name="mark_as_unread">Marchează ca necitit</string>
<string name="me">Eu</string>
<string name="delete_whole_conversation_confirmation">Sunteți sigur că doriți să ștergeți toate mesajele din această conversație\?</string>
<string name="delete_whole_conversation_confirmation">Ești sigur că dorești să ștergi toate mesajele din această conversație?</string>
<plurals name="delete_conversations">
<item quantity="one">%d conversaţie</item>
<item quantity="few">%d conversaţii</item>
<item quantity="other">%d conversaţii</item>
<item quantity="one">%d conversație</item>
<item quantity="few">%d conversații</item>
<item quantity="other">%d conversații</item>
</plurals>
<plurals name="delete_messages">
<item quantity="one">%d mesaj</item>
@ -43,25 +43,80 @@
<item quantity="other">%d mesaje</item>
</plurals>
<string name="lock_screen_visibility">Vizibilitatea notificării pe ecranul de blocare</string>
<string name="sender_and_message">Expeditor şi mesaj</string>
<string name="sender_and_message">Expeditor și mesaj</string>
<string name="sender_only">Doar expeditorul</string>
<string name="enable_delivery_reports">Activați rapoartele de livrare</string>
<string name="use_simple_characters">Elimnă accente şi diacritice la trimitearea mesajelor</string>
<string name="enable_delivery_reports">Activează rapoartele de livrare</string>
<string name="use_simple_characters">Elimină accentele și diacriticele la trimiterea mesajelor</string>
<string name="mms_file_size_limit">Redimensioneză imaginile trimise prin MMS</string>
<string name="mms_file_size_limit_none">Fără limită</string>
<string name="outgoing_messages">Mesaje transmise</string>
<string name="group_message_mms">Trimiteți mesaje de grup ca MMS</string>
<string name="send_long_message_mms">Trimiteți mesaje lungi ca MMS</string>
<string name="messages">Mesajele</string>
<string name="group_message_mms">Trimite mesaje de grup ca MMS</string>
<string name="send_long_message_mms">Trimite mesaje lungi ca MMS</string>
<string name="messages">Mesaje</string>
<string name="export_messages">Exportă mesajele</string>
<string name="export_sms">Exportă mesajele SMS</string>
<string name="export_mms">Exportă mesajele MMS</string>
<string name="import_messages">Importă mesajele</string>
<string name="import_sms">Importă mesajele SMS</string>
<string name="import_mms">Importă mesajele MMS</string>
<string name="no_option_selected">Trebuie să selectaţi cel puţin un element</string>
<string name="no_option_selected">Trebuie să selectezi cel puțin un element</string>
<string name="faq_1_title">De ce necesită aplicația acces la internet\?</string>
<string name="faq_1_text">Din păcate este nevoie pentru a primite anexe MMS. Ideea de a nu putea trimite MMS-uri ar prezenta un dezavantaj foarte mare în comparaţie cu alte aplicaţii, aşa că am decis să mergem pe această cale. Totuşi, ca de obicei, nu este prezentă nici un fel de reclamă, urmărire sau analiză, internetul este folosit doar pentru a trimite MMS-uri.</string>
<string name="faq_1_text">Din păcate este nevoie pentru a primite anexe MMS. Ideea de a nu putea trimite MMS-uri ar prezenta un dezavantaj foarte mare în comparație cu alte aplicații, așa că am decis să mergem pe această cale. Totuși, ca de obicei, nu este prezentă niciun fel de reclamă, urmărire sau analiză, internetul este folosit doar pentru a trimite MMS-uri.</string>
<string name="faq_2_title">Celălalt capăt nu-mi primește MMS-ul, pot face ceva în acest sens\?</string>
<string name="faq_2_text">Dimensiunea MMS este limitată de operatorii de telefonie; puteți încerca să setați o limită mai mică în setările aplicației.</string>
<string name="faq_2_text">Dimensiunea MMS este limitată de operatorii de telefonie; poți încerca să setezi o limită mai mică în setările aplicației.</string>
<string name="members">Membri</string>
<string name="conversation_name">Numele conversației</string>
<string name="conversation_details">Detaliile conversației</string>
<string name="rename_conversation">Redenumire conversație</string>
<string name="app_launcher_name">Mesaje</string>
<string name="rename_conversation_warning">Numai tu poți vedea numele acestei conversații</string>
<string name="scheduled_message">Mesaj programat</string>
<string name="schedule_message">Programează mesajul</string>
<string name="schedule_send">Programează trimiterea</string>
<string name="must_pick_time_in_the_future">Trebuie să alegi un timp în viitor</string>
<string name="schedule_send_warning">Ține telefonul pornit și asigură-te că nimic nu oprește aplicația în fundal.</string>
<string name="update_message">Actualizează mesajul</string>
<string name="send_now">Trimite acum</string>
<string name="message_details">Detalii mesaj</string>
<string name="empty_archive">Șterge toate conversațiile arhivate</string>
<string name="archived_conversations">Arhivează</string>
<string name="show_archived_conversations">Afișează conversațiile arhivate</string>
<string name="message_details_sender">Expeditor</string>
<string name="message_details_sent_at">Trimis la</string>
<string name="message_details_receiver">Destinatar</string>
<string name="message_details_received_at">Primit la</string>
<string name="unarchive">Dezarhivează</string>
<string name="no_archived_conversations">Nu au fost găsite conversații arhivate</string>
<string name="archive_emptied_successfully">Arhiva a fost golită cu succes</string>
<string name="restore_all_messages">Restaurează toate mesajele</string>
<string name="empty_recycle_bin_messages_confirmation">Sigur dorești să golești Coșul de reciclare? Mesajele se vor pierde definitiv.</string>
<string name="skip_the_recycle_bin_messages">Omite Coșul de reciclare, șterge direct mesajele</string>
<string name="archive_confirmation">Sigur dorești să arhivezi %s?</string>
<string name="restore_whole_conversation_confirmation">Sigur dorești să restabilești toate mesajele acestei conversații?</string>
<string name="restore_confirmation">Sigur dorești să restaurezi %s?</string>
<string name="keyword">Cuvânt cheie</string>
<string name="blocked_keywords">Cuvinte cheie blocate</string>
<string name="manage_blocked_keywords">Gestionează cuvintele cheie blocate</string>
<string name="add_a_blocked_keyword">Adaugă un cuvânt cheie blocat</string>
<string name="faq_3_text">Da, poți programa mesajele care urmează să fie trimise în viitor, apăsând lung butonul Trimite și alegând data și ora dorită.</string>
<string name="send_on_enter">Trimite mesaj apăsând Enter</string>
<string name="not_blocking_keywords">Nu blochezi niciun cuvânt cheie. Poți adăuga cuvinte cheie aici pentru a bloca toate mesajele care le conțin.</string>
<string name="unable_to_save_message">Nu se poate salva mesajul în baza de date de telefonie</string>
<string name="error_radio_turned_off">Nu s-a putut trimite mesajul, modulul radio este oprit</string>
<string name="invalid_short_code">Nu pot răspunde la astfel de coduri scurte</string>
<string name="invalid_short_code_desc">Poți răspunde numai la codurile scurte cu numere precum „503501”, dar nu și la codurile care conțin litere și numere precum „AB-CD0”.</string>
<string name="attachment_sized_exceeds_max_limit">Dimensiunea atașamentului depășește limita maximă MMS</string>
<string name="couldnt_download_mms">Nu s-a putut descărca MMS</string>
<string name="duplicate_item_warning">Elementul duplicat nu a fost inclus</string>
<string name="restore">Restaurare</string>
<string name="enable_custom_notifications">Activează notificările personalizate</string>
<string name="error_service_is_unavailable">Nu s-a putut trimite mesajul, serviciul nu este disponibil</string>
<string name="carrier_send_error">Nu s-a putut trimite mesajul, eroare de operator</string>
<string name="unknown_error_occurred_sending_message">Nu s-a putut trimite mesajul, cod de eroare: %d</string>
<string name="sim_card_not_available">Cartela SIM nu este disponibilă</string>
<string name="faq_3_title">Aplicația acceptă mesajele programate?</string>
<string name="archive">Arhivează</string>
<string name="empty_archive_confirmation">Sigur dorești să golești arhiva? Toate conversațiile arhivate se vor pierde definitiv.</string>
<string name="cancel_schedule_send">Anulează trimiterea programată</string>
<string name="empty_destination_address">Nu se poate trimite mesaj la un număr gol</string>
</resources>

View file

@ -38,7 +38,7 @@
<string name="schedule_send">Pošiljanje načrta</string>
<string name="cancel_schedule_send">Prekliči pošiljanje načrta</string>
<string name="must_pick_time_in_the_future">Izberite čas v prihodnosti</string>
<string name="schedule_send_warning">Telefon vklopite in poskrbite, da bo aplikacija v ozadju delovala.</string>
<string name="schedule_send_warning">Telefon ohranite vključen in se prepričajte, da ni ničesar, kar bi onemogočalo delovanje aplikacije v ozadju.</string>
<string name="send_now">Sedaj pošlji</string>
<string name="channel_received_sms">Prejeto SMS sporočilo</string>
<string name="new_message">Novo sporočilo</string>

View file

@ -21,7 +21,7 @@
<string name="duplicate_item_warning">Yinelenen öge dahil edilmedi</string>
<plurals name="and_other_contacts">
<item quantity="one">ve %d diğeri</item>
<item quantity="other">ve %d diğeri</item>
<item quantity="other">ve %d diğerleri</item>
</plurals>
<string name="new_conversation">Yeni görüşme</string>
<string name="add_contact_or_number">Kişi veya Numara Ekle…</string>

View file

@ -82,7 +82,7 @@
<string name="keyword">Ключове слово</string>
<string name="blocked_keywords">Заблоковані ключові слова</string>
<string name="manage_blocked_keywords">Керувати заблокованими ключовими словами</string>
<string name="not_blocking_keywords">У вас немає заблокованих ключових слів. Ви можете додати ключові слова тут, щоб блокувати всі повідомлення, що містить їх</string>
<string name="not_blocking_keywords">У вас немає заблокованих ключових слів. Ви можете додати ключові слова тут, щоб блокувати всі повідомлення, що містить їх.</string>
<string name="add_a_blocked_keyword">Додати заблоковане ключове слово</string>
<string name="lock_screen_visibility">Видимість сповіщень на екрані блокування</string>
<string name="sender_and_message">Відправник і повідомлення</string>
@ -110,14 +110,16 @@
<string name="carrier_send_error">Не вдалося надіслати повідомлення, помилка оператора</string>
<string name="unknown_error_occurred_sending_message">Не вдалося надіслати повідомлення, код помилки: %d</string>
<string name="invalid_short_code">Не можна відповідати на такі короткі коди</string>
<string name="invalid_short_code_desc">Ви можете відповідати лише на короткі коди з цифрами, як-от \"503501\", але не на коди, що містять літери та цифри, як-от \"AB-CD0\".</string>
<string name="invalid_short_code_desc">Ви можете відповідати лише на короткі коди з цифрами, як-от «503501», але не на коди, що містять літери та цифри, як-от «AB-CD0».</string>
<string name="attachment_sized_exceeds_max_limit">Розмір вкладеного файлу перевищує максимальний ліміт MMS</string>
<string name="sim_card_not_available">SIM-картка не доступна</string>
<string name="couldnt_download_mms">Не вдалося завантажити MMS</string>
<string name="faq_1_title">Чому додаток вимагає доступ до Інтернету\?</string>
<string name="faq_1_text">Нажаль, це необхідно для відправки вкладень MMS. Неспроможність надсилати MMS-повідомлення була б великим недоліком нашого додатку порівняно з іншими, тому ми так зробили. Тим не менше, як і в інших наших додатках, цей не містить реклами, відстеження та аналітики. Інтернет використовується лише для відправки MMS.</string>
<string name="faq_1_title">Чому застосунок вимагає доступ до Інтернету?</string>
<string name="faq_1_text">Нажаль, це необхідно для відправки вкладень MMS. Неспроможність надсилати MMS-повідомлення була б великим недоліком нашого застосунку порівняно з іншими, тому ми так зробили. Тим не менше, як і в інших наших застосунках, цей не містить реклами, відстеження та аналітики. Інтернет використовується лише для відправки MMS.</string>
<string name="faq_2_title">Інша сторона не отримує мого MMS, чи можу я щось з цим зробити\?</string>
<string name="faq_2_text">Розмір MMS обмежений операторами, ви можете спробувати зменшити ліміт у налаштуваннях програми.</string>
<string name="faq_3_title">Чи підтримує застосунок заплановані повідомлення\?</string>
<string name="faq_3_text">Так, ви можете запланувати надсилання повідомлень у майбутньому, довго натискаючи кнопку «Надіслати» та вибираючи потрібну дату й час.</string>
<string name="app_launcher_name">Повідомлення</string>
<string name="enable_custom_notifications">Ввімкнути власні сповіщення</string>
</resources>

View file

@ -111,4 +111,6 @@
<string name="faq_2_text">Kích thước MMS bị giới hạn bởi nhà cung cấp dịch vụ, bạn có thể thử đặt giới hạn nhỏ hơn trong cài đặt ứng dụng.</string>
<string name="faq_3_title">Ứng dụng có hỗ trợ gửi tin nhắn theo lịch trình không\?</string>
<string name="faq_3_text">Có, bạn có thể lên lịch gửi tin nhắn trong tương lai bằng cách nhấn và giữ nút Gửi và chọn ngày giờ mong muốn.</string>
<string name="enable_custom_notifications">Bật thông báo tùy chỉnh</string>
<string name="app_launcher_name">Tin nhắn</string>
</resources>

View file

@ -111,4 +111,6 @@
<string name="faq_2_text">MMS 的大小受到電信業者的限制,您可以嘗試在應用程式設定中設定較小的限制。</string>
<string name="faq_3_title">應用程式是否支援排程訊息?</string>
<string name="faq_3_text">是的,您可以長按「送出」按鈕並選擇所需的日期和時間,以排程將訊息送出。</string>
<string name="enable_custom_notifications">啟用自訂通知</string>
<string name="app_launcher_name">簡訊</string>
</resources>

View file

@ -3,6 +3,7 @@ plugins {
alias(libs.plugins.kotlinAndroid).apply(false)
alias(libs.plugins.kotlinSerialization).apply(false)
alias(libs.plugins.ksp).apply(false)
alias(libs.plugins.detekt).apply(false)
}
tasks.register<Delete>("clean") {

View file

@ -0,0 +1 @@
* İlkin buraxılış

View file

@ -0,0 +1 @@
Фосифай SMS Месинджър

View file

@ -0,0 +1 @@
* প্রাথমিক প্রকাশ

View file

@ -0,0 +1,2 @@
* ছোটখাট বাগ সংশোধন এবং উন্নতি
* কিছু translation যোগ করা হয়েছে

View file

@ -0,0 +1,32 @@
Fossify Messenger হল আপনার বিশ্বস্ত মেসেজিং সঙ্গী, যা আপনার মেসেজিং অভিজ্ঞতাকে বিভিন্ন উপায়ে উন্নত করার জন্য ডিজাইন করা হয়েছে।
📱 সহজে কানেক্টেড থাকুন:
Fossify Messenger এর মাধ্যমে, আপনি আপনার প্রিয়জনদের সাথে সংযুক্ত থাকতে অনায়াসে SMS এবং MMS বার্তা পাঠাতে পারেন। SMS/MMS ভিত্তিক গ্রুপ মেসেজিং উপভোগ করুন এবং ফটো, ইমোজি এবং দ্রুত শুভেচ্ছার মাধ্যমে নিজেকে প্রকাশ করুন।
🚫 অবাঞ্ছিত বার্তা ব্লক করুন:
একটি শক্তিশালী ব্লকিং বৈশিষ্ট্য সহ আপনার মেসেজিং অভিজ্ঞতার নিয়ন্ত্রণ নিন, সহজেই অবাঞ্ছিত বার্তাগুলিকে প্রতিরোধ করুন, এমনকি অজানা পরিচিতি থেকেও। আপনি ঝামেলা-মুক্ত ব্যাকআপের জন্য ব্লক করা নম্বরগুলি ইমপোর্ট এবং এক্সপোর্ট করতে পারেন। উপরন্তু, নির্দিষ্ট শব্দ বা বাক্যাংশ সহ বার্তাগুলিকে আপনার ইনবক্সে পৌঁছাতে বাধা দিয়ে আপনার অভিজ্ঞতা কাস্টমাইজ করুন।
🔒 অনায়াসে এসএমএস ব্যাকআপ:
গুরুত্বপূর্ণ বার্তা হারানোর বিষয়ে উদ্বেগকে বিদায় জানান। Fossify Messenger আপনাকে আপনার বার্তা রপ্তানি এবং আমদানি করার অনুমতি দিয়ে সুবিধাজনক SMS ব্যাকআপ কার্যকারিতা প্রদান করে। এই বৈশিষ্ট্যটি নিশ্চিত করে যে আপনি আপনার মূল্যবান কথোপকথন না হারিয়ে সহজেই ডিভাইসগুলি স্যুইচ করতে পারেন৷
🚀 বিদ্যুত-দ্রুত এবং হালকা:
এর শক্তিশালী বৈশিষ্ট্য থাকা সত্ত্বেও, ফসিফাই মেসেঞ্জার একটি উল্লেখযোগ্যভাবে ছোট app এর আকার নিয়ে গর্ব করে, এটিকে দ্রুত এবং সহজে ডাউনলোড এবং ইনস্টল করে। এসএমএস ব্যাকআপের সাথে আসা মানসিক শান্তি উপভোগ করার সময় speed এবং দক্ষতার অভিজ্ঞতা নিন।
🔐 উন্নত গোপনীয়তা:
অতিরিক্ত গোপনীয়তার জন্য আপনার lockscreen যা প্রদর্শিত হবে তা কাস্টমাইজ করুন। শুধুমাত্র প্রেরক, বার্তা সামগ্রী বা all প্রদর্শন করতে বেছে নিন। আপনার বার্তা আপনার নিয়ন্ত্রণে আছে.
🔍 কার্যকরী বার্তা search:
কথোপকথনের মাধ্যমে অন্তহীন স্ক্রোলিংকে বিদায় বলুন। ফসিফাই মেসেঞ্জার দ্রুত এবং দক্ষ অনুসন্ধান বৈশিষ্ট্য সহ বার্তা পুনরুদ্ধারকে সহজ করে। আপনার যা প্রয়োজন তা search করুন। যখন আপনার এটি প্রয়োজন।
🌈 আধুনিক ডিজাইন এবং ব্যবহারকারী-বান্ধব ইন্টারফেস:
একটি ব্যবহারকারী-বান্ধব ইন্টারফেসের সাথে একটি পরিষ্কার, আধুনিক ডিজাইন উপভোগ করুন। app টিতে একটি বস্তুগত নকশা এবং একটি অন্ধকার থিম বিকল্প রয়েছে, যা একটি দৃশ্যমান আকর্ষণীয় এবং আরামদায়ক ব্যবহারকারীর অভিজ্ঞতা প্রদান করে।
🌐 ওপেন সোর্স স্বচ্ছতা:
আপনার গোপনীয়তা একটি শীর্ষ অগ্রাধিকার. ফসিফাই মেসেঞ্জার ইন্টারনেট সংযোগের প্রয়োজন ছাড়াই কাজ করে, বার্তা নিরাপত্তা এবং স্থিতিশীলতার নিশ্চয়তা দেয়। আমাদের app টি সম্পূর্ণ বিজ্ঞাপন মুক্ত এবং অপ্রয়োজনীয় অনুমতির জন্য অনুরোধ করে না। অধিকন্তু, এটি সম্পূর্ণরূপে ওপেন সোর্স, যা আপনাকে মানসিক শান্তি প্রদান করে, কারণ আপনার কাছে নিরাপত্তা এবং গোপনীয়তা নিরীক্ষার জন্য সোর্স কোডের অ্যাক্সেস রয়েছে।
ফসিফাই মেসেঞ্জারে স্যুইচ করুন এবং মেসেজ করার অভিজ্ঞতা নিন যেভাবে এটি হওয়া উচিত - ব্যক্তিগত, দক্ষ এবং ব্যবহারকারী-বান্ধব৷ এখনই ডাউনলোড করুন এবং আপনার মেসেজিং অভিজ্ঞতা সুরক্ষিত করতে প্রতিশ্রুতিবদ্ধ আমাদের সম্প্রদায়ে যোগ দিন।
আরও Fossify app গুলি অন্বেষণ করুন: https://www.fossify.org
ওপেন-সোর্স কোড: https://www.github.com/FossifyOrg
Reddit এ সম্প্রদায়ে যোগ দিন: https://www.reddit.com/r/Fossify
টেলিগ্রামে সংযোগ করুন: https://t.me/Fossify

View file

@ -0,0 +1 @@
ওপেন সোর্স এবং বিজ্ঞাপন-মুক্ত SMS/MMS মেসেজিং app

View file

@ -0,0 +1 @@
* Llançament inicial

View file

@ -0,0 +1,2 @@
* Correccions d'errors menors i millores
* S'han afegit diverses traduccions

View file

@ -0,0 +1,32 @@
El Fossify Messenger és el vostre company de missatgeria de confiança, dissenyat per a millorar l'experiència de missatgeria de diverses maneres.
📱 MANTENIU-VOS EN CONNECTE AMB FACILITAT:
Amb el Fossify Messenger podeu enviar missatges SMS i MMS sense cap esforç per a mantenir-vos en connecte amb els éssers estimats. Gaudiu de la missatgeria en grup basada en SMS/MMS i expresseu-vos amb fotos, emojis i salutacions ràpides.
🚫 BLOQUEU ELS MISSATGES NO DESITJATS:
Preneu el control de la vostra experiència de missatgeria amb una característica de bloqueig robusta, evitant fàcilment els missatges no desitjats, fins i tot de contactes desconeguts. També podeu exportar i importar números bloquejats fent una còpia de seguretat sense complicacions. A més, personalitzeu l'experiència evitant que els missatges amb paraules o frases específiques arribin a la safata d'entrada.
🔒 CÒPIA DE SEGURETAT DE SMS SENSE ESFORÇ:
Acomiadeu-vos de les preocupacions per perdre missatges importants. El Fossify Messenger ofereix una funcionalitat de còpia de seguretat d'SMS còmoda, permetent-vos exportar i importar els vostres missatges. Aquesta característica garanteix que podeu canviar fàcilment els dispositius sense perdre les vostres converses valuoses.
🚀 RÀPID COM UN LLAMP I LLEUGER:
Tot i les seves característiques potents, el Fossify Messenger té una mida d'aplicació notablement petita, que la fa ràpida i fàcil de descarregar i instal·lar. Experimenteu la velocitat i l'eficiència mentre gaudiu de la tranquil·litat que comporta la còpia de seguretat dels SMS.
🔐 PRIVADESA MILLORADA:
Personalitzeu el que apareix a la pantalla de bloqueig per a més privacitat. Trieu mostrar només el remitent, el contingut del missatge o res en absolut. Els missatges estan sota el vostre control.
🔍 CERCA EFICIENT DE MISSATGES:
Digueu adeu a la infinitat de desplaçaments a través de les converses. El Fossify Messenger simplifica la recuperació de missatges amb una característica de cerca ràpida i eficient. Trobeu el que necessiteu, quan ho necessiteu.
🌈 «MODERN DESSIGN» I INTERFÍCIE FÀCIL D'UTILITZAR:
Gaudiu d'un disseny net i modern amb una interfície fàcil d'utilitzar. L'aplicació compta amb el «material design» i una opció de tema fosc, proporcionant una experiència d'usuari visualment atractiva i còmoda.
🌐 TRANSPARÈNCIA DEL CODI OBERT:
La teva privacitat és una prioritat absoluta. El Fossify Messenger opera sense necessitat de connexió a Internet, garantint la seguretat i l'estabilitat dels missatges. La nostra aplicació està totalment lliure d'anuncis i no sol·licita permisos innecessaris. A més, és totalment de codi obert, proporcionant-vos tranquil·litat, ja que teniu accés al codi font per a auditories de seguretat i privacitat.
Feu el canvi al Fossify Messenger i experimenteu la missatgeria de la manera com ha de ser: privada, eficient i fàcil d'utilitzar. Descarregueu-la ara i uniu-vod a la nostra comunitat compromesa amb la salvaguarda de la vostra experiència de la missatgeria.
Exploreu més aplicacions de Fossify: https://www.fossify.org
Codi obert: https://www.github.com/FossifyOrg
Uniu-vos a la comunitat a Reddit: https://www.reddit.com/r/Fossify
Connecteu a Telegram: https://t.me/Fossify

View file

@ -0,0 +1 @@
Aplicació de missatgeria SMS/MMS de codi obert i lliure d'anuncis

View file

@ -0,0 +1 @@
Fossify SMS Messenger

View file

@ -0,0 +1 @@
* Prvotní vydání

View file

@ -0,0 +1,2 @@
* Minor bug fixes and improvements
* Added some translations

View file

@ -0,0 +1,32 @@
Zprávy Fossify jsou vaším důvěryhodným společníkem pro zasílání zpráv. Jsou navrženy tak, aby různými způsoby vylepšovaly váš zážitek ze zasílání zpráv.
📱 ZŮSTAŇTE SNADNO VE SPOJENÍ:
S aplikací Zprávy Fossify můžete snadno posílat zprávy SMS a MMS a zůstat tak ve spojení se svými blízkými. Posílejte si skupinové zprávy založené na SMS/MMS a vyjadřujte se pomocí fotografií, emotikonů a rychlých pozdravů.
🚫 BLOKOVÁNÍ NEŽÁDOUCÍCH ZPRÁV:
Převezměte kontrolu nad zasíláním zpráv díky robustní funkci blokování, která snadno zabrání zasílání nechtěných zpráv, a to i od neznámých kontaktů. Zablokovaná čísla můžete také exportovat a importovat pro bezproblémové zálohování. Navíc si můžete přizpůsobit své prostředí tím, že zabráníte zprávám s určitými slovy nebo frázemi, aby se dostaly do vaší schránky.
🔒 BEZPROBLÉMOVÉ ZÁLOHOVÁNÍ SMS:
Rozlučte se s obavami ze ztráty důležitých zpráv. Zprávy Fossify nabízí pohodlnou funkci zálohování SMS umožňují export a import zpráv. Tato funkce zajišťuje, že můžete snadno změnit zařízení, aniž byste přišli o své cenné konverzace.
🚀 BLESKURYCHLÉ A LEHKÉ:
I přes své výkonné funkce se Zprávy Fossify mohou pochlubit pozoruhodně malou velikostí aplikace, díky které se rychle a snadno stahují a instalují. Zažijte rychlost a efektivitu a zároveň si užívejte klid, který přináší zálohování SMS.
🔐 VYLEPŠENÁ OCHRANA SOUKROMÍ:
Přizpůsobte si, co se zobrazuje na zamykací obrazovce, a zajistěte si tak větší soukromí. Zvolte si, zda chcete zobrazit pouze odesílatele, obsah zprávy nebo vůbec nic. Své zprávy máte pod kontrolou.
🔍 EFEKTIVNÍ VYHLEDÁVÁNÍ ZPRÁV:
Rozlučte se s nekonečným procházením konverzací. Zprávy Fossify zjednodušují vyhledávání zpráv pomocí funkce rychlého a efektivního vyhledávání. Najděte, co potřebujete, kdykoli a kdekoli.
🌈 MODERNÍ DESIGN A PŘÍVĚTIVÉ ROZHRANÍ:
Vychutnejte si čistý, moderní design s uživatelsky přívětivým rozhraním. Aplikace využívá Material Design a možnost tmavého motivu, což poskytuje vizuálně přitažlivé a pohodlné uživatelské prostředí.
🌐 TRANSPARENTNOST OTEVŘENÉHO ZDROJE:
Vaše soukromí je nejvyšší prioritou. Zprávy Fossify fungují bez nutnosti připojení k internetu, což zaručuje stabilitu a bezpečnost zpráv. Naše aplikace je zcela bez reklam a nevyžaduje zbytečná oprávnění. Navíc je plně open-source, což vám poskytuje klid, protože máte přístup ke zdrojovému kódu pro bezpečnostní audity a audity soukromí.
Přejděte na aplikaci Zprávy Fossify a vyzkoušejte si zasílání zpráv tak, jak má být soukromé, efektivní a uživatelsky přívětivé. Stáhněte si aplikaci nyní a připojte se k naší komunitě, která je odhodlána chránit vaše zprávy.
Prozkoumejte další aplikace Fossify: https://www.fossify.org.
Otevřený zdrojový kód: https://www.github.com/FossifyOrg
Přidejte se ke komunitě na Redditu: https://www.reddit.com/r/Fossify
Připojte se na Telegram: https://t.me/Fossify

View file

@ -0,0 +1 @@
Open-source a bezplatná aplikace pro zasílání SMS/MMS zpráv

View file

@ -0,0 +1 @@
Zprávy Fossify

View file

@ -0,0 +1 @@
* Første udgivelse

View file

@ -0,0 +1,2 @@
* Mindre fejlretninger og forbedrelser
* Tilføjede nogle oversættelser

View file

@ -0,0 +1,32 @@
Fossify Messenger er din pålidelige beskedtjeneste, designet til at forbedre din beskedoplevelse på forskellige måder.
📱 HOLD FORBINDELSEN UDEN BESVÆR:
Med Fossify Messenger kan du nemt sende SMS- og MMS-beskeder for at holde forbindelsen med dine kære. Nyd SMS/MMS-baserede gruppebeskeder, og udtryk dig med fotos, emojis og hurtige hilsner.
🚫 BLOKÉR UØNSKEDE BESKEDER:
Tag kontrol over din beskedoplevelse med en robust blokeringsfunktion, der nemt forhindrer uønskede beskeder, selv fra ukendte kontakter. Du kan også eksportere og importere blokerede numre til problemfri sikkerhedskopiering. Derudover kan du tilpasse din oplevelse ved at forhindre beskeder med specifikke ord eller sætninger i at nå din indbakke.
🔒 NEM SMS-SIKKERHEDSKOPIERING:
Sig farvel til bekymringer om at miste vigtige beskeder. Fossify Messenger tilbyder praktisk SMS-sikkerhedskopiering ved at give dig mulighed for at eksportere og importere dine beskeder. Denne funktion sikrer, at du nemt kan skifte enhed uden at miste dine værdifulde samtaler.
🚀 LYNHURTIG OG LET:
På trods af sine kraftfulde funktioner har Fossify Messenger en bemærkelsesværdig lille app-størrelse, hvilket gør den hurtig og nem at hente og installere. Oplev hastighed og effektivitet, mens du nyder trygheden, der følger med SMS-sikkerhedskopiering.
🔐 FORBEDRET PRIVATLIV:
Tilpas, hvad der vises på din låseskærm for ekstra privatliv. Vælg kun at vise afsenderen, beskedens indhold eller slet ingenting. Dine beskeder er i din kontrol.
🔍 EFFEKTIV BESKEDSØGNING:
Sig farvel til endeløs scrolling gennem samtaler. Fossify Messenger forenkler beskedhentning med en hurtig og effektiv søgefunktion. Find det, du har brug for, når du har brug for det.
🌈 MODERNE DESIGN OG BRUGERVENLIG GRÆNSEFLADE:
Nyd et rent, moderne design med en brugervenlig grænseflade. Appen har et materialedesign og et mørkt tema, der giver en visuelt tiltalende og behagelig brugeroplevelse.
🌐 OPEN SOURCE-TRANSPARENS:
Dit privatliv er en topprioritet. Fossify Messenger fungerer uden at kræve en internetforbindelse, hvilket garanterer meddelelsessikkerhed og stabilitet. Vores app er helt fri for reklamer og beder ikke om unødvendige tilladelser. Desuden er den helt open source, hvilket giver dig ro i sindet, da du har adgang til kildekoden til sikkerheds- og privatlivsrevisioner.
Skift til Fossify Messenger, og oplev beskeder, som de bør være — private, effektive og brugervenlige. Hent den nu, og bliv en del af vores fællesskab, der er engageret i at beskytte din beskedoplevelse.
Udforsk flere Fossify-apps: https://www.fossify.org
Open source-kode: https://www.github.com/FossifyOrg
Deltag i fællesskabet på Reddit: https://www.reddit.com/r/Fossify
Opret forbindelse på Telegram: https://t.me/Fossify

View file

@ -0,0 +1 @@
Open-source og reklame-fri SMS/MMS meddelelses-app

View file

@ -0,0 +1 @@
Fossify SMS Messenger

View file

@ -0,0 +1,2 @@
* Kleinere Fehlerbehebungen und Verbesserungen
* Einige Übersetzungen hinzugefügt

View file

@ -9,7 +9,7 @@ Mit Fossify Messenger kannst du mühelos SMS- und MMS-Nachrichten versenden, um
🔒 MÜHELOSE SMS-SICHERUNG:
Verabschiede dich von der Sorge, wichtige Nachrichten zu verlieren. Fossify Messenger bietet eine praktische SMS-Sicherungsfunktion, mit der du deine Nachrichten exportieren und importieren kannst. Diese Funktion stellt sicher, dass du problemlos das Gerät wechseln kannst, ohne deine wertvollen Unterhaltungen zu verlieren.
🚀 BLITZSCHNELL UND LEICHT:
🚀 BLITZSCHNELL UND SCHLANK:
Trotz seiner leistungsstarken Funktionen ist die App von Fossify Messenger bemerkenswert klein, so dass sie schnell und einfach heruntergeladen und installiert werden kann. Erlebe Schnelligkeit und Effizienz und genieße gleichzeitig die Sicherheit, die dir die SMS-Sicherung bietet.
🔐 VERBESSERTE PRIVATSPHÄRE:
@ -18,13 +18,13 @@ Passe an, was auf deinem Sperrbildschirm angezeigt wird, um deine Privatsphäre
🔍 EFFIZIENTE NACHRICHTENSUCHE:
Verabschiede dich vom endlosen Scrollen durch Unterhaltungen. Fossify Messenger vereinfacht das Auffinden von Nachrichten mit einer schnellen und effizienten Suchfunktion. Finde, was du brauchst, wann du es brauchst.
🌈 MODERNES DESIGN & BENUTZERFREUNDLICHE OBERFLÄCHE:
Genieße ein sauberes, modernes Design mit einer benutzerfreundlichen Oberfläche. Die App verfügt über ein Material Design und ein dunkles Farbschema, die ein optisch ansprechendes und komfortables Nutzererlebnis bietet.
🌈 MODERNES DESIGN & BEDIENFREUNDLICHE OBERFLÄCHE:
Genieße ein sauberes, modernes Design mit einer bedienfreundlichen Oberfläche. Die App verfügt über ein Material Design und ein dunkles Farbschema, die ein optisch ansprechendes und komfortables Nutzungserlebnis bieten.
🌐 OPEN-SOURCE-TRANSPARENZ:
Deine Privatsphäre hat höchste Priorität. Der Fossify Messenger funktioniert ohne Internetverbindung und garantiert so die Sicherheit und Stabilität deiner Nachrichten. Unsere App ist völlig werbefrei und fordert keine unnötigen Berechtigungen an. Außerdem ist sie vollständig quelloffen, was dich beruhigt, da du Zugang zum Quellcode hast, um die Sicherheit und den Datenschutz zu überprüfen.
Steig auf Fossify Messenger um und erlebe Messaging so, wie es sein sollte privat, effizient und benutzerfreundlich. Lade jetzt herunter und schließe dich unserer Community an, die sich für die Sicherheit deines Messaging-Erlebnisses einsetzt.
Steig auf Fossify Messenger um und erlebe Messaging so, wie es sein sollte privat, effizient und bedienfreundlich. Lade jetzt herunter und schließe dich unserer Community an, die sich für die Sicherheit deines Messaging-Erlebnisses einsetzt.
Entdecke weitere Apps von Fossify: https://www.fossify.org
Open-Source-Code: https://www.github.com/FossifyOrg

View file

@ -1 +1 @@
Open Source und werbefreie SMS/MMS-Nachrichten-App
Quelloffene und werbefreie SMS/MMS-Nachrichten-App

View file

@ -0,0 +1,2 @@
* Minor bug fixes and improvements
* Added some translations

View file

@ -0,0 +1,2 @@
* Mejoras y correcciones de errores menores
* Añadidas algunas traducciones

View file

@ -0,0 +1 @@
* Esmane versioon

View file

@ -0,0 +1,2 @@
* Väiksemad veaparandused ja kohendused
* Lisasime mõned tõlked

View file

@ -0,0 +1,32 @@
Fossify Sõnumid on sinu usaldusväärne sõnumikaaslane, mis on loodud selleks, et parandada sinu sõnumikogemust mitmel viisil.
📱 PÜSI HÕLPSASTI SUHTLUSES:
Fossify Sõnumitega saad hõlpsasti saata SMS- ja MMS-sõnumeid, et püsida ühenduses oma lähedastega. Kasuta SMS/MMS-põhiseid rühmasõnumeid ja väljenda end fotode, emotikonide ja kiirtervitustega.
🚫 BLOKEERI SOOVIMATUD SÕNUMID:
Haara oma sõnumite kasutamise üle kontroll tõhusa blokeerimisfunktsiooniga, mis takistab hõlpsasti soovimatuid sõnumeid, isegi tundmatutelt kontaktidelt. Samuti saad blokeeritud numbreid eksportida ja importida, et teha hõlpsasti varukoopiaid. Lisaks saad oma kogemust kohandada, takistades teatud sõnu või fraase sisaldavate sõnumite jõudmist oma postkasti.
🔒 VAEVATA SMS VARUNDAMINE:
Unusta aeg, mil kaotasid tähtsaid sõnumeid. Fossify Sõnumid pakub mugavat SMS-i varundamise funktsiooni, võimaldades sul oma sõnumeid eksportida ja importida. See funktsioon tagab, et saad hõlpsasti seadmeid vahetada, ilma et kaotaksid oma väärtuslikke vestlusi.
🚀 VÄLKKIIRE JA NAPI RESSURSIVAJADUSEGA:
Vaatamata oma võimsatele funktsioonidele on rakendus Fossify Sõnumid märkimisväärselt väikese suurusega, mistõttu on seda kiire ja lihtne alla laadida ja paigaldada. Koge kiirust ja tõhusust, nautides samal ajal meelerahu, mis kaasneb SMS-i varundamisega.
🔐 TÄIUSTATUD PRIVAATSUS:
Kohanda, mis sinu nutiseadme lukustusekraanil ilmub, et suurendada privaatsust. Vali, kas soovid kuvada ainult saatjat, sõnumi sisu või üldse mitte midagi. Sinu sõnumid on sinu kontrolli all.
🔍 TÕHUS SÕNUMIOTSING:
Ütle hüvasti lõputule vestluste sirvimisele. Fossify Sõnumid lihtsustab sõnumite leidmist kiire ja tõhusa otsingufunktsiooniga. Leia see, mida vajad, siis, kui seda vajad.
🌈 KAASAEGNE KUJUNDUS JA KASUTAJASÕBRALIK KASUTAJALIIDES:
Naudi puhast, kaasaegset disaini ja kasutajasõbralikku kasutajaliidest. Rakendus lähtub „Material Design“ kujundusloogikast ja olemas on tumedate teemade valik, mis üheskoos pakuvad visuaalselt atraktiivset ja mugavat kasutajakogemust.
🌐 AVATUD LÄHTEKOODIL PÕHINEV LÄBIPAISTVUS:
Sinu privaatsus on esmatähtis. Fossify Sõnumid töötab ilma internetiühendust nõudmata, tagades sõnumite turvalisuse ja stabiilsuse. Meie rakendus on täiesti reklaamivaba ja ei küsi mittevajalikke lubasid. Lisaks on see täielikult avatud lähtekoodiga, mis tagab sulle meelerahu, kuna sul on soovi korral juurdepääs lähtekoodile turvalisuse ja privaatsuse kontrollimiseks.
Kasuta rakendust Fossify Sõnumid ja saada sõnumeid nii, nagu see peaks olema - privaatselt, tõhusalt ja kasutajasõbralikul viisil. Laadi rakendus alla ja liitu meie kogukonnaga, mis on pühendunud sinu sõnumikogemuse kaitsmisele.
Tutvu Fossify rakendustega: https://www.fossify.org
Avatud lähtekood: https://www.github.com/FossifyOrg
Liitu kogukonnaga Reddit'is: https://www.reddit.com/r/Fossify
Suhtle Telegram'is: https://t.me/Fossify

View file

@ -0,0 +1 @@
Avatud lähtekoodiga ja reklaamivaba SMS/MMS sõnumirakendus

View file

@ -0,0 +1 @@
Fossify SMS Sõnumid

View file

@ -0,0 +1 @@
* Hasierako bertsioa

View file

@ -0,0 +1 @@
* Ensimmäinen julkaisu

View file

@ -0,0 +1,2 @@
* Pieniä korjauksia ja parannuksia.
* Lisätty käännöksiä

View file

@ -0,0 +1 @@
Mainosvapaa avoimen lähdekoodin SMS/MMS viestien lähettämisen sovellus

View file

@ -0,0 +1 @@
Fossify SMS Messenger

View file

@ -0,0 +1 @@
* प्रारंभिक रिलीज

View file

@ -0,0 +1,2 @@
* छोटे बग फिक्स और सुधार
* कुछ अनुवाद जोड़े गए

View file

@ -0,0 +1,32 @@
Fossify Messenger आपका विश्वसनीय मैसेजिंग साथी है, जिसे विभिन्न तरीकों से आपके मैसेजिंग अनुभव को बढ़ाने के लिए डिज़ाइन किया गया है।
📱 आसानी से जुड़े रहें:
Fossify Messenger के साथ, आप अपने प्रियजनों से जुड़े रहने के लिए आसानी से SMS और MMS संदेश भेज सकते हैं। SMS/MMS आधारित समूह संदेश का आनंद लें और फ़ोटो, इमोजी और त्वरित शुभकामनाओं के साथ स्वयं को अभिव्यक्त करें।
🚫अवांछित संदेशों को ब्लॉक करें:
एक मजबूत ब्लॉकिंग सुविधा के साथ अपने मैसेजिंग अनुभव पर नियंत्रण रखें, यहां तक कि अज्ञात संपर्कों से भी अवांछित संदेशों को आसानी से रोका जा सकता है। आप परेशानी मुक्त बैकअप के लिए ब्लॉक किए गए नंबरों को निर्यात और आयात भी कर सकते हैं। इसके अतिरिक्त, विशिष्ट शब्दों या वाक्यांशों वाले संदेशों को आपके इनबॉक्स तक पहुंचने से रोककर अपने अनुभव को अनुकूलित करें।
🔒 सहज एसएमएस बैकअप:
महत्वपूर्ण संदेश खोने की चिंता को अलविदा कहें। Fossify Messenger आपको अपने संदेशों को निर्यात और आयात करने की अनुमति देकर सुविधाजनक SMS बैकअप कार्यक्षमता प्रदान करता है। यह सुविधा सुनिश्चित करती है कि आप अपनी मूल्यवान बातचीत खोए बिना आसानी से डिवाइस स्विच कर सकते हैं।
🚀 बिजली-तेज़ और हल्का:
अपनी शक्तिशाली विशेषताओं के बावजूद, Fossify Messenger का ऐप आकार उल्लेखनीय रूप से छोटा है, जिससे इसे डाउनलोड और इंस्टॉल करना त्वरित और आसान हो जाता है। SMS बैकअप के साथ मिलने वाली मानसिक शांति का आनंद लेते हुए गति और दक्षता का अनुभव करें।
🔐 उन्नत गोपनीयता:
अतिरिक्त गोपनीयता के लिए अपनी लॉक स्क्रीन पर जो दिखाई देता है उसे अनुकूलित करें। केवल प्रेषक, संदेश सामग्री या कुछ भी प्रदर्शित करना चुनें। आपके संदेश आपके नियंत्रण में हैं.
🔍 कुशल संदेश खोज:
बातचीत के माध्यम से अंतहीन स्क्रॉलिंग को अलविदा कहें। Fossify Messenger एक त्वरित और कुशल खोज सुविधा के साथ संदेश पुनर्प्राप्ति को सरल बनाता है। आपको जो चाहिए, जब आपको उसकी आवश्यकता हो, उसे ढूंढें।
🌈 आधुनिक डिज़ाइन और उपयोगकर्ता के अनुकूल इंटरफ़ेस:
उपयोगकर्ता के अनुकूल इंटरफेस के साथ स्वच्छ, आधुनिक डिजाइन का आनंद लें। ऐप में एक मटेरियल डिज़ाइन और एक डार्क थीम विकल्प है, जो देखने में आकर्षक और आरामदायक उपयोगकर्ता अनुभव प्रदान करता है।
🌐 खुला स्रोत पारदर्शिता:
आपकी गोपनीयता सर्वोच्च प्राथमिकता है. Fossify Messenger इंटरनेट कनेक्शन की आवश्यकता के बिना, संदेश सुरक्षा और स्थिरता की गारंटी के साथ संचालित होता है। हमारा ऐप पूरी तरह से विज्ञापनों से मुक्त है और अनावश्यक अनुमतियों का अनुरोध नहीं करता है। इसके अलावा, यह पूरी तरह से खुला-स्रोत है, जो आपको मानसिक शांति प्रदान करता है, क्योंकि आपके पास सुरक्षा और गोपनीयता ऑडिट के लिए स्रोत कोड तक पहुंच है।
Fossify Messenger पर स्विच करें और मैसेजिंग का अनुभव उसी तरह करें जैसे वह होना चाहिए - निजी, कुशल और उपयोगकर्ता के अनुकूल। अभी डाउनलोड करें और अपने संदेश अनुभव की सुरक्षा के लिए प्रतिबद्ध हमारे समुदाय में शामिल हों।
अधिक Fossify ऐप्स खोजें: https://www.fossify.org
ओपन-सोर्स कोड: https://www.github.com/FossifyOrg
Reddit पर समुदाय में शामिल हों: https://www.reddit.com/r/Fossify
Telegram पर जुड़ें: https://t.me/Fossify

View file

@ -0,0 +1 @@
ओपन-सोर्स और विज्ञापन-मुक्त SMS/MMS मैसेजिंग ऐप

View file

@ -0,0 +1 @@
Fossify SMS Messenger

View file

@ -0,0 +1 @@
* Kezdeti kiadás

View file

@ -0,0 +1 @@
* Rilis awal

View file

@ -0,0 +1 @@
* Versione iniziale

View file

@ -0,0 +1 @@
* 初公開

View file

@ -0,0 +1 @@
オープンソースで広告なしのSMS/MMSメッセージングアプリ

View file

@ -0,0 +1 @@
Fossify SMSメッセンジャー

View file

@ -0,0 +1 @@
오픈 소스이며 광고로부터 자유로운 SMS/MMS 메시징 앱

View file

@ -0,0 +1 @@
Fossify SMS 메신저

View file

@ -0,0 +1 @@
* Eerste versie

View file

@ -0,0 +1 @@
Opensource en advertentievrij SMS/MMS-berichtenbeheer

View file

@ -0,0 +1 @@
Fossify SMS-Berichten

View file

@ -1 +1 @@
Otwartoźródłowa i wolna od reklam aplikacja do przesyłania wiadomości SMS/MMS.
Otwartoźródłowa i wolna od reklam aplikacja do przesyłania wiadomości SMS/MMS

Some files were not shown because too many files have changed in this diff Show more