Add special download for sherpafy
This commit is contained in:
parent
7d37ad5e55
commit
605d4c3e9e
10 changed files with 50 additions and 18 deletions
|
@ -26,6 +26,7 @@
|
||||||
<ImageButton android:id="@+id/all_points"
|
<ImageButton android:id="@+id/all_points"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@string/more"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
style="@style/Widget.Sherlock.ActionButton"
|
style="@style/Widget.Sherlock.ActionButton"
|
||||||
|
@ -34,6 +35,7 @@
|
||||||
<ImageButton android:id="@+id/info_close"
|
<ImageButton android:id="@+id/info_close"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@string/close"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginRight="4dp"
|
android:layout_marginRight="4dp"
|
||||||
style="@style/Widget.Sherlock.ActionButton"
|
style="@style/Widget.Sherlock.ActionButton"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
<string name="sherpafy_public_access">Public access</string>
|
||||||
<string name="start_new_stage">Do you want to interrupt current stage and start new ?</string>
|
<string name="start_new_stage">Do you want to interrupt current stage and start new ?</string>
|
||||||
<string name="enter_access_code">Enter access code to see if you are entitled for a specific tour (optional)</string>
|
<string name="enter_access_code">Enter access code to see if you are entitled for a specific tour (optional)</string>
|
||||||
<string name="sherpafy_stage_tab_fav">Fav</string>
|
<string name="sherpafy_stage_tab_fav">Fav</string>
|
||||||
|
|
|
@ -9,6 +9,8 @@
|
||||||
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="less">Less...</string>
|
||||||
|
<string name="more">More...</string>
|
||||||
<string name="rendering_attr_coloredBuildings_name">Colored buildings</string>
|
<string name="rendering_attr_coloredBuildings_name">Colored buildings</string>
|
||||||
<string name="osmo_invite">Invite...</string>
|
<string name="osmo_invite">Invite...</string>
|
||||||
<string name="osmo_leave_confirmation_msg">Do you want to leave group %1$s?</string>
|
<string name="osmo_leave_confirmation_msg">Do you want to leave group %1$s?</string>
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import net.osmand.IProgress;
|
import net.osmand.IProgress;
|
||||||
|
import net.osmand.IndexConstants;
|
||||||
import net.osmand.data.FavouritePoint;
|
import net.osmand.data.FavouritePoint;
|
||||||
import net.osmand.plus.activities.DownloadIndexActivity;
|
import net.osmand.plus.activities.DownloadIndexActivity;
|
||||||
import net.osmand.plus.activities.FavouritesActivity;
|
import net.osmand.plus.activities.FavouritesActivity;
|
||||||
|
@ -16,7 +17,6 @@ import net.osmand.plus.activities.SettingsActivity;
|
||||||
import net.osmand.plus.activities.search.SearchActivity;
|
import net.osmand.plus.activities.search.SearchActivity;
|
||||||
import net.osmand.plus.api.SettingsAPI;
|
import net.osmand.plus.api.SettingsAPI;
|
||||||
import net.osmand.plus.download.DownloadActivityType;
|
import net.osmand.plus.download.DownloadActivityType;
|
||||||
import net.osmand.plus.views.OsmandMapTileView;
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
|
|
||||||
|
@ -107,4 +107,8 @@ public class OsmAndAppCustomization {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getIndexesUrl() {
|
||||||
|
return "http://"+IndexConstants.INDEX_DOWNLOAD_DOMAIN+"/get_indexes?gzip&" + Version.getVersionAsURLParam(app); //$NON-NLS-1$;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,6 @@ import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -16,8 +14,6 @@ import net.osmand.IndexConstants;
|
||||||
import net.osmand.PlatformUtil;
|
import net.osmand.PlatformUtil;
|
||||||
import net.osmand.plus.OsmandApplication;
|
import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.OsmandSettings;
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.Version;
|
|
||||||
import net.osmand.plus.sherpafy.TourDownloadType;
|
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.xmlpull.v1.XmlPullParser;
|
import org.xmlpull.v1.XmlPullParser;
|
||||||
|
@ -29,7 +25,6 @@ import android.content.pm.ApplicationInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
||||||
import android.content.res.AssetManager;
|
import android.content.res.AssetManager;
|
||||||
import android.text.format.DateFormat;
|
|
||||||
|
|
||||||
public class DownloadOsmandIndexesHelper {
|
public class DownloadOsmandIndexesHelper {
|
||||||
private final static Log log = PlatformUtil.getLog(DownloadOsmandIndexesHelper.class);
|
private final static Log log = PlatformUtil.getLog(DownloadOsmandIndexesHelper.class);
|
||||||
|
@ -38,8 +33,7 @@ public class DownloadOsmandIndexesHelper {
|
||||||
public static IndexFileList getIndexesList(Context ctx) {
|
public static IndexFileList getIndexesList(Context ctx) {
|
||||||
PackageManager pm =ctx.getPackageManager();
|
PackageManager pm =ctx.getPackageManager();
|
||||||
AssetManager amanager = ctx.getAssets();
|
AssetManager amanager = ctx.getAssets();
|
||||||
String versionUrlParam = Version.getVersionAsURLParam(((OsmandApplication) ctx.getApplicationContext()));
|
IndexFileList result = downloadIndexesListFromInternet((OsmandApplication) ctx.getApplicationContext());
|
||||||
IndexFileList result = downloadIndexesListFromInternet(ctx, versionUrlParam);
|
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
result = new IndexFileList();
|
result = new IndexFileList();
|
||||||
} else {
|
} else {
|
||||||
|
@ -115,12 +109,13 @@ public class DownloadOsmandIndexesHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static IndexFileList downloadIndexesListFromInternet(Context ctx, String versionAsUrl){
|
private static IndexFileList downloadIndexesListFromInternet(OsmandApplication ctx){
|
||||||
try {
|
try {
|
||||||
IndexFileList result = new IndexFileList();
|
IndexFileList result = new IndexFileList();
|
||||||
log.debug("Start loading list of index files"); //$NON-NLS-1$
|
log.debug("Start loading list of index files"); //$NON-NLS-1$
|
||||||
try {
|
try {
|
||||||
String strUrl = "http://"+IndexConstants.INDEX_DOWNLOAD_DOMAIN+"/get_indexes?gzip&" + versionAsUrl; //$NON-NLS-1$
|
String strUrl = ctx.getAppCustomization().getIndexesUrl();
|
||||||
|
|
||||||
log.info(strUrl);
|
log.info(strUrl);
|
||||||
URL url = new URL(strUrl );
|
URL url = new URL(strUrl );
|
||||||
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
|
XmlPullParser parser = XmlPullParserFactory.newInstance().newPullParser();
|
||||||
|
|
|
@ -10,6 +10,7 @@ import java.util.Map;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
|
|
||||||
import net.osmand.IProgress;
|
import net.osmand.IProgress;
|
||||||
|
import net.osmand.IndexConstants;
|
||||||
import net.osmand.data.FavouritePoint;
|
import net.osmand.data.FavouritePoint;
|
||||||
import net.osmand.plus.ContextMenuAdapter;
|
import net.osmand.plus.ContextMenuAdapter;
|
||||||
import net.osmand.plus.GPXUtilities;
|
import net.osmand.plus.GPXUtilities;
|
||||||
|
@ -18,6 +19,7 @@ import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.OsmandSettings;
|
import net.osmand.plus.OsmandSettings;
|
||||||
import net.osmand.plus.OsmandSettings.CommonPreference;
|
import net.osmand.plus.OsmandSettings.CommonPreference;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
|
import net.osmand.plus.Version;
|
||||||
import net.osmand.plus.activities.DownloadIndexActivity;
|
import net.osmand.plus.activities.DownloadIndexActivity;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.activities.MapActivityLayers;
|
import net.osmand.plus.activities.MapActivityLayers;
|
||||||
|
@ -25,6 +27,7 @@ import net.osmand.plus.api.FileSettingsAPIImpl;
|
||||||
import net.osmand.plus.download.DownloadActivityType;
|
import net.osmand.plus.download.DownloadActivityType;
|
||||||
import net.osmand.plus.sherpafy.TourInformation.StageFavorite;
|
import net.osmand.plus.sherpafy.TourInformation.StageFavorite;
|
||||||
import net.osmand.plus.sherpafy.TourInformation.StageInformation;
|
import net.osmand.plus.sherpafy.TourInformation.StageInformation;
|
||||||
|
import net.osmand.util.Algorithms;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.AlertDialog.Builder;
|
import android.app.AlertDialog.Builder;
|
||||||
|
@ -37,9 +40,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";
|
||||||
|
private static final String VISITED_STAGES = "visited_STAGES";
|
||||||
private OsmandSettings originalSettings;
|
private OsmandSettings originalSettings;
|
||||||
private CommonPreference<String> selectedTourPref;
|
private CommonPreference<String> selectedTourPref;
|
||||||
private CommonPreference<String> selectedStagePref;
|
private CommonPreference<String> selectedStagePref;
|
||||||
|
private CommonPreference<String> visitedStagesPref;
|
||||||
private List<TourInformation> tourPresent = new ArrayList<TourInformation>();
|
private List<TourInformation> tourPresent = new ArrayList<TourInformation>();
|
||||||
private StageInformation selectedStage = null;
|
private StageInformation selectedStage = null;
|
||||||
private TourInformation selectedTour = null;
|
private TourInformation selectedTour = null;
|
||||||
|
@ -58,7 +63,7 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
|
|
||||||
public boolean setAccessCode(String acCode) {
|
public boolean setAccessCode(String acCode) {
|
||||||
acCode = acCode.toUpperCase();
|
acCode = acCode.toUpperCase();
|
||||||
if(validate(acCode)) {
|
if(validate(acCode) || Algorithms.isEmpty(acCode)) {
|
||||||
accessCodePref.set(acCode);
|
accessCodePref.set(acCode);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -193,6 +198,7 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
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().registerStringPreference(SELECTED_STAGE, null).makeGlobal();
|
||||||
|
visitedStagesPref = app.getSettings().registerStringPreference(VISITED_STAGES, null).makeGlobal();
|
||||||
selectedTour = tourInformation;
|
selectedTour = tourInformation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,4 +315,13 @@ public class SherpafyCustomization extends OsmAndAppCustomization {
|
||||||
public List<FavouritePoint> getFavorites() {
|
public List<FavouritePoint> getFavorites() {
|
||||||
return cachedFavorites;
|
return cachedFavorites;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getIndexesUrl() {
|
||||||
|
String s = "http://"+IndexConstants.INDEX_DOWNLOAD_DOMAIN+"/tours.php?gzip&" + Version.getVersionAsURLParam(app);
|
||||||
|
if(!Algorithms.isEmpty(accessCodePref.get())) {
|
||||||
|
s += "&code="+accessCodePref.get();
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,13 @@ public class SherpafySelectToursFragment extends SherlockListFragment {
|
||||||
ll.setPadding(5, 3, 5, 0);
|
ll.setPadding(5, 3, 5, 0);
|
||||||
ll.addView(editText, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
|
ll.addView(editText, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
|
||||||
builder.setView(ll);
|
builder.setView(ll);
|
||||||
builder.setNegativeButton(R.string.default_buttons_cancel, null);
|
builder.setNegativeButton(R.string.sherpafy_public_access, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
custom.setAccessCode("");
|
||||||
|
((TourViewActivity) getActivity()).startDownloadActivity();
|
||||||
|
}
|
||||||
|
});
|
||||||
builder.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
|
builder.setPositiveButton(R.string.default_buttons_yes, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
|
|
@ -8,6 +8,7 @@ import net.osmand.plus.OsmandApplication;
|
||||||
import net.osmand.plus.R;
|
import net.osmand.plus.R;
|
||||||
import net.osmand.plus.download.DownloadActivityType;
|
import net.osmand.plus.download.DownloadActivityType;
|
||||||
import net.osmand.plus.download.IndexItem;
|
import net.osmand.plus.download.IndexItem;
|
||||||
|
import net.osmand.util.Algorithms;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
public class TourDownloadType extends DownloadActivityType {
|
public class TourDownloadType extends DownloadActivityType {
|
||||||
|
@ -43,7 +44,11 @@ public class TourDownloadType extends DownloadActivityType {
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUrlSuffix(OsmandApplication ctx) {
|
public String getUrlSuffix(OsmandApplication ctx) {
|
||||||
return "&tour=yes";
|
String accessCode = "";
|
||||||
|
if (ctx.getAppCustomization() instanceof SherpafyCustomization) {
|
||||||
|
accessCode = ((SherpafyCustomization) ctx.getAppCustomization()).getAccessCode();
|
||||||
|
}
|
||||||
|
return "&tour=yes" + (Algorithms.isEmpty(accessCode) ? "" : "&code=" + accessCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getVisibleDescription(IndexItem indexItem, Context ctx) {
|
public String getVisibleDescription(IndexItem indexItem, Context ctx) {
|
||||||
|
|
|
@ -3,8 +3,6 @@ package net.osmand.plus.sherpafy;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.WeakHashMap;
|
import java.util.WeakHashMap;
|
||||||
|
|
||||||
import android.view.KeyEvent;
|
|
||||||
import android.widget.*;
|
|
||||||
import net.osmand.IProgress;
|
import net.osmand.IProgress;
|
||||||
import net.osmand.data.LatLon;
|
import net.osmand.data.LatLon;
|
||||||
import net.osmand.plus.GPXUtilities.GPXFile;
|
import net.osmand.plus.GPXUtilities.GPXFile;
|
||||||
|
@ -32,7 +30,12 @@ import android.support.v4.view.GravityCompat;
|
||||||
import android.support.v4.widget.DrawerLayout;
|
import android.support.v4.widget.DrawerLayout;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.AdapterView;
|
||||||
import android.widget.AdapterView.OnItemClickListener;
|
import android.widget.AdapterView.OnItemClickListener;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
import android.widget.ListView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
||||||
import com.actionbarsherlock.view.Menu;
|
import com.actionbarsherlock.view.Menu;
|
||||||
|
@ -55,7 +58,6 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
||||||
|
|
||||||
|
|
||||||
private SherpafyCustomization customization;
|
private SherpafyCustomization customization;
|
||||||
private Point displaySize;
|
|
||||||
private ActionBarDrawerToggle mDrawerToggle;
|
private ActionBarDrawerToggle mDrawerToggle;
|
||||||
private DrawerLayout mDrawerLayout;
|
private DrawerLayout mDrawerLayout;
|
||||||
private ListView mDrawerList;
|
private ListView mDrawerList;
|
||||||
|
@ -106,7 +108,6 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
displaySize = new Point(getWindowManager().getDefaultDisplay().getWidth(), getWindowManager().getDefaultDisplay().getHeight());
|
|
||||||
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_navigation_drawer_light,
|
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_navigation_drawer_light,
|
||||||
R.string.default_buttons_other_actions, R.string.close);
|
R.string.default_buttons_other_actions, R.string.close);
|
||||||
if (getMyApplication().isApplicationInitializing()) {
|
if (getMyApplication().isApplicationInitializing()) {
|
||||||
|
@ -420,6 +421,7 @@ public class TourViewActivity extends SherlockFragmentActivity {
|
||||||
WptPt point = null;
|
WptPt point = null;
|
||||||
GPXFile gpx = null;
|
GPXFile gpx = null;
|
||||||
customization.selectTour(tour, IProgress.EMPTY_PROGRESS);
|
customization.selectTour(tour, IProgress.EMPTY_PROGRESS);
|
||||||
|
|
||||||
customization.selectStage(stage, IProgress.EMPTY_PROGRESS);
|
customization.selectStage(stage, IProgress.EMPTY_PROGRESS);
|
||||||
if (customization.getSelectedStage() != null) {
|
if (customization.getSelectedStage() != null) {
|
||||||
gpx = customization.getSelectedStage().getGpx();
|
gpx = customization.getSelectedStage().getGpx();
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class WaypointDialogHelper {
|
||||||
|
|
||||||
updatePointInfoView(closePointDialog, point);
|
updatePointInfoView(closePointDialog, point);
|
||||||
closePointDialog.setBackgroundColor(mapActivity.getResources().getColor(R.color.color_black));
|
closePointDialog.setBackgroundColor(mapActivity.getResources().getColor(R.color.color_black));
|
||||||
((TextView)closePointDialog.findViewById(R.id.waypoint_text)).setTextColor(Color.WHITE);
|
((TextView) closePointDialog.findViewById(R.id.waypoint_text)).setTextColor(Color.WHITE);
|
||||||
View all = closePointDialog.findViewById(R.id.all_points);
|
View all = closePointDialog.findViewById(R.id.all_points);
|
||||||
all.setVisibility(vlp.size() <= 1 ? View.GONE : View.VISIBLE);
|
all.setVisibility(vlp.size() <= 1 ? View.GONE : View.VISIBLE);
|
||||||
all.setOnClickListener(new View.OnClickListener() {
|
all.setOnClickListener(new View.OnClickListener() {
|
||||||
|
|
Loading…
Reference in a new issue