Compare commits
122 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5516acecce | ||
|
|
6163de3086 | ||
|
|
4658896304 | ||
|
|
e0d9e2b2dd | ||
|
|
7dd2291376 | ||
|
|
bc69b82029 | ||
|
|
1502ac1923 | ||
|
|
0552acae26 | ||
|
|
18e30d2726 | ||
|
|
1646db24df | ||
|
|
6a6a8fff2b | ||
|
|
a0f8f6e6b5 | ||
|
|
3dda3aa1a5 | ||
|
|
ac6bffcc67 | ||
|
|
93fac2e726 | ||
|
|
9b724ebcc7 | ||
|
|
540ef6d345 | ||
|
|
64fa790836 | ||
|
|
2c18b0dd19 | ||
|
|
f570f2746a | ||
|
|
4c9c717792 | ||
|
|
db4408108a | ||
|
|
f75df30493 | ||
|
|
0f914414af | ||
|
|
3468293f5f | ||
|
|
c9b8b2df9e | ||
|
|
3d138c9504 | ||
|
|
72b95988e5 | ||
|
|
188c147173 | ||
|
|
6224a13d17 | ||
|
|
f393b9b618 | ||
|
|
6fa6cdfadf | ||
|
|
bc7f44f60a | ||
|
|
5579784b0a | ||
|
|
a20f8b58f8 | ||
|
|
fc8d0ac1aa | ||
|
|
edf953cdad | ||
|
|
7290c4aa28 | ||
|
|
f28e614c7f | ||
|
|
616b23d3a8 | ||
|
|
5fda774626 | ||
|
|
30941a9e16 | ||
|
|
9289d3cf0b | ||
|
|
0ecc36a83c | ||
|
|
d3b8569ef7 | ||
|
|
19722af65f | ||
|
|
329be8abbb | ||
|
|
9aa6acccda | ||
|
|
ba05c6872b | ||
|
|
ca1fc214ff | ||
|
|
2ebb3e1837 | ||
|
|
019c5e232d | ||
|
|
dda527a72f | ||
|
|
df0bbe773f | ||
|
|
a320e1c776 | ||
|
|
607669a74c | ||
|
|
f50dfeac9e | ||
|
|
ef46f6a00b | ||
|
|
eafedb52ad | ||
|
|
423384fae6 | ||
|
|
09e96eba53 | ||
|
|
4b0a4a7db9 | ||
|
|
2371738a15 | ||
|
|
e22d11f8e9 | ||
|
|
917e60a7f5 | ||
|
|
4d09f66ac6 | ||
|
|
622aa96464 | ||
|
|
9887e19ec9 | ||
|
|
a308634868 | ||
|
|
44c3c8b32f | ||
|
|
69835ff0c9 | ||
|
|
8270bc6c03 | ||
|
|
9e8ea3384e | ||
|
|
c8b258cd62 | ||
|
|
f23c73a67a | ||
|
|
8ba3295ba1 | ||
|
|
6e3d61304f | ||
|
|
9b7b3c4b9f | ||
|
|
b993221af5 | ||
|
|
86c029fe92 | ||
|
|
fbe857a5cf | ||
|
|
1717560c05 | ||
|
|
02f85cd49a | ||
|
|
69a6afe611 | ||
|
|
94fa6d19c4 | ||
|
|
211ee9ce69 | ||
|
|
e818be3d50 | ||
|
|
6620369616 | ||
|
|
9d9ce1d11f | ||
|
|
76ba3c333e | ||
|
|
0429086c57 | ||
|
|
4a4b534813 | ||
|
|
8cfae80ea8 | ||
|
|
517a9cf37a | ||
|
|
242f4b7ad9 | ||
|
|
ce1a210650 | ||
|
|
9d369a8e6f | ||
|
|
240f73f743 | ||
|
|
3cf1579bb0 | ||
|
|
171fb83249 | ||
|
|
603b02911b | ||
|
|
ab5eb62bc1 | ||
|
|
40b2b5c96f | ||
|
|
6efe0f6c54 | ||
|
|
00a78c6030 | ||
|
|
0db46614a8 | ||
|
|
32d139f756 | ||
|
|
c2c8b780c8 | ||
|
|
057a58a3d6 | ||
|
|
551fbed8ad | ||
|
|
468c86b5ea | ||
|
|
50cb3146bf | ||
|
|
0853bd88a4 | ||
|
|
3bbe8e9524 | ||
|
|
ebc2e07fc4 | ||
|
|
ad368e68eb | ||
|
|
a1d4bb746f | ||
|
|
44473ae921 | ||
|
|
2c3d9f714c | ||
|
|
13121e9869 | ||
|
|
14116324fb | ||
|
|
d207197055 |
7
.github/workflows/autoclose-needs-info.yml
vendored
@@ -17,7 +17,8 @@ jobs:
|
||||
days-before-close: 90
|
||||
close-issue-message: 'This issue is missing necessary information and cannot be worked on in its current state. It has therefore been closed to keep the issue tracker clean. If you have more information, feel free to reopen it.'
|
||||
close-pr-message: 'This PR is missing necessary information and cannot be merged in its current state. It has therefore been closed to keep the issue tracker clean. If you have more information, feel free to reopen it.'
|
||||
only-labels: 'needs info'
|
||||
stale-issue-label: 'needs info'
|
||||
stale-pr-label: 'needs info'
|
||||
only-labels: 'state: needs info'
|
||||
stale-issue-label: 'state: needs info'
|
||||
stale-pr-label: 'state: needs info'
|
||||
remove-stale-when-updated: false
|
||||
enable-statistics: true
|
||||
|
||||
11
CHANGELOG.md
@@ -1,5 +1,16 @@
|
||||
# Changelog
|
||||
|
||||
## v2.15.0 - 101 (2022-02-06)
|
||||
|
||||
- Fix cropper not using theme colour
|
||||
- Fix minor theming issues
|
||||
- Add pure black dark theme for OLED screens
|
||||
|
||||
## v2.14.1 - 100 (2022-01-15)
|
||||
|
||||
- Hide search, expand and sort icons until there is at least 1 card
|
||||
- Various theming fixes
|
||||
|
||||
## v2.14.0 - 99 (2022-01-14)
|
||||
|
||||
- Material You redesign
|
||||
|
||||
3
FUNDING.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
github: TheLastProject
|
||||
custom:
|
||||
- "https://paypal.me/sylviavanos"
|
||||
@@ -18,8 +18,8 @@ android {
|
||||
applicationId "me.hackerchick.catima"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 31
|
||||
versionCode 99
|
||||
versionName "2.14.0"
|
||||
versionCode 101
|
||||
versionName "2.15.0"
|
||||
|
||||
vectorDrawables.useSupportLibrary true
|
||||
multiDexEnabled true
|
||||
@@ -84,9 +84,9 @@ dependencies {
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
|
||||
implementation 'androidx.exifinterface:exifinterface:1.3.3'
|
||||
implementation 'androidx.palette:palette:1.0.0'
|
||||
implementation 'androidx.preference:preference:1.1.1'
|
||||
implementation 'androidx.preference:preference:1.2.0'
|
||||
implementation 'com.google.android.material:material:1.5.0'
|
||||
implementation 'com.github.yalantis:ucrop:2.2.7'
|
||||
implementation 'com.github.yalantis:ucrop:2.2.8'
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
|
||||
|
||||
// Splash Screen
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name="com.yalantis.ucrop.UCropActivity"
|
||||
android:name=".UCropWrapper"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
|
||||
<provider
|
||||
|
||||
@@ -151,13 +151,13 @@ public class AboutActivity extends CatimaAppCompatActivity implements View.OnCli
|
||||
} else if (id == R.id.translate) {
|
||||
url = "https://hosted.weblate.org/engage/catima/";
|
||||
} else if (id == R.id.license) {
|
||||
url = "https://github.com/TheLastProject/Catima/blob/master/LICENSE";
|
||||
url = "https://github.com/CatimaLoyalty/Android/blob/master/LICENSE";
|
||||
} else if (id == R.id.repo) {
|
||||
url = "https://github.com/TheLastProject/Catima/";
|
||||
url = "https://github.com/CatimaLoyalty/Android/";
|
||||
} else if (id == R.id.privacy) {
|
||||
url = "https://catima.app/privacy-policy/";
|
||||
} else if (id == R.id.report_error) {
|
||||
url = "https://github.com/TheLastProject/Catima/issues";
|
||||
url = "https://github.com/CatimaLoyalty/Android/issues";
|
||||
} else if (id == R.id.rate) {
|
||||
url = "https://play.google.com/store/apps/details?id=me.hackerchick.catima";
|
||||
} else {
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
public class CatimaAppCompatActivity extends AppCompatActivity {
|
||||
@@ -10,4 +15,30 @@ public class CatimaAppCompatActivity extends AppCompatActivity {
|
||||
// Apply chosen language
|
||||
super.attachBaseContext(Utils.updateBaseContextLocale(base));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
// XXX splash screen activity has to do this after installing splash screen before view inflate
|
||||
if (!this.getClass().getSimpleName().equals(MainActivity.class.getSimpleName())) {
|
||||
Utils.patchColors(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
// material 3 designer does not consider status bar colors
|
||||
// XXX changing this in onCreate causes issues with the splash screen activity, so doing this here
|
||||
boolean darkMode = Utils.isDarkModeEnabled(this);
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
getWindow().setStatusBarColor(Color.TRANSPARENT);
|
||||
getWindow().getDecorView().setSystemUiVisibility(darkMode ? 0 : View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||
} else {
|
||||
// icons are always white back then
|
||||
getWindow().setStatusBarColor(darkMode ? Color.TRANSPARENT : Color.argb(127, 0, 0, 0));
|
||||
}
|
||||
// XXX android 9 and below has a nasty rendering bug if the theme was patched earlier
|
||||
Utils.postPatchColors(this);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import java.util.List;
|
||||
import protect.card_locker.async.TaskHandler;
|
||||
import protect.card_locker.importexport.DataFormat;
|
||||
import protect.card_locker.importexport.ImportExportResult;
|
||||
import protect.card_locker.importexport.ImportExportResultType;
|
||||
|
||||
public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
private static final String TAG = "Catima";
|
||||
@@ -97,7 +98,7 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
startExport(writer, uri, exportPassword.toCharArray(), true);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to export file: " + result.toString(), e);
|
||||
onExportComplete(ImportExportResult.GenericFailure, uri);
|
||||
onExportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, result.toString()), uri);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -175,7 +176,7 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
startImport(reader, uri, importDataFormat, password, true);
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to import file: " + uri.toString(), e);
|
||||
onImportComplete(ImportExportResult.GenericFailure, uri, importDataFormat);
|
||||
onImportComplete(new ImportExportResult(ImportExportResultType.GenericFailure, e.toString()), uri, importDataFormat);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -357,56 +358,51 @@ public class ImportExportActivity extends CatimaAppCompatActivity {
|
||||
builder.show();
|
||||
}
|
||||
|
||||
private String buildResultDialogMessage(ImportExportResult result, boolean isImport) {
|
||||
int messageId;
|
||||
|
||||
if (result.resultType() == ImportExportResultType.Success) {
|
||||
messageId = isImport ? R.string.importSuccessful : R.string.exportSuccessful;
|
||||
} else {
|
||||
messageId = isImport ? R.string.importFailed : R.string.exportFailed;
|
||||
}
|
||||
|
||||
StringBuilder messageBuilder = new StringBuilder(getResources().getString(messageId));
|
||||
if (result.developerDetails() != null) {
|
||||
messageBuilder.append("\n\n");
|
||||
messageBuilder.append(getResources().getString(R.string.include_if_asking_support));
|
||||
messageBuilder.append("\n\n");
|
||||
messageBuilder.append(result.developerDetails());
|
||||
}
|
||||
|
||||
return messageBuilder.toString();
|
||||
}
|
||||
|
||||
private void onImportComplete(ImportExportResult result, Uri path, DataFormat dataFormat) {
|
||||
if (result == ImportExportResult.BadPassword) {
|
||||
ImportExportResultType resultType = result.resultType();
|
||||
|
||||
if (resultType == ImportExportResultType.BadPassword) {
|
||||
retryWithPassword(dataFormat, path);
|
||||
return;
|
||||
}
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
|
||||
int messageId;
|
||||
|
||||
if (result == ImportExportResult.Success) {
|
||||
builder.setTitle(R.string.importSuccessfulTitle);
|
||||
messageId = R.string.importSuccessful;
|
||||
} else {
|
||||
builder.setTitle(R.string.importFailedTitle);
|
||||
messageId = R.string.importFailed;
|
||||
}
|
||||
|
||||
final String message = getResources().getString(messageId);
|
||||
|
||||
builder.setMessage(message);
|
||||
builder.setNeutralButton(R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
builder.setTitle(resultType == ImportExportResultType.Success ? R.string.importSuccessfulTitle : R.string.importFailedTitle);
|
||||
builder.setMessage(buildResultDialogMessage(result, true));
|
||||
builder.setNeutralButton(R.string.ok, (dialog, which) -> dialog.dismiss());
|
||||
|
||||
builder.create().show();
|
||||
}
|
||||
|
||||
private void onExportComplete(ImportExportResult result, final Uri path) {
|
||||
ImportExportResultType resultType = result.resultType();
|
||||
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||
|
||||
int messageId;
|
||||
|
||||
if (result == ImportExportResult.Success) {
|
||||
builder.setTitle(R.string.exportSuccessfulTitle);
|
||||
messageId = R.string.exportSuccessful;
|
||||
} else {
|
||||
builder.setTitle(R.string.exportFailedTitle);
|
||||
messageId = R.string.exportFailed;
|
||||
}
|
||||
|
||||
final String message = getResources().getString(messageId);
|
||||
|
||||
builder.setMessage(message);
|
||||
builder.setTitle(resultType == ImportExportResultType.Success ? R.string.exportSuccessfulTitle : R.string.exportFailedTitle);
|
||||
builder.setMessage(buildResultDialogMessage(result, false));
|
||||
builder.setNeutralButton(R.string.ok, (dialog, which) -> dialog.dismiss());
|
||||
|
||||
if (result == ImportExportResult.Success) {
|
||||
if (resultType == ImportExportResultType.Success) {
|
||||
final CharSequence sendLabel = ImportExportActivity.this.getResources().getText(R.string.sendLabel);
|
||||
|
||||
builder.setPositiveButton(sendLabel, (dialog, which) -> {
|
||||
|
||||
@@ -16,6 +16,7 @@ import java.nio.charset.StandardCharsets;
|
||||
import protect.card_locker.async.CompatCallable;
|
||||
import protect.card_locker.importexport.DataFormat;
|
||||
import protect.card_locker.importexport.ImportExportResult;
|
||||
import protect.card_locker.importexport.ImportExportResultType;
|
||||
import protect.card_locker.importexport.MultiFormatExporter;
|
||||
import protect.card_locker.importexport.MultiFormatImporter;
|
||||
|
||||
@@ -63,19 +64,20 @@ public class ImportExportTask implements CompatCallable<ImportExportResult> {
|
||||
private ImportExportResult performImport(Context context, InputStream stream, SQLiteDatabase database, char[] password) {
|
||||
ImportExportResult importResult = MultiFormatImporter.importData(context, database, stream, format, password);
|
||||
|
||||
Log.i(TAG, "Import result: " + importResult.name());
|
||||
Log.i(TAG, "Import result: " + importResult);
|
||||
|
||||
return importResult;
|
||||
}
|
||||
|
||||
private ImportExportResult performExport(Context context, OutputStream stream, SQLiteDatabase database, char[] password) {
|
||||
ImportExportResult result = ImportExportResult.GenericFailure;
|
||||
ImportExportResult result;
|
||||
|
||||
try {
|
||||
OutputStreamWriter writer = new OutputStreamWriter(stream, StandardCharsets.UTF_8);
|
||||
result = MultiFormatExporter.exportData(context, database, stream, format, password);
|
||||
writer.close();
|
||||
} catch (IOException e) {
|
||||
result = new ImportExportResult(ImportExportResultType.GenericFailure, e.toString());
|
||||
Log.e(TAG, "Unable to export file", e);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ import android.widget.Toast;
|
||||
|
||||
import com.google.android.material.chip.Chip;
|
||||
import com.google.android.material.chip.ChipGroup;
|
||||
import com.google.android.material.color.MaterialColors;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
@@ -68,6 +69,7 @@ import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.content.FileProvider;
|
||||
@@ -134,6 +136,8 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
|
||||
|
||||
Button enterButton;
|
||||
|
||||
Toolbar toolbar;
|
||||
|
||||
int loyaltyCardId;
|
||||
boolean updateLoyaltyCard;
|
||||
String cardId;
|
||||
@@ -290,7 +294,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
setContentView(R.layout.loyalty_card_edit_activity);
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
ActionBar actionBar = getSupportActionBar();
|
||||
if (actionBar != null) {
|
||||
@@ -687,6 +691,24 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
|
||||
new AspectRatio(getResources().getString(R.string.ucrop_label_original).toUpperCase(), sourceWidth, sourceHeight),
|
||||
new AspectRatio(getResources().getString(R.string.card).toUpperCase(), 85.6f, 53.98f)
|
||||
);
|
||||
|
||||
// Fix theming
|
||||
|
||||
int colorPrimary = MaterialColors.getColor(this, R.attr.colorPrimary, ContextCompat.getColor(this, R.color.md_theme_light_primary));
|
||||
int colorOnPrimary = MaterialColors.getColor(this, R.attr.colorOnPrimary, ContextCompat.getColor(this, R.color.md_theme_light_onPrimary));
|
||||
int colorSurface = MaterialColors.getColor(this, R.attr.colorSurface, ContextCompat.getColor(this, R.color.md_theme_light_surface));
|
||||
int colorOnSurface = MaterialColors.getColor(this, R.attr.colorOnSurface, ContextCompat.getColor(this, R.color.md_theme_light_onSurface));
|
||||
int colorBackground = MaterialColors.getColor(this, android.R.attr.colorBackground, ContextCompat.getColor(this, R.color.md_theme_light_onSurface));
|
||||
mCropperOptions.setToolbarColor(colorSurface);
|
||||
mCropperOptions.setStatusBarColor(colorSurface);
|
||||
mCropperOptions.setToolbarWidgetColor(colorOnSurface);
|
||||
mCropperOptions.setRootViewBackgroundColor(colorBackground);
|
||||
// set tool tip to be the darker of primary color
|
||||
if (Utils.isDarkModeEnabled(this)) {
|
||||
mCropperOptions.setActiveControlsWidgetColor(colorOnPrimary);
|
||||
} else {
|
||||
mCropperOptions.setActiveControlsWidgetColor(colorPrimary);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -900,7 +922,7 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
|
||||
protected void setColorFromIcon() {
|
||||
Object icon = thumbnail.getTag();
|
||||
if (icon != null && (icon instanceof Bitmap)) {
|
||||
updateTempState(LoyaltyCardField.headerColor, new Palette.Builder((Bitmap) icon).generate().getDominantColor(tempLoyaltyCard.headerColor != null ? tempLoyaltyCard.headerColor : R.attr.colorPrimary));
|
||||
updateTempState(LoyaltyCardField.headerColor, new Palette.Builder((Bitmap) icon).generate().getDominantColor(tempLoyaltyCard.headerColor != null ? tempLoyaltyCard.headerColor : R.attr.colorPrimary));
|
||||
} else {
|
||||
Log.d("setColorFromIcon", "attempting header color change from icon but icon does not exist");
|
||||
}
|
||||
@@ -1385,13 +1407,22 @@ public class LoyaltyCardEditActivity extends CatimaAppCompatActivity {
|
||||
}
|
||||
}
|
||||
}
|
||||
mCropperLauncher.launch(
|
||||
UCrop.of(
|
||||
sourceUri,
|
||||
destUri
|
||||
).withOptions(mCropperOptions)
|
||||
.getIntent(this)
|
||||
);
|
||||
Intent ucropIntent = UCrop.of(
|
||||
sourceUri,
|
||||
destUri
|
||||
).withOptions(mCropperOptions)
|
||||
.getIntent(this);
|
||||
ucropIntent.setClass(this, UCropWrapper.class);
|
||||
for (int i = 0; i < toolbar.getChildCount(); i++) {
|
||||
// send toolbar font details to ucrop wrapper
|
||||
View child = toolbar.getChildAt(i);
|
||||
if (child instanceof AppCompatTextView) {
|
||||
AppCompatTextView childTextView = (AppCompatTextView) child;
|
||||
ucropIntent.putExtra(UCropWrapper.UCROP_TOOLBAR_TYPEFACE_STYLE, childTextView.getTypeface().getStyle());
|
||||
break;
|
||||
}
|
||||
}
|
||||
mCropperLauncher.launch(ucropIntent);
|
||||
}
|
||||
|
||||
private void generateBarcode() {
|
||||
|
||||
@@ -33,6 +33,7 @@ import android.widget.Toast;
|
||||
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
||||
import com.google.android.material.color.MaterialColors;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
@@ -50,6 +51,7 @@ import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.constraintlayout.widget.Guideline;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
import androidx.core.graphics.drawable.DrawableCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
@@ -565,15 +567,29 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
storeName.setTextColor(textColor);
|
||||
landscapeToolbar.setTitleTextColor(textColor);
|
||||
|
||||
// Also apply colours to buttons
|
||||
// Also apply colours to UI elements
|
||||
int darkenedColor = ColorUtils.blendARGB(backgroundHeaderColor, Color.BLACK, 0.1f);
|
||||
barcodeScaler.setProgressTintList(ColorStateList.valueOf(darkenedColor));
|
||||
barcodeScaler.setThumbTintList(ColorStateList.valueOf(darkenedColor));
|
||||
maximizeButton.setBackgroundColor(darkenedColor);
|
||||
minimizeButton.setBackgroundColor(darkenedColor);
|
||||
bottomSheetButton.setBackgroundColor(darkenedColor);
|
||||
maximizeButton.setColorFilter(textColor);
|
||||
minimizeButton.setColorFilter(textColor);
|
||||
bottomSheetButton.setColorFilter(textColor);
|
||||
editButton.setBackgroundTintList(ColorStateList.valueOf(Utils.getComplementaryColor(darkenedColor)));
|
||||
int complementaryColor = Utils.getComplementaryColor(darkenedColor);
|
||||
editButton.setBackgroundTintList(ColorStateList.valueOf(complementaryColor));
|
||||
Drawable editButtonIcon = editButton.getDrawable();
|
||||
editButtonIcon.mutate();
|
||||
int colorPrimary = MaterialColors.getColor(this, R.attr.colorPrimary, ContextCompat.getColor(this, R.color.md_theme_light_primary));
|
||||
int colorOnPrimary = MaterialColors.getColor(this, R.attr.colorOnPrimary, ContextCompat.getColor(this, R.color.md_theme_light_onPrimary));
|
||||
boolean darkMode = Utils.isDarkModeEnabled(this);
|
||||
if (Utils.needsDarkForeground(complementaryColor)) {
|
||||
editButtonIcon.setTint(darkMode ? colorOnPrimary : colorPrimary);
|
||||
} else {
|
||||
editButtonIcon.setTint(darkMode ? colorPrimary : colorOnPrimary);
|
||||
}
|
||||
editButton.setImageDrawable(editButtonIcon);
|
||||
|
||||
Bitmap icon = Utils.retrieveCardImage(this, loyaltyCard.id, ImageLocationType.icon);
|
||||
if (icon != null) {
|
||||
@@ -635,7 +651,6 @@ public class LoyaltyCardViewActivity extends CatimaAppCompatActivity implements
|
||||
dotIndicator.removeAllViews();
|
||||
if (imageTypes.size() >= 2) {
|
||||
dots = new ImageView[imageTypes.size()];
|
||||
boolean darkMode = Utils.isDarkModeEnabled(getApplicationContext());
|
||||
|
||||
for (int i = 0; i < imageTypes.size(); i++) {
|
||||
dots[i] = new ImageView(this);
|
||||
|
||||
@@ -11,6 +11,7 @@ import android.database.CursorIndexOutOfBoundsException;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.GestureDetector;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
@@ -28,6 +29,7 @@ import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.core.splashscreen.SplashScreen;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.color.DynamicColors;
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.google.android.material.tabs.TabLayout;
|
||||
|
||||
@@ -179,6 +181,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
super.onCreate(inputSavedInstanceState);
|
||||
SplashScreen.installSplashScreen(this);
|
||||
setTitle(R.string.app_name);
|
||||
// XXX color patching has to be done again after setting splash screen
|
||||
Utils.patchColors(this);
|
||||
setContentView(R.layout.main_activity);
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
@@ -362,6 +366,22 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
super.onBackPressed();
|
||||
}
|
||||
|
||||
private void displayCardSetupOptions(boolean shouldShow) {
|
||||
View search = findViewById(R.id.action_search);
|
||||
View folder = findViewById(R.id.action_unfold);
|
||||
View sort = findViewById(R.id.action_sort);
|
||||
|
||||
if (search != null && mSearchView.isIconified()) {
|
||||
search.setVisibility(shouldShow ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
if (folder != null) {
|
||||
folder.setVisibility(shouldShow ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
if (sort != null) {
|
||||
sort.setVisibility(shouldShow ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateLoyaltyCardList() {
|
||||
Group group = null;
|
||||
if (mGroup != null) {
|
||||
@@ -376,6 +396,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
// the keyboard
|
||||
mHelpText.setVisibility(View.GONE);
|
||||
mNoGroupCardsText.setVisibility(View.GONE);
|
||||
displayCardSetupOptions(true);
|
||||
|
||||
if (mAdapter.getItemCount() > 0) {
|
||||
mCardList.setVisibility(View.VISIBLE);
|
||||
mNoMatchingCardsText.setVisibility(View.GONE);
|
||||
@@ -394,6 +416,8 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
|
||||
} else {
|
||||
mCardList.setVisibility(View.GONE);
|
||||
mHelpText.setVisibility(View.VISIBLE);
|
||||
displayCardSetupOptions(false);
|
||||
|
||||
mNoMatchingCardsText.setVisibility(View.GONE);
|
||||
mNoGroupCardsText.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
79
app/src/main/java/protect/card_locker/UCropWrapper.java
Normal file
@@ -0,0 +1,79 @@
|
||||
package protect.card_locker;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
|
||||
import com.google.android.material.color.MaterialColors;
|
||||
import com.google.android.material.textview.MaterialTextView;
|
||||
import com.yalantis.ucrop.UCropActivity;
|
||||
|
||||
public class UCropWrapper extends UCropActivity {
|
||||
public static final String UCROP_TOOLBAR_TYPEFACE_STYLE = "ucop_toolbar_typeface_style";
|
||||
|
||||
@Override
|
||||
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
boolean darkMode = Utils.isDarkModeEnabled(this);
|
||||
// setup status bar to look like the rest of the app
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
getWindow().getDecorView().setSystemUiVisibility(darkMode ? 0 : View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
|
||||
} else {
|
||||
// icons are always white back then
|
||||
if (!darkMode) {
|
||||
getWindow().setStatusBarColor(ColorUtils.compositeColors(Color.argb(127, 0, 0, 0), getWindow().getStatusBarColor()));
|
||||
}
|
||||
}
|
||||
|
||||
// find and check views that we wish to color modify
|
||||
// for when we update ucrop or switch to another cropper
|
||||
View check = findViewById(com.yalantis.ucrop.R.id.wrapper_controls);
|
||||
if (check instanceof FrameLayout) {
|
||||
FrameLayout controls = (FrameLayout) check;
|
||||
check = findViewById(com.yalantis.ucrop.R.id.wrapper_states);
|
||||
if (check instanceof LinearLayout) {
|
||||
LinearLayout states = (LinearLayout) check;
|
||||
for (int i = 0; i < controls.getChildCount(); i++) {
|
||||
check = controls.getChildAt(i);
|
||||
if (check instanceof AppCompatImageView) {
|
||||
AppCompatImageView controlsBackgroundImage = (AppCompatImageView) check;
|
||||
// everything gathered and are as expected, now perform color patching
|
||||
Utils.patchColors(this);
|
||||
int colorSurface = MaterialColors.getColor(this, R.attr.colorSurface, ContextCompat.getColor(this, R.color.md_theme_light_surface));
|
||||
int colorOnSurface = MaterialColors.getColor(this, R.attr.colorOnSurface, ContextCompat.getColor(this, R.color.md_theme_light_onSurface));
|
||||
|
||||
Drawable controlsBackgroundImageDrawable = controlsBackgroundImage.getBackground();
|
||||
controlsBackgroundImageDrawable.mutate();
|
||||
controlsBackgroundImageDrawable.setTint(darkMode ? colorOnSurface : colorSurface);
|
||||
controlsBackgroundImage.setBackgroundDrawable(controlsBackgroundImageDrawable);
|
||||
|
||||
states.setBackgroundColor(darkMode ? colorSurface : colorOnSurface);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// change toolbar font
|
||||
check = findViewById(com.yalantis.ucrop.R.id.toolbar_title);
|
||||
if (check instanceof MaterialTextView) {
|
||||
MaterialTextView toolbarTextview = (MaterialTextView) check;
|
||||
Intent intent = getIntent();
|
||||
int style = intent.getIntExtra(UCROP_TOOLBAR_TYPEFACE_STYLE, -1);
|
||||
if (style != -1) {
|
||||
toolbarTextview.setTypeface(Typeface.defaultFromStyle(style));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,8 +14,10 @@ import android.os.Build;
|
||||
import android.os.LocaleList;
|
||||
import android.provider.MediaStore;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.material.color.DynamicColors;
|
||||
import com.google.zxing.BinaryBitmap;
|
||||
import com.google.zxing.LuminanceSource;
|
||||
import com.google.zxing.MultiFormatReader;
|
||||
@@ -39,9 +41,11 @@ import java.util.GregorianCalendar;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
import androidx.exifinterface.media.ExifInterface;
|
||||
|
||||
import protect.card_locker.preferences.Settings;
|
||||
|
||||
public class Utils {
|
||||
@@ -206,7 +210,7 @@ public class Utils {
|
||||
|
||||
if (currency == null) {
|
||||
numberFormat.setMaximumFractionDigits(0);
|
||||
return context.getString(R.string.balancePoints, numberFormat.format(value));
|
||||
return context.getResources().getQuantityString(R.plurals.balancePoints, value.intValue(), numberFormat.format(value));
|
||||
}
|
||||
|
||||
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
|
||||
@@ -457,6 +461,49 @@ public class Utils {
|
||||
R = 255 - R;
|
||||
G = 255 - G;
|
||||
B = 255 - B;
|
||||
return R + (G << 8) + ( B << 16) + ( A << 24);
|
||||
return R + (G << 8) + (B << 16) + (A << 24);
|
||||
}
|
||||
|
||||
// replace colors in the current theme
|
||||
public static void patchColors(AppCompatActivity activity) {
|
||||
Settings settings = new Settings(activity);
|
||||
String color = settings.getColor();
|
||||
|
||||
Resources.Theme theme = activity.getTheme();
|
||||
Resources resources = activity.getResources();
|
||||
if (color.equals(resources.getString(R.string.settings_key_pink_theme))) {
|
||||
theme.applyStyle(R.style.pink, true);
|
||||
} else if (color.equals(resources.getString(R.string.settings_key_magenta_theme))) {
|
||||
theme.applyStyle(R.style.magenta, true);
|
||||
} else if (color.equals(resources.getString(R.string.settings_key_violet_theme))) {
|
||||
theme.applyStyle(R.style.violet, true);
|
||||
} else if (color.equals(resources.getString(R.string.settings_key_blue_theme))) {
|
||||
theme.applyStyle(R.style.blue, true);
|
||||
} else if (color.equals(resources.getString(R.string.settings_key_sky_blue_theme))) {
|
||||
theme.applyStyle(R.style.skyblue, true);
|
||||
} else if (color.equals(resources.getString(R.string.settings_key_green_theme))) {
|
||||
theme.applyStyle(R.style.green, true);
|
||||
} else if (color.equals(resources.getString(R.string.settings_key_brown_theme))) {
|
||||
theme.applyStyle(R.style.brown, true);
|
||||
} else if (color.equals(resources.getString(R.string.settings_key_catima_theme))) {
|
||||
// catima theme is AppTheme itself, no dynamic colors nor applyStyle
|
||||
} else {
|
||||
// final catch all in case of invalid theme value from older versions
|
||||
// also handles R.string.settings_key_system_theme
|
||||
DynamicColors.applyIfAvailable(activity);
|
||||
}
|
||||
|
||||
if (isDarkModeEnabled(activity) && settings.getOledDark()) {
|
||||
theme.applyStyle(R.style.DarkBackground, true);
|
||||
}
|
||||
}
|
||||
|
||||
// XXX android 9 and below has issues with patched theme where the background becomes a
|
||||
// rendering mess
|
||||
// use after views are inflated
|
||||
public static void postPatchColors(AppCompatActivity activity) {
|
||||
TypedValue typedValue = new TypedValue();
|
||||
activity.getTheme().resolveAttribute(android.R.attr.colorBackground, typedValue, true);
|
||||
activity.findViewById(android.R.id.content).setBackgroundColor(typedValue.data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,23 @@
|
||||
package protect.card_locker.importexport;
|
||||
|
||||
public enum ImportExportResult {
|
||||
Success,
|
||||
GenericFailure,
|
||||
BadPassword;
|
||||
public class ImportExportResult {
|
||||
private ImportExportResultType resultType;
|
||||
private String developerDetails;
|
||||
|
||||
public ImportExportResult(ImportExportResultType resultType) {
|
||||
this(resultType, null);
|
||||
}
|
||||
|
||||
public ImportExportResult(ImportExportResultType resultType, String developerDetails) {
|
||||
this.resultType = resultType;
|
||||
this.developerDetails = developerDetails;
|
||||
}
|
||||
|
||||
public ImportExportResultType resultType() {
|
||||
return resultType;
|
||||
}
|
||||
|
||||
public String developerDetails() {
|
||||
return developerDetails;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package protect.card_locker.importexport;
|
||||
|
||||
public enum ImportExportResultType {
|
||||
Success,
|
||||
GenericFailure,
|
||||
BadPassword;
|
||||
}
|
||||
@@ -32,20 +32,20 @@ public class MultiFormatExporter {
|
||||
break;
|
||||
}
|
||||
|
||||
String error;
|
||||
if (exporter != null) {
|
||||
try {
|
||||
exporter.exportData(context, database, output, password);
|
||||
return ImportExportResult.Success;
|
||||
} catch (IOException e) {
|
||||
Log.e(TAG, "Failed to export data", e);
|
||||
} catch (InterruptedException e) {
|
||||
return new ImportExportResult(ImportExportResultType.Success);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Failed to export data", e);
|
||||
error = e.toString();
|
||||
}
|
||||
|
||||
return ImportExportResult.GenericFailure;
|
||||
} else {
|
||||
Log.e(TAG, "Unsupported data format exported: " + format.name());
|
||||
return ImportExportResult.GenericFailure;
|
||||
error = "Unsupported data format exported: " + format.name();
|
||||
Log.e(TAG, error);
|
||||
}
|
||||
|
||||
return new ImportExportResult(ImportExportResultType.GenericFailure, error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,23 +46,26 @@ public class MultiFormatImporter {
|
||||
break;
|
||||
}
|
||||
|
||||
String error = null;
|
||||
if (importer != null) {
|
||||
database.beginTransaction();
|
||||
try {
|
||||
importer.importData(context, database, input, password);
|
||||
database.setTransactionSuccessful();
|
||||
return ImportExportResult.Success;
|
||||
return new ImportExportResult(ImportExportResultType.Success);
|
||||
} catch (ZipException e) {
|
||||
return ImportExportResult.BadPassword;
|
||||
return new ImportExportResult(ImportExportResultType.BadPassword);
|
||||
} catch (IOException | FormatException | InterruptedException | JSONException | ParseException | NullPointerException e) {
|
||||
Log.e(TAG, "Failed to import data", e);
|
||||
error = e.toString();
|
||||
} finally {
|
||||
database.endTransaction();
|
||||
}
|
||||
} else {
|
||||
Log.e(TAG, "Unsupported data format imported: " + format.name());
|
||||
error = "Unsupported data format imported: " + format.name();
|
||||
Log.e(TAG, error);
|
||||
}
|
||||
|
||||
return ImportExportResult.GenericFailure;
|
||||
return new ImportExportResult(ImportExportResultType.GenericFailure, error);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import androidx.annotation.IntegerRes;
|
||||
import androidx.annotation.StringRes;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import protect.card_locker.R;
|
||||
import protect.card_locker.Utils;
|
||||
|
||||
@@ -102,4 +103,12 @@ public class Settings {
|
||||
public boolean getDisableLockscreenWhileViewingCard() {
|
||||
return getBoolean(R.string.settings_key_disable_lockscreen_while_viewing_card, true);
|
||||
}
|
||||
|
||||
public boolean getOledDark() {
|
||||
return getBoolean(R.string.settings_key_oled_dark, false);
|
||||
}
|
||||
|
||||
public String getColor() {
|
||||
return getString(R.string.setting_key_theme_color, mContext.getResources().getString(R.string.settings_key_system_theme));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,9 @@ import androidx.fragment.app.DialogFragment;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
import com.google.android.material.color.DynamicColors;
|
||||
|
||||
import nl.invissvenska.numberpickerpreference.NumberDialogPreference;
|
||||
import nl.invissvenska.numberpickerpreference.NumberPickerPreferenceDialogFragment;
|
||||
import protect.card_locker.CatimaAppCompatActivity;
|
||||
@@ -132,6 +135,24 @@ public class SettingsActivity extends CatimaAppCompatActivity {
|
||||
refreshActivity(true);
|
||||
return true;
|
||||
});
|
||||
|
||||
Preference oledDarkPreference = findPreference(getResources().getString(R.string.settings_key_oled_dark));
|
||||
assert oledDarkPreference != null;
|
||||
oledDarkPreference.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
refreshActivity(true);
|
||||
return true;
|
||||
});
|
||||
|
||||
ListPreference colorPreference = findPreference(getResources().getString(R.string.setting_key_theme_color));
|
||||
assert colorPreference != null;
|
||||
colorPreference.setOnPreferenceChangeListener((preference, o) -> {
|
||||
refreshActivity(true);
|
||||
return true;
|
||||
});
|
||||
if (!DynamicColors.isDynamicColorAvailable()) {
|
||||
colorPreference.setEntryValues(R.array.color_values_no_dynamic);
|
||||
colorPreference.setEntries(R.array.color_value_strings_no_dynamic);
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshActivity(boolean reloadMain) {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/groups"
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
app:spanCount="@integer/main_view_card_columns"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingBottom="80dp"
|
||||
android:clipToPadding="false"
|
||||
android:scrollbars="vertical"
|
||||
android:visibility="gone"/>
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
android:id="@+id/list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingBottom="80dp"
|
||||
android:clipToPadding="false"
|
||||
android:scrollbars="vertical"
|
||||
android:visibility="gone" />
|
||||
</RelativeLayout>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/tabs"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@+id/groups"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical">
|
||||
android:fitsSystemWindows="true"
|
||||
tools:context="protect.card_locker.preferences.SettingsActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -11,15 +13,16 @@
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
style="?attr/toolbarStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
android:layout_height="?attr/actionBarSize" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.fragment.app.FragmentContainerView
|
||||
android:id="@+id/settings_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="?attr/actionBarSize" />
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
@@ -13,7 +13,7 @@
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
style="@style/Widget.MaterialComponents.Toolbar.Primary" />
|
||||
style="?attr/toolbarStyle" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
|
||||
@@ -8,32 +8,35 @@ mondstern
|
||||
Katharine Chui
|
||||
Oğuz Ersen
|
||||
IllusiveMan196
|
||||
Petr Novák
|
||||
Taco
|
||||
Joel A
|
||||
Gediminas Murauskas
|
||||
Altonss
|
||||
Petr Novák
|
||||
Joel A
|
||||
Taco
|
||||
Gediminas Murauskas
|
||||
StoyanDimitrov
|
||||
Nyatsuki
|
||||
Michael Moroni
|
||||
Samantaz Fox
|
||||
arno-github
|
||||
Ankit Tiwari
|
||||
Sergio Paredes
|
||||
Michael Moroni
|
||||
laralem
|
||||
arshbeerSingh
|
||||
huuhaa
|
||||
Miha Frangež
|
||||
sr093906
|
||||
mdvhimself
|
||||
Maciej Błędkowski
|
||||
Olivia (Zoe)
|
||||
Quentin PAGÈS
|
||||
betsythefc
|
||||
waffshappen
|
||||
ati3
|
||||
K. Herbert
|
||||
Maciej Błędkowski
|
||||
Quentin PAGÈS
|
||||
String E. Fighter
|
||||
Yurical
|
||||
Silvério Santos
|
||||
rr-vesp
|
||||
/usr/local/ΕΨΗΕΛΩΝ
|
||||
Adolfo Jayme-Barrientos
|
||||
Alessandro Mandelli
|
||||
@@ -57,7 +60,9 @@ Airat
|
||||
Andreas Blaser
|
||||
BMN
|
||||
Biren
|
||||
Mylou53
|
||||
Kasina Dheeraj
|
||||
Eric
|
||||
Flav
|
||||
Franciszek Stefan
|
||||
Izzy
|
||||
@@ -69,6 +74,7 @@ Michael Gangolf
|
||||
pbeckmann
|
||||
Peer Beckmann
|
||||
Quang Nguyen
|
||||
Ratnesh
|
||||
Reza
|
||||
Rohan Babbar
|
||||
Ronak Upadhyay
|
||||
@@ -86,4 +92,3 @@ Robin
|
||||
sergio
|
||||
Marcus
|
||||
techwebpd
|
||||
rr-vesp
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<string name="setBackImage">Снимка на задната страна</string>
|
||||
<string name="setFrontImage">Снимка на предната страна</string>
|
||||
<string name="photos">Снимки</string>
|
||||
<string name="importOptionApplicationExplanation">Изберете файл чрез друго приложение.</string>
|
||||
<string name="importOptionApplicationExplanation">Изберете файл на друго приложение.</string>
|
||||
<string name="noExternalStoragePermissionError">Разрешете достъп до хранилището, за да работи внасянето и изнасянето</string>
|
||||
<string name="noCardExistsError">Картата не е намерена</string>
|
||||
<string name="updateBarcodeQuestionText">Идентификаторът е променен. Желаете ли с неговата стойност да бъде променен и щрихкодът\?</string>
|
||||
@@ -80,7 +80,6 @@
|
||||
<string name="groupsList">Списъци: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Валидност: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Изтекла: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> точки</string>
|
||||
<string name="balanceSentence">Наличност: <xliff:g>%s</xliff:g></string>
|
||||
<string name="noGroups">Докоснете бутона +, за да добавите списък.</string>
|
||||
<string name="noStoreError">Не е въведено наименование</string>
|
||||
@@ -122,10 +121,10 @@
|
||||
<string name="copy_to_clipboard">Копира идентификатора в междинната памет</string>
|
||||
<string name="ok">Добре</string>
|
||||
<string name="importSuccessful">Данните са внесени</string>
|
||||
<string name="chooseImportType">От къде ще внесете\?</string>
|
||||
<string name="chooseImportType">Внасяне на данни на</string>
|
||||
<string name="importCatimaMessage">Изберете файла <i>catima.zip</i>, предварително изнесен от Catima.
|
||||
\nСъздайте такъв файл от меню Внасяне/изнасяне от друго устройство с Catima като изберете Изнасяне.</string>
|
||||
<string name="importOptionApplicationTitle">От друго приложение</string>
|
||||
<string name="importOptionApplicationTitle">Чрез друго приложение</string>
|
||||
<string name="importOptionFilesystemButton">Избиране от файлова система</string>
|
||||
<string name="importOptionFilesystemExplanation">Изберете определен файл от файловата система.</string>
|
||||
<string name="app_resources">Свободни ресурси: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
@@ -162,14 +161,13 @@
|
||||
<string name="importLoyaltyCardKeychainMessage">Изберете файла <i>LoyaltyCardKeychain.csv</i>, предварително изнесен от Loyalty Card Keychain.
|
||||
\nСъздайте такъв файл от меню Внасяне/изнасяне от друго устройство с Loyalty Card Keychain като изберете Изнасяне.</string>
|
||||
<string name="failedParsingImportUriError">Препратката не може да бъде анализирана за внасяне</string>
|
||||
<string name="card_ids_copied">[не превеждайте този низ, https://github.com/TheLastProject/Catima/issues/278]</string>
|
||||
<string name="failedGeneratingShareURL">Грешка при създаване на адрес за споделяне. Изпратете доклад за дефект.</string>
|
||||
<string name="deleteTitle">Премахване на карта</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Изтриване на <xliff:g>%d</xliff:g> карта</item>
|
||||
<item quantity="other">Изтриване на <xliff:g>%d</xliff:g> карти</item>
|
||||
</plurals>
|
||||
<string name="deleteConfirmation">Потвърдете премахване на картата.</string>
|
||||
<string name="deleteConfirmation">Потвърждавате ли премахване на картата\?</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Желаете ли <xliff:g>%d</xliff:g> карта да бъде премахната\?</item>
|
||||
<item quantity="other">Желаете ли тези <xliff:g>%d</xliff:g> карти да бъдат премахнати\?</item>
|
||||
@@ -226,4 +224,10 @@
|
||||
<string name="showMoreInfo">Показване на информация</string>
|
||||
<string name="hideMoreInfo">Скриване на информация</string>
|
||||
<string name="options">Настройки</string>
|
||||
<string name="card_ids_copied">Идентификаторите са копирани</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="settings_oled_dark">Чисто черен фон за тъмната тема</string>
|
||||
</resources>
|
||||
@@ -24,7 +24,7 @@
|
||||
<string name="importSuccessfulTitle">Importováno</string>
|
||||
<string name="importFailedTitle">Import selhal</string>
|
||||
<string name="importFailed">Nelze provést import</string>
|
||||
<string name="exportSuccessfulTitle">Exportovat</string>
|
||||
<string name="exportSuccessfulTitle">Exportováno</string>
|
||||
<string name="exportFailedTitle">Export selhal</string>
|
||||
<string name="exportFailed">Nelze provést export</string>
|
||||
<string name="importing">Importuji…</string>
|
||||
@@ -96,7 +96,6 @@
|
||||
<string name="settings_category_title_ui">Uživatelské rozhraní</string>
|
||||
<string name="settings">Nastavení</string>
|
||||
<string name="card">Karta</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> bodů</string>
|
||||
<string name="balanceSentence">Zůstatek: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Platnost vypršela: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Platí do: <xliff:g>%s</xliff:g></string>
|
||||
@@ -158,7 +157,7 @@
|
||||
\nNejsou shromažďovány žádné údaje, což může potvrdit každý, protože naše aplikace je svobodný software.</string>
|
||||
<string name="privacy_policy">Zásady soukromí</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Importovat data z\?</string>
|
||||
<string name="chooseImportType">Importovat data z</string>
|
||||
<string name="parsingBalanceFailed"><xliff:g>%s</xliff:g> se nezdá být platným zůstatkem.</string>
|
||||
<string name="points">Body</string>
|
||||
<string name="currency">Měna</string>
|
||||
@@ -193,7 +192,7 @@
|
||||
<string name="app_contributors">Přispěli: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="noGroupCards">Tato skupina je prázdná</string>
|
||||
<string name="sort_by">Seřadit podle</string>
|
||||
<string name="reverse">...v obráceném pořadí</string>
|
||||
<string name="reverse">…v obráceném pořadí</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>
|
||||
@@ -230,4 +229,9 @@
|
||||
<string name="starred">S hvězdičkou</string>
|
||||
<string name="set_scale">Nastavení měřítka</string>
|
||||
<string name="options">Volby</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> bod</item>
|
||||
<item quantity="few"><xliff:g>%s</xliff:g> body</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> bodů</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
@@ -92,7 +92,7 @@
|
||||
</plurals>
|
||||
<string name="groupsList">Gruppen: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Daten importieren aus?</string>
|
||||
<string name="chooseImportType">Daten importieren aus</string>
|
||||
<string name="parsingBalanceFailed"><xliff:g>%s</xliff:g> scheint kein gültiges Guthaben zu sein.</string>
|
||||
<string name="points">Punkte</string>
|
||||
<string name="currency">Währung</string>
|
||||
@@ -105,7 +105,6 @@
|
||||
<string name="editBarcode">Barcode ändern</string>
|
||||
<string name="barcode">Strichcode</string>
|
||||
<string name="card">Karte</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> Punkte</string>
|
||||
<string name="balanceSentence">Guthaben: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Abgelaufen: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Läuft ab: <xliff:g>%s</xliff:g></string>
|
||||
@@ -226,4 +225,9 @@
|
||||
<string name="set_scale">Größe festlegen</string>
|
||||
<string name="showMoreInfo">Infos anzeigen</string>
|
||||
<string name="starred">als Favorit</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> Punkt</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> Punkte</item>
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Rein schwarzer Hintergrund für dunkles Thema</string>
|
||||
</resources>
|
||||
@@ -99,7 +99,6 @@
|
||||
<string name="editBarcode">Editar el código de barras</string>
|
||||
<string name="barcode">Código de barras</string>
|
||||
<string name="card">Tarjeta</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> puntos</string>
|
||||
<string name="expiryStateSentenceExpired">Expirado: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Expira: <xliff:g>%s</xliff:g></string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Derechos de autor © 2019-<xliff:g>%d</xliff:g> de Sylvia van Os.</string>
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
<string name="editBarcode">Muokkaa viivakoodia</string>
|
||||
<string name="barcode">Viivakoodi</string>
|
||||
<string name="card">Kortti</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> pistettä</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Vanhentunut: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Vanhenee: <xliff:g>%s</xliff:g></string>
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
\nAUCUNE DONNÉE N’EST COLLECTÉE, ce que tout le monde peut confirmer puisque notre application est un logiciel libre.</string>
|
||||
<string name="privacy_policy">Politique de confidentialité</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Importer les données depuis \?</string>
|
||||
<string name="chooseImportType">Importer les données depuis</string>
|
||||
<string name="parsingBalanceFailed"><xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g> ne semble pas être un solde valide.</string>
|
||||
<string name="points">Points</string>
|
||||
<string name="currency">Monnaie</string>
|
||||
@@ -109,7 +109,6 @@
|
||||
<string name="editBarcode">Modifier le code-barres</string>
|
||||
<string name="barcode">Code-barres</string>
|
||||
<string name="card">Carte</string>
|
||||
<string name="balancePoints"><xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g> points</string>
|
||||
<string name="balanceSentence">Solde : <xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Expiré : <xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Expire : <xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%s</xliff:g></string>
|
||||
@@ -226,4 +225,9 @@
|
||||
<string name="set_scale">Définir une échelle</string>
|
||||
<string name="showMoreInfo">Afficher les infos</string>
|
||||
<string name="hideMoreInfo">Masquer les infos</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> point</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> points</item>
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Fond noir pur pour le thème sombre</string>
|
||||
</resources>
|
||||
232
app/src/main/res/values-hu/strings.xml
Normal file
@@ -0,0 +1,232 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="noGiftCards">Nyomja meg a + jelet a kártya hozzáadásához, vagy importáljon a ⋮ menüvel.</string>
|
||||
<string name="action_add">Hozzáadás</string>
|
||||
<string name="action_search">Keresés</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> kiválasztva</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kiválasztva</item>
|
||||
</plurals>
|
||||
<string name="noCardsMessage">Először adjon hozzá egy kártyát</string>
|
||||
<string name="noGiftCardsGroup">Hozzon létre kártyákat, és rendelje hozzá a megfelelő csoporthoz.</string>
|
||||
<string name="noMatchingGiftCards">Nincs eredmény. Próbálja módosítani a keresést.</string>
|
||||
<string name="storeName">Név</string>
|
||||
<string name="note">Feljegyzés</string>
|
||||
<string name="cardId">Kártya azonosító</string>
|
||||
<string name="barcodeType">Vonalkód típus</string>
|
||||
<string name="barcodeNoBarcode">Nincs vonalkód</string>
|
||||
<string name="noBarcode">Nincs vonalkód</string>
|
||||
<string name="star">Kedvencekhez adás</string>
|
||||
<string name="unstar">Kivétel a kedvencek közül</string>
|
||||
<string name="cancel">Mégse</string>
|
||||
<string name="save">Mentés</string>
|
||||
<string name="edit">Szerkesztés</string>
|
||||
<string name="delete">Törlés</string>
|
||||
<string name="confirm">Alkalmaz</string>
|
||||
<string name="lockScreen">Forgatás blokkolása</string>
|
||||
<string name="unlockScreen">Blokkolás engedélyezése</string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> törlése</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> törlése</item>
|
||||
</plurals>
|
||||
<string name="deleteConfirmation">Véglegesen törli a kártyát\?</string>
|
||||
<string name="ok">Rendben</string>
|
||||
<string name="copy_to_clipboard">Azonosító másolása a vágólapra</string>
|
||||
<string name="share">Megosztás</string>
|
||||
<string name="sendLabel">Küldés…</string>
|
||||
<string name="editCardTitle">Kártya szerkesztése</string>
|
||||
<string name="addCardTitle">Kártya hozzáadása</string>
|
||||
<string name="scanCardBarcode">Vonalkód szkennelése</string>
|
||||
<string name="cardShortcut">Kártya parancsikon</string>
|
||||
<string name="noStoreError">Nincs név megadva</string>
|
||||
<string name="failedParsingImportUriError">Nem elemezhető az importált URI</string>
|
||||
<string name="importExport">Import/Export</string>
|
||||
<string name="exportName">Export</string>
|
||||
<string name="importExportHelp">Az adataid mentése lehetővé teszi, hogy egy másik eszközre feltöltsd.</string>
|
||||
<string name="importSuccessfulTitle">Importálva</string>
|
||||
<string name="importFailedTitle">Importálás meghiúsult</string>
|
||||
<string name="importFailed">Importálás nem hajtható végre</string>
|
||||
<string name="exportSuccessfulTitle">Exportálva</string>
|
||||
<string name="exportFailedTitle">Exportálás meghiúsult</string>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Véglegesen törli a <xliff:g>%d</xliff:g> kártyát\?</item>
|
||||
<item quantity="other">Véglegesen törli a <xliff:g>%d</xliff:g> kártyákat\?</item>
|
||||
</plurals>
|
||||
<string name="deleteTitle">Kártya törlése</string>
|
||||
<string name="card_ids_copied">Azonosító(k) másolása</string>
|
||||
<string name="barcodeImageDescriptionWithType"><xliff:g>%s</xliff:g> vonalkód képe</string>
|
||||
<string name="noCardIdError">Nincs azonosító megadva</string>
|
||||
<string name="noCardExistsError">Kártya nem található</string>
|
||||
<string name="importStocardMessage">Válassza ki a <i>***-sync.zip</i> Stocard exportot.
|
||||
\nAdatinak exportját kérheti e-mailben a support@stocardapp.com címre írva.</string>
|
||||
<string name="importVoucherVault">Importálás Voucher Vault-ból</string>
|
||||
<string name="wrongValueForBarcodeType">Ez az érték meg megfelelő a vonalkód típushoz</string>
|
||||
<string name="settings_green_theme">Zöld</string>
|
||||
<string name="setBackImage">Hátlapi kép beállítása</string>
|
||||
<string name="no">Nem</string>
|
||||
<string name="passwordRequired">Kérem írja be a kódot</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="exportPasswordHint">Kód beírása</string>
|
||||
<string name="failedGeneratingShareURL">Nem lehetett megosztható címet generálni. Kérem jelentse ezt.</string>
|
||||
<string name="settings_theme_color">Téma színe</string>
|
||||
<string name="settings_grey_theme">Szürke</string>
|
||||
<string name="sort">Rendez</string>
|
||||
<string name="on_google_play">Google Play-en</string>
|
||||
<string name="action_show_details">Részletek mutatása</string>
|
||||
<string name="action_hide_details">Részletek elrejtése</string>
|
||||
<string name="and_data_usage">és adat használat</string>
|
||||
<string name="translate_platform">Weblate-en</string>
|
||||
<string name="sort_by_name">Név</string>
|
||||
<string name="sort_by_most_recently_used">Legutóbb használt</string>
|
||||
<string name="sort_by_expiry">Lejárat</string>
|
||||
<string name="rate_this_app">Értékelje az appot</string>
|
||||
<string name="exportFailed">Exportálás sikertelen</string>
|
||||
<string name="importing">Importálás…</string>
|
||||
<string name="exporting">Exportálás…</string>
|
||||
<string name="noExternalStoragePermissionError">Külső háttértárhoz való hozzáférés engedélyezése adat import vagy export miatt</string>
|
||||
<string name="exportOptionExplanation">Az adatokat a kiválasztott helyre fogjuk menteni.</string>
|
||||
<string name="importOptionFilesystemTitle">Importálás fájlrendszerből</string>
|
||||
<string name="importOptionFilesystemButton">A fájlrendszerből</string>
|
||||
<string name="importOptionApplicationTitle">Másik app használata</string>
|
||||
<string name="importOptionApplicationExplanation">Használjon egy tetszőleges appot, vagy kedvenc fájl menedzserét a fájl megnyitásához.</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Szerzői Jog © 2019–<xliff:g>%d</xliff:g> Sylvia van Os</string>
|
||||
<string name="app_license">Copyleft-elt gáttalan szoftver, GPLv3+ licenszelve</string>
|
||||
<string name="about_title_fmt"><xliff:g id="app_name">%s</xliff:g> névjegye</string>
|
||||
<string name="debug_version_fmt">Verzió: <xliff:g id="version">%s</xliff:g></string>
|
||||
<string name="app_revision_fmt">Revíziós információ: <xliff:g id="app_revision_url">%s</xliff:g></string>
|
||||
<string name="app_resources">Gáttalan külsős források: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="selectBarcodeTitle">Vonalkód kiválasztása</string>
|
||||
<string name="enterBarcodeInstructions">Írja be az azonosítót, majd válasszon egy vonalkódot, vagy a \"Nincs vonalkód\" opciót.</string>
|
||||
<string name="copy_to_clipboard_toast">Azonosító vágólapra másolva</string>
|
||||
<string name="starImage">Kedvencek csillag</string>
|
||||
<string name="settings">Beállítások</string>
|
||||
<string name="settings_category_title_ui">Felhasználói felület</string>
|
||||
<string name="settings_theme">Téma</string>
|
||||
<string name="settings_system_theme">Rendszer</string>
|
||||
<string name="settings_light_theme">Világos</string>
|
||||
<string name="settings_max_font_size_scale">Max. betű méret</string>
|
||||
<string name="settings_display_barcode_max_brightness">Fényes vonalkód nézet</string>
|
||||
<string name="settings_lock_barcode_orientation">Vonalkód tájolás zárolása</string>
|
||||
<string name="settings_keep_screen_on">Képernyő bekapcsolva marad</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Képernyő zárólás megakadályozása</string>
|
||||
<string name="intent_import_card_from_url_share_text">Meg akarok veled osztani egy kártyát</string>
|
||||
<string name="importSuccessful">Adat importálva</string>
|
||||
<string name="exportSuccessful">Adat exportálva</string>
|
||||
<string name="enter_group_name">Adja meg a csoport nevét</string>
|
||||
<string name="groups">Csoportok</string>
|
||||
<string name="group_edit">Csoport szerkesztése</string>
|
||||
<string name="group_name_is_empty">Csoport név nem lehet üres</string>
|
||||
<string name="failedOpeningFileManager">Telepítsen egy fájl menedzsert.</string>
|
||||
<string name="moveUp">Felfelé mozgatás</string>
|
||||
<string name="moveDown">Lefelé mozgatás</string>
|
||||
<string name="leaveWithoutSaveTitle">Kilépés</string>
|
||||
<string name="leaveWithoutSaveConfirmation">Kilépés mentés nélkül\?</string>
|
||||
<string name="addManually">Azonosító manuális beírása</string>
|
||||
<string name="addFromImage">Kép kiválasztása a galériából</string>
|
||||
<string name="editGroup">Csoportok szerkesztése: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Érvényes: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Egyenleg: <xliff:g>%s</xliff:g></string>
|
||||
<string name="card">Kártya</string>
|
||||
<string name="barcode">Vonalkód</string>
|
||||
<string name="editBarcode">Vonalkód szerkesztése</string>
|
||||
<string name="expiryDate">Lejárati dátum</string>
|
||||
<string name="never">Soha</string>
|
||||
<string name="chooseExpiryDate">Lejárati dátum kiválasztása</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Vonalkód feltolása a képernyő tetejére</string>
|
||||
<string name="moveBarcodeToCenterOfScreen">Vonalkód középre igazítása</string>
|
||||
<string name="noBarcodeFound">Nem található vonalkód</string>
|
||||
<string name="errorReadingImage">Nem lehet olvasni a képet</string>
|
||||
<string name="balance">Egyenleg</string>
|
||||
<string name="currency">Valuta</string>
|
||||
<string name="points">Pontok</string>
|
||||
<string name="parsingBalanceFailed">A <xliff:g>%s</xliff:g> nem tűnik valós egyenlegnek.</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="privacy_policy">Adatvédelmi Szabályzat</string>
|
||||
<string name="accept">Elfogad</string>
|
||||
<string name="importCatima">Importálás Catimából</string>
|
||||
<string name="importFidme">Importálás FidMe-ből</string>
|
||||
<string name="importLoyaltyCardKeychain">Importálás a Loyalty Card Keychain-ből</string>
|
||||
<string name="importLoyaltyCardKeychainMessage">Válassza ki a Loyalty Card Keychain-ból importálni kívánt <i>LoyaltyCardKeychain.csv</i> export fájlt.
|
||||
\nLétrehozhatja az Import/Export menüből ha a Loyalty Card Keychain-ben rányom az Exportra.</string>
|
||||
<string name="importStocard">Importálás Stocard-ból</string>
|
||||
<string name="importVoucherVaultMessage">Válassza ki a <i>vouchervault.json</i> Voucher Vault exportját.
|
||||
\nLétrehozhatja az Export-ra nyomva a Voucher Vault-ban.</string>
|
||||
<string name="barcodeId">Vonalkód érték</string>
|
||||
<string name="sameAsCardId">Ugyanaz, mint az azonosító</string>
|
||||
<string name="setBarcodeId">Vonalkód érték beállítása</string>
|
||||
<string name="unsupportedBarcodeType">Ez a vonalkód típus még nem megjeleníthető. Feltehetően támogatva lesz egy későbbi verzióban.</string>
|
||||
<string name="copy_to_clipboard_multiple_toast">Azonosítók a vágólapra másolva</string>
|
||||
<string name="intent_import_card_from_url_share_multiple_text">Meg akarok veled osztani pár kártyát</string>
|
||||
<string name="frontImageDescription">Előlapi kép</string>
|
||||
<string name="backImageDescription">Hátlapi kép</string>
|
||||
<string name="photos">Fotók</string>
|
||||
<string name="setFrontImage">Előlapi kép beállítása</string>
|
||||
<string name="removeImage">Kép eltávolítása</string>
|
||||
<string name="takePhoto">Fénykép készítése</string>
|
||||
<string name="updateBarcodeQuestionTitle">Vonalkód érték frissítése\?</string>
|
||||
<string name="updateBarcodeQuestionText">Megváltoztatta az azonosító. Meg akarja ennek megfelelően változtatni a vonalkód értéket is\?</string>
|
||||
<string name="yes">Igen</string>
|
||||
<string name="exportPassword">Írjon be egy jelszót az export védelme érdekében (opcionális)</string>
|
||||
<string name="turn_flashlight_on">Zseblámpa bekapcsolása</string>
|
||||
<string name="turn_flashlight_off">Zseblámpa kikapcsolása</string>
|
||||
<string name="settings_locale">Nyelv</string>
|
||||
<string name="settings_system_locale">Rendszer</string>
|
||||
<string name="selectColor">Szín kiválasztása</string>
|
||||
<string name="setIcon">Ikon beállítása</string>
|
||||
<string name="settings_pink_theme">Rózsaszín</string>
|
||||
<string name="settings_magenta_theme">Magenta</string>
|
||||
<string name="settings_violet_theme">Ibolyaszínű</string>
|
||||
<string name="settings_blue_theme">Kék</string>
|
||||
<string name="settings_sky_blue_theme">Égszínkék</string>
|
||||
<string name="settings_brown_theme">Barna</string>
|
||||
<string name="app_contributors">Lehetővé tette: <xliff:g id="app_contributors">%s</xliff:g></string>
|
||||
<string name="showMoreInfo">Infó mutatása</string>
|
||||
<string name="hideMoreInfo">Infó elrejtése</string>
|
||||
<string name="swipeToSwitchImages">Húzza oldalra vagy tartsa nyomva a kép megváltoztatásáért</string>
|
||||
<string name="sort_by_balance">Egyenleg</string>
|
||||
<string name="reverse">...fordított sorrendben</string>
|
||||
<string name="sort_by">Rendezés mint</string>
|
||||
<string name="version_history">Verzió történet</string>
|
||||
<string name="credits">Köszönet</string>
|
||||
<string name="help_translate_this_app">Segítsen lefordítani az appot</string>
|
||||
<string name="license">Licensz</string>
|
||||
<string name="source_repository">Forrás repó</string>
|
||||
<string name="on_github">GitBub-on</string>
|
||||
<string name="report_error">Hiba Jelentése</string>
|
||||
<string name="shortcutSelectCard">Válasszon egy kártyát</string>
|
||||
<string name="options">Beállítások</string>
|
||||
<string name="starred">Csillagozva</string>
|
||||
<string name="set_scale">Méret választása</string>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> kártya</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kártyák</item>
|
||||
</plurals>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> pont</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> pont</item>
|
||||
</plurals>
|
||||
<string name="chooseImportType">Adat importálása innen</string>
|
||||
<string name="thumbnailDescription">Előkép</string>
|
||||
<string name="importOptionFilesystemExplanation">Válassza ki a kívánt fájlt a fájlrendszerből.</string>
|
||||
<string name="importOptionApplicationButton">Másik app használata</string>
|
||||
<string name="about">Névjegy</string>
|
||||
<string name="app_copyright_old">Készült a Loyalty Card Keychain alapján
|
||||
\nszerzői jog © 2016–2020 Branden Archer</string>
|
||||
<string name="app_libraries">Gáttalan külsős mappák: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="settings_dark_theme">Sötét</string>
|
||||
<string name="deleteConfirmationGroup">Csoport törlése\?</string>
|
||||
<string name="noGroups">Nyomja meg a + gombot a csoportok kategorizálásához.</string>
|
||||
<string name="group_name_already_in_use">Csoport név már létezik</string>
|
||||
<string name="all">Mind</string>
|
||||
<string name="noGroupCards">Ez a csoport üres</string>
|
||||
<string name="group_updated">Csoport frissítve</string>
|
||||
<string name="expiryStateSentenceExpired">Lejárt: <xliff:g>%s</xliff:g></string>
|
||||
<string name="groupsList">Csoportok: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importCatimaMessage">Válassza ki a <i>catima.zip</i>-jét az importáláshoz.
|
||||
\nLétrehozhatja az Import/Export menüből az Exportálást megnyomva egy másik Catima appban.</string>
|
||||
<string name="privacy_policy_popup_text">Adatvédelmi szabály értesítő (némely app bolt kéri):
|
||||
\n
|
||||
\nSEMMILYEN ADATGYŰJTÉS NINCS, amit bárki ellenőrizhet, lévén hogy az app gáttalan szoftver.</string>
|
||||
<string name="importFidmeMessage">Válassza ki a <i>fidme-export-request-xxxxxx.zip</i> nevű FidMe exportot, majd importálja be és válassza a manuális vonalkód opciót utána.
|
||||
\nEzt a FidMe-ben megtalálja a profiljában az Adat Védelem résznél ha rányom az Adataim Kivonata linkre.</string>
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="app_revision_url">https://github.com/TheLastProject/Catima/releases</string>
|
||||
<string name="app_revision_url">https://github.com/CatimaLoyalty/Android/releases</string>
|
||||
<string name="storeName">Nama</string>
|
||||
<string name="note">Keterangan</string>
|
||||
<string name="delete">Hapus</string>
|
||||
@@ -143,7 +143,6 @@
|
||||
<string name="expiryStateSentence">Masa ber: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Kadaluwarsa: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> poin</string>
|
||||
<string name="editBarcode">Ubah barcode</string>
|
||||
<string name="expiryDate">Tanggal masa berlaku</string>
|
||||
<string name="never">Tidak pernah</string>
|
||||
|
||||
@@ -102,7 +102,6 @@
|
||||
<string name="editBarcode">Modifica il codice a barre</string>
|
||||
<string name="barcode">Codice a barre</string>
|
||||
<string name="card">Carta</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> punti</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Scaduta: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Scadenza: <xliff:g>%s</xliff:g></string>
|
||||
@@ -226,4 +225,9 @@
|
||||
<string name="set_scale">Imposta la scala</string>
|
||||
<string name="showMoreInfo">Mostra info</string>
|
||||
<string name="hideMoreInfo">Nascondi info</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> punto</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> punti</item>
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Sfondo nero puro per il tema scuro</string>
|
||||
</resources>
|
||||
@@ -33,7 +33,6 @@
|
||||
<string name="editBarcode">バーコードの編集</string>
|
||||
<string name="barcode">バーコード</string>
|
||||
<string name="card">カード</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> ポイント</string>
|
||||
<string name="balanceSentence">残高: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">期限切れ: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">期限: <xliff:g>%s</xliff:g></string>
|
||||
|
||||
@@ -104,7 +104,6 @@
|
||||
<string name="editBarcode">Redaguoti brūkšninį kodą</string>
|
||||
<string name="barcode">Brūkšninis kodas</string>
|
||||
<string name="card">Kortelė</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> taškai</string>
|
||||
<string name="balanceSentence">Balansas: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Galiojimas baigėsi: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Nustoja galioti: <xliff:g>%s</xliff:g></string>
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
<string name="starImage">Favorittstjerne</string>
|
||||
<string name="unstar">Fjern fra favoritter</string>
|
||||
<string name="star">Legg til i favoritter</string>
|
||||
<string name="noGroups">Klikk på «+»- (pluss)-tegnet for å legge til grupper for kategorisering først.</string>
|
||||
<string name="noGroups">Klikk på «+»- (pluss)-tegnet for å legge til grupper for kategorisering.</string>
|
||||
<string name="deleteConfirmationGroup">Slett gruppe?</string>
|
||||
<string name="all">Alle</string>
|
||||
<string name="groups">Grupper</string>
|
||||
@@ -104,7 +104,6 @@
|
||||
<string name="points">Poeng</string>
|
||||
<string name="currency">Valuta</string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> poeng</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseImportType">Importer data fra?</string>
|
||||
<string name="app_loyalty_card_keychain">Kundekortknippe</string>
|
||||
@@ -188,7 +187,7 @@
|
||||
<string name="noGroupCards">Denne gruppen er tom</string>
|
||||
<string name="barcodeImageDescriptionWithType">Bilde av <xliff:g>%s</xliff:g>-strekkode</string>
|
||||
<string name="swipeToSwitchImages">Dra eller hold lenge for å bygge bilder</string>
|
||||
<string name="sort_by">Sorter etter</string>
|
||||
<string name="sort_by">Sortering</string>
|
||||
<string name="reverse">…i omvendt rekkefølge</string>
|
||||
<string name="sort_by_balance">Saldo</string>
|
||||
<string name="sort_by_expiry">Utløp</string>
|
||||
@@ -224,6 +223,11 @@
|
||||
<string name="options">Alternativer</string>
|
||||
<string name="starred">Stjernemerket</string>
|
||||
<string name="set_scale">Sett skalering</string>
|
||||
<string name="showMoreInfo">Vis mer info</string>
|
||||
<string name="hideMoreInfo">Skjul mer info</string>
|
||||
</resources>
|
||||
<string name="showMoreInfo">Vis info</string>
|
||||
<string name="hideMoreInfo">Skjul info</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%d</xliff:g> poeng</item>
|
||||
<item quantity="other"><xliff:g xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">%d</xliff:g> poeng</item>
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Svart bakgrunn for mørk drakt</string>
|
||||
</resources>
|
||||
|
||||
@@ -30,4 +30,216 @@
|
||||
|
||||
<item name="windowActionModeOverlay">true</item>
|
||||
</style>
|
||||
|
||||
<!-- note that this is not used directly, these are used to patch the active theme runtime with
|
||||
theme.applyStyle
|
||||
-->
|
||||
<style name="DarkBackground">
|
||||
<item name="android:colorBackground">#000000</item>
|
||||
<item name="colorSurface">#000000</item>
|
||||
</style>
|
||||
|
||||
<!-- color themes -->
|
||||
<style name="pink">
|
||||
<item name="colorPrimary">#FFB2C0</item>
|
||||
<item name="colorOnPrimary">#670024</item>
|
||||
<item name="colorPrimaryContainer">#900036</item>
|
||||
<item name="colorOnPrimaryContainer">#FFD9DF</item>
|
||||
<item name="colorSecondary">#E5BDC2</item>
|
||||
<item name="colorOnSecondary">#43292D</item>
|
||||
<item name="colorSecondaryContainer">#5C3F43</item>
|
||||
<item name="colorOnSecondaryContainer">#FFD9DE</item>
|
||||
<item name="colorTertiary">#EBBF90</item>
|
||||
<item name="colorOnTertiary">#452B08</item>
|
||||
<item name="colorTertiaryContainer">#5F411C</item>
|
||||
<item name="colorOnTertiaryContainer">#FFDDB8</item>
|
||||
<item name="colorError">#FFB4A9</item>
|
||||
<item name="colorErrorContainer">#930006</item>
|
||||
<item name="colorOnError">#680003</item>
|
||||
<item name="colorOnErrorContainer">#FFDAD4</item>
|
||||
<item name="android:colorBackground">#201A1B</item>
|
||||
<item name="colorOnBackground">#ECE0E0</item>
|
||||
<item name="colorSurface">#201A1B</item>
|
||||
<item name="colorOnSurface">#ECE0E0</item>
|
||||
<item name="colorSurfaceVariant">#524345</item>
|
||||
<item name="colorOnSurfaceVariant">#D6C1C3</item>
|
||||
<item name="colorOutline">#9F8C8E</item>
|
||||
<item name="colorOnSurfaceInverse">#201A1B</item>
|
||||
<item name="colorSurfaceInverse">#ECE0E0</item>
|
||||
<item name="colorPrimaryInverse">#BC0049</item>
|
||||
</style>
|
||||
|
||||
<style name="magenta">
|
||||
<item name="colorPrimary">#FBAAFF</item>
|
||||
<item name="colorOnPrimary">#570068</item>
|
||||
<item name="colorPrimaryContainer">#7B0091</item>
|
||||
<item name="colorOnPrimaryContainer">#FFD5FF</item>
|
||||
<item name="colorSecondary">#D7BFD5</item>
|
||||
<item name="colorOnSecondary">#3B2B3B</item>
|
||||
<item name="colorSecondaryContainer">#534153</item>
|
||||
<item name="colorOnSecondaryContainer">#F5DBF2</item>
|
||||
<item name="colorTertiary">#F6B8AE</item>
|
||||
<item name="colorOnTertiary">#4C251F</item>
|
||||
<item name="colorTertiaryContainer">#663B34</item>
|
||||
<item name="colorOnTertiaryContainer">#FFDAD2</item>
|
||||
<item name="colorError">#FFB4A9</item>
|
||||
<item name="colorErrorContainer">#930006</item>
|
||||
<item name="colorOnError">#680003</item>
|
||||
<item name="colorOnErrorContainer">#FFDAD4</item>
|
||||
<item name="android:colorBackground">#1E1A1D</item>
|
||||
<item name="colorOnBackground">#E9E0E5</item>
|
||||
<item name="colorSurface">#1E1A1D</item>
|
||||
<item name="colorOnSurface">#E9E0E5</item>
|
||||
<item name="colorSurfaceVariant">#4D444C</item>
|
||||
<item name="colorOnSurfaceVariant">#D0C3CC</item>
|
||||
<item name="colorOutline">#998E96</item>
|
||||
<item name="colorOnSurfaceInverse">#1E1A1D</item>
|
||||
<item name="colorSurfaceInverse">#E9E0E5</item>
|
||||
<item name="colorPrimaryInverse">#9A25AE</item>
|
||||
</style>
|
||||
|
||||
<style name="violet">
|
||||
<item name="colorPrimary">#D4BAFF</item>
|
||||
<item name="colorOnPrimary">#3E008E</item>
|
||||
<item name="colorPrimaryContainer">#5727A7</item>
|
||||
<item name="colorOnPrimaryContainer">#ECDCFF</item>
|
||||
<item name="colorSecondary">#CDC2DB</item>
|
||||
<item name="colorOnSecondary">#342D41</item>
|
||||
<item name="colorSecondaryContainer">#4B4358</item>
|
||||
<item name="colorOnSecondaryContainer">#E9DEF7</item>
|
||||
<item name="colorTertiary">#F0B8C5</item>
|
||||
<item name="colorOnTertiary">#4A2530</item>
|
||||
<item name="colorTertiaryContainer">#643A46</item>
|
||||
<item name="colorOnTertiaryContainer">#FFD9E2</item>
|
||||
<item name="colorError">#FFB4A9</item>
|
||||
<item name="colorErrorContainer">#930006</item>
|
||||
<item name="colorOnError">#680003</item>
|
||||
<item name="colorOnErrorContainer">#FFDAD4</item>
|
||||
<item name="android:colorBackground">#1D1B1F</item>
|
||||
<item name="colorOnBackground">#E6E1E5</item>
|
||||
<item name="colorSurface">#1D1B1F</item>
|
||||
<item name="colorOnSurface">#E6E1E5</item>
|
||||
<item name="colorSurfaceVariant">#49454E</item>
|
||||
<item name="colorOnSurfaceVariant">#CBC4CF</item>
|
||||
<item name="colorOutline">#948E99</item>
|
||||
<item name="colorOnSurfaceInverse">#1D1B1F</item>
|
||||
<item name="colorSurfaceInverse">#E6E1E5</item>
|
||||
<item name="colorPrimaryInverse">#6F43BF</item>
|
||||
</style>
|
||||
|
||||
<style name="blue">
|
||||
<item name="colorPrimary">#B9C3FF</item>
|
||||
<item name="colorOnPrimary">#08218A</item>
|
||||
<item name="colorPrimaryContainer">#293CA0</item>
|
||||
<item name="colorOnPrimaryContainer">#DDE0FF</item>
|
||||
<item name="colorSecondary">#C4C5DD</item>
|
||||
<item name="colorOnSecondary">#2D2F42</item>
|
||||
<item name="colorSecondaryContainer">#43465A</item>
|
||||
<item name="colorOnSecondaryContainer">#E0E1FA</item>
|
||||
<item name="colorTertiary">#E5BAD7</item>
|
||||
<item name="colorOnTertiary">#45263E</item>
|
||||
<item name="colorTertiaryContainer">#5D3C55</item>
|
||||
<item name="colorOnTertiaryContainer">#FFD7F3</item>
|
||||
<item name="colorError">#FFB4A9</item>
|
||||
<item name="colorErrorContainer">#930006</item>
|
||||
<item name="colorOnError">#680003</item>
|
||||
<item name="colorOnErrorContainer">#FFDAD4</item>
|
||||
<item name="android:colorBackground">#1B1B1F</item>
|
||||
<item name="colorOnBackground">#E4E1E6</item>
|
||||
<item name="colorSurface">#1B1B1F</item>
|
||||
<item name="colorOnSurface">#E4E1E6</item>
|
||||
<item name="colorSurfaceVariant">#46464F</item>
|
||||
<item name="colorOnSurfaceVariant">#C6C5D0</item>
|
||||
<item name="colorOutline">#90909A</item>
|
||||
<item name="colorOnSurfaceInverse">#1B1B1F</item>
|
||||
<item name="colorSurfaceInverse">#E4E1E6</item>
|
||||
<item name="colorPrimaryInverse">#4355B9</item>
|
||||
</style>
|
||||
|
||||
<style name="skyblue">
|
||||
<item name="colorPrimary">#8BCEFF</item>
|
||||
<item name="colorOnPrimary">#003450</item>
|
||||
<item name="colorPrimaryContainer">#004B71</item>
|
||||
<item name="colorOnPrimaryContainer">#C8E6FF</item>
|
||||
<item name="colorSecondary">#B7C8D8</item>
|
||||
<item name="colorOnSecondary">#22323F</item>
|
||||
<item name="colorSecondaryContainer">#384956</item>
|
||||
<item name="colorOnSecondaryContainer">#D3E4F5</item>
|
||||
<item name="colorTertiary">#CFBFE8</item>
|
||||
<item name="colorOnTertiary">#362B4B</item>
|
||||
<item name="colorTertiaryContainer">#4D4162</item>
|
||||
<item name="colorOnTertiaryContainer">#ECDCFF</item>
|
||||
<item name="colorError">#FFB4A9</item>
|
||||
<item name="colorErrorContainer">#930006</item>
|
||||
<item name="colorOnError">#680003</item>
|
||||
<item name="colorOnErrorContainer">#FFDAD4</item>
|
||||
<item name="android:colorBackground">#1A1C1E</item>
|
||||
<item name="colorOnBackground">#E2E2E5</item>
|
||||
<item name="colorSurface">#1A1C1E</item>
|
||||
<item name="colorOnSurface">#E2E2E5</item>
|
||||
<item name="colorSurfaceVariant">#41474D</item>
|
||||
<item name="colorOnSurfaceVariant">#C1C7CE</item>
|
||||
<item name="colorOutline">#8B9198</item>
|
||||
<item name="colorOnSurfaceInverse">#1A1C1E</item>
|
||||
<item name="colorSurfaceInverse">#E2E2E5</item>
|
||||
<item name="colorPrimaryInverse">#006494</item>
|
||||
</style>
|
||||
|
||||
<style name="green">
|
||||
<item name="colorPrimary">#78DC77</item>
|
||||
<item name="colorOnPrimary">#003907</item>
|
||||
<item name="colorPrimaryContainer">#00530F</item>
|
||||
<item name="colorOnPrimaryContainer">#93F990</item>
|
||||
<item name="colorSecondary">#B9CCB3</item>
|
||||
<item name="colorOnSecondary">#253423</item>
|
||||
<item name="colorSecondaryContainer">#3B4B38</item>
|
||||
<item name="colorOnSecondaryContainer">#D5E8CE</item>
|
||||
<item name="colorTertiary">#A1CFD5</item>
|
||||
<item name="colorOnTertiary">#00363B</item>
|
||||
<item name="colorTertiaryContainer">#1E4D52</item>
|
||||
<item name="colorOnTertiaryContainer">#BCEBF0</item>
|
||||
<item name="colorError">#FFB4A9</item>
|
||||
<item name="colorErrorContainer">#930006</item>
|
||||
<item name="colorOnError">#680003</item>
|
||||
<item name="colorOnErrorContainer">#FFDAD4</item>
|
||||
<item name="android:colorBackground">#1A1C19</item>
|
||||
<item name="colorOnBackground">#E2E3DD</item>
|
||||
<item name="colorSurface">#1A1C19</item>
|
||||
<item name="colorOnSurface">#E2E3DD</item>
|
||||
<item name="colorSurfaceVariant">#424840</item>
|
||||
<item name="colorOnSurfaceVariant">#C2C8BD</item>
|
||||
<item name="colorOutline">#8C9288</item>
|
||||
<item name="colorOnSurfaceInverse">#1A1C19</item>
|
||||
<item name="colorSurfaceInverse">#E2E3DD</item>
|
||||
<item name="colorPrimaryInverse">#006E17</item>
|
||||
</style>
|
||||
|
||||
<style name="brown">
|
||||
<item name="colorPrimary">#FFB598</item>
|
||||
<item name="colorOnPrimary">#5C1A00</item>
|
||||
<item name="colorPrimaryContainer">#7B2E0D</item>
|
||||
<item name="colorOnPrimaryContainer">#FFDBCD</item>
|
||||
<item name="colorSecondary">#E7BEB0</item>
|
||||
<item name="colorOnSecondary">#442A20</item>
|
||||
<item name="colorSecondaryContainer">#5D4035</item>
|
||||
<item name="colorOnSecondaryContainer">#FFDBCD</item>
|
||||
<item name="colorTertiary">#D5C78E</item>
|
||||
<item name="colorOnTertiary">#383005</item>
|
||||
<item name="colorTertiaryContainer">#50461A</item>
|
||||
<item name="colorOnTertiaryContainer">#F1E2A7</item>
|
||||
<item name="colorError">#FFB4A9</item>
|
||||
<item name="colorErrorContainer">#930006</item>
|
||||
<item name="colorOnError">#680003</item>
|
||||
<item name="colorOnErrorContainer">#FFDAD4</item>
|
||||
<item name="android:colorBackground">#201A18</item>
|
||||
<item name="colorOnBackground">#EDE0DC</item>
|
||||
<item name="colorSurface">#201A18</item>
|
||||
<item name="colorOnSurface">#EDE0DC</item>
|
||||
<item name="colorSurfaceVariant">#52433E</item>
|
||||
<item name="colorOnSurfaceVariant">#D8C2BB</item>
|
||||
<item name="colorOutline">#A08C86</item>
|
||||
<item name="colorOnSurfaceInverse">#201A18</item>
|
||||
<item name="colorSurfaceInverse">#EDE0DC</item>
|
||||
<item name="colorPrimaryInverse">#9A4523</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
@@ -104,9 +104,8 @@
|
||||
<string name="points">Aantal punten</string>
|
||||
<string name="currency">Valuta</string>
|
||||
<string name="balance">Saldo</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> punten</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseImportType">Gegevens importeren uit…\?</string>
|
||||
<string name="chooseImportType">Gegevens importeren uit</string>
|
||||
<string name="app_loyalty_card_keychain">Klantenkaartkluis</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Schermvergrendeling uitschakelen</string>
|
||||
<string name="settings_keep_screen_on">Scherm niet uitschakelen</string>
|
||||
@@ -226,4 +225,9 @@
|
||||
<string name="starred">Favoriet</string>
|
||||
<string name="hideMoreInfo">Informatie verbergen</string>
|
||||
<string name="set_scale">Schaal instellen</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> punt</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> punten</item>
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Zwarte achtergrond gebruiken bij donker thema</string>
|
||||
</resources>
|
||||
@@ -4,17 +4,17 @@
|
||||
<string name="importing">Importacion…</string>
|
||||
<string name="exportFailed">Exportacion pas possibla</string>
|
||||
<string name="exportSuccessfulTitle">Exportat</string>
|
||||
<string name="importFailed">Importacion de vòstras cartas impossibla</string>
|
||||
<string name="importFailed">Importacion impossibla</string>
|
||||
<string name="importFailedTitle">Fracàs de l’importacion</string>
|
||||
<string name="importSuccessfulTitle">Importat</string>
|
||||
<string name="importExportHelp">Exportar vòstras cartas vos permet de las recuperar sus un autre aparelh.</string>
|
||||
<string name="importExportHelp">La salvagarda de vòstras cartas vos permet de las recuperar sus un autre aparelh.</string>
|
||||
<string name="exportName">Exportar</string>
|
||||
<string name="importExport">Importar/Exportar</string>
|
||||
<string name="failedParsingImportUriError">Analisi impossibla l’URI d’importacion</string>
|
||||
<string name="noCardExistsError">Cap de carta pas trobada</string>
|
||||
<string name="noCardIdError">Cap de numèro de carta pas picat</string>
|
||||
<string name="noCardExistsError">Impossible de trobar aquesta carta</string>
|
||||
<string name="noCardIdError">Cap d’identificant pas picat</string>
|
||||
<string name="noStoreError">Cap de nom pas picat</string>
|
||||
<string name="card_ids_copied">Num. de la carta copiada</string>
|
||||
<string name="card_ids_copied">ID copiat(s)</string>
|
||||
<string name="noCardsMessage">Apondètz d’en primièr una carta</string>
|
||||
<string name="cardShortcut">Acorchi de carta</string>
|
||||
<string name="scanCardBarcode">Numerizar lo còdi de barras</string>
|
||||
@@ -45,9 +45,25 @@
|
||||
</plurals>
|
||||
<string name="deleteTitle">Suprimir la carta</string>
|
||||
<string name="noBarcode">Cap de còdi de barras</string>
|
||||
<string name="barcodeNoBarcode">Aquesta carta a pas cap de còdi de barras</string>
|
||||
<string name="barcodeNoBarcode">Cap de còdi de barras</string>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> carta seleccionada</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> cartas seleccionadas</item>
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> seleccionada</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> seleccionadas</item>
|
||||
</plurals>
|
||||
<string name="settings">Paramètres</string>
|
||||
<string name="settings_category_title_ui">Interfàcia utilizaire</string>
|
||||
<string name="settings_theme">Tèma</string>
|
||||
<string name="noGiftCards">Clicatz lo boton + per apondre una carta o utilizatz lo menú ⋮ per n’importar una.</string>
|
||||
<string name="noMatchingGiftCards">Cap de resultat. Ensajatz de modificar vòstra recèrca.</string>
|
||||
<string name="settings_light_theme">Clar</string>
|
||||
<string name="settings_dark_theme">Escur</string>
|
||||
<string name="noGroups">Clicatz lo boton + per apondre de grops de categorizar.</string>
|
||||
<string name="addManually">Picar l’ID a la man</string>
|
||||
<string name="settings_system_theme">Sistèma</string>
|
||||
<string name="about">A prepaus</string>
|
||||
<string name="about_title_fmt">A prepaus de <xliff:g id="app_name">%s</xliff:g></string>
|
||||
<string name="addFromImage">Causir a la galariá</string>
|
||||
<string name="groups">Grops</string>
|
||||
<string name="groupsList">Grops : <xliff:g>%s</xliff:g></string>
|
||||
<string name="settings_max_font_size_scale">Talha max. de la poliça</string>
|
||||
</resources>
|
||||
@@ -152,7 +152,6 @@
|
||||
<string name="editBarcode">Edytuj kod kreskowy</string>
|
||||
<string name="barcode">Kod kreskowy</string>
|
||||
<string name="card">Karta</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> punkty</string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Wygasło: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Wygasa: <xliff:g>%s</xliff:g></string>
|
||||
|
||||
@@ -64,7 +64,6 @@
|
||||
<string name="expiryStateSentence">Expiram: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Expirados: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Saldo: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> pontos</string>
|
||||
<string name="card">Cartão</string>
|
||||
<string name="barcode">Código de barras</string>
|
||||
<string name="editBarcode">Editar código de barras</string>
|
||||
|
||||
@@ -86,7 +86,6 @@
|
||||
<string name="exporting">A exportar…</string>
|
||||
<string name="settings_sky_blue_theme">Azul céu</string>
|
||||
<string name="report_error">Reportar erro</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> pontos</string>
|
||||
<string name="barcode">Código de barras</string>
|
||||
<string name="chooseImportType">De onde importar os dados\?</string>
|
||||
<string name="card">Cartão</string>
|
||||
@@ -221,4 +220,9 @@
|
||||
<string name="action_hide_details">Ocultar detalhes</string>
|
||||
<string name="shortcutSelectCard">Selecione um cartão</string>
|
||||
<string name="translate_platform">no Weblate</string>
|
||||
<string name="starred">Estrela</string>
|
||||
<string name="set_scale">Escala de set</string>
|
||||
<string name="showMoreInfo">Mostrar info</string>
|
||||
<string name="hideMoreInfo">Ocultar informação</string>
|
||||
<string name="options">Opções</string>
|
||||
</resources>
|
||||
@@ -63,8 +63,8 @@
|
||||
<string name="settings_system_theme">Системная</string>
|
||||
<string name="settings_light_theme">Светлая</string>
|
||||
<string name="settings_dark_theme">Тёмная</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимальная яркость при показе карты</string>
|
||||
<string name="settings_lock_barcode_orientation">Портретная ориентация экрана при показе карты</string>
|
||||
<string name="settings_display_barcode_max_brightness">Максимальная яркость при отображении карты</string>
|
||||
<string name="settings_lock_barcode_orientation">Портретная ориентация экрана при отображении карты</string>
|
||||
<string name="intent_import_card_from_url_share_text">Я хочу поделиться с вами картой</string>
|
||||
<string name="exportSuccessful">Данные успешно экспортированы</string>
|
||||
<string name="all">Все</string>
|
||||
@@ -82,7 +82,6 @@
|
||||
<string name="leaveWithoutSaveConfirmation">Выйти без сохранения\?</string>
|
||||
<string name="leaveWithoutSaveTitle">Выход</string>
|
||||
<string name="failedOpeningFileManager">Требуется файловый менеджер.</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> баллов</string>
|
||||
<string name="balanceSentence">Баланс: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Срок действия истёк: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Срок действия истекает: <xliff:g>%s</xliff:g></string>
|
||||
@@ -94,7 +93,7 @@
|
||||
\nНИКАКИЕ ДАННЫЕ НЕ СОБИРАЮТСЯ ВООБЩЕ, что может подтвердить любой, так как наше приложение является свободным программным обеспечением.</string>
|
||||
<string name="privacy_policy">Политика конфиденциальности</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Откуда импортировать данные\?</string>
|
||||
<string name="chooseImportType">Откуда импортировать данные</string>
|
||||
<string name="balance">Баланс</string>
|
||||
<string name="moveBarcodeToTopOfScreen">Переместить штрих-код в верхнюю часть экрана</string>
|
||||
<string name="moveBarcodeToCenterOfScreen">Центрировать штрих-код на экране</string>
|
||||
@@ -234,4 +233,11 @@
|
||||
<string name="hideMoreInfo">Скрыть данные</string>
|
||||
<string name="showMoreInfo">Показать данные</string>
|
||||
<string name="starred">Избранное</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> балл</item>
|
||||
<item quantity="few"><xliff:g>%s</xliff:g> балла</item>
|
||||
<item quantity="many"><xliff:g>%s</xliff:g> баллов</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> баллов</item>
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Чёрный фон для тёмной темы</string>
|
||||
</resources>
|
||||
@@ -1,8 +1,8 @@
|
||||
<?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="action_add">Pridať</string>
|
||||
<string name="noGiftCards">Zatiaľ nemáte žiadne vernostné karty. Kliknite na tlačidlo \"+\" (plus) vyššie a začnite.\n\nAplikácia Vernostné karty umožňuje nosiť svoje vernostné karty v telefóne, kde sú vždy na dosah.</string>
|
||||
<string name="storeName">Obchod</string>
|
||||
<string name="storeName">Názov</string>
|
||||
<string name="note">Poznámka</string>
|
||||
<string name="cardId">ID karty</string>
|
||||
<string name="cancel">Zrušiť</string>
|
||||
@@ -19,17 +19,17 @@
|
||||
<string name="addCardTitle">Pridať kartu</string>
|
||||
<string name="scanCardBarcode">Zosnímajte čiarový kód na karte</string>
|
||||
<string name="cardShortcut">Skratka</string>
|
||||
<string name="noCardsMessage">Nie sú uložené žiadne karty, vložte prvú</string>
|
||||
<string name="noCardsMessage">Najprv pridajte kartu</string>
|
||||
<string name="noStoreError">Nebol zadaný obchod</string>
|
||||
<string name="noCardIdError">Nebolo zadané ID karty</string>
|
||||
<string name="noCardExistsError">Nie je možné vyhľadať vernostnú kartu</string>
|
||||
<string name="noCardIdError">Nebolo zadané ID</string>
|
||||
<string name="noCardExistsError">Nepodarilo sa nájsť túto kartu</string>
|
||||
<string name="importExport">Import/Export</string>
|
||||
<string name="exportName">Export</string>
|
||||
<string name="importExportHelp">Zálohovanie dát Vám umožní presunúť Vaše uložené karty na iné zariadenie.</string>
|
||||
<string name="importSuccessfulTitle">Import bol úspešný</string>
|
||||
<string name="importSuccessfulTitle">Importované</string>
|
||||
<string name="importFailedTitle">Import zlyhal</string>
|
||||
<string name="importFailed">Zlyhal import</string>
|
||||
<string name="exportSuccessfulTitle">Export bol úspešný</string>
|
||||
<string name="exportSuccessfulTitle">Exportované</string>
|
||||
<string name="exportFailedTitle">Export zlyhal</string>
|
||||
<string name="exportFailed">Zlyhal export</string>
|
||||
<string name="importing">Importujem…</string>
|
||||
@@ -90,7 +90,7 @@
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Zabráňte uzamknutiu obrazovky</string>
|
||||
<string name="settings_keep_screen_on">Nechajte obrazovku zapnutú</string>
|
||||
<string name="settings_max_font_size_scale">Maximálna veľkosť písma</string>
|
||||
<string name="card_ids_copied">Skopírované ID karty</string>
|
||||
<string name="card_ids_copied">Skopírované ID</string>
|
||||
<string name="unstar">Odstrániť z obľúbených</string>
|
||||
<string name="settings_dark_theme">Tmavé</string>
|
||||
<string name="settings_light_theme">Svetlo</string>
|
||||
@@ -101,4 +101,111 @@
|
||||
<string name="exportOptionExplanation">Údaje sa zapíšu na vami zvolené miesto.</string>
|
||||
<string name="failedParsingImportUriError">Nepodarilo sa analyzovať import URI</string>
|
||||
<string name="share">Zdieľať</string>
|
||||
</resources>
|
||||
<string name="barcodeImageDescriptionWithType">Obrázok čiarového kódu <xliff:g>%s</xliff:g></string>
|
||||
<string name="groupsList">Skupiny: <xliff:g>%s</xliff:g></string>
|
||||
<plurals name="deleteCardsTitle">
|
||||
<item quantity="one">Odstrániť <xliff:g>%d</xliff:g> kartu</item>
|
||||
<item quantity="few">Odstrániť <xliff:g>%d</xliff:g> karty</item>
|
||||
<item quantity="other">Odstrániť <xliff:g>%d</xliff:g> kariet</item>
|
||||
</plurals>
|
||||
<plurals name="selectedCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> vybraná karta</item>
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> vybrané karty</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> vybraných kariet</item>
|
||||
</plurals>
|
||||
<plurals name="groupCardCount">
|
||||
<item quantity="one"><xliff:g>%d</xliff:g> karta</item>
|
||||
<item quantity="few"><xliff:g>%d</xliff:g> karty</item>
|
||||
<item quantity="other"><xliff:g>%d</xliff:g> kariet</item>
|
||||
</plurals>
|
||||
<plurals name="deleteCardsConfirmation">
|
||||
<item quantity="one">Naozaj chcete natrvalo odstrániť <xliff:g>%d</xliff:g> vybranú kartu\?</item>
|
||||
<item quantity="few">Naozaj chcete natrvalo odstrániť <xliff:g>%d</xliff:g> vybrané karty\?</item>
|
||||
<item quantity="other">Naozaj chcete natrvalo odstrániť <xliff:g>%d</xliff:g> vybraných kariet\?</item>
|
||||
</plurals>
|
||||
<string name="group_edit">Upraviť skupinu</string>
|
||||
<string name="group_name_already_in_use">Tento názov skupiny sa už používa</string>
|
||||
<string name="group_name_is_empty">Názov skupiny nemôže byť prázdny</string>
|
||||
<string name="group_updated">Skupina bola aktualizovaná</string>
|
||||
<string name="editGroup">Úprava skupiny: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Platí do: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Platnosť vypršala: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Zostatok: <xliff:g>%s</xliff:g></string>
|
||||
<string name="importCatima">Import z aplikácie Catima</string>
|
||||
<string name="settings_theme_color">Farba témy</string>
|
||||
<string name="app_libraries">Slobodné knižnice tretích strán: <xliff:g id="app_libraries_list">%s</xliff:g></string>
|
||||
<string name="app_resources">Slobodné zdroje tretích strán: <xliff:g id="app_resources_list">%s</xliff:g></string>
|
||||
<string name="action_show_details">Zobraziť detaily</string>
|
||||
<string name="importCatimaMessage">Vyberte svoj <i>catima.zip</i> export z aplikácie Catima, ktorý chcete importovať.
|
||||
\nVytvorte ho z ponuky Import/Export inej aplikácie Catima tak, že stlačíte tlačidlo Exportovať.</string>
|
||||
<string name="accept">Prijať</string>
|
||||
<string name="importLoyaltyCardKeychain">Import z aplikácie Loyalty Card Keychain</string>
|
||||
<string name="importFidme">Import z aplikácie FidMe</string>
|
||||
<string name="turn_flashlight_on">Zapnúť svetlo</string>
|
||||
<string name="sort_by_name">Názov</string>
|
||||
<string name="sort_by_most_recently_used">Naposledy použité</string>
|
||||
<string name="sort_by_balance">Zostatok</string>
|
||||
<string name="reverse">…v obrátenom poradí</string>
|
||||
<string name="on_github">na GitHube</string>
|
||||
<string name="sort_by_expiry">Koniec platnosti</string>
|
||||
<string name="sort_by">Zoradiť podľa</string>
|
||||
<string name="version_history">História verzií</string>
|
||||
<string name="source_repository">Repozitár zdrojového kódu</string>
|
||||
<string name="on_google_play">na Google Play</string>
|
||||
<string name="report_error">Nahlásiť chybu</string>
|
||||
<string name="translate_platform">na Weblate</string>
|
||||
<string name="showMoreInfo">Zobraziť podrobnosti</string>
|
||||
<string name="hideMoreInfo">Skryť podrobnosti</string>
|
||||
<string name="action_hide_details">Skryť detaily</string>
|
||||
<string name="yes">Áno</string>
|
||||
<string name="importStocard">Import z aplikácie Stocard</string>
|
||||
<string name="selectColor">Vybrať farbu</string>
|
||||
<string name="setIcon">Nastaviť ikonu</string>
|
||||
<string name="settings_catima_theme">Catima</string>
|
||||
<string name="settings_pink_theme">Ružová</string>
|
||||
<string name="settings_magenta_theme">Purpurová</string>
|
||||
<string name="settings_violet_theme">Fialová</string>
|
||||
<string name="settings_blue_theme">Modrá</string>
|
||||
<string name="settings_sky_blue_theme">Azurová</string>
|
||||
<string name="settings_green_theme">Zelená</string>
|
||||
<string name="settings_grey_theme">Šedá</string>
|
||||
<string name="settings_brown_theme">Hnedá</string>
|
||||
<string name="sort">Zoradiť</string>
|
||||
<string name="help_translate_this_app">Pomôžte preložiť túto aplikáciu</string>
|
||||
<string name="license">Licencia</string>
|
||||
<string name="credits">Poďakovanie</string>
|
||||
<string name="card">Karta</string>
|
||||
<string name="rate_this_app">Ohodnoťte túto aplikáciu</string>
|
||||
<string name="exportPassword">Nastavenie hesla na ochranu exportu (voliteľné)</string>
|
||||
<string name="exportPasswordHint">Zadajte heslo</string>
|
||||
<string name="failedGeneratingShareURL">Nepodarilo sa vygenerovať zdieľateľnú adresu URL. Nahláste to, prosím.</string>
|
||||
<string name="turn_flashlight_off">Vypnúť svetlo</string>
|
||||
<string name="settings_locale">Jazyk</string>
|
||||
<string name="settings_system_locale">Systém</string>
|
||||
<string name="app_copyright_old">Na základe Loyalty Card Keychain
|
||||
\ncopyright © 2016–2020 Branden Archer</string>
|
||||
<string name="app_copyright_fmt" tools:ignore="PluralsCandidate">Copyright © 2019–<xliff:g>%d</xliff:g> Sylvia van Os</string>
|
||||
<string name="expiryDate">Platnosť</string>
|
||||
<string name="barcode">Čiarový kód</string>
|
||||
<string name="editBarcode">Upraviť čiarový kód</string>
|
||||
<string name="privacy_policy">Zásady ochrany osobných údajov</string>
|
||||
<string name="importVoucherVault">Import z Voucher Vault</string>
|
||||
<string name="barcodeId">Hodnota čiarového kódu</string>
|
||||
<string name="sameAsCardId">Rovnaké ako ID</string>
|
||||
<string name="setBarcodeId">Nastavenie hodnoty čiarového kódu</string>
|
||||
<string name="unsupportedBarcodeType">Tento typ čiarového kódu zatiaľ nie je možné zobraziť. Možno bude podporovaný v neskoršej verzii aplikácie.</string>
|
||||
<string name="wrongValueForBarcodeType">Hodnota nie je platná pre vybraný typ čiarového kódu</string>
|
||||
<string name="frontImageDescription">Obrázok prednej strany</string>
|
||||
<string name="backImageDescription">Obrázok zadnej strany</string>
|
||||
<string name="photos">Fotky</string>
|
||||
<string name="setFrontImage">Nastaviť obrázok prednej strany</string>
|
||||
<string name="setBackImage">Nastaviť obrázok zadnej strany</string>
|
||||
<string name="removeImage">Odstrániť obrázok</string>
|
||||
<string name="takePhoto">Urobiť fotku</string>
|
||||
<string name="updateBarcodeQuestionTitle">Aktualizovať hodnotu čiarového kódu\?</string>
|
||||
<string name="updateBarcodeQuestionText">Zmenili ste ID. Chcete aktualizovať aj čiarový kód, aby používal rovnakú hodnotu\?</string>
|
||||
<string name="no">Nie</string>
|
||||
<string name="passwordRequired">Zadajte prosím heslo</string>
|
||||
<string name="parsingBalanceFailed"><xliff:g>%s</xliff:g> sa nezdá byť platným zostatkom.</string>
|
||||
<string name="noGiftCardsGroup">Vytvorte niekoľko kariet a potom ich priraďte k tejto skupine.</string>
|
||||
</resources>
|
||||
|
||||
@@ -129,7 +129,6 @@
|
||||
<string name="balance">Stanje na računu</string>
|
||||
<string name="errorReadingImage">Slike ni bilo mogoče prebrati</string>
|
||||
<string name="noBarcodeFound">Črtna koda ni bila najdena</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> točk</string>
|
||||
<string name="balanceSentence">Stanje: <xliff:g>%s</xliff:g></string>
|
||||
<string name="chooseImportType">Uvoz iz?</string>
|
||||
<string name="importCatima">Izvoz iz aplikacije Catima</string>
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
<string name="leaveWithoutSaveConfirmation">Avsluta utan att spara\?</string>
|
||||
<string name="addManually">Ange ID manuellt</string>
|
||||
<string name="addFromImage">Välj bild från galleriet</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> poäng</string>
|
||||
<string name="card">Kort</string>
|
||||
<string name="barcode">Streckkod</string>
|
||||
<string name="editBarcode">Redigera streckkod</string>
|
||||
@@ -51,7 +50,7 @@
|
||||
<string name="moveBarcodeToCenterOfScreen">Centrera streckkoden på skärmen</string>
|
||||
<string name="noBarcodeFound">Hittade ingen streckkod</string>
|
||||
<string name="points">Poäng</string>
|
||||
<string name="chooseImportType">Importera data från...\?</string>
|
||||
<string name="chooseImportType">Importera data från</string>
|
||||
<string name="accept">Acceptera</string>
|
||||
<string name="importCatima">Importera från Catima</string>
|
||||
<string name="importFidme">Importera från FidMe</string>
|
||||
@@ -221,4 +220,12 @@
|
||||
<string name="noGiftCardsGroup">Skapa några kort och placera dem sedan i den här gruppen.</string>
|
||||
<string name="translate_platform">på Weblate</string>
|
||||
<string name="shortcutSelectCard">Välj ett kort</string>
|
||||
<string name="showMoreInfo">Visa info</string>
|
||||
<string name="starred">Stjärnmärkt</string>
|
||||
<string name="hideMoreInfo">Dölj info</string>
|
||||
<string name="options">Alternativ</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> poäng</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> poäng</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
@@ -57,7 +57,7 @@
|
||||
\nHİÇBİR VERİ TOPLANMAMAKTADIR ve uygulamamız özgür yazılım olduğu için bunu herkes doğrulayabilir.</string>
|
||||
<string name="privacy_policy">Gizlilik Politikası</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">Veriler nereden içe aktarılsın\?</string>
|
||||
<string name="chooseImportType">Verileri şuradan içe aktar</string>
|
||||
<string name="parsingBalanceFailed"><xliff:g>%s</xliff:g> geçerli bir bakiye gibi görünmüyor.</string>
|
||||
<string name="points">Puan</string>
|
||||
<string name="currency">Para birimi</string>
|
||||
@@ -72,7 +72,6 @@
|
||||
<string name="editBarcode">Barkodu düzenle</string>
|
||||
<string name="barcode">Barkod</string>
|
||||
<string name="card">Kart</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> puan</string>
|
||||
<string name="balanceSentence">Bakiye: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Süresi doldu: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Son kullanma tarihi: <xliff:g>%s</xliff:g></string>
|
||||
@@ -226,4 +225,9 @@
|
||||
<string name="hideMoreInfo">Bilgileri gizle</string>
|
||||
<string name="starred">Yıldızlı</string>
|
||||
<string name="set_scale">Ölçeği ayarla</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> puan</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> puan</item>
|
||||
</plurals>
|
||||
<string name="settings_oled_dark">Koyu tema için saf siyah arka plan</string>
|
||||
</resources>
|
||||
@@ -56,7 +56,6 @@
|
||||
<string name="editBarcode">Редагувати штрих-код</string>
|
||||
<string name="barcode">Штрих-код</string>
|
||||
<string name="card">Картка</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> балів</string>
|
||||
<string name="balanceSentence">Баланс: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Термін дії закінчився: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">Термін дії закінчується: <xliff:g>%s</xliff:g></string>
|
||||
@@ -230,4 +229,8 @@
|
||||
<string name="translate_platform">на Weblate</string>
|
||||
<string name="shortcutSelectCard">Оберіть карту</string>
|
||||
<string name="options">Параметри</string>
|
||||
<string name="showMoreInfo">Відобразити дані</string>
|
||||
<string name="starred">Обране</string>
|
||||
<string name="set_scale">Зміна масштабу</string>
|
||||
<string name="hideMoreInfo">Сховати дані</string>
|
||||
</resources>
|
||||
@@ -41,7 +41,7 @@
|
||||
\n本应用没有收集任何数据,任何人都可以查阅源码来确认,因为本软件是自由软件。</string>
|
||||
<string name="privacy_policy">隐私政策</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="chooseImportType">导入数据?</string>
|
||||
<string name="chooseImportType">数据导入源</string>
|
||||
<string name="parsingBalanceFailed"><xliff:g>%s</xliff:g>似乎不是有效的余额。</string>
|
||||
<string name="points">积分</string>
|
||||
<string name="currency">货币</string>
|
||||
@@ -54,7 +54,6 @@
|
||||
<string name="never">从不</string>
|
||||
<string name="expiryDate">过期时间</string>
|
||||
<string name="editBarcode">编辑条形码</string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g>分</string>
|
||||
<string name="balanceSentence">余额:<xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">过期:<xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentence">过期: <xliff:g>%s</xliff:g></string>
|
||||
@@ -173,4 +172,7 @@
|
||||
<string name="noGiftCardsGroup">创建一些卡片,然后分配给这里的小组。</string>
|
||||
<string name="barcodeImageDescriptionWithType"><xliff:g>%s</xliff:g>型条码图像</string>
|
||||
<string name="group_edit">编辑组</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> 点</item>
|
||||
</plurals>
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="app_revision_url">https://github.com/TheLastProject/Catima/releases</string>
|
||||
<string name="app_revision_url">https://github.com/CatimaLoyalty/Android/releases</string>
|
||||
<string name="action_search">搜尋</string>
|
||||
<string name="action_add">新增</string>
|
||||
<string name="noGiftCards">點選 + 按鈕以新增卡片\n或從 ⋮ 選單中匯入卡片</string>
|
||||
@@ -29,7 +29,6 @@
|
||||
<string name="all">全部</string>
|
||||
<string name="balance">餘額</string>
|
||||
<string name="balanceSentence">餘額: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> 點</string>
|
||||
<string name="app_copyright_old">基於 Loyalty Card Keychain\n著作權所有 © 2016–2020 Branden Archer</string>
|
||||
<string name="barcode">條碼</string>
|
||||
<string name="barcodeId">條碼內容</string>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_revision_url" translatable="false">https://github.com/TheLastProject/Catima/releases</string>
|
||||
<string name="app_webpage_url" translatable="false">https://github.com/TheLastProject/Catima</string>
|
||||
<string name="app_revision_url" translatable="false">https://github.com/CatimaLoyalty/Android/releases</string>
|
||||
<string name="app_webpage_url" translatable="false">https://github.com/CatimaLoyalty/Android</string>
|
||||
<integer name="full_rotation_duration">100</integer>
|
||||
<integer name="half_rotation_duration">50</integer>
|
||||
</resources>
|
||||
@@ -12,6 +12,52 @@
|
||||
<item>@string/settings_dark_theme</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="color_values">
|
||||
<item>@string/settings_key_system_theme</item>
|
||||
<item>@string/settings_key_catima_theme</item>
|
||||
<item>@string/settings_key_pink_theme</item>
|
||||
<item>@string/settings_key_magenta_theme</item>
|
||||
<item>@string/settings_key_violet_theme</item>
|
||||
<item>@string/settings_key_blue_theme</item>
|
||||
<item>@string/settings_key_sky_blue_theme</item>
|
||||
<item>@string/settings_key_green_theme</item>
|
||||
<item>@string/settings_key_brown_theme</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="color_value_strings">
|
||||
<item>@string/settings_system_theme</item>
|
||||
<item>@string/settings_catima_theme</item>
|
||||
<item>@string/settings_pink_theme</item>
|
||||
<item>@string/settings_magenta_theme</item>
|
||||
<item>@string/settings_violet_theme</item>
|
||||
<item>@string/settings_blue_theme</item>
|
||||
<item>@string/settings_sky_blue_theme</item>
|
||||
<item>@string/settings_green_theme</item>
|
||||
<item>@string/settings_brown_theme</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="color_values_no_dynamic">
|
||||
<item>@string/settings_key_system_theme</item>
|
||||
<item>@string/settings_key_pink_theme</item>
|
||||
<item>@string/settings_key_magenta_theme</item>
|
||||
<item>@string/settings_key_violet_theme</item>
|
||||
<item>@string/settings_key_blue_theme</item>
|
||||
<item>@string/settings_key_sky_blue_theme</item>
|
||||
<item>@string/settings_key_green_theme</item>
|
||||
<item>@string/settings_key_brown_theme</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="color_value_strings_no_dynamic">
|
||||
<item>@string/settings_catima_theme</item>
|
||||
<item>@string/settings_pink_theme</item>
|
||||
<item>@string/settings_magenta_theme</item>
|
||||
<item>@string/settings_violet_theme</item>
|
||||
<item>@string/settings_blue_theme</item>
|
||||
<item>@string/settings_sky_blue_theme</item>
|
||||
<item>@string/settings_green_theme</item>
|
||||
<item>@string/settings_brown_theme</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="locale_values">
|
||||
<item />
|
||||
<item>bg</item>
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
<string name="settings_key_keep_screen_on" translatable="false">pref_keep_screen_on</string>
|
||||
<string name="settings_disable_lockscreen_while_viewing_card">Prevent screen lock</string>
|
||||
<string name="settings_key_disable_lockscreen_while_viewing_card" translatable="false">pref_disable_lockscreen_while_viewing_card</string>
|
||||
<string name="settings_key_oled_dark" translatable="false">pref_oled_dark</string>
|
||||
<string name="sharedpreference_active_tab" translatable="false">sharedpreference_active_tab</string>
|
||||
<string name="sharedpreference_privacy_policy_shown" translatable="false">sharedpreference_privacy_policy_shown</string>
|
||||
<string name="sharedpreference_sort" translatable="false">sharedpreference_sort</string>
|
||||
@@ -149,7 +150,10 @@
|
||||
<string name="expiryStateSentence">Expires: <xliff:g>%s</xliff:g></string>
|
||||
<string name="expiryStateSentenceExpired">Expired: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balanceSentence">Balance: <xliff:g>%s</xliff:g></string>
|
||||
<string name="balancePoints"><xliff:g>%s</xliff:g> points</string>
|
||||
<plurals name="balancePoints">
|
||||
<item quantity="one"><xliff:g>%s</xliff:g> point</item>
|
||||
<item quantity="other"><xliff:g>%s</xliff:g> points</item>
|
||||
</plurals>
|
||||
<string name="card">Card</string>
|
||||
<string name="barcode">Barcode</string>
|
||||
<string name="editBarcode">Edit barcode</string>
|
||||
@@ -164,7 +168,7 @@
|
||||
<string name="currency">Currency</string>
|
||||
<string name="points">Points</string>
|
||||
<string name="parsingBalanceFailed"><xliff:g>%s</xliff:g> does not seem to be a valid balance.</string>
|
||||
<string name="chooseImportType">Import data from?</string>
|
||||
<string name="chooseImportType">Import data from</string>
|
||||
<string name="app_loyalty_card_keychain">Loyalty Card Keychain</string>
|
||||
<string name="privacy_policy">Privacy Policy</string>
|
||||
<string name="privacy_policy_popup_text">Privacy policy notice (required by some app stores):\n\nNO DATA IS COLLECTED AT ALL, which anyone can confirm since our app is libre software.</string>
|
||||
@@ -209,6 +213,7 @@
|
||||
<string name="turn_flashlight_on">Turn flashlight on</string>
|
||||
<string name="turn_flashlight_off">Turn flashlight off</string>
|
||||
<string name="settings_locale">Language</string>
|
||||
<string name="settings_oled_dark">Pure black background for dark theme</string>
|
||||
<string name="settings_key_locale" translatable="false">pref_locale</string>
|
||||
<string name="settings_system_locale">System</string>
|
||||
<string name="selectColor">Select color</string>
|
||||
@@ -263,4 +268,5 @@
|
||||
<string name="options">Options</string>
|
||||
<string name="starred">Starred</string>
|
||||
<string name="set_scale">Set scale</string>
|
||||
</resources>
|
||||
<string name="include_if_asking_support">If you want to request support, include the following info:</string>
|
||||
</resources>
|
||||
@@ -1,4 +1,5 @@
|
||||
<resources>
|
||||
|
||||
<style name="AppTheme" parent="Theme.Material3.Light.NoActionBar">
|
||||
<item name="colorPrimary">@color/md_theme_light_primary</item>
|
||||
<item name="colorOnPrimary">@color/md_theme_light_onPrimary</item>
|
||||
@@ -48,4 +49,211 @@
|
||||
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_foreground</item>
|
||||
<item name="postSplashScreenTheme">@style/AppTheme</item>
|
||||
</style>
|
||||
|
||||
<!-- place holder for dark background night theme overrides -->
|
||||
<style name="DarkBackground" />
|
||||
|
||||
<!-- color themes -->
|
||||
<style name="pink">
|
||||
<item name="colorPrimary">#BC0049</item>
|
||||
<item name="colorOnPrimary">#FFFFFF</item>
|
||||
<item name="colorPrimaryContainer">#FFD9DF</item>
|
||||
<item name="colorOnPrimaryContainer">#400013</item>
|
||||
<item name="colorSecondary">#76565B</item>
|
||||
<item name="colorOnSecondary">#FFFFFF</item>
|
||||
<item name="colorSecondaryContainer">#FFD9DE</item>
|
||||
<item name="colorOnSecondaryContainer">#2B1519</item>
|
||||
<item name="colorTertiary">#795831</item>
|
||||
<item name="colorOnTertiary">#FFFFFF</item>
|
||||
<item name="colorTertiaryContainer">#FFDDB8</item>
|
||||
<item name="colorOnTertiaryContainer">#2C1700</item>
|
||||
<item name="colorError">#BA1B1B</item>
|
||||
<item name="colorErrorContainer">#FFDAD4</item>
|
||||
<item name="colorOnError">#FFFFFF</item>
|
||||
<item name="colorOnErrorContainer">#410001</item>
|
||||
<item name="android:colorBackground">#FCFCFC</item>
|
||||
<item name="colorOnBackground">#201A1B</item>
|
||||
<item name="colorSurface">#FCFCFC</item>
|
||||
<item name="colorOnSurface">#201A1B</item>
|
||||
<item name="colorSurfaceVariant">#F4DDDF</item>
|
||||
<item name="colorOnSurfaceVariant">#524345</item>
|
||||
<item name="colorOutline">#847375</item>
|
||||
<item name="colorOnSurfaceInverse">#FAEEEE</item>
|
||||
<item name="colorSurfaceInverse">#362F30</item>
|
||||
<item name="colorPrimaryInverse">#FFB2C0</item>
|
||||
</style>
|
||||
|
||||
<style name="magenta">
|
||||
<item name="colorPrimary">#9A25AE</item>
|
||||
<item name="colorOnPrimary">#FFFFFF</item>
|
||||
<item name="colorPrimaryContainer">#FFD5FF</item>
|
||||
<item name="colorOnPrimaryContainer">#350040</item>
|
||||
<item name="colorSecondary">#6B586B</item>
|
||||
<item name="colorOnSecondary">#FFFFFF</item>
|
||||
<item name="colorSecondaryContainer">#F5DBF2</item>
|
||||
<item name="colorOnSecondaryContainer">#251626</item>
|
||||
<item name="colorTertiary">#82524A</item>
|
||||
<item name="colorOnTertiary">#FFFFFF</item>
|
||||
<item name="colorTertiaryContainer">#FFDAD2</item>
|
||||
<item name="colorOnTertiaryContainer">#32110C</item>
|
||||
<item name="colorError">#BA1B1B</item>
|
||||
<item name="colorErrorContainer">#FFDAD4</item>
|
||||
<item name="colorOnError">#FFFFFF</item>
|
||||
<item name="colorOnErrorContainer">#410001</item>
|
||||
<item name="android:colorBackground">#FCFCFC</item>
|
||||
<item name="colorOnBackground">#1E1A1D</item>
|
||||
<item name="colorSurface">#FCFCFC</item>
|
||||
<item name="colorOnSurface">#1E1A1D</item>
|
||||
<item name="colorSurfaceVariant">#ECDEE8</item>
|
||||
<item name="colorOnSurfaceVariant">#4D444C</item>
|
||||
<item name="colorOutline">#7E747C</item>
|
||||
<item name="colorOnSurfaceInverse">#F7EEF3</item>
|
||||
<item name="colorSurfaceInverse">#332F32</item>
|
||||
<item name="colorPrimaryInverse">#FBAAFF</item>
|
||||
</style>
|
||||
|
||||
<style name="violet">
|
||||
<item name="colorPrimary">#6F43BF</item>
|
||||
<item name="colorOnPrimary">#FFFFFF</item>
|
||||
<item name="colorPrimaryContainer">#ECDCFF</item>
|
||||
<item name="colorOnPrimaryContainer">#25005B</item>
|
||||
<item name="colorSecondary">#635B70</item>
|
||||
<item name="colorOnSecondary">#FFFFFF</item>
|
||||
<item name="colorSecondaryContainer">#E9DEF7</item>
|
||||
<item name="colorOnSecondaryContainer">#1F182B</item>
|
||||
<item name="colorTertiary">#7F525E</item>
|
||||
<item name="colorOnTertiary">#FFFFFF</item>
|
||||
<item name="colorTertiaryContainer">#FFD9E2</item>
|
||||
<item name="colorOnTertiaryContainer">#32101B</item>
|
||||
<item name="colorError">#BA1B1B</item>
|
||||
<item name="colorErrorContainer">#FFDAD4</item>
|
||||
<item name="colorOnError">#FFFFFF</item>
|
||||
<item name="colorOnErrorContainer">#410001</item>
|
||||
<item name="android:colorBackground">#FFFBFD</item>
|
||||
<item name="colorOnBackground">#1D1B1F</item>
|
||||
<item name="colorSurface">#FFFBFD</item>
|
||||
<item name="colorOnSurface">#1D1B1F</item>
|
||||
<item name="colorSurfaceVariant">#E7E0EB</item>
|
||||
<item name="colorOnSurfaceVariant">#49454E</item>
|
||||
<item name="colorOutline">#7A757F</item>
|
||||
<item name="colorOnSurfaceInverse">#F5EFF4</item>
|
||||
<item name="colorSurfaceInverse">#323033</item>
|
||||
<item name="colorPrimaryInverse">#D4BAFF</item>
|
||||
</style>
|
||||
|
||||
<style name="blue">
|
||||
<item name="colorPrimary">#4355B9</item>
|
||||
<item name="colorOnPrimary">#FFFFFF</item>
|
||||
<item name="colorPrimaryContainer">#DDE0FF</item>
|
||||
<item name="colorOnPrimaryContainer">#000D61</item>
|
||||
<item name="colorSecondary">#5B5D71</item>
|
||||
<item name="colorOnSecondary">#FFFFFF</item>
|
||||
<item name="colorSecondaryContainer">#E0E1FA</item>
|
||||
<item name="colorOnSecondaryContainer">#171A2C</item>
|
||||
<item name="colorTertiary">#77536D</item>
|
||||
<item name="colorOnTertiary">#FFFFFF</item>
|
||||
<item name="colorTertiaryContainer">#FFD7F3</item>
|
||||
<item name="colorOnTertiaryContainer">#2D1228</item>
|
||||
<item name="colorError">#BA1B1B</item>
|
||||
<item name="colorErrorContainer">#FFDAD4</item>
|
||||
<item name="colorOnError">#FFFFFF</item>
|
||||
<item name="colorOnErrorContainer">#410001</item>
|
||||
<item name="android:colorBackground">#FEFBFF</item>
|
||||
<item name="colorOnBackground">#1B1B1F</item>
|
||||
<item name="colorSurface">#FEFBFF</item>
|
||||
<item name="colorOnSurface">#1B1B1F</item>
|
||||
<item name="colorSurfaceVariant">#E3E1EC</item>
|
||||
<item name="colorOnSurfaceVariant">#46464F</item>
|
||||
<item name="colorOutline">#767680</item>
|
||||
<item name="colorOnSurfaceInverse">#F3F0F5</item>
|
||||
<item name="colorSurfaceInverse">#303034</item>
|
||||
<item name="colorPrimaryInverse">#B9C3FF</item>
|
||||
</style>
|
||||
|
||||
<style name="skyblue">
|
||||
<item name="colorPrimary">#006494</item>
|
||||
<item name="colorOnPrimary">#FFFFFF</item>
|
||||
<item name="colorPrimaryContainer">#C8E6FF</item>
|
||||
<item name="colorOnPrimaryContainer">#001E31</item>
|
||||
<item name="colorSecondary">#50606E</item>
|
||||
<item name="colorOnSecondary">#FFFFFF</item>
|
||||
<item name="colorSecondaryContainer">#D3E4F5</item>
|
||||
<item name="colorOnSecondaryContainer">#0C1D29</item>
|
||||
<item name="colorTertiary">#65597B</item>
|
||||
<item name="colorOnTertiary">#FFFFFF</item>
|
||||
<item name="colorTertiaryContainer">#ECDCFF</item>
|
||||
<item name="colorOnTertiaryContainer">#201634</item>
|
||||
<item name="colorError">#BA1B1B</item>
|
||||
<item name="colorErrorContainer">#FFDAD4</item>
|
||||
<item name="colorOnError">#FFFFFF</item>
|
||||
<item name="colorOnErrorContainer">#410001</item>
|
||||
<item name="android:colorBackground">#FCFCFF</item>
|
||||
<item name="colorOnBackground">#1A1C1E</item>
|
||||
<item name="colorSurface">#FCFCFF</item>
|
||||
<item name="colorOnSurface">#1A1C1E</item>
|
||||
<item name="colorSurfaceVariant">#DEE3EA</item>
|
||||
<item name="colorOnSurfaceVariant">#41474D</item>
|
||||
<item name="colorOutline">#72787E</item>
|
||||
<item name="colorOnSurfaceInverse">#F0F0F3</item>
|
||||
<item name="colorSurfaceInverse">#2F3032</item>
|
||||
<item name="colorPrimaryInverse">#8BCEFF</item>
|
||||
</style>
|
||||
|
||||
<style name="green">
|
||||
<item name="colorPrimary">#006E17</item>
|
||||
<item name="colorOnPrimary">#FFFFFF</item>
|
||||
<item name="colorPrimaryContainer">#93F990</item>
|
||||
<item name="colorOnPrimaryContainer">#002203</item>
|
||||
<item name="colorSecondary">#52634F</item>
|
||||
<item name="colorOnSecondary">#FFFFFF</item>
|
||||
<item name="colorSecondaryContainer">#D5E8CE</item>
|
||||
<item name="colorOnSecondaryContainer">#101F0F</item>
|
||||
<item name="colorTertiary">#38656A</item>
|
||||
<item name="colorOnTertiary">#FFFFFF</item>
|
||||
<item name="colorTertiaryContainer">#BCEBF0</item>
|
||||
<item name="colorOnTertiaryContainer">#001F23</item>
|
||||
<item name="colorError">#BA1B1B</item>
|
||||
<item name="colorErrorContainer">#FFDAD4</item>
|
||||
<item name="colorOnError">#FFFFFF</item>
|
||||
<item name="colorOnErrorContainer">#410001</item>
|
||||
<item name="android:colorBackground">#FCFDF6</item>
|
||||
<item name="colorOnBackground">#1A1C19</item>
|
||||
<item name="colorSurface">#FCFDF6</item>
|
||||
<item name="colorOnSurface">#1A1C19</item>
|
||||
<item name="colorSurfaceVariant">#DEE5D8</item>
|
||||
<item name="colorOnSurfaceVariant">#424840</item>
|
||||
<item name="colorOutline">#73796F</item>
|
||||
<item name="colorOnSurfaceInverse">#F0F1EB</item>
|
||||
<item name="colorSurfaceInverse">#2F312D</item>
|
||||
<item name="colorPrimaryInverse">#78DC77</item>
|
||||
</style>
|
||||
|
||||
<style name="brown">
|
||||
<item name="colorPrimary">#9A4523</item>
|
||||
<item name="colorOnPrimary">#FFFFFF</item>
|
||||
<item name="colorPrimaryContainer">#FFDBCD</item>
|
||||
<item name="colorOnPrimaryContainer">#380C00</item>
|
||||
<item name="colorSecondary">#77574C</item>
|
||||
<item name="colorOnSecondary">#FFFFFF</item>
|
||||
<item name="colorSecondaryContainer">#FFDBCD</item>
|
||||
<item name="colorOnSecondaryContainer">#2C160D</item>
|
||||
<item name="colorTertiary">#695E2F</item>
|
||||
<item name="colorOnTertiary">#FFFFFF</item>
|
||||
<item name="colorTertiaryContainer">#F1E2A7</item>
|
||||
<item name="colorOnTertiaryContainer">#221B00</item>
|
||||
<item name="colorError">#BA1B1B</item>
|
||||
<item name="colorErrorContainer">#FFDAD4</item>
|
||||
<item name="colorOnError">#FFFFFF</item>
|
||||
<item name="colorOnErrorContainer">#410001</item>
|
||||
<item name="android:colorBackground">#FCFCFC</item>
|
||||
<item name="colorOnBackground">#201A18</item>
|
||||
<item name="colorSurface">#FCFCFC</item>
|
||||
<item name="colorOnSurface">#201A18</item>
|
||||
<item name="colorSurfaceVariant">#F5DED6</item>
|
||||
<item name="colorOnSurfaceVariant">#52433E</item>
|
||||
<item name="colorOutline">#85736D</item>
|
||||
<item name="colorOnSurfaceInverse">#FCEEEA</item>
|
||||
<item name="colorSurfaceInverse">#362F2D</item>
|
||||
<item name="colorPrimaryInverse">#FFB598</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<PreferenceCategory
|
||||
@@ -8,20 +7,36 @@
|
||||
app:iconSpaceReserved="false">
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/settings_key_theme"
|
||||
android:title="@string/settings_theme"
|
||||
android:defaultValue="@string/settings_key_system_theme"
|
||||
android:entries="@array/theme_value_strings"
|
||||
android:entryValues="@array/theme_values"
|
||||
android:key="@string/settings_key_theme"
|
||||
android:title="@string/settings_theme"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/setting_key_theme_color"
|
||||
android:title="@string/settings_theme_color"
|
||||
android:defaultValue="@string/settings_key_system_theme"
|
||||
android:entries="@array/color_value_strings"
|
||||
android:entryValues="@array/color_values"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:key="@string/settings_key_oled_dark"
|
||||
android:title="@string/settings_oled_dark"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
<ListPreference
|
||||
android:key="@string/settings_key_locale"
|
||||
android:title="@string/settings_locale"
|
||||
android:defaultValue=""
|
||||
android:entries="@array/locale_values"
|
||||
android:entryValues="@array/locale_values"
|
||||
android:key="@string/settings_key_locale"
|
||||
android:title="@string/settings_locale"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
@@ -29,11 +44,11 @@
|
||||
android:key="@string/settings_key_max_font_size_scale"
|
||||
android:title="@string/settings_max_font_size_scale"
|
||||
app:defaultValue="@integer/settings_max_font_size_scale_pct"
|
||||
app:iconSpaceReserved="false"
|
||||
app:numberPickerPreference_maxValue="@integer/settings_max_font_size_scale_pct_max"
|
||||
app:numberPickerPreference_minValue="@integer/settings_max_font_size_scale_pct_min"
|
||||
app:numberPickerPreference_stepValue="10"
|
||||
app:numberPickerPreference_unitText="%"
|
||||
app:iconSpaceReserved="false"
|
||||
app:singleLineTitle="false" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
|
||||
@@ -49,6 +49,7 @@ import androidx.core.content.res.ResourcesCompat;
|
||||
import protect.card_locker.async.TaskHandler;
|
||||
import protect.card_locker.importexport.DataFormat;
|
||||
import protect.card_locker.importexport.ImportExportResult;
|
||||
import protect.card_locker.importexport.ImportExportResultType;
|
||||
import protect.card_locker.importexport.MultiFormatExporter;
|
||||
import protect.card_locker.importexport.MultiFormatImporter;
|
||||
|
||||
@@ -324,7 +325,7 @@ public class ImportExportTest {
|
||||
|
||||
// Export data to CSV format
|
||||
ImportExportResult result = MultiFormatExporter.exportData(activity.getApplicationContext(), mDatabase, outData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
outStream.close();
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
@@ -333,7 +334,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
|
||||
assertEquals(NUM_CARDS, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
@@ -354,7 +355,7 @@ public class ImportExportTest {
|
||||
|
||||
// Export data to CSV format
|
||||
ImportExportResult result = MultiFormatExporter.exportData(activity.getApplicationContext(), mDatabase, outData, DataFormat.Catima, password);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
outStream.close();
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
@@ -363,7 +364,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inData, DataFormat.Catima, password);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
|
||||
assertEquals(NUM_CARDS, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
@@ -386,7 +387,7 @@ public class ImportExportTest {
|
||||
|
||||
// Export data to CSV format
|
||||
ImportExportResult result = MultiFormatExporter.exportData(activity.getApplicationContext(), mDatabase, outData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
outStream.close();
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
@@ -395,7 +396,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
|
||||
assertEquals(NUM_CARDS, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
@@ -457,7 +458,7 @@ public class ImportExportTest {
|
||||
|
||||
// Export data to CSV format
|
||||
ImportExportResult result = MultiFormatExporter.exportData(activity.getApplicationContext(), mDatabase, outData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
outStream.close();
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
@@ -466,7 +467,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
|
||||
assertEquals(NUM_CARDS, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
assertEquals(NUM_GROUPS, DBHelper.getGroupCount(mDatabase));
|
||||
@@ -500,14 +501,14 @@ public class ImportExportTest {
|
||||
|
||||
// Export into CSV data
|
||||
ImportExportResult result = MultiFormatExporter.exportData(activity.getApplicationContext(), mDatabase, outData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
outStream.close();
|
||||
|
||||
ByteArrayInputStream inData = new ByteArrayInputStream(outData.toByteArray());
|
||||
|
||||
// Import the CSV data on top of the existing database
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
|
||||
assertEquals(NUM_CARDS, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
@@ -529,7 +530,7 @@ public class ImportExportTest {
|
||||
|
||||
// Export data to CSV format
|
||||
ImportExportResult result = MultiFormatExporter.exportData(activity.getApplicationContext(), mDatabase, outData, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
|
||||
@@ -543,7 +544,7 @@ public class ImportExportTest {
|
||||
|
||||
// Attempt to import the data
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inData, format, null);
|
||||
assertEquals(ImportExportResult.GenericFailure, result);
|
||||
assertEquals(ImportExportResultType.GenericFailure, result.resultType());
|
||||
|
||||
assertEquals(0, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
@@ -586,7 +587,7 @@ public class ImportExportTest {
|
||||
|
||||
// Check that the listener was executed
|
||||
assertNotNull(listener.result);
|
||||
assertEquals(ImportExportResult.Success, listener.result);
|
||||
assertEquals(ImportExportResultType.Success, listener.result.resultType());
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
|
||||
@@ -607,7 +608,7 @@ public class ImportExportTest {
|
||||
|
||||
// Check that the listener was executed
|
||||
assertNotNull(listener.result);
|
||||
assertEquals(ImportExportResult.Success, listener.result);
|
||||
assertEquals(ImportExportResultType.Success, listener.result.resultType());
|
||||
|
||||
assertEquals(NUM_CARDS, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
@@ -633,7 +634,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(1, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
@@ -670,7 +671,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(1, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
@@ -707,7 +708,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.GenericFailure, result);
|
||||
assertEquals(ImportExportResultType.GenericFailure, result.resultType());
|
||||
assertEquals(0, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
TestHelpers.getEmptyDb(activity);
|
||||
@@ -731,7 +732,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(1, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
@@ -768,7 +769,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(1, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
@@ -805,7 +806,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(1, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
@@ -842,7 +843,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(1, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
csvText = "";
|
||||
@@ -861,7 +862,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(1, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
@@ -1020,7 +1021,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the CSV data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Catima, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(7, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
assertEquals(3, DBHelper.getGroupCount(mDatabase));
|
||||
|
||||
@@ -1162,7 +1163,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the Fidme data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Fidme, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(3, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
@@ -1210,13 +1211,13 @@ public class ImportExportTest {
|
||||
|
||||
// Import the Stocard data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Stocard, null);
|
||||
assertEquals(ImportExportResult.BadPassword, result);
|
||||
assertEquals(ImportExportResultType.BadPassword, result.resultType());
|
||||
assertEquals(0, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
inputStream = getClass().getResourceAsStream("stocard.zip");
|
||||
|
||||
result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.Stocard, "da811b40a4dac56f0cbb2d99b21bbb9a".toCharArray());
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(3, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
@@ -1302,7 +1303,7 @@ public class ImportExportTest {
|
||||
|
||||
// Import the Voucher Vault data
|
||||
ImportExportResult result = MultiFormatImporter.importData(activity.getApplicationContext(), mDatabase, inputStream, DataFormat.VoucherVault, null);
|
||||
assertEquals(ImportExportResult.Success, result);
|
||||
assertEquals(ImportExportResultType.Success, result.resultType());
|
||||
assertEquals(2, DBHelper.getLoyaltyCardCount(mDatabase));
|
||||
|
||||
LoyaltyCard card = DBHelper.getLoyaltyCard(mDatabase, 1);
|
||||
|
||||
2
fastlane/metadata/android/cs_CZ/changelogs/100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Skrýt ikony vyhledávání, rozbalování a třídění, dokud není k dispozici alespoň 1 karta.
|
||||
- Různé opravy témat
|
||||
1
fastlane/metadata/android/cs_CZ/changelogs/101.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Oprava ořezávače nepoužívajícího barvu motivu
|
||||
1
fastlane/metadata/android/cs_CZ/changelogs/99.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Material You redesign
|
||||
2
fastlane/metadata/android/de-DE/changelogs/100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Such-, Erweiterungs- und Sortiersymbole ausblenden, bis mindestens 1 Karte vorhanden ist
|
||||
- Verschiedene Thematisierungskorrekturen
|
||||
3
fastlane/metadata/android/de-DE/changelogs/101.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Korrektur des Zuschneidesystems, das die Farbe des Themas nicht berücksichtigt hat
|
||||
- Behebung kleinerer Fehler beim Thema
|
||||
- Rein schwarzes Dunkelthema für OLED-Bildschirme hinzugefügt
|
||||
1
fastlane/metadata/android/de-DE/changelogs/99.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Material You Neugestaltung
|
||||
2
fastlane/metadata/android/en-US/changelogs/100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Hide search, expand and sort icons until there is at least 1 card
|
||||
- Various theming fixes
|
||||
3
fastlane/metadata/android/en-US/changelogs/101.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Fix cropper not using theme colour
|
||||
- Fix minor theming issues
|
||||
- Add pure black dark theme for OLED screens
|
||||
1
fastlane/metadata/android/en-US/changelogs/99.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Material You redesign
|
||||
|
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
2
fastlane/metadata/android/fr-FR/changelogs/100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Masquage des icônes de recherche, d'expansion et de tri jusqu'à ce qu'il y ait au moins 1 fiche
|
||||
- Diverses corrections concernant les thèmes
|
||||
3
fastlane/metadata/android/fr-FR/changelogs/101.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Correction du système de recadrage qui ne respectait pas la couleur du thème
|
||||
- Correction de problèmes mineurs liés aux thèmes
|
||||
- Ajout d'un thème noir pur pour les écrans OLED
|
||||
1
fastlane/metadata/android/fr-FR/changelogs/99.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Refonte du design Material You
|
||||
3
fastlane/metadata/android/hu/changelogs/10.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Az alapértelmezett import/export fájlnév megváltoztatása (pull #84 (https://github.com/brarcher/loyalty-card-locker/pull/84))
|
||||
- Megfelelő sor az import/export oldalon. (pull #87 (https://github.com/brarcher/loyalty-card-locker/pull/87))
|
||||
- Javítsa fel a kártya elrendezés nézetet. A szöveg könnyebben olvasható, és kiválasztható egy hosszú lenyomással. (pull #91 (https://github.com/brarcher/loyalty-card-locker/pull/91))
|
||||
2
fastlane/metadata/android/hu/changelogs/100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Keresés elrejtése, az ikonok kihúzása és rendezése amíg nincs legalább egy kártya
|
||||
- Többféle téma fixálás
|
||||
5
fastlane/metadata/android/hu/changelogs/11.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
- Rubrikák kitöltése a szerkesztésnél. (pull #94)
|
||||
- Generált vonalkód hosszának korlátozása a memória hibák elkerülésére. (pull #103)
|
||||
- Ha egy kártya már létezik akkor a "Kártyába lépés" helyett "Kártya szerkesztése" gomb jelenik meg. (pull #104)
|
||||
- A színséma lágyabb az ikonnak megfelelően, és kártya nézet tisztítása. (pull #107)
|
||||
- Varázsló megjelenítése az első indításnál. (pull #108)
|
||||
1
fastlane/metadata/android/hu/changelogs/12.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Megelőzni egy összeomlást ami a varázsló közbeni kép orientáció váltáskor lép fel.
|
||||
2
fastlane/metadata/android/hu/changelogs/13.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- 0.11-ben lecsökkentve a memória használat, cserébe csökkent a megjelenített karaktere száma is. (pull #126)
|
||||
- Francia és német fordítások frissítése. (pull #122, pull #124, pull #125)
|
||||
3
fastlane/metadata/android/hu/changelogs/14.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Képernyő forgatás zárolása opció kártya megjelenítésénél. Zárás esetén az alap orientációban fog megjelenni, és nem lesz további forgatás. (pull #128)
|
||||
- Ha egy kártya kiválasztásra kerül, de nem betölthető, akkor egy hibaüzenet jelenik meg. (pull #132)
|
||||
- Fixálva a varázslónál fellépő elrendezés azonosító hiba. (pull #128)
|
||||
22
fastlane/metadata/android/hu/full_description.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Ne kotorásszon többé hűségkártyáiért a pénztárnál vagy a webshop fizetésnél.
|
||||
<b>Szkennelje be a vonalkódokat a telefonja kamerájával, és felejtse el a kártyákat.</b>
|
||||
|
||||
Felejtse el teljesen a pénztárcáját, vagy csak a legfontosabb értékeket tartsa benne innentől.
|
||||
|
||||
Ezzel a mindennapi kellékkel felszabadul a pénztárcájában a plasztik kártyák helye.
|
||||
|
||||
- A minimális engedélyeknek köszönhetően csökkentheti a kémkedés esélyét. Nem igényel internetet, és nincsenek reklámok.
|
||||
- Adjon hozzá kártyákat, vagy sima kódokat, majd szabja személyre színezéssel.
|
||||
- Manuálisan is hozzáadhat kódot ha nincs a kártyán vonalkód, vagy nem olvasható be valamiért.
|
||||
- Importáljon kártyákat appokból: Catima, FidMe, Loyalty Card Keychain, Stocard és Voucher Vault.
|
||||
- Készítsen biztonsági mentést kártyáiról, vagy hordozza át másik eszközre.
|
||||
- Osszon meg kuponokat, exkluzív ajánlatokat, promóciós kódokat, vagy kártyákat és kódokat bármely appal.
|
||||
- Sötét téma és kisegítő lehetőségek gyengén látó felhasználóinknak.
|
||||
- Mindenki számára elérhető a gáttalan szoftver közösség jóvoltából.
|
||||
- Több mint 20 kézzel fordított nyelven elérhető.
|
||||
- Grátisz, a közösség tagjai járulnak hozzá a fejlesztéshez.
|
||||
- Használja, tanulmányozza, változtassa és ossza meg; <i>mindenkivel</i>.
|
||||
- Nem csak Ingyenes Szoftver / Nyílt Forráskódú. <i>Copyleft-elt</i> gáttalan szoftver (GPLv3+) kártya menedzser.
|
||||
|
||||
Egyszerűsítse le az életét és a vásárlást, ne hagyjon el több hűségkártyát vagy repjegyet.
|
||||
Vigye magával a hűségpontjait és bónuszait, és mentse el az útra.
|
||||
1
fastlane/metadata/android/hu/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
A vonalkódokhoz, tagkártyákhoz, hűség programokhoz, kuponokhoz és jegyekhez.
|
||||
1
fastlane/metadata/android/hu/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Catima — Hűségkártya Pénztárca
|
||||
2
fastlane/metadata/android/it-IT/changelogs/100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Nascondi la ricerca, espandi e ordina icone finché c'è solo una tessera
|
||||
- Varie correzioni sul tema
|
||||
3
fastlane/metadata/android/it-IT/changelogs/101.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
- Sistemato lo strumento di ritaglio, che non usava i colori del tema
|
||||
- Sistemati problemi secondari sul tema
|
||||
- Aggiunto il tema scuro con sfondo nero puro per schermi OLED
|
||||
1
fastlane/metadata/android/it-IT/changelogs/12.txt
Normal file
@@ -0,0 +1 @@
|
||||
- Evitato che l'app crashi quando lo schermo si ruota nell'introduzione del primo avvio.
|
||||
2
fastlane/metadata/android/nb-NO/changelogs/100.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
- Skjul søk, utvid og sorter ikoner til det finnes minst ett kort.
|
||||
- Forskjellige draktfikser.
|
||||