From 7db3b68047a577940e031ec3b858c6efdfef4b6b Mon Sep 17 00:00:00 2001 From: TaaviE Date: Wed, 26 Aug 2020 05:28:03 +0300 Subject: [PATCH] Fixed a bunch of warnings --- .../activities/AbstractSettingsActivity.java | 2 +- .../gadgetbridge/activities/AlarmDetails.java | 2 +- .../activities/ExternalPebbleJSActivity.java | 1 + .../activities/WidgetAlarmsActivity.java | 2 +- .../devices/AbstractDeviceCoordinator.java | 7 +++-- .../gadgetbridge/model/GenericItem.java | 4 ++- .../gadgetbridge/service/btle/BtLEQueue.java | 4 +-- .../casiogb6900/CasioGB6900DeviceSupport.java | 29 +++++++------------ .../casiogb6900/operations/InitOperation.java | 6 ++-- .../devices/id115/AbstractID115Operation.java | 4 +-- .../makibeshr3/MakibesHR3DeviceSupport.java | 12 ++++---- .../devices/pebble/ble/PebbleGATTClient.java | 4 +-- .../qhybrid/requests/fossil/alarm/Alarm.java | 11 +++---- .../gadgetbridge/util/AlarmUtils.java | 2 +- .../gadgetbridge/util/AndroidUtils.java | 3 +- .../gadgetbridge/util/DeviceHelper.java | 11 +++---- .../gadgetbridge/util/LanguageUtils.java | 28 +++++++++++------- .../gadgetbridge/util/StringUtils.java | 8 +++-- .../gadgetbridge/util/WebViewSingleton.java | 1 + 19 files changed, 72 insertions(+), 69 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java index fb523fdde..446c3c094 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AbstractSettingsActivity.java @@ -189,7 +189,7 @@ public abstract class AbstractSettingsActivity extends AppCompatPreferenceActivi */ private static void bindPreferenceSummaryToValue(Preference preference) { // Set the listener to watch for value changes. - SimpleSetSummaryOnChangeListener listener = null; + SimpleSetSummaryOnChangeListener listener; Preference.OnPreferenceChangeListener existingListener = preference.getOnPreferenceChangeListener(); if (existingListener != null) { listener = new ExtraSetSummaryOnChangeListener(existingListener); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java index 1dceb49f2..12ac69051 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/AlarmDetails.java @@ -186,7 +186,7 @@ public class AlarmDetails extends AbstractGBActivity { private void updateAlarm() { alarm.setSmartWakeup(supportsSmartWakeup() && cbSmartWakeup.isChecked()); alarm.setSnooze(supportsSnoozing() && cbSnooze.isChecked()); - int repetitionMask = AlarmUtils.createRepetitionMassk(cbMonday.isChecked(), cbTuesday.isChecked(), cbWednesday.isChecked(), cbThursday.isChecked(), cbFriday.isChecked(), cbSaturday.isChecked(), cbSunday.isChecked()); + int repetitionMask = AlarmUtils.createRepetitionMask(cbMonday.isChecked(), cbTuesday.isChecked(), cbWednesday.isChecked(), cbThursday.isChecked(), cbFriday.isChecked(), cbSaturday.isChecked(), cbSunday.isChecked()); alarm.setRepetition(repetitionMask); alarm.setHour(timePicker.getCurrentHour()); alarm.setMinute(timePicker.getCurrentMinute()); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java index 1e87be20f..17bff1e78 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ExternalPebbleJSActivity.java @@ -188,6 +188,7 @@ public class ExternalPebbleJSActivity extends AbstractGBActivity { myWebView.setWebViewClient(new GBWebClient()); myWebView.setWebChromeClient(new GBChromeClient()); WebSettings webSettings = myWebView.getSettings(); + //noinspection SetJavaScriptEnabled webSettings.setJavaScriptEnabled(true); //needed to access the DOM webSettings.setDomStorageEnabled(true); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WidgetAlarmsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WidgetAlarmsActivity.java index 8e01404a7..e3a10129d 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WidgetAlarmsActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/WidgetAlarmsActivity.java @@ -60,7 +60,7 @@ public class WidgetAlarmsActivity extends Activity implements View.OnClickListen textView = findViewById(R.id.alarm5); if (userSleepDuration > 0) { Resources res = getResources(); - textView.setText(String.format(res.getQuantityString(R.plurals.widget_alarm_target_hours, userSleepDuration, userSleepDuration))); + textView.setText(res.getQuantityString(R.plurals.widget_alarm_target_hours, userSleepDuration, userSleepDuration)); } else { textView.setVisibility(View.GONE); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java index 8d8e96b4f..49ee0fa46 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java @@ -78,16 +78,19 @@ public abstract class AbstractDeviceCoordinator implements DeviceCoordinator { GBApplication.deviceService().disconnect(); } Prefs prefs = getPrefs(); + String lastDevice = prefs.getPreferences().getString("last_device_address",""); - if (gbDevice.getAddress() == lastDevice){ + if (gbDevice.getAddress().equals(lastDevice)) { LOG.debug("#1605 removing last device"); prefs.getPreferences().edit().remove("last_device_address").apply(); } + String macAddress = prefs.getPreferences().getString(MiBandConst.PREF_MIBAND_ADDRESS,""); - if (gbDevice.getAddress() == macAddress){ + if (gbDevice.getAddress().equals(macAddress)) { LOG.debug("#1605 removing devel miband"); prefs.getPreferences().edit().remove(MiBandConst.PREF_MIBAND_ADDRESS).apply(); } + try (DBHandler dbHandler = GBApplication.acquireDB()) { DaoSession session = dbHandler.getDaoSession(); Device device = DBHelper.findDevice(gbDevice, session); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/GenericItem.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/GenericItem.java index 684891131..1097a1072 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/GenericItem.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/GenericItem.java @@ -111,14 +111,16 @@ public class GenericItem implements ItemWithDetails { @Override public int compareTo(ItemWithDetails another) { - if (getName() == another.getName()) { + if (getName().equals(another.getName())) { return 0; } + if (getName() == null) { return +1; } else if (another.getName() == null) { return -1; } + return Collator.getInstance().compare(getName(), another.getName()); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java index 42b936bb2..71ef0e4f7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/btle/BtLEQueue.java @@ -383,9 +383,7 @@ public final class BtLEQueue { if (!transaction.isEmpty()) { List tail = new ArrayList<>(mTransactions.size() + 2); //mTransactions.drainTo(tail); - for( AbstractTransaction t : mTransactions) { - tail.add(t); - } + tail.addAll(mTransactions); mTransactions.clear(); mTransactions.add(transaction); mTransactions.addAll(tail); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casiogb6900/CasioGB6900DeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casiogb6900/CasioGB6900DeviceSupport.java index 61c3c4a12..4d75ff786 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casiogb6900/CasioGB6900DeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/casiogb6900/CasioGB6900DeviceSupport.java @@ -60,7 +60,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.StringUtils; public class CasioGB6900DeviceSupport extends AbstractBTLEDeviceSupport { private static final Logger LOG = LoggerFactory.getLogger(CasioGB6900DeviceSupport.class); - private ArrayList mCasioCharacteristics = new ArrayList(); + private final ArrayList mCasioCharacteristics = new ArrayList(); private CasioHandlerThread mHandlerThread = null; private MusicSpec mBufferMusicSpec = null; private MusicStateSpec mBufferMusicStateSpec = null; @@ -190,7 +190,7 @@ public class CasioGB6900DeviceSupport extends AbstractBTLEDeviceSupport { return; } - byte value[] = new byte[]{GattCharacteristic.MILD_ALERT}; + byte[] value = new byte[]{GattCharacteristic.MILD_ALERT}; BluetoothGattService llService = mBtGatt.getService(CasioGB6900Constants.LINK_LOSS_SERVICE); BluetoothGattCharacteristic charact = llService.getCharacteristic(CasioGB6900Constants.ALERT_LEVEL_CHARACTERISTIC_UUID); @@ -287,12 +287,11 @@ public class CasioGB6900DeviceSupport extends AbstractBTLEDeviceSupport { private boolean handleInitResponse(byte data) { boolean handled = false; - switch(data) - { + switch (data) { case (byte) 1: LOG.info("Initialization done, setting state to INITIALIZED"); - if(mHandlerThread != null) { - if(mHandlerThread.isAlive()) { + if (mHandlerThread != null) { + if (mHandlerThread.isAlive()) { mHandlerThread.quit(); mHandlerThread.interrupt(); } @@ -393,11 +392,11 @@ public class CasioGB6900DeviceSupport extends AbstractBTLEDeviceSupport { return true; if(characteristicUUID.equals(CasioGB6900Constants.TX_POWER_LEVEL_CHARACTERISTIC_UUID)) { - String str = "onCharacteristicRead: Received power level: "; + StringBuilder str = new StringBuilder("onCharacteristicRead: Received power level: "); for(int i=0; i { - protected BluetoothGattCharacteristic controlCharacteristic = null; - protected BluetoothGattCharacteristic notifyCharacteristic = null; + protected BluetoothGattCharacteristic controlCharacteristic; + protected BluetoothGattCharacteristic notifyCharacteristic; protected AbstractID115Operation(ID115Support support) { super(support); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/makibeshr3/MakibesHR3DeviceSupport.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/makibeshr3/MakibesHR3DeviceSupport.java index fe024955d..f4173f255 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/makibeshr3/MakibesHR3DeviceSupport.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/makibeshr3/MakibesHR3DeviceSupport.java @@ -88,7 +88,7 @@ public class MakibesHR3DeviceSupport extends AbstractBTLEDeviceSupport implement // The delay must be at least as long as it takes the watch to respond. // Reordering the requests could maybe reduce the delay, but this works fine too. - private CountDownTimer mFetchCountDown = new CountDownTimer(2000, 2000) { + private final CountDownTimer mFetchCountDown = new CountDownTimer(2000, 2000) { @Override public void onTick(long millisUntilFinished) { @@ -101,7 +101,7 @@ public class MakibesHR3DeviceSupport extends AbstractBTLEDeviceSupport implement } }; - private Handler mFindPhoneHandler = new Handler(); + private final Handler mFindPhoneHandler = new Handler(); private BluetoothGattCharacteristic mControlCharacteristic = null; private BluetoothGattCharacteristic mReportCharacteristic = null; @@ -776,8 +776,8 @@ public class MakibesHR3DeviceSupport extends AbstractBTLEDeviceSupport implement byte[] value = characteristic.getValue(); byte[] arguments = new byte[value.length - 6]; - for (int i = 0; i < arguments.length; ++i) { - arguments[i] = value[i + 6]; + if (arguments.length >= 0) { + System.arraycopy(value, 6, arguments, 0, arguments.length); } byte[] report = new byte[]{value[4], value[5]}; @@ -837,9 +837,7 @@ public class MakibesHR3DeviceSupport extends AbstractBTLEDeviceSupport implement result[MakibesHR3Constants.DATA_ARGUMENT_COUNT_INDEX] = (byte) (data.length + 3); - for (int i = 0; i < command.length; ++i) { - result[MakibesHR3Constants.DATA_COMMAND_INDEX + i] = command[i]; - } + System.arraycopy(command, 0, result, 4, command.length); System.arraycopy(data, 0, result, 6, data.length); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/ble/PebbleGATTClient.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/ble/PebbleGATTClient.java index 6f318bcc8..afcfaeac3 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/ble/PebbleGATTClient.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/pebble/ble/PebbleGATTClient.java @@ -217,8 +217,8 @@ class PebbleGATTClient extends BluetoothGattCallback { private void connectToPebble(BluetoothDevice btDevice) { if (removeBond) { try { - Method m = btDevice.getClass() - .getMethod("removeBond", (Class[]) null); + // TODO: Use BondingUtil + Method m = btDevice.getClass().getMethod("removeBond", (Class[]) null); m.invoke(btDevice, (Object[]) null); } catch (Exception e) { LOG.warn(e.getMessage()); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/Alarm.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/Alarm.java index 821f707ce..750c64ed0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/Alarm.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/qhybrid/requests/fossil/alarm/Alarm.java @@ -27,8 +27,9 @@ public class Alarm { public final int WEEKDAY_FRIDAY = 5; public final int WEEKDAY_SATURDAY = 6; private byte days = 0; - private byte minute, hour; - private boolean repeat; + private final byte minute; + private final byte hour; + private final boolean repeat; private String title, message; public Alarm(byte minute, byte hour, String title, String message){ @@ -108,13 +109,13 @@ public class Alarm { String[] dayNames = new String[]{"sunday", "monday", "tuesday", "thursday", "wednesday", "friday", "saturday"}; for(int i = WEEKDAY_SUNDAY; i <= WEEKDAY_SATURDAY; i++){ if((days & 1 << i) != 0){ - description += dayNames[i] + " "; + description.append(dayNames[i]).append(" "); } } }else{ - description += "not repeating"; + description.append("not repeating"); } - return description; + return description.toString(); } } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AlarmUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AlarmUtils.java index c02b6c617..84b7da1b9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AlarmUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AlarmUtils.java @@ -81,7 +81,7 @@ public class AlarmUtils { * @param sun whether the alarm shall repeat every Sunday * @return the created repetition mask */ - public static int createRepetitionMassk(boolean mon, boolean tue, boolean wed, boolean thu, boolean fri, boolean sat, boolean sun) { + public static int createRepetitionMask(boolean mon, boolean tue, boolean wed, boolean thu, boolean fri, boolean sat, boolean sun) { int repetitionMask = (mon ? Alarm.ALARM_MON : 0) | (tue ? Alarm.ALARM_TUE : 0) | (wed ? Alarm.ALARM_WED : 0) | diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AndroidUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AndroidUtils.java index 1ba9bac2d..6c9eaa075 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AndroidUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/AndroidUtils.java @@ -217,8 +217,7 @@ public class AndroidUtils { String[] projection = { MediaStore.Images.Media.DATA }; - Cursor cursor = null; - cursor = context.getContentResolver() + Cursor cursor = context.getContentResolver() .query(uri, projection, selection, selectionArgs, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); if (cursor.moveToFirst()) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java index 25f82d685..5d3c3729b 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/DeviceHelper.java @@ -144,20 +144,17 @@ public class DeviceHelper { public Set getAvailableDevices(Context context) { BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter(); - Set availableDevices = new LinkedHashSet(); - if (btAdapter == null) { GB.toast(context, context.getString(R.string.bluetooth_is_not_supported_), Toast.LENGTH_SHORT, GB.WARN); } else if (!btAdapter.isEnabled()) { GB.toast(context, context.getString(R.string.bluetooth_is_disabled_), Toast.LENGTH_SHORT, GB.WARN); } - List dbDevices = getDatabaseDevices(); - availableDevices.addAll(dbDevices); + Set availableDevices = new LinkedHashSet<>(getDatabaseDevices()); Prefs prefs = GBApplication.getPrefs(); - String miAddr = prefs.getString(MiBandConst.PREF_MIBAND_ADDRESS, ""); - if (miAddr.length() > 0) { - GBDevice miDevice = new GBDevice(miAddr, "MI", null, DeviceType.MIBAND); + String miAddress = prefs.getString(MiBandConst.PREF_MIBAND_ADDRESS, ""); + if (miAddress.length() > 0) { + GBDevice miDevice = new GBDevice(miAddress, "MI", null, DeviceType.MIBAND); availableDevices.add(miDevice); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/LanguageUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/LanguageUtils.java index 22a2b4d61..075c636c6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/LanguageUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/LanguageUtils.java @@ -28,10 +28,11 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication; public class LanguageUtils { - //transliteration map with english equivalent for unsupported chars - private static Map transliterateMap = new HashMap(){ + // Transliteration map with english equivalent for unsupported chars + @SuppressWarnings("OverwrittenKey") + private static final Map transliterateMap = new HashMap() { { - //extended ASCII characters + // Extended ASCII characters put('œ', "oe"); put('ª', "a"); put('º', "o"); put('«',"\""); put('»',"\""); // Scandinavian characters @@ -39,25 +40,25 @@ public class LanguageUtils { put('Ø',"Oe"); put('ø',"oe"); put('Å',"Aa"); put('å',"aa"); - //german characters + // German characters put('ä',"ae"); put('ö',"oe"); put('ü',"ue"); put('Ä',"Ae"); put('Ö',"Oe"); put('Ü',"Üe"); put('ß',"ss"); put('ẞ',"SS"); - //russian chars + // Russian chars put('а', "a"); put('б', "b"); put('в', "v"); put('г', "g"); put('д', "d"); put('е', "e"); put('ё', "jo"); put('ж', "zh"); put('з', "z"); put('и', "i"); put('й', "jj"); put('к', "k"); put('л', "l"); put('м', "m"); put('н', "n"); put('о', "o"); put('п', "p"); put('р', "r"); put('с', "s"); put('т', "t"); put('у', "u"); put('ф', "f"); put('х', "kh"); put('ц', "c"); put('ч', "ch");put('ш', "sh");put('щ', "shh");put('ъ', "\"");put('ы', "y"); put('ь', "'"); put('э', "eh"); put('ю', "ju"); put('я', "ja"); - - //hebrew chars + + // Hebrew chars put('א', "a"); put('ב', "b"); put('ג', "g"); put('ד', "d"); put('ה', "h"); put('ו', "u"); put('ז', "z"); put('ח', "kh"); put('ט', "t"); put('י', "y"); put('כ', "c"); put('ל', "l"); put('מ', "m"); put('נ', "n"); put('ס', "s"); put('ע', "'"); put('פ', "p"); put('צ', "ts"); put('ק', "k"); put('ר', "r"); put('ש', "sh"); put('ת', "th"); put('ף', "f"); put('ץ', "ts"); put('ך', "ch");put('ם', "m");put('ן', "n"); - // greek chars + // Greek chars put('α',"a");put('ά',"a");put('β',"v");put('γ',"g");put('δ',"d");put('ε',"e");put('έ',"e");put('ζ',"z");put('η',"i"); put('ή',"i");put('θ',"th");put('ι',"i");put('ί',"i");put('ϊ',"i");put('ΐ',"i");put('κ',"k");put('λ',"l");put('μ',"m"); put('ν',"n");put('ξ',"ks");put('ο',"o");put('ό',"o");put('π',"p");put('ρ',"r");put('σ',"s");put('ς',"s");put('τ',"t"); @@ -67,7 +68,7 @@ public class LanguageUtils { put('Ξ',"KS");put('Ο',"O");put('Ό',"O");put('Π',"P");put('Ρ',"R");put('Σ',"S");put('Τ',"T");put('Υ',"Y");put('Ύ',"Y"); put('Ϋ',"Y");put('Φ',"F");put('Χ',"CH");put('Ψ',"PS");put('Ω',"O");put('Ώ',"O"); - //ukrainian characters + // Ukrainian characters put('ґ', "gh"); put('є', "je"); put('і', "i"); put('ї', "ji"); put('Ґ', "GH"); put('Є', "JE"); put('І', "I"); put('Ї', "JI"); // Arabic @@ -92,8 +93,15 @@ public class LanguageUtils { //Lithuanian put('ą', "a"); put('č', "c"); put('ę', "e"); put('ė', "e"); put('į', "i"); put('š', "s"); put('ų', "u"); put('ū', "u"); put('ž', "z"); + + // Estonian + put('ä', "a"); put('Ä', "A"); + put('ö', "o"); put('õ', "o"); + put('Ö', "O"); put('Õ', "O"); + put('ü', "u"); put('Ü', "U"); + //TODO: these must be configurable. If someone wants to transliterate cyrillic it does not mean his device has no German umlauts - //all or nothing is really bad here + // all or nothing is really bad here } }; diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/StringUtils.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/StringUtils.java index 5d5b923e7..4f2603825 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/StringUtils.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/StringUtils.java @@ -55,10 +55,12 @@ public class StringUtils { return pad(s, length, ' '); } - public static String pad(String s, int length, char padChar){ - while(s.length() < length) { - s += padChar; + public static String pad(String s, int length, char padChar) { + StringBuilder sBuilder = new StringBuilder(s); + while (sBuilder.length() < length) { + sBuilder.append(padChar); } + s = sBuilder.toString(); return s; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/WebViewSingleton.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/WebViewSingleton.java index 092a1489f..1b88ef0e6 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/WebViewSingleton.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/WebViewSingleton.java @@ -82,6 +82,7 @@ public class WebViewSingleton { instance.webView.setWebViewClient(new GBWebClient()); instance.webView.setWebChromeClient(new GBChromeClient()); WebSettings webSettings = instance.webView.getSettings(); + //noinspection SetJavaScriptEnabled webSettings.setJavaScriptEnabled(true); //needed to access the DOM webSettings.setDomStorageEnabled(true);