Make map activity fragment based
This commit is contained in:
parent
439c65c5da
commit
16e2abea79
3 changed files with 36 additions and 14 deletions
|
@ -47,11 +47,11 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
|
|
||||||
private static final String SELECTED_TOUR = "selected_tour";
|
private static final String SELECTED_TOUR = "selected_tour";
|
||||||
private static final String ACCESS_CODE = "access_code";
|
private static final String ACCESS_CODE = "access_code";
|
||||||
private static final String SELECTED_STAGE = "selected_stage";
|
private static final String SELECTED_STAGE = "selected_stage_int";
|
||||||
private static final String VISITED_STAGES = "visited_stages";
|
private static final String VISITED_STAGES = "visited_stages_int";
|
||||||
private CommonPreference<String> selectedTourPref;
|
private CommonPreference<String> selectedTourPref;
|
||||||
private CommonPreference<String> selectedStagePref;
|
private CommonPreference<Integer> selectedStagePref;
|
||||||
private CommonPreference<String> visitedStagesPref;
|
private CommonPreference<Integer> visitedStagesPref;
|
||||||
private boolean toursIndexed;
|
private boolean toursIndexed;
|
||||||
private List<TourInformation> tourPresent = new ArrayList<TourInformation>();
|
private List<TourInformation> tourPresent = new ArrayList<TourInformation>();
|
||||||
private StageInformation selectedStage = null;
|
private StageInformation selectedStage = null;
|
||||||
|
@ -163,7 +163,6 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
String selectedName = selectedTourPref.get();
|
String selectedName = selectedTourPref.get();
|
||||||
for(File tr : availableTours) {
|
for(File tr : availableTours) {
|
||||||
if (tr.isDirectory()) {
|
if (tr.isDirectory()) {
|
||||||
boolean selected = selectedName != null && selectedName.equals(tr.getName());
|
|
||||||
String date = app.getResourceManager().getDateFormat()
|
String date = app.getResourceManager().getDateFormat()
|
||||||
.format(new Date(DownloadIndexActivity.findFileInDir(tr).lastModified()));
|
.format(new Date(DownloadIndexActivity.findFileInDir(tr).lastModified()));
|
||||||
indexFileNames.put(tr.getName(), date);
|
indexFileNames.put(tr.getName(), date);
|
||||||
|
@ -182,6 +181,7 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
boolean selected = selectedName != null && selectedName.equals(tourInformation.getName());
|
||||||
if (selected) {
|
if (selected) {
|
||||||
reloadSelectedTour(progress, tourInformation);
|
reloadSelectedTour(progress, tourInformation);
|
||||||
}
|
}
|
||||||
|
@ -233,9 +233,21 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
app.showToastMessage(R.string.settings_file_create_error);
|
app.showToastMessage(R.string.settings_file_create_error);
|
||||||
}
|
}
|
||||||
selectedStagePref = app.getSettings().registerStringPreference(SELECTED_STAGE, null).makeGlobal();
|
selectedStagePref = app.getSettings().registerIntPreference(SELECTED_STAGE, -1).makeGlobal();
|
||||||
visitedStagesPref = app.getSettings().registerStringPreference(VISITED_STAGES, null).makeGlobal();
|
visitedStagesPref = app.getSettings().registerIntPreference(VISITED_STAGES, 0).makeGlobal();
|
||||||
selectedTour = tourInformation;
|
selectedTour = tourInformation;
|
||||||
|
Integer it = selectedStagePref.get();
|
||||||
|
while(it >= 0 && isStageVisited(it) ){
|
||||||
|
it++;
|
||||||
|
}
|
||||||
|
if(it >= 0 && it < tourInformation.getStageInformation().size()) {
|
||||||
|
selectedStage = tourInformation.getStageInformation().get(it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStageVisited(int stageOrder) {
|
||||||
|
Integer gi = visitedStagesPref.get();
|
||||||
|
return (gi & (1 << stageOrder)) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public StageInformation getSelectedStage() {
|
public StageInformation getSelectedStage() {
|
||||||
|
@ -244,10 +256,10 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
|
|
||||||
public void selectStage(StageInformation stage, IProgress progress) {
|
public void selectStage(StageInformation stage, IProgress progress) {
|
||||||
if(stage == null) {
|
if(stage == null) {
|
||||||
selectedStagePref.set(null);
|
selectedStagePref.set(-1);
|
||||||
selectedStage = null;
|
selectedStage = null;
|
||||||
} else {
|
} else {
|
||||||
selectedStagePref.set(stage.getName());
|
selectedStagePref.set(stage.getOrder());
|
||||||
selectedStage = stage;
|
selectedStage = stage;
|
||||||
}
|
}
|
||||||
loadSelectedStage();
|
loadSelectedStage();
|
||||||
|
@ -301,7 +313,7 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
if(layers.getContextMenuLayer().getFirstSelectedObject() instanceof FavouritePoint) {
|
if(layers.getContextMenuLayer().getFirstSelectedObject() instanceof FavouritePoint) {
|
||||||
final FavouritePoint fp = ((FavouritePoint)layers.getContextMenuLayer().getFirstSelectedObject());
|
final FavouritePoint fp = ((FavouritePoint)layers.getContextMenuLayer().getFirstSelectedObject());
|
||||||
if(fp.getExtraParam() >= 0 && selectedStage != null) {
|
if(fp.getExtraParam() >= 0 && selectedStage != null) {
|
||||||
adapter.item(R.string.sherpafy_tour_info_txt).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light ).position(0)
|
adapter.item(R.string.show_waypoint_information).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light ).position(0)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
|
@ -333,6 +345,12 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
public void onAttach(Activity activity) {
|
||||||
|
super.onAttach(activity);
|
||||||
|
getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||||
View view = new View(getActivity());
|
View view = new View(getActivity());
|
||||||
view.setId(R.id.content_frame);
|
view.setId(R.id.content_frame);
|
||||||
|
@ -345,7 +363,6 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.create();
|
.create();
|
||||||
getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();
|
|
||||||
return dlg;
|
return dlg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -359,7 +376,7 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
R.string.get_directions,
|
R.string.get_directions,
|
||||||
R.string.menu_mute_on, R.string.menu_mute_off,
|
R.string.menu_mute_on, R.string.menu_mute_off,
|
||||||
R.string.where_am_i);
|
R.string.where_am_i);
|
||||||
adapter.item(R.string.sherpafy_tour_info_txt).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light ).position(4)
|
adapter.item(R.string.sherpafy_tour_info_txt).icons(R.drawable.ic_action_info_dark, R.drawable.ic_action_info_light ).position(adapter.length() - 1)
|
||||||
.listen(new OnContextMenuClick() {
|
.listen(new OnContextMenuClick() {
|
||||||
@Override
|
@Override
|
||||||
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
public void onContextMenuClick(int itemId, int pos, boolean isChecked, DialogInterface dialog) {
|
||||||
|
|
|
@ -24,9 +24,11 @@ public class SherpafyFavoriteFragment extends SherpafyStageInfoFragment {
|
||||||
int k = getArguments().getInt(FAV_PARAM);
|
int k = getArguments().getInt(FAV_PARAM);
|
||||||
if(stage != null) {
|
if(stage != null) {
|
||||||
fav = (StageFavorite) stage.getFavorites().get(k);
|
fav = (StageFavorite) stage.getFavorites().get(k);
|
||||||
|
if(getSherlockActivity().getSupportActionBar() != null) {
|
||||||
getSherlockActivity().getSupportActionBar().setTitle(fav.getName());
|
getSherlockActivity().getSupportActionBar().setTitle(fav.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected void updateView(WebView description, ImageView icon, TextView additional, TextView text, TextView header) {
|
protected void updateView(WebView description, ImageView icon, TextView additional, TextView text, TextView header) {
|
||||||
if (fav.getImage() != null) {
|
if (fav.getImage() != null) {
|
||||||
|
|
|
@ -171,8 +171,10 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
||||||
} else if (selectedItem == it) {
|
} else if (selectedItem == it) {
|
||||||
imView.setImageResource(R.drawable.ic_action_ok_light);
|
imView.setImageResource(R.drawable.ic_action_ok_light);
|
||||||
} else {
|
} else {
|
||||||
|
boolean visited = customization.isStageVisited(((StageInformation) it).getOrder());
|
||||||
imView.setImageDrawable(
|
imView.setImageDrawable(
|
||||||
new StageImageDrawable(TourViewActivity.this, StageImageDrawable.MENU_COLOR,
|
new StageImageDrawable(TourViewActivity.this,
|
||||||
|
visited ? StageImageDrawable.INFO_COLOR : StageImageDrawable.MENU_COLOR,
|
||||||
(((StageInformation) it).getOrder() + 1) + "", 0));
|
(((StageInformation) it).getOrder() + 1) + "", 0));
|
||||||
}
|
}
|
||||||
tv.setText(((StageInformation) it).getName());
|
tv.setText(((StageInformation) it).getName());
|
||||||
|
@ -474,6 +476,7 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
||||||
getMyApplication().getSettings().APPLICATION_MODE.set(am);
|
getMyApplication().getSettings().APPLICATION_MODE.set(am);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
getMyApplication().getSettings().SHOW_FAVORITES.set(true);
|
||||||
if (startOver && point != null) {
|
if (startOver && point != null) {
|
||||||
goToMap(new LatLon(point.lat, point.lon));
|
goToMap(new LatLon(point.lat, point.lon));
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue