forked from upstream-mirrors/OpenTracks
Add page viewer for marker detail page
This commit is contained in:
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Copyright 2013 Google Inc.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_width="match_parent" >
|
||||||
|
<android.support.v4.view.ViewPager
|
||||||
|
android:id="@+id/maker_detail_activity_view_pager"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_width="match_parent" />
|
||||||
|
</LinearLayout>
|
||||||
+11
-9
@@ -21,32 +21,34 @@ limitations under the License.
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="8dp" >
|
android:padding="8dp" >
|
||||||
<TextView
|
|
||||||
android:id="@+id/marker_detail_name"
|
|
||||||
style="@style/TextLarge" />
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/marker_detail_waypoint_section"
|
android:id="@+id/marker_detail_waypoint_section"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:orientation="vertical" >
|
android:orientation="vertical" >
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/marker_detail_waypoint_photo"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:scaleType="centerInside" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/marker_detail_waypoint_name"
|
||||||
|
style="@style/TextLarge.WithTopMargin" />
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/marker_detail_waypoint_marker_type"
|
android:id="@+id/marker_detail_waypoint_marker_type"
|
||||||
style="@style/TextLarge.WithTopMargin" />
|
style="@style/TextLarge.WithTopMargin" />
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/marker_detail_waypoint_description"
|
android:id="@+id/marker_detail_waypoint_description"
|
||||||
style="@style/TextLarge.WithTopMargin" />
|
style="@style/TextLarge.WithTopMargin" />
|
||||||
<ImageView
|
|
||||||
android:id="@+id/marker_detail_waypoint_photo"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:scaleType="centerInside" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/marker_detail_statistics_section"
|
android:id="@+id/marker_detail_statistics_section"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:orientation="vertical" >
|
android:orientation="vertical" >
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/marker_detail_statistics_name"
|
||||||
|
style="@style/TextLarge" />
|
||||||
<TextView
|
<TextView
|
||||||
android:text="@string/marker_detail_statistics_title"
|
android:text="@string/marker_detail_statistics_title"
|
||||||
style="@style/TextLarge.WithTopMargin" />
|
style="@style/TextLarge.WithTopMargin" />
|
||||||
@@ -17,27 +17,22 @@
|
|||||||
package com.google.android.apps.mytracks;
|
package com.google.android.apps.mytracks;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment;
|
|
||||||
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
|
import com.google.android.apps.mytracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
|
||||||
|
import com.google.android.apps.mytracks.fragments.MarkerDetailFragment;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
import com.google.android.apps.mytracks.util.PhotoUtils;
|
|
||||||
import com.google.android.apps.mytracks.util.StatsUtils;
|
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Bitmap;
|
import android.database.Cursor;
|
||||||
import android.net.Uri;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.app.FragmentManager;
|
||||||
|
import android.support.v4.app.FragmentStatePagerAdapter;
|
||||||
|
import android.support.v4.view.ViewPager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Display;
|
|
||||||
import android.view.Menu;
|
import java.util.ArrayList;
|
||||||
import android.view.MenuItem;
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An activity to display marker detail info.
|
* An activity to display marker detail info.
|
||||||
@@ -49,105 +44,59 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity implements De
|
|||||||
public static final String EXTRA_MARKER_ID = "marker_id";
|
public static final String EXTRA_MARKER_ID = "marker_id";
|
||||||
private static final String TAG = MarkerDetailActivity.class.getSimpleName();
|
private static final String TAG = MarkerDetailActivity.class.getSimpleName();
|
||||||
|
|
||||||
private MyTracksProviderUtils myTracksProviderUtils;
|
|
||||||
private long markerId;
|
|
||||||
private Waypoint waypoint;
|
private Waypoint waypoint;
|
||||||
|
private ArrayList<Long> markerIds;
|
||||||
private TextView name;
|
|
||||||
private View waypointSection;
|
|
||||||
private View statisticsSection;
|
|
||||||
private Bitmap bitmap;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle bundle) {
|
protected void onCreate(Bundle bundle) {
|
||||||
super.onCreate(bundle);
|
super.onCreate(bundle);
|
||||||
|
|
||||||
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
|
long markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L);
|
||||||
markerId = getIntent().getLongExtra(EXTRA_MARKER_ID, -1L);
|
|
||||||
if (markerId == -1L) {
|
if (markerId == -1L) {
|
||||||
Log.d(TAG, "invalid marker id");
|
Log.d(TAG, "invalid marker id");
|
||||||
finish();
|
finish();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set waypoint, needed in onCreateOptionsMenu
|
MyTracksProviderUtils myTracksProviderUtils = MyTracksProviderUtils.Factory.get(this);
|
||||||
waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
||||||
if (waypoint == null) {
|
|
||||||
Log.d(TAG, "waypoint is null");
|
markerIds = new ArrayList<Long>();
|
||||||
finish();
|
int markerIndex = -1;
|
||||||
return;
|
Cursor cursor = null;
|
||||||
|
|
||||||
|
try {
|
||||||
|
cursor = myTracksProviderUtils.getWaypointCursor(waypoint.getTrackId(), -1L, -1);
|
||||||
|
if (cursor != null && cursor.moveToFirst()) {
|
||||||
|
/*
|
||||||
|
* Yes, this will skip the first waypoint and that is intentional as the
|
||||||
|
* first waypoint holds the stats for the track.
|
||||||
|
*/
|
||||||
|
while (cursor.moveToNext()) {
|
||||||
|
Waypoint current = myTracksProviderUtils.createWaypoint(cursor);
|
||||||
|
|
||||||
|
markerIds.add(current.getId());
|
||||||
|
if (current.getId() == markerId) {
|
||||||
|
markerIndex = markerIds.size() - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (cursor != null) {
|
||||||
|
cursor.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
name = (TextView) findViewById(R.id.marker_detail_name);
|
ViewPager viewPager = (ViewPager) findViewById(R.id.maker_detail_activity_view_pager);
|
||||||
waypointSection = findViewById(R.id.marker_detail_waypoint_section);
|
viewPager.setAdapter(new MarkerDetailPagerAdapter(getSupportFragmentManager()));
|
||||||
statisticsSection = findViewById(R.id.marker_detail_statistics_section);
|
if (markerIndex != -1) {
|
||||||
|
viewPager.setCurrentItem(markerIndex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getLayoutResId() {
|
protected int getLayoutResId() {
|
||||||
return R.layout.marker_detail;
|
return R.layout.marker_detail_activity;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
|
|
||||||
// Update waypoint in case it changed from an edit
|
|
||||||
waypoint = myTracksProviderUtils.getWaypoint(markerId);
|
|
||||||
if (waypoint == null) {
|
|
||||||
Log.d(TAG, "waypoint is null");
|
|
||||||
finish();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
name.setText(getString(R.string.generic_name_line, waypoint.getName()));
|
|
||||||
if (waypoint.getType() == WaypointType.WAYPOINT) {
|
|
||||||
waypointSection.setVisibility(View.VISIBLE);
|
|
||||||
statisticsSection.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
TextView markerType = (TextView) findViewById(R.id.marker_detail_waypoint_marker_type);
|
|
||||||
markerType.setText(
|
|
||||||
getString(R.string.marker_detail_waypoint_marker_type, waypoint.getCategory()));
|
|
||||||
TextView description = (TextView) findViewById(R.id.marker_detail_waypoint_description);
|
|
||||||
description.setText(getString(R.string.generic_description_line, waypoint.getDescription()));
|
|
||||||
ImageView imageView = (ImageView) findViewById(R.id.marker_detail_waypoint_photo);
|
|
||||||
String photoUrl = waypoint.getPhotoUrl();
|
|
||||||
if (photoUrl == null || photoUrl.equals("")) {
|
|
||||||
imageView.setVisibility(View.GONE);
|
|
||||||
} else {
|
|
||||||
imageView.setVisibility(View.VISIBLE);
|
|
||||||
Display defaultDisplay = getWindowManager().getDefaultDisplay();
|
|
||||||
int displayWidth = defaultDisplay.getWidth();
|
|
||||||
int displayHeight = defaultDisplay.getHeight();
|
|
||||||
bitmap = PhotoUtils.setImageVew(
|
|
||||||
imageView, Uri.parse(photoUrl), displayWidth, displayHeight, true);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
waypointSection.setVisibility(View.GONE);
|
|
||||||
statisticsSection.setVisibility(View.VISIBLE);
|
|
||||||
StatsUtils.setTripStatisticsValues(this, waypoint.getTripStatistics());
|
|
||||||
StatsUtils.setLocationValues(this, waypoint.getLocation(), false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPause() {
|
|
||||||
super.onPause();
|
|
||||||
if (bitmap != null) {
|
|
||||||
bitmap.recycle();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
|
||||||
getMenuInflater().inflate(R.menu.marker_detail, menu);
|
|
||||||
|
|
||||||
Track track = myTracksProviderUtils.getTrack(waypoint.getTrackId());
|
|
||||||
boolean isSharedWithMe = track != null ? track.isSharedWithMe() : true;
|
|
||||||
|
|
||||||
menu.findItem(R.id.marker_detail_edit).setVisible(!isSharedWithMe);
|
|
||||||
menu.findItem(R.id.marker_detail_delete).setVisible(!isSharedWithMe);
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -158,29 +107,6 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity implements De
|
|||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
Intent intent;
|
|
||||||
switch (item.getItemId()) {
|
|
||||||
case R.id.marker_detail_show_on_map:
|
|
||||||
intent = IntentUtils.newIntent(this, TrackDetailActivity.class)
|
|
||||||
.putExtra(TrackDetailActivity.EXTRA_MARKER_ID, markerId);
|
|
||||||
startActivity(intent);
|
|
||||||
return true;
|
|
||||||
case R.id.marker_detail_edit:
|
|
||||||
intent = IntentUtils.newIntent(this, MarkerEditActivity.class)
|
|
||||||
.putExtra(MarkerEditActivity.EXTRA_MARKER_ID, markerId);
|
|
||||||
startActivity(intent);
|
|
||||||
return true;
|
|
||||||
case R.id.marker_detail_delete:
|
|
||||||
DeleteMarkerDialogFragment.newInstance(new long[] { markerId })
|
|
||||||
.show(getSupportFragmentManager(), DeleteMarkerDialogFragment.DELETE_MARKER_DIALOG_TAG);
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return super.onOptionsItemSelected(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDeleteMarkerDone() {
|
public void onDeleteMarkerDone() {
|
||||||
runOnUiThread(new Runnable() {
|
runOnUiThread(new Runnable() {
|
||||||
@@ -190,4 +116,26 @@ public class MarkerDetailActivity extends AbstractMyTracksActivity implements De
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* Marker detail pager adapter.
|
||||||
|
*
|
||||||
|
* @author Jimmy Shih
|
||||||
|
*/
|
||||||
|
private class MarkerDetailPagerAdapter extends FragmentStatePagerAdapter {
|
||||||
|
|
||||||
|
public MarkerDetailPagerAdapter(FragmentManager fragmentManager) {
|
||||||
|
super(fragmentManager);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Fragment getItem(int position) {
|
||||||
|
return MarkerDetailFragment.newInstance(markerIds.get(position));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getCount() {
|
||||||
|
return markerIds.size();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,209 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2013 Google Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||||||
|
* use this file except in compliance with the License. You may obtain a copy of
|
||||||
|
* the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
* License for the specific language governing permissions and limitations under
|
||||||
|
* the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.google.android.apps.mytracks.fragments;
|
||||||
|
|
||||||
|
import com.google.android.apps.mytracks.MarkerEditActivity;
|
||||||
|
import com.google.android.apps.mytracks.TrackDetailActivity;
|
||||||
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
|
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
||||||
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.PhotoUtils;
|
||||||
|
import com.google.android.apps.mytracks.util.StatsUtils;
|
||||||
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.graphics.Bitmap;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.support.v4.app.Fragment;
|
||||||
|
import android.support.v4.app.FragmentActivity;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.Display;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A fragment to show marker details.
|
||||||
|
*
|
||||||
|
* @author Jimmy Shih
|
||||||
|
*/
|
||||||
|
public class MarkerDetailFragment extends Fragment {
|
||||||
|
|
||||||
|
private static final String TAG = MarkerDetailFragment.class.getSimpleName();
|
||||||
|
private static final String KEY_MARKER_ID = "markerId";
|
||||||
|
|
||||||
|
public static MarkerDetailFragment newInstance(long markerId) {
|
||||||
|
MarkerDetailFragment fragment = new MarkerDetailFragment();
|
||||||
|
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
bundle.putLong(KEY_MARKER_ID, markerId);
|
||||||
|
fragment.setArguments(bundle);
|
||||||
|
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
private MyTracksProviderUtils myTracksProviderUtils;
|
||||||
|
private Waypoint waypoint;
|
||||||
|
private Bitmap bitmap;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
long markerId = getArguments().getLong(KEY_MARKER_ID);
|
||||||
|
if (markerId == -1L) {
|
||||||
|
Log.d(TAG, "invalid marker id");
|
||||||
|
getFragmentManager().popBackStack();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
myTracksProviderUtils = MyTracksProviderUtils.Factory.get(getActivity());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(
|
||||||
|
LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
|
setHasOptionsMenu(true);
|
||||||
|
return inflater.inflate(R.layout.marker_detail_fragment, container, false);
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
|
||||||
|
// Need to update the waypoint in case returning after an edit
|
||||||
|
updateWaypoint(true);
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
if (bitmap != null) {
|
||||||
|
bitmap.recycle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
||||||
|
inflater.inflate(R.menu.marker_detail, menu);
|
||||||
|
|
||||||
|
updateWaypoint(false);
|
||||||
|
|
||||||
|
Track track = myTracksProviderUtils.getTrack(waypoint.getTrackId());
|
||||||
|
boolean isSharedWithMe = track != null ? track.isSharedWithMe() : true;
|
||||||
|
|
||||||
|
menu.findItem(R.id.marker_detail_edit).setVisible(!isSharedWithMe);
|
||||||
|
menu.findItem(R.id.marker_detail_delete).setVisible(!isSharedWithMe);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
long markerId = getArguments().getLong(KEY_MARKER_ID);
|
||||||
|
FragmentActivity fragmentActivity = getActivity();
|
||||||
|
Intent intent;
|
||||||
|
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case R.id.marker_detail_show_on_map:
|
||||||
|
intent = IntentUtils.newIntent(fragmentActivity, TrackDetailActivity.class)
|
||||||
|
.putExtra(TrackDetailActivity.EXTRA_MARKER_ID, markerId);
|
||||||
|
startActivity(intent);
|
||||||
|
return true;
|
||||||
|
case R.id.marker_detail_edit:
|
||||||
|
intent = IntentUtils.newIntent(fragmentActivity, MarkerEditActivity.class)
|
||||||
|
.putExtra(MarkerEditActivity.EXTRA_MARKER_ID, markerId);
|
||||||
|
startActivity(intent);
|
||||||
|
return true;
|
||||||
|
case R.id.marker_detail_delete:
|
||||||
|
DeleteMarkerDialogFragment.newInstance(new long[] { markerId })
|
||||||
|
.show(getChildFragmentManager(), DeleteMarkerDialogFragment.DELETE_MARKER_DIALOG_TAG);
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the waypoint.
|
||||||
|
*
|
||||||
|
* @param refresh true to always update
|
||||||
|
*/
|
||||||
|
private void updateWaypoint(boolean refresh) {
|
||||||
|
if (refresh || waypoint == null) {
|
||||||
|
waypoint = myTracksProviderUtils.getWaypoint(getArguments().getLong(KEY_MARKER_ID));
|
||||||
|
if (waypoint == null) {
|
||||||
|
Log.d(TAG, "waypoint is null");
|
||||||
|
getFragmentManager().popBackStack();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the UI.
|
||||||
|
*/
|
||||||
|
private void update() {
|
||||||
|
View waypointSection = getView().findViewById(R.id.marker_detail_waypoint_section);
|
||||||
|
View statisticsSection = getView().findViewById(R.id.marker_detail_statistics_section);
|
||||||
|
|
||||||
|
if (waypoint.getType() == WaypointType.WAYPOINT) {
|
||||||
|
waypointSection.setVisibility(View.VISIBLE);
|
||||||
|
statisticsSection.setVisibility(View.GONE);
|
||||||
|
|
||||||
|
ImageView imageView = (ImageView) getView().findViewById(R.id.marker_detail_waypoint_photo);
|
||||||
|
String photoUrl = waypoint.getPhotoUrl();
|
||||||
|
if (photoUrl == null || photoUrl.equals("")) {
|
||||||
|
imageView.setVisibility(View.GONE);
|
||||||
|
} else {
|
||||||
|
imageView.setVisibility(View.VISIBLE);
|
||||||
|
Display defaultDisplay = getActivity().getWindowManager().getDefaultDisplay();
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
int displayWidth = defaultDisplay.getWidth();
|
||||||
|
@SuppressWarnings("deprecation")
|
||||||
|
int displayHeight = defaultDisplay.getHeight();
|
||||||
|
bitmap = PhotoUtils.setImageVew(
|
||||||
|
imageView, Uri.parse(photoUrl), displayWidth, displayHeight, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
TextView name = (TextView) getView().findViewById(R.id.marker_detail_waypoint_name);
|
||||||
|
name.setText(getString(R.string.generic_name_line, waypoint.getName()));
|
||||||
|
|
||||||
|
TextView markerType = (TextView) getView()
|
||||||
|
.findViewById(R.id.marker_detail_waypoint_marker_type);
|
||||||
|
markerType.setText(
|
||||||
|
getString(R.string.marker_detail_waypoint_marker_type, waypoint.getCategory()));
|
||||||
|
|
||||||
|
TextView description = (TextView) getView()
|
||||||
|
.findViewById(R.id.marker_detail_waypoint_description);
|
||||||
|
description.setText(getString(R.string.generic_description_line, waypoint.getDescription()));
|
||||||
|
} else {
|
||||||
|
waypointSection.setVisibility(View.GONE);
|
||||||
|
statisticsSection.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
TextView name = (TextView) getView().findViewById(R.id.marker_detail_statistics_name);
|
||||||
|
name.setText(getString(R.string.generic_name_line, waypoint.getName()));
|
||||||
|
|
||||||
|
StatsUtils.setTripStatisticsValues(getActivity(), waypoint.getTripStatistics());
|
||||||
|
StatsUtils.setLocationValues(getActivity(), waypoint.getLocation(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user