summaryrefslogtreecommitdiff
path: root/navit/android/src/org/navitproject/navit/Navit.java
diff options
context:
space:
mode:
Diffstat (limited to 'navit/android/src/org/navitproject/navit/Navit.java')
-rw-r--r--navit/android/src/org/navitproject/navit/Navit.java48
1 files changed, 42 insertions, 6 deletions
diff --git a/navit/android/src/org/navitproject/navit/Navit.java b/navit/android/src/org/navitproject/navit/Navit.java
index 873bbb71c..a22dbf934 100644
--- a/navit/android/src/org/navitproject/navit/Navit.java
+++ b/navit/android/src/org/navitproject/navit/Navit.java
@@ -84,13 +84,14 @@ public class Navit extends Activity
public static final int NavitDownloaderSelectMap_id = 967;
public static final int MAP_NUM_PRIMARY = 11;
public static final int NavitAddressSearch_id = 70;
+ public static final int NavitSelectStorage_id = 43;
public static String NavitLanguage;
public static Resources NavitResources = null;
public static final int MAP_NUM_SECONDARY = 12;
static final String NAVIT_PACKAGE_NAME = "org.navitproject.navit";
static final String TAG = "Navit";
- static final String MAP_FILENAME_PATH = Environment.getExternalStorageDirectory().getPath() + "/navit/";
+ static String map_filename_path = null;
static final String NAVIT_DATA_DIR = "/data/data/" + NAVIT_PACKAGE_NAME;
static final String NAVIT_DATA_SHARE_DIR = NAVIT_DATA_DIR + "/share";
static final String FIRST_STARTUP_FILE = NAVIT_DATA_SHARE_DIR + "/has_run_once.txt";
@@ -181,6 +182,7 @@ public class Navit extends Activity
while ((i = resourcestream.read(buf)) != -1) {
resultfilestream.write(buf, 0, i);
}
+ resultfilestream.close();
} catch (Exception e) {
Log.e(TAG, "Exception " + e.getMessage());
return false;
@@ -294,8 +296,11 @@ public class Navit extends Activity
}
Log.e("Navit", "Language " + lang);
+ SharedPreferences prefs = getSharedPreferences(NAVIT_PREFS,MODE_PRIVATE);
+ map_filename_path = prefs.getString("filenamePath", Environment.getExternalStorageDirectory().getPath() + "/navit/");
+
// make sure the new path for the navitmap.bin file(s) exist!!
- File navit_maps_dir = new File(MAP_FILENAME_PATH);
+ File navit_maps_dir = new File(map_filename_path);
navit_maps_dir.mkdirs();
// make sure the share dir exists
@@ -361,7 +366,7 @@ public class Navit extends Activity
// --> dont use android.os.Build.VERSION.SDK_INT, needs API >= 4
Log.e("Navit", "android.os.Build.VERSION.SDK_INT=" + Integer.valueOf(android.os.Build.VERSION.SDK));
- NavitMain(this, NavitLanguage, Integer.valueOf(android.os.Build.VERSION.SDK), my_display_density, NAVIT_DATA_DIR+"/bin/navit");
+ NavitMain(this, NavitLanguage, Integer.valueOf(android.os.Build.VERSION.SDK), my_display_density, NAVIT_DATA_DIR+"/bin/navit",map_filename_path);
showInfos();
@@ -465,13 +470,14 @@ public class Navit extends Activity
menu.clear();
// group-id,item-id,sort order number
- menu.add(1, 1, 100, getString(R.string.optionsmenu_zoom_in)); //TRANS
- menu.add(1, 2, 200, getString(R.string.optionsmenu_zoom_out)); //TRANS
+ //menu.add(1, 1, 100, getString(R.string.optionsmenu_zoom_in)); //TRANS
+ //menu.add(1, 2, 200, getString(R.string.optionsmenu_zoom_out)); //TRANS
menu.add(1, 3, 300, getString(R.string.optionsmenu_download_maps)); //TRANS
menu.add(1, 5, 400, getString(R.string.optionsmenu_toggle_poi)); //TRANS
menu.add(1, 6, 500, getString(R.string.optionsmenu_address_search)); //TRANS
+ menu.add(1, 10, 600, getString(R.string.optionsmenu_set_map_location));
menu.add(1, 99, 900, getString(R.string.optionsmenu_exit_navit)); //TRANS
@@ -571,6 +577,9 @@ public class Navit extends Activity
/* Backup / Restore */
showDialog(NavitDialogs.DIALOG_BACKUP_RESTORE);
break;
+ case 10:
+ setMapLocation();
+ break;
case 99 :
// exit
this.onStop();
@@ -613,6 +622,22 @@ public class Navit extends Activity
msg.sendToTarget();
}
break;
+ case NavitSelectStorage_id :
+ if(resultCode == RESULT_OK) {
+ String newDir = data.getStringExtra(FileBrowserActivity.returnDirectoryParameter);
+ Log.d(TAG, "selected path= "+newDir);
+ if(!newDir.contains("/navit/"))
+ newDir = newDir+"/navit/";
+ else
+ newDir = newDir+"/";
+ SharedPreferences prefs = this.getSharedPreferences(NAVIT_PREFS,MODE_PRIVATE);
+ SharedPreferences.Editor prefs_editor = prefs.edit();
+ prefs_editor.putString("filenamePath", newDir);
+ prefs_editor.commit();
+ Toast.makeText(this, String.format(Navit._("New location set to %s\nRestart Navit to apply the changes."),newDir),Toast.LENGTH_LONG).show();
+ }
+ else Log.w(TAG, "select path failed");
+ break;
default :
//Log.e("Navit", "onActivityResult " + requestCode + " " + resultCode);
ActivityResults[requestCode].onActivityResult(requestCode, resultCode, data);
@@ -640,6 +665,17 @@ public class Navit extends Activity
return true;
}
+ public boolean setMapLocation()
+ {
+ Intent fileExploreIntent = new Intent(this,FileBrowserActivity.class);
+ fileExploreIntent
+ .putExtra(FileBrowserActivity.startDirectoryParameter, "/mnt")
+ .setAction(FileBrowserActivity.INTENT_ACTION_SELECT_DIR);
+ startActivityForResult(fileExploreIntent,NavitSelectStorage_id);
+
+ return true;
+ }
+
@Override
public void onDestroy()
{
@@ -676,7 +712,7 @@ public class Navit extends Activity
finish();
}
- public native void NavitMain(Navit x, String lang, int version, String display_density_string, String path);
+ public native void NavitMain(Navit x, String lang, int version, String display_density_string, String path, String path2);
public native void NavitDestroy();
/*