Update sherpafy customization

This commit is contained in:
vshcherb 2014-04-16 20:23:11 +02:00
parent a1660b1df7
commit 99a75903b7
12 changed files with 213 additions and 107 deletions

View file

@ -54,11 +54,11 @@ android:layout_width="fill_parent" android:layout_height="fill_parent" android:b
<TableRow android:layout_height = "wrap_content" android:layout_marginTop="15dp"> <TableRow android:layout_height = "wrap_content" android:layout_marginTop="15dp">
<LinearLayout android:id="@+id/FavoritesButton" android:background="@drawable/bg_leftr" android:orientation="vertical" android:clickable="true" <LinearLayout android:id="@+id/FavoritesButton" android:background="@drawable/bg_leftr" android:orientation="vertical" android:clickable="true"
android:layout_weight="3" android:layout_height="175dp" android:focusable="true"> android:layout_weight="3" android:layout_height="175dp" android:focusable="true">
<ImageView <ImageView android:id="@+id/FavoritesButtonImage"
android:src="@drawable/button_icon_favorites" android:scaleType="center" android:layout_gravity="center" android:src="@drawable/button_icon_favorites" android:scaleType="center" android:layout_gravity="center"
android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="0dp"/> android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="0dp"/>
<LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"> <LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center">
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/FavoritesButtonText"
android:layout_gravity="center_horizontal|top" android:textSize="18sp" android:layout_gravity="center_horizontal|top" android:textSize="18sp"
android:text="@string/favorites_Button" android:typeface="serif" android:textColor="#000000"/> android:text="@string/favorites_Button" android:typeface="serif" android:textColor="#000000"/>
</LinearLayout> </LinearLayout>
@ -66,12 +66,12 @@ android:layout_width="fill_parent" android:layout_height="fill_parent" android:b
<LinearLayout android:layout_weight="2" android:layout_height="fill_parent"/> <LinearLayout android:layout_weight="2" android:layout_height="fill_parent"/>
<LinearLayout android:id="@+id/SettingsButton" android:background="@drawable/bg_rightr" android:orientation="vertical" android:clickable="true" <LinearLayout android:id="@+id/SettingsButton" android:background="@drawable/bg_rightr" android:orientation="vertical" android:clickable="true"
android:layout_weight="3" android:layout_height="175dp" android:focusable="true"> android:layout_weight="3" android:layout_height="175dp" android:focusable="true">
<ImageView <ImageView android:id="@+id/SettingsButtonImage"
android:src="@drawable/button_icon_settings" android:scaleType="center" android:layout_gravity="center" android:src="@drawable/button_icon_settings" android:scaleType="center" android:layout_gravity="center"
android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="0dp"/> android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="0dp"/>
<LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"> <LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center">
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" <TextView android:layout_height="wrap_content" android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|top" android:textSize="18sp" android:layout_gravity="center_horizontal|top" android:textSize="18sp" android:id="@+id/SettingsButtonText"
android:text="@string/settings_Button" android:typeface="serif" android:textColor="#000000"/> android:text="@string/settings_Button" android:typeface="serif" android:textColor="#000000"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<string name="settings_file_create_error">Couldn\'t create settings file in tour folder.</string>
<string name="tour">Tour</string>
</resources>

View file

@ -0,0 +1,32 @@
package net.osmand.plus;
import android.view.Window;
import net.osmand.plus.api.SettingsAPI;
public class OsmAndAppCustomization {
protected OsmandApplication app;
public void setup(OsmandApplication app) {
this.app = app;
}
public OsmandSettings createSettings(SettingsAPI api) {
return new OsmandSettings(app, api);
}
public boolean checkExceptionsOnStart() {
return true;
}
public boolean showFirstTimeRunAndTips(boolean firstTime, boolean appVersionChanged) {
return true;
}
public boolean checkBasemapDownloadedOnStart() {
return true;
}
public void customizeMainMenu(Window window) {
}
}

View file

