aboutsummaryrefslogtreecommitdiffstats
path: root/main/src
diff options
context:
space:
mode:
Diffstat (limited to 'main/src')
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java26
-rw-r--r--main/src/cgeo/geocaching/TrackableActivity.java50
-rw-r--r--main/src/cgeo/geocaching/ui/CacheDetailsCreator.java15
3 files changed, 53 insertions, 38 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 169238b..85597e7 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -115,6 +115,7 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
+import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.TextView.BufferType;
@@ -952,10 +953,9 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
* Creator for details-view.
*/
private class DetailsViewCreator extends AbstractCachingPageViewCreator<ScrollView> {
- /**
- * Reference to the details list, so that the helper-method can access it without an additional argument
- */
+ // Reference to the details list and favorite line, so that the helper-method can access them without an additional argument
private LinearLayout detailsList;
+ private ImmutablePair<RelativeLayout, TextView> favoriteLine;
@Override
public ScrollView getDispatchedView(final ViewGroup parentView) {
@@ -992,10 +992,10 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
span.setSpan(new ForegroundColorSpan(res.getColor(R.color.archived_cache_color)), 0, span.toString().length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
- addContextMenu(details.add(R.string.cache_name, span));
+ addContextMenu(details.add(R.string.cache_name, span).right);
details.add(R.string.cache_type, cache.getType().getL10n());
details.addSize(cache);
- addContextMenu(details.add(R.string.cache_geocode, cache.getGeocode()));
+ addContextMenu(details.add(R.string.cache_geocode, cache.getGeocode()).right);
details.addCacheState(cache);
details.addDistance(cache, cacheDistanceView);
@@ -1006,9 +1006,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
details.addRating(cache);
// favorite count
- if (cache.getFavoritePoints() > 0) {
- details.add(R.string.cache_favorite, cache.getFavoritePoints() + "×");
- }
+ favoriteLine = details.add(R.string.cache_favorite, "");
// own rating
if (cache.getMyVote() > 0) {
@@ -1017,7 +1015,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
// cache author
if (StringUtils.isNotBlank(cache.getOwnerDisplayName()) || StringUtils.isNotBlank(cache.getOwnerUserId())) {
- final TextView ownerView = details.add(R.string.cache_owner, "");
+ final TextView ownerView = details.add(R.string.cache_owner, "").right;
if (StringUtils.isNotBlank(cache.getOwnerDisplayName())) {
ownerView.setText(cache.getOwnerDisplayName(), TextView.BufferType.SPANNABLE);
} else { // OwnerReal guaranteed to be not blank based on above
@@ -1039,7 +1037,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
// cache coordinates
if (cache.getCoords() != null) {
- final TextView valueView = details.add(R.string.cache_coordinates, cache.getCoords().toString());
+ final TextView valueView = details.add(R.string.cache_coordinates, cache.getCoords().toString()).right;
valueView.setOnClickListener(new CoordinatesFormatSwitcher(cache.getCoords()));
addContextMenu(valueView);
}
@@ -1340,6 +1338,14 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
buttonRemove.setEnabled(false);
buttonRemove.setVisibility(View.GONE);
}
+
+ // Favorite counts
+ if (cache.getFavoritePoints() > 0) {
+ favoriteLine.left.setVisibility(View.VISIBLE);
+ favoriteLine.right.setText(cache.getFavoritePoints() + "×");
+ } else {
+ favoriteLine.left.setVisibility(View.GONE);
+ }
}
/**
diff --git a/main/src/cgeo/geocaching/TrackableActivity.java b/main/src/cgeo/geocaching/TrackableActivity.java
index fec1157..a9f508c 100644
--- a/main/src/cgeo/geocaching/TrackableActivity.java
+++ b/main/src/cgeo/geocaching/TrackableActivity.java
@@ -160,7 +160,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
return;
}
- String message;
+ final String message;
if (StringUtils.isNotBlank(name)) {
message = Html.fromHtml(name).toString();
} else if (StringUtils.isNotBlank(geocode)) {
@@ -394,10 +394,10 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
}
// trackable name
- addContextMenu(details.add(R.string.trackable_name, StringUtils.isNotBlank(trackable.getName()) ? Html.fromHtml(trackable.getName()).toString() : res.getString(R.string.trackable_unknown)));
+ addContextMenu(details.add(R.string.trackable_name, StringUtils.isNotBlank(trackable.getName()) ? Html.fromHtml(trackable.getName()).toString() : res.getString(R.string.trackable_unknown)).right);
// trackable type
- String tbType;
+ final String tbType;
if (StringUtils.isNotBlank(trackable.getType())) {
tbType = Html.fromHtml(trackable.getType()).toString();
} else {
@@ -406,10 +406,10 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
details.add(R.string.trackable_type, tbType);
// trackable geocode
- addContextMenu(details.add(R.string.trackable_code, trackable.getGeocode()));
+ addContextMenu(details.add(R.string.trackable_code, trackable.getGeocode()).right);
// trackable owner
- final TextView owner = details.add(R.string.trackable_owner, res.getString(R.string.trackable_unknown));
+ final TextView owner = details.add(R.string.trackable_owner, res.getString(R.string.trackable_unknown)).right;
if (StringUtils.isNotBlank(trackable.getOwner())) {
owner.setText(Html.fromHtml(trackable.getOwner()), TextView.BufferType.SPANNABLE);
owner.setOnClickListener(new UserActionsClickListener(trackable));
@@ -419,20 +419,26 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
if (StringUtils.isNotBlank(trackable.getSpottedName()) ||
trackable.getSpottedType() == Trackable.SPOTTED_UNKNOWN ||
trackable.getSpottedType() == Trackable.SPOTTED_OWNER) {
+
+ final StringBuilder text;
boolean showTimeSpan = true;
- StringBuilder text;
-
- if (trackable.getSpottedType() == Trackable.SPOTTED_CACHE) {
- text = new StringBuilder(res.getString(R.string.trackable_spotted_in_cache) + ' ' + Html.fromHtml(trackable.getSpottedName()).toString());
- } else if (trackable.getSpottedType() == Trackable.SPOTTED_USER) {
- text = new StringBuilder(res.getString(R.string.trackable_spotted_at_user) + ' ' + Html.fromHtml(trackable.getSpottedName()).toString());
- } else if (trackable.getSpottedType() == Trackable.SPOTTED_UNKNOWN) {
- text = new StringBuilder(res.getString(R.string.trackable_spotted_unknown_location));
- } else if (trackable.getSpottedType() == Trackable.SPOTTED_OWNER) {
- text = new StringBuilder(res.getString(R.string.trackable_spotted_owner));
- } else {
- text = new StringBuilder("N/A");
- showTimeSpan = false;
+ switch (trackable.getSpottedType()) {
+ case Trackable.SPOTTED_CACHE:
+ text = new StringBuilder(res.getString(R.string.trackable_spotted_in_cache) + ' ' + Html.fromHtml(trackable.getSpottedName()).toString());
+ break;
+ case Trackable.SPOTTED_USER:
+ text = new StringBuilder(res.getString(R.string.trackable_spotted_at_user) + ' ' + Html.fromHtml(trackable.getSpottedName()).toString());
+ break;
+ case Trackable.SPOTTED_UNKNOWN:
+ text = new StringBuilder(res.getString(R.string.trackable_spotted_unknown_location));
+ break;
+ case Trackable.SPOTTED_OWNER:
+ text = new StringBuilder(res.getString(R.string.trackable_spotted_owner));
+ break;
+ default:
+ text = new StringBuilder("N/A");
+ showTimeSpan = false;
+ break;
}
// days since last spotting
@@ -445,7 +451,7 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
}
}
- final TextView spotted = details.add(R.string.trackable_spotted, text.toString());
+ final TextView spotted = details.add(R.string.trackable_spotted, text.toString()).right;
spotted.setClickable(true);
if (Trackable.SPOTTED_CACHE == trackable.getSpottedType()) {
spotted.setOnClickListener(new View.OnClickListener() {
@@ -472,19 +478,19 @@ public class TrackableActivity extends AbstractViewPagerActivity<TrackableActivi
// trackable origin
if (StringUtils.isNotBlank(trackable.getOrigin())) {
- final TextView origin = details.add(R.string.trackable_origin, "");
+ final TextView origin = details.add(R.string.trackable_origin, "").right;
origin.setText(Html.fromHtml(trackable.getOrigin()), TextView.BufferType.SPANNABLE);
addContextMenu(origin);
}
// trackable released
if (trackable.getReleased() != null) {
- addContextMenu(details.add(R.string.trackable_released, Formatter.formatDate(trackable.getReleased().getTime())));
+ addContextMenu(details.add(R.string.trackable_released, Formatter.formatDate(trackable.getReleased().getTime())).right);
}
// trackable distance
if (trackable.getDistance() >= 0) {
- addContextMenu(details.add(R.string.trackable_distance, Units.getDistanceFromKilometers(trackable.getDistance())));
+ addContextMenu(details.add(R.string.trackable_distance, Units.getDistanceFromKilometers(trackable.getDistance())).right);
}
// trackable goal
diff --git a/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java b/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
index ff52fb3..7dd3847 100644
--- a/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
+++ b/main/src/cgeo/geocaching/ui/CacheDetailsCreator.java
@@ -12,6 +12,7 @@ import cgeo.geocaching.location.Units;
import cgeo.geocaching.utils.Formatter;
import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
import org.eclipse.jdt.annotation.NonNull;
import android.annotation.SuppressLint;
@@ -43,18 +44,20 @@ public final class CacheDetailsCreator {
}
/**
- * @param nameId
- * @param value
- * @return the view containing the displayed string (i.e. the right side one from the pair of "label": "value")
+ * Create a "name: value" line.
+ *
+ * @param nameId the resource of the name field
+ * @param value the initial value
+ * @return a pair made of the whole "name: value" line (to be able to hide it for example) and of the value (to update it)
*/
- public TextView add(final int nameId, final CharSequence value) {
+ public ImmutablePair<RelativeLayout, TextView> add(final int nameId, final CharSequence value) {
final RelativeLayout layout = (RelativeLayout) activity.getLayoutInflater().inflate(R.layout.cache_information_item, null, false);
final TextView nameView = ButterKnife.findById(layout, R.id.name);
nameView.setText(res.getString(nameId));
lastValueView = ButterKnife.findById(layout, R.id.value);
lastValueView.setText(value);
parentView.addView(layout);
- return lastValueView;
+ return ImmutablePair.of(layout, lastValueView);
}
public TextView getValueView() {
@@ -192,7 +195,7 @@ public final class CacheDetailsCreator {
if (StringUtils.isEmpty(dateString)) {
return null;
}
- final TextView view = add(cache.isEventCache() ? R.string.cache_event : R.string.cache_hidden, dateString);
+ final TextView view = add(cache.isEventCache() ? R.string.cache_event : R.string.cache_hidden, dateString).right;
view.setId(R.id.date);
return view;
}