MarkerDetailFragment now shows the blue pin as default image.

This commit is contained in:
Dennis Guse
2019-12-03 07:30:18 +01:00
parent 8e2598e93b
commit 76f9f5fc82
5 changed files with 35 additions and 20 deletions
@@ -45,6 +45,7 @@ import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment.DeleteMarke
import de.dennisguse.opentracks.util.ActivityUtils; import de.dennisguse.opentracks.util.ActivityUtils;
import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.ListItemUtils; import de.dennisguse.opentracks.util.ListItemUtils;
import de.dennisguse.opentracks.util.MarkerUtils;
import de.dennisguse.opentracks.util.PreferencesUtils; import de.dennisguse.opentracks.util.PreferencesUtils;
/** /**
@@ -159,7 +160,7 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker
int latitudeIndex = cursor.getColumnIndex(WaypointsColumns.LATITUDE); int latitudeIndex = cursor.getColumnIndex(WaypointsColumns.LATITUDE);
int longitudeIndex = cursor.getColumnIndex(WaypointsColumns.LONGITUDE); int longitudeIndex = cursor.getColumnIndex(WaypointsColumns.LONGITUDE);
int iconId = R.drawable.ic_marker_blue_pushpin; int iconId = MarkerUtils.ICON_ID;
String name = cursor.getString(nameIndex); String name = cursor.getString(nameIndex);
long time = cursor.getLong(timeIndex); long time = cursor.getLong(timeIndex);
String category = cursor.getString(categoryIndex); String category = cursor.getString(categoryIndex);
@@ -54,6 +54,7 @@ import de.dennisguse.opentracks.stats.TripStatistics;
import de.dennisguse.opentracks.util.ActivityUtils; import de.dennisguse.opentracks.util.ActivityUtils;
import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.ListItemUtils; import de.dennisguse.opentracks.util.ListItemUtils;
import de.dennisguse.opentracks.util.MarkerUtils;
import de.dennisguse.opentracks.util.PreferencesUtils; import de.dennisguse.opentracks.util.PreferencesUtils;
import de.dennisguse.opentracks.util.StringUtils; import de.dennisguse.opentracks.util.StringUtils;
import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.util.TrackIconUtils;
@@ -394,7 +395,7 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa
resultMap.put(IS_RECORDING_FIELD, false); resultMap.put(IS_RECORDING_FIELD, false);
resultMap.put(IS_PAUSED_FIELD, true); resultMap.put(IS_PAUSED_FIELD, true);
resultMap.put(ICON_ID_FIELD, R.drawable.ic_marker_blue_pushpin); resultMap.put(ICON_ID_FIELD, MarkerUtils.ICON_ID);
resultMap.put(ICON_CONTENT_DESCRIPTION_ID_FIELD, R.string.image_marker); resultMap.put(ICON_CONTENT_DESCRIPTION_ID_FIELD, R.string.image_marker);
resultMap.put(NAME_FIELD, waypoint.getName()); resultMap.put(NAME_FIELD, waypoint.getName());
// Display the marker's track name in the total time field // Display the marker's track name in the total time field
@@ -43,6 +43,7 @@ import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.Waypoint; import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.stats.ExtremityMonitor; import de.dennisguse.opentracks.stats.ExtremityMonitor;
import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.MarkerUtils;
import de.dennisguse.opentracks.util.StringUtils; import de.dennisguse.opentracks.util.StringUtils;
import de.dennisguse.opentracks.util.UnitConversions; import de.dennisguse.opentracks.util.UnitConversions;
@@ -263,7 +264,7 @@ public class ChartView extends View {
pointer = context.getResources().getDrawable(R.drawable.ic_logo_color_24dp); pointer = context.getResources().getDrawable(R.drawable.ic_logo_color_24dp);
pointer.setBounds(0, 0, pointer.getIntrinsicWidth(), pointer.getIntrinsicHeight()); pointer.setBounds(0, 0, pointer.getIntrinsicWidth(), pointer.getIntrinsicHeight());
Drawable waypointMarker = getResources().getDrawable(R.drawable.ic_marker_blue_pushpin); Drawable waypointMarker = MarkerUtils.getDefaultPhoto(context);
markerWidth = waypointMarker.getIntrinsicWidth(); markerWidth = waypointMarker.getIntrinsicWidth();
markerHeight = waypointMarker.getIntrinsicHeight(); markerHeight = waypointMarker.getIntrinsicHeight();
waypointMarker.setBounds(0, 0, markerWidth, markerHeight); waypointMarker.setBounds(0, 0, markerWidth, markerHeight);
@@ -44,6 +44,7 @@ import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Waypoint; import de.dennisguse.opentracks.content.Waypoint;
import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.ListItemUtils; import de.dennisguse.opentracks.util.ListItemUtils;
import de.dennisguse.opentracks.util.MarkerUtils;
import de.dennisguse.opentracks.util.StringUtils; import de.dennisguse.opentracks.util.StringUtils;
import de.dennisguse.opentracks.util.UnitConversions; import de.dennisguse.opentracks.util.UnitConversions;
@@ -59,7 +60,7 @@ public class MarkerDetailFragment extends Fragment {
private static final long HIDE_TEXT_DELAY = 4 * UnitConversions.ONE_SECOND; private static final long HIDE_TEXT_DELAY = 4 * UnitConversions.ONE_SECOND;
private ContentProviderUtils contentProviderUtils; private ContentProviderUtils contentProviderUtils;
private Handler handler; private Handler handler;
private ImageView photo; private ImageView photoView;
private ImageView textGradient; private ImageView textGradient;
private LinearLayout waypointInfo; private LinearLayout waypointInfo;
private Waypoint waypoint; private Waypoint waypoint;
@@ -116,11 +117,11 @@ public class MarkerDetailFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.marker_detail_fragment, container, false); View view = inflater.inflate(R.layout.marker_detail_fragment, container, false);
photo = view.findViewById(R.id.marker_detail_waypoint_photo); photoView = view.findViewById(R.id.marker_detail_waypoint_photo);
textGradient = view.findViewById(R.id.marker_detail_waypoint_text_gradient); textGradient = view.findViewById(R.id.marker_detail_waypoint_text_gradient);
waypointInfo = view.findViewById(R.id.marker_detail_waypoint_info); waypointInfo = view.findViewById(R.id.marker_detail_waypoint_info);
photo.setOnClickListener(new View.OnClickListener() { photoView.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
handler.removeCallbacks(hideText); handler.removeCallbacks(hideText);
@@ -153,11 +154,8 @@ public class MarkerDetailFragment extends Fragment {
@Override @Override
public void setMenuVisibility(boolean menuVisible) { public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible); super.setMenuVisibility(menuVisible);
/* // View pager caches the neighboring fragments in the resumed state.
* View pager caches the neighboring fragments in the resumed state. If // If becoming visible from the resumed state, update the UI to display the text above the image.
* becoming visible from the resumed state, update the UI to display the
* text above the image.
*/
if (isResumed()) { if (isResumed()) {
if (menuVisible) { if (menuVisible) {
updateUi(); updateUi();
@@ -211,19 +209,14 @@ public class MarkerDetailFragment extends Fragment {
} }
} }
/**
* Updates the UI.
*/
private void updateUi() { private void updateUi() {
boolean hasPhoto = waypoint.hasPhoto(); boolean hasPhoto = waypoint.hasPhoto();
photo.setVisibility(hasPhoto ? View.VISIBLE : View.GONE);
textGradient.setVisibility(hasPhoto ? View.VISIBLE : View.GONE);
waypointInfo.setVisibility(View.VISIBLE);
if (hasPhoto) { if (hasPhoto) {
handler.removeCallbacks(hideText); handler.removeCallbacks(hideText);
photo.setImageURI(waypoint.getPhotoURI()); photoView.setImageURI(waypoint.getPhotoURI());
handler.postDelayed(hideText, HIDE_TEXT_DELAY); handler.postDelayed(hideText, HIDE_TEXT_DELAY);
} else {
photoView.setImageResource(MarkerUtils.ICON_ID);
} }
setName(R.id.marker_detail_waypoint_name, hasPhoto); setName(R.id.marker_detail_waypoint_name, hasPhoto);
@@ -235,7 +228,6 @@ public class MarkerDetailFragment extends Fragment {
ListItemUtils.setTextView(getActivity(), description, waypoint.getDescription(), hasPhoto); ListItemUtils.setTextView(getActivity(), description, waypoint.getDescription(), hasPhoto);
setLocation(R.id.marker_detail_waypoint_location, hasPhoto); setLocation(R.id.marker_detail_waypoint_location, hasPhoto);
} }
private void setName(int resId, boolean addShadow) { private void setName(int resId, boolean addShadow) {
@@ -0,0 +1,20 @@
package de.dennisguse.opentracks.util;
import android.content.Context;
import android.graphics.drawable.Drawable;
import androidx.annotation.NonNull;
import de.dennisguse.opentracks.R;
public class MarkerUtils {
public static final int ICON_ID = R.drawable.ic_marker_blue_pushpin;
private MarkerUtils() {
}
public static Drawable getDefaultPhoto(@NonNull Context context) {
return context.getResources().getDrawable(ICON_ID);
}
}