diff options
| author | Bananeweizen <Bananeweizen@gmx.de> | 2012-10-03 09:19:49 +0200 |
|---|---|---|
| committer | Bananeweizen <Bananeweizen@gmx.de> | 2012-10-03 09:21:40 +0200 |
| commit | 9a6be819050d995ef0c6af6175565246d5c38331 (patch) | |
| tree | dac110c0d6374066cb8525441c4ab1da3761192f | |
| parent | 9c8674a202fc2a3ce7d95decb91c9d8dacdf8cd7 (diff) | |
| download | cgeo-9a6be819050d995ef0c6af6175565246d5c38331.zip cgeo-9a6be819050d995ef0c6af6175565246d5c38331.tar.gz cgeo-9a6be819050d995ef0c6af6175565246d5c38331.tar.bz2 | |
fix #2074: new option to remove colors from log entries
| -rw-r--r-- | main/res/layout/init.xml | 20 | ||||
| -rw-r--r-- | main/res/values-de/strings.xml | 3 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 3 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 17 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/Settings.java | 15 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/SettingsActivity.java | 11 |
6 files changed, 64 insertions, 5 deletions
diff --git a/main/res/layout/init.xml b/main/res/layout/init.xml index d4c87b7..f149ce4 100644 --- a/main/res/layout/init.xml +++ b/main/res/layout/init.xml @@ -603,6 +603,26 @@ android:textColor="?text_color" android:text="@string/init_maptrail" /> </LinearLayout> + <LinearLayout + android:layout_width="fill_parent" + android:layout_height="wrap_content" + android:orientation="horizontal" > + <CheckBox android:id="@+id/plain_logs" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="left" + android:padding="1px" + android:gravity="center" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:gravity="left" + android:paddingRight="3dip" + android:textSize="14dip" + android:textColor="?text_color" + android:text="@string/init_plain_logs" /> + </LinearLayout> </LinearLayout> <!-- ** --> <RelativeLayout style="@style/separator_horizontal_layout" > diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index 2ef1e44..a6f2d89 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -454,7 +454,8 @@ <string name="init_dbmove_running">Verschiebe Datenbank</string> <string name="init_dbmove_success">Die Datenbank wurde erfolgreich verschoben.</string> <string name="init_dbmove_failed">Fehler beim Verschieben der Datenbank.</string> - + <string name="init_plain_logs">Logeinträge ohne Farben anzeigen</string> + <!-- map sources --> <string name="map_source_google_map">Google: Karte</string> <string name="map_source_google_satellite">Google: Satellit</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 385ad46..5128b16 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -455,7 +455,8 @@ <string name="init_dbmove_running">Moving Database</string> <string name="init_dbmove_success">Successfully moved the database.</string> <string name="init_dbmove_failed">Failed to move database</string> - + <string name="init_plain_logs">Display log entries without colors</string> + <!-- map sources --> <string-array name="map_sources"> <item>@string/map_source_google_map</item> diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index 34857b0..6834875 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -109,6 +109,7 @@ import java.util.regex.Pattern; */ public class CacheDetailActivity extends AbstractActivity { + private static final Pattern PATTERN_REMOVE_COLORS = Pattern.compile("</?font.*?>", Pattern.CASE_INSENSITIVE); private static final int MENU_FIELD_COPY = 1; private static final int MENU_FIELD_TRANSLATE = 2; private static final int MENU_FIELD_TRANSLATE_EN = 3; @@ -2180,11 +2181,13 @@ public class CacheDetailActivity extends AbstractActivity { } // logtext, avoid parsing HTML if not necessary - if (BaseUtils.containsHtml(log.log)) { - holder.text.setText(Html.fromHtml(log.log, new HtmlImage(cache.getGeocode(), false, cache.getListId(), false), null), TextView.BufferType.SPANNABLE); + String logText = log.log; + if (BaseUtils.containsHtml(logText)) { + logText = removeColors(logText); + holder.text.setText(Html.fromHtml(logText, new HtmlImage(cache.getGeocode(), false, cache.getListId(), false), null), TextView.BufferType.SPANNABLE); } else { - holder.text.setText(log.log); + holder.text.setText(logText); } // images @@ -2237,6 +2240,14 @@ public class CacheDetailActivity extends AbstractActivity { return view; } + protected String removeColors(String log) { + if (Settings.getPlainLogs()) { + Matcher matcher = PATTERN_REMOVE_COLORS.matcher(log); + return matcher.replaceAll(""); + } + return log; + } + private class LogViewHolder { final TextView date; final TextView type; diff --git a/main/src/cgeo/geocaching/Settings.java b/main/src/cgeo/geocaching/Settings.java index 92241c2..74614c4 100644 --- a/main/src/cgeo/geocaching/Settings.java +++ b/main/src/cgeo/geocaching/Settings.java @@ -97,6 +97,7 @@ public final class Settings { private static final String KEY_SHARE_AFTER_EXPORT = "shareafterexport"; private static final String KEY_GPX_EXPORT_DIR = "gpxExportDir"; private static final String KEY_GPX_IMPORT_DIR = "gpxImportDir"; + private static final String KEY_PLAIN_LOGS = "plainLogs"; private final static int unitsMetric = 1; @@ -1211,4 +1212,18 @@ public final class Settings { return cgeoapplication.getInstance().getPackageName() + "_preferences"; } + public static boolean getPlainLogs() { + return sharedPrefs.getBoolean(KEY_PLAIN_LOGS, false); + } + + public static void setPlainLogs(final boolean plainLogs) { + editSharedSettings(new PrefRunnable() { + + @Override + public void edit(Editor edit) { + edit.putBoolean(KEY_PLAIN_LOGS, plainLogs); + } + }); + } + } diff --git a/main/src/cgeo/geocaching/SettingsActivity.java b/main/src/cgeo/geocaching/SettingsActivity.java index ac8167a..defb138 100644 --- a/main/src/cgeo/geocaching/SettingsActivity.java +++ b/main/src/cgeo/geocaching/SettingsActivity.java @@ -516,6 +516,17 @@ public class SettingsActivity extends AbstractActivity { } }); + final CheckBox plainLogs = (CheckBox) findViewById(R.id.plain_logs); + plainLogs.setChecked(Settings.getPlainLogs()); + plainLogs.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + Settings.setPlainLogs(!Settings.getPlainLogs()); + plainLogs.setChecked(Settings.getPlainLogs()); + } + }); + // Altitude settings EditText altitudeEdit = (EditText) findViewById(R.id.altitude); altitudeEdit.setText(String.valueOf(Settings.getAltCorrection())); |
