mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-26 16:47:57 -05:00
Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cfc37d4af6 | ||
|
|
43cd6edda2 | ||
|
|
0bd262d82f | ||
|
|
f09bafa104 | ||
|
|
20e34ee365 | ||
|
|
7a6bd8f661 | ||
|
|
54c3765e36 | ||
|
|
4d7f563b0d | ||
|
|
4e0ecaa7be | ||
|
|
4f41d238eb | ||
|
|
7c3d021427 | ||
|
|
bfde036484 | ||
|
|
84ef4ad030 | ||
|
|
3b85fccd60 | ||
|
|
830d0f6e6a | ||
|
|
1ceede27a3 | ||
|
|
fa33cdaca4 | ||
|
|
f39fbb55a1 | ||
|
|
f3ffa0ab88 | ||
|
|
48e1fcc38e | ||
|
|
5b889c4c0c | ||
|
|
616ca77c39 | ||
|
|
59bf064783 | ||
|
|
220393c445 | ||
|
|
b976c03fb0 | ||
|
|
dad0493666 | ||
|
|
776613c507 | ||
|
|
7570d9d319 | ||
|
|
2e648d1062 |
5
.github/workflows/contributors-to-file.yml
vendored
5
.github/workflows/contributors-to-file.yml
vendored
@@ -1,11 +1,12 @@
|
||||
name: Write contributors to file
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
schedule:
|
||||
- cron: '3 4 * * 0'
|
||||
|
||||
jobs:
|
||||
contributors_to_file:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/master'
|
||||
name: Write contributors to file
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# Changelog
|
||||
|
||||
## v2.6.1 - 84 (2021-09-25)
|
||||
|
||||
- Minor bugfixes and improvements
|
||||
|
||||
## v2.6.0 - 83 (2021-09-19)
|
||||
|
||||
- Support for changing the sorting order
|
||||
|
||||
@@ -11,15 +11,15 @@ spotbugs {
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion 30
|
||||
buildToolsVersion "30.0.3"
|
||||
compileSdkVersion 31
|
||||
buildToolsVersion "31.0.0"
|
||||
|
||||
defaultConfig {
|
||||
applicationId "me.hackerchick.catima"
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 30
|
||||
versionCode 83
|
||||
versionName "2.6.0"
|
||||
targetSdkVersion 31
|
||||
versionCode 84
|
||||
versionName "2.6.1"
|
||||
|
||||
vectorDrawables.useSupportLibrary true
|
||||
multiDexEnabled true
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
<activity
|
||||
android:name="protect.card_locker.MainActivity"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/SplashTheme">
|
||||
android:theme="@style/SplashTheme"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
|
||||
@@ -56,19 +57,28 @@
|
||||
android:theme="@style/AppTheme.NoActionBar"
|
||||
android:windowSoftInputMode="stateHidden"
|
||||
android:exported="true">
|
||||
<intent-filter android:autoVerify="true" android:label="@string/app_name">
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<!-- Main card sharing URIs -->
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
|
||||
<data android:host="@string/intent_import_card_from_url_host_catima_app"
|
||||
android:pathPrefix="@string/intent_import_card_from_url_path_prefix_catima_app" />
|
||||
</intent-filter>
|
||||
<intent-filter android:label="@string/app_name">
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<!-- Listen to known card sharing URIs -->
|
||||
<data android:scheme="https"
|
||||
android:host="@string/intent_import_card_from_url_host_catima_app"
|
||||
android:pathPrefix="@string/intent_import_card_from_url_path_prefix_catima_app" />
|
||||
<data android:scheme="https"
|
||||
android:host="@string/intent_import_card_from_url_host_thelastproject"
|
||||
<!-- Old card sharing URIs -->
|
||||
<data android:scheme="http" />
|
||||
<data android:scheme="https" />
|
||||
|
||||
<data android:host="@string/intent_import_card_from_url_host_thelastproject"
|
||||
android:pathPrefix="@string/intent_import_card_from_url_path_prefix_thelastproject" />
|
||||
<data android:scheme="https"
|
||||
android:host="@string/intent_import_card_from_url_host_brarcher"
|
||||
<data android:host="@string/intent_import_card_from_url_host_brarcher"
|
||||
android:pathPrefix="@string/intent_import_card_from_url_path_prefix_brarcher" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
@@ -92,7 +102,8 @@
|
||||
<activity
|
||||
android:name=".CardShortcutConfigure"
|
||||
android:label="@string/cardShortcut"
|
||||
android:theme="@style/AppTheme.NoActionBar">
|
||||
android:theme="@style/AppTheme.NoActionBar"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.CREATE_SHORTCUT"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
|
||||
@@ -72,6 +72,12 @@ public class CatimaBarcode {
|
||||
}
|
||||
|
||||
public String prettyName() {
|
||||
return barcodePrettyNames.get(barcodeFormats.indexOf(mBarcodeFormat));
|
||||
int index = barcodeFormats.indexOf(mBarcodeFormat);
|
||||
|
||||
if (index == -1 || index >= barcodePrettyNames.size()) {
|
||||
return mBarcodeFormat.name();
|
||||
}
|
||||
|
||||
return barcodePrettyNames.get(index);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import android.content.res.TypedArray;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.ImageDecoder;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -1087,7 +1088,12 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity
|
||||
} else if (requestCode == Utils.CARD_IMAGE_FROM_FILE_FRONT || requestCode == Utils.CARD_IMAGE_FROM_FILE_BACK) {
|
||||
Bitmap bitmap = null;
|
||||
try {
|
||||
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), intent.getData());
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
ImageDecoder.Source image_source = ImageDecoder.createSource(getContentResolver(), intent.getData());
|
||||
bitmap = ImageDecoder.decodeBitmap(image_source, (decoder, info, source) -> decoder.setMutableRequired(true));
|
||||
} else {
|
||||
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), intent.getData());
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Error getting data from image file");
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -45,6 +45,7 @@ import androidx.appcompat.content.res.AppCompatResources;
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.constraintlayout.widget.Guideline;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.drawable.DrawableCompat;
|
||||
import androidx.core.widget.TextViewCompat;
|
||||
import protect.card_locker.preferences.Settings;
|
||||
@@ -192,7 +193,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
Drawable unwrappedIcon = AppCompatResources.getDrawable(this, active ? R.drawable.active_dot : R.drawable.inactive_dot);
|
||||
assert unwrappedIcon != null;
|
||||
Drawable wrappedIcon = DrawableCompat.wrap(unwrappedIcon);
|
||||
DrawableCompat.setTint(wrappedIcon, getResources().getColor(R.color.iconColor));
|
||||
DrawableCompat.setTint(wrappedIcon, ContextCompat.getColor(getApplicationContext(), R.color.iconColor));
|
||||
|
||||
return wrappedIcon;
|
||||
}
|
||||
@@ -468,7 +469,7 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
int expiryString = R.string.expiryStateSentence;
|
||||
if(Utils.hasExpired(loyaltyCard.expiry)) {
|
||||
expiryString = R.string.expiryStateSentenceExpired;
|
||||
expiryView.setTextColor(getResources().getColor(R.color.alert));
|
||||
expiryView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.alert));
|
||||
}
|
||||
expiryView.setText(getString(expiryString, DateFormat.getDateInstance(DateFormat.LONG).format(loyaltyCard.expiry)));
|
||||
expiryView.setTextSize(settings.getFontSizeMax(settings.getMediumFont()));
|
||||
|
||||
@@ -16,6 +16,8 @@ import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.CompoundButton;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
@@ -519,10 +521,6 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
if (id == R.id.action_sort)
|
||||
{
|
||||
TabLayout.Tab tab = ((TabLayout) findViewById(R.id.groups)).getTabAt(selectedTab);
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||
builder.setTitle(R.string.sort_by);
|
||||
|
||||
AtomicInteger currentIndex = new AtomicInteger();
|
||||
List<DBHelper.LoyaltyCardOrder> loyaltyCardOrders = Arrays.asList(DBHelper.LoyaltyCardOrder.values());
|
||||
for (int i = 0; i < loyaltyCardOrders.size(); i++) {
|
||||
@@ -532,18 +530,29 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
}
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||
builder.setTitle(R.string.sort_by);
|
||||
|
||||
final View customLayout = getLayoutInflater().inflate(R.layout.sorting_option, null);
|
||||
builder.setView(customLayout);
|
||||
|
||||
CheckBox ch = (CheckBox) customLayout.findViewById(R.id.checkBox_reverse);
|
||||
ch.setChecked(mOrderDirection == DBHelper.LoyaltyCardOrderDirection.Descending);
|
||||
|
||||
builder.setSingleChoiceItems(R.array.sort_types_array, currentIndex.get(), (dialog, which) -> currentIndex.set(which));
|
||||
|
||||
builder.setPositiveButton(R.string.sort, (dialog, which) -> {
|
||||
setSort(loyaltyCardOrders.get(currentIndex.get()), DBHelper.LoyaltyCardOrderDirection.Ascending);
|
||||
|
||||
if(ch.isChecked()) {
|
||||
setSort(loyaltyCardOrders.get(currentIndex.get()), DBHelper.LoyaltyCardOrderDirection.Descending);
|
||||
}
|
||||
else {
|
||||
setSort(loyaltyCardOrders.get(currentIndex.get()), DBHelper.LoyaltyCardOrderDirection.Ascending);
|
||||
}
|
||||
dialog.dismiss();
|
||||
});
|
||||
builder.setNeutralButton(R.string.reverse, (dialog, which) -> {
|
||||
setSort(loyaltyCardOrders.get(currentIndex.get()), DBHelper.LoyaltyCardOrderDirection.Descending);
|
||||
|
||||
dialog.dismiss();
|
||||
});
|
||||
builder.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss());
|
||||
|
||||
AlertDialog dialog = builder.create();
|
||||
dialog.show();
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import android.content.res.Resources;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.ImageDecoder;
|
||||
import android.graphics.Matrix;
|
||||
import android.os.Build;
|
||||
import android.os.LocaleList;
|
||||
@@ -105,7 +106,12 @@ public class Utils {
|
||||
|
||||
Bitmap bitmap;
|
||||
try {
|
||||
bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), intent.getData());
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
ImageDecoder.Source image_source = ImageDecoder.createSource(context.getContentResolver(), intent.getData());
|
||||
bitmap = ImageDecoder.decodeBitmap(image_source, (decoder, info, source) -> decoder.setMutableRequired(true));
|
||||
} else {
|
||||
bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), intent.getData());
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Error getting data from image file");
|
||||
e.printStackTrace();
|
||||
|
||||
21
app/src/main/res/layout/sorting_option.xml
Normal file
21
app/src/main/res/layout/sorting_option.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/checkBox_reverse"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="20dp"
|
||||
android:paddingLeft="20dp"
|
||||
android:text="@string/reverse"
|
||||
android:textSize="19sp"/>
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -12,18 +12,19 @@ Joel A
|
||||
Samantaz Fox
|
||||
arno-github
|
||||
Sergio Paredes
|
||||
Nyatsuki
|
||||
StoyanDimitrov
|
||||
Nyatsuki
|
||||
Petr Novák
|
||||
arshbeerSingh
|
||||
Oğuz Ersen
|
||||
huuhaa
|
||||
Michael Moroni
|
||||
Petr Novák
|
||||
betsythefc
|
||||
K. Herbert
|
||||
Quentin PAGÈS
|
||||
String E. Fighter
|
||||
Yurical
|
||||
waffshappen
|
||||
Adolfo Jayme-Barrientos
|
||||
Alessandro Mandelli
|
||||
KovalevArtem
|
||||
@@ -37,7 +38,6 @@ schirinowski
|
||||
inesre
|
||||
lgasp
|
||||
phlostically
|
||||
waffshappen
|
||||
Kevin Sicong Jiang
|
||||
Miha Frangež
|
||||
Airat
|
||||
@@ -51,6 +51,7 @@ Maciej Błędkowski
|
||||
Mattia
|
||||
pbeckmann
|
||||
Peer Beckmann
|
||||
QuangDNguyen2211
|
||||
Rose Liverman
|
||||
Simone Dotto
|
||||
Subhashish Anand
|
||||
|
||||
@@ -190,4 +190,12 @@
|
||||
<string name="noGroupCards">Тази група не съдържа карти</string>
|
||||
<string name="toggleMoreInfo">Превключване на повече информация</string>
|
||||
<string name="barcodeImageDescriptionWithType">Изображение на щрихкод на карта от вида <xliff:g>%s</xliff:g></string>
|
||||
<string name="swipeToSwitchImages">Плъзване или задържане за смяна на изображения</string>
|
||||
<string name="sort_by">Сортиране по</string>
|
||||
<string name="reverse">Наобратно</string>
|
||||
<string name="sort_by_balance">Наличност</string>
|
||||
<string name="sort_by_expiry">Валидност</string>
|
||||
<string name="sort_by_most_recently_used">Последно използване</string>
|
||||
<string name="sort_by_name">Наименование</string>
|
||||
<string name="sort">Сортиране</string>
|
||||
</resources>
|
||||
@@ -192,4 +192,14 @@
|
||||
</plurals>
|
||||
<string name="app_contributors">Přispěli: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="noGroupCards">Tato skupina neobsahuje žádné karty</string>
|
||||
<string name="sort_by">Seřadit podle</string>
|
||||
<string name="reverse">Obrátit</string>
|
||||
<string name="sort_by_balance">Zůstatek</string>
|
||||
<string name="sort_by_expiry">Vypršení</string>
|
||||
<string name="sort_by_most_recently_used">Naposledy použité</string>
|
||||
<string name="sort_by_name">Název</string>
|
||||
<string name="swipeToSwitchImages">Přejetím nebo dlouhým stisknutím přepínáte obrázky</string>
|
||||
<string name="toggleMoreInfo">Přepnout zobrazení dalších informací</string>
|
||||
<string name="sort">Seřadit</string>
|
||||
<string name="barcodeImageDescriptionWithType">Obrázek čárového kódu karty typu <xliff:g>%s</xliff:g></string>
|
||||
</resources>
|
||||
@@ -36,4 +36,15 @@
|
||||
</plurals>
|
||||
<string name="action_add">Tilføj</string>
|
||||
<string name="action_search">Søg</string>
|
||||
<string name="importExport">Import/eksport</string>
|
||||
<string name="exportName">Eksport</string>
|
||||
<string name="importExportHelp">Hvis du sikkerhedskopierer dine kort, kan du flytte dem til en anden enhed.</string>
|
||||
<string name="importSuccessfulTitle">Importeret</string>
|
||||
<string name="importFailedTitle">Import mislykkedes</string>
|
||||
<string name="importFailed">Kunne ikke importere kort</string>
|
||||
<string name="exportSuccessfulTitle">Eksporteret</string>
|
||||
<string name="exportFailedTitle">Eksport mislykkedes</string>
|
||||
<string name="exportFailed">Kunne ikke eksportere kort</string>
|
||||
<string name="importing">Importere…</string>
|
||||
<string name="exporting">Eksportere…</string>
|
||||
</resources>
|
||||
@@ -63,7 +63,7 @@
|
||||
<string name="settings_dark_theme">Dunkel</string>
|
||||
<string name="settings_light_theme">Hell</string>
|
||||
<string name="settings_system_theme">System</string>
|
||||
<string name="settings_theme">Theme</string>
|
||||
<string name="settings_theme">Farbschema</string>
|
||||
<string name="enterBarcodeInstructions">Gib die Kartennummer ein und wähle entweder den Barcode-Typ unten oder wähle \"Diese Karte hat keinen Barcode\" aus.</string>
|
||||
<string name="app_copyright_old">Basierend auf Loyalty Card Keychain
|
||||
\nCopyright © 2016-2020 Branden Archer.</string>
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
<resources
|
||||
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
|
||||
</resources>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="barcodeType">Tip cod de bare</string>
|
||||
<string name="cardId">Cardului ID</string>
|
||||
<string name="note">Notă</string>
|
||||
<string name="storeName">Numele</string>
|
||||
<string name="noMatchingGiftCards">Nu am găsit nimic. Încearcă să schimbi căutarea.</string>
|
||||
<string name="noGiftCards">Faceți clic pe butonul + plus pentru a adăuga o carte sau importați mai întâi câteva din meniul ⋮.</string>
|
||||
<string name="action_add">Adăugați</string>
|
||||
<string name="action_search">Căutare</string>
|
||||
</resources>
|
||||
@@ -128,6 +128,7 @@
|
||||
<string name="sharedpreference_sort_order" translatable="false">sharedpreference_sort_order</string>
|
||||
<string name="sharedpreference_sort_direction" translatable="false">sharedpreference_sort_direction</string>
|
||||
|
||||
|
||||
<string name="intent_import_card_from_url_share_text">I want to share a card with you</string>
|
||||
<string name="intent_import_card_from_url_host_catima_app" translatable="false">catima.app</string>
|
||||
<string name="intent_import_card_from_url_path_prefix_catima_app" translatable="false">/share</string>
|
||||
|
||||
@@ -9,7 +9,7 @@ buildscript {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.0.1'
|
||||
classpath 'com.android.tools.build:gradle:7.0.2'
|
||||
classpath 'gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.7.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
@@ -24,6 +24,9 @@ allprojects {
|
||||
maven { url "https://jitpack.io" }
|
||||
gradlePluginPortal()
|
||||
}
|
||||
tasks.withType(JavaCompile) {
|
||||
options.compilerArgs << "-Xlint:deprecation"
|
||||
}
|
||||
}
|
||||
|
||||
task clean(type: Delete) {
|
||||
|
||||
@@ -1,23 +1,22 @@
|
||||
Спрете да търсите пластмасови карти за възнаграждение по време на плащане в магазин или в интернет магазин.
|
||||
<b>Сканирайте баркодовете на устройството си с помощта на неговата камера и забравете за картите.</b>
|
||||
😺
|
||||
Забравете за портфейла си или го запазете ултралек за ценни вещи.
|
||||
😺
|
||||
Спрете да търсите пластмасови карти за възнаграждение докато плащате в магазина или в мрежата.
|
||||
<b>Сканирайте щрихкодовете на устройството си с помощта на камерата и забравете за пластмасовите карти.</b>
|
||||
|
||||
Забравете за портфейла си или го запазете лек за ценни вещи.
|
||||
|
||||
С този основен инструмент за ежедневно носене (EDC) можете да замените безполезната пластмаса с пари в брой.
|
||||
😺
|
||||
|
||||
- Избягвайте шпионирането с много малко разрешения. Без достъп до интернет и без реклами.
|
||||
- Добавете карти или кодове с имена и цветове, които можете да персонализирате.
|
||||
- Ръчно въвеждане на код, ако няма баркод за съхранение или той не може да се използва.
|
||||
- Импортиране на карти и кодове от файлове, Catima, FidMe, Loyalty Card Keychain, Stocard и Voucher Vault.
|
||||
- Направете резервно копие на всичките си карти и ги прехвърлете на ново устройство, ако искате.
|
||||
- Споделяйте купони, ексклузивни оферти, промоционални кодове или карти и кодове, като използвате всяко приложение.
|
||||
- Тъмна тема и опции за достъпност за потребители с увредено зрение.
|
||||
- Добавяйте карти или кодове с имена и цветове, които можете да настройвате по желание.
|
||||
- Въвеждайте кодове, ако картата е без щрихкод или той не може да се използва.
|
||||
- Внасяйте карти и кодове от файлове на Catima, FidMe, Loyalty Card Keychain, Stocard и Voucher Vault.
|
||||
- Изнасяйте резервни копия на всичките си карти и при желание ги прехвърлете на други устройства.
|
||||
- Споделяйте купони, специални оферти, промоционални кодове или карти и кодове, като използвате всяко приложение.
|
||||
- Тъмна тема и настройки за достъпност за потребители с намалено зрение.
|
||||
- Направено за всички от общността на свободния софтуер.
|
||||
- Локализирани ръчно направени преводи за над 20 езика.
|
||||
- Локализирани, ръчно направени преводи на над 20 езика.
|
||||
- Безвъзмездно, подкрепено от приноса на общността.
|
||||
- Използвайте, изучавайте, променяйте и споделяйте, както желаете; <i>с всички</i>.
|
||||
- Не само свободен софтуер / отворен код. <i>Copylefted</i> либре софтуер (GPLv3+) за управление на карти.
|
||||
😺
|
||||
|
||||
Опростете живота и пазаруването си и никога повече не губете хартиена касова бележка, карта за подарък за плащане в магазина или самолетен билет.
|
||||
Вземете всичките си награди и бонуси със себе си и спестявайте, докато пътувате.
|
||||
😺
|
||||
|
||||
@@ -1 +1 @@
|
||||
За вашите баркодове, членства, програми за лоялност, талони и билети.
|
||||
За вашите щрихкодове, членства, програми за лоялност, талони и билети.
|
||||
|
||||
3
fastlane/metadata/android/cs_CZ/changelogs/10.txt
Normal file
3
fastlane/metadata/android/cs_CZ/changelogs/10.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Změna výchozího názvu importního/exportního souboru. (pull #84 (https://github.com/brarcher/loyalty-card-locker/pull/84))
|
||||
- Opraven řetězec na stránce import/export. (pull #87 (https://github.com/brarcher/loyalty-card-locker/pull/87))
|
||||
- Vylepšeno rozvržení stránky se zobrazením karet. Text by měl být lépe čitelný a je možné jej vybrat dlouhým kliknutím. (pull #91 (https://github.com/brarcher/loyalty-card-locker/pull/91))
|
||||
1
fastlane/metadata/android/cs_CZ/changelogs/12.txt
Normal file
1
fastlane/metadata/android/cs_CZ/changelogs/12.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Zabránění pádu při otáčení obrazovky v úvodním průvodci prvního spuštění.
|
||||
@@ -1,10 +1,10 @@
|
||||
Přestaňte hledat plastové věrnostní karty při placení v obchodě nebo ve webovém obchodě.
|
||||
<b>Naskenujte si čárové kódy do svého zařízení pomocí jeho fotoaparátu a zapomeňte na karty.</b>
|
||||
😺
|
||||
|
||||
Zapomeňte na peněženku nebo ji mějte ultralehkou na cennosti.
|
||||
😺
|
||||
|
||||
S tímto nezbytným nástrojem pro každodenní nošení (EDC) můžete nahradit zbytečné plasty hotovostí.
|
||||
😺
|
||||
|
||||
- Vyhněte se špehování s velmi malým počtem oprávnění. Žádný přístup k internetu a žádné reklamy.
|
||||
- Přidejte karty nebo kódy se jmény a přizpůsobitelnými barvami.
|
||||
- Ruční zadání kódu, pokud není čárový kód k uložení nebo jej nelze použít.
|
||||
@@ -17,7 +17,6 @@ S tímto nezbytným nástrojem pro každodenní nošení (EDC) můžete nahradit
|
||||
- Zdarma, podporováno příspěvky komunity.
|
||||
- Používejte, studujte, měňte a sdílejte dle libosti; <i>se všemi</i>.
|
||||
- Nejen svobodný software / open source. <i>Copylefted</i> libre software (GPLv3+) správa karet.
|
||||
😺
|
||||
|
||||
Zjednodušte si život a nakupování a už nikdy neztraťte papírovou účtenku, dárkovou kartu pro platbu v obchodě nebo letenku.
|
||||
Vezměte si s sebou všechny své odměny a bonusy a šetřete za pochodu.
|
||||
😺
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Schluss mit der Suche nach Plastik-Belohnungskarten beim Bezahlen im Geschäft oder Webshop.
|
||||
<b>Scanne EAN-Codes mit der Kamera deines Geräts, du brauchst keine Karten mehr.</b>
|
||||
😺
|
||||
|
||||
Du brauchst keine Geldbörse, oder mach sie federleicht für Wertsachen.
|
||||
😺
|
||||
|
||||
Mit diesem unverzichtbaren (EDC)Werkzeug kannst du nutzloses Plastik durch Bargeld ersetzen.
|
||||
😺
|
||||
|
||||
- Vermeide Spionage mit sehr wenigen Berechtigungen. Kein Internetzugang und keine Werbung.
|
||||
- Füge Karten oder Codes mit Namen und anpassbaren Farben hinzu.
|
||||
- Manuelle Code-Eingabe, wenn kein Barcode gespeichert ist oder nicht funktioniert.
|
||||
@@ -17,7 +17,7 @@ Mit diesem unverzichtbaren (EDC)Werkzeug kannst du nutzloses Plastik durch Barge
|
||||
- Kostenlos, unterstützt durch Gemeinschaftsbeiträge.
|
||||
- Verwende, studiere, ändere und teile es, wie du willst; <i>mit Allen</i>.
|
||||
- Nicht nur freie und quelloffene Software. <i>Copylefted</i> freie Software (GPLv3+) Kartenverwaltung.
|
||||
😺
|
||||
|
||||
Vereinfache dein Leben und Einkäufe, und verliere nie wieder eine Papierrechung, eine Geschenkkarte für die Bezahlung im Geschäft oder ein Flugticket.
|
||||
Habe deine Prämien und Boni immer bei der Hand, und spare unterwegs.
|
||||
😺
|
||||
|
||||
|
||||
1
fastlane/metadata/android/en-US/changelogs/84.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/84.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Minor bugfixes and improvements
|
||||
@@ -1,10 +1,10 @@
|
||||
Deja de buscar tarjetas de recompensa de plástico durante la compra en la tienda o en la web.
|
||||
<b>Escanea los códigos de barras en tu dispositivo usando su cámara, olvídate de las tarjetas.</b>
|
||||
😺
|
||||
|
||||
Olvídate de la cartera, o téngala ultraligera para los objetos de valor.
|
||||
😺
|
||||
|
||||
Con esta herramienta esencial para llevar a diario (EDC) puedes sustituir el plástico inútil por el dinero en efectivo.
|
||||
😺
|
||||
|
||||
- Evita el espionaje con muy pocos permisos. Sin acceso a Internet y sin anuncios.
|
||||
- Añade tarjetas o códigos con nombres y colores personalizables.
|
||||
- Introduce manual de códigos si no hay código de barras que almacenar, o no se puede utilizar.
|
||||
@@ -17,7 +17,7 @@ Con esta herramienta esencial para llevar a diario (EDC) puedes sustituir el pl
|
||||
- Gratis, apoyado por las contribuciones de la comunidad.
|
||||
- Utiliza, estudia, cambia y comparte como quieras; <i>con quien quieras</i>.
|
||||
- No sólo Software Libre / Open Source. Es un software de gestión de tarjetas libre y <i>copyleft</i> (GPLv3+).
|
||||
😺
|
||||
|
||||
Simplifica tu vida y tus compras, y no vuelvas a perder un recibo de papel, una tarjeta regalo de pago en tienda o un billete de avión.
|
||||
Lleva contigo todas tus recompensas y bonos, y ahorra sobre la marcha.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Lopeta muovisten palkintokorttien etsiminen kaupan tai verkkokaupan kassalla.
|
||||
<b>Skannaa viivakoodit laitteeseesi sen kameran avulla, unohda kortit.</b>
|
||||
😺
|
||||
|
||||
Unohda lompakko tai pidä se ultrakevyesti arvoesineitä varten.
|
||||
😺
|
||||
|
||||
Tämän välttämättömän jokapäiväisen kantamisen (EDC) välineen avulla voit korvata turhan muovin käteisellä.
|
||||
😺
|
||||
|
||||
- Vältä vakoilu hyvin vähillä luvilla. Ei Internet-yhteyttä eikä mainoksia.
|
||||
- Lisää kortteja tai koodeja nimillä ja muokattavilla väreillä.
|
||||
- Koodin syöttäminen manuaalisesti, jos viivakoodia ei voi tallentaa tai sitä ei voi käyttää.
|
||||
@@ -17,7 +17,7 @@ Tämän välttämättömän jokapäiväisen kantamisen (EDC) välineen avulla vo
|
||||
- Gratis, yhteisön panoksilla tuettu.
|
||||
- Käytä, tutki, muuta ja jaa sitä haluamallasi tavalla; <i>kaikkien</i> kanssa.
|
||||
- Ei vain vapaat ohjelmistot / avoin lähdekoodi. <i>Copylefted</i> libre-ohjelmisto (GPLv3+) kortinhallinta.
|
||||
😺
|
||||
|
||||
Yksinkertaista elämääsi ja shoppailuasi, äläkä enää koskaan hukkaa paperikuittia, kaupassa maksettavaa lahjakorttia tai lentolippua.
|
||||
Ota kaikki palkintosi ja bonuksesi mukaasi ja säästä matkan aikana.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Arrêtez de chercher des cartes de fidélité en plastique lors du passage à la caisse des magasins ou des boutiques en ligne.
|
||||
<b>Scannez les codes-barres sur votre appareil en utilisant son appareil photo, oubliez les cartes</b>.
|
||||
😺
|
||||
|
||||
Oubliez votre portefeuille, ou gardez-le ultraléger pour les objets de valeur.
|
||||
😺
|
||||
|
||||
Avec cet outil essentiel à emporter au quotidien, vous pouvez remplacer le plastique inutile par de l'argent liquide.
|
||||
😺
|
||||
|
||||
- Évitez l'espionnage avec très peu de permissions. Aucun accès à Internet et aucune publicité.
|
||||
- Ajoutez des cartes ou des codes avec des noms et des couleurs personnalisables.
|
||||
- Saisie manuelle du code s'il n'y a pas de code-barres à stocker ou s'il ne peut pas être utilisé.
|
||||
@@ -17,7 +17,7 @@ Avec cet outil essentiel à emporter au quotidien, vous pouvez remplacer le plas
|
||||
- Gratis, soutenu par les contributions de la communauté.
|
||||
- Utilisez, étudiez, modifiez et partagez comme vous le souhaitez ; <i>avec tous</i>.
|
||||
- Pas seulement logiciel libre et à code source ouvert <i>logiciel libre à copyleft</i> (GPLv3+) pour la gestion des cartes.
|
||||
😺
|
||||
|
||||
Simplifiez votre vie et vos achats, et ne perdez plus jamais un reçu papier, une carte cadeau de paiement en magasin ou un billet d'avion.
|
||||
Emportez toutes vos récompenses et primes avec vous, et économisez au fur et à mesure.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Basta con la ricerca di carte premio di plastica quando esci dal negozio.
|
||||
<b>Scannerizza i codici a barre sul tuo dispositivo usando la sua fotocamera, dimentica le carte.</b>
|
||||
😺
|
||||
|
||||
Dimentica il tuo portafoglio, o tienilo ultraleggero per gli oggetti di valore.
|
||||
😺
|
||||
|
||||
Con questo strumento essenziale per il trasporto quotidiano, puoi sostituire la plastica inutile con i contanti.
|
||||
😺
|
||||
|
||||
- Evita di spiare con pochissimi permessi. Nessun accesso a Internet e nessuna pubblicità.
|
||||
- Aggiungi carte o codici con nomi e colori personalizzabili.
|
||||
- Inserimento manuale del codice se non c'è un codice a barre da memorizzare o non può essere utilizzato.
|
||||
@@ -17,7 +17,7 @@ Con questo strumento essenziale per il trasporto quotidiano, puoi sostituire la
|
||||
- Gratis, supportato dai contributi della comunità.
|
||||
- Usalo, studialo, cambialo e condividilo come vuoi; <i>con tutti</i>.
|
||||
- Non solo un software libero. <i>Copylefted</i> software libero (GPLv3+) gestione schede.
|
||||
😺
|
||||
|
||||
Semplifica la tua vita e gli acquisti, e non perdere mai più una ricevuta cartacea, una carta regalo con pagamento in negozio o un biglietto aereo.
|
||||
Porta con te tutti i tuoi premi e bonus, e risparmia mentre vai.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Nustokite ieškoti plastikinių lojalumo kortelių parduotuvėje ar parduotuvėje internetinėje.
|
||||
<b> Nuskaitykite brūkšninius kodus į savo įrenginį naudodami jo kamerą ir pamirškite korteles.</b>
|
||||
😺
|
||||
|
||||
Pamirškite piniginę arba laikykite ją itin lengvą tik vertingiems daiktams.
|
||||
😺
|
||||
|
||||
Naudodami šį būtiną kasdienio naudojimo (EDC) įrankį galite nenaudingą plastiką pakeisti grynaisiais pinigais.
|
||||
😺
|
||||
|
||||
- Išvenkite šnipinėjimo, programėlė prašo labai nedaug leidimų. Jokios prieigos prie interneto ir jokių reklamų.
|
||||
- Pridėkite korteles ar kodus su pavadinimais ir pasirenkamomis spalvomis.
|
||||
- Rankiniu būdu įveskite kodą, jei nėra saugotino brūkšninio kodo arba jo negalima naudoti.
|
||||
@@ -17,7 +17,7 @@ Naudodami šį būtiną kasdienio naudojimo (EDC) įrankį galite nenaudingą pl
|
||||
- Nemokama, remiama bendruomenės įnašais.
|
||||
- Naudokite, studijuokite, keiskite ir dalinkitės, kaip norite; <i>su visais</i>.
|
||||
- Ne tik laisvoji programinė įranga / atvirasis kodas. <i>"Copylefted"</i> laisvosios programinės įrangos (GPLv3+) kortelių valdymas.
|
||||
😺
|
||||
|
||||
Supaprastinkite savo gyvenimą ir apsipirkimą ir daugiau niekada nepraraskite popierinio kvito, parduotuvės dovanų kortelės ar lėktuvo bilieto.
|
||||
Pasiimkite su savimi visus nuolaidas ir premijas ir taupykite keliaudami.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Stopp leitingen etter plastikkfordelskort når du er i kassen på nett eller i butikk.
|
||||
<b>Skann strekkoder til enheten din ved bruk av kameraet, og glem kortene.</b>
|
||||
😺
|
||||
|
||||
Glem hele lommeboken, eller behold den ultralett for verdisaker.
|
||||
😺
|
||||
|
||||
Med dette essensielle verktøyet kan du erstatte unyttig plast med kontanter.
|
||||
😺
|
||||
|
||||
- Unngå spionasje med veldig få tilganger. Ingen tilgang til Internett, og ingen reklame.
|
||||
- Legg til kort eller koder med navn og egne farger.
|
||||
- Manuell kodeinnskriving hvis det ikke er noen strekkode å lagre, eller den ikke kan brukes.
|
||||
@@ -17,7 +17,7 @@ Med dette essensielle verktøyet kan du erstatte unyttig plast med kontanter.
|
||||
- Gratis, med støtte fra gemenskapsbidrag.
|
||||
- Bruk, studer, endre og del som du vil; <i>med alle</i>.
|
||||
- Ikke bare åpen kildekode. <i>Gemenhetslig</i> fri programvare (GPLv3+).
|
||||
😺
|
||||
|
||||
Forenkle livet ditt og handlingen, og aldri mist en papirkvittering, butikkbetalingskort, gavekort eller flybillett igjen.
|
||||
Ta alle dine belønninger og bonuser med deg, og spar mens du er på farten.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Stop met zoeken naar plastic kaarten tijdens het afrekenen.
|
||||
<b>Scan barcodes met de camera en sla ze op op je apparaat.</b>
|
||||
😺
|
||||
|
||||
Vergeet je portemonnee of gebruik hem alleen voor waardevolle dingen.
|
||||
😺
|
||||
|
||||
Met deze essentiële app kun je je waardeloze plastic kaarten weggooien.
|
||||
😺
|
||||
|
||||
- Weinig rechten vereist, geen spionage/tracking, geen internettoegang en geen reclame;
|
||||
- Voorzie kaarten of codes van namen en zelfgekozen kleuren;
|
||||
- Voer codes handmatig in als er geen barcode is;
|
||||
@@ -17,7 +17,7 @@ Met deze essentiële app kun je je waardeloze plastic kaarten weggooien.
|
||||
- Gratis, ondersteund door de gemeenschap;
|
||||
- Bekijk de broncode, pas deze aan en deel deze <i>met iedereen</i> (indien gewenst);
|
||||
- Niet alleen vrije software/open source, maar ook <i>copyleft</i> vrije software (GPLv3+).
|
||||
😺
|
||||
|
||||
Maak je leven en winkeluitjes makkelijker doordat je nooit meer een kaart of bonnetje vergeet.
|
||||
Met deze app heb je ze altijd bij de hand en bespaar je tijd.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Не нужно искать пластиковые бонусные карты на кассе в магазине или интернет-магазине.
|
||||
<b>Соканируйте штрих-коды на своё устройство с помощью камеры и забудьте о пластиковых картах.</b>
|
||||
😺
|
||||
|
||||
Забудьте о бумажнике или держите его налегке для ценных вещей.
|
||||
😺
|
||||
|
||||
С помощью этого повседневного инструмента вы сможете заменить бесполезный пластик на наличные.
|
||||
😺
|
||||
|
||||
- Нет отслеживания, минимальное количество разрешений. Нет требуется доступ в интернет и нет рекламы.
|
||||
- Добавление карт или штрих-кодов с настраиваемыми именами и цветами.
|
||||
- Возможен ручной ввод данных, если штрих-код отсутствует или не распознаётся.
|
||||
@@ -17,7 +17,7 @@
|
||||
- Безвозмездно, при поддержке сообщества.
|
||||
- Используйте, изучайте, изменяйте и делитесь по своему усмотрению <i>как угодно</i>.
|
||||
- Не просто бесплатное программное обеспечение с открытым исходным кодом. Полностью <i>свободное</i> программное обеспечение (GPLv3+) для управления картами.
|
||||
😺
|
||||
|
||||
Упростите свою жизнь и покупки: больше никогда не потеряется бумажная квитанция, подарочная карта оплаты в магазине или билет на самолёт.
|
||||
Держите все награды и бонусы с собой и сохраняйте по мере их поступления.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Slipp leta efter bonuskort i plast när du ska betala i affärer eller webbutiker.
|
||||
<b>Skanna in streckkoder i din enhet med hjälp av kameran och glöm sen bort alla kort.</b>
|
||||
😺
|
||||
|
||||
Glöm din plånbok, eller håll den ultralätt när det gäller värdesaker.
|
||||
😺
|
||||
|
||||
Med detta essentiella verktyg kan du ersätta värdelös plast med kontanter.
|
||||
😺
|
||||
|
||||
- Undvik att bli spionerad på genom mycket få behörigheter. Ingen internetanslutning och ingen reklam.
|
||||
- Lägg till kort eller koder med namn och valfria färger.
|
||||
- Koder kan läggas till manuellt om det inte finns någon streckkod att spara, eller om den inte kan användas.
|
||||
@@ -17,7 +17,7 @@ Med detta essentiella verktyg kan du ersätta värdelös plast med kontanter.
|
||||
- Gratis, med stöd av gemenskapens bidrag.
|
||||
- Använd, studera, ändra och dela den som du önskar; <i>med alla</i>.
|
||||
- Inte bara öppen källkod. <i>Copyleftad</i> fri programvara (GPLv3+) för korthantering.
|
||||
😺
|
||||
|
||||
Förenkla ditt liv och din shopping, och förlora aldrig ett papperskvitto, presentkort eller flygbiljett igen.
|
||||
Ta alla dina belöningar och bonusar med dig, och spara nya efter hand.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Mağazada veya internette ödeme sırasında plastik ödül kartlarını aramaya son verin.
|
||||
<b>Kamerasını kullanarak barkodları aygıtınıza tarayın, kartları unutun.</b>
|
||||
😺
|
||||
|
||||
Cüzdanınızı unutun veya değerli eşyalarınız için aşırı hafif tutun.
|
||||
😺
|
||||
|
||||
Bu temel günlük taşıma aracıyla işe yaramaz plastiği nakitle değiştirebilirsiniz.
|
||||
😺
|
||||
|
||||
- Çok az izinle casusluktan kaçının. İnternet erişimi ve reklam yok.
|
||||
- Adları ve özelleştirilebilir renkleri olan kartlar veya kodlar ekleyin.
|
||||
- Kaydedilecek barkod yoksa veya kullanılamıyorsa elle kod girişi.
|
||||
@@ -17,7 +17,7 @@ Bu temel günlük taşıma aracıyla işe yaramaz plastiği nakitle değiştireb
|
||||
- Topluluk katkılarıyla desteklenir ve ücretsizdir.
|
||||
- Dilediğiniz gibi kullanın, inceleyin, değiştirin ve <i>herkesle</i> paylaşın.
|
||||
- Yalnızca Özgür Yazılım / Açık Kaynaklı değil. <i>Copyleft lisanslı</i> özgür (GPLv3+) kart yönetimi yazılımı.
|
||||
😺
|
||||
|
||||
Hayatınızı ve alışverişinizi basitleştirin ve bir daha asla kağıt fatura, mağaza içi ödemeli hediye kartı veya uçak bileti kaybetmeyin.
|
||||
Tüm ödüllerinizi yanınıza alın ve kaydedin.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
Тепер можна не шукати свої пластикові картки знижок та програм лояльності при покупці у магазині чи на сайті.
|
||||
<b>Відскануйте штрих-коди на свій пристрій за допомогою його камери та забудьте про картки.</b>
|
||||
😺
|
||||
|
||||
Забудьте свій гаманець чи просто тримайте важливі речі у ньому.
|
||||
😺
|
||||
|
||||
За допомогою цього важливого щоденного мобільного інструменту (ЩМІ) ви можете замінити непотрібний пластик готівкою.
|
||||
😺
|
||||
|
||||
- Уникнення шпигунства за допомогою дуже малої кількості дозволів. Немає доступу до Інтернету та реклами.
|
||||
- Додавання карток або кодів з іменами та настроюваними кольорами.
|
||||
- Введення коду вручну, якщо немає штрих-коду для зберігання або він не може бути використаний.
|
||||
@@ -17,7 +17,7 @@
|
||||
- Безкоштовна, підтримувана внесками громади.
|
||||
- Використовуйте, вивчайте, змінюйте та діліться програмою, як хочете; <i>з усіма</i>.
|
||||
- Не тільки вільне програмне забезпечення / відкритий код. <i>Копілефт</i> вільне програмне забезпечення (GPLv3 +).
|
||||
😺
|
||||
|
||||
Спростіть своє життя та покупки, і ніколи більше не втрачайте паперову квитанцію, подарункову картку магазину або квиток на літак.
|
||||
Візьміть із собою всі свої нагороди та бонуси та економте на ходу.
|
||||
😺
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
在实体店或网店结账时,再也不用翻找塑料积分卡了。
|
||||
<b>用摄像头扫描条形码存储到您的设备,就不需要卡片了。</b>
|
||||
😺
|
||||
|
||||
抛开钱包,或者只携带贵重物品给钱包减负。
|
||||
😺
|
||||
|
||||
有了这个必不可少的日常携带(EDC)工具,你可以用现金取代无用的塑料。
|
||||
😺
|
||||
|
||||
- 要求权限极少,避免隐私泄露。无需互联网接入,没有广告。
|
||||
- 添加卡片或号码,并为其设置名称和颜色。
|
||||
- 如果没有条码可存储,或条码无法使用,可手动输入号码。
|
||||
@@ -17,7 +17,7 @@
|
||||
- 免费的,由社区贡献支持。
|
||||
- 欢迎<i>与所有人</i>随意使用、研究、改变和分享本软件。
|
||||
- 不仅是自由软件/开放源码。<i>Copylefted</i>自由软件(GPLv3+)卡片管理。
|
||||
😺
|
||||
|
||||
简化你的生活和购物,再也不会丢失纸质收据、店内支付礼品卡或飞机票。
|
||||
带上你所有的优惠和积分卡,随时随地省钱。
|
||||
😺
|
||||
|
||||
|
||||
Reference in New Issue
Block a user