@ -29,6 +29,7 @@ import net.osmand.plus.activities.SettingsActivity;
import net.osmand.plus.api.SQLiteAPI; import net.osmand.plus.api.SQLiteAPI;
import net.osmand.plus.api.SQLiteAPIImpl; import net.osmand.plus.api.SQLiteAPIImpl;
import net.osmand.plus.api.SettingsAPI; import net.osmand.plus.api.SettingsAPI;
import net.osmand.plus.api.SettingsAPIImpl;
import net.osmand.plus.render.NativeOsmandLibrary; import net.osmand.plus.render.NativeOsmandLibrary;
import net.osmand.plus.render.RendererRegistry; import net.osmand.plus.render.RendererRegistry;
import net.osmand.plus.resources.ResourceManager; import net.osmand.plus.resources.ResourceManager;
@ -81,6 +82,7 @@ public class OsmandApplication extends Application {
public static final String EXCEPTION_PATH = "exception.log"; //$NON-NLS-1$ public static final String EXCEPTION_PATH = "exception.log"; //$NON-NLS-1$
private static final org.apache.commons.logging.Log LOG = PlatformUtil.getLog(OsmandApplication.class); private static final org.apache.commons.logging.Log LOG = PlatformUtil.getLog(OsmandApplication.class);
ResourceManager resourceManager = null; ResourceManager resourceManager = null;
PoiFiltersHelper poiFilters = null; PoiFiltersHelper poiFilters = null;
RoutingHelper routingHelper = null; RoutingHelper routingHelper = null;
@ -89,6 +91,7 @@ public class OsmandApplication extends Application {
OsmandSettings osmandSettings = null; OsmandSettings osmandSettings = null;
OsmAndAppCustomization appCustomization;
DayNightHelper daynightHelper; DayNightHelper daynightHelper;
NavigationService navigationService; NavigationService navigationService;
RendererRegistry rendererRegistry; RendererRegistry rendererRegistry;
@ -108,7 +111,6 @@ public class OsmandApplication extends Application {
private boolean applicationInitializing = false; private boolean applicationInitializing = false;
private Locale prefferedLocale = null; private Locale prefferedLocale = null;
SettingsAPI settingsAPI;
SQLiteAPI sqliteAPI; SQLiteAPI sqliteAPI;
BRouterServiceConnection bRouterServiceConnection; BRouterServiceConnection bRouterServiceConnection;
@ -125,10 +127,10 @@ public class OsmandApplication extends Application {
} }
} }
super.onCreate(); super.onCreate();
appCustomization = new OsmAndAppCustomization();
appCustomization.setup(this);
settingsAPI = new net.osmand.plus.api.SettingsAPIImpl(this);
sqliteAPI = new SQLiteAPIImpl(this); sqliteAPI = new SQLiteAPIImpl(this);
try { try {
bRouterServiceConnection = BRouterServiceConnection.connect(this); bRouterServiceConnection = BRouterServiceConnection.connect(this);
} catch(Exception e) { } catch(Exception e) {
@ -136,7 +138,7 @@ public class OsmandApplication extends Application {
} }
// settings used everywhere so they need to be created first // settings used everywhere so they need to be created first
osmandSettings = createOsmandSettingsInstance(); osmandSettings = appCustomization.createSettings(new net.osmand.plus.api.SettingsAPIImpl(this));
// always update application mode to default // always update application mode to default
if(!osmandSettings.FOLLOW_THE_ROUTE.get()){ if(!osmandSettings.FOLLOW_THE_ROUTE.get()){
osmandSettings.APPLICATION_MODE.set(osmandSettings.DEFAULT_APPLICATION_MODE.get()); osmandSettings.APPLICATION_MODE.set(osmandSettings.DEFAULT_APPLICATION_MODE.get());
@ -189,18 +191,19 @@ public class OsmandApplication extends Application {
return taskManager; return taskManager;
} }
/**
* Creates instance of OsmandSettings
*
* @return Reference to instance of OsmandSettings
*/
protected OsmandSettings createOsmandSettingsInstance() {
return new OsmandSettings(this);
}
public OsmAndLocationProvider getLocationProvider() { public OsmAndLocationProvider getLocationProvider() {
return locationProvider; return locationProvider;
} }
public OsmAndAppCustomization getAppCustomization() {
return appCustomization;
}
public void setAppCustomization(OsmAndAppCustomization appCustomization) {
this.appCustomization = appCustomization;
this.appCustomization.setup(this);
}
/** /**
* Application settings * Application settings
@ -692,11 +695,6 @@ public class OsmandApplication extends Application {
AccessibleToast.makeText(this, msg, Toast.LENGTH_LONG).show(); AccessibleToast.makeText(this, msg, Toast.LENGTH_LONG).show();
} }
public SettingsAPI getSettingsAPI() {
return settingsAPI;
}
public SQLiteAPI getSQLiteAPI() { public SQLiteAPI getSQLiteAPI() {
return sqliteAPI; return sqliteAPI;
} }

View file

@ -20,7 +20,6 @@ import net.osmand.plus.osmedit.OsmEditingPlugin;
import net.osmand.plus.osmodroid.OsMoDroidPlugin; import net.osmand.plus.osmodroid.OsMoDroidPlugin;
import net.osmand.plus.parkingpoint.ParkingPositionPlugin; import net.osmand.plus.parkingpoint.ParkingPositionPlugin;
import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin; import net.osmand.plus.rastermaps.OsmandRasterMapsPlugin;
import net.osmand.plus.sherpafy.SherpafyPlugin;
import net.osmand.plus.srtmplugin.SRTMPlugin; import net.osmand.plus.srtmplugin.SRTMPlugin;
import net.osmand.plus.views.OsmandMapTileView; import net.osmand.plus.views.OsmandMapTileView;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
@ -35,7 +34,6 @@ public abstract class OsmandPlugin {
private static List<OsmandPlugin> activePlugins = new ArrayList<OsmandPlugin>(); private static List<OsmandPlugin> activePlugins = new ArrayList<OsmandPlugin>();
private static final Log LOG = PlatformUtil.getLog(OsmandPlugin.class); private static final Log LOG = PlatformUtil.getLog(OsmandPlugin.class);
private static final String SHERPAFY_PLUGIN_COMPONENT = "net.osmand.sherpafy"; //$NON-NLS-1$
private static final String PARKING_PLUGIN_COMPONENT = "net.osmand.parkingPlugin"; //$NON-NLS-1$ private static final String PARKING_PLUGIN_COMPONENT = "net.osmand.parkingPlugin"; //$NON-NLS-1$
private static final String SRTM_PLUGIN_COMPONENT_PAID = "net.osmand.srtmPlugin.paid"; //$NON-NLS-1$ private static final String SRTM_PLUGIN_COMPONENT_PAID = "net.osmand.srtmPlugin.paid"; //$NON-NLS-1$
private static final String SRTM_PLUGIN_COMPONENT = "net.osmand.srtmPlugin"; //$NON-NLS-1$ private static final String SRTM_PLUGIN_COMPONENT = "net.osmand.srtmPlugin"; //$NON-NLS-1$
@ -64,7 +62,6 @@ public abstract class OsmandPlugin {
public static void initPlugins(OsmandApplication app) { public static void initPlugins(OsmandApplication app) {
OsmandSettings settings = app.getSettings(); OsmandSettings settings = app.getSettings();
OsmandRasterMapsPlugin rasterMapsPlugin = new OsmandRasterMapsPlugin(app); OsmandRasterMapsPlugin rasterMapsPlugin = new OsmandRasterMapsPlugin(app);
installPlugin(SHERPAFY_PLUGIN_COMPONENT, SherpafyPlugin.ID, app, new SherpafyPlugin(app));
installedPlugins.add(rasterMapsPlugin); installedPlugins.add(rasterMapsPlugin);
installedPlugins.add(new OsmandMonitoringPlugin(app)); installedPlugins.add(new OsmandMonitoringPlugin(app));
installedPlugins.add(new AccessibilityPlugin(app)); installedPlugins.add(new AccessibilityPlugin(app));

View file

@ -105,9 +105,9 @@ public class OsmandSettings {
private boolean internetConnectionAvailable = true; private boolean internetConnectionAvailable = true;
protected OsmandSettings(OsmandApplication clientContext) { protected OsmandSettings(OsmandApplication clientContext, SettingsAPI settinsAPI) {
ctx = clientContext; ctx = clientContext;
settingsAPI = ctx.getSettingsAPI(); this.settingsAPI = settinsAPI;
globalPreferences = settingsAPI.getPreferenceObject(SHARED_PREFERENCES_NAME); globalPreferences = settingsAPI.getPreferenceObject(SHARED_PREFERENCES_NAME);
// start from default settings // start from default settings
@ -123,6 +123,14 @@ public class OsmandSettings {
return ctx; return ctx;
} }
public void setSettingsAPI(SettingsAPI settingsAPI) {
this.settingsAPI = settingsAPI;
}
public SettingsAPI getSettingsAPI() {
return settingsAPI;
}
public static String getSharedPreferencesName(ApplicationMode mode){ public static String getSharedPreferencesName(ApplicationMode mode){
if(mode == null){ if(mode == null){
return SHARED_PREFERENCES_NAME; return SHARED_PREFERENCES_NAME;
@ -557,6 +565,16 @@ public class OsmandSettings {
return p; return p;
} }
@SuppressWarnings("unchecked")
public CommonPreference<String> registerBooleanPreference(String id, String defValue) {
if(registeredPreferences.containsKey(id)) {
return (CommonPreference<String>) registeredPreferences.get(id);
}
StringPreference p = new StringPreference(id, defValue);
registeredPreferences.put(id, p);
return p;
}
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public CommonPreference<Integer> registerIntPreference(String id, int defValue) { public CommonPreference<Integer> registerIntPreference(String id, int defValue) {
if(registeredPreferences.containsKey(id)) { if(registeredPreferences.containsKey(id)) {

View file

@ -6,11 +6,13 @@ import java.util.Random;
import net.osmand.access.AccessibleAlertBuilder; import net.osmand.access.AccessibleAlertBuilder;
import net.osmand.data.LatLon; import net.osmand.data.LatLon;
import net.osmand.plus.OsmAndAppCustomization;
import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R; import net.osmand.plus.R;
import net.osmand.plus.Version; import net.osmand.plus.Version;
import net.osmand.plus.activities.search.SearchActivity; import net.osmand.plus.activities.search.SearchActivity;
import net.osmand.plus.render.MapRenderRepositories; import net.osmand.plus.render.MapRenderRepositories;
import net.osmand.plus.sherpafy.SherpafyCustomization;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog.Builder; import android.app.AlertDialog.Builder;
import android.app.Dialog; import android.app.Dialog;
@ -182,6 +184,9 @@ public class MainMenuActivity extends Activity {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
if(getIntent() != null) {
setupCustomization(getIntent());
}
((OsmandApplication) getApplication()).applyTheme(this); ((OsmandApplication) getApplication()).applyTheme(this);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
boolean exit = false; boolean exit = false;
@ -195,6 +200,8 @@ public class MainMenuActivity extends Activity {
requestWindowFeature(Window.FEATURE_NO_TITLE); requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.menu); setContentView(R.layout.menu);
OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
onCreateMainMenu(getWindow(), this); onCreateMainMenu(getWindow(), this);
Window window = getWindow(); Window window = getWindow();
@ -242,6 +249,7 @@ public class MainMenuActivity extends Activity {
activity.startActivity(search); activity.startActivity(search);
} }
}); });
appCustomization.customizeMainMenu(window);
if(exit){ if(exit){
getMyApplication().closeApplication(activity); getMyApplication().closeApplication(activity);
return; return;
@ -255,43 +263,56 @@ public class MainMenuActivity extends Activity {
} }
startProgressDialog = new ProgressDialog(this); startProgressDialog = new ProgressDialog(this);
getMyApplication().checkApplicationIsBeingInitialized(this, startProgressDialog); getMyApplication().checkApplicationIsBeingInitialized(this, startProgressDialog);
SharedPreferences pref = getPreferences(MODE_WORLD_WRITEABLE); boolean dialogShown = false;
boolean firstTime = false; boolean firstTime = false;
if(!pref.contains(FIRST_TIME_APP_RUN)){ SharedPreferences pref = getPreferences(MODE_WORLD_WRITEABLE);
boolean appVersionChanged = false;
if (!pref.contains(FIRST_TIME_APP_RUN)) {
firstTime = true; firstTime = true;
pref.edit().putBoolean(FIRST_TIME_APP_RUN, true).commit(); pref.edit().putBoolean(FIRST_TIME_APP_RUN, true).commit();
pref.edit().putString(VERSION_INSTALLED, Version.getFullVersion(app)).commit(); pref.edit().putString(VERSION_INSTALLED, Version.getFullVersion(app)).commit();
} else if (!Version.getFullVersion(app).equals(pref.getString(VERSION_INSTALLED, ""))) {
applicationInstalledFirstTime(); pref.edit().putString(VERSION_INSTALLED, Version.getFullVersion(app)).commit();
} else { appVersionChanged = true;
int i = pref.getInt(TIPS_SHOW, 0); }
if (i < 7){ if (appCustomization.showFirstTimeRunAndTips(firstTime, appVersionChanged)) {
pref.edit().putInt(TIPS_SHOW, ++i).commit(); if (firstTime) {
} applicationInstalledFirstTime();
boolean appVersionChanged = false; dialogShown = true;
if(!Version.getFullVersion(app).equals(pref.getString(VERSION_INSTALLED, ""))){
pref.edit().putString(VERSION_INSTALLED, Version.getFullVersion(app)).commit();
appVersionChanged = true;
}
if (i == 1 || i == 5 || appVersionChanged) {
TipsAndTricksActivity tipsActivity = new TipsAndTricksActivity(this);
Dialog dlg = tipsActivity.getDialogToShowTips(!appVersionChanged, false);
dlg.show();
} else { } else {
if (startProgressDialog.isShowing()) { int i = pref.getInt(TIPS_SHOW, 0);
startProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { if (i < 7) {
@Override pref.edit().putInt(TIPS_SHOW, ++i).commit();
public void onDismiss(DialogInterface dialog) { }
checkVectorIndexesDownloaded(); if (i == 1 || i == 5 || appVersionChanged) {
} TipsAndTricksActivity tipsActivity = new TipsAndTricksActivity(this);
}); Dialog dlg = tipsActivity.getDialogToShowTips(!appVersionChanged, false);
} else { dlg.show();
checkVectorIndexesDownloaded(); dialogShown = true;
} }
} }
} }
checkPreviousRunsForExceptions(firstTime); if(!dialogShown && appCustomization.checkBasemapDownloadedOnStart()) {
if (startProgressDialog.isShowing()) {
startProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
checkVectorIndexesDownloaded();
}
});
} else {
checkVectorIndexesDownloaded();
}
}
if(appCustomization.checkExceptionsOnStart()){
checkPreviousRunsForExceptions(firstTime);
}
}
private void setupCustomization(Intent intent) {
if (intent.hasExtra("SHERPAFY")) {
((OsmandApplication) getApplication()).setAppCustomization(new SherpafyCustomization());
}
} }
private void applicationInstalledFirstTime() { private void applicationInstalledFirstTime() {

View file

@ -20,12 +20,14 @@ public class FileSettingsAPIImpl implements SettingsAPI {
public FileSettingsAPIImpl(OsmandApplication app, File file) throws IOException { public FileSettingsAPIImpl(OsmandApplication app, File file) throws IOException {
this.file = file; this.file = file;
Properties props = new Properties(); if (file.exists()) {
FileInputStream fis = new FileInputStream(file); Properties props = new Properties();
props.load(fis); FileInputStream fis = new FileInputStream(file);
for (Object key : props.keySet()) { props.load(fis);
String k = key.toString(); for (Object key : props.keySet()) {
map.put(k, props.get(key)); String k = key.toString();
map.put(k, props.get(key));
}
} }
} }
@ -95,6 +97,10 @@ public class FileSettingsAPIImpl implements SettingsAPI {
map.put(e.getKey(), e.getValue()); map.put(e.getKey(), e.getValue());
} }
} }
return saveFile();
}
public boolean saveFile() {
try { try {
Properties ps = new Properties(); Properties ps = new Properties();
ps.putAll(map); ps.putAll(map);

View file

@ -0,0 +1,71 @@
package net.osmand.plus.sherpafy;
import java.io.File;
import java.io.IOException;
import net.osmand.plus.OsmAndAppCustomization;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.OsmandSettings.CommonPreference;
import net.osmand.plus.R;
import net.osmand.plus.Version;
import net.osmand.plus.api.FileSettingsAPIImpl;
import android.view.Window;
import android.widget.TextView;
public class SherpafyCustomization extends OsmAndAppCustomization {
private static final String SELECTED_TOUR = "sherpafy_tour";
private OsmandSettings originalSettings;
private CommonPreference<String> selectedTourPref;
private File selectedTourFolder = null;
@Override
public void setup(OsmandApplication app) {
super.setup(app);
originalSettings = createSettings(app.getSettings().getSettingsAPI());
selectedTourPref = originalSettings.registerBooleanPreference(SELECTED_TOUR, null).makeGlobal();
File toursFolder = new File(originalSettings.getExternalStorageDirectory(), "tours");
if(selectedTourPref.get() != null) {
selectedTourFolder = new File(toursFolder, selectedTourPref.get());
selectedTourFolder.mkdirs();
}
if(selectedTourFolder != null) {
File settingsFile = new File(selectedTourFolder, "settings.props");
FileSettingsAPIImpl fapi;
try {
fapi = new FileSettingsAPIImpl(app, settingsFile);
if (!settingsFile.exists()) {
fapi.saveFile();
}
app.getSettings().setSettingsAPI(fapi);
} catch (IOException e) {
app.showToastMessage(R.string.settings_file_create_error);
}
}
}
public boolean checkExceptionsOnStart() {
return false;
}
public boolean showFirstTimeRunAndTips(boolean firstTime, boolean appVersionChanged) {
return false;
}
public boolean checkBasemapDownloadedOnStart() {
return false;
}
@Override
public void customizeMainMenu(Window window) {
// Update app name
TextView v = (TextView) window.findViewById(R.id.AppName);
v.setText("Sherpafy " + Version.getAppVersion(app));
TextView toursButton = (TextView) window.findViewById(R.id.SettingsButtonText);
toursButton.setText(R.string.tour);
// the image could be updated
}
}

View file

@ -1,44 +0,0 @@
package net.osmand.plus.sherpafy;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.activities.MapActivity;
public class SherpafyPlugin extends OsmandPlugin {
public static final String ID = "osmand.shepafy";
protected OsmandApplication app;
@Override
public String getId() {
return ID ;
}
public SherpafyPlugin(OsmandApplication app) {
this.app = app;
}
@Override
public String getDescription() {
return "Sherpafy plugin (TODO externalize)";
}
@Override
public String getName() {
return "Sherpafy plugin ";
}
@Override
public boolean init(final OsmandApplication app) {
return true;
}
@Override
public void disable(OsmandApplication app) {
}
@Override
public void registerLayers(MapActivity activity) {
}
}

View file

@ -14,12 +14,10 @@
<activity <activity
android:name=".SherpafyPluginActivity" android:name=".SherpafyPluginActivity"
android:label="@string/app_name" > android:label="@string/app_name" >
<!--
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
-->
</activity> </activity>
</application> </application>

View file

@ -28,7 +28,9 @@ public class SherpafyPluginActivity extends Activity {
ResolveInfo resolved = getPackageManager().resolveActivity(intentPlus, PackageManager.MATCH_DEFAULT_ONLY); ResolveInfo resolved = getPackageManager().resolveActivity(intentPlus, PackageManager.MATCH_DEFAULT_ONLY);
if(resolved != null) { if(resolved != null) {
stopService(intentPlus); stopService(intentPlus);
intentPlus.putExtra("SHERPAFY", true);
startActivity(intentPlus); startActivity(intentPlus);
finish();
} else { } else {
Intent intentNormal = new Intent(); Intent intentNormal = new Intent();
intentNormal.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); intentNormal.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
@ -36,7 +38,9 @@ public class SherpafyPluginActivity extends Activity {
resolved = getPackageManager().resolveActivity(intentNormal, PackageManager.MATCH_DEFAULT_ONLY); resolved = getPackageManager().resolveActivity(intentNormal, PackageManager.MATCH_DEFAULT_ONLY);
if (resolved != null) { if (resolved != null) {
stopService(intentNormal); stopService(intentNormal);
intentNormal.putExtra("SHERPAFY", true);
startActivity(intentNormal); startActivity(intentNormal);
finish();
} else { } else {
AlertDialog.Builder builder = new AlertDialog.Builder(this); AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.osmand_app_not_found)); builder.setMessage(getString(R.string.osmand_app_not_found));