Compare commits

...

35 Commits

Author SHA1 Message Date
Sylvia van Os
864bdbbe0b Revert "Temporarily re-add Android 5 support (#2925)"
This reverts commit 37e6782032.
2026-01-03 19:59:35 +01:00
Sylvia van Os
64ebc345b5 Merge pull request #2929 from CatimaLoyalty/create-pull-request/patch-1767466255
Update feature graphic
2026-01-03 19:57:28 +01:00
Sylvia van Os
f94dbcd66d Merge pull request #2928 from CatimaLoyalty/create-pull-request/patch-1767466175
Update locales
2026-01-03 19:56:19 +01:00
TheLastProject
881303b73d Update feature graphic 2026-01-03 18:50:55 +00:00
TheLastProject
97a2ff7125 Update locales 2026-01-03 18:49:35 +00:00
Sylvia van Os
22e968796d Merge pull request #2920 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2026-01-03 19:49:23 +01:00
Hosted Weblate
0c5f90d4ad Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/
2026-01-03 19:09:57 +01:00
Priit Jõerüüt
0f51e19d44 Translated using Weblate (Estonian)
Currently translated at 100.0% (316 of 316 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/et/
2026-01-03 19:09:57 +01:00
Priit Jõerüüt
5c720aa58a Translated using Weblate (Estonian)
Currently translated at 11.6% (18 of 154 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/et/
2026-01-03 19:09:57 +01:00
Sylvia van Os
19d7ef0669 Translated using Weblate (Persian (Old))
Currently translated at 99.0% (310 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/peo/
2026-01-03 19:09:57 +01:00
Hosted Weblate
04a22be542 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/
2026-01-03 19:09:57 +01:00
امیرضا
6ff2a9b48c Translated using Weblate (Persian)
Currently translated at 42.2% (65 of 154 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fa/
2026-01-03 19:09:57 +01:00
Simone Dotto
19d3b736cb Translated using Weblate (Italian)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2026-01-03 19:09:57 +01:00
Michael Moroni
2bcdf170ad Translated using Weblate (Italian)
Currently translated at 100.0% (313 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/it/
2026-01-03 19:09:57 +01:00
Simone Dotto
23d79ba536 Translated using Weblate (Italian)
Currently translated at 100.0% (154 of 154 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/it/
2026-01-03 19:09:57 +01:00
Alì Mortacci
fe6de6f309 Translated using Weblate (Italian)
Currently translated at 100.0% (154 of 154 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/it/
2026-01-03 19:09:57 +01:00
امیرضا
29251978c4 Translated using Weblate (Persian (Old))
Currently translated at 99.3% (311 of 313 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/peo/
2026-01-03 19:09:57 +01:00
Sylvia van Os
a10e8d5aab Fix typo in comment 2026-01-03 17:57:06 +01:00
Sylvia van Os
5973761e2e Merge pull request #2926 from CatimaLoyalty/create-pull-request/patch-1767459283
Update Fastlane changelogs
2026-01-03 17:55:06 +01:00
TheLastProject
00f3fb47d5 Update Fastlane changelogs 2026-01-03 16:54:43 +00:00
Sylvia van Os
37e6782032 Temporarily re-add Android 5 support (#2925)
* Revert "Bump androidx.activity:activity-compose from 1.10.1 to 1.12.2"

This reverts commit 307f0e12bc.

* Revert "Bump androidx.compose:compose-bom from 2025.11.01 to 2025.12.01"

This reverts commit a0fea79359.

* Revert "Remove Android 5 support"

This reverts commit 23457854b7.

* Update CHANGELOG
2026-01-03 17:54:33 +01:00
Sylvia van Os
f58bdba273 Merge pull request #2924 from CatimaLoyalty/create-pull-request/patch-1767452719
Update Fastlane changelogs
2026-01-03 16:07:00 +01:00
TheLastProject
e02f74032b Update Fastlane changelogs 2026-01-03 15:05:19 +00:00
Sylvia van Os
6213bd4500 Update CHANGELOG 2026-01-03 16:05:07 +01:00
Sylvia van Os
7739249364 Merge pull request #2923 from CatimaLoyalty/fix/2921
Only pass encoding hint in automatic if UTF-8
2026-01-03 16:04:12 +01:00
Sylvia van Os
2308deba33 Only pass encoding hint in automatic if UTF-8
If zxing is not explicitly told a barcode is UTF-8, it may render it
incorrectly. Which caused
https://github.com/CatimaLoyalty/Android/issues/2555.

However, when an encode hint is set, it will cause zxing to set an ECI
hint inside the barcode, which some scanners may trip over and cause
scanning failures, leading to
https://github.com/CatimaLoyalty/Android/issues/2921.

This change only passes the encoding in automatic mode if zxing
explicitly guesses it to be UTF-8, and otherwise doesn't pass anything,
to keep the ECI empty. This might need to be expanded for other types
like SJIS, but as nobody ever reported such a bug let's assume it's not
necessary for now.
2026-01-03 15:44:51 +01:00
Sylvia van Os
8252f52862 Merge pull request #2922 from CatimaLoyalty/create-pull-request/patch-1767447624
Update Fastlane changelogs
2026-01-03 15:25:34 +01:00
TheLastProject
9b05d46c77 Update Fastlane changelogs 2026-01-03 13:40:24 +00:00
Sylvia van Os
a8e9a932cb Update CHANGELOG 2026-01-03 14:40:13 +01:00
Sylvia van Os
d1858f22cf Merge pull request #2906 from CatimaLoyalty/dependabot/gradle/androidx.activity-activity-compose-1.12.2
Bump androidx.activity:activity-compose from 1.10.1 to 1.12.2
2026-01-01 21:43:29 +01:00
dependabot[bot]
307f0e12bc Bump androidx.activity:activity-compose from 1.10.1 to 1.12.2
Bumps androidx.activity:activity-compose from 1.10.1 to 1.12.2.

---
updated-dependencies:
- dependency-name: androidx.activity:activity-compose
  dependency-version: 1.12.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-01 20:21:25 +00:00
Sylvia van Os
3caf3ee0a8 Merge pull request #2905 from CatimaLoyalty/dependabot/gradle/androidx.compose-compose-bom-2025.12.01
Bump androidx.compose:compose-bom from 2025.11.01 to 2025.12.01
2026-01-01 21:20:19 +01:00
dependabot[bot]
a0fea79359 Bump androidx.compose:compose-bom from 2025.11.01 to 2025.12.01
Bumps androidx.compose:compose-bom from 2025.11.01 to 2025.12.01.

---
updated-dependencies:
- dependency-name: androidx.compose:compose-bom
  dependency-version: 2025.12.01
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-01 19:57:58 +00:00
Sylvia van Os
b01e6b5928 Merge pull request #2917 from CatimaLoyalty/minSdk23
Remove Android 5 support
2026-01-01 20:47:34 +01:00
Sylvia van Os
23457854b7 Remove Android 5 support
Newer dependencies need at least Android 6, so no use in keeping this
2026-01-01 19:58:19 +01:00
50 changed files with 262 additions and 158 deletions

View File

@@ -50,10 +50,10 @@ jobs:
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Run instrumented tests (API 21)
- name: Run instrumented tests (API 23)
uses: ReactiveCircus/android-emulator-runner@v2
with:
api-level: 21
api-level: 23
arch: x86_64
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
- name: Run instrumented tests (API 35)

View File

@@ -1,5 +1,11 @@
# Changelog
## Unreleased - 159
Android 5.0 and 5.1 are no longer supported starting with this release. If you want to use Catima on these versions, please use version 2.41.1.
- Fix change introduced in 2.41.0 that broke support for some scanners for non-UTF-8 barcodes
## v2.41.1 - 158 (2025-12-31)
- Fix status and navigation bar colour in new About activity

View File

@@ -17,7 +17,7 @@ android {
defaultConfig {
applicationId = "me.hackerchick.catima"
minSdk = 21
minSdk = 23
targetSdk = 36
versionCode = 158
versionName = "2.41.1"
@@ -25,7 +25,7 @@ android {
vectorDrawables.useSupportLibrary = true
multiDexEnabled = true
resourceConfigurations += listOf("ar", "be", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fa", "fi", "fr", "gl", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "ta", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
resourceConfigurations += listOf("ar", "be", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fa", "fi", "fr", "gl", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "peo", "pl", "pt", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "ta", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -22,6 +22,7 @@ import com.google.zxing.common.StringUtils;
import java.lang.ref.WeakReference;
import java.nio.charset.Charset;
import java.util.Map;
import java.util.Objects;
import protect.card_locker.async.CompatCallable;
@@ -190,7 +191,16 @@ public class BarcodeImageWriterTask implements CompatCallable<Bitmap> {
} else {
String guessedEncoding = StringUtils.guessEncoding(cardId.getBytes(), new ArrayMap<>());
Log.d(TAG, "Guessed encoding: " + guessedEncoding);
encodeHints.put(EncodeHintType.CHARACTER_SET, Charset.forName(guessedEncoding));
// We don't want to pass the guessed encoding as an encoding hint unless it is UTF-8 as
// zxing is likely to add the mentioned encoding hint as ECI inside the barcode.
//
// Due to many barcode scanners in the wild being badly coded they may trip over ECI
// info existing and fail to scan, such as in https://github.com/CatimaLoyalty/Android/issues/2921
if (Objects.equals(guessedEncoding, "UTF8")) {
Log.d(TAG, "Guessed encoding is UTF8, so passing as encoding hint");
encodeHints.put(EncodeHintType.CHARACTER_SET, Charset.forName(guessedEncoding));
}
}
BitMatrix bitMatrix;

View File

@@ -38,15 +38,10 @@ public class CatimaAppCompatActivity extends AppCompatActivity {
Window window = getWindow();
if (window != null) {
boolean darkMode = Utils.isDarkModeEnabled(this);
if (Build.VERSION.SDK_INT >= 23) {
View decorView = window.getDecorView();
WindowInsetsControllerCompat wic = new WindowInsetsControllerCompat(window, decorView);
wic.setAppearanceLightStatusBars(!darkMode);
window.setStatusBarColor(Color.TRANSPARENT);
} else {
// icons are always white back then
window.setStatusBarColor(darkMode ? Color.TRANSPARENT : Color.argb(127, 0, 0, 0));
}
View decorView = window.getDecorView();
WindowInsetsControllerCompat wic = new WindowInsetsControllerCompat(window, decorView);
wic.setAppearanceLightStatusBars(!darkMode);
window.setStatusBarColor(Color.TRANSPARENT);
}
// XXX android 9 and below has a nasty rendering bug if the theme was patched earlier
Utils.postPatchColors(this);
@@ -66,7 +61,4 @@ public class CatimaAppCompatActivity extends AppCompatActivity {
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
public void onMockedRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
}
}

View File

@@ -100,8 +100,7 @@ class ListWidget : AppWidgetProvider() {
val foreground = if (Utils.needsDarkForeground(headerColor)) Color.BLACK else Color.WHITE
setInt(R.id.item_container_foreground, "setBackgroundColor", headerColor)
val icon = loyaltyCard.getImageThumbnail(context)
// setImageViewIcon is not supported on Android 5, so force Android 5 down the text path
// FIXME: The icon flow causes a crash up to Android 12L, so SDK_INT is forced up from 23 to 33
// FIXME: The icon flow causes a crash up to Android 12L, so force anything below 33 down this path
if (icon != null && Build.VERSION.SDK_INT >= 32) {
setInt(R.id.item_container_foreground, "setBackgroundColor", foreground)
setImageViewIcon(R.id.item_image, Icon.createWithBitmap(icon))

View File

@@ -34,11 +34,6 @@ public class PermissionUtils {
* @return
*/
public static boolean needsCameraPermission(Activity activity) {
// Android only introduced the runtime permission system in Marshmallow (Android 6.0)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return false;
}
return ContextCompat.checkSelfPermission(activity, android.Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED;
}
@@ -49,21 +44,14 @@ public class PermissionUtils {
* @param activity
* @param requestCode
*/
public static void requestStorageReadPermission(CatimaAppCompatActivity activity, int requestCode) {
public static void requestStorageReadPermission(Activity activity, int requestCode) {
String[] permissions = new String[]{ android.Manifest.permission.READ_EXTERNAL_STORAGE };
int[] mockedResults = new int[]{ PackageManager.PERMISSION_GRANTED };
if (needsStorageReadPermission(activity)) {
ActivityCompat.requestPermissions(activity, permissions, requestCode);
} else {
// FIXME: This points to onMockedRequestPermissionResult instead of to
// onRequestPermissionResult because onRequestPermissionResult was only introduced in
// Android 6.0 (SDK 23) and we and to support Android 5.0 (SDK 21) too.
//
// When minSdk becomes 23, this should point to onRequestPermissionResult directly and
// the activity input variable should be changed from CatimaAppCompatActivity to
// Activity.
activity.onMockedRequestPermissionsResult(requestCode, permissions, mockedResults);
activity.onRequestPermissionsResult(requestCode, permissions, mockedResults);
}
}
@@ -74,21 +62,14 @@ public class PermissionUtils {
* @param activity
* @param requestCode
*/
public static void requestCameraPermission(CatimaAppCompatActivity activity, int requestCode) {
public static void requestCameraPermission(Activity activity, int requestCode) {
String[] permissions = new String[]{ Manifest.permission.CAMERA };
int[] mockedResults = new int[]{ PackageManager.PERMISSION_GRANTED };
if (needsCameraPermission(activity)) {
ActivityCompat.requestPermissions(activity, permissions, requestCode);
} else {
// FIXME: This points to onMockedRequestPermissionResult instead of to
// onRequestPermissionResult because onRequestPermissionResult was only introduced in
// Android 6.0 (SDK 23) and we and to support Android 5.0 (SDK 21) too.
//
// When minSdk becomes 23, this should point to onRequestPermissionResult directly and
// the activity input variable should be changed from CatimaAppCompatActivity to
// Activity.
activity.onMockedRequestPermissionsResult(requestCode, permissions, mockedResults);
activity.onRequestPermissionsResult(requestCode, permissions, mockedResults);
}
}
}

View File

@@ -543,14 +543,6 @@ class ScanActivity : CatimaAppCompatActivity() {
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
onMockedRequestPermissionsResult(requestCode, permissions, grantResults)
}
override fun onMockedRequestPermissionsResult(
requestCode: Int,
permissions: Array<String>,
grantResults: IntArray
) {
val granted =
grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED

View File

@@ -40,16 +40,9 @@ class UCropWrapper : UCropActivity() {
return
}
if (Build.VERSION.SDK_INT >= 23) {
val decorView = window.decorView
val wic = WindowInsetsControllerCompat(window, decorView)
wic.isAppearanceLightStatusBars = !darkMode
} else if (!darkMode) {
window.statusBarColor = ColorUtils.compositeColors(
Color.argb(127, 0, 0, 0),
window.statusBarColor
)
}
val decorView = window.decorView
val wic = WindowInsetsControllerCompat(window, decorView)
wic.isAppearanceLightStatusBars = !darkMode
}
private fun checkViews(darkMode: Boolean) {

View File

@@ -77,13 +77,6 @@ public class CardsContentProvider extends ContentProvider {
@Nullable final String selection,
@Nullable final String[] selectionArgs,
@Nullable final String sortOrder) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
// Disable the content provider on SDK < 23 since it grants dangerous
// permissions at install-time
Log.w(TAG, "Content provider read is only available for SDK >= 23");
return null;
}
final Settings settings = new Settings(getContext());
if (!settings.getAllowContentProviderRead()) {
Log.w(TAG, "Content provider read is disabled");

View File

@@ -459,6 +459,7 @@ public class CatimaImporter implements Importer {
barcodeType = CatimaBarcode.fromName(unparsedBarcodeType);
}
// This field did not exist in version 2.40.0 and before
Charset barcodeEncoding = null;
String unparsedBarcodeEncoding = CSVHelpers.extractString(DBHelper.LoyaltyCardDbIds.BARCODE_ENCODING, record, "");
if (!unparsedBarcodeEncoding.isEmpty()) {

View File

@@ -157,12 +157,6 @@ class SettingsActivity : CatimaAppCompatActivity() {
true
}
// Disable content provider on SDK < 23 since dangerous permissions
// are granted at install-time
val contentProviderReadPreference = findPreference<Preference>(getString(R.string.settings_key_allow_content_provider_read))
contentProviderReadPreference!!.isVisible =
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
// Hide crash reporter settings on builds it's not enabled on
val crashReporterPreference = findPreference<Preference>("acra.enable")
crashReporterPreference!!.isVisible = BuildConfig.useAcraCrashReporter

View File

@@ -299,4 +299,7 @@
<string name="copy_value">Kopeeri väärtus</string>
<string name="copied_to_clipboard">Kopeeritud lõikelauale</string>
<string name="nothing_to_copy">Ühtegi väärtust ei leidu</string>
<string name="barcodeEncoding">Triipkoodi kodeerimine</string>
<string name="automatic">Automaatne</string>
<string name="back">Tagasi</string>
</resources>

View File

@@ -18,10 +18,10 @@
<string name="editCardTitle">Modifica carta</string>
<string name="addCardTitle">Aggiungi carta</string>
<string name="scanCardBarcode">Scansiona codice a barre</string>
<string name="cardShortcut">Scorciatoia per la carta</string>
<string name="cardShortcut">Scorciatoia carta</string>
<string name="noCardsMessage">Aggiungi prima una carta</string>
<string name="noCardExistsError">Impossibile trovare quella carta</string>
<string name="failedParsingImportUriError">Impossibile analizzare l\'URI di importazione</string>
<string name="failedParsingImportUriError">Impossibile processare l\'URI di importazione</string>
<string name="importExport">Importa/esporta</string>
<string name="exportName">Esporta</string>
<string name="importExportHelp">Il backup dei dati permette di spostarli su un altro dispositivo</string>
@@ -34,7 +34,7 @@
<string name="importing">Importazione in corso…</string>
<string name="exporting">Esportazione in corso…</string>
<string name="importOptionFilesystemTitle">Importa dall\'archivio</string>
<string name="importOptionFilesystemExplanation">Scegli un file dall\'archivio.</string>
<string name="importOptionFilesystemExplanation">Scegli un file specifico dal filesystem</string>
<string name="importOptionFilesystemButton">Dall\'archivio</string>
<string name="about">Informazioni</string>
<string name="app_license">Software libero con copyleft, licenza GPLv3+</string>
@@ -53,14 +53,14 @@
<string name="importSuccessful">Dati importati</string>
<string name="app_copyright_old">Basato su Loyalty Card Keychain
\ncopyright © 20162020 Branden Archer</string>
<string name="exportOptionExplanation">I dati verranno scritti in una posizione a tua scelta.</string>
<string name="exportOptionExplanation">I dati verranno scritti nella posizione da te scelta</string>
<string name="barcodeType">Tipo di codice a barre</string>
<string name="unstar">Rimuovi dai preferiti</string>
<string name="star">Aggiungi ai preferiti</string>
<string name="starImage">Stella dei preferiti</string>
<string name="deleteConfirmationGroup">Eliminare il gruppo\?</string>
<string name="all">Tutti</string>
<string name="noGroups">Clicca sul pulsante + per aggiungere i gruppi per la categorizzazione.</string>
<string name="noGroups">Clicca sul pulsante + per aggiungere gruppi per la categorizzazione</string>
<string name="groups">Gruppi</string>
<string name="enter_group_name">Inserisci il nome del gruppo</string>
<string name="groupsList">Gruppi: <xliff:g>%s</xliff:g></string>
@@ -69,7 +69,7 @@
<string name="leaveWithoutSaveTitle">Esci</string>
<string name="moveDown">Sposta in basso</string>
<string name="moveUp">Sposta in alto</string>
<string name="failedOpeningFileManager">Installa prima un gestore di file.</string>
<string name="failedOpeningFileManager">Impossibile aprire un gestore di file</string>
<string name="noBarcode">Nessun codice a barre</string>
<plurals name="groupCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> carta</item>
@@ -94,17 +94,13 @@
<string name="settings_disable_lockscreen_while_viewing_card">Impedisci il blocco dello schermo</string>
<string name="accept">Accetta</string>
<string name="privacy_policy">Informativa sulla riservatezza</string>
<string name="importVoucherVaultMessage">Seleziona il tuo file di esportazione <i>vouchervault.json</i> da Voucher Vault per importarlo.
\nCrealo premendo prima Esporta in Voucher Vault.</string>
<string name="importVoucherVaultMessage">Seleziona il tuo file di esportazione da Voucher Vault per importarlo. \nCrealo premendo Esporta in Voucher Vault.</string>
<string name="importVoucherVault">Importa da Voucher Vault</string>
<string name="importLoyaltyCardKeychainMessage">Seleziona il tuo file di esportazione <i>LoyaltyCardKeychain.csv</i> da Loyalty Card Keychain per importarlo.
\nCrealo dal menù Importa/Esporta in Loyalty Card Keychain premendo prima su Esporta.</string>
<string name="importLoyaltyCardKeychainMessage">Seleziona il tuo file di esportazione da Loyalty Card Keychain per importarlo. \nCrealo dal menu Importa/Esporta in Loyalty Card Keychain premendo su Esporta.</string>
<string name="importLoyaltyCardKeychain">Importa da Loyalty Card Keychain</string>
<string name="importFidmeMessage">Seleziona il tuo file di esportazione <i>fidme-export-request-xxxxxx.zip</i> da FidMe per importare e seleziona successivamente i tipi di codice a barre manualmente.
\nCrealo dal tuo profilo FidMe scegliendo Protezione Dati e poi premendo Estrai i miei dati prima.</string>
<string name="importFidmeMessage">Seleziona il tuo file di esportazione da FidMe per importarlo, dopodiché seleziona i tipi di codice a barre manualmente. \nPer crearlo, si fa dal tuo profilo FidMe scegliendo \"Data Protection\" e poi \"Extract my data\".</string>
<string name="importFidme">Importa da FidMe</string>
<string name="importCatimaMessage">Seleziona il file di esportazione <i>catima.zip</i> per importarlo.
\nCrealo dal menù Importa/Esporta di un\'altra applicazione Catima premendo prima Esporta.</string>
<string name="importCatimaMessage">Seleziona il file di esportazione per importarlo. \nSi può creare dal menu Importa/esporta di un\'altra applicazione Catima premendo su Esporta.</string>
<string name="importCatima">Importa da Catima</string>
<string name="setBarcodeId">Imposta il valore del codice a barre</string>
<string name="sameAsCardId">Uguale al codice</string>
@@ -114,8 +110,8 @@
<string name="addFromImage">Seleziona un\'immagine dalla galleria</string>
<string name="unsupportedBarcodeType">Questo tipo di codice a barre non può ancora essere visualizzato. Potrebbe essere supportato in una versione successiva dell\'applicazione.</string>
<string name="wrongValueForBarcodeType">Il valore non è valido per il tipo di codice a barre selezionato</string>
<string name="app_resources">Risorse libere di terze parti: <xliff:g id="app_resources_list"> %s </xliff:g></string>
<string name="app_libraries">Librerie libere di terze parti: <xliff:g id="app_libraries_list"> %s </xliff:g></string>
<string name="app_resources">Risorse di terze parti: <xliff:g id="app_resources_list"> %s </xliff:g></string>
<string name="app_libraries">Librerie di terze parti: <xliff:g id="app_libraries_list"> %s </xliff:g></string>
<string name="intent_import_card_from_url_share_multiple_text">Voglio condividere alcune carte con te</string>
<string name="no">No</string>
<string name="yes"></string>
@@ -128,10 +124,10 @@
<string name="photos">Foto</string>
<string name="backImageDescription">Immagine posteriore</string>
<string name="frontImageDescription">Immagine frontale</string>
<string name="passwordRequired">Si prega di inserire la password</string>
<string name="passwordRequired">Inserire la password</string>
<string name="turn_flashlight_off">Spegni la torcia</string>
<string name="turn_flashlight_on">Accendi la torcia</string>
<string name="failedGeneratingShareURL">Impossibile generare un URL condivisibile. Si prega di segnalarlo.</string>
<string name="failedGeneratingShareURL">Impossibile generare un URL da condividere</string>
<plurals name="selectedCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> selezionata</item>
<item quantity="many"><xliff:g>%d</xliff:g> selezionate</item>
@@ -157,11 +153,11 @@
<string name="sort_by">Ordina per</string>
<string name="reverse">…in ordine inverso</string>
<string name="sort_by_expiry">Scadenza</string>
<string name="sort_by_most_recently_used">Usate più recentemente</string>
<string name="sort_by_most_recently_used">Le più recentemente utilizzate</string>
<string name="sort_by_name">Nome</string>
<string name="sort">Ordina</string>
<string name="license">Licenza</string>
<string name="source_repository">Repository del codice sorgente</string>
<string name="source_repository">Repository dei sorgenti</string>
<string name="on_github">su GitHub</string>
<string name="exportPasswordHint">Inserisci la password</string>
<string name="on_google_play">su Google Play</string>
@@ -197,7 +193,7 @@
<string name="unarchive">Disarchivia</string>
<string name="unarchived">Carta non archiviata</string>
<string name="archived">Carta archiviata</string>
<string name="failedLaunchingPhotoPicker">Impossibile trovare un\'app galleria supportata</string>
<string name="failedLaunchingPhotoPicker">Impossibile trovare un selettore di immagini supportato</string>
<plurals name="groupCardCountWithArchived">
<item quantity="one"><xliff:g>%1$d</xliff:g> carta (<xliff:g id="archivedCount">%2$d</xliff:g> archiviata)</item>
<item quantity="many"><xliff:g>%1$d</xliff:g> carte (<xliff:g id="archivedCount">%2$d</xliff:g> archiviate)</item>
@@ -209,7 +205,7 @@
<string name="failedToOpenUrl">Installa prima un browser web</string>
<string name="failedToRetrieveImageFile">Impossibile ottenere il file dell\'immagine</string>
<string name="barcodeLongPressMessage">Si possono aprire solo immagini dell\'app della galleria</string>
<string name="cameraPermissionDeniedTitle">È impossibile accedere alla fotocamera</string>
<string name="cameraPermissionDeniedTitle">Impossibile accedere alla fotocamera</string>
<string name="noCameraPermissionDirectToSystemSetting">Per poter scansionare i codici a barre, Catima ha bisogno di accedere alla tua fotocamera. Premi qui per poter cambiare le impostazioni dei permessi.</string>
<string name="updateBalance">Aggiorna bilancio</string>
<string name="updateBalanceTitle">Quanto hai speso o ricevuto?</string>
@@ -227,16 +223,16 @@
<string name="switchToFrontImage">Passa all\'immagine frontale</string>
<string name="switchToBackImage">Passa all\'immagine dietro</string>
<string name="switchToBarcode">Passa al codice a barre</string>
<string name="openFrontImageInGalleryApp">Apri l\'immagine frontale nell\'app Galleria</string>
<string name="openFrontImageInGalleryApp">Apri immagine frontale nell\'app per la visualizzazione di immagini</string>
<string name="donate">Dona</string>
<string name="openBackImageInGalleryApp">Apri l\'immagine posteriore nell\'app Galleria</string>
<string name="openBackImageInGalleryApp">Apri l\'immagine retro nell\'app per la visualizzazione di immagini</string>
<string name="setBarcodeHeight">Imposta l\'altezza del codice a barre</string>
<string name="icon_header_click_text">Premi a lungo per modificare l\'immagine</string>
<string name="show_note">Mostra nota</string>
<string name="show_balance">Mostra bilancio</string>
<string name="show_validity">Mostra validità</string>
<string name="show_name_below_image_thumbnail">Mostra il nome sotto l\'immagine</string>
<string name="permissionReadCardsLabel">Leggi le carte Catima</string>
<string name="permissionReadCardsLabel">Leggi Carte Catima</string>
<string name="settings_allow_content_provider_read_summary">Le applicazioni dovranno comunque richiedere l\'autorizzazione per ottenere l\'accesso</string>
<string name="settings_allow_content_provider_read_title">Consenti ad altre applicazioni di accedere ai miei dati</string>
<string name="permissionReadCardsDescription">Leggere le sue carte e tutti i suoi dettagli, comprese le note e le immagini</string>
@@ -263,7 +259,7 @@
<string name="app_name">Catima</string>
<string name="add_manually_warning_title">Consigliata scansione</string>
<string name="continue_">Successivo</string>
<string name="add_manually_warning_message">In alcuni negozi, il valore del codice a barre differisce dal numero scritto sulla carta. Per questo motivo, l\'inserimento manuale del codice a barre potrebbe non funzionare sempre. Si consiglia di scansionare il codice a barre con la fotocamera. Vuoi continuare lo stesso?</string>
<string name="add_manually_warning_message">Per alcune carte, il valore del codice a barre differisce dal numero scritto sulla carta. Per questo motivo, l\'inserimento manuale del codice a barre potrebbe non funzionare sempre. Per questo motivo si consiglia di scansionare il codice a barre con la fotocamera. Vuoi procedere lo stesso?</string>
<string name="amountParsingFailed">Importo non valido</string>
<string name="spend">Spendi</string>
<string name="receive">Ricevi</string>
@@ -291,14 +287,22 @@
<string name="settings_column_count_5">5</string>
<string name="settings_category_title_cards_overview">Panoramica delle carte</string>
<string name="unsupportedFile">Questo file non è supportato</string>
<string name="generic_error_please_retry">Siamo spiacenti, qualcosa è andato storto, riprova...</string>
<string name="addFromPkpass">Seleziona un file Passbook (.pkpass)</string>
<string name="generic_error_please_retry">Rilevato un errore</string>
<string name="addFromPkpass">Seleziona un file Passbook (.pkpass/.pkpasses)</string>
<string name="sort_by_valid_from">Valido da</string>
<string name="setBarcodeWidth">Imposta la larghezza del codice a barre</string>
<string name="setBarcodeWidth">Imposta larghezza del codice a barre</string>
<string name="width">Larghezza</string>
<string name="card_list_widget_name">Lista delle carte</string>
<string name="card_list_widget_empty">Dopo aver aggiunto alcune carte fedeltà in Catima, queste appariranno qui. Se hai delle carte, assicurati che non siano tutte archiviate.</string>
<string name="cardWithNumber">Carta <xliff:g>%d</xliff:g></string>
<string name="cardWithNumberAndLocale">Carta <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> rapporto sull\'incidente</string>
<string name="pleaseDoNotRotateTheDevice">Si prega di non ruotare il dispositivo, perché così si annullerà l\'azione</string>
<string name="acra_catima_has_crashed">Siamo spiacenti, ma <xliff:g id="app_name">%s</xliff:g> si è interrotta. Aiutaci a risolvere questo problema inviandoci un resoconto dell\'errore.</string>
<string name="acra_explain_crash">Se possibile, si prega di aggiungere ulteriori dettagli su quello che si stava facendo:</string>
<string name="pref_enable_acra">Chiedi di inviare resoconti di interruzioni anomale</string>
<string name="pref_enable_acra_summary">Quando attivo, ti verrà chiesto di inviare un resoconto dell\'interruzione quando avviene. I resoconti non sono mai inviati automaticamente.</string>
<string name="copy_value">Copia valore</string>
<string name="copied_to_clipboard">Copiato negli appunti</string>
<string name="nothing_to_copy">Nessun valore trovato</string>
</resources>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
<string name="app_name">کاتیما</string>
<string name="action_search">گشتن</string>
<string name="action_add">اضافه کردن</string>
@@ -7,7 +7,7 @@
<item quantity="one"><xliff:g>%d</xliff:g> انتخاب شد</item>
<item quantity="other"><xliff:g>%d</xliff:g> انتخاب شد</item>
</plurals>
<string name="noGiftCards">برای اضافه کردن کارت، روی دکمه + به علاوه بزنید ، یا از منوی ⋮ توش کنید</string>
<string name="noGiftCards">برای اضافه کردن کارت، روی دکمه + به علاوه بزنید ، یا از منوی ⋮ وارد کنید</string>
<string name="noMatchingGiftCards">بدون نتیجه. سعی کن گشتن تون رو عوض کنید</string>
<string name="storeName">اسم</string>
<string name="note">نسخه برداری</string>
@@ -55,7 +55,7 @@
<string name="permissionReadCardsLabel">کارت های کاتیما رو بخونید</string>
<string name="permissionReadCardsDescription">کارتای کاتیما و تمام جزئیاتشون از جمله یادداشت‌ها و عکس‌ها رو بخون</string>
<string name="cameraPermissionDeniedTitle">دسترسی به دوربین گرفته نشد</string>
<string name="noCameraPermissionDirectToSystemSetting">"برای اسکن بارکدای کاتیما ، دسترسی به دوربین نیازه. برای تغییر تنظیمات مجوز، اینجا رو لمس کن"</string>
<string name="noCameraPermissionDirectToSystemSetting">برای اسکن بارکد ها، کاتیما نیاز داره به دوربین شما دسترسی داشته باشه. اینجا بزنید تا تنظیمات دسترسی خود را تغییر دهید.</string>
<string name="exportOptionExplanation">داده‌ها تو جای دلخواه خودت نوشته میشه</string>
<string name="importOptionFilesystemTitle">ورود از فایل سیستم</string>
<string name="importOptionFilesystemExplanation">یه فایل خاص رو از سیستم انتخاب کن</string>
@@ -219,4 +219,81 @@
<string name="updateBalanceTitle">چقدر هزینه کردی یا گرفتی؟</string>
<string name="updateBalanceHint">مبلغ رو وارد کن</string>
<string name="currentBalanceSentence">موجودی فعلی: <xliff:g>%s</xliff:g></string>
<string name="newBalanceSentence">موجودی جدید: <xliff:g>%s</xliff:g></string>
<string name="validFromDate">معتبر از</string>
<string name="anyDate">هر وقتی</string>
<string name="chooseValidFromDate">معتبر از تاریخ رو انتخاب کن</string>
<string name="validFromSentence">معتبر از: <xliff:g>%s</xliff:g></string>
<string name="height">ارتفاع</string>
<string name="switchToFrontImage">تغییر به عکس جلو</string>
<string name="switchToBackImage">تغییر به عکس عقب</string>
<string name="switchToBarcode">به بارکد تغییر بده</string>
<string name="openFrontImageInGalleryApp">عکس جلویی رو تو image viewer app باز کن</string>
<string name="openBackImageInGalleryApp">باز کردن عکس تو image viewer app</string>
<string name="setBarcodeHeight">تنظیم ارتفاع بارکد</string>
<string name="donate">کمک مالی کن</string>
<string name="icon_header_click_text">برای ویرایش عکس کوچیک، فشار طولانی بده</string>
<string name="show_name_below_image_thumbnail">نمایش اسم زیر عکس بندانگشتی</string>
<string name="show_note">دیدن یادداشت</string>
<string name="show_balance">دیدن موجودی</string>
<string name="show_validity">دیدن دارایی</string>
<string name="settings_category_title_cards">نمای کارت</string>
<string name="settings_category_title_cards_overview">نمای کلی به کارت‌ها</string>
<string name="settings_column_count_portrait">سطون ها تو حالت عمودی</string>
<string name="settings_column_count_landscape">سطون ها تو حالت افقی</string>
<string name="settings_automatic_column_count">خودکار</string>
<string name="settings_column_count_1">۱</string>
<string name="settings_column_count_2">۲</string>
<string name="settings_column_count_3">۳</string>
<string name="settings_column_count_4">۴</string>
<string name="settings_column_count_5">۵</string>
<string name="settings_column_count_6">۶</string>
<string name="settings_column_count_7">۷</string>
<string name="settings_category_title_general">عمومی</string>
<string name="settings_category_title_privacy">حریم شخصی</string>
<string name="action_display_options">گزینه های نمایش</string>
<string name="show_archived_cards">دیدن کارت‌های بایگانی شده</string>
<string name="view_online">دیدن انلاین</string>
<string name="action_more_options">گزینه‌های بیشتر</string>
<string name="addWithoutBarcode">اضافه کردن کارت بدون بارکد</string>
<string name="enter_card_id">شماره شناسایی یا متن روی کارت خودتو وارد کن</string>
<string name="card_id_must_not_be_empty">شناسه کارت نباید خالی باشه</string>
<string name="add_a_card_in_a_different_way">یه کارت با روش‌دیگه اضاف کن</string>
<string name="field_must_not_be_empty">فیلد نباید خالی باشه</string>
<string name="manually_enter_barcode_instructions">شماره شناسایی یا متن روی کارت خودتو وارد‌کن و بارکدی رو که شبیه بارکد روی کارت خودته، فشار بده.</string>
<string name="add_manually_warning_title">اسکن توصیه میشه</string>
<string name="add_manually_warning_message">برای بعضی از کارت‌ها، اندازه بارکد با عدد نوشته شده روی کارت متفاوته. به همین دلیل، وارد کردن دستی بارکد ممکنه همیشه کار نکنه. توصیه میشه به جای این، بارکد رو با دوربین خودت اسکن کنی. میخای هنوز ادامه بدی؟</string>
<string name="continue_">ادامه</string>
<string name="spend">خرج کردن</string>
<string name="receive">گرفتن</string>
<string name="amountParsingFailed">اندازه نامعتبر</string>
<string name="addFromPdfFile">یه فایل PDF انتخاب کن</string>
<string name="errorReadingFile">نتونستم فایل رو بخونم</string>
<string name="failedLaunchingFileManager">نتونستم یه مدیر فایل پشتیبانی شده پیدا کنم</string>
<string name="multipleBarcodesFoundPleaseChooseOne">از کدوم بارکد‌های پیدا شده میخای استفاده کنی ؟</string>
<string name="pageWithNumber">صفحه <xliff:g>%d</xliff:g></string>
<string name="noCameraFoundGuideText">به نظر نمیرسه دستگاهت دوربین داشته باشه. اگه داره، دستگاه رو دوباره راه‌اندازی کن. در غیر این صورت، از دکمه گزینه‌های بیشتر زیر برای اضاف‌کردن بارکد به روش دیگه‌ای استفاده کن.</string>
<string name="importCancelled">واردات لغو شد</string>
<string name="exportCancelled">خروجی گرفتن لغو شد</string>
<string name="useFrontImage">از عکس جلو استفاده کن</string>
<string name="useBackImage">از عکس عقب استفاده کنید</string>
<string name="addFromPkpass">یه فایل دفترچه‌ حساب انتخاب‌کن(.pkpass / .pkpasses)</string>
<string name="unsupportedFile">این فایل پشتیبانی نمیشه</string>
<string name="generic_error_please_retry">مشکلی رخ داد</string>
<string name="width">عرض</string>
<string name="card_list_widget_name">لیست کارت‌ها</string>
<string name="setBarcodeWidth">تنظیم عرض بارکد</string>
<string name="card_list_widget_empty">بعد از اینکه چندتا کارت وفاداری تو کاتیما اضافه کردی، اونها اینجا ظاهر میشن. اگه کارت داری، مطمئن شو که همه اونها بایگانی نشدن.</string>
<string name="cardWithNumber">کارت <xliff:g>%d</xliff:g></string>
<string name="cardWithNumberAndLocale">کارت <xliff:g>%d</xliff:g> (<xliff:g>%s</xliff:g>)</string>
<string name="pleaseDoNotRotateTheDevice">لطفاً دستگاه رو نچرخون، چون اینکار عملکرد رو لغو میکنه</string>
<string name="acra_catima_has_crashed">متاسفیم، اما <xliff:g id="app_name"> %s </xliff:g> از کار افتاده است. لطفاً با ارسال گزارش خطا، به ما در رفع این مشکل کمک کنید.</string>
<string name="acra_explain_crash">اگه امکانش هست، لطفاً جزئیات بیشتری از کاری که انجام میدادی رو اینجا اضافه کن:</string>
<string name="acra_crash_email_subject"><xliff:g id="app_name">%s</xliff:g> گزارش مشکل</string>
<string name="pref_enable_acra">درخاست ارسال گزارش‌های خرابی</string>
<string name="pref_enable_acra_summary">وقتی فعال باشه، از شما خواسته می‌شه که در صورت بروز خرابی، اون رو گزارش بدی. گزارش‌های خرابی هرگز به طور خودکار ارسال نمیشن.</string>
<string name="copy_value">مقدار کپی</string>
<string name="copied_to_clipboard">کپی تو کیبورد</string>
<string name="nothing_to_copy">ارزشی پیدا نشد</string>
<string name="noGiftCardsGroup">چند کارت ایجاد کنید و سپس آنها را به گروه اینجا اختصاص دهید</string>
</resources>

View File

@@ -98,7 +98,7 @@
<item>nb-rNO</item>
<item>nl</item>
<item>oc</item>
<!-- <item>peo</item> -->
<item>peo</item>
<item>pl</item>
<item>pt</item>
<item>pt-rBR</item>

View File

@@ -33,6 +33,7 @@
<locale android:name="nb-NO" />
<locale android:name="nl" />
<locale android:name="oc" />
<locale android:name="peo" />
<locale android:name="pl" />
<locale android:name="pt" />
<locale android:name="pt-BR" />

View File

@@ -0,0 +1 @@
- Fix change introduced in 2.41.0 that broke support for some scanners for non-UTF-8 barcodes

View File

@@ -0,0 +1,3 @@
- Põhivaate täheikoonide hägusus on parandatud
- Parandasime olukorra, kus ikoonid mõnel juhul peale valimist kadusid
- Parandasime olukorra, kus olekuriba ikoonid võisid Android 5 puhul muutuda nähtamatuks

View File

@@ -0,0 +1,14 @@
- اکنون رسماً از لیست بارکدهای تک بعدی و دو بعدی زیر پشتیبانی می‌کند:
- AZTEC
- CODABAR
- CODE_39
- CODE_128
- DATA_MATRIX
- EAN_8
- EAN_13
- ITF
- PDF_417
- QR_CODE
- UPC_A
- بارکدهای تولید شده بزرگتر هستند و اسکن آنها از دستگاه اسکنر آسان‌تر است‭

View File

@@ -1,5 +1,5 @@
- Codice esistente pre-compilato, quando si modifica un codice carta. (pull #94 (https://github.com/brarcher/loyalty-card-locker/pull/94))
- Limitazione della larghezza dei codici a barre generati per ridurre l'uso e gli errori di memoria. (pull #103 (https://github.com/brarcher/loyalty-card-locker/pull/103))
- Per effettuare modifiche codici carta esistenti, il pulsante "Inserisci carta" è cambiato a "Modifica carta" . (pull #104 (https://github.com/brarcher/loyalty-card-locker/pull/104))
- Modificata la combinazione di colori, resa più attenuata e in linea con l'icona dell'app e pulizia del layout di visualizzazione scheda. (pull #107 (https://github.com/brarcher/loyalty-card-locker/pull/107))
- Aggiunta un'introduzione guidata che appare al primo avvio dell'applicazione. (pull #108 (https://github.com/brarcher/loyalty-card-locker/pull/108))
- Precompilazione ID esistente, quando si modifica un codice carta (pull #94)
- Limitazione della larghezza dei codici a barre generati per migliorie di memoria (pull #103)
- In caso di modifiche di carte esistenti, il pulsante "Inserisci carta" diventa "Modifica carta" (pull #104)
- Modificata lo schema di colori, attenuato e in linea con l'icona dell'app; pulizia del layout di visualizzazione scheda (pull #107)
- Aggiunta un'introduzione guidata al primo avvio dell'applicazione (pull #108)

View File

@@ -1,7 +1,7 @@
- Aggiunto supporto all'arabo
- Aggiunta lingua araba
- Visualizza il numero delle carte archiviate nella panoramica di gruppo
- Risolti bug di parsing (non consentivano il salvataggio di carte in Arabo ed altre lingue con sistemi di numerazione non occidentali)
- Corretta la visualizzazione di temi personalizzati nella schermata principale
- Migliorata visualizzazione delle carte selezionate
- Correzione del crash quando si esce da una carta nei layout RTL con scadenza o saldo.
- Sistemata la freccia che puntava nella direzione sbagliata nella vista scheda dei layout RTL
- Risolti bug di salvataggio di carte in Arabo ed altre lingue con sistemi di numerazione non occidentali
- Corretta la resa di temi personalizzati nella schermata principale
- Migliorata resa delle carte selezionate
- Correzione del crash quando si esce da una carta (layout RTL) con scadenza o saldo.
- Sistemata la freccia che puntava nella direzione sbagliata nella schermata carta ( layout RTL)

View File

@@ -1,2 +1,2 @@
- Una precedente modifica alla versione 0.11 riduceva l'utilizzo della memoria generando codici a barre più corti. La nuova modifica mantiene la lunghezza del codice a barre riducendo l'utilizzo della memoria. (pull #126 (https://github.com/brarcher/loyalty-card-locker/pull/126))
- Aggiornamento delle traduzioni in tedesco e francese. (pull #122 (https://github.com/brarcher/loyalty-card-locker/pull/122), pull #124 (https://github.com/brarcher/loyalty-card-locker/pull/124), pull #125 (https://github.com/brarcher/loyalty-card-locker/pull/125))
- Una precedente modifica alla versione 0.11 riduceva l'utilizzo della memoria generando codici a barre più corti. La nuova modifica mantiene la lunghezza del codice a barre riducendo l'utilizzo della memoria. (pull #126)
- Aggiornamento delle traduzioni in tedesco e francese. (pull #122, pull #124, pull #125)

View File

@@ -3,3 +3,4 @@
- Corretto un caso limite che causava uno stato non valido dell'interfaccia attivando la visualizzazione dell'archivio
- Usato il tema o il colore della carta per la barra di navigazione (Android 8.1+)
- Aggiornato il selettore della validità e delle date di scadenza
- Aggiunta opzione per forzare la rotazione (ignorando impostazione generale del sistema)

View File

@@ -0,0 +1 @@
- Varie correzioni e miglioramenti alla gestione del saldo

View File

@@ -0,0 +1,4 @@
- Supporto per la creazione di una scheda a partire dalla condivisione di testo semplice
- Visualizzazione del tipo di immagine invece del codice a barre sotto le immagini
- Sistemato potenziale crash quando si cerca di importare un backup dall'app Nextcloud
- Supporto migliorato per dispositivi senza fotocamera

View File

@@ -0,0 +1,4 @@
- Consentire nomi di negozio lunghi di andare a capo in anteprima
- Opzione per usare l'immagine anteriore del retro nel menu delle miniature
- Correzioni minori su importazione/esportazione
- Correzioni minori dell'interfaccia utente

View File

@@ -0,0 +1 @@
- Sistemata gesture indietro che chiude la tastiera in schermata principale e ricerca su Android 13+

View File

@@ -0,0 +1,3 @@
- Opzione per navigare le carte con i tasti volume
- Sistemata importazione Stocard
- Sistemato messaggio "Import annullato" che appare dopo un'importazione riuscita

View File

@@ -1,3 +1,3 @@
- Aggiunta l'opzione di blocco della rotazione dello schermo quando si visualizza una carta. Se il blocco è attivo, lo schermo passa all'orientamento predefinito, bloccando un'ulteriore rotazione. (pull #128 (https://github.com/brarcher/loyalty-card-locker/pull/128)).
- Se una carta selezionata dalla schermata principale non può essere caricata, l'applicazione si blocca e compare un messaggio di errore. (pull #132 (https://github.com/brarcher/loyalty-card-locker/pull/132))
- Correzione ID dei layout non trovati per l'introduzione guidata. (pull #128 (https://github.com/brarcher/loyalty-card-locker/pull/128))
- Aggiunta l'opzione di blocco della rotazione dello schermo quando si visualizza una carta. Se il blocco è attivo, lo schermo passa all'orientamento predefinito, bloccando un'ulteriore rotazione. (pull #128).
- Se una carta selezionata dalla schermata principale non può essere caricata, l'applicazione si blocca e compare un messaggio di errore. (pull #132)
- Correzione ID dei layout non trovati per l'introduzione guidata. (pull #128)

View File

@@ -0,0 +1 @@
- Corretto testo a capo nel dialogo di aggiunta

View File

@@ -0,0 +1,4 @@
- Cambiata larghezza colonne preimpostata a 4 per schermi larghi
- Si può ora modificare la configurazione del numero di colonne in modalità verticale e orizzontale
- Mantenuto filtro di ricerca quando si ruota lo schermo o si apre una carta
- Limitata lunghezza massima delle note sulla schermata principale

View File

@@ -0,0 +1,3 @@
- Aggiunto supporto Passbook (.pkpass)
- Sistemato import di file PDF trasparenti
- Migliorata la visualizzazione di miniature trasparenti

View File

@@ -0,0 +1,3 @@
- Compatibilità Android 15
- Sistemata tastiera che copre tasto salva in schermata di modifica
- Sistemati alcuni file pkpass non rilevati come tali (supporto tipo MIME application/vnd-com.apple.pkpass)

View File

@@ -0,0 +1,2 @@
- Aggiunto un widget che mostra tutte le carte non archiviate
- Impedito che la tastiera copra il tasto salva in schermate di modifica e dei gruppi

View File

@@ -0,0 +1,2 @@
- Nuovo design del logo Catima
- Aggiornamento traduzioni

View File

@@ -0,0 +1,3 @@
- Aggiunto supporto per file .pkpasses
- Rimossa importazione Stocard (Stocard non esiste più)
- Disattivate temporaneamente le immagini dei widget per versioni inferiori a Android 12L (per aggirare un crash)

View File

@@ -0,0 +1,4 @@
- Compatibilità Android 16
- Sistemato un possibile crash in caso di rimozione dell'immagine dalla carta
- Rimossa funzionalità "Orientazione schermo" (Google impedisce alle app la possibiltà di controllare la rotazione dello schermo se si sviluppa per Android 16)
- Aggiunto segnalatore di interruzioni anomale nella versione FOSS (non usato nella versione Google Play, ma soltanto per quelle di altri negozi di applicazioni)

View File

@@ -0,0 +1 @@
- Corretta potenziale interruzione anomala in caso di carte prive di informazioni sul colore nella base dati

View File

@@ -0,0 +1 @@
- Preparativi per migliorie future (riscritte molte classi in Kotlin)

View File

@@ -0,0 +1,2 @@
- Copia l'ID della carta negli appunti dalla finestra di dialogo o con pressione prolungata
- Scambiati campi saldo e divisa per evitare si spera arrotondamenti non voluti

View File

@@ -1,5 +1,5 @@
- Aggiunto supporto per creare collegamenti alla schermata iniziale quando si aggiunge o modifica una carta. (pull #155 (https://github.com/brarcher/loyalty-card-locker/pull/155))
- Rimosso il widget, in quanto non era un buon sostituto per le scorciatoie. (pull #155 (https://github.com/brarcher/loyalty-card-locker/pull/155))
- Corretta l'esportazione dei backup su Android 7+. (pull #153 (https://github.com/brarcher/loyalty-card-locker/pull/153))
- Report più specifico del tipo MIME durante l'esportazione dei dati di backup. (pull #156 (https://github.com/brarcher/loyalty-card-locker/pull/156))
- Correzione del bug che impediva la modifica di una carta. (pull #155 (https://github.com/brarcher/loyalty-card-locker/pull/155))
- Aggiunto supporto per creare collegamenti alla schermata iniziale quando si aggiunge o modifica una carta. (pull #155)
- Rimosso il widget, in quanto non era un buon sostituto per le scorciatoie. (pull #155)
- Corretta l'esportazione dei backup su Android 7+. (pull #153)
- Report più specifico del tipo MIME durante l'esportazione dei dati di backup. (pull #156)
- Correzione del bug che impediva la modifica di una carta. (pull #155)

View File

@@ -1,4 +1,4 @@
- Aggiunta di un'impostazione per controllare la luminosità dello schermo quando si visualizza un codice a barre (pull #259 (https://github.com/brarcher/loyalty-card-locker/pull/259))
- Aggiunte traduzioni in greco (pull #252 (https://github.com/brarcher/loyalty-card-locker/pull/252))
- Aggiunte traduzioni in sloveno (pull #260 (https://github.com/brarcher/loyalty-card-locker/pull/260))
- Aggiornamento traduzioni (pull #260 (https://github.com/brarcher/loyalty-card-locker/pull/260), pull #254 (https://github.com/brarcher/loyalty-card-locker/pull/254))
- Aggiunta di un'impostazione per controllare la luminosità dello schermo quando si visualizza un codice a barre (pull #259)
- Aggiunte traduzioni in greco (pull #252)
- Aggiunte traduzioni in sloveno (pull #260)
- Aggiornamento traduzioni (pull #260, pull #254)

View File

@@ -1,14 +1,14 @@
- Aggiunta la possibilità di cercare una carta (#320 (https://github.com/brarcher/loyalty-card-locker/pull/320))
- Aggiunta opzione per condividere e ricevere carte fedeltà (#321 (https://github.com/brarcher/loyalty-card-locker/pull/321))
- Supporto della modalità notte (#322 (https://github.com/brarcher/loyalty-card-locker/pull/322))
- Le carte fedeltà possono ora essere prive di codice a barre (non hanno un codice a barre) (#324 (https://github.com/brarcher/loyalty-card-locker/pull/324))
- Le note possono occupare più righe (#326 (https://github.com/brarcher/loyalty-card-locker/pull/326))
- Miglioramenti al dimensionamento delle note (#319 (https://github.com/brarcher/loyalty-card-locker/pull/319))
- Miglioramento della visibilità delle notifiche e delle icone dell'app (#330 (https://github.com/brarcher/loyalty-card-locker/pull/330))
- Aggiornamento del SDK target ad Android 10
- Migliorare le seguenti traduzioni
- Tedesco
- Italiano
- Olandese
- Polacco
- Russo
- Aggiunta possibilità di cercare una carta (#320)
- Aggiunta opzione per condividere e ricevere carte fedeltà (#321)
- Supporto modalità notte (#322)
- Carte fedeltà possono ora essere prive di codice a barre (#324)
- Note possono occupare più righe (#326)
- Migliorato dimensionamento note (#319)
- Migliorata visibilità notifiche e icone dell'app (#330)
- Aggiornato SDK target ad Android 10
- Migliorate le seguenti traduzioni:
- Tedesco
- Italiano
- Olandese
- Polacco
- Russo

View File

@@ -1,5 +1,5 @@
- ATTENZIONE: cambiato il formato del backup, vedi https://github.com/TheLastProject/Catima/wiki/Export-format
- ATTENZIONE: cambiato il formato di condivisione URL, vedi https://github.com/TheLastProject/Catima/wiki/Card-sharing-URL-format.
- ATTENZIONE: cambiato il formato del backup
- ATTENZIONE: cambiato il formato di condivisione URL
- Utilizzo della torcia nella scansione
- Aggiunto il supporto UPC-E
- Foto fronte/retro delle carte

View File

@@ -1,4 +1,4 @@
- Luminosità dello schermo aumentata al massimo quando si visualizza una carta, per aiutare i lettori di codici a barre a catturare con successo il codice. (pull #54 (https://github.com/brarcher/loyalty-card-locker/pull/54))
- Aggiunta una conferma di eliminazione quando si elimina una carta. (pull #55 (https://github.com/brarcher/loyalty-card-locker/pull/55))
- Aggiunte traduzioni per il tedesco (pull #57 (https://github.com/brarcher/loyalty-card-locker/pull/57)) e il ceco (pull #58 (https://github.com/brarcher/loyalty-card-locker/pull/58)).
- Chiarita modifica per la traduzione italiana. (pull #66 (https://github.com/brarcher/loyalty-card-locker/pull/66))
- Luminosità dello schermo aumentata al massimo quando si visualizza una carta, per aiutare i lettori di codici a barre a catturare con successo il codice. (pull #54)
- Aggiunta una conferma di eliminazione quando si elimina una carta. (pull #55)
- Aggiunte traduzioni per il tedesco (pull #57 ) e il ceco (pull #58).
- Chiarita modifica per la traduzione italiana. (pull #66)

View File

@@ -1,7 +1,7 @@
La parte "Locker" del nome non era intuitiva. Per rimediare a ciò, è stata creata una nuova icona dell'applicazione da betsythefc che rappresenta meglio lo scopo dell'applicazione: conservare carte fedeltà che utilizzano codici a barre. Insieme a questa nuova icona, il nome dell'applicazione è stato cambiato in "Portachiavi Carte Fedeltà".
La parte "Locker" del nome non era intuitiva. Per ovviare, è stata creata da betsythefc una nuova icona che rappresenta meglio lo scopo dell'app: conservare carte fedeltà che utilizzano codici a barre. In parallelo, il nome è stato cambiato in "Loyalty Card Keychain".
Funzionalità/miglioramenti aggiuntivi:
- L'importazione/esportazione delle carte è stata modificata per essere più flessibile. (pull #76 (https://github.com/brarcher/loyalty-card-locker/pull/76))
- Traduzioni in lituano aggiunte. (pull #62 (https://github.com/brarcher/loyalty-card-locker/pull/62))
- Traduzioni in francese aggiunte. (pull #80 (https://github.com/brarcher/loyalty-card-locker/pull/80))
- L'importazione/esportazione di carte è stata modificata per essere più flessibile. (pull #76)
- Traduzioni in lituano aggiunte. (pull #62)
- Traduzioni in francese aggiunte. (pull #80)

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

@@ -1 +1 @@
Catima — Carte Fedeltà
Catima — Carte fedeltà

View File

@@ -1,6 +1,6 @@
[versions]
# AndroidX
compose = "2025.11.01"
compose = "2025.12.01"
# Third-party
acra = "5.13.1"
@@ -22,7 +22,7 @@ com-google-android-material-material = { group = "com.google.android.material",
com-android-tools-desugar_jdk_libs = { group = "com.android.tools", name = "desugar_jdk_libs", version = "2.1.5" }
# Compose
androidx-activity-activity-compose = { group = "androidx.activity", name = "activity-compose", version = "1.10.1" }
androidx-activity-activity-compose = { group = "androidx.activity", name = "activity-compose", version = "1.12.2" }
androidx-compose-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose" }
androidx-compose-foundation-foundation = { group = "androidx.compose.foundation", name = "foundation" }
androidx-compose-material3-material3 = { group = "androidx.compose.material3", name = "material3"}