diff options
Diffstat (limited to 'main/src/cgeo/geocaching/utils')
| -rw-r--r-- | main/src/cgeo/geocaching/utils/ClipboardUtils.java | 26 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/TranslationUtils.java | 46 |
2 files changed, 72 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/utils/ClipboardUtils.java b/main/src/cgeo/geocaching/utils/ClipboardUtils.java new file mode 100644 index 0000000..865d8d6 --- /dev/null +++ b/main/src/cgeo/geocaching/utils/ClipboardUtils.java @@ -0,0 +1,26 @@ +package cgeo.geocaching.utils; + +import cgeo.geocaching.cgeoapplication; + +import android.content.Context; +import android.text.ClipboardManager; + +/** + * Clipboard Utilities. Functions to copy data to the Android clipboard. + * This class uses the deprecated function ClipboardManager.setText(CharSequence). + * API 11 introduced setPrimaryClip(ClipData) + */ +public final class ClipboardUtils { + + /** + * Places the text passed in onto the clipboard as text + * + * @param text + * The text to place in the clipboard. + */ + public static void copyToClipboard(final CharSequence text) { + final ClipboardManager clipboard = (ClipboardManager) cgeoapplication.getInstance().getSystemService(Context.CLIPBOARD_SERVICE); + clipboard.setText(text); + } + +} diff --git a/main/src/cgeo/geocaching/utils/TranslationUtils.java b/main/src/cgeo/geocaching/utils/TranslationUtils.java new file mode 100644 index 0000000..e086ab6 --- /dev/null +++ b/main/src/cgeo/geocaching/utils/TranslationUtils.java @@ -0,0 +1,46 @@ +package cgeo.geocaching.utils; + +import cgeo.geocaching.activity.AbstractActivity; + +import android.content.Intent; +import android.net.Uri; + +import java.net.URLEncoder; + +/** + * Utilities used for translating + */ +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 = "|"; + + public static final int translationTextLengthToWarn = 500; + + /** + * Build a URI for Google Translate + * + * @param toLang + * The two-letter lowercase ISO language codes as defined by ISO 639-1 + * @param text + * The text to be translated + * @return URI ready to be parsed + */ + public static String buildTranslationURI(final String toLang, final String text) { + return translationWebsite + translationForceClassicMode + translationAutoSelect + translationFieldSeparator + toLang + translationFieldSeparator + URLEncoder.encode(text).replace("+", "%20"); + } + + /** + * 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 + * @param text + * The text to be translated + */ + public static void startActivityTranslate(final AbstractActivity context, final String toLang, final String text) { + context.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(buildTranslationURI(toLang, text)))); + } +} |
