mirror of
https://github.com/d4rken-org/capod.git
synced 2026-09-16 11:16:12 -04:00
Compare commits
19
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d6ec2b6bb | ||
|
|
9a85b23d91 | ||
|
|
217d9be177 | ||
|
|
53447f3fb9 | ||
|
|
db759bac7c | ||
|
|
6837db5b84 | ||
|
|
83b24cced2 | ||
|
|
d913e72c5c | ||
|
|
5c16c08dee | ||
|
|
20e22c0910 | ||
|
|
fa3e56b0f3 | ||
|
|
f25718ab2c | ||
|
|
6e9b275936 | ||
|
|
c6c7cd7858 | ||
|
|
4d7027a9b8 | ||
|
|
992cb5e695 | ||
|
|
039d20d7aa | ||
|
|
52433460be | ||
|
|
95bb225e64 |
+12
-11
@@ -1,16 +1,17 @@
|
|||||||
{
|
{
|
||||||
"permissions": {
|
"permissions": {
|
||||||
"allow": [
|
"allow": [
|
||||||
"mcp__ide__getDiagnostics",
|
"mcp__ide__getDiagnostics",
|
||||||
"WebSearch"
|
"WebSearch"
|
||||||
],
|
],
|
||||||
"deny": []
|
"deny": []
|
||||||
},
|
},
|
||||||
"enabledPlugins": {
|
"enabledPlugins": {
|
||||||
"android-translation@claude-code-cafe": true,
|
"android-translation@claude-code-cafe": true,
|
||||||
"debugbadger@claude-code-cafe": true,
|
"debugbadger@claude-code-cafe": true,
|
||||||
"jvm-tools@claude-code-cafe": true,
|
"jvm-tools@claude-code-cafe": true,
|
||||||
"frontend-design@claude-plugins-official": true,
|
"frontend-design@claude-plugins-official": true,
|
||||||
"kotlin-lsp@claude-plugins-official": true
|
"kotlin-lsp@claude-plugins-official": true,
|
||||||
|
"support-investigator@claude-code-cafe": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ runs:
|
|||||||
using: "composite"
|
using: "composite"
|
||||||
steps:
|
steps:
|
||||||
- name: Set up JDK 17
|
- name: Set up JDK 17
|
||||||
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 #v4.7.0
|
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 #v5.2.0
|
||||||
with:
|
with:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
distribution: 'temurin'
|
distribution: 'temurin'
|
||||||
@@ -14,7 +14,7 @@ runs:
|
|||||||
run: chmod +x gradlew
|
run: chmod +x gradlew
|
||||||
|
|
||||||
- name: Cache Gradle Wrapper
|
- name: Cache Gradle Wrapper
|
||||||
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 #v4.2.3
|
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 #v5.0.3
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
~/.gradle/wrapper
|
~/.gradle/wrapper
|
||||||
@@ -24,7 +24,7 @@ runs:
|
|||||||
${{ runner.os }}-gradle-wrapper-
|
${{ runner.os }}-gradle-wrapper-
|
||||||
|
|
||||||
- name: Cache Gradle Dependencies
|
- name: Cache Gradle Dependencies
|
||||||
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 #v4.2.3
|
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 #v5.0.3
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
~/.gradle/caches
|
~/.gradle/caches
|
||||||
@@ -33,7 +33,7 @@ runs:
|
|||||||
${{ runner.os }}-gradle-caches-
|
${{ runner.os }}-gradle-caches-
|
||||||
|
|
||||||
- name: Cache Android Global Build-Cache
|
- name: Cache Android Global Build-Cache
|
||||||
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 #v4.2.3
|
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 #v5.0.3
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
~/.android/build-cache
|
~/.android/build-cache
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
|
||||||
- name: Setup project and build environment
|
- name: Setup project and build environment
|
||||||
uses: ./.github/actions/common-setup
|
uses: ./.github/actions/common-setup
|
||||||
|
|
||||||
@@ -36,7 +36,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
|
||||||
- name: Setup project and build environment
|
- name: Setup project and build environment
|
||||||
uses: ./.github/actions/common-setup
|
uses: ./.github/actions/common-setup
|
||||||
|
|
||||||
@@ -53,9 +53,18 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
|
||||||
- name: Setup project and build environment
|
- name: Setup project and build environment
|
||||||
uses: ./.github/actions/common-setup
|
uses: ./.github/actions/common-setup
|
||||||
|
|
||||||
- name: Test modules
|
- name: Test modules
|
||||||
run: ./gradlew ${{ matrix.flavor }}${{ matrix.variant }}UnitTest
|
run: ./gradlew ${{ matrix.flavor }}${{ matrix.variant }}UnitTest
|
||||||
|
|
||||||
|
check-fastlane-metadata:
|
||||||
|
name: Fastlane metadata
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout source code
|
||||||
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
|
||||||
|
- name: Validate metadata lengths
|
||||||
|
run: bash fastlane/check_metadata_length.sh
|
||||||
@@ -13,5 +13,5 @@ jobs:
|
|||||||
name: "Validation"
|
name: "Validation"
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
|
||||||
- uses: gradle/actions/wrapper-validation@06832c7b30a0129d7fb559bcc6e43d26f6374244 #v4.3.1
|
- uses: gradle/actions/wrapper-validation@0723195856401067f7a2779048b490ace7a47d7c #v5.0.2
|
||||||
|
|||||||
@@ -4,6 +4,12 @@ on:
|
|||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
- 'v*'
|
- 'v*'
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
dry_run:
|
||||||
|
description: 'Build only, skip release/upload'
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release-github:
|
release-github:
|
||||||
@@ -24,23 +30,15 @@ jobs:
|
|||||||
echo "STORE_PATH=$(echo $TMP_KEYSTORE_FILE_PATH)" >> $GITHUB_ENV
|
echo "STORE_PATH=$(echo $TMP_KEYSTORE_FILE_PATH)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup project and build environment
|
- name: Setup project and build environment
|
||||||
uses: ./.github/actions/common-setup
|
uses: ./.github/actions/common-setup
|
||||||
|
|
||||||
- name: Get the version
|
|
||||||
id: tagger
|
|
||||||
uses: jimschubert/query-tag-action@0b288a5fff630fea2e96d61b99047ed823ca19dc #v2.2
|
|
||||||
with:
|
|
||||||
skip-unshallow: 'true'
|
|
||||||
abbrev: false
|
|
||||||
commit-ish: HEAD
|
|
||||||
|
|
||||||
- name: Assemble beta APK
|
- name: Assemble beta APK
|
||||||
if: contains(steps.tagger.outputs.tag, '-beta')
|
if: contains(github.ref_name, '-beta')
|
||||||
run: ./gradlew assembleFossBeta
|
run: ./gradlew assembleFossBeta
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ github.ref }}
|
VERSION: ${{ github.ref }}
|
||||||
@@ -49,7 +47,7 @@ jobs:
|
|||||||
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||||
|
|
||||||
- name: Assemble production APK
|
- name: Assemble production APK
|
||||||
if: "!contains(steps.tagger.outputs.tag, '-beta')"
|
if: "!contains(github.ref_name, '-beta')"
|
||||||
run: ./gradlew assembleFossRelease
|
run: ./gradlew assembleFossRelease
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ github.ref }}
|
VERSION: ${{ github.ref }}
|
||||||
@@ -58,24 +56,24 @@ jobs:
|
|||||||
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||||
|
|
||||||
- name: Create pre-release
|
- name: Create pre-release
|
||||||
if: contains(steps.tagger.outputs.tag, '-beta')
|
if: contains(github.ref_name, '-beta') && !(github.event_name == 'workflow_dispatch' && inputs.dry_run)
|
||||||
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda #v2.2.1
|
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b #v2.5.0
|
||||||
with:
|
with:
|
||||||
prerelease: true
|
prerelease: true
|
||||||
tag_name: ${{ steps.tagger.outputs.tag }}
|
tag_name: ${{ github.ref_name }}
|
||||||
name: ${{ steps.tagger.outputs.tag }}
|
name: ${{ github.ref_name }}
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
files: app/build/outputs/apk/foss/beta/eu.darken.capod-*.apk
|
files: app/build/outputs/apk/foss/beta/eu.darken.capod-*.apk
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Create release
|
- name: Create release
|
||||||
if: "!contains(steps.tagger.outputs.tag, '-beta')"
|
if: "!contains(github.ref_name, '-beta') && !(github.event_name == 'workflow_dispatch' && inputs.dry_run)"
|
||||||
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda #v2.2.1
|
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b #v2.5.0
|
||||||
with:
|
with:
|
||||||
prerelease: false
|
prerelease: false
|
||||||
tag_name: ${{ steps.tagger.outputs.tag }}
|
tag_name: ${{ github.ref_name }}
|
||||||
name: ${{ steps.tagger.outputs.tag }}
|
name: ${{ github.ref_name }}
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
files: app/build/outputs/apk/foss/release/eu.darken.capod-*.apk
|
files: app/build/outputs/apk/foss/release/eu.darken.capod-*.apk
|
||||||
env:
|
env:
|
||||||
@@ -107,29 +105,21 @@ jobs:
|
|||||||
echo "SUPPLY_JSON_KEY=$(echo $TMP_SERVICEKEY_FILE_PATH)" >> $GITHUB_ENV
|
echo "SUPPLY_JSON_KEY=$(echo $TMP_SERVICEKEY_FILE_PATH)" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout source code
|
- name: Checkout source code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup project and build environment
|
- name: Setup project and build environment
|
||||||
uses: ./.github/actions/common-setup
|
uses: ./.github/actions/common-setup
|
||||||
|
|
||||||
- name: Get the version
|
|
||||||
id: tagger
|
|
||||||
uses: jimschubert/query-tag-action@0b288a5fff630fea2e96d61b99047ed823ca19dc #v2.2
|
|
||||||
with:
|
|
||||||
skip-unshallow: 'true'
|
|
||||||
abbrev: false
|
|
||||||
commit-ish: HEAD
|
|
||||||
|
|
||||||
- name: Set up ruby env
|
- name: Set up ruby env
|
||||||
uses: ruby/setup-ruby@354a1ad156761f5ee2b7b13fa8e09943a5e8d252 #v1.229.0
|
uses: ruby/setup-ruby@4eb9f110bac952a8b68ecf92e3b5c7a987594ba6 #v1.292.0
|
||||||
with:
|
with:
|
||||||
ruby-version: 3.3.6
|
ruby-version: 3.3.6
|
||||||
bundler-cache: true
|
bundler-cache: true
|
||||||
|
|
||||||
- name: Assemble beta and upload to Google Play
|
- name: Assemble beta and upload to Google Play
|
||||||
if: contains(steps.tagger.outputs.tag, '-beta')
|
if: contains(github.ref_name, '-beta') && !(github.event_name == 'workflow_dispatch' && inputs.dry_run)
|
||||||
run: bundle exec fastlane beta
|
run: bundle exec fastlane beta
|
||||||
env:
|
env:
|
||||||
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
|
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
|
||||||
@@ -137,7 +127,7 @@ jobs:
|
|||||||
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||||
|
|
||||||
- name: Assemble production and upload to Google Play
|
- name: Assemble production and upload to Google Play
|
||||||
if: "!contains(steps.tagger.outputs.tag, '-beta')"
|
if: "!contains(github.ref_name, '-beta') && !(github.event_name == 'workflow_dispatch' && inputs.dry_run)"
|
||||||
run: bundle exec fastlane production
|
run: bundle exec fastlane production
|
||||||
env:
|
env:
|
||||||
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
|
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
|
||||||
|
|||||||
+14
-23
@@ -9,6 +9,9 @@ import com.android.billingclient.api.ProductDetails
|
|||||||
import com.android.billingclient.api.Purchase
|
import com.android.billingclient.api.Purchase
|
||||||
import com.android.billingclient.api.QueryProductDetailsParams
|
import com.android.billingclient.api.QueryProductDetailsParams
|
||||||
import com.android.billingclient.api.QueryPurchasesParams
|
import com.android.billingclient.api.QueryPurchasesParams
|
||||||
|
import com.android.billingclient.api.acknowledgePurchase
|
||||||
|
import com.android.billingclient.api.queryProductDetails
|
||||||
|
import com.android.billingclient.api.queryPurchasesAsync
|
||||||
import eu.darken.capod.common.debug.logging.Logging.Priority.INFO
|
import eu.darken.capod.common.debug.logging.Logging.Priority.INFO
|
||||||
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
|
import eu.darken.capod.common.debug.logging.Logging.Priority.WARN
|
||||||
import eu.darken.capod.common.debug.logging.log
|
import eu.darken.capod.common.debug.logging.log
|
||||||
@@ -21,8 +24,6 @@ import kotlinx.coroutines.coroutineScope
|
|||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.combine
|
import kotlinx.coroutines.flow.combine
|
||||||
import kotlin.coroutines.resume
|
|
||||||
import kotlin.coroutines.suspendCoroutine
|
|
||||||
|
|
||||||
data class BillingClientConnection(
|
data class BillingClientConnection(
|
||||||
private val client: BillingClient,
|
private val client: BillingClient,
|
||||||
@@ -67,22 +68,16 @@ data class BillingClientConnection(
|
|||||||
.setProductType(productType)
|
.setProductType(productType)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
val (result: BillingResult, purchases) = suspendCoroutine<Pair<BillingResult, Collection<Purchase>?>> { continuation ->
|
val queryResult = client.queryPurchasesAsync(params)
|
||||||
client.queryPurchasesAsync(params) { result, purchases ->
|
|
||||||
continuation.resume(result to purchases)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
log(TAG) { "queryPurchases($productType): code=${result.responseCode}, message=${result.debugMessage}, purchases=$purchases" }
|
log(TAG) { "queryPurchases($productType): code=${queryResult.billingResult.responseCode}, message=${queryResult.billingResult.debugMessage}, purchases=${queryResult.purchasesList}" }
|
||||||
|
|
||||||
if (!result.isSuccess) {
|
if (!queryResult.billingResult.isSuccess) {
|
||||||
log(TAG, WARN) { "queryPurchases($productType) failed" }
|
log(TAG, WARN) { "queryPurchases($productType) failed" }
|
||||||
throw BillingResultException(result)
|
throw BillingResultException(queryResult.billingResult)
|
||||||
} else {
|
|
||||||
requireNotNull(purchases)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return purchases
|
return queryResult.purchasesList
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun acknowledgePurchase(purchase: Purchase) {
|
suspend fun acknowledgePurchase(purchase: Purchase) {
|
||||||
@@ -90,9 +85,7 @@ data class BillingClientConnection(
|
|||||||
setPurchaseToken(purchase.purchaseToken)
|
setPurchaseToken(purchase.purchaseToken)
|
||||||
}.build()
|
}.build()
|
||||||
|
|
||||||
val result = suspendCoroutine<BillingResult> { continuation ->
|
val result = client.acknowledgePurchase(ack)
|
||||||
client.acknowledgePurchase(ack) { continuation.resume(it) }
|
|
||||||
}
|
|
||||||
|
|
||||||
log(TAG, INFO) { "acknowledgePurchase($purchase): code=${result.responseCode} (${result.debugMessage})" }
|
log(TAG, INFO) { "acknowledgePurchase($purchase): code=${result.responseCode} (${result.debugMessage})" }
|
||||||
|
|
||||||
@@ -118,17 +111,15 @@ data class BillingClientConnection(
|
|||||||
|
|
||||||
val params = QueryProductDetailsParams.newBuilder().setProductList(products).build()
|
val params = QueryProductDetailsParams.newBuilder().setProductList(products).build()
|
||||||
|
|
||||||
val (result, details) = suspendCoroutine<Pair<BillingResult, List<ProductDetails>>> { continuation ->
|
val queryResult = client.queryProductDetails(params)
|
||||||
client.queryProductDetailsAsync(params) { billingResult, queryResult ->
|
|
||||||
continuation.resume(billingResult to queryResult.productDetailsList.orEmpty())
|
val details = queryResult.productDetailsList.orEmpty()
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
log(TAG) {
|
log(TAG) {
|
||||||
"querySkus(type=$type, skus=${typeSkus.map { it.id }}): code=${result.responseCode}, debug=${result.debugMessage}, details=$details"
|
"querySkus(type=$type, skus=${typeSkus.map { it.id }}): code=${queryResult.billingResult.responseCode}, debug=${queryResult.billingResult.debugMessage}, details=$details"
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!result.isSuccess) throw BillingResultException(result)
|
if (!queryResult.billingResult.isSuccess) throw BillingResultException(queryResult.billingResult)
|
||||||
|
|
||||||
for (detail in details) {
|
for (detail in details) {
|
||||||
val matchingSku = typeSkus.firstOrNull { it.id == detail.productId }
|
val matchingSku = typeSkus.firstOrNull { it.id == detail.productId }
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import eu.darken.capod.common.upgrade.UpgradeRepo
|
|||||||
import eu.darken.capod.main.ui.widget.WidgetManager
|
import eu.darken.capod.main.ui.widget.WidgetManager
|
||||||
import eu.darken.capod.monitor.core.PodMonitor
|
import eu.darken.capod.monitor.core.PodMonitor
|
||||||
import eu.darken.capod.monitor.core.devicesWithProfiles
|
import eu.darken.capod.monitor.core.devicesWithProfiles
|
||||||
import eu.darken.capod.monitor.core.worker.MonitorControl
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
@@ -27,7 +27,6 @@ import javax.inject.Inject
|
|||||||
open class App : Application() {
|
open class App : Application() {
|
||||||
|
|
||||||
@Inject lateinit var autoReporting: AutomaticBugReporter
|
@Inject lateinit var autoReporting: AutomaticBugReporter
|
||||||
@Inject lateinit var monitorControl: MonitorControl
|
|
||||||
@Inject lateinit var podMonitor: PodMonitor
|
@Inject lateinit var podMonitor: PodMonitor
|
||||||
@Inject lateinit var widgetManager: WidgetManager
|
@Inject lateinit var widgetManager: WidgetManager
|
||||||
@Inject lateinit var upgradeRepo: UpgradeRepo
|
@Inject lateinit var upgradeRepo: UpgradeRepo
|
||||||
@@ -41,8 +40,6 @@ open class App : Application() {
|
|||||||
|
|
||||||
log(TAG) { "onCreate() done! ${Exception().asLog()}" }
|
log(TAG) { "onCreate() done! ${Exception().asLog()}" }
|
||||||
|
|
||||||
monitorControl.startMonitor(forceStart = true)
|
|
||||||
|
|
||||||
appScope.launch { widgetManager.refreshWidgets() }
|
appScope.launch { widgetManager.refreshWidgets() }
|
||||||
|
|
||||||
podMonitor.devicesWithProfiles()
|
podMonitor.devicesWithProfiles()
|
||||||
|
|||||||
@@ -304,6 +304,9 @@ class BluetoothManager2 @Inject constructor(
|
|||||||
emit(wrappedDevices)
|
emit(wrappedDevices)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var _isNudgeAvailable: Boolean = true
|
||||||
|
val isNudgeAvailable: Boolean get() = _isNudgeAvailable
|
||||||
|
|
||||||
suspend fun nudgeConnection(device: BluetoothDevice2): Boolean = getBluetoothProfile().map { bluetoothProfile ->
|
suspend fun nudgeConnection(device: BluetoothDevice2): Boolean = getBluetoothProfile().map { bluetoothProfile ->
|
||||||
try {
|
try {
|
||||||
log(TAG) { "Nudging Android connection to $device" }
|
log(TAG) { "Nudging Android connection to $device" }
|
||||||
@@ -317,6 +320,12 @@ class BluetoothManager2 @Inject constructor(
|
|||||||
log(TAG) { "Nudged connection to $device" }
|
log(TAG) { "Nudged connection to $device" }
|
||||||
true
|
true
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
val isSecurityException = e is SecurityException ||
|
||||||
|
(e is java.lang.reflect.InvocationTargetException && e.cause is SecurityException)
|
||||||
|
if (isSecurityException) {
|
||||||
|
log(TAG, ERROR) { "nudgeConnection is permanently unavailable: missing MODIFY_PHONE_STATE permission" }
|
||||||
|
_isNudgeAvailable = false
|
||||||
|
}
|
||||||
Bugs.report(tag = TAG, "BluetoothHeadset.connect(device) is unavailable", exception = e)
|
Bugs.report(tag = TAG, "BluetoothHeadset.connect(device) is unavailable", exception = e)
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ import eu.darken.capod.pods.core.PodDevice
|
|||||||
import eu.darken.capod.pods.core.SinglePodDevice
|
import eu.darken.capod.pods.core.SinglePodDevice
|
||||||
import eu.darken.capod.pods.core.unknown.UnknownDevice
|
import eu.darken.capod.pods.core.unknown.UnknownDevice
|
||||||
import eu.darken.capod.profiles.core.AppleDeviceProfile
|
import eu.darken.capod.profiles.core.AppleDeviceProfile
|
||||||
|
import eu.darken.capod.pods.core.apple.ApplePods
|
||||||
|
import eu.darken.capod.pods.core.apple.protocol.ProximityPayload
|
||||||
import eu.darken.capod.profiles.core.DeviceProfile
|
import eu.darken.capod.profiles.core.DeviceProfile
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
|
|
||||||
@@ -114,11 +116,13 @@ object MockPodDataProvider {
|
|||||||
_isBeingWorn = true,
|
_isBeingWorn = true,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun airPodsMaxCharging(): SinglePodDevice = MockSinglePodDevice(
|
fun airPodsMaxCharging(): SinglePodDevice = MockSingleApplePodDevice(
|
||||||
_model = PodDevice.Model.AIRPODS_MAX,
|
_model = PodDevice.Model.AIRPODS_MAX,
|
||||||
_label = "AirPods Max",
|
_label = "AirPods Max",
|
||||||
batteryHeadsetPercent = 0.40f,
|
batteryHeadsetPercent = 0.40f,
|
||||||
_isHeadsetBeingCharged = true,
|
_isHeadsetBeingCharged = true,
|
||||||
|
_isIRKMatch = true,
|
||||||
|
_hasPrivatePayload = true,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun beatsSolo3(): SinglePodDevice = MockSinglePodDevice(
|
fun beatsSolo3(): SinglePodDevice = MockSinglePodDevice(
|
||||||
@@ -273,3 +277,41 @@ private class MockSinglePodDevice(
|
|||||||
// HasEarDetection
|
// HasEarDetection
|
||||||
override val isBeingWorn: Boolean = _isBeingWorn
|
override val isBeingWorn: Boolean = _isBeingWorn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("PropertyName")
|
||||||
|
private class MockSingleApplePodDevice(
|
||||||
|
private val _model: PodDevice.Model,
|
||||||
|
private val _label: String,
|
||||||
|
override val batteryHeadsetPercent: Float?,
|
||||||
|
private val _isHeadsetBeingCharged: Boolean = false,
|
||||||
|
private val _isBeingWorn: Boolean = false,
|
||||||
|
private val _isIRKMatch: Boolean = false,
|
||||||
|
private val _hasPrivatePayload: Boolean = false,
|
||||||
|
rssi: Int = -50,
|
||||||
|
) : SinglePodDevice, ApplePods, HasChargeDetection, HasEarDetection {
|
||||||
|
override val identifier: PodDevice.Id = PodDevice.Id()
|
||||||
|
override val model: PodDevice.Model = _model
|
||||||
|
override val seenLastAt: Instant = MOCK_NOW
|
||||||
|
override val seenFirstAt: Instant = MOCK_NOW
|
||||||
|
override val seenCounter: Int = 5
|
||||||
|
override val scanResult: BleScanResult = MockPodDataProvider.dummyScanResult(rssi)
|
||||||
|
override val reliability: Float = 1.0f
|
||||||
|
override val signalQuality: Float = 0.80f
|
||||||
|
override val iconRes: Int = _model.iconRes
|
||||||
|
override val meta: ApplePods.AppleMeta = ApplePods.AppleMeta(
|
||||||
|
isIRKMatch = _isIRKMatch,
|
||||||
|
profile = AppleDeviceProfile(label = _label, model = _model),
|
||||||
|
)
|
||||||
|
override val payload: ProximityPayload = ProximityPayload(
|
||||||
|
public = ProximityPayload.Public(UByteArray(9)),
|
||||||
|
private = if (_hasPrivatePayload) ProximityPayload.Private(UByteArray(8)) else null,
|
||||||
|
)
|
||||||
|
|
||||||
|
override fun getLabel(context: Context): String = _model.label
|
||||||
|
|
||||||
|
// HasChargeDetection
|
||||||
|
override val isHeadsetBeingCharged: Boolean = _isHeadsetBeingCharged
|
||||||
|
|
||||||
|
// HasEarDetection
|
||||||
|
override val isBeingWorn: Boolean = _isBeingWorn
|
||||||
|
}
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ import eu.darken.capod.pods.core.apple.DualApplePods
|
|||||||
import eu.darken.capod.pods.core.apple.DualApplePods.LidState
|
import eu.darken.capod.pods.core.apple.DualApplePods.LidState
|
||||||
import eu.darken.capod.pods.core.firstSeenFormatted
|
import eu.darken.capod.pods.core.firstSeenFormatted
|
||||||
import eu.darken.capod.pods.core.formatBatteryPercent
|
import eu.darken.capod.pods.core.formatBatteryPercent
|
||||||
|
import eu.darken.capod.pods.core.toBatteryFloat
|
||||||
|
import eu.darken.capod.pods.core.toBatteryOrNull
|
||||||
import eu.darken.capod.pods.core.getSignalQuality
|
import eu.darken.capod.pods.core.getSignalQuality
|
||||||
import eu.darken.capod.pods.core.lastSeenFormatted
|
import eu.darken.capod.pods.core.lastSeenFormatted
|
||||||
import java.time.Duration
|
import java.time.Duration
|
||||||
@@ -164,7 +166,7 @@ fun DualPodsCard(
|
|||||||
) {
|
) {
|
||||||
PodGauge(
|
PodGauge(
|
||||||
iconRes = device.leftPodIcon,
|
iconRes = device.leftPodIcon,
|
||||||
batteryPercent = device.batteryLeftPodPercent,
|
batteryPercent = device.batteryLeftPodPercent.toBatteryFloat(),
|
||||||
isCharging = (device as? HasChargeDetectionDual)?.isLeftPodCharging ?: false,
|
isCharging = (device as? HasChargeDetectionDual)?.isLeftPodCharging ?: false,
|
||||||
isInEar = (device as? HasEarDetectionDual)?.isLeftPodInEar ?: false,
|
isInEar = (device as? HasEarDetectionDual)?.isLeftPodInEar ?: false,
|
||||||
showEarDetection = device is HasEarDetectionDual,
|
showEarDetection = device is HasEarDetectionDual,
|
||||||
@@ -175,7 +177,7 @@ fun DualPodsCard(
|
|||||||
|
|
||||||
PodGauge(
|
PodGauge(
|
||||||
iconRes = device.rightPodIcon,
|
iconRes = device.rightPodIcon,
|
||||||
batteryPercent = device.batteryRightPodPercent,
|
batteryPercent = device.batteryRightPodPercent.toBatteryFloat(),
|
||||||
isCharging = (device as? HasChargeDetectionDual)?.isRightPodCharging ?: false,
|
isCharging = (device as? HasChargeDetectionDual)?.isRightPodCharging ?: false,
|
||||||
isInEar = (device as? HasEarDetectionDual)?.isRightPodInEar ?: false,
|
isInEar = (device as? HasEarDetectionDual)?.isRightPodInEar ?: false,
|
||||||
showEarDetection = device is HasEarDetectionDual,
|
showEarDetection = device is HasEarDetectionDual,
|
||||||
@@ -218,7 +220,7 @@ fun DualPodsCard(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun PodGauge(
|
private fun PodGauge(
|
||||||
iconRes: Int,
|
iconRes: Int,
|
||||||
batteryPercent: Float?,
|
batteryPercent: Float,
|
||||||
isCharging: Boolean,
|
isCharging: Boolean,
|
||||||
isInEar: Boolean,
|
isInEar: Boolean,
|
||||||
showEarDetection: Boolean,
|
showEarDetection: Boolean,
|
||||||
@@ -227,15 +229,15 @@ private fun PodGauge(
|
|||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val clamped = batteryPercent?.coerceIn(0f, 1f)
|
val clamped = if (batteryPercent >= 0f) batteryPercent.coerceIn(0f, 1f) else -1f
|
||||||
val animatedProgress by animateFloatAsState(
|
val animatedProgress by animateFloatAsState(
|
||||||
targetValue = clamped ?: 0f,
|
targetValue = if (clamped >= 0f) clamped else 0f,
|
||||||
animationSpec = tween(600, easing = FastOutSlowInEasing),
|
animationSpec = tween(600, easing = FastOutSlowInEasing),
|
||||||
label = "gaugeProgress",
|
label = "gaugeProgress",
|
||||||
)
|
)
|
||||||
|
|
||||||
val ringColor = when {
|
val ringColor = when {
|
||||||
clamped == null -> MaterialTheme.colorScheme.surfaceVariant
|
clamped < 0f -> MaterialTheme.colorScheme.surfaceVariant
|
||||||
clamped > 0.30f -> MaterialTheme.colorScheme.primary
|
clamped > 0.30f -> MaterialTheme.colorScheme.primary
|
||||||
clamped >= 0.15f -> MaterialTheme.colorScheme.tertiary
|
clamped >= 0.15f -> MaterialTheme.colorScheme.tertiary
|
||||||
else -> MaterialTheme.colorScheme.error
|
else -> MaterialTheme.colorScheme.error
|
||||||
@@ -261,7 +263,7 @@ private fun PodGauge(
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Progress ring
|
// Progress ring
|
||||||
if (clamped != null) {
|
if (clamped >= 0f) {
|
||||||
CircularProgressIndicator(
|
CircularProgressIndicator(
|
||||||
progress = { animatedProgress },
|
progress = { animatedProgress },
|
||||||
modifier = Modifier.size(80.dp),
|
modifier = Modifier.size(80.dp),
|
||||||
@@ -284,9 +286,9 @@ private fun PodGauge(
|
|||||||
|
|
||||||
// Battery percentage
|
// Battery percentage
|
||||||
Text(
|
Text(
|
||||||
text = formatBatteryPercent(context, batteryPercent),
|
text = formatBatteryPercent(context, batteryPercent.toBatteryOrNull()),
|
||||||
style = MaterialTheme.typography.titleMedium,
|
style = MaterialTheme.typography.titleMedium,
|
||||||
color = if (batteryPercent != null) {
|
color = if (batteryPercent >= 0f) {
|
||||||
MaterialTheme.colorScheme.onSurface
|
MaterialTheme.colorScheme.onSurface
|
||||||
} else {
|
} else {
|
||||||
MaterialTheme.colorScheme.onSurfaceVariant
|
MaterialTheme.colorScheme.onSurfaceVariant
|
||||||
@@ -335,7 +337,7 @@ private fun CaseRow(
|
|||||||
)
|
)
|
||||||
|
|
||||||
BatteryCapsule(
|
BatteryCapsule(
|
||||||
percent = device.batteryCasePercent,
|
percent = device.batteryCasePercent.toBatteryFloat(),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.weight(1f)
|
.weight(1f)
|
||||||
.height(8.dp),
|
.height(8.dp),
|
||||||
|
|||||||
@@ -40,18 +40,18 @@ private val CapsuleShape = RoundedCornerShape(6.dp)
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun BatteryCapsule(
|
fun BatteryCapsule(
|
||||||
percent: Float?,
|
percent: Float,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val clamped = percent?.coerceIn(0f, 1f)
|
val clamped = if (percent >= 0f) percent.coerceIn(0f, 1f) else -1f
|
||||||
val animatedFraction by animateFloatAsState(
|
val animatedFraction by animateFloatAsState(
|
||||||
targetValue = clamped ?: 0f,
|
targetValue = if (clamped >= 0f) clamped else 0f,
|
||||||
animationSpec = tween(600, easing = FastOutSlowInEasing),
|
animationSpec = tween(600, easing = FastOutSlowInEasing),
|
||||||
label = "batteryFill",
|
label = "batteryFill",
|
||||||
)
|
)
|
||||||
|
|
||||||
val barColor = when {
|
val barColor = when {
|
||||||
clamped == null -> MaterialTheme.colorScheme.surfaceVariant
|
clamped < 0f -> MaterialTheme.colorScheme.surfaceVariant
|
||||||
clamped > 0.30f -> MaterialTheme.colorScheme.primary
|
clamped > 0.30f -> MaterialTheme.colorScheme.primary
|
||||||
clamped >= 0.15f -> MaterialTheme.colorScheme.tertiary
|
clamped >= 0.15f -> MaterialTheme.colorScheme.tertiary
|
||||||
else -> MaterialTheme.colorScheme.error
|
else -> MaterialTheme.colorScheme.error
|
||||||
@@ -62,7 +62,7 @@ fun BatteryCapsule(
|
|||||||
.clip(CapsuleShape)
|
.clip(CapsuleShape)
|
||||||
.background(MaterialTheme.colorScheme.surfaceVariant),
|
.background(MaterialTheme.colorScheme.surfaceVariant),
|
||||||
) {
|
) {
|
||||||
if (clamped != null) {
|
if (clamped >= 0f) {
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxHeight()
|
.fillMaxHeight()
|
||||||
|
|||||||
@@ -19,9 +19,12 @@ import androidx.compose.foundation.layout.size
|
|||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.outlined.Key
|
||||||
import androidx.compose.material.icons.twotone.BatteryChargingFull
|
import androidx.compose.material.icons.twotone.BatteryChargingFull
|
||||||
import androidx.compose.material.icons.twotone.Hearing
|
import androidx.compose.material.icons.twotone.Hearing
|
||||||
|
import androidx.compose.material.icons.twotone.Key
|
||||||
import androidx.compose.material3.CardDefaults
|
import androidx.compose.material3.CardDefaults
|
||||||
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.CircularProgressIndicator
|
import androidx.compose.material3.CircularProgressIndicator
|
||||||
import androidx.compose.material3.ElevatedCard
|
import androidx.compose.material3.ElevatedCard
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
@@ -44,6 +47,7 @@ import eu.darken.capod.common.compose.preview.MockPodDataProvider
|
|||||||
import eu.darken.capod.pods.core.HasChargeDetection
|
import eu.darken.capod.pods.core.HasChargeDetection
|
||||||
import eu.darken.capod.pods.core.HasEarDetection
|
import eu.darken.capod.pods.core.HasEarDetection
|
||||||
import eu.darken.capod.pods.core.SinglePodDevice
|
import eu.darken.capod.pods.core.SinglePodDevice
|
||||||
|
import eu.darken.capod.pods.core.apple.ApplePods
|
||||||
import eu.darken.capod.pods.core.firstSeenFormatted
|
import eu.darken.capod.pods.core.firstSeenFormatted
|
||||||
import eu.darken.capod.pods.core.formatBatteryPercent
|
import eu.darken.capod.pods.core.formatBatteryPercent
|
||||||
import eu.darken.capod.pods.core.getSignalQuality
|
import eu.darken.capod.pods.core.getSignalQuality
|
||||||
@@ -98,12 +102,23 @@ fun SinglePodsCard(
|
|||||||
Spacer(modifier = Modifier.width(12.dp))
|
Spacer(modifier = Modifier.width(12.dp))
|
||||||
|
|
||||||
Column(modifier = Modifier.weight(1f)) {
|
Column(modifier = Modifier.weight(1f)) {
|
||||||
Text(
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
text = device.meta.profile?.label ?: "?",
|
Text(
|
||||||
style = MaterialTheme.typography.titleMedium,
|
text = device.meta.profile?.label ?: "?",
|
||||||
maxLines = 1,
|
style = MaterialTheme.typography.titleMedium,
|
||||||
overflow = TextOverflow.Ellipsis,
|
maxLines = 1,
|
||||||
)
|
overflow = TextOverflow.Ellipsis,
|
||||||
|
)
|
||||||
|
if (device is ApplePods && device.meta.isIRKMatch) {
|
||||||
|
Spacer(modifier = Modifier.width(6.dp))
|
||||||
|
Icon(
|
||||||
|
imageVector = if (device.payload.private != null) Icons.TwoTone.Key else Icons.Outlined.Key,
|
||||||
|
contentDescription = null,
|
||||||
|
modifier = Modifier.size(14.dp),
|
||||||
|
tint = MaterialTheme.colorScheme.onSurfaceVariant,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
Text(
|
Text(
|
||||||
text = device.getLabel(context),
|
text = device.getLabel(context),
|
||||||
style = MaterialTheme.typography.bodySmall,
|
style = MaterialTheme.typography.bodySmall,
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ import androidx.compose.ui.unit.sp
|
|||||||
import eu.darken.capod.R
|
import eu.darken.capod.R
|
||||||
import eu.darken.capod.common.compose.Preview2
|
import eu.darken.capod.common.compose.Preview2
|
||||||
import eu.darken.capod.common.compose.PreviewWrapper
|
import eu.darken.capod.common.compose.PreviewWrapper
|
||||||
|
import eu.darken.capod.pods.core.toBatteryOrNull
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -191,7 +192,7 @@ private fun SinglePodPreview(
|
|||||||
colorFilter = iconTint,
|
colorFilter = iconTint,
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = formatPercent(state.percent),
|
text = formatPercent(state.percent.toBatteryOrNull()),
|
||||||
fontSize = 12.sp,
|
fontSize = 12.sp,
|
||||||
color = textColor,
|
color = textColor,
|
||||||
modifier = Modifier.padding(horizontal = 8.dp),
|
modifier = Modifier.padding(horizontal = 8.dp),
|
||||||
@@ -293,7 +294,7 @@ private fun WidgetContainer(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun PodItemRow(
|
private fun PodItemRow(
|
||||||
icon: Int,
|
icon: Int,
|
||||||
percent: Float?,
|
percent: Float,
|
||||||
charging: Boolean,
|
charging: Boolean,
|
||||||
inEar: Boolean,
|
inEar: Boolean,
|
||||||
textColor: Color,
|
textColor: Color,
|
||||||
@@ -313,7 +314,7 @@ private fun PodItemRow(
|
|||||||
colorFilter = iconTint,
|
colorFilter = iconTint,
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = formatPercent(percent),
|
text = formatPercent(percent.toBatteryOrNull()),
|
||||||
fontSize = 12.sp,
|
fontSize = 12.sp,
|
||||||
color = textColor,
|
color = textColor,
|
||||||
modifier = Modifier.padding(horizontal = 4.dp),
|
modifier = Modifier.padding(horizontal = 4.dp),
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import androidx.glance.text.TextAlign
|
|||||||
import androidx.glance.text.TextStyle
|
import androidx.glance.text.TextStyle
|
||||||
import eu.darken.capod.R
|
import eu.darken.capod.R
|
||||||
import eu.darken.capod.main.ui.MainActivity
|
import eu.darken.capod.main.ui.MainActivity
|
||||||
|
import eu.darken.capod.pods.core.toBatteryOrNull
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -105,7 +106,7 @@ private fun GlanceSinglePod(
|
|||||||
colorFilter = iconTint,
|
colorFilter = iconTint,
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = formatGlancePercent(state.percent),
|
text = formatGlancePercent(state.percent.toBatteryOrNull()),
|
||||||
style = textStyle,
|
style = textStyle,
|
||||||
modifier = GlanceModifier.padding(horizontal = 8.dp),
|
modifier = GlanceModifier.padding(horizontal = 8.dp),
|
||||||
)
|
)
|
||||||
@@ -203,7 +204,7 @@ private fun GlanceWidgetRoot(
|
|||||||
@Composable
|
@Composable
|
||||||
private fun GlancePodItem(
|
private fun GlancePodItem(
|
||||||
icon: Int,
|
icon: Int,
|
||||||
percent: Float?,
|
percent: Float,
|
||||||
charging: Boolean,
|
charging: Boolean,
|
||||||
inEar: Boolean,
|
inEar: Boolean,
|
||||||
textStyle: TextStyle,
|
textStyle: TextStyle,
|
||||||
@@ -222,7 +223,7 @@ private fun GlancePodItem(
|
|||||||
colorFilter = iconTint,
|
colorFilter = iconTint,
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
text = formatGlancePercent(percent),
|
text = formatGlancePercent(percent.toBatteryOrNull()),
|
||||||
style = textStyle,
|
style = textStyle,
|
||||||
modifier = GlanceModifier.padding(horizontal = 4.dp),
|
modifier = GlanceModifier.padding(horizontal = 4.dp),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -18,15 +18,15 @@ sealed class WidgetRenderState {
|
|||||||
val isWide: Boolean,
|
val isWide: Boolean,
|
||||||
val deviceLabel: String?,
|
val deviceLabel: String?,
|
||||||
@DrawableRes val leftIcon: Int,
|
@DrawableRes val leftIcon: Int,
|
||||||
val leftPercent: Float?,
|
val leftPercent: Float,
|
||||||
val leftCharging: Boolean,
|
val leftCharging: Boolean,
|
||||||
val leftInEar: Boolean,
|
val leftInEar: Boolean,
|
||||||
@DrawableRes val rightIcon: Int,
|
@DrawableRes val rightIcon: Int,
|
||||||
val rightPercent: Float?,
|
val rightPercent: Float,
|
||||||
val rightCharging: Boolean,
|
val rightCharging: Boolean,
|
||||||
val rightInEar: Boolean,
|
val rightInEar: Boolean,
|
||||||
@DrawableRes val caseIcon: Int,
|
@DrawableRes val caseIcon: Int,
|
||||||
val casePercent: Float?,
|
val casePercent: Float,
|
||||||
val caseCharging: Boolean,
|
val caseCharging: Boolean,
|
||||||
) : WidgetRenderState()
|
) : WidgetRenderState()
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ sealed class WidgetRenderState {
|
|||||||
@ColorInt override val resolvedIconColor: Int,
|
@ColorInt override val resolvedIconColor: Int,
|
||||||
val deviceLabel: String?,
|
val deviceLabel: String?,
|
||||||
@DrawableRes val headsetIcon: Int,
|
@DrawableRes val headsetIcon: Int,
|
||||||
val percent: Float?,
|
val percent: Float,
|
||||||
@DrawableRes val batteryIcon: Int,
|
@DrawableRes val batteryIcon: Int,
|
||||||
val charging: Boolean,
|
val charging: Boolean,
|
||||||
val worn: Boolean,
|
val worn: Boolean,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import eu.darken.capod.pods.core.HasEarDetectionDual
|
|||||||
import eu.darken.capod.pods.core.PodDevice
|
import eu.darken.capod.pods.core.PodDevice
|
||||||
import eu.darken.capod.pods.core.SinglePodDevice
|
import eu.darken.capod.pods.core.SinglePodDevice
|
||||||
import eu.darken.capod.pods.core.getBatteryDrawable
|
import eu.darken.capod.pods.core.getBatteryDrawable
|
||||||
|
import eu.darken.capod.pods.core.toBatteryFloat
|
||||||
|
|
||||||
object WidgetRenderStateMapper {
|
object WidgetRenderStateMapper {
|
||||||
|
|
||||||
@@ -46,15 +47,15 @@ object WidgetRenderStateMapper {
|
|||||||
isWide = isWide,
|
isWide = isWide,
|
||||||
deviceLabel = profileLabel ?: device.getLabel(context),
|
deviceLabel = profileLabel ?: device.getLabel(context),
|
||||||
leftIcon = device.leftPodIcon,
|
leftIcon = device.leftPodIcon,
|
||||||
leftPercent = device.batteryLeftPodPercent,
|
leftPercent = device.batteryLeftPodPercent.toBatteryFloat(),
|
||||||
leftCharging = device is HasChargeDetectionDual && device.isLeftPodCharging,
|
leftCharging = device is HasChargeDetectionDual && device.isLeftPodCharging,
|
||||||
leftInEar = device is HasEarDetectionDual && device.isLeftPodInEar,
|
leftInEar = device is HasEarDetectionDual && device.isLeftPodInEar,
|
||||||
rightIcon = device.rightPodIcon,
|
rightIcon = device.rightPodIcon,
|
||||||
rightPercent = device.batteryRightPodPercent,
|
rightPercent = device.batteryRightPodPercent.toBatteryFloat(),
|
||||||
rightCharging = device is HasChargeDetectionDual && device.isRightPodCharging,
|
rightCharging = device is HasChargeDetectionDual && device.isRightPodCharging,
|
||||||
rightInEar = device is HasEarDetectionDual && device.isRightPodInEar,
|
rightInEar = device is HasEarDetectionDual && device.isRightPodInEar,
|
||||||
caseIcon = (device as? HasCase)?.caseIcon ?: R.drawable.device_airpods_gen1_case,
|
caseIcon = (device as? HasCase)?.caseIcon ?: R.drawable.device_airpods_gen1_case,
|
||||||
casePercent = (device as? HasCase)?.batteryCasePercent,
|
casePercent = (device as? HasCase)?.batteryCasePercent.toBatteryFloat(),
|
||||||
caseCharging = device is HasCase && device.isCaseCharging,
|
caseCharging = device is HasCase && device.isCaseCharging,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -65,7 +66,7 @@ object WidgetRenderStateMapper {
|
|||||||
resolvedIconColor = iconColor,
|
resolvedIconColor = iconColor,
|
||||||
deviceLabel = profileLabel ?: device.getLabel(context),
|
deviceLabel = profileLabel ?: device.getLabel(context),
|
||||||
headsetIcon = device.iconRes,
|
headsetIcon = device.iconRes,
|
||||||
percent = device.batteryHeadsetPercent,
|
percent = device.batteryHeadsetPercent.toBatteryFloat(),
|
||||||
batteryIcon = getBatteryDrawable(device.batteryHeadsetPercent),
|
batteryIcon = getBatteryDrawable(device.batteryHeadsetPercent),
|
||||||
charging = device is HasChargeDetectionDual && device.isHeadsetBeingCharged,
|
charging = device is HasChargeDetectionDual && device.isHeadsetBeingCharged,
|
||||||
worn = device is HasEarDetection && device.isBeingWorn,
|
worn = device is HasEarDetection && device.isBeingWorn,
|
||||||
|
|||||||
@@ -114,7 +114,15 @@ class MonitorService : Service() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
super.onCreate()
|
try {
|
||||||
|
super.onCreate()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
log(TAG, WARN) { "Hilt DI failed in onCreate(), stopping service: ${e.asLog()}" }
|
||||||
|
Bugs.report(tag = TAG, "Hilt DI failed in onCreate()", exception = e)
|
||||||
|
foregroundStartFailed = true
|
||||||
|
stopSelf()
|
||||||
|
return
|
||||||
|
}
|
||||||
log(TAG, VERBOSE) { "onCreate()" }
|
log(TAG, VERBOSE) { "onCreate()" }
|
||||||
|
|
||||||
// Replace early notification with the full one from injected MonitorNotifications.
|
// Replace early notification with the full one from injected MonitorNotifications.
|
||||||
|
|||||||
@@ -8,6 +8,12 @@ import java.time.Duration
|
|||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
|
const val BATTERY_UNKNOWN = -1f
|
||||||
|
|
||||||
|
fun Float?.toBatteryFloat(): Float = this ?: BATTERY_UNKNOWN
|
||||||
|
|
||||||
|
fun Float.toBatteryOrNull(): Float? = takeIf { it >= 0f }
|
||||||
|
|
||||||
fun formatBatteryPercent(context: Context, percent: Float?): String =
|
fun formatBatteryPercent(context: Context, percent: Float?): String =
|
||||||
percent?.let { "${(it * 100).roundToInt()}%" }
|
percent?.let { "${(it * 100).roundToInt()}%" }
|
||||||
?: context.getString(R.string.general_value_not_available_label)
|
?: context.getString(R.string.general_value_not_available_label)
|
||||||
|
|||||||
+3
-3
@@ -30,7 +30,7 @@ import androidx.compose.material3.HorizontalDivider
|
|||||||
import androidx.compose.material3.Icon
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.IconButton
|
import androidx.compose.material3.IconButton
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.MenuAnchorType
|
import androidx.compose.material3.ExposedDropdownMenuAnchorType
|
||||||
import androidx.compose.material3.OutlinedButton
|
import androidx.compose.material3.OutlinedButton
|
||||||
import androidx.compose.material3.OutlinedTextField
|
import androidx.compose.material3.OutlinedTextField
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
@@ -343,7 +343,7 @@ private fun DeviceInfoCard(
|
|||||||
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = modelExpanded) },
|
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = modelExpanded) },
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.menuAnchor(MenuAnchorType.PrimaryNotEditable),
|
.menuAnchor(ExposedDropdownMenuAnchorType.PrimaryNotEditable),
|
||||||
)
|
)
|
||||||
ExposedDropdownMenu(
|
ExposedDropdownMenu(
|
||||||
expanded = modelExpanded,
|
expanded = modelExpanded,
|
||||||
@@ -395,7 +395,7 @@ private fun DeviceInfoCard(
|
|||||||
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = deviceExpanded) },
|
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = deviceExpanded) },
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.menuAnchor(MenuAnchorType.PrimaryNotEditable),
|
.menuAnchor(ExposedDropdownMenuAnchorType.PrimaryNotEditable),
|
||||||
)
|
)
|
||||||
ExposedDropdownMenu(
|
ExposedDropdownMenu(
|
||||||
expanded = deviceExpanded,
|
expanded = deviceExpanded,
|
||||||
|
|||||||
@@ -99,6 +99,12 @@ class AutoConnect @Inject constructor(
|
|||||||
log(TAG) { "Auto connect condition ($condition) is not fullfilled: ${decision.reason}" }
|
log(TAG) { "Auto connect condition ($condition) is not fullfilled: ${decision.reason}" }
|
||||||
return@map
|
return@map
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!bluetoothManager.isNudgeAvailable) {
|
||||||
|
log(TAG, WARN) { "nudgeConnection is not available on this device, skipping" }
|
||||||
|
return@map
|
||||||
|
}
|
||||||
|
|
||||||
val result = bluetoothManager.nudgeConnection(bondedDevice)
|
val result = bluetoothManager.nudgeConnection(bondedDevice)
|
||||||
log(TAG) { "nudgeConnection($bondedDevice) returned $result" }
|
log(TAG) { "nudgeConnection($bondedDevice) returned $result" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,6 +40,8 @@ import eu.darken.capod.pods.core.PodDevice
|
|||||||
import eu.darken.capod.pods.core.SinglePodDevice
|
import eu.darken.capod.pods.core.SinglePodDevice
|
||||||
import eu.darken.capod.pods.core.formatBatteryPercent
|
import eu.darken.capod.pods.core.formatBatteryPercent
|
||||||
import eu.darken.capod.pods.core.getBatteryDrawable
|
import eu.darken.capod.pods.core.getBatteryDrawable
|
||||||
|
import eu.darken.capod.pods.core.toBatteryFloat
|
||||||
|
import eu.darken.capod.pods.core.toBatteryOrNull
|
||||||
import eu.darken.capod.pods.core.getSignalQuality
|
import eu.darken.capod.pods.core.getSignalQuality
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -127,7 +129,7 @@ private fun DualPodContent(device: DualPodDevice) {
|
|||||||
// Left pod
|
// Left pod
|
||||||
BatteryColumn(
|
BatteryColumn(
|
||||||
iconRes = device.leftPodIcon,
|
iconRes = device.leftPodIcon,
|
||||||
batteryPercent = device.batteryLeftPodPercent,
|
batteryPercent = device.batteryLeftPodPercent.toBatteryFloat(),
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -135,7 +137,7 @@ private fun DualPodContent(device: DualPodDevice) {
|
|||||||
if (hasCase != null) {
|
if (hasCase != null) {
|
||||||
BatteryColumn(
|
BatteryColumn(
|
||||||
iconRes = hasCase.caseIcon,
|
iconRes = hasCase.caseIcon,
|
||||||
batteryPercent = hasCase.batteryCasePercent,
|
batteryPercent = hasCase.batteryCasePercent.toBatteryFloat(),
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -143,7 +145,7 @@ private fun DualPodContent(device: DualPodDevice) {
|
|||||||
// Right pod
|
// Right pod
|
||||||
BatteryColumn(
|
BatteryColumn(
|
||||||
iconRes = device.rightPodIcon,
|
iconRes = device.rightPodIcon,
|
||||||
batteryPercent = device.batteryRightPodPercent,
|
batteryPercent = device.batteryRightPodPercent.toBatteryFloat(),
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -153,17 +155,18 @@ private fun DualPodContent(device: DualPodDevice) {
|
|||||||
private fun SinglePodContent(device: SinglePodDevice) {
|
private fun SinglePodContent(device: SinglePodDevice) {
|
||||||
BatteryColumn(
|
BatteryColumn(
|
||||||
iconRes = device.iconRes,
|
iconRes = device.iconRes,
|
||||||
batteryPercent = device.batteryHeadsetPercent,
|
batteryPercent = device.batteryHeadsetPercent.toBatteryFloat(),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun BatteryColumn(
|
private fun BatteryColumn(
|
||||||
iconRes: Int,
|
iconRes: Int,
|
||||||
batteryPercent: Float?,
|
batteryPercent: Float,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
|
val nullablePercent = batteryPercent.toBatteryOrNull()
|
||||||
|
|
||||||
Column(
|
Column(
|
||||||
modifier = modifier,
|
modifier = modifier,
|
||||||
@@ -183,13 +186,13 @@ private fun BatteryColumn(
|
|||||||
horizontalArrangement = Arrangement.Center,
|
horizontalArrangement = Arrangement.Center,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
painter = painterResource(getBatteryDrawable(batteryPercent)),
|
painter = painterResource(getBatteryDrawable(nullablePercent)),
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
modifier = Modifier.size(16.dp),
|
modifier = Modifier.size(16.dp),
|
||||||
)
|
)
|
||||||
Spacer(modifier = Modifier.width(2.dp))
|
Spacer(modifier = Modifier.width(2.dp))
|
||||||
Text(
|
Text(
|
||||||
text = formatBatteryPercent(context, batteryPercent),
|
text = formatBatteryPercent(context, nullablePercent),
|
||||||
style = MaterialTheme.typography.bodyMedium,
|
style = MaterialTheme.typography.bodyMedium,
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis,
|
overflow = TextOverflow.Ellipsis,
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Is die ontfoutrekord suksesvol gestuur? Die rekord sal uitgevee word.</string>
|
<string name="support_debuglog_sent_message">Is die ontfoutrekord suksesvol gestuur? Die rekord sal uitgevee word.</string>
|
||||||
<string name="support_contact_sent_title">E-pos gestuur?</string>
|
<string name="support_contact_sent_title">E-pos gestuur?</string>
|
||||||
<string name="support_contact_sent_message">Is die e-pos suksesvol gestuur? Die aangehegte ontfoutrekord sal uitgevee word.</string>
|
<string name="support_contact_sent_message">Is die e-pos suksesvol gestuur? Die aangehegte ontfoutrekord sal uitgevee word.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Hou</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">የዲባግ ምዝግብ ማስታወሻ በተሳካ ሁኔታ ተልኳል? ምዝግብ ማስታወሻው ይሰረዛል።</string>
|
<string name="support_debuglog_sent_message">የዲባግ ምዝግብ ማስታወሻ በተሳካ ሁኔታ ተልኳል? ምዝግብ ማስታወሻው ይሰረዛል።</string>
|
||||||
<string name="support_contact_sent_title">ኢሜይል ተልኳል?</string>
|
<string name="support_contact_sent_title">ኢሜይል ተልኳል?</string>
|
||||||
<string name="support_contact_sent_message">ኢሜይሉ በተሳካ ሁኔታ ተልኳል? ተያይዞ የቀረበው የዲባግ ምዝግብ ማስታወሻ ይሰረዛል።</string>
|
<string name="support_contact_sent_message">ኢሜይሉ በተሳካ ሁኔታ ተልኳል? ተያይዞ የቀረበው የዲባግ ምዝግብ ማስታወሻ ይሰረዛል።</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">ያቆዩ</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -312,10 +312,10 @@
|
|||||||
<string name="debug_debuglog_screen_log_files_label">ملفات السجلّ</string>
|
<string name="debug_debuglog_screen_log_files_label">ملفات السجلّ</string>
|
||||||
<plurals name="debug_debuglog_screen_log_files_ready">
|
<plurals name="debug_debuglog_screen_log_files_ready">
|
||||||
<item quantity="zero">%1$d ملف جاهز (%2$s)</item>
|
<item quantity="zero">%1$d ملف جاهز (%2$s)</item>
|
||||||
<item quantity="one">ملف جاهز (%2$s)</item>
|
<item quantity="one">%1$d ملف جاهز (%2$s)</item>
|
||||||
<item quantity="two">ملفان جاهزان (%2$s)</item>
|
<item quantity="two">%1$d ملفان جاهزان (%2$s)</item>
|
||||||
<item quantity="few">%1$d ملفات جاهزة (%2$s)</item>
|
<item quantity="few">%1$d ملفات جاهزة (%2$s)</item>
|
||||||
<item quantity="many">%1$d ملف جاهز (%2$s)</item>
|
<item quantity="many">%1$d ملفًا جاهزًا (%2$s)</item>
|
||||||
<item quantity="other">%1$d ملف جاهز (%2$s)</item>
|
<item quantity="other">%1$d ملف جاهز (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">حذف</string>
|
<string name="debug_debuglog_screen_discard_action">حذف</string>
|
||||||
@@ -377,5 +377,4 @@
|
|||||||
<string name="support_debuglog_sent_message">هل تم إرسال سجل التصحيح بنجاح؟ سيتم حذف السجل.</string>
|
<string name="support_debuglog_sent_message">هل تم إرسال سجل التصحيح بنجاح؟ سيتم حذف السجل.</string>
|
||||||
<string name="support_contact_sent_title">هل تم إرسال البريد الإلكتروني؟</string>
|
<string name="support_contact_sent_title">هل تم إرسال البريد الإلكتروني؟</string>
|
||||||
<string name="support_contact_sent_message">هل تم إرسال البريد الإلكتروني بنجاح؟ سيتم حذف سجل التصحيح المرفق.</string>
|
<string name="support_contact_sent_message">هل تم إرسال البريد الإلكتروني بنجاح؟ سيتم حذف سجل التصحيح المرفق.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">احتفظ</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Sazlama jurnalı uğurla göndərildi? Jurnal silinəcək.</string>
|
<string name="support_debuglog_sent_message">Sazlama jurnalı uğurla göndərildi? Jurnal silinəcək.</string>
|
||||||
<string name="support_contact_sent_title">E-poçt göndərildi?</string>
|
<string name="support_contact_sent_title">E-poçt göndərildi?</string>
|
||||||
<string name="support_contact_sent_message">E-poçt uğurla göndərildi? Əlavə edilmiş sazlama jurnalı silinəcək.</string>
|
<string name="support_contact_sent_message">E-poçt uğurla göndərildi? Əlavə edilmiş sazlama jurnalı silinəcək.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Saxla</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -369,5 +369,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Адладачны журнал быў паспяхова адпраўлены? Журнал будзе выдалены.</string>
|
<string name="support_debuglog_sent_message">Адладачны журнал быў паспяхова адпраўлены? Журнал будзе выдалены.</string>
|
||||||
<string name="support_contact_sent_title">Электронны ліст адпраўлены?</string>
|
<string name="support_contact_sent_title">Электронны ліст адпраўлены?</string>
|
||||||
<string name="support_contact_sent_message">Электронны ліст быў паспяхова адпраўлены? Прыкладзены адладачны журнал будзе выдалены.</string>
|
<string name="support_contact_sent_message">Электронны ліст быў паспяхова адпраўлены? Прыкладзены адладачны журнал будзе выдалены.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Захаваць</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Изпратен ли е успешно дневникът за отстраняване на грешки? Логът ще бъде изтрит.</string>
|
<string name="support_debuglog_sent_message">Изпратен ли е успешно дневникът за отстраняване на грешки? Логът ще бъде изтрит.</string>
|
||||||
<string name="support_contact_sent_title">Имейлът изпратен ли е?</string>
|
<string name="support_contact_sent_title">Имейлът изпратен ли е?</string>
|
||||||
<string name="support_contact_sent_message">Изпратен ли е успешно имейлът? Прикаченият дневник за отстраняване на грешки ще бъде изтрит.</string>
|
<string name="support_contact_sent_message">Изпратен ли е успешно имейлът? Прикаченият дневник за отстраняване на грешки ще бъде изтрит.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Запази</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">ডিবাগ লগটি সফলভাবে পাঠানো হয়েছে? লগটি মুছে ফেলা হবে।</string>
|
<string name="support_debuglog_sent_message">ডিবাগ লগটি সফলভাবে পাঠানো হয়েছে? লগটি মুছে ফেলা হবে।</string>
|
||||||
<string name="support_contact_sent_title">ইমেইল পাঠানো হয়েছে?</string>
|
<string name="support_contact_sent_title">ইমেইল পাঠানো হয়েছে?</string>
|
||||||
<string name="support_contact_sent_message">ইমেইলটি সফলভাবে পাঠানো হয়েছে? সংযুক্ত ডিবাগ লগটি মুছে ফেলা হবে।</string>
|
<string name="support_contact_sent_message">ইমেইলটি সফলভাবে পাঠানো হয়েছে? সংযুক্ত ডিবাগ লগটি মুছে ফেলা হবে।</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">রাখুন</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d fitxers preparats (%2$s)</item>
|
<item quantity="other">%1$d fitxers preparats (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Elimina</string>
|
<string name="debug_debuglog_screen_discard_action">Elimina</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Conserva</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d registre de depuració (%2$s)</item>
|
<item quantity="one">%1$d registre de depuració (%2$s)</item>
|
||||||
|
|||||||
@@ -315,7 +315,6 @@
|
|||||||
<item quantity="other">%1$d souborů připraveno (%2$s)</item>
|
<item quantity="other">%1$d souborů připraveno (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Smazat</string>
|
<string name="debug_debuglog_screen_discard_action">Smazat</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Ponechat</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d log ladění (%2$s)</item>
|
<item quantity="one">%1$d log ladění (%2$s)</item>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Blev fejlloggen sendt korrekt? Loggen vil blive slettet.</string>
|
<string name="support_debuglog_sent_message">Blev fejlloggen sendt korrekt? Loggen vil blive slettet.</string>
|
||||||
<string name="support_contact_sent_title">E-mail sendt?</string>
|
<string name="support_contact_sent_title">E-mail sendt?</string>
|
||||||
<string name="support_contact_sent_message">Blev e-mailen sendt korrekt? Den vedhæftede fejllog vil blive slettet.</string>
|
<string name="support_contact_sent_message">Blev e-mailen sendt korrekt? Den vedhæftede fejllog vil blive slettet.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Behold</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Wurde das Debug-Protokoll erfolgreich gesendet? Das Protokoll wird gelöscht.</string>
|
<string name="support_debuglog_sent_message">Wurde das Debug-Protokoll erfolgreich gesendet? Das Protokoll wird gelöscht.</string>
|
||||||
<string name="support_contact_sent_title">E-Mail gesendet?</string>
|
<string name="support_contact_sent_title">E-Mail gesendet?</string>
|
||||||
<string name="support_contact_sent_message">Wurde die E-Mail erfolgreich gesendet? Das angehängte Debug-Protokoll wird gelöscht.</string>
|
<string name="support_contact_sent_message">Wurde die E-Mail erfolgreich gesendet? Das angehängte Debug-Protokoll wird gelöscht.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Behalten</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Στάλθηκε επιτυχώς το αρχείο καταγραφής εντοπισμού σφαλμάτων; Το αρχείο καταγραφής θα διαγραφεί.</string>
|
<string name="support_debuglog_sent_message">Στάλθηκε επιτυχώς το αρχείο καταγραφής εντοπισμού σφαλμάτων; Το αρχείο καταγραφής θα διαγραφεί.</string>
|
||||||
<string name="support_contact_sent_title">Email εστάλη;</string>
|
<string name="support_contact_sent_title">Email εστάλη;</string>
|
||||||
<string name="support_contact_sent_message">Στάλθηκε επιτυχώς το email; Το συνημμένο αρχείο καταγραφής εντοπισμού σφαλμάτων θα διαγραφεί.</string>
|
<string name="support_contact_sent_message">Στάλθηκε επιτυχώς το email; Το συνημμένο αρχείο καταγραφής εντοπισμού σφαλμάτων θα διαγραφεί.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Διατήρηση</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">¿Se envió el log de depuración correctamente? El log será eliminado.</string>
|
<string name="support_debuglog_sent_message">¿Se envió el log de depuración correctamente? El log será eliminado.</string>
|
||||||
<string name="support_contact_sent_title">¿Email enviado?</string>
|
<string name="support_contact_sent_title">¿Email enviado?</string>
|
||||||
<string name="support_contact_sent_message">¿Se envió el email correctamente? El log de depuración adjunto será eliminado.</string>
|
<string name="support_contact_sent_message">¿Se envió el email correctamente? El log de depuración adjunto será eliminado.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Conservar</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">¿El registro de depuración se envió correctamente? El registro será eliminado.</string>
|
<string name="support_debuglog_sent_message">¿El registro de depuración se envió correctamente? El registro será eliminado.</string>
|
||||||
<string name="support_contact_sent_title">¿Correo enviado?</string>
|
<string name="support_contact_sent_title">¿Correo enviado?</string>
|
||||||
<string name="support_contact_sent_message">¿El correo se envió correctamente? El registro de depuración adjunto será eliminado.</string>
|
<string name="support_contact_sent_message">¿El correo se envió correctamente? El registro de depuración adjunto será eliminado.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Conservar</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -358,8 +358,7 @@
|
|||||||
<string name="support_contact_debuglog_delete_message">Este registro de depuración se eliminará permanentemente.</string>
|
<string name="support_contact_debuglog_delete_message">Este registro de depuración se eliminará permanentemente.</string>
|
||||||
<!-- Post-share confirmation -->
|
<!-- Post-share confirmation -->
|
||||||
<string name="support_debuglog_sent_title">¿Registro enviado?</string>
|
<string name="support_debuglog_sent_title">¿Registro enviado?</string>
|
||||||
<string name="support_debuglog_sent_message">¿Se envió el registro de depuración correctamente? El registro se eliminará.</string>
|
<string name="support_debuglog_sent_message">¿Se envió el registro de depuración con éxito? El registro será eliminado.</string>
|
||||||
<string name="support_contact_sent_title">¿Correo enviado?</string>
|
<string name="support_contact_sent_title">¿El correo electrónico se envió?</string>
|
||||||
<string name="support_contact_sent_message">¿Se envió el correo electrónico correctamente? El registro de depuración adjunto se eliminará.</string>
|
<string name="support_contact_sent_message">¿Se envió el correo electrónico correctamente? El registro de depuración adjunto se eliminará.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Conservar</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -251,7 +251,7 @@
|
|||||||
<string name="profiles_drag_handle_description">Järjekorra muutmiseks lohista</string>
|
<string name="profiles_drag_handle_description">Järjekorra muutmiseks lohista</string>
|
||||||
<string name="profiles_delete_title">Eemalda Profiil</string>
|
<string name="profiles_delete_title">Eemalda Profiil</string>
|
||||||
<string name="profiles_delete_message">Kas soovid kindlasti seda profiili kustutada? Seda toimingut ei saa tagasi võtta.</string>
|
<string name="profiles_delete_message">Kas soovid kindlasti seda profiili kustutada? Seda toimingut ei saa tagasi võtta.</string>
|
||||||
<string name="profiles_delete_action">Kustuta</string>
|
<string name="profiles_delete_action">Delete</string>
|
||||||
<string name="profiles_basic_info_title">Seadme teave</string>
|
<string name="profiles_basic_info_title">Seadme teave</string>
|
||||||
<string name="profiles_basic_info_description">Seadistage seadme nime, mudelit ja valikulist Bluetooth-sidumist.</string>
|
<string name="profiles_basic_info_description">Seadistage seadme nime, mudelit ja valikulist Bluetooth-sidumist.</string>
|
||||||
<string name="profiles_signal_quality_title">Väikseim signaali kvaliteet</string>
|
<string name="profiles_signal_quality_title">Väikseim signaali kvaliteet</string>
|
||||||
@@ -267,7 +267,7 @@
|
|||||||
<string name="profiles_key_status_configured">Seadistatud</string>
|
<string name="profiles_key_status_configured">Seadistatud</string>
|
||||||
<string name="profiles_key_status_not_set">Määramata</string>
|
<string name="profiles_key_status_not_set">Määramata</string>
|
||||||
<string name="profiles_signal_quality_min_label">Väljas</string>
|
<string name="profiles_signal_quality_min_label">Väljas</string>
|
||||||
<string name="profiles_signal_quality_max_label">Range</string>
|
<string name="profiles_signal_quality_max_label">Strict</string>
|
||||||
<string name="profiles_priority_hint">Profiili asukoht määrab olulisuse. Profiilide asukoha muutmiseks lohistage neid. Nimekirja eesosas olevad profiilid on eelisjärjekorras mitme samasuguse seadme puhul.</string>
|
<string name="profiles_priority_hint">Profiili asukoht määrab olulisuse. Profiilide asukoha muutmiseks lohistage neid. Nimekirja eesosas olevad profiilid on eelisjärjekorras mitme samasuguse seadme puhul.</string>
|
||||||
<!-- Theme Mode -->
|
<!-- Theme Mode -->
|
||||||
<string name="ui_theme_mode_label">Teema režiim</string>
|
<string name="ui_theme_mode_label">Teema režiim</string>
|
||||||
@@ -310,7 +310,7 @@
|
|||||||
<item quantity="one">%1$d fail valmis (%2$s)</item>
|
<item quantity="one">%1$d fail valmis (%2$s)</item>
|
||||||
<item quantity="other">%1$d faili valmis (%2$s)</item>
|
<item quantity="other">%1$d faili valmis (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Kustuta</string>
|
<string name="debug_debuglog_screen_discard_action">Delete</string>
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d silumislogi (%2$s)</item>
|
<item quantity="one">%1$d silumislogi (%2$s)</item>
|
||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Kas silumislogi saadeti edukalt? Logi kustutatakse.</string>
|
<string name="support_debuglog_sent_message">Kas silumislogi saadeti edukalt? Logi kustutatakse.</string>
|
||||||
<string name="support_contact_sent_title">Meil saadetud?</string>
|
<string name="support_contact_sent_title">Meil saadetud?</string>
|
||||||
<string name="support_contact_sent_message">Kas meil saadeti edukalt? Manustatud silumislogi kustutatakse.</string>
|
<string name="support_contact_sent_message">Kas meil saadeti edukalt? Manustatud silumislogi kustutatakse.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Hoia alles</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Arazketa-loga behar bezala bidali al da? Loga ezabatuko da.</string>
|
<string name="support_debuglog_sent_message">Arazketa-loga behar bezala bidali al da? Loga ezabatuko da.</string>
|
||||||
<string name="support_contact_sent_title">Mezu elektronikoa bidali da?</string>
|
<string name="support_contact_sent_title">Mezu elektronikoa bidali da?</string>
|
||||||
<string name="support_contact_sent_message">Mezu elektronikoa behar bezala bidali al da? Erantsitako arazketa-loga ezabatuko da.</string>
|
<string name="support_contact_sent_message">Mezu elektronikoa behar bezala bidali al da? Erantsitako arazketa-loga ezabatuko da.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Gorde</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -123,7 +123,7 @@
|
|||||||
<string name="help_translate_label">ترجمه</string>
|
<string name="help_translate_label">ترجمه</string>
|
||||||
<string name="help_translate_description">به ترجمه این برنامه به زبان موردعلاقه خود کمک کنید.</string>
|
<string name="help_translate_description">به ترجمه این برنامه به زبان موردعلاقه خود کمک کنید.</string>
|
||||||
<string name="translators_thanks_title">مترجمان</string>
|
<string name="translators_thanks_title">مترجمان</string>
|
||||||
<string name="translators_thanks_description">تیره کردن</string>
|
<string name="translators_thanks_description">darken</string>
|
||||||
<string name="widget_description">ویجتی که آخرین وضعیت شناختهشده دستگاه را نشان میدهد.</string>
|
<string name="widget_description">ویجتی که آخرین وضعیت شناختهشده دستگاه را نشان میدهد.</string>
|
||||||
<string name="widget_config_screen_title">پیکربندی ابزارک</string>
|
<string name="widget_config_screen_title">پیکربندی ابزارک</string>
|
||||||
<string name="widget_configuration_title">انتخاب دستگاه</string>
|
<string name="widget_configuration_title">انتخاب دستگاه</string>
|
||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">آیا لاگ اشکالزدایی با موفقیت ارسال شد؟ لاگ حذف خواهد شد.</string>
|
<string name="support_debuglog_sent_message">آیا لاگ اشکالزدایی با موفقیت ارسال شد؟ لاگ حذف خواهد شد.</string>
|
||||||
<string name="support_contact_sent_title">ایمیل ارسال شد؟</string>
|
<string name="support_contact_sent_title">ایمیل ارسال شد؟</string>
|
||||||
<string name="support_contact_sent_message">آیا ایمیل با موفقیت ارسال شد؟ لاگ اشکالزدایی پیوستشده حذف خواهد شد.</string>
|
<string name="support_contact_sent_message">آیا ایمیل با موفقیت ارسال شد؟ لاگ اشکالزدایی پیوستشده حذف خواهد شد.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">نگه داشتن</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Lähetettiin virheenkorjausloki onnistuneesti? Loki poistetaan.</string>
|
<string name="support_debuglog_sent_message">Lähetettiin virheenkorjausloki onnistuneesti? Loki poistetaan.</string>
|
||||||
<string name="support_contact_sent_title">Sähköposti lähetetty?</string>
|
<string name="support_contact_sent_title">Sähköposti lähetetty?</string>
|
||||||
<string name="support_contact_sent_message">Lähetettiin sähköposti onnistuneesti? Liitetty virheenkorjausloki poistetaan.</string>
|
<string name="support_contact_sent_message">Lähetettiin sähköposti onnistuneesti? Liitetty virheenkorjausloki poistetaan.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Säilytä</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Matagumpay bang naipadala ang debug log? Ang log ay matatanggal.</string>
|
<string name="support_debuglog_sent_message">Matagumpay bang naipadala ang debug log? Ang log ay matatanggal.</string>
|
||||||
<string name="support_contact_sent_title">Naipadala na ang email?</string>
|
<string name="support_contact_sent_title">Naipadala na ang email?</string>
|
||||||
<string name="support_contact_sent_message">Matagumpay bang naipadala ang email? Ang kalakip na debug log ay matatanggal.</string>
|
<string name="support_contact_sent_message">Matagumpay bang naipadala ang email? Ang kalakip na debug log ay matatanggal.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Itago</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d ficheiros listos (%2$s)</item>
|
<item quantity="other">%1$d ficheiros listos (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Eliminar</string>
|
<string name="debug_debuglog_screen_discard_action">Eliminar</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Gardar</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d rexistro de depuración (%2$s)</item>
|
<item quantity="one">%1$d rexistro de depuración (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d फ़ाइलें तैयार (%2$s)</item>
|
<item quantity="other">%1$d फ़ाइलें तैयार (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">मिटाएं</string>
|
<string name="debug_debuglog_screen_discard_action">मिटाएं</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">रखें</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d डीबग लॉग (%2$s)</item>
|
<item quantity="one">%1$d डीबग लॉग (%2$s)</item>
|
||||||
|
|||||||
@@ -285,7 +285,7 @@
|
|||||||
<string name="ui_theme_color_label">Boja teme</string>
|
<string name="ui_theme_color_label">Boja teme</string>
|
||||||
<string name="ui_theme_color_blue_label">Plava</string>
|
<string name="ui_theme_color_blue_label">Plava</string>
|
||||||
<string name="ui_theme_color_green_label">Zelena</string>
|
<string name="ui_theme_color_green_label">Zelena</string>
|
||||||
<string name="ui_theme_color_amber_label">Jantąrna</string>
|
<string name="ui_theme_color_amber_label">Jantarna</string>
|
||||||
<string name="ui_theme_color_disabled_materialyou">Koristi boje pozadine</string>
|
<string name="ui_theme_color_disabled_materialyou">Koristi boje pozadine</string>
|
||||||
<!-- Settings categories -->
|
<!-- Settings categories -->
|
||||||
<string name="settings_category_monitoring_label">Praćenje</string>
|
<string name="settings_category_monitoring_label">Praćenje</string>
|
||||||
@@ -313,7 +313,6 @@
|
|||||||
<item quantity="other">%1$d datoteka spremno (%2$s)</item>
|
<item quantity="other">%1$d datoteka spremno (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Izbriši</string>
|
<string name="debug_debuglog_screen_discard_action">Izbriši</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Zadrži</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d debug zapisnik (%2$s)</item>
|
<item quantity="one">%1$d debug zapisnik (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d fájl kész (%2$s)</item>
|
<item quantity="other">%1$d fájl kész (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Törlés</string>
|
<string name="debug_debuglog_screen_discard_action">Törlés</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Megőrzés</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d hibakeresési napló (%2$s)</item>
|
<item quantity="one">%1$d hibakeresési napló (%2$s)</item>
|
||||||
|
|||||||
@@ -302,16 +302,15 @@
|
|||||||
<string name="debug_debuglog_short_recording_stop">Ամեն դեպքում դադարեցնել</string>
|
<string name="debug_debuglog_short_recording_stop">Ամեն դեպքում դադարեցնել</string>
|
||||||
<!-- Recorder screen -->
|
<!-- Recorder screen -->
|
||||||
<string name="debug_debuglog_screen_title">Կարգաբերման մատյան</string>
|
<string name="debug_debuglog_screen_title">Կարգաբերման մատյան</string>
|
||||||
<string name="debug_debuglog_screen_subtitle">Կարգաբերման տեղեկատվության արտահանել վհարկարի համար</string>
|
<string name="debug_debuglog_screen_subtitle">Արտահանել վրիպազերծման տեղեկություններ անսարքությունների հայտնաբերման համար</string>
|
||||||
<string name="debug_debuglog_screen_sensitive_title">ԿոնՖիդենցիալ տեղեկատվության</string>
|
<string name="debug_debuglog_screen_sensitive_title">Զգայուն տեղեկություն</string>
|
||||||
<string name="debug_debuglog_screen_session_path_label">Սեսիայի Մարութ</string>
|
<string name="debug_debuglog_screen_session_path_label">Սեանսի ուղի</string>
|
||||||
<string name="debug_debuglog_screen_log_files_label">Մատյանի Ֆայլեր</string>
|
<string name="debug_debuglog_screen_log_files_label">Մատյանի Ֆայլեր</string>
|
||||||
<plurals name="debug_debuglog_screen_log_files_ready">
|
<plurals name="debug_debuglog_screen_log_files_ready">
|
||||||
<item quantity="one">%1$d Ֆայլ պատրաստուաց ե (%2$s)</item>
|
<item quantity="one">%1$d Ֆայլ պատրաստուաց ե (%2$s)</item>
|
||||||
<item quantity="other">%1$d Ֆայլեր պատրաստուաց են (%2$s)</item>
|
<item quantity="other">%1$d Ֆայլեր պատրաստուաց են (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Ջնջել</string>
|
<string name="debug_debuglog_screen_discard_action">Ջնջել</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Պահպանել</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d Կարգաբերման մատյան (%2$s)</item>
|
<item quantity="one">%1$d Կարգաբերման մատյան (%2$s)</item>
|
||||||
@@ -322,10 +321,10 @@
|
|||||||
<string name="support_debuglog_sessions_desc">Կարավարել գրանցված Կարգաբերման մատյանի սեսիանները</string>
|
<string name="support_debuglog_sessions_desc">Կարավարել գրանցված Կարգաբերման մատյանի սեսիանները</string>
|
||||||
<string name="support_debuglog_sessions_empty">Կարգաբերման սեսիաններ չկա</string>
|
<string name="support_debuglog_sessions_empty">Կարգաբերման սեսիաններ չկա</string>
|
||||||
<string name="support_debuglog_session_recording">Գրանցություն…</string>
|
<string name="support_debuglog_session_recording">Գրանցություն…</string>
|
||||||
<string name="support_debuglog_session_compressing">սեղադրություն…</string>
|
<string name="support_debuglog_session_compressing">Սեղմվում է…</string>
|
||||||
<string name="support_debuglog_session_delete_title">Հեռացնել սեսիան?</string>
|
<string name="support_debuglog_session_delete_title">Հեռացնել սեսիան?</string>
|
||||||
<string name="support_debuglog_session_delete_message">Այս Կարգաբերման սեսիանը կինաբար հեռացվել կլի:</string>
|
<string name="support_debuglog_session_delete_message">Այս վրիպազերծման սեանսը կջնջվի անդառնալիորեն։</string>
|
||||||
<string name="support_debuglog_clear_all_message">Բոլոր Կարգաբերման սեսիանները կինաբար հեռացվել կլին:</string>
|
<string name="support_debuglog_clear_all_message">Բոլոր վրիպազերծման սեանսները կջնջվեն անդառնալիորեն։</string>
|
||||||
<string name="support_debuglog_failed_empty_log">Սխալ: մատյանի հալը դատարկ է</string>
|
<string name="support_debuglog_failed_empty_log">Սխալ: մատյանի հալը դատարկ է</string>
|
||||||
<string name="support_debuglog_failed_missing_log">Սխալ: մատյանի հալը բացակայում է</string>
|
<string name="support_debuglog_failed_missing_log">Սխալ: մատյանի հալը բացակայում է</string>
|
||||||
<string name="support_debuglog_failed_corrupt_zip">Սխալ: zip հալը վնասվածված է</string>
|
<string name="support_debuglog_failed_corrupt_zip">Սխալ: zip հալը վնասվածված է</string>
|
||||||
@@ -333,15 +332,15 @@
|
|||||||
<!-- Contact form -->
|
<!-- Contact form -->
|
||||||
<string name="support_contact_label">Կապակցություն Մշակողի հետ</string>
|
<string name="support_contact_label">Կապակցություն Մշակողի հետ</string>
|
||||||
<string name="support_contact_desc">Լրացնել ձև մշակողին e-mail ուղարկելու համար:</string>
|
<string name="support_contact_desc">Լրացնել ձև մշակողին e-mail ուղարկելու համար:</string>
|
||||||
<string name="support_contact_welcome">Ես կարդիք բոլոր նամակները կարդաթում ենք և կարկանությամբ պատասխանում, բայց միակայի աշխատում, կարոգ է քիչ ժամանակ պահանջվել: շնորհակալություն:</string>
|
<string name="support_contact_welcome">Ես ինքս կարդում եմ յուրաքանչյուր հաղորդագրություն և ամեն ինչ անում եմ պատասխանելու համար, բայց քանի որ մենակ եմ աշխատում, կարող է մի փոքր ժամանակ պահանջվել։ Շնորհակալություն ձեր համբերության համար։</string>
|
||||||
<string name="support_contact_footer">ձևր նամակը կուգկվի ելեկտրոնային նամակով: Բլկի և կարգավորության օգնությունները կցվում են ինքնաբար: Կարող եք կցել խաղագրություններ կամ վիդեո: Նամակի չափերը կլինեն անգլերեն, որպեսզի մշակողին կարող լինի հասկանալ:</string>
|
<string name="support_contact_footer">Ձեր հաղորդագրությունը կուղարկվի էլ. փոստով։ Սարքի և կարգաբերման տեղեկությունները կցվում են ավտոմատ կերպով։ Կարող եք նաև կցել սքրինշոթեր կամ տեսանյութ էլ. նամակին։ Էլ. նամակի որոշ մասեր կլինեն անգլերենով, որպեսզի մշակողը կարողանա հեշտությամբ հասկանալ։</string>
|
||||||
<string name="support_contact_category_label">Կատեգորիա</string>
|
<string name="support_contact_category_label">Կատեգորիա</string>
|
||||||
<string name="support_contact_category_question_label">Հարցում</string>
|
<string name="support_contact_category_question_label">Հարցում</string>
|
||||||
<string name="support_contact_category_feature_label">Ֆունկլության հայց</string>
|
<string name="support_contact_category_feature_label">Հնարավորության հայց</string>
|
||||||
<string name="support_contact_category_bug_label">Սխալի զեկություն</string>
|
<string name="support_contact_category_bug_label">Սխալի զեկություն</string>
|
||||||
<string name="support_contact_description_label">Նկարագրություն</string>
|
<string name="support_contact_description_label">Նկարագրություն</string>
|
||||||
<string name="support_contact_description_question_hint">Նկարագրեք ձևր հարցումը մանրամասնորեն: Խնդրում կերկկիսել կոնկրետ:</string>
|
<string name="support_contact_description_question_hint">Մանրամասն նկարագրեք ձեր հարցը։ Խնդրում ենք կոնկրետ լինել։</string>
|
||||||
<string name="support_contact_description_feature_hint">Նկարագրեք այն հնարավորությունը, որին կլինեիք տեսնել: Խնդրում կերկկիսել կոնկրետ:</string>
|
<string name="support_contact_description_feature_hint">Նկարագրեք հնարավորությունը, որը ցանկանում եք տեսնել։ Խնդրում ենք կոնկրետ լինել։</string>
|
||||||
<string name="support_contact_description_bug_hint">Նկարագրեք ինչ կատարվել ե կերպես վերարտադրել խնդիրը. Խնդրում կոնկրետ կերկիսել:</string>
|
<string name="support_contact_description_bug_hint">Նկարագրեք ինչ կատարվել ե կերպես վերարտադրել խնդիրը. Խնդրում կոնկրետ կերկիսել:</string>
|
||||||
<string name="support_contact_expected_label">Սպասվող վարքություն</string>
|
<string name="support_contact_expected_label">Սպասվող վարքություն</string>
|
||||||
<string name="support_contact_expected_hint">Նկարագրեք ինչ կարկանում էիք կատարվի:</string>
|
<string name="support_contact_expected_hint">Նկարագրեք ինչ կարկանում էիք կատարվի:</string>
|
||||||
|
|||||||
@@ -123,7 +123,7 @@
|
|||||||
<string name="help_translate_label">Terjemahan</string>
|
<string name="help_translate_label">Terjemahan</string>
|
||||||
<string name="help_translate_description">Bantu terjemahkan aplikasi ini ke bahasa favorit Anda.</string>
|
<string name="help_translate_description">Bantu terjemahkan aplikasi ini ke bahasa favorit Anda.</string>
|
||||||
<string name="translators_thanks_title">Penerjemah</string>
|
<string name="translators_thanks_title">Penerjemah</string>
|
||||||
<string name="translators_thanks_description">gelapkan</string>
|
<string name="translators_thanks_description">darken</string>
|
||||||
<string name="widget_description">Widget yang menampilkan status perangkat terakhir yang diketahui.</string>
|
<string name="widget_description">Widget yang menampilkan status perangkat terakhir yang diketahui.</string>
|
||||||
<string name="widget_config_screen_title">Konfigurasi Widget</string>
|
<string name="widget_config_screen_title">Konfigurasi Widget</string>
|
||||||
<string name="widget_configuration_title">Pilih Perangkat</string>
|
<string name="widget_configuration_title">Pilih Perangkat</string>
|
||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d file siap (%2$s)</item>
|
<item quantity="other">%1$d file siap (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Hapus</string>
|
<string name="debug_debuglog_screen_discard_action">Hapus</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Simpan</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d log debug (%2$s)</item>
|
<item quantity="other">%1$d log debug (%2$s)</item>
|
||||||
|
|||||||
@@ -297,13 +297,13 @@
|
|||||||
<string name="general_keep_editing_action">Halda áfram að breyta</string>
|
<string name="general_keep_editing_action">Halda áfram að breyta</string>
|
||||||
<!-- Short recording warning -->
|
<!-- Short recording warning -->
|
||||||
<string name="debug_debuglog_short_recording_title">Upptökun of stutt</string>
|
<string name="debug_debuglog_short_recording_title">Upptökun of stutt</string>
|
||||||
<string name="debug_debuglog_short_recording_message">Kembingarskrá þá að ná villunni þegar hana geisar. Haltu áfram með upptöku, endurskapa vandamalæ, og stoppau upptökuna.</string>
|
<string name="debug_debuglog_short_recording_message">Villuloki þarf að taka upp vandamálið meðan það gerist. Haltu áfram að taka upp, endurskapa vandamálið og stöðvaðu síðan upptökuna.</string>
|
||||||
<string name="debug_debuglog_short_recording_continue">Halda áfram upptöku</string>
|
<string name="debug_debuglog_short_recording_continue">Halda áfram upptöku</string>
|
||||||
<string name="debug_debuglog_short_recording_stop">Stoppa úvis</string>
|
<string name="debug_debuglog_short_recording_stop">Stoppa úvis</string>
|
||||||
<!-- Recorder screen -->
|
<!-- Recorder screen -->
|
||||||
<string name="debug_debuglog_screen_title">Kembingarskrá</string>
|
<string name="debug_debuglog_screen_title">Kembingarskrá</string>
|
||||||
<string name="debug_debuglog_screen_subtitle">Flytja út kembingarupplýsingard til bilanagreininga</string>
|
<string name="debug_debuglog_screen_subtitle">Flytja út villuleitarupplýsingar til úrræðaleitar</string>
|
||||||
<string name="debug_debuglog_screen_sensitive_title">Vikvæmar upplýsingarr</string>
|
<string name="debug_debuglog_screen_sensitive_title">Viðkvæmar upplýsingar</string>
|
||||||
<string name="debug_debuglog_screen_session_path_label">Slóð lotunnar</string>
|
<string name="debug_debuglog_screen_session_path_label">Slóð lotunnar</string>
|
||||||
<string name="debug_debuglog_screen_log_files_label">Skráarskrár</string>
|
<string name="debug_debuglog_screen_log_files_label">Skráarskrár</string>
|
||||||
<plurals name="debug_debuglog_screen_log_files_ready">
|
<plurals name="debug_debuglog_screen_log_files_ready">
|
||||||
@@ -311,40 +311,39 @@
|
|||||||
<item quantity="other">%1$d skráar tilbúnar (%2$s)</item>
|
<item quantity="other">%1$d skráar tilbúnar (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Eyða</string>
|
<string name="debug_debuglog_screen_discard_action">Eyða</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Geyma</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d kembingarskrá (%2$s)</item>
|
<item quantity="one">%1$d kembingarskrá (%2$s)</item>
|
||||||
<item quantity="other">%1$d kembingarskrár (%2$s)</item>
|
<item quantity="other">%1$d kembingarskrár (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="support_debuglog_clear_action">Hreinsa geymdar kembingarskrár</string>
|
<string name="support_debuglog_clear_action">Hreinsa geymdar kembingarskrár</string>
|
||||||
<string name="support_debuglog_sessions_label">Kembingarltur</string>
|
<string name="support_debuglog_sessions_label">Villuleitarlotur</string>
|
||||||
<string name="support_debuglog_sessions_desc">Sjá um skráðar kembingarlotu-skrár</string>
|
<string name="support_debuglog_sessions_desc">Sjá um skráðar kembingarlotu-skrár</string>
|
||||||
<string name="support_debuglog_sessions_empty">Engar kembingarltur</string>
|
<string name="support_debuglog_sessions_empty">Engar villuleitarlotur</string>
|
||||||
<string name="support_debuglog_session_recording">Tekur upp…</string>
|
<string name="support_debuglog_session_recording">Tekur upp…</string>
|
||||||
<string name="support_debuglog_session_compressing">Er að þjitta…</string>
|
<string name="support_debuglog_session_compressing">Þjappað saman…</string>
|
||||||
<string name="support_debuglog_session_delete_title">Eyða lotu?</string>
|
<string name="support_debuglog_session_delete_title">Eyða lotu?</string>
|
||||||
<string name="support_debuglog_session_delete_message">Þessari kembingarlotu verður varðlegt eyðt.</string>
|
<string name="support_debuglog_session_delete_message">Þessari villuleitarlotu verður eytt til frambúðar.</string>
|
||||||
<string name="support_debuglog_clear_all_message">Allar kembingarlotur verða varðlegt eyðar.</string>
|
<string name="support_debuglog_clear_all_message">Öllum villuleitarlotum verður eytt til frambúðar.</string>
|
||||||
<string name="support_debuglog_failed_empty_log">Mistókst: skráarskrá er tóm</string>
|
<string name="support_debuglog_failed_empty_log">Mistókst: skráarskrá er tóm</string>
|
||||||
<string name="support_debuglog_failed_missing_log">Mistókst: skráarskrá vantar</string>
|
<string name="support_debuglog_failed_missing_log">Mistókst: skráarskrá vantar</string>
|
||||||
<string name="support_debuglog_failed_corrupt_zip">Mistókst: zip-skrá er skemmd</string>
|
<string name="support_debuglog_failed_corrupt_zip">Mistókst: zip-skrá er skemmd</string>
|
||||||
<string name="support_debuglog_failed_zip_failed">Mistókst: þjittaðning mistókst</string>
|
<string name="support_debuglog_failed_zip_failed">Mistókst: þjöppun mistókst</string>
|
||||||
<!-- Contact form -->
|
<!-- Contact form -->
|
||||||
<string name="support_contact_label">Hafa samband við þróunarmann</string>
|
<string name="support_contact_label">Hafa samband við þróunarmann</string>
|
||||||
<string name="support_contact_desc">Fylltu út eyðublað til að senda þróunarmanni tölvupóst.</string>
|
<string name="support_contact_desc">Fylltu út eyðublað til að senda þróunarmanni tölvupóst.</string>
|
||||||
<string name="support_contact_welcome">Ég les hvert skilaboð sjálfur og geri mitt besta til að svara, en þegar ég vinn á þessu einn kann það taka smá tíma. Pakk þér fyrir þólinmæðina.</string>
|
<string name="support_contact_welcome">Ég les hvert einasta skilaboð sjálfur og geri mitt besta til að svara, en þar sem ég vinn að þessu einn, getur það tekið smá tíma. Takk fyrir þolinmæðina.</string>
|
||||||
<string name="support_contact_footer">Skilaboðin þín verða send með tölvupósti. Tæki- og uppsetningarupplýsingarr eru héfðar sjálfkrafa. Hægt er að hæfa skýumyðnd eða mófundarmynd við tölvupóstinn. Sumir hlutar tölvupóstsins verða á ensku svo að þróunarmaðurinn geti að skilja hann.</string>
|
<string name="support_contact_footer">Skilaboðin þín verða send með tölvupósti. Upplýsingar um tæki og uppsetningu eru hengdar við sjálfkrafa. Þú getur hengt við skjámyndir eða myndband í tölvupóstinn. Sumir hlutar tölvupóstsins verða á ensku svo þróunaraðilinn geti auðveldlega skilið þau.</string>
|
||||||
<string name="support_contact_category_label">Flokkur</string>
|
<string name="support_contact_category_label">Flokkur</string>
|
||||||
<string name="support_contact_category_question_label">Spurning</string>
|
<string name="support_contact_category_question_label">Spurning</string>
|
||||||
<string name="support_contact_category_feature_label">Bægi um eiginleika</string>
|
<string name="support_contact_category_feature_label">Beiðni um eiginleika</string>
|
||||||
<string name="support_contact_category_bug_label">Villutilkyðning</string>
|
<string name="support_contact_category_bug_label">Villutilkynning</string>
|
||||||
<string name="support_contact_description_label">Lýsing</string>
|
<string name="support_contact_description_label">Lýsing</string>
|
||||||
<string name="support_contact_description_question_hint">Settu spurninguna þína ítarlega niður. Vinsamlegast verðu áhertni.</string>
|
<string name="support_contact_description_question_hint">Lýstu spurningunni þinni í smáatriðum. Vinsamlegast vertu nákvæmur.</string>
|
||||||
<string name="support_contact_description_feature_hint">Lýstu þver eiginleikann sem þú vilt sjá. Vinsamlegast verðu áhertni.</string>
|
<string name="support_contact_description_feature_hint">Lýstu þeim eiginleika sem þú vilt sjá. Vinsamlegast vertu nákvæmur.</string>
|
||||||
<string name="support_contact_description_bug_hint">Lýstu þver þvert sem gerst og hvernig hægt er að endurskapa vandamalæ. Vinsamlegast verðu áhertni.</string>
|
<string name="support_contact_description_bug_hint">Lýstu því sem gerðist og hvernig á að endurskapa vandamálið. Vinsamlegast vertu nákvæmur.</string>
|
||||||
<string name="support_contact_expected_label">Vænt héguð</string>
|
<string name="support_contact_expected_label">Vænt hegðun</string>
|
||||||
<string name="support_contact_expected_hint">Lýstu þver þver sem þú bjóst við að geriðist.</string>
|
<string name="support_contact_expected_hint">Lýstu því sem þú bjóst við að gerðist.</string>
|
||||||
<plurals name="support_contact_word_count">
|
<plurals name="support_contact_word_count">
|
||||||
<item quantity="one">%1$d / %2$d orð</item>
|
<item quantity="one">%1$d / %2$d orð</item>
|
||||||
<item quantity="other">%1$d / %2$d orð</item>
|
<item quantity="other">%1$d / %2$d orð</item>
|
||||||
@@ -352,11 +351,11 @@
|
|||||||
<string name="support_contact_debuglog_label">Villuleitarskrá</string>
|
<string name="support_contact_debuglog_label">Villuleitarskrá</string>
|
||||||
<string name="support_contact_debuglog_picker_hint">Hæfa fyrirliggjandi kembingarskrá, eða taka upp nýja.</string>
|
<string name="support_contact_debuglog_picker_hint">Hæfa fyrirliggjandi kembingarskrá, eða taka upp nýja.</string>
|
||||||
<string name="support_contact_debuglog_picker_empty">Engar kembingarskrár fundust. Taktu upp eina fyrst.</string>
|
<string name="support_contact_debuglog_picker_empty">Engar kembingarskrár fundust. Taktu upp eina fyrst.</string>
|
||||||
<string name="support_contact_debuglog_zip_error">Tókst ekki að þjitta kembingarskrá</string>
|
<string name="support_contact_debuglog_zip_error">Mistókst að þjappa saman villuloka</string>
|
||||||
<string name="support_contact_send_action">Opna tölvupóstforrit</string>
|
<string name="support_contact_send_action">Opna tölvupóstforrit</string>
|
||||||
<string name="support_contact_no_email_app">Ekkert tölvupóstforrit fundiðst á þessum tæki.</string>
|
<string name="support_contact_no_email_app">Ekkert tölvupóstforrit fundiðst á þessum tæki.</string>
|
||||||
<string name="support_contact_debuglog_delete_title">Eyða kembingarskrá?</string>
|
<string name="support_contact_debuglog_delete_title">Eyða kembingarskrá?</string>
|
||||||
<string name="support_contact_debuglog_delete_message">Þessari kembingarskrá verður varðlegt eyðt.</string>
|
<string name="support_contact_debuglog_delete_message">Þessum villuloka verður eytt til frambúðar.</string>
|
||||||
<!-- Post-share confirmation -->
|
<!-- Post-share confirmation -->
|
||||||
<string name="support_debuglog_sent_title">Fannst skráin?</string>
|
<string name="support_debuglog_sent_title">Fannst skráin?</string>
|
||||||
<string name="support_debuglog_sent_message">Var villuleitarskráin send? Skráin verður eytt.</string>
|
<string name="support_debuglog_sent_message">Var villuleitarskráin send? Skráin verður eytt.</string>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d file pronti (%2$s)</item>
|
<item quantity="other">%1$d file pronti (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Elimina</string>
|
<string name="debug_debuglog_screen_discard_action">Elimina</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Conserva</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d log di debug (%2$s)</item>
|
<item quantity="one">%1$d log di debug (%2$s)</item>
|
||||||
|
|||||||
@@ -315,7 +315,6 @@
|
|||||||
<item quantity="other">%1$d קבצים מוכנים (%2$s)</item>
|
<item quantity="other">%1$d קבצים מוכנים (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">מחיקה</string>
|
<string name="debug_debuglog_screen_discard_action">מחיקה</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">שמור</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">יומן ניפוי באגים %1$d (%2$s)</item>
|
<item quantity="one">יומן ניפוי באגים %1$d (%2$s)</item>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d つのファイルが準備完了 (%2$s)</item>
|
<item quantity="other">%1$d つのファイルが準備完了 (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">削除</string>
|
<string name="debug_debuglog_screen_discard_action">削除</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">保持</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d件のデバッグログ (%2$s)</item>
|
<item quantity="other">%1$d件のデバッグログ (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d ფაილი მზადაა (%2$s)</item>
|
<item quantity="other">%1$d ფაილი მზადაა (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">წაშლა</string>
|
<string name="debug_debuglog_screen_discard_action">წაშლა</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">შენახვა</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d გამართვის ჟურნალი (%2$s)</item>
|
<item quantity="one">%1$d გამართვის ჟურნალი (%2$s)</item>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d ឯកសាររួចរាល់ (%2$s)</item>
|
<item quantity="other">%1$d ឯកសាររួចរាល់ (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">លុប</string>
|
<string name="debug_debuglog_screen_discard_action">លុប</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">រក្សាទុក</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d កំណត់ហេតុបំបាត់កំហុស (%2$s)</item>
|
<item quantity="other">%1$d កំណត់ហេតុបំបាត់កំហុស (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d pel amade (%2$s)</item>
|
<item quantity="other">%1$d pel amade (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Jêbirin</string>
|
<string name="debug_debuglog_screen_discard_action">Jêbirin</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Bihêle</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d tomara çareserkirinê (%2$s)</item>
|
<item quantity="one">%1$d tomara çareserkirinê (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d ಫೈಲ್ಗಳು ಸಿದ್ಧವಾಗಿವೆ (%2$s)</item>
|
<item quantity="other">%1$d ಫೈಲ್ಗಳು ಸಿದ್ಧವಾಗಿವೆ (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">ಅಳಿಸಿ</string>
|
<string name="debug_debuglog_screen_discard_action">ಅಳಿಸಿ</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">ಇರಿಸಿ</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d ಡೀಬಗ್ ಲಾಗ್ (%2$s)</item>
|
<item quantity="one">%1$d ಡೀಬಗ್ ಲಾಗ್ (%2$s)</item>
|
||||||
|
|||||||
@@ -249,8 +249,7 @@
|
|||||||
<string name="profiles_save_action">프로필 저장</string>
|
<string name="profiles_save_action">프로필 저장</string>
|
||||||
<string name="profiles_drag_handle_description">드래그하여 순서 변경</string>
|
<string name="profiles_drag_handle_description">드래그하여 순서 변경</string>
|
||||||
<string name="profiles_delete_title">프로필 삭제</string>
|
<string name="profiles_delete_title">프로필 삭제</string>
|
||||||
<string name="profiles_delete_message">프로필을 삭제하시겠습니까?
|
<string name="profiles_delete_message">프로필을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.</string>
|
||||||
이 작업은 취소할 수 없습니다.</string>
|
|
||||||
<string name="profiles_delete_action">삭제</string>
|
<string name="profiles_delete_action">삭제</string>
|
||||||
<string name="profiles_basic_info_title">기기 정보</string>
|
<string name="profiles_basic_info_title">기기 정보</string>
|
||||||
<string name="profiles_basic_info_description">기기의 이름, 모델 및 선택적 블루투스 페어링을 설정하세요.</string>
|
<string name="profiles_basic_info_description">기기의 이름, 모델 및 선택적 블루투스 페어링을 설정하세요.</string>
|
||||||
@@ -268,8 +267,7 @@
|
|||||||
<string name="profiles_key_status_not_set">설정되지 않음</string>
|
<string name="profiles_key_status_not_set">설정되지 않음</string>
|
||||||
<string name="profiles_signal_quality_min_label">끄기</string>
|
<string name="profiles_signal_quality_min_label">끄기</string>
|
||||||
<string name="profiles_signal_quality_max_label">엄격</string>
|
<string name="profiles_signal_quality_max_label">엄격</string>
|
||||||
<string name="profiles_priority_hint">프로필 순서는 우선순위를 결정합니다. 프로필을 드래그하여 순서를 변경하세요.
|
<string name="profiles_priority_hint">프로필 순서는 우선순위를 결정합니다. 프로필을 드래그하여 순서를 변경하세요. 리스트의 위에 있을수록 여러 장치가 일치할때 우선순위가 높습니다.</string>
|
||||||
리스트의 위에 있을수록 여러 장치가 일치할때 우선순위가 높습니다.</string>
|
|
||||||
<!-- Theme Mode -->
|
<!-- Theme Mode -->
|
||||||
<string name="ui_theme_mode_label">테마 모드</string>
|
<string name="ui_theme_mode_label">테마 모드</string>
|
||||||
<string name="ui_theme_mode_system_label">기기 테마 사용</string>
|
<string name="ui_theme_mode_system_label">기기 테마 사용</string>
|
||||||
@@ -311,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d개 파일 준비됨 (%2$s)</item>
|
<item quantity="other">%1$d개 파일 준비됨 (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">삭제</string>
|
<string name="debug_debuglog_screen_discard_action">삭제</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">유지</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d개 디버그 로그 (%2$s)</item>
|
<item quantity="other">%1$d개 디버그 로그 (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d файл даяр (%2$s)</item>
|
<item quantity="other">%1$d файл даяр (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Жойуу</string>
|
<string name="debug_debuglog_screen_discard_action">Жойуу</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Сактоо</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d мүчүлүштүк жазылмасы (%2$s)</item>
|
<item quantity="one">%1$d мүчүлүштүк жазылмасы (%2$s)</item>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d ໄຟລ່ພ້ອມ (%2$s)</item>
|
<item quantity="other">%1$d ໄຟລ່ພ້ອມ (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">ລຶບ</string>
|
<string name="debug_debuglog_screen_discard_action">ລຶບ</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">ເກັບຮັກສາ</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d ບັນທຶກດີບັກ (%2$s)</item>
|
<item quantity="other">%1$d ບັນທຶກດີບັກ (%2$s)</item>
|
||||||
|
|||||||
@@ -315,7 +315,6 @@
|
|||||||
<item quantity="other">%1$d failų paruošta (%2$s)</item>
|
<item quantity="other">%1$d failų paruošta (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Trinti</string>
|
<string name="debug_debuglog_screen_discard_action">Trinti</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Palikti</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d derinimo žurnalas (%2$s)</item>
|
<item quantity="one">%1$d derinimo žurnalas (%2$s)</item>
|
||||||
|
|||||||
@@ -313,7 +313,6 @@
|
|||||||
<item quantity="other">%1$d faili gatavi (%2$s)</item>
|
<item quantity="other">%1$d faili gatavi (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Dzēst</string>
|
<string name="debug_debuglog_screen_discard_action">Dzēst</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Paturēt</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="zero">%1$d atkļūdošanas žurnālu (%2$s)</item>
|
<item quantity="zero">%1$d atkļūdošanas žurnālu (%2$s)</item>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Дали логот за дебагирање е успешно испратен? Логот ќе биде избришан.</string>
|
<string name="support_debuglog_sent_message">Дали логот за дебагирање е успешно испратен? Логот ќе биде избришан.</string>
|
||||||
<string name="support_contact_sent_title">Е-поштата е испратена?</string>
|
<string name="support_contact_sent_title">Е-поштата е испратена?</string>
|
||||||
<string name="support_contact_sent_message">Дали е-поштата е успешно испратена? Приложениот лог за дебагирање ќе биде избришан.</string>
|
<string name="support_contact_sent_message">Дали е-поштата е успешно испратена? Приложениот лог за дебагирање ќе биде избришан.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Задржи</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">ഡീബഗ് ലോഗ് വിജയകരമായി അയച്ചോ? ലോഗ് ഇല്ലാതാക്കപ്പെടും.</string>
|
<string name="support_debuglog_sent_message">ഡീബഗ് ലോഗ് വിജയകരമായി അയച്ചോ? ലോഗ് ഇല്ലാതാക്കപ്പെടും.</string>
|
||||||
<string name="support_contact_sent_title">ഇമെയിൽ അയച്ചോ?</string>
|
<string name="support_contact_sent_title">ഇമെയിൽ അയച്ചോ?</string>
|
||||||
<string name="support_contact_sent_message">ഇമെയിൽ വിജയകരമായി അയച്ചോ? അറ്റാച്ച് ചെയ്ത ഡീബഗ് ലോഗ് ഇല്ലാതാക്കപ്പെടും.</string>
|
<string name="support_contact_sent_message">ഇമെയിൽ വിജയകരമായി അയച്ചോ? അറ്റാച്ച് ചെയ്ത ഡീബഗ് ലോഗ് ഇല്ലാതാക്കപ്പെടും.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">സൂക്ഷിക്കുക</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Дебаг лог амжилттай илгээгдсэн үү? Лог устгагдах болно.</string>
|
<string name="support_debuglog_sent_message">Дебаг лог амжилттай илгээгдсэн үү? Лог устгагдах болно.</string>
|
||||||
<string name="support_contact_sent_title">Имэйл илгээсэн үү?</string>
|
<string name="support_contact_sent_title">Имэйл илгээсэн үү?</string>
|
||||||
<string name="support_contact_sent_message">Имэйл амжилттай илгээгдсэн үү? Хавсаргасан дебаг лог устгагдах болно.</string>
|
<string name="support_contact_sent_message">Имэйл амжилттай илгээгдсэн үү? Хавсаргасан дебаг лог устгагдах болно.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Хадгалах</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">डीबग लॉग यशस्वीरित्या पाठवला का? लॉग हटवला जाईल.</string>
|
<string name="support_debuglog_sent_message">डीबग लॉग यशस्वीरित्या पाठवला का? लॉग हटवला जाईल.</string>
|
||||||
<string name="support_contact_sent_title">ईमेल पाठवला?</string>
|
<string name="support_contact_sent_title">ईमेल पाठवला?</string>
|
||||||
<string name="support_contact_sent_message">ईमेल यशस्वीरित्या पाठवला का? संलग्न डीबग लॉग हटवला जाईल.</string>
|
<string name="support_contact_sent_message">ईमेल यशस्वीरित्या पाठवला का? संलग्न डीबग लॉग हटवला जाईल.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">ठेवा</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -357,5 +357,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Adakah log debug berjaya dihantar? Log akan dipadamkan.</string>
|
<string name="support_debuglog_sent_message">Adakah log debug berjaya dihantar? Log akan dipadamkan.</string>
|
||||||
<string name="support_contact_sent_title">E-mel dihantar?</string>
|
<string name="support_contact_sent_title">E-mel dihantar?</string>
|
||||||
<string name="support_contact_sent_message">Adakah e-mel berjaya dihantar? Log debug yang dilampirkan akan dipadamkan.</string>
|
<string name="support_contact_sent_message">Adakah e-mel berjaya dihantar? Log debug yang dilampirkan akan dipadamkan.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Simpan</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -357,5 +357,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Debug log ကို အောင်မြင်စွာ ပို့ပြီးပြီလား? Log ကို ဖျက်ပစ်မည်။</string>
|
<string name="support_debuglog_sent_message">Debug log ကို အောင်မြင်စွာ ပို့ပြီးပြီလား? Log ကို ဖျက်ပစ်မည်။</string>
|
||||||
<string name="support_contact_sent_title">အီးမေးလ် ပို့ပြီးပြီလား?</string>
|
<string name="support_contact_sent_title">အီးမေးလ် ပို့ပြီးပြီလား?</string>
|
||||||
<string name="support_contact_sent_message">အီးမေးလ်ကို အောင်မြင်စွာ ပို့ပြီးပြီလား? ပူးတွဲပါသော debug log ကို ဖျက်ပစ်မည်။</string>
|
<string name="support_contact_sent_message">အီးမေးလ်ကို အောင်မြင်စွာ ပို့ပြီးပြီလား? ပူးတွဲပါသော debug log ကို ဖျက်ပစ်မည်။</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">သိမ်းထားရန်</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Ble feilsøkingsloggen sendt? Loggen vil bli slettet.</string>
|
<string name="support_debuglog_sent_message">Ble feilsøkingsloggen sendt? Loggen vil bli slettet.</string>
|
||||||
<string name="support_contact_sent_title">E-post sendt?</string>
|
<string name="support_contact_sent_title">E-post sendt?</string>
|
||||||
<string name="support_contact_sent_message">Ble e-posten sendt? Den vedlagte feilsøkingsloggen vil bli slettet.</string>
|
<string name="support_contact_sent_message">Ble e-posten sendt? Den vedlagte feilsøkingsloggen vil bli slettet.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Behold</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">डिबग लग सफलतापूर्वक पठाइयो? लग मेटिनेछ।</string>
|
<string name="support_debuglog_sent_message">डिबग लग सफलतापूर्वक पठाइयो? लग मेटिनेछ।</string>
|
||||||
<string name="support_contact_sent_title">इमेल पठाइयो?</string>
|
<string name="support_contact_sent_title">इमेल पठाइयो?</string>
|
||||||
<string name="support_contact_sent_message">इमेल सफलतापूर्वक पठाइयो? संलग्न डिबग लग मेटिनेछ।</string>
|
<string name="support_contact_sent_message">इमेल सफलतापूर्वक पठाइयो? संलग्न डिबग लग मेटिनेछ।</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">राख्नुहोस्</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -361,5 +361,4 @@
|
|||||||
<string name="support_debuglog_sent_message">Is het foutopsporingslogboek succesvol verzonden? Het logboek wordt verwijderd.</string>
|
<string name="support_debuglog_sent_message">Is het foutopsporingslogboek succesvol verzonden? Het logboek wordt verwijderd.</string>
|
||||||
<string name="support_contact_sent_title">E-mail verzonden?</string>
|
<string name="support_contact_sent_title">E-mail verzonden?</string>
|
||||||
<string name="support_contact_sent_message">Is de e-mail succesvol verzonden? Het bijgevoegde foutopsporingslogboek wordt verwijderd.</string>
|
<string name="support_contact_sent_message">Is de e-mail succesvol verzonden? Het bijgevoegde foutopsporingslogboek wordt verwijderd.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Bewaren</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -371,5 +371,4 @@ K4r0lSz;</string>
|
|||||||
<string name="support_debuglog_sent_message">Czy dziennik debugowania został wysłany pomyślnie? Dziennik zostanie usunięty.</string>
|
<string name="support_debuglog_sent_message">Czy dziennik debugowania został wysłany pomyślnie? Dziennik zostanie usunięty.</string>
|
||||||
<string name="support_contact_sent_title">E-mail wysłany?</string>
|
<string name="support_contact_sent_title">E-mail wysłany?</string>
|
||||||
<string name="support_contact_sent_message">Czy e-mail został wysłany pomyślnie? Załączony dziennik debugowania zostanie usunięty.</string>
|
<string name="support_contact_sent_message">Czy e-mail został wysłany pomyślnie? Załączony dziennik debugowania zostanie usunięty.</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Zachowaj</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d arquivos prontos (%2$s)</item>
|
<item quantity="other">%1$d arquivos prontos (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Apagar</string>
|
<string name="debug_debuglog_screen_discard_action">Apagar</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Manter</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d log de depuração (%2$s)</item>
|
<item quantity="one">%1$d log de depuração (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d arquivos prontos (%2$s)</item>
|
<item quantity="other">%1$d arquivos prontos (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Apagar</string>
|
<string name="debug_debuglog_screen_discard_action">Apagar</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Manter</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d registo de depuração (%2$s)</item>
|
<item quantity="one">%1$d registo de depuração (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d datotecas prontas (%2$s)</item>
|
<item quantity="other">%1$d datotecas prontas (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Stritgar</string>
|
<string name="debug_debuglog_screen_discard_action">Stritgar</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Mantegnair</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d protocol da debug (%2$s)</item>
|
<item quantity="one">%1$d protocol da debug (%2$s)</item>
|
||||||
|
|||||||
@@ -313,7 +313,6 @@
|
|||||||
<item quantity="other">%1$d fișiere gata (%2$s)</item>
|
<item quantity="other">%1$d fișiere gata (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Șterge</string>
|
<string name="debug_debuglog_screen_discard_action">Șterge</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Păstrați</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d jurnal de depanare (%2$s)</item>
|
<item quantity="one">%1$d jurnal de depanare (%2$s)</item>
|
||||||
|
|||||||
@@ -316,7 +316,6 @@ AL_Cool_T</string>
|
|||||||
<item quantity="other">Файлов готово: %1$d (%2$s)</item>
|
<item quantity="other">Файлов готово: %1$d (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Удалить</string>
|
<string name="debug_debuglog_screen_discard_action">Удалить</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Сохранить</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d отладочный журнал (%2$s)</item>
|
<item quantity="one">%1$d отладочный журнал (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d archivos prontos (%2$s)</item>
|
<item quantity="other">%1$d archivos prontos (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Iscancellare</string>
|
<string name="debug_debuglog_screen_discard_action">Iscancellare</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Mantene</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d log de debug (%2$s)</item>
|
<item quantity="one">%1$d log de debug (%2$s)</item>
|
||||||
|
|||||||
@@ -129,7 +129,7 @@
|
|||||||
<string name="widget_configuration_title">උපාංගය තෝරන්න</string>
|
<string name="widget_configuration_title">උපාංගය තෝරන්න</string>
|
||||||
<string name="widget_configuration_description">මෙම විජට් එක කුමන උපාංග පැතිකඩ පෙන්විය යුතුද යන්න තෝරන්න.</string>
|
<string name="widget_configuration_description">මෙම විජට් එක කුමන උපාංග පැතිකඩ පෙන්විය යුතුද යන්න තෝරන්න.</string>
|
||||||
<string name="widget_no_data_label">දත්ත නොමැත</string>
|
<string name="widget_no_data_label">දත්ත නොමැත</string>
|
||||||
<string name="widget_error_loading_label">විජට් පළ්ක් ගැනීම෪ විපත්තියක්</string>
|
<string name="widget_error_loading_label">විජෙට් පූරණය කිරීමේ දෝෂයකි</string>
|
||||||
<string name="widget_config_appearance_label">පෙනුම</string>
|
<string name="widget_config_appearance_label">පෙනුම</string>
|
||||||
<string name="widget_config_preset_label">පෙර සැකසුම්</string>
|
<string name="widget_config_preset_label">පෙර සැකසුම්</string>
|
||||||
<string name="widget_config_background_color_label">පසුබිම් වර්ණ</string>
|
<string name="widget_config_background_color_label">පසුබිම් වර්ණ</string>
|
||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d ගොනු සූදානම් (%2$s)</item>
|
<item quantity="other">%1$d ගොනු සූදානම් (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">මකන්න</string>
|
<string name="debug_debuglog_screen_discard_action">මකන්න</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">තබා ගන්න</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d දෝෂහරණ ලොගය (%2$s)</item>
|
<item quantity="one">%1$d දෝෂහරණ ලොගය (%2$s)</item>
|
||||||
@@ -331,30 +330,30 @@
|
|||||||
<string name="support_debuglog_failed_corrupt_zip">අසහය වී: zip ගොනුව විනාශ වී</string>
|
<string name="support_debuglog_failed_corrupt_zip">අසහය වී: zip ගොනුව විනාශ වී</string>
|
||||||
<string name="support_debuglog_failed_zip_failed">අසහය වී: සංකලනය අසහය වී</string>
|
<string name="support_debuglog_failed_zip_failed">අසහය වී: සංකලනය අසහය වී</string>
|
||||||
<!-- Contact form -->
|
<!-- Contact form -->
|
||||||
<string name="support_contact_label">සංවර්ධකයා සමග හය්ක්ළ ගන්න</string>
|
<string name="support_contact_label">සංවර්ධකයා අමතන්න</string>
|
||||||
<string name="support_contact_desc">සංවර්ධකයාට ඉකිමෙල් දෙනුම් යළ්ලීමට ප්රශ්නාවලියක් පිරළන්න.</string>
|
<string name="support_contact_desc">සංවර්ධකයාට ඊමේල් යැවීමට පෝරමයක් පුරවන්න.</string>
|
||||||
<string name="support_contact_welcome">මම හට හට් ගිණුම් එකක්මක් බවට ප්රතික්ෂේප කරන අතර, මම එකක්ම් ගිණුම් කරනබින් පිලිතුරුයක් ගත හැක. ඉවත් එකක්මක් අවෛ එය්ක කරනබින් ඉවත් ගත හැකිය.</string>
|
<string name="support_contact_welcome">මම සෑම පණිවිඩයක්ම තනිව කියවා හැකි උපරිමයෙන් පිළිතුරු දීමට උත්සාහ කරමි, නමුත් මෙය තනිවම කරන නිසා, ටිකක් කාලය ගත විය හැකිය. ඔබේ ඉවසීමට ස්තූතියි.</string>
|
||||||
<string name="support_contact_footer">ඔබ෪ය සදහන ඉකිමෙල් යන්නේ ඇති යළ්ලනු ලැබේ. උපකරණ සහ සූදානම් හය ස්වයංක්රීයව ගල කරයි. ඉකිමෙල්යට ස්ක්රීන්ෂොට් හො විඩියොයක් සංලග් කර ගත හැක. ඉකිමෙල්ය෪් කලක් කෝටස් ඉංග්රීසි යයින් විය හෙත් සංවර්ධකයාට සහලසින් ඇතික් ගත හැක.</string>
|
<string name="support_contact_footer">ඔබේ පණිවිඩය ඊමේල් හරහා යවනු ලැබේ. උපාංග සහ සැකසීම් තොරතුරු ස්වයංක්රීයව අමුණා ඇත. ඔබට ඊමේල් වලට තිරදර්ශන හෝ වීඩියෝ අමුණා ගත හැක. ඊමේල් හි සමහර කොටස් ඉංග්රීසියෙන් ලියා ඇති අතර, සංවර්ධකයාට පහසුවෙන් තේරුම් ගත හැකිය.</string>
|
||||||
<string name="support_contact_category_label">කත්තාව</string>
|
<string name="support_contact_category_label">කත්තාව</string>
|
||||||
<string name="support_contact_category_question_label">ප්රශ්නය</string>
|
<string name="support_contact_category_question_label">ප්රශ්නය</string>
|
||||||
<string name="support_contact_category_feature_label">ළන් ඓදිරීමේ</string>
|
<string name="support_contact_category_feature_label">ලක්ෂණ ඉල්ලීම</string>
|
||||||
<string name="support_contact_category_bug_label">දෝෂ වාර්තාව</string>
|
<string name="support_contact_category_bug_label">දෝෂ වාර්තාව</string>
|
||||||
<string name="support_contact_description_label">විවරණය</string>
|
<string name="support_contact_description_label">විවරණය</string>
|
||||||
<string name="support_contact_description_question_hint">ඔබ෪ය ප්රශ්නය විස්තරව විවරණ කරන්න. කරුණාකර වන්න.</string>
|
<string name="support_contact_description_question_hint">ඔබේ ප්රශ්නය විස්තරාත්මකව විස්තර කරන්න. කරුණාකර නිශ්චිත වන්න.</string>
|
||||||
<string name="support_contact_description_feature_hint">ඔබ දකින් ගන්නා ළන් විශේෂාංගය විවරණ කරන්න. කරුණාකර වන්න.</string>
|
<string name="support_contact_description_feature_hint">ඔබ දකිනු කැමති ලක්ෂණය විස්තර කරන්න. කරුණාකර නිශ්චිත වන්න.</string>
|
||||||
<string name="support_contact_description_bug_hint">සිදු වීයද සහ ගැටළුව නැවත ඇති කරන්නේ කෙසේද යන්න විවරණ කරන්න. කරුණාකර වන්න.</string>
|
<string name="support_contact_description_bug_hint">කුමක් සිදු වූයේ දැයි සහ ගැටළුව නැවත නිර්මාණය කරන්නේ කෙසේදැයි විස්තර කරන්න. කරුණාකර නිශ්චිත වන්න.</string>
|
||||||
<string name="support_contact_expected_label">පදු කරනු ලැබීයක්</string>
|
<string name="support_contact_expected_label">අපේක්ෂිත හැසිරීම</string>
|
||||||
<string name="support_contact_expected_hint">සිදු වේයේ කෙයි යන්න ඔබ යන්න ඇති කලා විවරණ කරන්න.</string>
|
<string name="support_contact_expected_hint">ඔබ සිදු වනු අපේක්ෂා කළ දෙය විස්තර කරන්න.</string>
|
||||||
<plurals name="support_contact_word_count">
|
<plurals name="support_contact_word_count">
|
||||||
<item quantity="one">%1$d / %2$d වට පදය</item>
|
<item quantity="one">%1$d / %2$d වට පදය</item>
|
||||||
<item quantity="other">%1$d / %2$d වට් පද</item>
|
<item quantity="other">%1$d / %2$d වට් පද</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="support_contact_debuglog_label">දෝෂහරණ ලොගය</string>
|
<string name="support_contact_debuglog_label">දෝෂහරණ ලොගය</string>
|
||||||
<string name="support_contact_debuglog_picker_hint">පළ්කාලිය දෝෂහරණ ලොගයක් සංලග් කරන්න, හො අලුත් කරනු ලදියක් රෙකර්ඩ් කරන්න.</string>
|
<string name="support_contact_debuglog_picker_hint">පවතින නිදොස් ලොගයක් අමුණන්න, නැතිනම් නව එකක් පටිගත කරන්න.</string>
|
||||||
<string name="support_contact_debuglog_picker_empty">දෝෂහරණ ලොග් හිසි නේ. පළ්වේන් එකක් රෙකර්ඩ් කරන්න.</string>
|
<string name="support_contact_debuglog_picker_empty">නිදොස් ලොග කිසිවක් හමු නොවිණි. පළමුව එකක් පටිගත කරන්න.</string>
|
||||||
<string name="support_contact_debuglog_zip_error">දෝෂහරණ ලොගය සංකලනය අසහය වී</string>
|
<string name="support_contact_debuglog_zip_error">දෝෂහරණ ලොගය සංකලනය අසහය වී</string>
|
||||||
<string name="support_contact_send_action">ඉකිමෙල් යෙදුම ඇහල්න්න</string>
|
<string name="support_contact_send_action">ඊමේල් යෙදුම විවෘත කරන්න</string>
|
||||||
<string name="support_contact_no_email_app">මෙම උපකරණයේ ඉකිමෙල් යෙදුමක් පළ්ක් නැත.</string>
|
<string name="support_contact_no_email_app">මෙම උපාංගයේ ඊමේල් යෙදුමක් හමු නොවිණි.</string>
|
||||||
<string name="support_contact_debuglog_delete_title">දෝෂහරණ ලොගය දුරු කරන්නද?</string>
|
<string name="support_contact_debuglog_delete_title">දෝෂහරණ ලොගය දුරු කරන්නද?</string>
|
||||||
<string name="support_contact_debuglog_delete_message">මෙම දෝෂහරණ ලොගය හෙළලා දුරු කරනු ලැබේ.</string>
|
<string name="support_contact_debuglog_delete_message">මෙම දෝෂහරණ ලොගය හෙළලා දුරු කරනු ලැබේ.</string>
|
||||||
<!-- Post-share confirmation -->
|
<!-- Post-share confirmation -->
|
||||||
|
|||||||
@@ -309,14 +309,19 @@
|
|||||||
<string name="debug_debuglog_screen_session_path_label">Cesta relácie</string>
|
<string name="debug_debuglog_screen_session_path_label">Cesta relácie</string>
|
||||||
<string name="debug_debuglog_screen_log_files_label">Log súbory</string>
|
<string name="debug_debuglog_screen_log_files_label">Log súbory</string>
|
||||||
<plurals name="debug_debuglog_screen_log_files_ready">
|
<plurals name="debug_debuglog_screen_log_files_ready">
|
||||||
<item quantity="one">%1$d súbor pripravený (%2$s)</item>
|
<item quantity="one">%1$d súbor je pripravený (%2$s)</item>
|
||||||
<item quantity="few">%1$d súbory pripravené (%2$s)</item>
|
<item quantity="few">%1$d súbory sú pripravené (%2$s)</item>
|
||||||
<item quantity="many">%1$d súboru pripravených (%2$s)</item>
|
<item quantity="many">%1$d súborov je pripravených (%2$s)</item>
|
||||||
<item quantity="other">%1$d súborov pripravených (%2$s)</item>
|
<item quantity="other">%1$d súborov je pripravených (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Vymazať</string>
|
<string name="debug_debuglog_screen_discard_action">Vymazať</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Ponechať</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
|
<plurals name="support_debuglog_folder_summary">
|
||||||
|
<item quantity="one">%1$d denník ladenia (%2$s)</item>
|
||||||
|
<item quantity="few">%1$d denníky ladenia (%2$s)</item>
|
||||||
|
<item quantity="many">%1$d denníkov ladenia (%2$s)</item>
|
||||||
|
<item quantity="other">%1$d denníkov ladenia (%2$s)</item>
|
||||||
|
</plurals>
|
||||||
<string name="support_debuglog_clear_action">Vymazať uložené ladíace záznamy</string>
|
<string name="support_debuglog_clear_action">Vymazať uložené ladíace záznamy</string>
|
||||||
<string name="support_debuglog_sessions_label">Ladíace relacie</string>
|
<string name="support_debuglog_sessions_label">Ladíace relacie</string>
|
||||||
<string name="support_debuglog_sessions_desc">Spravovať nahrané relacie ladíacich záznamov</string>
|
<string name="support_debuglog_sessions_desc">Spravovať nahrané relacie ladíacich záznamov</string>
|
||||||
@@ -348,7 +353,7 @@
|
|||||||
<plurals name="support_contact_word_count">
|
<plurals name="support_contact_word_count">
|
||||||
<item quantity="one">%1$d / %2$d slovo</item>
|
<item quantity="one">%1$d / %2$d slovo</item>
|
||||||
<item quantity="few">%1$d / %2$d slová</item>
|
<item quantity="few">%1$d / %2$d slová</item>
|
||||||
<item quantity="many">%1$d / %2$d slova</item>
|
<item quantity="many">%1$d / %2$d slov</item>
|
||||||
<item quantity="other">%1$d / %2$d slov</item>
|
<item quantity="other">%1$d / %2$d slov</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="support_contact_debuglog_label">Ladiaci log</string>
|
<string name="support_contact_debuglog_label">Ladiaci log</string>
|
||||||
|
|||||||
@@ -309,13 +309,12 @@
|
|||||||
<string name="debug_debuglog_screen_session_path_label">Pot seje</string>
|
<string name="debug_debuglog_screen_session_path_label">Pot seje</string>
|
||||||
<string name="debug_debuglog_screen_log_files_label">Dnevniške datoteke</string>
|
<string name="debug_debuglog_screen_log_files_label">Dnevniške datoteke</string>
|
||||||
<plurals name="debug_debuglog_screen_log_files_ready">
|
<plurals name="debug_debuglog_screen_log_files_ready">
|
||||||
<item quantity="one">Datoteka je pripravljena (%2$s).</item>
|
<item quantity="one">%1$d datoteka je pripravljena (%2$s)</item>
|
||||||
<item quantity="two">Datoteki sta pripravljeni (%2$s).</item>
|
<item quantity="two">%1$d datoteki sta pripravljeni (%2$s)</item>
|
||||||
<item quantity="few">%1$d datoteke so pripravljene (%2$s).</item>
|
<item quantity="few">%1$d datoteke so pripravljene (%2$s)</item>
|
||||||
<item quantity="other">%1$d datotek je pripravljenih (%2$s).</item>
|
<item quantity="other">%1$d datotek je pripravljenih (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Izbriši</string>
|
<string name="debug_debuglog_screen_discard_action">Izbriši</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Ohrani</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d dnevnik razhroščevanja (%2$s)</item>
|
<item quantity="one">%1$d dnevnik razhroščevanja (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d skedarë gati (%2$s)</item>
|
<item quantity="other">%1$d skedarë gati (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Fshije</string>
|
<string name="debug_debuglog_screen_discard_action">Fshije</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Mbaj</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d regjistër korrigjimi (%2$s)</item>
|
<item quantity="one">%1$d regjistër korrigjimi (%2$s)</item>
|
||||||
@@ -334,7 +333,7 @@
|
|||||||
<string name="support_contact_label">Kontakto zhvilluesin</string>
|
<string name="support_contact_label">Kontakto zhvilluesin</string>
|
||||||
<string name="support_contact_desc">Plotëso një formular për të dërguar zhvilluesit një email.</string>
|
<string name="support_contact_desc">Plotëso një formular për të dërguar zhvilluesit një email.</string>
|
||||||
<string name="support_contact_welcome">I lexoj çdo mesazh vetë dhe bëj çmos të përgjigjem, por meqë punoj vetëm në këtë, mund të duhet pak kohë. Faleminderit për durim.</string>
|
<string name="support_contact_welcome">I lexoj çdo mesazh vetë dhe bëj çmos të përgjigjem, por meqë punoj vetëm në këtë, mund të duhet pak kohë. Faleminderit për durim.</string>
|
||||||
<string name="support_contact_footer">Mesazhi juaj do të dërgohet me email. Informacioni i pajisjes dhe i konfigurimit bash këngjitet automatikisht. Mund të bash këngjitni pamje ekrani ose video në email. Disa pjesë të emailit do të jenë në anglisht që zhvilluesi ta kuptojë le htë.</string>
|
<string name="support_contact_footer">Mesazhi juaj do të dërgohet me email. Informacioni i pajisjes dhe i konfigurimit bashkëngjitet automatikisht. Mund të bashkëngjitni pamje ekrani ose një video në email. Disa pjesë të emailit do të jenë në anglisht, në mënyrë që zhvilluesi ta kuptojë lehtë.</string>
|
||||||
<string name="support_contact_category_label">Kategoria</string>
|
<string name="support_contact_category_label">Kategoria</string>
|
||||||
<string name="support_contact_category_question_label">Pyetje</string>
|
<string name="support_contact_category_question_label">Pyetje</string>
|
||||||
<string name="support_contact_category_feature_label">Kërkgesë për veçori</string>
|
<string name="support_contact_category_feature_label">Kërkgesë për veçori</string>
|
||||||
|
|||||||
@@ -313,7 +313,6 @@
|
|||||||
<item quantity="other">%1$d датотека су спремне (%2$s)</item>
|
<item quantity="other">%1$d датотека су спремне (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Обриши</string>
|
<string name="debug_debuglog_screen_discard_action">Обриши</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Задржи</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d дневник грешака (%2$s)</item>
|
<item quantity="one">%1$d дневник грешака (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d filer redo (%2$s)</item>
|
<item quantity="other">%1$d filer redo (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Radera</string>
|
<string name="debug_debuglog_screen_discard_action">Radera</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Behåll</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d felsökningslogg (%2$s)</item>
|
<item quantity="one">%1$d felsökningslogg (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">faili %1$d ziko tayari (%2$s)</item>
|
<item quantity="other">faili %1$d ziko tayari (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Futa</string>
|
<string name="debug_debuglog_screen_discard_action">Futa</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Hifadhi</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">kumbukumbu ya utatuzi %1$d (%2$s)</item>
|
<item quantity="one">kumbukumbu ya utatuzi %1$d (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d கோப்புகள் தயாராக உள்ளன (%2$s)</item>
|
<item quantity="other">%1$d கோப்புகள் தயாராக உள்ளன (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">நீக்கு</string>
|
<string name="debug_debuglog_screen_discard_action">நீக்கு</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">வைத்திரு</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d பிழைதிருத்தல் பதிவு (%2$s)</item>
|
<item quantity="one">%1$d பிழைதிருத்தல் பதிவு (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d ఫైల్లు సిద్ధంగా ఉన్నాయి (%2$s)</item>
|
<item quantity="other">%1$d ఫైల్లు సిద్ధంగా ఉన్నాయి (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">తొలగించండి</string>
|
<string name="debug_debuglog_screen_discard_action">తొలగించండి</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">ఉంచు</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d డీబగ్ లాగ్ (%2$s)</item>
|
<item quantity="one">%1$d డీబగ్ లాగ్ (%2$s)</item>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d ไฟล์พร้อม (%2$s)</item>
|
<item quantity="other">%1$d ไฟล์พร้อม (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">ลบ</string>
|
<string name="debug_debuglog_screen_discard_action">ลบ</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">เก็บไว้</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d ไฟล์ล็อกดีบัก (%2$s)</item>
|
<item quantity="other">%1$d ไฟล์ล็อกดีบัก (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d dosya hazır (%2$s)</item>
|
<item quantity="other">%1$d dosya hazır (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Sil</string>
|
<string name="debug_debuglog_screen_discard_action">Sil</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Tut</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d hata ayıklama kaydı (%2$s)</item>
|
<item quantity="one">%1$d hata ayıklama kaydı (%2$s)</item>
|
||||||
|
|||||||
@@ -315,7 +315,6 @@
|
|||||||
<item quantity="other">Файли %1$d готові (%2$s)</item>
|
<item quantity="other">Файли %1$d готові (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Видалити</string>
|
<string name="debug_debuglog_screen_discard_action">Видалити</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Зберегти</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d журнал налагодження (%2$s)</item>
|
<item quantity="one">%1$d журнал налагодження (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d فائلیں تیار ہیں (%2$s)</item>
|
<item quantity="other">%1$d فائلیں تیار ہیں (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">حذف کریں</string>
|
<string name="debug_debuglog_screen_discard_action">حذف کریں</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">رکھیں</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d ڈیبگ لاگ (%2$s)</item>
|
<item quantity="one">%1$d ڈیبگ لاگ (%2$s)</item>
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d fayl tayyor (%2$s)</item>
|
<item quantity="other">%1$d fayl tayyor (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">O\'chirish</string>
|
<string name="debug_debuglog_screen_discard_action">O\'chirish</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Saqlash</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d debug jurnali (%2$s)</item>
|
<item quantity="one">%1$d debug jurnali (%2$s)</item>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d tệp đã sẵn sàng (%2$s)</item>
|
<item quantity="other">%1$d tệp đã sẵn sàng (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Xoá</string>
|
<string name="debug_debuglog_screen_discard_action">Xoá</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Giữ lại</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d nhật ký gỡ lỗi (%2$s)</item>
|
<item quantity="other">%1$d nhật ký gỡ lỗi (%2$s)</item>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d 文件已准备好(%2$s)</item>
|
<item quantity="other">%1$d 文件已准备好(%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">删除</string>
|
<string name="debug_debuglog_screen_discard_action">删除</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">保留</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d 条调试日志(%2$s)</item>
|
<item quantity="other">%1$d 条调试日志(%2$s)</item>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">%1$d 個檔案已就緒(%2$s)</item>
|
<item quantity="other">%1$d 個檔案已就緒(%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">刪除</string>
|
<string name="debug_debuglog_screen_discard_action">刪除</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">保留</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d 個偵錯記錄(%2$s)</item>
|
<item quantity="other">%1$d 個偵錯記錄(%2$s)</item>
|
||||||
|
|||||||
@@ -309,7 +309,6 @@
|
|||||||
<item quantity="other">已準備好 %1$d 個檔案(%2$s)</item>
|
<item quantity="other">已準備好 %1$d 個檔案(%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">刪除</string>
|
<string name="debug_debuglog_screen_discard_action">刪除</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">保留</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="other">%1$d 次除錯日誌(%2$s)</item>
|
<item quantity="other">%1$d 次除錯日誌(%2$s)</item>
|
||||||
@@ -337,9 +336,9 @@
|
|||||||
<string name="support_contact_category_feature_label">功能請求</string>
|
<string name="support_contact_category_feature_label">功能請求</string>
|
||||||
<string name="support_contact_category_bug_label">錯誤回報</string>
|
<string name="support_contact_category_bug_label">錯誤回報</string>
|
||||||
<string name="support_contact_description_label">說明</string>
|
<string name="support_contact_description_label">說明</string>
|
||||||
<string name="support_contact_description_question_hint">詳細描述您的問題,請尽量具體說明。</string>
|
<string name="support_contact_description_question_hint">請詳細描述您的問題,請盡量具體說明。</string>
|
||||||
<string name="support_contact_description_feature_hint">描述您希望看到的功能,請尽量具體說明。</string>
|
<string name="support_contact_description_feature_hint">請描述您希望看到的功能,請盡量具體說明。</string>
|
||||||
<string name="support_contact_description_bug_hint">描述發生了什麼以及如何復現問題,請尽量具體說明。</string>
|
<string name="support_contact_description_bug_hint">請描述發生了什麼事以及如何重現此問題,請盡量具體說明。</string>
|
||||||
<string name="support_contact_expected_label">預期行為</string>
|
<string name="support_contact_expected_label">預期行為</string>
|
||||||
<string name="support_contact_expected_hint">描述您預期發生的事情。</string>
|
<string name="support_contact_expected_hint">描述您預期發生的事情。</string>
|
||||||
<plurals name="support_contact_word_count">
|
<plurals name="support_contact_word_count">
|
||||||
|
|||||||
@@ -311,7 +311,6 @@
|
|||||||
<item quantity="other">%1$d amafayela alungele (%2$s)</item>
|
<item quantity="other">%1$d amafayela alungele (%2$s)</item>
|
||||||
</plurals>
|
</plurals>
|
||||||
<string name="debug_debuglog_screen_discard_action">Susa</string>
|
<string name="debug_debuglog_screen_discard_action">Susa</string>
|
||||||
<string name="debug_debuglog_screen_keep_action">Gcina</string>
|
|
||||||
<!-- Log management -->
|
<!-- Log management -->
|
||||||
<plurals name="support_debuglog_folder_summary">
|
<plurals name="support_debuglog_folder_summary">
|
||||||
<item quantity="one">%1$d irekhodi lokususa iziphazamiso (%2$s)</item>
|
<item quantity="one">%1$d irekhodi lokususa iziphazamiso (%2$s)</item>
|
||||||
@@ -326,7 +325,7 @@
|
|||||||
<string name="support_debuglog_session_delete_title">Susa iseshini?</string>
|
<string name="support_debuglog_session_delete_title">Susa iseshini?</string>
|
||||||
<string name="support_debuglog_session_delete_message">Le seshini yokususa iziphazamiso izosuswwa ngokuphelele.</string>
|
<string name="support_debuglog_session_delete_message">Le seshini yokususa iziphazamiso izosuswwa ngokuphelele.</string>
|
||||||
<string name="support_debuglog_clear_all_message">Zonke izinseshini zokususa iziphazamiso zizosuswwa ngokuphelele.</string>
|
<string name="support_debuglog_clear_all_message">Zonke izinseshini zokususa iziphazamiso zizosuswwa ngokuphelele.</string>
|
||||||
<string name="support_debuglog_failed_empty_log">Kwehlulekile: ifayela lerekhodi likhona</string>
|
<string name="support_debuglog_failed_empty_log">Yehlulekile: ifayela le-log liyize</string>
|
||||||
<string name="support_debuglog_failed_missing_log">Kwehlulekile: ifayela lerekhodi alikhona</string>
|
<string name="support_debuglog_failed_missing_log">Kwehlulekile: ifayela lerekhodi alikhona</string>
|
||||||
<string name="support_debuglog_failed_corrupt_zip">Kwehlulekile: ifayela le-zip lonakele</string>
|
<string name="support_debuglog_failed_corrupt_zip">Kwehlulekile: ifayela le-zip lonakele</string>
|
||||||
<string name="support_debuglog_failed_zip_failed">Kwehlulekile: ukucindezela kwehlulekile</string>
|
<string name="support_debuglog_failed_zip_failed">Kwehlulekile: ukucindezela kwehlulekile</string>
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
<string name="settings_signal_minimum_label">Minimum signal quality</string>
|
<string name="settings_signal_minimum_label">Minimum signal quality</string>
|
||||||
<string name="settings_signal_minimum_description">The minimum signal quality that a device needs to have to be considered yours.</string>
|
<string name="settings_signal_minimum_description">The minimum signal quality that a device needs to have to be considered yours.</string>
|
||||||
<string name="settings_autoconnect_label">Auto connect</string>
|
<string name="settings_autoconnect_label">Auto connect</string>
|
||||||
<string name="settings_autoconnect_description">If Android does not automatically connect, we can ask it too. This will set the monitor mode setting to \'Always\'.</string>
|
<string name="settings_autoconnect_description">If Android does not automatically connect, we can ask it too. This will set the monitor mode setting to \'Always\'. May not work on newer Android versions.</string>
|
||||||
<string name="settings_autoconnect_condition_label">Auto connect condition</string>
|
<string name="settings_autoconnect_condition_label">Auto connect condition</string>
|
||||||
<string name="settings_autoconnect_condition_description">When should we try to connect to your device?</string>
|
<string name="settings_autoconnect_condition_description">When should we try to connect to your device?</string>
|
||||||
<string name="settings_devices_label">Devices</string>
|
<string name="settings_devices_label">Devices</string>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ object Versions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
object Compose {
|
object Compose {
|
||||||
const val bom = "2025.06.01"
|
const val bom = "2025.10.00"
|
||||||
}
|
}
|
||||||
|
|
||||||
object Navigation3 {
|
object Navigation3 {
|
||||||
|
|||||||
Executable
+99
@@ -0,0 +1,99 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Validates Fastlane metadata files stay within store character limits.
|
||||||
|
#
|
||||||
|
# Checked files per locale:
|
||||||
|
# title.txt - hard limit 30 chars
|
||||||
|
# short_description.txt - hard limit 80 chars
|
||||||
|
# full_description.txt - hard limit 3800 chars, warn at 3700
|
||||||
|
# changelogs/*.txt - hard limit 500 chars each
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
|
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
METADATA_DIR="$SCRIPT_DIR/metadata/android"
|
||||||
|
|
||||||
|
TITLE_MAX=30
|
||||||
|
SHORT_DESC_MAX=80
|
||||||
|
FULL_DESC_MAX=3800
|
||||||
|
FULL_DESC_WARN=3700
|
||||||
|
CHANGELOG_MAX=500
|
||||||
|
|
||||||
|
failed=0
|
||||||
|
warned=0
|
||||||
|
checked=0
|
||||||
|
|
||||||
|
# Count characters excluding only the trailing newline
|
||||||
|
count_chars() {
|
||||||
|
sed -z 's/\n$//' < "$1" | wc -m | tr -d '[:space:]'
|
||||||
|
}
|
||||||
|
|
||||||
|
check_file() {
|
||||||
|
local file="$1"
|
||||||
|
local label="$2"
|
||||||
|
local hard_limit="$3"
|
||||||
|
local warn_limit="${4:-0}"
|
||||||
|
|
||||||
|
if [ ! -f "$file" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local chars
|
||||||
|
chars="$(count_chars "$file")"
|
||||||
|
checked=$((checked + 1))
|
||||||
|
|
||||||
|
if [ "$chars" -gt "$hard_limit" ]; then
|
||||||
|
echo "FAIL $label: $chars chars (limit: $hard_limit)"
|
||||||
|
failed=$((failed + 1))
|
||||||
|
elif [ "$warn_limit" -gt 0 ] && [ "$chars" -gt "$warn_limit" ]; then
|
||||||
|
echo "WARN $label: $chars chars (approaching limit)"
|
||||||
|
warned=$((warned + 1))
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -d "$METADATA_DIR" ]; then
|
||||||
|
echo "ERROR: Metadata directory not found: $METADATA_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
locale_count=0
|
||||||
|
for locale_dir in "$METADATA_DIR"/*/; do
|
||||||
|
[ -d "$locale_dir" ] || continue
|
||||||
|
locale="$(basename "$locale_dir")"
|
||||||
|
locale_count=$((locale_count + 1))
|
||||||
|
|
||||||
|
check_file "$locale_dir/title.txt" "$locale/title.txt" "$TITLE_MAX"
|
||||||
|
check_file "$locale_dir/short_description.txt" "$locale/short_description.txt" "$SHORT_DESC_MAX"
|
||||||
|
check_file "$locale_dir/full_description.txt" "$locale/full_description.txt" "$FULL_DESC_MAX" "$FULL_DESC_WARN"
|
||||||
|
|
||||||
|
for changelog in "$locale_dir"/changelogs/*.txt; do
|
||||||
|
[ -f "$changelog" ] || continue
|
||||||
|
changelog_name="changelogs/$(basename "$changelog")"
|
||||||
|
check_file "$changelog" "$locale/$changelog_name" "$CHANGELOG_MAX"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$locale_count" -eq 0 ]; then
|
||||||
|
echo "ERROR: No locale directories found in $METADATA_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$checked" -eq 0 ]; then
|
||||||
|
echo "ERROR: No metadata files found to check"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "Checked $checked files across $locale_count locales."
|
||||||
|
|
||||||
|
if [ "$failed" -gt 0 ]; then
|
||||||
|
echo "$failed failure(s), $warned warning(s)."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$warned" -gt 0 ]; then
|
||||||
|
echo "All within limits. $warned warning(s)."
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -1 +1 @@
|
|||||||
CAPod - AirPods laguntzailea
|
CAPod - Companion for AirPods
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user