Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
bdb229bc56
5 changed files with 203 additions and 10 deletions
|
@ -46,6 +46,14 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"/>
|
android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/RecentsFragment"
|
||||||
|
android:name="net.osmand.plus.dashboard.DashRecentsFragment"
|
||||||
|
android:layout_marginTop="@dimen/dashCardMargin"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/FavoritesFragment"
|
android:id="@+id/FavoritesFragment"
|
||||||
android:name="net.osmand.plus.dashboard.DashFavoritesFragment"
|
android:name="net.osmand.plus.dashboard.DashFavoritesFragment"
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
||||||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||||
-->
|
-->
|
||||||
|
<string name="recents">RECENTS</string>
|
||||||
<string name="selected_tracks">Selected</string>
|
<string name="selected_tracks">Selected</string>
|
||||||
<string name="turn_off_all">Turn_off_all</string>
|
<string name="turn_off_all">Turn_off_all</string>
|
||||||
<string name="showed_on_map">Showed on map</string>
|
<string name="showed_on_map">Showed on map</string>
|
||||||
|
@ -49,7 +50,6 @@
|
||||||
<string name="tracks">Tracks</string>
|
<string name="tracks">Tracks</string>
|
||||||
<string name="my_location">My location</string>
|
<string name="my_location">My location</string>
|
||||||
<string name="osm_editing_manage">Manage</string>
|
<string name="osm_editing_manage">Manage</string>
|
||||||
<string name="recents">RECENTS</string>
|
|
||||||
<string name="navigation_over_track">Start navigation over track?</string>
|
<string name="navigation_over_track">Start navigation over track?</string>
|
||||||
<string name="avoid_roads_msg">You can trigger an alternative route by selecting roads to avoid</string>
|
<string name="avoid_roads_msg">You can trigger an alternative route by selecting roads to avoid</string>
|
||||||
<string name="rendering_value__name">Default</string>
|
<string name="rendering_value__name">Default</string>
|
||||||
|
|
|
@ -136,7 +136,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
asyncLoader = new LoadGpxTask();
|
asyncLoader = new LoadGpxTask();
|
||||||
asyncLoader.execute(getActivity());
|
asyncLoader.execute(getActivity());
|
||||||
} else {
|
} else {
|
||||||
allGpxAdapter.addSelected();
|
allGpxAdapter.refreshSelected();
|
||||||
allGpxAdapter.notifyDataSetChanged();;
|
allGpxAdapter.notifyDataSetChanged();;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -444,6 +444,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
||||||
runSelection(false);
|
runSelection(false);
|
||||||
actionMode.finish();
|
actionMode.finish();
|
||||||
|
allGpxAdapter.refreshSelected();
|
||||||
allGpxAdapter.notifyDataSetChanged();
|
allGpxAdapter.notifyDataSetChanged();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -619,7 +620,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
for (GpxInfo v : result) {
|
for (GpxInfo v : result) {
|
||||||
allGpxAdapter.addLocalIndexInfo(v);
|
allGpxAdapter.addLocalIndexInfo(v);
|
||||||
}
|
}
|
||||||
allGpxAdapter.addSelected();
|
allGpxAdapter.refreshSelected();
|
||||||
allGpxAdapter.notifyDataSetChanged();
|
allGpxAdapter.notifyDataSetChanged();
|
||||||
onPostExecute(result);
|
onPostExecute(result);
|
||||||
}
|
}
|
||||||
|
@ -628,7 +629,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(List<GpxInfo> result) {
|
protected void onPostExecute(List<GpxInfo> result) {
|
||||||
this.result = result;
|
this.result = result;
|
||||||
allGpxAdapter.addSelected();
|
allGpxAdapter.refreshSelected();
|
||||||
if (getActivity() != null) {
|
if (getActivity() != null) {
|
||||||
((ActionBarActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(false);
|
((ActionBarActivity) getActivity()).setSupportProgressBarIndeterminateVisibility(false);
|
||||||
}
|
}
|
||||||
|
@ -658,7 +659,6 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
|
|
||||||
private void loadGPXFolder(File mapPath, List<GpxInfo> result, LoadGpxTask loadTask,
|
private void loadGPXFolder(File mapPath, List<GpxInfo> result, LoadGpxTask loadTask,
|
||||||
List<GpxInfo> progress, String gpxSubfolder) {
|
List<GpxInfo> progress, String gpxSubfolder) {
|
||||||
GpxSelectionHelper sgpx = app.getSelectedGpxHelper();
|
|
||||||
for (File gpxFile : listFilesSorted(mapPath)) {
|
for (File gpxFile : listFilesSorted(mapPath)) {
|
||||||
if (gpxFile.isDirectory()) {
|
if (gpxFile.isDirectory()) {
|
||||||
String sub = gpxSubfolder.length() == 0 ? gpxFile.getName() : gpxSubfolder + "/" + gpxFile.getName();
|
String sub = gpxSubfolder.length() == 0 ? gpxFile.getName() : gpxSubfolder + "/" + gpxFile.getName();
|
||||||
|
@ -703,7 +703,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
ta.recycle();
|
ta.recycle();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addSelected() {
|
public void refreshSelected() {
|
||||||
selected.clear();
|
selected.clear();
|
||||||
selected.addAll(getSelectedGpx());
|
selected.addAll(getSelectedGpx());
|
||||||
}
|
}
|
||||||
|
@ -1144,6 +1144,8 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
protected void onPostExecute(String result) {
|
protected void onPostExecute(String result) {
|
||||||
selectedGpxHelper.runUiListeners();
|
selectedGpxHelper.runUiListeners();
|
||||||
getActivity().setProgressBarIndeterminateVisibility(false);
|
getActivity().setProgressBarIndeterminateVisibility(false);
|
||||||
|
allGpxAdapter.refreshSelected();
|
||||||
|
allGpxAdapter.notifyDataSetChanged();
|
||||||
if (showOnMap && toShow != null) {
|
if (showOnMap && toShow != null) {
|
||||||
getMyApplication().getSettings().setMapLocationToShow(toShow.lat, toShow.lon,
|
getMyApplication().getSettings().setMapLocationToShow(toShow.lat, toShow.lon,
|
||||||
getMyApplication().getSettings().getLastKnownMapZoom());
|
getMyApplication().getSettings().getLastKnownMapZoom());
|
||||||
|
@ -1225,7 +1227,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment {
|
||||||
for (GpxInfo i : ((List<GpxInfo>) results.values)) {
|
for (GpxInfo i : ((List<GpxInfo>) results.values)) {
|
||||||
allGpxAdapter.addLocalIndexInfo(i);
|
allGpxAdapter.addLocalIndexInfo(i);
|
||||||
}
|
}
|
||||||
allGpxAdapter.addSelected();
|
allGpxAdapter.refreshSelected();
|
||||||
}
|
}
|
||||||
allGpxAdapter.notifyDataSetChanged();
|
allGpxAdapter.notifyDataSetChanged();
|
||||||
if (constraint != null && constraint.length() > 3) {
|
if (constraint != null && constraint.length() > 3) {
|
||||||
|
|
|
@ -94,9 +94,6 @@ public class FavoritesActivity extends TabActivity {
|
||||||
if (tab > mTabs.size() - 1){
|
if (tab > mTabs.size() - 1){
|
||||||
tab = 0;
|
tab = 0;
|
||||||
}
|
}
|
||||||
if(tab > 0) {
|
|
||||||
tab ++;
|
|
||||||
}
|
|
||||||
mViewPager.setCurrentItem(tab );
|
mViewPager.setCurrentItem(tab );
|
||||||
updateSelectedTracks();
|
updateSelectedTracks();
|
||||||
// setupHomeButton();
|
// setupHomeButton();
|
||||||
|
|
186
OsmAnd/src/net/osmand/plus/dashboard/DashRecentsFragment.java
Normal file
186
OsmAnd/src/net/osmand/plus/dashboard/DashRecentsFragment.java
Normal file
|
@ -0,0 +1,186 @@
|
||||||
|
package net.osmand.plus.dashboard;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.osmand.Location;
|
||||||
|
import net.osmand.data.LatLon;
|
||||||
|
import net.osmand.plus.OsmAndAppCustomization;
|
||||||
|
import net.osmand.plus.OsmAndFormatter;
|
||||||
|
import net.osmand.plus.OsmandApplication;
|
||||||
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.activities.MapActivity;
|
||||||
|
import net.osmand.plus.activities.search.SearchActivity;
|
||||||
|
import net.osmand.plus.base.FavoriteImageDrawable;
|
||||||
|
import net.osmand.plus.dialogs.DirectionsDialogs;
|
||||||
|
import net.osmand.plus.helpers.FontCache;
|
||||||
|
import net.osmand.plus.helpers.SearchHistoryHelper;
|
||||||
|
import net.osmand.plus.helpers.SearchHistoryHelper.HistoryEntry;
|
||||||
|
import net.osmand.util.Algorithms;
|
||||||
|
import net.osmand.util.MapUtils;
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.Typeface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.Button;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Denis
|
||||||
|
* on 24.11.2014.
|
||||||
|
*/
|
||||||
|
public class DashRecentsFragment extends DashLocationFragment {
|
||||||
|
public static final String TAG = "DASH_RECENTS_FRAGMENT";
|
||||||
|
private net.osmand.Location location = null;
|
||||||
|
|
||||||
|
private List<ImageView> arrows = new ArrayList<ImageView>();
|
||||||
|
List<HistoryEntry> points = new ArrayList<HistoryEntry>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
|
View view = getActivity().getLayoutInflater().inflate(R.layout.dash_common_fragment, container, false);
|
||||||
|
Typeface typeface = FontCache.getRobotoMedium(getActivity());
|
||||||
|
((TextView) view.findViewById(R.id.fav_text)).setTypeface(typeface);
|
||||||
|
((TextView) view.findViewById(R.id.fav_text)).setText(
|
||||||
|
Algorithms.capitalizeFirstLetterAndLowercase(getString(R.string.recents)));
|
||||||
|
((Button) view.findViewById(R.id.show_all)).setTypeface(typeface);
|
||||||
|
|
||||||
|
(view.findViewById(R.id.show_all)).setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
Activity activity = getActivity();
|
||||||
|
OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
|
||||||
|
|
||||||
|
final Intent search = new Intent(activity, appCustomization.getSearchActivity());
|
||||||
|
//search.putExtra(SearchActivity.SHOW_ONLY_ONE_TAB, true);
|
||||||
|
search.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||||
|
getMyApplication().getSettings().SEARCH_TAB.set(SearchActivity.HISTORY_TAB_INDEX);
|
||||||
|
activity.startActivity(search);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
|
||||||
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
//This is used as origin for both Fav-list and direction arrows
|
||||||
|
if (getMyApplication().getSettings().getLastKnownMapLocation() != null) {
|
||||||
|
loc = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||||
|
} else {
|
||||||
|
loc = new LatLon(0f, 0f);
|
||||||
|
}
|
||||||
|
setupFavorites();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPause() {
|
||||||
|
super.onPause();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setupFavorites(){
|
||||||
|
View mainView = getView();
|
||||||
|
SearchHistoryHelper helper = SearchHistoryHelper.getInstance((OsmandApplication) getActivity().getApplicationContext());
|
||||||
|
points = helper.getHistoryEntries();
|
||||||
|
arrows.clear();
|
||||||
|
if (points.size() == 0){
|
||||||
|
(mainView.findViewById(R.id.main_fav)).setVisibility(View.GONE);
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
(mainView.findViewById(R.id.main_fav)).setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
LinearLayout favorites = (LinearLayout) mainView.findViewById(R.id.items);
|
||||||
|
favorites.removeAllViews();
|
||||||
|
if (points.size() > 3){
|
||||||
|
points = points.subList(0, 3);
|
||||||
|
}
|
||||||
|
for (final HistoryEntry point : points) {
|
||||||
|
LayoutInflater inflater = getActivity().getLayoutInflater();
|
||||||
|
View view = inflater.inflate(R.layout.dash_favorites_item, null, false);
|
||||||
|
TextView name = (TextView) view.findViewById(R.id.name);
|
||||||
|
TextView label = (TextView) view.findViewById(R.id.distance);
|
||||||
|
ImageView direction = (ImageView) view.findViewById(R.id.direction);
|
||||||
|
// if (point.getCategory().length() > 0) {
|
||||||
|
// ((TextView) view.findViewById(R.id.group_name)).setText(point.getCategory());
|
||||||
|
// } else {
|
||||||
|
view.findViewById(R.id.group_image).setVisibility(View.GONE);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
((ImageView) view.findViewById(R.id.icon)).
|
||||||
|
setImageDrawable(FavoriteImageDrawable.getOrCreate(getActivity(), Color.BLUE));
|
||||||
|
|
||||||
|
if(loc != null){
|
||||||
|
direction.setVisibility(View.VISIBLE);
|
||||||
|
updateArrow(getActivity(), loc, new LatLon(point.getLat(), point.getLon()), direction,
|
||||||
|
10, R.drawable.ic_destination_arrow, heading);
|
||||||
|
}
|
||||||
|
arrows.add(direction);
|
||||||
|
name.setText(point.getName().getName());
|
||||||
|
|
||||||
|
//LatLon lastKnownMapLocation = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||||
|
int dist = (int) (MapUtils.getDistance(point.getLat(), point.getLon(),
|
||||||
|
loc.getLatitude(), loc.getLongitude()));
|
||||||
|
String distance = OsmAndFormatter.getFormattedDistance(dist, getMyApplication()) + " ";
|
||||||
|
view.findViewById(R.id.navigate_to).setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
DirectionsDialogs.directionsToDialogAndLaunchMap(getActivity(), point.getLat(), point.getLon(),
|
||||||
|
point.getName());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
label.setText(distance, TextView.BufferType.SPANNABLE);
|
||||||
|
view.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
getMyApplication().getSettings().setMapLocationToShow(point.getLat(), point.getLon(), 15,
|
||||||
|
point.getName(), true,
|
||||||
|
point); //$NON-NLS-1$
|
||||||
|
MapActivity.launchMapActivityMoveToTop(getActivity());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
favorites.addView(view);
|
||||||
|
}
|
||||||
|
updateLocation(location);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateArrows() {
|
||||||
|
if (loc == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < arrows.size(); i++) {
|
||||||
|
arrows.get(i).setVisibility(View.VISIBLE);
|
||||||
|
updateArrow(getActivity(), loc, new LatLon(points.get(i).getLat(), points.get(i).getLon()),
|
||||||
|
arrows.get(i), 10, R.drawable.ic_destination_arrow, heading);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean updateCompassValue(float value) {
|
||||||
|
if (super.updateCompassValue(value)){
|
||||||
|
updateArrows();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateLocation(Location location) {
|
||||||
|
super.updateLocation(location);
|
||||||
|
updateArrows();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue