Compare commits

..

50 Commits

Author SHA1 Message Date
Sylvia van Os
83f9a2bcc9 Release Catima 2.34.2 2024-12-26 19:59:09 +01:00
Sylvia van Os
1b817222f0 Merge pull request #2256 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-12-26 19:57:45 +01:00
Edgars Andersons
50db796a47 Translated using Weblate (Latvian)
Currently translated at 5.6% (8 of 142 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lv/
2024-12-26 19:48:28 +01:00
Doctorredits_here
f2f7fe3151 Translated using Weblate (Indonesian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/id/
2024-12-26 19:48:28 +01:00
大王叫我来巡山
90293b90fb Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (142 of 142 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/zh_Hans/
2024-12-26 19:48:27 +01:00
Максим Горпиніч
f1751eaebf Translated using Weblate (Ukrainian)
Currently translated at 100.0% (142 of 142 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/uk/
2024-12-26 19:48:25 +01:00
solokot
19a3aa0b86 Translated using Weblate (Russian)
Currently translated at 100.0% (142 of 142 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/ru/
2024-12-26 19:48:22 +01:00
B o d o
a3b901e357 Translated using Weblate (German)
Currently translated at 100.0% (142 of 142 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-12-26 19:48:19 +01:00
solokot
fbe12cfadc Translated using Weblate (Russian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ru/
2024-12-26 19:48:17 +01:00
Sylvia van Os
3ffbf11902 Merge pull request #2255 from CatimaLoyalty/create-pull-request/patch-1735164841
Update Fastlane changelogs
2024-12-25 23:14:22 +01:00
TheLastProject
5c3b32a6ee Update Fastlane changelogs 2024-12-25 22:14:00 +00:00
Sylvia van Os
36267b8255 Update CHANGELOG 2024-12-25 23:13:47 +01:00
Sylvia van Os
668c9b0d76 Merge pull request #2253 from CatimaLoyalty/fix/2249
Improve star and archive display
2024-12-25 23:13:08 +01:00
Sylvia van Os
eebbe6dec8 Improve star and archive display
By improving the icons to all have a small border, they will be visible
on every background and we can severely simplify the code
2024-12-25 21:06:15 +01:00
Sylvia van Os
a84ae51a4f Merge pull request #2251 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-12-24 15:46:49 +01:00
Peter Dave Hello
bdbb977233 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/zh_Hant/
2024-12-24 15:00:28 +01:00
Sylvia van Os
ac27cc6a1e Merge pull request #2238 from CatimaLoyalty/feature/flavours
Start using flavours
2024-12-24 14:47:29 +01:00
Sylvia van Os
91551bf4e8 Start using flavours
Currently, this just allows us to remove the donation button on Google
Play without using the deprecated installer APIs.

In the future, this should allow us to also release multiple versions of
Catima (for example: WearOS is a commonly requested feature, but this
needs non-free dependencies, which may not be okay to all users).
2024-12-24 14:33:35 +01:00
Sylvia van Os
e8c11debfd Merge pull request #2247 from CatimaLoyalty/dependabot/gradle/com.android.tools-desugar_jdk_libs-2.1.4
Bump com.android.tools:desugar_jdk_libs from 2.1.3 to 2.1.4
2024-12-23 11:46:40 +01:00
Sylvia van Os
e29a1c659f Merge pull request #2246 from CatimaLoyalty/dependabot/github_actions/actions/upload-artifact-4.5.0
Bump actions/upload-artifact from 4.4.3 to 4.5.0
2024-12-23 11:45:31 +01:00
dependabot[bot]
d66bf0e3fd Bump com.android.tools:desugar_jdk_libs from 2.1.3 to 2.1.4
Bumps [com.android.tools:desugar_jdk_libs](https://github.com/google/desugar_jdk_libs) from 2.1.3 to 2.1.4.
- [Changelog](https://github.com/google/desugar_jdk_libs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google/desugar_jdk_libs/commits)

---
updated-dependencies:
- dependency-name: com.android.tools:desugar_jdk_libs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 02:16:11 +00:00
dependabot[bot]
172b71dd00 Bump actions/upload-artifact from 4.4.3 to 4.5.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.3 to 4.5.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4.4.3...v4.5.0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 02:11:36 +00:00
Sylvia van Os
10ce432c97 Merge pull request #2244 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-12-22 12:55:42 +01:00
Sylvia van Os
3299a8dca3 Merge pull request #2245 from CatimaLoyalty/create-pull-request/patch-1734841042
Update contributors
2024-12-22 11:44:56 +01:00
TheLastProject
5dca8bc5d2 Update contributors 2024-12-22 04:17:21 +00:00
grgergo
1b8f8704f5 Translated using Weblate (Hungarian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/hu/
2024-12-22 02:38:39 +01:00
Deleted User
64e801311b Translated using Weblate (German)
Currently translated at 100.0% (141 of 141 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/de/
2024-12-22 02:38:39 +01:00
Sylvia van Os
da8202b4e1 Merge pull request #2242 from CatimaLoyalty/create-pull-request/patch-1734762145
Update Gradle to 8.12
2024-12-21 21:26:13 +01:00
Sylvia van Os
72d70f1265 Merge pull request #2243 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-12-21 20:42:01 +01:00
Edgars Andersons
660597e89a Translated using Weblate (Latvian)
Currently translated at 4.9% (7 of 141 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/lv/
2024-12-21 09:00:52 +01:00
Edgars Andersons
4a48ac8797 Translated using Weblate (Latvian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/lv/
2024-12-21 09:00:51 +01:00
TheLastProject
4c61c19e4f Update Gradle to 8.12 2024-12-21 06:22:24 +00:00
Sylvia van Os
bb3b13364c Merge pull request #2237 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-12-18 19:18:07 +01:00
Sylvia van Os
b34bb65f79 Translated using Weblate (Tamil)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ta/
2024-12-18 19:00:02 +01:00
தமிழ்நேரம்
a7cfb4b68f Translated using Weblate (Tamil)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ta/
2024-12-18 16:00:34 +01:00
Trond Kjetil Bremnes
8d58a6192d Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/nb_NO/
2024-12-18 16:00:33 +01:00
Sylvia van Os
1da34ceda4 Merge pull request #2236 from weblate/weblate-catima-catima
Translations update from Hosted Weblate
2024-12-17 18:59:58 +01:00
தமிழ்நேரம்
dc31b7e839 Translated using Weblate (Tamil)
Currently translated at 93.9% (312 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ta/
2024-12-17 00:00:38 +01:00
Priit Jõerüüt
5c6ee7b787 Translated using Weblate (Estonian)
Currently translated at 4.2% (6 of 141 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/et/
2024-12-17 00:00:36 +01:00
Nguyen Duc Tri Thuc
5620a62cad Translated using Weblate (Vietnamese)
Currently translated at 11.3% (16 of 141 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/vi/
2024-12-17 00:00:34 +01:00
Sylvia van Os
429abb4914 Merge pull request #2234 from CatimaLoyalty/create-pull-request/patch-1734236299
Update contributors
2024-12-15 09:54:00 +01:00
Sylvia van Os
f90d33daf7 Merge pull request #2235 from CatimaLoyalty/weblate
Weblate
2024-12-15 09:52:55 +01:00
தமிழ்நேரம்
baa67cf9f4 Translated using Weblate (Tamil)
Currently translated at 99.6% (331 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ta/
2024-12-15 09:44:55 +01:00
Isard Sabut
4054269db3 Translated using Weblate (Catalan)
Currently translated at 18.9% (63 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/ca/
2024-12-15 09:44:35 +01:00
Augustin LAVILLE
559b8d00dd Translated using Weblate (French)
Currently translated at 99.2% (140 of 141 strings)

Translation: Catima/Android (Fastlane)
Translate-URL: https://hosted.weblate.org/projects/catima/fastlane/fr/
2024-12-15 09:44:35 +01:00
Максим Горпиніч
9b9c19586f Translated using Weblate (Ukrainian)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/uk/
2024-12-15 09:44:35 +01:00
Augustin LAVILLE
a3407734a7 Translated using Weblate (French)
Currently translated at 100.0% (332 of 332 strings)

Translation: Catima/Android
Translate-URL: https://hosted.weblate.org/projects/catima/catima/fr/
2024-12-15 09:44:35 +01:00
TheLastProject
99c579ee51 Update contributors 2024-12-15 04:18:18 +00:00
Sylvia van Os
81bc7db43e Merge pull request #2232 from CatimaLoyalty/create-pull-request/patch-1734181312
Update feature graphic
2024-12-14 14:08:58 +01:00
TheLastProject
89356dac50 Update feature graphic 2024-12-14 13:01:51 +00:00
47 changed files with 255 additions and 205 deletions

View File

@@ -30,39 +30,45 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [ 21, 34 ]
flavor: [Foss, Gplay]
steps:
- uses: actions/checkout@v4.2.2
- name: Fail on bad translations
run: if grep -ri "&lt;xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi
- uses: gradle/actions/wrapper-validation@v4
- name: set up OpenJDK 17
run: |
sudo apt-get update
sudo apt-get install -y openjdk-17-jdk-headless
sudo update-alternatives --auto java
- name: Build
run: ./gradlew assembleRelease
- name: Check lint
run: ./gradlew lintRelease
- name: Run unit tests
run: timeout 5m ./gradlew testReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew testReleaseUnitTest; }
- name: Enable KVM
run: |
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
uses: ReactiveCircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
arch: x86_64
script: ./gradlew connectedCheck
- name: SpotBugs
run: ./gradlew spotbugsRelease
- name: Archive test results
if: always()
uses: actions/upload-artifact@v4.4.3
with:
name: test-results-api${{ matrix.api-level }}
path: app/build/reports
- uses: actions/checkout@v4.2.2
- name: Fail on bad translations
run: if grep -ri "&lt;xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi
- uses: gradle/actions/wrapper-validation@v4
- name: set up OpenJDK 17
run: |
sudo apt-get update
sudo apt-get install -y openjdk-17-jdk-headless
sudo update-alternatives --auto java
- name: Build
run: ./gradlew assemble${{ matrix.flavor }}Release
- name: Check lint
run: ./gradlew lint${{ matrix.flavor }}Release
- name: Run unit tests
run: timeout 5m ./gradlew test${{ matrix.flavor }}ReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew test${{ matrix.flavor }}ReleaseUnitTest; }
- name: Enable KVM
run: |
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)
uses: ReactiveCircus/android-emulator-runner@v2
with:
api-level: 21
arch: x86_64
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
- name: Run instrumented tests (API 34)
uses: ReactiveCircus/android-emulator-runner@v2
with:
api-level: 34
arch: x86_64
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
- name: SpotBugs
run: ./gradlew spotbugs${{ matrix.flavor }}Release
- name: Archive test results
if: always()
uses: actions/upload-artifact@v4.5.0
with:
name: test-results-flavor${{ matrix.flavor }}
path: app/build/reports

3
.gitignore vendored
View File

@@ -25,3 +25,6 @@
/.bundle/
/vendor/bundle
/lib/bundler/man/
# Catima-specific
SHA256SUMS

View File

@@ -1,5 +1,9 @@
# Changelog
## v2.34.2 - 144 (2024-12-26)
- Improve archive/starred icon display
## v2.34.1 - 143 (2024-12-12)
- Fix crash when opening invalid pkpass files

View File

@@ -22,8 +22,8 @@ android {
applicationId = "me.hackerchick.catima"
minSdk = 21
targetSdk = 34
versionCode = 143
versionName = "2.34.1"
versionCode = 144
versionName = "2.34.2"
vectorDrawables.useSupportLibrary = true
multiDexEnabled = true
@@ -31,6 +31,9 @@ android {
resourceConfigurations += listOf("ar", "bg", "bn", "bn-rIN", "bs", "cs", "da", "de", "el-rGR", "en", "eo", "es", "es-rAR", "et", "fi", "fr", "gl", "he-rIL", "hi", "hr", "hu", "in-rID", "is", "it", "ja", "ko", "lt", "lv", "nb-rNO", "nl", "oc", "pl", "pt-rBR", "pt-rPT", "ro-rRO", "ru", "sk", "sl", "sr", "sv", "ta", "tr", "uk", "vi", "zh-rCN", "zh-rTW")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
buildConfigField("boolean", "showDonate", "true")
buildConfigField("boolean", "showRateOnGooglePlay", "false")
}
buildTypes {
@@ -51,6 +54,21 @@ android {
viewBinding = true
}
flavorDimensions.add("type")
productFlavors {
create("foss") {
dimension = "type"
isDefault = true
}
create("gplay") {
dimension = "type"
// Google doesn't allow donation links
buildConfigField("boolean", "showDonate", "false")
buildConfigField("boolean", "showRateOnGooglePlay", "true")
}
}
bundle {
language {
enableSplit = false
@@ -100,7 +118,7 @@ dependencies {
implementation("androidx.palette:palette:1.0.0")
implementation("androidx.preference:preference:1.2.1")
implementation("com.google.android.material:material:1.12.0")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.3")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
// Third-party
implementation("com.journeyapps:zxing-android-embedded:4.3.0@aar")

View File

@@ -45,11 +45,10 @@ public class AboutActivity extends CatimaAppCompatActivity {
binding.rate.setTag("https://play.google.com/store/apps/details?id=me.hackerchick.catima");
binding.donate.setTag("https://catima.app/donate");
boolean installedFromGooglePlay = Utils.installedFromGooglePlay(this);
// Hide Google Play rate button if not on Google Play
binding.rate.setVisibility(installedFromGooglePlay ? View.VISIBLE : View.GONE);
binding.rate.setVisibility(BuildConfig.showRateOnGooglePlay ? View.VISIBLE : View.GONE);
// Hide donate button on Google Play (Google Play doesn't allow donation links)
binding.donate.setVisibility(installedFromGooglePlay ? View.GONE : View.VISIBLE);
binding.donate.setVisibility(BuildConfig.showDonate ? View.VISIBLE : View.GONE);
bindClickListeners();
}

View File

@@ -124,9 +124,9 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
}
inputHolder.mCardIcon.setContentDescription(loyaltyCard.store);
inputHolder.mIconBackgroundColor = Utils.setIconOrTextWithBackground(mContext, loyaltyCard, icon, inputHolder.mCardIcon, inputHolder.mCardText, new Settings(mContext).getPreferredColumnCount());
Utils.setIconOrTextWithBackground(mContext, loyaltyCard, icon, inputHolder.mCardIcon, inputHolder.mCardText, new Settings(mContext).getPreferredColumnCount());
inputHolder.toggleCardStateIcon(loyaltyCard.starStatus != 0, loyaltyCard.archiveStatus != 0, itemSelected(inputCursor.getPosition()));
inputHolder.toggleCardStateIcon(loyaltyCard.starStatus != 0, loyaltyCard.archiveStatus != 0);
inputHolder.itemView.setActivated(mSelectedItems.get(inputCursor.getPosition(), false));
applyIconAnimation(inputHolder, inputCursor.getPosition());
@@ -212,13 +212,11 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
public class LoyaltyCardListItemViewHolder extends RecyclerView.ViewHolder {
public TextView mCardText, mStoreField, mNoteField, mBalanceField, mValidFromField, mExpiryField;
public ImageView mCardIcon, mStarBackground, mStarBorder, mTickIcon, mArchivedBackground;
public ImageView mCardIcon, mTickIcon;
public MaterialCardView mRow;
public ConstraintLayout mStar, mArchived;
public View mDivider;
private int mIconBackgroundColor;
protected LoyaltyCardListItemViewHolder(LoyaltyCardLayoutBinding loyaltyCardLayoutBinding, CardAdapterListener inputListener) {
super(loyaltyCardLayoutBinding.getRoot());
View inputView = loyaltyCardLayoutBinding.getRoot();
@@ -232,10 +230,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
mCardIcon = loyaltyCardLayoutBinding.thumbnail;
mCardText = loyaltyCardLayoutBinding.thumbnailText;
mStar = loyaltyCardLayoutBinding.star;
mStarBackground = loyaltyCardLayoutBinding.starBackground;
mStarBorder = loyaltyCardLayoutBinding.starBorder;
mArchived = loyaltyCardLayoutBinding.archivedIcon;
mArchivedBackground = loyaltyCardLayoutBinding.archiveBackground;
mTickIcon = loyaltyCardLayoutBinding.selectedThumbnail;
inputView.setOnLongClickListener(view -> {
inputListener.onRowClicked(getAdapterPosition());
@@ -297,31 +292,7 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
mNoteField.requestLayout();
}
public void toggleCardStateIcon(boolean enableStar, boolean enableArchive, boolean colorByTheme) {
/* the below code does not work in android 5! hence the change of drawable instead
boolean needDarkForeground = Utils.needsDarkForeground(mIconBackgroundColor);
Drawable borderDrawable = mStarBorder.getDrawable().mutate();
Drawable backgroundDrawable = mStarBackground.getDrawable().mutate();
DrawableCompat.setTint(borderDrawable, needsDarkForeground ? Color.BLACK : Color.WHITE);
DrawableCompat.setTint(backgroundDrawable, needsDarkForeground ? Color.BLACK : Color.WHITE);
mStarBorder.setImageDrawable(borderDrawable);
mStarBackground.setImageDrawable(backgroundDrawable);
*/
boolean dark = Utils.needsDarkForeground(mIconBackgroundColor);
if (colorByTheme) {
dark = !mDarkModeEnabled;
}
if (dark) {
mStarBorder.setImageResource(R.drawable.ic_unstarred_white);
mStarBackground.setImageResource(R.drawable.ic_starred_black);
mArchivedBackground.setImageResource(R.drawable.ic_baseline_archive_24_black);
} else {
mStarBorder.setImageResource(R.drawable.ic_unstarred_black);
mStarBackground.setImageResource(R.drawable.ic_starred_white);
mArchivedBackground.setImageResource(R.drawable.ic_baseline_archive_24);
}
public void toggleCardStateIcon(boolean enableStar, boolean enableArchive) {
if (enableStar) {
mStar.setVisibility(View.VISIBLE);
} else{
@@ -333,11 +304,6 @@ public class LoyaltyCardCursorAdapter extends BaseCursorAdapter<LoyaltyCardCurso
} else{
mArchived.setVisibility(View.GONE);
}
mStarBorder.invalidate();
mStarBackground.invalidate();
mArchivedBackground.invalidate();
}
}
}

View File

@@ -1032,21 +1032,6 @@ public class Utils {
return headerColor;
}
public static boolean installedFromGooglePlay(Context context) {
try {
String packageName = context.getPackageName();
String installer;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
installer = context.getPackageManager().getInstallSourceInfo(packageName).getInstallingPackageName();
} else {
installer = context.getPackageManager().getInstallerPackageName(packageName);
}
return installer.equals("com.android.vending");
} catch (Throwable ignored) {
return false;
}
}
public static int getHeaderColor(Context context, LoyaltyCard loyaltyCard) {
return loyaltyCard.headerColor != null ? loyaltyCard.headerColor : LetterBitmap.getDefaultColor(context, loyaltyCard.store);
}

View File

@@ -1,10 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="@android:color/black">
<path
android:fillColor="@android:color/black"
android:pathData="M20.54,5.23l-1.39,-1.68C18.88,3.21 18.47,3 18,3H6c-0.47,0 -0.88,0.21 -1.16,0.55L3.46,5.23C3.17,5.57 3,6.02 3,6.5V19c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V6.5c0,-0.48 -0.17,-0.93 -0.46,-1.27zM12,17.5L6.5,12H10v-2h4v2h3.5L12,17.5zM5.12,5l0.81,-1h12l0.94,1H5.12z"/>
</vector>

View File

@@ -1,5 +0,0 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
</vector>

View File

@@ -1,5 +0,0 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
</vector>

View File

@@ -1,5 +0,0 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"/>
</vector>

View File

@@ -1,5 +0,0 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M22,9.24l-7.19,-0.62L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21 12,17.27 18.18,21l-1.63,-7.03L22,9.24zM12,15.4l-3.76,2.27 1,-4.28 -3.32,-2.88 4.38,-0.38L12,6.1l1.71,4.04 4.38,0.38 -3.32,2.88 1,4.28L12,15.4z"/>
</vector>

View File

@@ -2,9 +2,10 @@
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="@android:color/white">
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M20.54,5.23l-1.39,-1.68C18.88,3.21 18.47,3 18,3H6c-0.47,0 -0.88,0.21 -1.16,0.55L3.46,5.23C3.17,5.57 3,6.02 3,6.5V19c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V6.5c0,-0.48 -0.17,-0.93 -0.46,-1.27zM12,17.5L6.5,12H10v-2h4v2h3.5L12,17.5zM5.12,5l0.81,-1h12l0.94,1H5.12z"/>
android:fillColor="#D3D3D3"
android:pathData="M20.54,5.23l-1.39,-1.68C18.88,3.21 18.47,3 18,3H6c-0.47,0 -0.88,0.21 -1.16,0.55L3.46,5.23C3.17,5.57 3,6.02 3,6.5V19c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V6.5c0,-0.48 -0.17,-0.93 -0.46,-1.27zM12,17.5L6.5,12H10v-2h4v2h3.5L12,17.5zM5.12,5l0.81,-1h12l0.94,1H5.12z"
android:strokeWidth="0.25"
android:strokeColor="#777777"/>
</vector>

View File

@@ -0,0 +1,11 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="#D3D3D3"
android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"
android:strokeWidth="0.25"
android:strokeColor="#777777"/>
</vector>

View File

@@ -15,8 +15,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/textView"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_baseline_archive_24" />
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"

View File

@@ -72,29 +72,15 @@
android:layout_width="@dimen/cardThumbnailSize"
android:layout_height="@dimen/cardThumbnailSize"
android:layout_gravity="end"
android:alpha="0.5"
android:alpha="0.8"
android:contentDescription="@string/starred"
android:elevation="4dp"
android:rotationX="2"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_starred_white"
tools:ignore="ImageContrastCheck" />
<ImageView
android:importantForAccessibility="no"
android:id="@+id/star_border"
android:layout_width="@dimen/cardThumbnailSize"
android:layout_height="@dimen/cardThumbnailSize"
android:layout_gravity="end"
android:alpha="0.5"
android:contentDescription="@string/starImage"
android:elevation="4dp"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_unstarred_black"
tools:ignore="ImageContrastCheck" />
app:srcCompat="@drawable/loyalty_card_icon_starred"
tools:ignore="ImageContrastCheck"/>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -110,18 +96,18 @@
<ImageView
android:id="@+id/archive_background"
android:layout_width="41dp"
android:layout_height="44dp"
android:layout_width="@dimen/cardThumbnailSize"
android:layout_height="@dimen/cardThumbnailSize"
android:layout_gravity="end"
android:alpha="0.5"
android:alpha="0.8"
android:contentDescription="@string/archived"
android:elevation="4dp"
android:rotationX="2"
android:visibility="visible"
app:srcCompat="@drawable/ic_baseline_archive_24"
tools:ignore="ImageContrastCheck,MissingConstraints"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="-1dp" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/loyalty_card_icon_archived"
tools:ignore="ImageContrastCheck" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -16,54 +16,59 @@ Altonss
Michael Moroni
Eric
GM
Petr Novák
laralem
Petr Novák
Joel A
Taco
pfaffenrodt
Aayush Gupta
Scrambled777
HudobniVolk
Giovanni Donisi
Nyatsuki
Priit Jõerüüt
B o d o
Jiri Grönroos
Максим Горпиніч
B o d o
Giovanni Donisi
HudobniVolk
Nyatsuki
Jiri Grönroos
Samantaz Fox
Cliff Heraldo
Sergio Paredes
Ankit Tiwari
Arno-github
Milo Ivir
Balázs Meskó
Milo Ivir
Arno-github
Ankit Tiwari
Sergio Paredes
Cliff Heraldo
Jose Delvani
mdvhimself
Milan Šalka
ikanakova
Skrripy
huuhaa
Skrripy
Kachelkaiser
Projjal Moitra
Quentin PAGÈS
josé m
ngocanhtve
Silvério Santos
waffshappen
Marnick L'Eau
Silvério Santos
ngocanhtve
Quentin PAGÈS
Projjal Moitra
Kachelkaiser
Robin
Ziad OUALHADJ
Robin Liu
Renko
Denis Shilin
Edgars Andersons
Renko
しいたけ
Alexander Ivanov
Miha Frangež
Viet Nguyen Hoang
தமிழ் நேரம்
stavpup
josé m
ehrt74
Virginie
Vasilis
MisterCosta96
arshbeerSingh
Augustin LAVILLE
Freddo espresso
Govind S Nair
Kim Seohyun

View File

@@ -14,4 +14,5 @@
<string name="welcome">Benvingut a Catima</string>
<string name="noGiftCards">Cliqueu el botó + més per afegir una targeta, o importeu-ne des del ⋮ menú.</string>
<string name="photos">Fotos</string>
<string name="app_name">Catima</string>
</resources>

View File

@@ -311,4 +311,7 @@
<string name="settings_automatic_column_count">Automatique</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_7">7</string>
<string name="addFromPkpass">Sélectionner un fichier Cartes / Passbook (.pkpass)</string>
<string name="unsupportedFile">Ce fichier n\'est pas supporté</string>
<string name="generic_error_please_retry">Désolé, un problème est survenu, veuillez réessayer...</string>
</resources>

View File

@@ -298,4 +298,14 @@
<string name="settings_column_count_landscape">Oszlopok fekvő módban</string>
<string name="settings_automatic_column_count">Automatikus</string>
<string name="settings_column_count_portrait">Oszlopok álló módban</string>
<string name="settings_column_count_5">5</string>
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_6">6</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_1">1</string>
<string name="addFromPkpass">Válassz egy Passbook fájlt (.pkpass)</string>
<string name="unsupportedFile">Ez a fájl nem támogatott</string>
<string name="generic_error_please_retry">Sajnálom, valami rosszul ment, próbálkozz újra...</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_7">7</string>
</resources>

View File

@@ -299,4 +299,7 @@
<string name="settings_column_count_1">1</string>
<string name="settings_column_count_4">4</string>
<string name="settings_column_count_5">5</string>
<string name="addFromPkpass">Pilih file Buku Tabungan (.pkpass)</string>
<string name="unsupportedFile">File ini tidak didukung</string>
<string name="generic_error_please_retry">Maaf, terjadi kesalahan, silakan coba lagi...</string>
</resources>

View File

@@ -36,7 +36,7 @@
<string name="failedParsingImportUriError">Nevarēja apstrādāt ievietošanas URI</string>
<string name="importExport">Ievietot/izgūt</string>
<string name="exportName">Izgūt</string>
<string name="importExportHelp">Dublējot Jūsu datus, tos var pārnest uz citu ierīci.</string>
<string name="importExportHelp">Datu rezerves kopijas izveidošana ļauj tos pārnest uz citu ierīci.</string>
<string name="importSuccessfulTitle">Ievietots</string>
<string name="importFailedTitle">Ievietošana neizdevās</string>
<string name="importFailed">Nevarēja veikt ievietošanu</string>

View File

@@ -305,4 +305,7 @@
<string name="settings_column_count_2">2</string>
<string name="settings_column_count_3">3</string>
<string name="settings_column_count_7">7</string>
<string name="addFromPkpass">Velg en Passbook-fil (.pkpass)</string>
<string name="unsupportedFile">Denne filen støttes ikke</string>
<string name="generic_error_please_retry">Beklager, men noe gikk galt. Prøv igjen…</string>
</resources>

View File

@@ -294,7 +294,7 @@
<string name="spend">Потрачено</string>
<string name="receive">Получено</string>
<string name="amountParsingFailed">Недопустимая сумма</string>
<string name="addFromPdfFile">Выбрать PDF-файл</string>
<string name="addFromPdfFile">Выбрать файл PDF</string>
<string name="errorReadingFile">Невозможно прочитать файл</string>
<string name="pageWithNumber">Страница <xliff:g>%d</xliff:g></string>
<string name="failedLaunchingFileManager">Не найден поддерживаемый файловый менеджер</string>

View File

@@ -3,6 +3,10 @@
<string name="app_name">கேடிமா</string>
<string name="action_search">தேடல்</string>
<string name="action_add">கூட்டு</string>
<plurals name="selectedCardCount">
<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="noGiftCardsGroup">சில அட்டைகளை உருவாக்கி, பின்னர் அவற்றை இங்கே குழுவிற்கு ஒதுக்குங்கள்.</string>
<string name="storeName">பெயர்</string>
@@ -261,4 +265,41 @@
<string name="useBackImage">பின் படத்தைப் பயன்படுத்தவும்</string>
<string name="addFromPkpass">பாச் புக் கோப்பைத் தேர்ந்தெடுக்கவும் (.pkpass)</string>
<string name="useFrontImage">முன் படத்தைப் பயன்படுத்தவும்</string>
</resources>
<plurals name="deleteCardsTitle">
<item quantity="one"><xliff:g>%d</xliff:g> அட்டை நீக்கு</item>
<item quantity="other"><xliff:g>%d</xliff:g> அட்டைகளை நீக்கு</item>
</plurals>
<plurals name="deleteCardsConfirmation">
<item quantity="one">இந்த <xliff:g>%d</xliff:g> அட்டையை நிரந்தரமாக நீக்கவா?</item>
<item quantity="other">இந்த <xliff:g>%d</xliff:g> அட்டைகளை நிரந்தரமாக நீக்கவா?</item>
</plurals>
<string name="editGroup">திருத்துதல் குழு: <xliff:g>%s</xliff:g></string>
<string name="debug_version_fmt">பதிப்பு: <xliff:g id="version">%s</xliff:g></string>
<plurals name="groupCardCount">
<item quantity="one"><xliff:g>%d</xliff:g> அட்டை</item>
<item quantity="other"><xliff:g>%d</xliff:g> அட்டைகள்</item>
</plurals>
<string name="expiryStateSentenceExpired">காலாவதியானது: <xliff:g>%s</xliff:g></string>
<plurals name="balancePoints">
<item quantity="one"><xliff:g>%s</xliff:g> புள்ளி</item>
<item quantity="other"><xliff:g>%s</xliff:g> புள்ளிகள்</item>
</plurals>
<string name="importLoyaltyCardKeychainMessage">இறக்குமதி செய்ய உங்கள் <i>LoyaltyCardKeychain.csv</i> விசுவாச அட்டை சாவிக்கொத்திலிருந்து ஏற்றுமதி செய். \nமுதலில் அங்கு ஏற்றுமதியை அழுத்துவதன் மூலம் விசுவாச அட்டை சாவிக்கொத்தில் இறக்குமதி/ஏற்றுமதி பட்டியலிலிருந்து அதை உருவாக்கு.</string>
<string name="validFromSentence">இதிலிருந்து செல்லுபடியாகும்: <xliff:g>%s</xliff:g></string>
<string name="newBalanceSentence">புதிய இருப்பு: <xliff:g>%s</xliff:g></string>
<string name="pageWithNumber">பக்கம் <xliff:g>%d</xliff:g></string>
<string name="currentBalanceSentence">தற்போதைய இருப்பு: <xliff:g>%s</xliff:g></string>
<string name="app_contributors">வழங்கியவர்: <xliff:g id="app_contributors">%s</xliff:g></string>
<string name="about_title_fmt">படம் <xliff:g>%s</xliff:g> பட்டைகுறியீடு</string>
<string name="barcodeImageDescriptionWithType">படம் <xliff:g>%s</xliff:g> பட்டை குறியீடு</string>
<string name="app_libraries">விடுதலை மூன்றாம் தரப்பு நூலகங்கள்: <xliff:g id="app_libraries_list">%s</xliff:g></string>
<string name="expiryStateSentence">காலாவதியாகிறது: <xliff:g>%s</xliff:g></string>
<string name="balanceSentence">இருப்பு: <xliff:g>%s</xliff:g></string>
<plurals name="groupCardCountWithArchived">
<item quantity="one"><xliff:g>%1$d</xliff:g> அட்டை (<xliff:g id="archivedCount">%2$d</xliff:g> காப்பகப்படுத்தப்பட்டது)</item>
<item quantity="other"><xliff:g>%1$d</xliff:g> அட்டைகள் (<xliff:g id="archivedCount">%2$d</xliff:g> காப்பகப்படுத்தப்பட்டது)</item>
</plurals>
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">பதிப்புரிமை © 2019<xliff:g>%d</xliff:g> சில்வியா வான் ஓஎச் மற்றும் பங்களிப்பாளர்கள்</string>
<string name="app_resources">விடுதலை மூன்றாம் தரப்பு வளங்கள்: <xliff:g id="app_resources_list">%s</xliff:g></string>
<string name="groupsList">குழுக்கள்: <xliff:g>%s</xliff:g></string>
</resources>

View File

@@ -285,7 +285,7 @@
<string name="enter_card_id">Введіть ID або текст на вашій картці</string>
<string name="addWithoutBarcode">Додати картку без штрих-коду</string>
<string name="field_must_not_be_empty">Поле вводу не повинно бути порожнім</string>
<string name="app_name">Catima</string>
<string name="app_name">Катіма</string>
<string name="settings_follow_sensor_orientation">Завжди обертати (ігнорувати системні налаштування)</string>
<string name="add_manually_warning_message">У деяких магазинах значення штрихкоду відрізняється від номера, записаного на картці. Через це введення штрихкоду вручну може не завжди спрацювати. Наполегливо рекомендуємо відсканувати штрихкод за допомогою камери. Ви все ще хочете продовжити?</string>
<string name="continue_">Продовжити</string>

View File

@@ -298,4 +298,7 @@
<string name="settings_category_title_cards_overview">卡片概覽</string>
<string name="settings_column_count_portrait">縱向模式下的列數</string>
<string name="settings_column_count_landscape">横向模式下的列數</string>
<string name="addFromPkpass">選擇 Passbook 檔案 (.pkpass)</string>
<string name="unsupportedFile">不支援此檔案</string>
<string name="generic_error_please_retry">抱歉,似乎出了點錯誤,請您再試一次...</string>
</resources>

View File

@@ -3,7 +3,7 @@ set -euo pipefail
IFS=$'\n\t'
### build.sh
### Builds Catima the same way F-Droid does for reproducible builds
### Builds Catima the same way rbtlog/IzzyOnDroid does for reproducible builds
if [ -z "${ANDROID_SDK_ROOT:-}" ]; then
echo "ANDROID_SDK_ROOT is not set, setting to $HOME/Android/Sdk";
@@ -25,7 +25,11 @@ echo "Starting build"
./gradlew clean assembleRelease
echo "Build finished (unsigned)"
echo "Your build is at app/build/outputs/apk/release/app-release-unsigned.apk"
flavourDirs=$(find app/build/outputs/apk/ -mindepth 1 -maxdepth 1 -type d)
for flavourDir in $flavourDirs; do
flavourName="$(basename "$flavourDir")"
echo "Your $flavourName flavour is at $flavourDir/release/app-$flavourName-release-unsigned.apk"
done
if [ -z "${KEYSTORE:-}" ]; then
echo "KEYSTORE not set, skipping signing..."
@@ -36,16 +40,26 @@ else
fi
apksigner_version="$(ls -1 "$HOME/Android/Sdk/build-tools/" | tail -n 1)"
cp app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/app-release.apk
"$HOME/Android/Sdk/build-tools/$apksigner_version/apksigner" sign -v --ks "$KEYSTORE" --ks-key-alias "$KEYSTORE_ALIAS" app/build/outputs/apk/release/app-release.apk
echo "Build finished (signed)"
echo "Your build is at app/build/outputs/apk/release/app-release.apk"
for flavourDir in $flavourDirs; do
flavourName="$(basename "$flavourDir")"
echo "Signing $flavourName flavour..."
cp "$flavourDir/release/app-$flavourName-release-unsigned.apk" "$flavourDir/release/app-$flavourName-release.apk"
"$HOME/Android/Sdk/build-tools/$apksigner_version/apksigner" sign -v --ks "$KEYSTORE" --ks-key-alias "$KEYSTORE_ALIAS" "$flavourDir/release/app-$flavourName-release.apk"
echo "Build finished (signed)"
echo "Your $flavourName flavour is at $flavourDir/release/app-$flavourName-release.apk"
done
shasumPath="$(pwd)/SHA256SUMS"
echo "" > "$shasumPath"
for flavourDir in $flavourDirs; do
pushd "$flavourDir/release/"
sha256sum -- *.apk >> "$shasumPath"
popd
done
echo "SHA256SUMS generated"
echo "Your SHA256SUMS are at SHA256SUMS"
fi
pushd app/build/outputs/apk/release/
sha256sum -- *.apk > SHA256SUMS
popd
echo "SHA256SUMS generated"
echo "Your SHA256SUMS is at app/build/outputs/apk/release/SHA256SUMS"

View File

@@ -6,8 +6,8 @@
3. Update `CHANGELOG.md` with the new version name and the release date
4. Update `app/build.gradle.kts` with the new `versionCode` and `versionName`
5. Create a commit for the new release: `git add CHANGELOG.md app/build.gradle.kts && git commit -m "Release Catima <VERSION>"`
6. Build a new .apk: `KEYSTORE=/path/to/keystore KEYSTORE_ALIAS=catima ./build.sh`
7. Upload the APK to Google Play Open Testing
6. Build the new .apks: `KEYSTORE=/path/to/keystore KEYSTORE_ALIAS=catima ./build.sh`
7. Upload `app/build/outputs/apk/gplay/release/app-gplay-release.apk` to Google Play Open Testing
8. Push the version update commit: `git push`
9. Create a new release on GitHub and attach the `app-release.apk` and `SHA256SUMS` files
9. Create a new release on GitHub and attach the `app/build/outputs/apk/foss/release/app-foss-release.apk` and `SHA256SUMS` files
10. After the release has been approved on Google Play Production, update the metadata there: `bundle exec fastlane supply --version_code <VERSION_CODE>`

View File

@@ -0,0 +1 @@
- Verbesserte Anzeige der Symbole Archiv/Favoriten

View File

@@ -1,7 +1,7 @@
Schluss mit der Suche nach Kundenkarten aus Plastik beim Bezahlen im Geschäft oder Webshop.
<b>Speichere Barcodes mit der Kamera auf dein Gerät und vergesse deine Karten.</b>
<b>Speichere Barcodes mit der Kamera auf dein Gerät und vergiss deine Karten.</b>
Lass deine Geldbörse daheim, oder schaffe wenigstens viel Platz für die wichtigen Wertsachen.
Lass deine Geldbörse daheim oder schaffe zumindest Platz für die wichtigen Wertsachen.
Mit diesem unverzichtbaren Programm schaffst du Platz für Bargeld statt für nutzloses Plastik.
@@ -11,12 +11,12 @@ Mit diesem unverzichtbaren Programm schaffst du Platz für Bargeld statt für nu
- Importiere Karten und Codes aus Dateien, von Catima, FidMe, Loyalty Card Keychain, Stocard oder Voucher Vault.
- Erstelle ein Backup aller deiner Karten und übertrage diese auf ein neues Gerät.
- Teile Gutscheine, exklusive Angebote, Werbeaktionscodes oder Karten und sonstige Codes mit allen Apps.
- Dunkles Design und Barrierefreiheit für sehbehinderte Nutzer.
- Dunkles Design und Barrierefreiheit für Nutzer mit Sehbehinderung.
- Von der Freien-Software-Gemeinschaft für alle Menschen gemacht.
- Lokalisierte, menschliche Übersetzungen für mehr als 40 Sprachen.
- Kostenlos, unterstützt durch Gemeinschaftsbeiträge.
- Verwende, prüfe, ändere und teile die App, wie du willst; <i>mit allen</i>.
- Nicht nur freie und quelloffene Software. Eine freie, <i>Copylefted</i> Software-Kartenverwaltung (GPLv3+).
Vereinfache dein Leben und deine Einkäufe, und verliere nie wieder einen Beleg, eine Gutscheinkarte oder ein Flugticket.
Habe deine Prämien und Boni immer bei dir, und spare unterwegs.
Vereinfache dein Leben und deine Einkäufe verliere nie wieder einen Beleg, eine Gutscheinkarte oder ein Flugticket.
Nimm deine Prämien und Boni mit und spare unterwegs.

View File

@@ -0,0 +1 @@
- Improve archive/starred icon display

View File

@@ -0,0 +1,3 @@
- Lisasime Passbooki failide (.pkpass) toe
- Parandasime läbipaistvate pdf-failide importimise
- Parandasime läbipaistvate pisipiltide kuvamist

View File

@@ -0,0 +1 @@
- Parandasime rakenduse kokkujooksmise vigase pkpass-faili avamisel

View File

@@ -1,2 +1,4 @@
- Modifier la colonne par défaut sur les écrans larges à 4
- Modifie la colonne par défaut sur les écrans larges à 4
- Permet de surcharger le nombre de colonnes pour le portrait et le paysage dans les paramètres
- Conserve le filtre de recherche de l'écran principal lors de la rotation de l'écran ou de l'ouverture d'une carte
- Limite la longueur maximale de l'affichage des notes sur l'écran principal

View File

@@ -1 +1,3 @@
- Ajoute le support des fichiers Cartes / Passbook (.pkpass)
- Corrige l'import des fiches PDF transparents
- Améliorer l'affichage des miniatures transparentes

View File

@@ -0,0 +1 @@
- Correction d'un crash lors de l'ouverture de fichiers pkpass invalides

View File

@@ -0,0 +1,3 @@
- Iespēja pārslēgties starp kartēm ar skaļuma pogām
- Salabota Stocard ievietošana
- Novērsta ziņojuma "Ievietošana atcelta" parādīšanās pēc sekmīgas ievietošanas

View File

@@ -0,0 +1 @@
- Novērsta avārija, kad tika atvērtas nederīgas pkpass datnes

View File

@@ -0,0 +1 @@
- Uzlabota arhivēšanas/izlasē ikonas attēlošana

View File

@@ -1 +1 @@
Jūsu svītrkodiem, biedru kartēm, lojalitātes programmām, kuponiem un biļetēm.
Svītrkodiem, biedru kartēm, lojalitātes programmām, kuponiem un biļetēm.

View File

@@ -0,0 +1 @@
- Улучшено отображение значка архивированных/избранных карт

View File

@@ -0,0 +1 @@
— Покращено відображення піктограм архіву/зірочки

View File

@@ -0,0 +1 @@
- Sửa lỗi văng khi mở tệp tin pkpass không hợp lệ

View File

@@ -0,0 +1 @@
- 改进存档/收藏图标显示

View File

@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=f397b287023acdba1e9f6fc5ea72d22dd63669d59ed4a289a29b1a76eee151c6
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionSha256Sum=7a00d51fb93147819aab76024feece20b6b84e420694101f276be952e08bef03
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

3
gradlew vendored
View File

@@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum