aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/utils
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/utils')
-rw-r--r--main/src/cgeo/geocaching/utils/ApplicationSettings.java2
-rw-r--r--main/src/cgeo/geocaching/utils/CancellableHandler.java4
-rw-r--r--main/src/cgeo/geocaching/utils/ClipboardUtils.java4
-rw-r--r--main/src/cgeo/geocaching/utils/CryptUtils.java40
-rw-r--r--main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java45
-rw-r--r--main/src/cgeo/geocaching/utils/GeoDirHandler.java4
-rw-r--r--main/src/cgeo/geocaching/utils/IOUtils.java22
-rw-r--r--main/src/cgeo/geocaching/utils/ImageUtils.java15
-rw-r--r--main/src/cgeo/geocaching/utils/Log.java8
-rw-r--r--main/src/cgeo/geocaching/utils/ProcessUtils.java10
-rw-r--r--main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java1
-rw-r--r--main/src/cgeo/geocaching/utils/SimpleHandler.java37
-rw-r--r--main/src/cgeo/geocaching/utils/TextUtils.java6
-rw-r--r--main/src/cgeo/geocaching/utils/TranslationUtils.java22
-rw-r--r--main/src/cgeo/geocaching/utils/UncertainProperty.java5
15 files changed, 98 insertions, 127 deletions
diff --git a/main/src/cgeo/geocaching/utils/ApplicationSettings.java b/main/src/cgeo/geocaching/utils/ApplicationSettings.java
index 99d3142..78fa4f6 100644
--- a/main/src/cgeo/geocaching/utils/ApplicationSettings.java
+++ b/main/src/cgeo/geocaching/utils/ApplicationSettings.java
@@ -17,7 +17,7 @@ public class ApplicationSettings {
*/
public static String getPreferencesName() {
// There is currently no Android API to get the file name of the shared preferences. Let's hardcode
- // it without needing a cgeoapplication instance.
+ // it without needing a CgeoApplication instance.
return "cgeo.geocaching_preferences";
}
diff --git a/main/src/cgeo/geocaching/utils/CancellableHandler.java b/main/src/cgeo/geocaching/utils/CancellableHandler.java
index 8cf8f28..cb4b9db 100644
--- a/main/src/cgeo/geocaching/utils/CancellableHandler.java
+++ b/main/src/cgeo/geocaching/utils/CancellableHandler.java
@@ -1,6 +1,6 @@
package cgeo.geocaching.utils;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.CgeoApplication;
import android.os.Handler;
import android.os.Message;
@@ -114,7 +114,7 @@ public abstract class CancellableHandler extends Handler {
public static void sendLoadProgressDetail(final Handler handler, final int resourceId) {
if (null != handler) {
- handler.obtainMessage(UPDATE_LOAD_PROGRESS_DETAIL, cgeoapplication.getInstance().getString(resourceId)).sendToTarget();
+ handler.obtainMessage(UPDATE_LOAD_PROGRESS_DETAIL, CgeoApplication.getInstance().getString(resourceId)).sendToTarget();
}
}
}
diff --git a/main/src/cgeo/geocaching/utils/ClipboardUtils.java b/main/src/cgeo/geocaching/utils/ClipboardUtils.java
index 67069b2..77250f3 100644
--- a/main/src/cgeo/geocaching/utils/ClipboardUtils.java
+++ b/main/src/cgeo/geocaching/utils/ClipboardUtils.java
@@ -1,6 +1,6 @@
package cgeo.geocaching.utils;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.CgeoApplication;
import android.content.Context;
@@ -24,7 +24,7 @@ public final class ClipboardUtils {
*/
public static void copyToClipboard(final CharSequence text) {
// fully qualified name used here to avoid buggy deprecation warning (of javac) on the import statement
- final android.text.ClipboardManager clipboard = (android.text.ClipboardManager) cgeoapplication.getInstance().getSystemService(Context.CLIPBOARD_SERVICE);
+ final android.text.ClipboardManager clipboard = (android.text.ClipboardManager) CgeoApplication.getInstance().getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(text);
}
diff --git a/main/src/cgeo/geocaching/utils/CryptUtils.java b/main/src/cgeo/geocaching/utils/CryptUtils.java
index 18a337d..d98585a 100644
--- a/main/src/cgeo/geocaching/utils/CryptUtils.java
+++ b/main/src/cgeo/geocaching/utils/CryptUtils.java
@@ -1,11 +1,17 @@
package cgeo.geocaching.utils;
+import org.apache.commons.lang3.CharEncoding;
+import org.apache.commons.lang3.StringUtils;
+
import android.text.Spannable;
import android.text.SpannableStringBuilder;
+import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
+import java.security.GeneralSecurityException;
import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
@@ -62,7 +68,7 @@ public final class CryptUtils {
public static String rot13(String text) {
if (text == null) {
- return "";
+ return StringUtils.EMPTY;
}
final StringBuilder result = new StringBuilder();
Rot13Encryption rot13 = new Rot13Encryption();
@@ -76,42 +82,44 @@ public final class CryptUtils {
}
public static String md5(String text) {
- String hashed = "";
-
try {
final MessageDigest digest = MessageDigest.getInstance("MD5");
- digest.update(text.getBytes(), 0, text.length());
- hashed = new BigInteger(1, digest.digest()).toString(16);
- } catch (Exception e) {
+ digest.update(text.getBytes(CharEncoding.UTF_8), 0, text.length());
+ return new BigInteger(1, digest.digest()).toString(16);
+ } catch (NoSuchAlgorithmException e) {
+ Log.e("CryptUtils.md5", e);
+ } catch (UnsupportedEncodingException e) {
Log.e("CryptUtils.md5", e);
}
- return hashed;
+ return StringUtils.EMPTY;
}
public static String sha1(String text) {
- String hashed = "";
-
try {
final MessageDigest digest = MessageDigest.getInstance("SHA-1");
- digest.update(text.getBytes(), 0, text.length());
- hashed = new BigInteger(1, digest.digest()).toString(16);
- } catch (Exception e) {
+ digest.update(text.getBytes(CharEncoding.UTF_8), 0, text.length());
+ return new BigInteger(1, digest.digest()).toString(16);
+ } catch (NoSuchAlgorithmException e) {
+ Log.e("CryptUtils.sha1", e);
+ } catch (UnsupportedEncodingException e) {
Log.e("CryptUtils.sha1", e);
}
- return hashed;
+ return StringUtils.EMPTY;
}
public static byte[] hashHmac(String text, String salt) {
byte[] macBytes = {};
try {
- final SecretKeySpec secretKeySpec = new SecretKeySpec(salt.getBytes(), "HmacSHA1");
+ final SecretKeySpec secretKeySpec = new SecretKeySpec(salt.getBytes(CharEncoding.UTF_8), "HmacSHA1");
final Mac mac = Mac.getInstance("HmacSHA1");
mac.init(secretKeySpec);
- macBytes = mac.doFinal(text.getBytes());
- } catch (Exception e) {
+ macBytes = mac.doFinal(text.getBytes(CharEncoding.UTF_8));
+ } catch (GeneralSecurityException e) {
+ Log.e("CryptUtils.hashHmac", e);
+ } catch (UnsupportedEncodingException e) {
Log.e("CryptUtils.hashHmac", e);
}
diff --git a/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java b/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java
index 24f375d..b291a8a 100644
--- a/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java
+++ b/main/src/cgeo/geocaching/utils/DatabaseBackupUtils.java
@@ -1,8 +1,8 @@
package cgeo.geocaching.utils;
+import cgeo.geocaching.DataStore;
import cgeo.geocaching.MainActivity;
import cgeo.geocaching.R;
-import cgeo.geocaching.cgData;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.ui.Formatter;
@@ -12,8 +12,6 @@ import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.res.Resources;
-import android.os.Handler;
-import android.os.Message;
import java.io.File;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -34,34 +32,31 @@ public class DatabaseBackupUtils {
final Resources res = activity.getResources();
final ProgressDialog dialog = ProgressDialog.show(activity, res.getString(R.string.init_backup_restore), res.getString(R.string.init_restore_running), true, false);
final AtomicBoolean restoreSuccessful = new AtomicBoolean(false);
- Thread restoreThread = new Thread() {
- final Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- dialog.dismiss();
- boolean restored = restoreSuccessful.get();
- String message = restored ? res.getString(R.string.init_restore_success) : res.getString(R.string.init_restore_failed);
- ActivityMixin.helpDialog(activity, res.getString(R.string.init_backup_restore), message);
- if (activity instanceof MainActivity) {
- ((MainActivity) activity).updateCacheCounter();
- }
- }
- };
-
+ new Thread() {
@Override
public void run() {
- restoreSuccessful.set(cgData.restoreDatabaseInternal());
- handler.sendMessage(handler.obtainMessage());
+ restoreSuccessful.set(DataStore.restoreDatabaseInternal());
+ activity.runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ dialog.dismiss();
+ boolean restored = restoreSuccessful.get();
+ String message = restored ? res.getString(R.string.init_restore_success) : res.getString(R.string.init_restore_failed);
+ ActivityMixin.helpDialog(activity, res.getString(R.string.init_backup_restore), message);
+ if (activity instanceof MainActivity) {
+ ((MainActivity) activity).updateCacheCounter();
+ }
+ }
+ });
}
- };
- restoreThread.start();
+ }.start();
}
public static boolean createBackup(final Activity activity, final Runnable runAfterwards) {
final Context context = activity;
// avoid overwriting an existing backup with an empty database
// (can happen directly after reinstalling the app)
- if (cgData.getAllCachesCount() == 0) {
+ if (DataStore.getAllCachesCount() == 0) {
ActivityMixin.helpDialog(activity,
context.getString(R.string.init_backup),
context.getString(R.string.init_backup_unnecessary));
@@ -74,7 +69,7 @@ public class DatabaseBackupUtils {
new Thread() {
@Override
public void run() {
- final String backupFileName = cgData.backupDatabaseInternal();
+ final String backupFileName = DataStore.backupDatabaseInternal();
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -96,8 +91,8 @@ public class DatabaseBackupUtils {
}
public static File getRestoreFile() {
- final File fileSourceFile = cgData.getBackupFileInternal();
- return fileSourceFile.exists() ? fileSourceFile : null;
+ final File fileSourceFile = DataStore.getBackupFileInternal();
+ return fileSourceFile.exists() && fileSourceFile.length() > 0 ? fileSourceFile : null;
}
public static boolean hasBackup() {
diff --git a/main/src/cgeo/geocaching/utils/GeoDirHandler.java b/main/src/cgeo/geocaching/utils/GeoDirHandler.java
index a143730..c85648b 100644
--- a/main/src/cgeo/geocaching/utils/GeoDirHandler.java
+++ b/main/src/cgeo/geocaching/utils/GeoDirHandler.java
@@ -1,7 +1,7 @@
package cgeo.geocaching.utils;
+import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.IGeoData;
-import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.settings.Settings;
import android.os.Handler;
@@ -29,7 +29,7 @@ public abstract class GeoDirHandler extends Handler implements IObserver<Object>
private static final int STOP_GEO = 1 << 4;
private static final int STOP_DIR = 1 << 5;
- private static final cgeoapplication app = cgeoapplication.getInstance();
+ private static final CgeoApplication app = CgeoApplication.getInstance();
@Override
final public void handleMessage(final Message message) {
diff --git a/main/src/cgeo/geocaching/utils/IOUtils.java b/main/src/cgeo/geocaching/utils/IOUtils.java
deleted file mode 100644
index df90da3..0000000
--- a/main/src/cgeo/geocaching/utils/IOUtils.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cgeo.geocaching.utils;
-
-import java.io.Closeable;
-import java.io.IOException;
-
-final public class IOUtils {
-
- private IOUtils() {
- // utility class
- }
-
- public static void closeQuietly(final Closeable closeable) {
- if (closeable != null) {
- try {
- closeable.close();
- } catch (final IOException e) {
- Log.w("closeQuietly: unable to close " + closeable, e);
- }
- }
- }
-
-}
diff --git a/main/src/cgeo/geocaching/utils/ImageUtils.java b/main/src/cgeo/geocaching/utils/ImageUtils.java
index 478be1f..ea4498b 100644
--- a/main/src/cgeo/geocaching/utils/ImageUtils.java
+++ b/main/src/cgeo/geocaching/utils/ImageUtils.java
@@ -1,8 +1,11 @@
package cgeo.geocaching.utils;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.CgeoApplication;
import cgeo.geocaching.compatibility.Compatibility;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Point;
@@ -13,6 +16,7 @@ import android.net.Uri;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
@@ -45,7 +49,7 @@ public final class ImageUtils {
* @return BitmapDrawable The scaled image
*/
public static BitmapDrawable scaleBitmapTo(final Bitmap image, final int maxWidth, final int maxHeight) {
- final cgeoapplication app = cgeoapplication.getInstance();
+ final CgeoApplication app = CgeoApplication.getInstance();
Bitmap result = image;
int width = image.getWidth();
int height = image.getHeight();
@@ -81,7 +85,7 @@ public final class ImageUtils {
bitmap.compress(format, quality, bos);
bos.flush();
bos.close();
- } catch (Exception e) {
+ } catch (IOException e) {
Log.e("ImageHelper.storeBitmap", e);
}
}
@@ -95,7 +99,8 @@ public final class ImageUtils {
* boundings
* @return filename and path, <tt>null</tt> if something fails
*/
- public static String readScaleAndWriteImage(final String filePath, final int maxXY) {
+ @Nullable
+ public static String readScaleAndWriteImage(@NonNull final String filePath, final int maxXY) {
if (maxXY <= 0) {
return filePath;
}
@@ -131,6 +136,7 @@ public final class ImageUtils {
* @return the temporary image file to use, or <tt>null</tt> if the media directory could
* not be created.
* */
+ @Nullable
public static File getOutputImageFile() {
// To be safe, you should check that the SDCard is mounted
// using Environment.getExternalStorageState() before doing this.
@@ -152,6 +158,7 @@ public final class ImageUtils {
return new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
}
+ @Nullable
public static Uri getOutputImageFileUri() {
final File file = getOutputImageFile();
if (file == null) {
diff --git a/main/src/cgeo/geocaching/utils/Log.java b/main/src/cgeo/geocaching/utils/Log.java
index aa8dbd1..8f96f10 100644
--- a/main/src/cgeo/geocaching/utils/Log.java
+++ b/main/src/cgeo/geocaching/utils/Log.java
@@ -1,11 +1,15 @@
package cgeo.geocaching.utils;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.CharEncoding;
+
import android.os.Environment;
import java.io.BufferedWriter;
import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.io.Writer;
public final class Log {
@@ -107,7 +111,7 @@ public final class Log {
}
Writer writer = null;
try {
- writer = new BufferedWriter(new FileWriter(file, true));
+ writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true), CharEncoding.UTF_8));
writer.write(msg);
} catch (final IOException e) {
Log.e("logToFile: cannot write to " + file, e);
diff --git a/main/src/cgeo/geocaching/utils/ProcessUtils.java b/main/src/cgeo/geocaching/utils/ProcessUtils.java
index 3345ff1..737fb35 100644
--- a/main/src/cgeo/geocaching/utils/ProcessUtils.java
+++ b/main/src/cgeo/geocaching/utils/ProcessUtils.java
@@ -1,8 +1,8 @@
package cgeo.geocaching.utils;
-import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.CgeoApplication;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import android.content.Intent;
import android.content.pm.PackageInfo;
@@ -43,7 +43,7 @@ public final class ProcessUtils {
* This will find installed applications even without launch intent (e.g. the streetview plugin).
*/
private static boolean hasPackageInstalled(final String packageName) {
- final List<PackageInfo> packs = cgeoapplication.getInstance().getPackageManager().getInstalledPackages(0);
+ final List<PackageInfo> packs = CgeoApplication.getInstance().getPackageManager().getInstalledPackages(0);
for (final PackageInfo packageInfo : packs) {
if (packageName.equals(packageInfo.packageName)) {
return true;
@@ -59,7 +59,7 @@ public final class ProcessUtils {
if (packageName == null) {
return null;
}
- final PackageManager packageManager = cgeoapplication.getInstance().getPackageManager();
+ final PackageManager packageManager = CgeoApplication.getInstance().getPackageManager();
try {
// This can throw an exception where the exception type is only defined on API Level > 3
// therefore surround with try-catch
@@ -70,7 +70,7 @@ public final class ProcessUtils {
}
public static boolean isIntentAvailable(final String intent) {
- final PackageManager packageManager = cgeoapplication.getInstance().getPackageManager();
+ final PackageManager packageManager = CgeoApplication.getInstance().getPackageManager();
final List<ResolveInfo> list = packageManager.queryIntentActivities(
new Intent(intent), PackageManager.MATCH_DEFAULT_ONLY);
diff --git a/main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java b/main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java
index 9207c74..22cd4d7 100644
--- a/main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java
+++ b/main/src/cgeo/geocaching/utils/SimpleCancellableHandler.java
@@ -26,7 +26,6 @@ public class SimpleCancellableHandler extends CancellableHandler {
activity.showToast(msg.getData().getString(MESSAGE_TEXT));
}
dismissProgress();
- return;
}
@Override
diff --git a/main/src/cgeo/geocaching/utils/SimpleHandler.java b/main/src/cgeo/geocaching/utils/SimpleHandler.java
index b01d0e1..8e0a479 100644
--- a/main/src/cgeo/geocaching/utils/SimpleHandler.java
+++ b/main/src/cgeo/geocaching/utils/SimpleHandler.java
@@ -3,7 +3,6 @@ package cgeo.geocaching.utils;
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.activity.Progress;
-import android.content.res.Resources;
import android.os.Handler;
import android.os.Message;
@@ -15,48 +14,20 @@ public abstract class SimpleHandler extends Handler {
protected final WeakReference<Progress> progressDialogRef;
public SimpleHandler(final AbstractActivity activity, final Progress progress) {
- this.activityRef = new WeakReference<AbstractActivity>(activity);
- this.progressDialogRef = new WeakReference<Progress>(progress);
+ activityRef = new WeakReference<AbstractActivity>(activity);
+ progressDialogRef = new WeakReference<Progress>(progress);
}
@Override
public void handleMessage(final Message msg) {
- AbstractActivity activity = activityRef.get();
+ final AbstractActivity activity = activityRef.get();
if (activity != null && msg.getData() != null && msg.getData().getString(MESSAGE_TEXT) != null) {
activity.showToast(msg.getData().getString(MESSAGE_TEXT));
}
- dismissProgress();
- return;
- }
-
- protected final void showToast(final int resId) {
- AbstractActivity activity = activityRef.get();
- if (activity != null) {
- Resources res = activity.getResources();
- activity.showToast(res.getText(resId).toString());
- }
- }
-
- protected final void dismissProgress() {
- Progress progressDialog = progressDialogRef.get();
+ final Progress progressDialog = progressDialogRef.get();
if (progressDialog != null) {
progressDialog.dismiss();
}
}
- protected final void setProgressMessage(final String txt) {
- Progress progressDialog = progressDialogRef.get();
- if (progressDialog != null) {
- progressDialog.setMessage(txt);
- }
- }
-
- protected final void finishActivity() {
- AbstractActivity activity = activityRef.get();
- if (activity != null) {
- activity.finish();
- }
-
- }
-
}
diff --git a/main/src/cgeo/geocaching/utils/TextUtils.java b/main/src/cgeo/geocaching/utils/TextUtils.java
index c9d4958..302a65d 100644
--- a/main/src/cgeo/geocaching/utils/TextUtils.java
+++ b/main/src/cgeo/geocaching/utils/TextUtils.java
@@ -3,6 +3,8 @@
*/
package cgeo.geocaching.utils;
+import org.eclipse.jdt.annotation.Nullable;
+
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -34,7 +36,7 @@ public final class TextUtils {
* Find the last occurring value
* @return defaultValue or the n-th group if the pattern matches (trimmed if wanted)
*/
- public static String getMatch(final String data, final Pattern p, final boolean trim, final int group, final String defaultValue, final boolean last) {
+ public static String getMatch(@Nullable final String data, final Pattern p, final boolean trim, final int group, final String defaultValue, final boolean last) {
if (data != null) {
String result = null;
@@ -87,7 +89,7 @@ public final class TextUtils {
* Value to return if the pattern is not found
* @return defaultValue or the first group if the pattern matches (trimmed)
*/
- public static String getMatch(final String data, final Pattern p, final String defaultValue) {
+ public static String getMatch(@Nullable final String data, final Pattern p, final String defaultValue) {
return TextUtils.getMatch(data, p, true, 1, defaultValue, false);
}
diff --git a/main/src/cgeo/geocaching/utils/TranslationUtils.java b/main/src/cgeo/geocaching/utils/TranslationUtils.java
index 1224f7e..619db08 100644
--- a/main/src/cgeo/geocaching/utils/TranslationUtils.java
+++ b/main/src/cgeo/geocaching/utils/TranslationUtils.java
@@ -3,6 +3,8 @@ package cgeo.geocaching.utils;
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.network.Network;
+import org.apache.commons.lang3.StringUtils;
+
import android.content.Intent;
import android.net.Uri;
@@ -11,12 +13,12 @@ import android.net.Uri;
*/
public final class TranslationUtils {
- private static final String translationWebsite = "http://translate.google.com/";
- private static final String translationForceClassicMode = "?vi=c";
- private static final String translationAutoSelect = "#auto";
- private static final String translationFieldSeparator = "|";
+ private static final String TRANSLATION_WEBSITE = "http://translate.google.com/";
+ private static final String TRANSLATION_FORCE_CLASSIC_MODE = "?vi=c";
+ private static final String TRANSLATION_AUTO_SELECT = "#auto";
+ private static final String TRANSLATION_FIELD_SEPARATOR = "|";
- public static final int translationTextLengthToWarn = 500;
+ public static final int TRANSLATION_TEXT_LENGTH_WARN = 500;
private static final String TRANSLATION_APP = "com.google.android.apps.translate";
private TranslationUtils() {
@@ -24,8 +26,8 @@ public final class TranslationUtils {
}
/**
- * Build a URI for Google Translate
- *
+ * Build a URI for Google Translate.
+ *
* @param toLang
* The two-letter lowercase ISO language codes as defined by ISO 639-1
* @param text
@@ -36,13 +38,13 @@ public final class TranslationUtils {
String content = Network.encode(text);
// the app works better without the "+", the website works better with "+", therefore assume using the app if installed
if (ProcessUtils.isLaunchable(TRANSLATION_APP)) {
- content = content.replace("+", "%20");
+ content = StringUtils.replace(content, "+", "%20");
}
- return translationWebsite + translationForceClassicMode + translationAutoSelect + translationFieldSeparator + toLang + translationFieldSeparator + content;
+ return TRANSLATION_WEBSITE + TRANSLATION_FORCE_CLASSIC_MODE + TRANSLATION_AUTO_SELECT + TRANSLATION_FIELD_SEPARATOR + toLang + TRANSLATION_FIELD_SEPARATOR + content;
}
/**
- * Send Intent for Google Translate. Can be caught by Google Translate App or browser
+ * Send Intent for Google Translate. Can be caught by Google Translate App or browser.
*
* @param toLang
* The two-letter lowercase ISO language codes as defined by ISO 639-1
diff --git a/main/src/cgeo/geocaching/utils/UncertainProperty.java b/main/src/cgeo/geocaching/utils/UncertainProperty.java
index 5f86662..e8686e3 100644
--- a/main/src/cgeo/geocaching/utils/UncertainProperty.java
+++ b/main/src/cgeo/geocaching/utils/UncertainProperty.java
@@ -2,6 +2,11 @@ package cgeo.geocaching.utils;
import cgeo.geocaching.connector.gc.Tile;
+/**
+ * Property with certainty. When merging properties, the one with higher certainty wins.
+ *
+ * @param <T>
+ */
public class UncertainProperty<T> {
private final T value;