forked from upstream-mirrors/OpenTracks
Update title in MarkerDetailActivity when viewpager changes.
This commit is contained in:
@@ -21,6 +21,7 @@ import android.os.Bundle;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||||
@@ -36,7 +37,7 @@ import de.dennisguse.opentracks.fragments.MarkerDetailFragment;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* An activity to display marker detail info.
|
* An activity to display marker detail info.
|
||||||
*
|
* <p>
|
||||||
* Allows to swipe to the next and previous marker.
|
* Allows to swipe to the next and previous marker.
|
||||||
*
|
*
|
||||||
* @author Leif Hendrik Wilden
|
* @author Leif Hendrik Wilden
|
||||||
@@ -83,11 +84,25 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ViewPager viewPager = findViewById(R.id.maker_detail_activity_view_pager);
|
final ViewPager viewPager = findViewById(R.id.maker_detail_activity_view_pager);
|
||||||
viewPager.setAdapter(new MarkerDetailPagerAdapter(getSupportFragmentManager()));
|
final MarkerDetailPagerAdapter markerAdapter = new MarkerDetailPagerAdapter(getSupportFragmentManager());
|
||||||
if (markerIndex != -1) {
|
viewPager.setAdapter(markerAdapter);
|
||||||
viewPager.setCurrentItem(markerIndex);
|
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||||
}
|
|
||||||
|
@Override
|
||||||
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPageSelected(int position) {
|
||||||
|
setTitle(markerAdapter.getPageTitle(position));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPageScrollStateChanged(int state) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
viewPager.setCurrentItem(markerIndex == -1 ? 0 : markerIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -119,8 +134,13 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark
|
|||||||
@Override
|
@Override
|
||||||
@NonNull
|
@NonNull
|
||||||
public Fragment getItem(int position) {
|
public Fragment getItem(int position) {
|
||||||
String title = getString(R.string.marker_title, position + 1, getCount());
|
return MarkerDetailFragment.newInstance(markerIds.get(position));
|
||||||
return MarkerDetailFragment.newInstance(markerIds.get(position), title);
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public CharSequence getPageTitle(int position) {
|
||||||
|
return getString(R.string.marker_title, position + 1, getCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ import de.dennisguse.opentracks.util.IntentUtils;
|
|||||||
import de.dennisguse.opentracks.util.ListItemUtils;
|
import de.dennisguse.opentracks.util.ListItemUtils;
|
||||||
import de.dennisguse.opentracks.util.StatsUtils;
|
import de.dennisguse.opentracks.util.StatsUtils;
|
||||||
import de.dennisguse.opentracks.util.StringUtils;
|
import de.dennisguse.opentracks.util.StringUtils;
|
||||||
|
import de.dennisguse.opentracks.util.UnitConversions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A fragment to show marker details.
|
* A fragment to show marker details.
|
||||||
@@ -58,8 +59,7 @@ public class MarkerDetailFragment extends Fragment {
|
|||||||
|
|
||||||
private static final String TAG = MarkerDetailFragment.class.getSimpleName();
|
private static final String TAG = MarkerDetailFragment.class.getSimpleName();
|
||||||
private static final String KEY_MARKER_ID = "markerId";
|
private static final String KEY_MARKER_ID = "markerId";
|
||||||
private static final String KEY_TITLE = "title";
|
private static final long HIDE_TEXT_DELAY = 4 * UnitConversions.ONE_SECOND;
|
||||||
private static final long HIDE_TEXT_DELAY = 4000L; // 4 seconds
|
|
||||||
private ContentProviderUtils contentProviderUtils;
|
private ContentProviderUtils contentProviderUtils;
|
||||||
private Handler handler;
|
private Handler handler;
|
||||||
private ImageView photo;
|
private ImageView photo;
|
||||||
@@ -91,10 +91,9 @@ public class MarkerDetailFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public static MarkerDetailFragment newInstance(long markerId, String title) {
|
public static MarkerDetailFragment newInstance(long markerId) {
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putLong(KEY_MARKER_ID, markerId);
|
bundle.putLong(KEY_MARKER_ID, markerId);
|
||||||
bundle.putString(KEY_TITLE, title);
|
|
||||||
|
|
||||||
MarkerDetailFragment fragment = new MarkerDetailFragment();
|
MarkerDetailFragment fragment = new MarkerDetailFragment();
|
||||||
fragment.setArguments(bundle);
|
fragment.setArguments(bundle);
|
||||||
@@ -120,8 +119,6 @@ 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);
|
||||||
|
|
||||||
getActivity().setTitle(getArguments().getString(KEY_TITLE));
|
|
||||||
|
|
||||||
photo = view.findViewById(R.id.marker_detail_waypoint_photo);
|
photo = 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);
|
||||||
|
|||||||
@@ -23,11 +23,11 @@ package de.dennisguse.opentracks.util;
|
|||||||
public class UnitConversions {
|
public class UnitConversions {
|
||||||
|
|
||||||
// multiplication factor to convert seconds to milliseconds
|
// multiplication factor to convert seconds to milliseconds
|
||||||
public static final double S_TO_MS = 1000.0;
|
public static final long S_TO_MS = 1000;
|
||||||
|
|
||||||
// Time
|
// Time
|
||||||
// 1 second in milliseconds
|
// 1 second in milliseconds
|
||||||
public static final long ONE_SECOND = (long) UnitConversions.S_TO_MS;
|
public static final long ONE_SECOND = UnitConversions.S_TO_MS;
|
||||||
// multiplication factor to convert milliseconds to seconds
|
// multiplication factor to convert milliseconds to seconds
|
||||||
public static final double MS_TO_S = 1 / S_TO_MS;
|
public static final double MS_TO_S = 1 / S_TO_MS;
|
||||||
// multiplication factor to convert minutes to seconds
|
// multiplication factor to convert minutes to seconds
|
||||||
|
|||||||
Reference in New Issue
Block a user