aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <Bananeweizen@gmx.de>2012-10-03 09:19:49 +0200
committerBananeweizen <Bananeweizen@gmx.de>2012-10-03 09:21:40 +0200
commit9a6be819050d995ef0c6af6175565246d5c38331 (patch)
treedac110c0d6374066cb8525441c4ab1da3761192f
parent9c8674a202fc2a3ce7d95decb91c9d8dacdf8cd7 (diff)
downloadcgeo-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.xml20
-rw-r--r--main/res/values-de/strings.xml3
-rw-r--r--main/res/values/strings.xml3
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java17
-rw-r--r--main/src/cgeo/geocaching/Settings.java15
-rw-r--r--main/src/cgeo/geocaching/SettingsActivity.java11
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()));