diff --git a/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java b/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java index 7c55b4667..a8dcef26e 100644 --- a/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java @@ -45,6 +45,7 @@ import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment.DeleteMarke import de.dennisguse.opentracks.util.ActivityUtils; import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.ListItemUtils; +import de.dennisguse.opentracks.util.MarkerUtils; import de.dennisguse.opentracks.util.PreferencesUtils; /** @@ -159,7 +160,7 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker int latitudeIndex = cursor.getColumnIndex(WaypointsColumns.LATITUDE); int longitudeIndex = cursor.getColumnIndex(WaypointsColumns.LONGITUDE); - int iconId = R.drawable.ic_marker_blue_pushpin; + int iconId = MarkerUtils.ICON_ID; String name = cursor.getString(nameIndex); long time = cursor.getLong(timeIndex); String category = cursor.getString(categoryIndex); diff --git a/src/main/java/de/dennisguse/opentracks/SearchListActivity.java b/src/main/java/de/dennisguse/opentracks/SearchListActivity.java index a9050ad7a..84661f6da 100644 --- a/src/main/java/de/dennisguse/opentracks/SearchListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/SearchListActivity.java @@ -54,6 +54,7 @@ import de.dennisguse.opentracks.stats.TripStatistics; import de.dennisguse.opentracks.util.ActivityUtils; import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.ListItemUtils; +import de.dennisguse.opentracks.util.MarkerUtils; import de.dennisguse.opentracks.util.PreferencesUtils; import de.dennisguse.opentracks.util.StringUtils; 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_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(NAME_FIELD, waypoint.getName()); // Display the marker's track name in the total time field diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java index 4b12d4609..df4d98342 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java @@ -43,6 +43,7 @@ import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.content.Waypoint; import de.dennisguse.opentracks.stats.ExtremityMonitor; import de.dennisguse.opentracks.util.IntentUtils; +import de.dennisguse.opentracks.util.MarkerUtils; import de.dennisguse.opentracks.util.StringUtils; 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.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(); markerHeight = waypointMarker.getIntrinsicHeight(); waypointMarker.setBounds(0, 0, markerWidth, markerHeight); diff --git a/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java index 6b89c09a9..70d826423 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java @@ -44,6 +44,7 @@ import de.dennisguse.opentracks.content.ContentProviderUtils; import de.dennisguse.opentracks.content.Waypoint; import de.dennisguse.opentracks.util.IntentUtils; import de.dennisguse.opentracks.util.ListItemUtils; +import de.dennisguse.opentracks.util.MarkerUtils; import de.dennisguse.opentracks.util.StringUtils; 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 ContentProviderUtils contentProviderUtils; private Handler handler; - private ImageView photo; + private ImageView photoView; private ImageView textGradient; private LinearLayout waypointInfo; private Waypoint waypoint; @@ -116,11 +117,11 @@ public class MarkerDetailFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 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); waypointInfo = view.findViewById(R.id.marker_detail_waypoint_info); - photo.setOnClickListener(new View.OnClickListener() { + photoView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { handler.removeCallbacks(hideText); @@ -153,11 +154,8 @@ public class MarkerDetailFragment extends Fragment { @Override public void setMenuVisibility(boolean menuVisible) { super.setMenuVisibility(menuVisible); - /* - * View pager caches the neighboring fragments in the resumed state. If - * becoming visible from the resumed state, update the UI to display the - * text above the image. - */ + // View pager caches the neighboring fragments in the resumed state. + // If becoming visible from the resumed state, update the UI to display the text above the image. if (isResumed()) { if (menuVisible) { updateUi(); @@ -211,19 +209,14 @@ public class MarkerDetailFragment extends Fragment { } } - /** - * Updates the UI. - */ private void updateUi() { boolean hasPhoto = waypoint.hasPhoto(); - photo.setVisibility(hasPhoto ? View.VISIBLE : View.GONE); - textGradient.setVisibility(hasPhoto ? View.VISIBLE : View.GONE); - waypointInfo.setVisibility(View.VISIBLE); - if (hasPhoto) { handler.removeCallbacks(hideText); - photo.setImageURI(waypoint.getPhotoURI()); + photoView.setImageURI(waypoint.getPhotoURI()); handler.postDelayed(hideText, HIDE_TEXT_DELAY); + } else { + photoView.setImageResource(MarkerUtils.ICON_ID); } setName(R.id.marker_detail_waypoint_name, hasPhoto); @@ -235,7 +228,6 @@ public class MarkerDetailFragment extends Fragment { ListItemUtils.setTextView(getActivity(), description, waypoint.getDescription(), hasPhoto); setLocation(R.id.marker_detail_waypoint_location, hasPhoto); - } private void setName(int resId, boolean addShadow) { diff --git a/src/main/java/de/dennisguse/opentracks/util/MarkerUtils.java b/src/main/java/de/dennisguse/opentracks/util/MarkerUtils.java new file mode 100644 index 000000000..0bf2f9a8e --- /dev/null +++ b/src/main/java/de/dennisguse/opentracks/util/MarkerUtils.java @@ -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); + } +}