mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Zepp OS: Honor Catima barcode encoding if available
This commit is contained in:
Generated
+1
@@ -28,6 +28,7 @@
|
||||
<w>btbr</w>
|
||||
<w>böhler</w>
|
||||
<w>carsten</w>
|
||||
<w>catima</w>
|
||||
<w>chamorro</w>
|
||||
<w>codeberg</w>
|
||||
<w>colmi</w>
|
||||
|
||||
+7
@@ -46,6 +46,7 @@ import androidx.preference.PreferenceCategory;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@@ -230,6 +231,12 @@ public class LoyaltyCardsSettingsFragment extends AbstractPreferenceFragment {
|
||||
}
|
||||
values.removeAll(toRemove);
|
||||
syncGroups.setSummary(TextUtils.join(", ", values));
|
||||
|
||||
syncGroups.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
//noinspection unchecked
|
||||
syncGroups.setSummary(TextUtils.join(", ", (Collection<String>) newValue));
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+11
-3
@@ -25,6 +25,8 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Currency;
|
||||
import java.util.Date;
|
||||
@@ -172,6 +174,9 @@ public class CatimaContentProvider {
|
||||
final int starred = cursor.getInt(cursor.getColumnIndexOrThrow(LoyaltyCardDbIds.STAR_STATUS));
|
||||
final long lastUsed = cursor.getLong(cursor.getColumnIndexOrThrow(LoyaltyCardDbIds.LAST_USED));
|
||||
final int archiveStatus = cursor.getInt(cursor.getColumnIndexOrThrow(LoyaltyCardDbIds.ARCHIVE_STATUS));
|
||||
// Barcode encoding since content provider version 1.1
|
||||
final int barcodeEncodingColumn = cursor.getColumnIndex(LoyaltyCardDbIds.BARCODE_ENCODING);
|
||||
final String barcodeEncoding = barcodeEncodingColumn >= 0 ? cursor.getString(barcodeEncodingColumn) : StandardCharsets.ISO_8859_1.name();
|
||||
|
||||
int barcodeTypeColumn = cursor.getColumnIndexOrThrow(LoyaltyCardDbIds.BARCODE_TYPE);
|
||||
int balanceTypeColumn = cursor.getColumnIndexOrThrow(LoyaltyCardDbIds.BALANCE_TYPE);
|
||||
@@ -212,6 +217,7 @@ public class CatimaContentProvider {
|
||||
cardId,
|
||||
barcodeId,
|
||||
barcodeFormat,
|
||||
barcodeEncoding,
|
||||
headerColor,
|
||||
starred != 0,
|
||||
archiveStatus != 0,
|
||||
@@ -221,7 +227,7 @@ public class CatimaContentProvider {
|
||||
|
||||
/**
|
||||
* Copied from Catima, protect.card_locker.DBHelper.LoyaltyCardDbGroups.
|
||||
* Commit: 8607e1c2
|
||||
* Commit: a5599dc
|
||||
*/
|
||||
public static class LoyaltyCardDbGroups {
|
||||
public static final String TABLE = "groups";
|
||||
@@ -231,12 +237,13 @@ public class CatimaContentProvider {
|
||||
|
||||
/**
|
||||
* Copied from Catima, protect.card_locker.DBHelper.LoyaltyCardDbIds.
|
||||
* Commit: 8607e1c2
|
||||
* Commit: a5599dc
|
||||
*/
|
||||
public static class LoyaltyCardDbIds {
|
||||
public static final String TABLE = "cards";
|
||||
public static final String ID = "_id";
|
||||
public static final String STORE = "store";
|
||||
public static final String VALID_FROM = "validfrom";
|
||||
public static final String EXPIRY = "expiry";
|
||||
public static final String BALANCE = "balance";
|
||||
public static final String BALANCE_TYPE = "balancetype";
|
||||
@@ -246,6 +253,7 @@ public class CatimaContentProvider {
|
||||
public static final String CARD_ID = "cardid";
|
||||
public static final String BARCODE_ID = "barcodeid";
|
||||
public static final String BARCODE_TYPE = "barcodetype";
|
||||
public static final String BARCODE_ENCODING = "barcodeencoding";
|
||||
public static final String STAR_STATUS = "starstatus";
|
||||
public static final String LAST_USED = "lastused";
|
||||
public static final String ZOOM_LEVEL = "zoomlevel";
|
||||
@@ -254,7 +262,7 @@ public class CatimaContentProvider {
|
||||
|
||||
/**
|
||||
* Copied from Catima, protect.card_locker.DBHelper.LoyaltyCardDbIdsGroups.
|
||||
* Commit: 8607e1c2
|
||||
* Commit: a5599dc
|
||||
*/
|
||||
public static class LoyaltyCardDbIdsGroups {
|
||||
public static final String TABLE = "cardsGroups";
|
||||
|
||||
+9
@@ -23,6 +23,7 @@ import org.apache.commons.lang3.builder.CompareToBuilder;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Currency;
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
@@ -46,6 +47,8 @@ public class LoyaltyCard implements Serializable, Comparable<LoyaltyCard> {
|
||||
@Nullable
|
||||
private final Integer color;
|
||||
|
||||
private final String barcodeEncoding;
|
||||
|
||||
private final boolean starred;
|
||||
private final boolean archived;
|
||||
private final long lastUsed;
|
||||
@@ -59,6 +62,7 @@ public class LoyaltyCard implements Serializable, Comparable<LoyaltyCard> {
|
||||
final String cardId,
|
||||
@Nullable final String barcodeId,
|
||||
@Nullable final BarcodeFormat barcodeFormat,
|
||||
final String barcodeEncoding,
|
||||
@Nullable final Integer color,
|
||||
final boolean starred,
|
||||
final boolean archived,
|
||||
@@ -72,6 +76,7 @@ public class LoyaltyCard implements Serializable, Comparable<LoyaltyCard> {
|
||||
this.cardId = cardId;
|
||||
this.barcodeId = barcodeId;
|
||||
this.barcodeFormat = barcodeFormat;
|
||||
this.barcodeEncoding = barcodeEncoding;
|
||||
this.color = color;
|
||||
this.starred = starred;
|
||||
this.archived = archived;
|
||||
@@ -116,6 +121,10 @@ public class LoyaltyCard implements Serializable, Comparable<LoyaltyCard> {
|
||||
return barcodeFormat;
|
||||
}
|
||||
|
||||
public Charset getBarcodeEncoding() {
|
||||
return Charset.forName(barcodeEncoding);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Integer getColor() {
|
||||
return color;
|
||||
|
||||
+1
-1
@@ -209,7 +209,7 @@ public class ZeppOsLoyaltyCardService extends AbstractZeppOsService {
|
||||
baos.write(0);
|
||||
|
||||
if (card.getBarcodeId() != null) {
|
||||
baos.write(card.getBarcodeId().getBytes(StandardCharsets.UTF_8));
|
||||
baos.write(card.getBarcodeId().getBytes(card.getBarcodeEncoding()));
|
||||
} else {
|
||||
baos.write(card.getCardId().getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user