import android.content.Context;\r
import android.content.DialogInterface;\r
import android.content.Intent;\r
+import android.content.SharedPreferences;\r
import android.content.res.Resources;\r
import android.media.AudioManager;\r
import android.net.Uri;\r
static final String NAVIT_DATA_DIR = "/data/data/org.navitproject.navit";\r
static final String NAVIT_DATA_SHARE_DIR = NAVIT_DATA_DIR + "/share";\r
static final String FIRST_STARTUP_FILE = NAVIT_DATA_SHARE_DIR + "/has_run_once.txt";\r
-\r
+ public static final String NAVIT_PREFS = "NavitPrefs";\r
+ \r
public static String get_text(String in)\r
{\r
return NavitTextTranslations.get_text(in);\r
return true;\r
}\r
\r
+ private void showInfos()\r
+ {\r
+ SharedPreferences settings = getSharedPreferences(NAVIT_PREFS, MODE_PRIVATE);\r
+ boolean firstStart = settings.getBoolean("firstStart", true);\r
+ \r
+ \r
+ if (firstStart)\r
+ {\r
+ AlertDialog.Builder infobox = new AlertDialog.Builder(this);\r
+ infobox.setTitle(NavitTextTranslations.INFO_BOX_TITLE); // TRANS\r
+ infobox.setCancelable(false);\r
+ final TextView message = new TextView(this);\r
+ message.setFadingEdgeLength(20);\r
+ message.setVerticalFadingEdgeEnabled(true);\r
+ // message.setVerticalScrollBarEnabled(true);\r
+ RelativeLayout.LayoutParams rlp =\r
+ new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT,\r
+ RelativeLayout.LayoutParams.FILL_PARENT);\r
+ \r
+ message.setLayoutParams(rlp);\r
+ final SpannableString s = new SpannableString(NavitTextTranslations.INFO_BOX_TEXT); // TRANS\r
+ Linkify.addLinks(s, Linkify.WEB_URLS);\r
+ message.setText(s);\r
+ message.setMovementMethod(LinkMovementMethod.getInstance());\r
+ infobox.setView(message);\r
+ \r
+ // TRANS\r
+ infobox.setPositiveButton(Navit.get_text("Ok"), new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface arg0, int arg1) {\r
+ Log.e("Navit", "Ok, user saw the infobox");\r
+ }\r
+ });\r
+ \r
+ \r
+ // TRANS\r
+ infobox.setNeutralButton(NavitTextTranslations.NAVIT_JAVA_MENU_MOREINFO, new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface arg0, int arg1) {\r
+ Log.e("Navit", "user wants more info, show the website");\r
+ String url = "http://wiki.navit-project.org/index.php/Navit_on_Android";\r
+ Intent i = new Intent(Intent.ACTION_VIEW);\r
+ i.setData(Uri.parse(url));\r
+ startActivity(i);\r
+ }\r
+ });\r
+ infobox.show();\r
+ SharedPreferences.Editor edit_settings = settings.edit();\r
+ edit_settings.putBoolean("firstStart", false);\r
+ edit_settings.commit();\r
+ }\r
+ }\r
+\r
/** Called when the activity is first created. */\r
@Override\r
public void onCreate(Bundle savedInstanceState)\r
File navit_maps_dir = new File(MAP_FILENAME_PATH);\r
navit_maps_dir.mkdirs();\r
\r
- // make sure the share dir exists, otherwise the infobox will not show\r
+ // make sure the share dir exists\r
File navit_data_share_dir = new File(NAVIT_DATA_SHARE_DIR);\r
navit_data_share_dir.mkdirs();\r
\r
NavitTextTranslations.NAVIT_JAVA_OVERLAY_BUBBLE_DRIVEHERE = NavitTextTranslations.NAVIT_JAVA_OVERLAY_BUBBLE_DRIVEHERE_nl;\r
}\r
\r
- /*\r
- * show info box for first time users\r
- */\r
- AlertDialog.Builder infobox = new AlertDialog.Builder(this);\r
- infobox.setTitle(NavitTextTranslations.INFO_BOX_TITLE); //TRANS\r
- infobox.setCancelable(false);\r
- final TextView message = new TextView(this);\r
- message.setFadingEdgeLength(20);\r
- message.setVerticalFadingEdgeEnabled(true);\r
- //message.setVerticalScrollBarEnabled(true);\r
- RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(\r
- RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT);\r
-\r
- // margins seem not to work, hmm strange\r
- // so add a " " at start of every line. well whadda you gonna do ...\r
- //rlp.leftMargin = 8; -> we use "m" string\r
-\r
- message.setLayoutParams(rlp);\r
- final SpannableString s = new SpannableString(NavitTextTranslations.INFO_BOX_TEXT); //TRANS\r
- Linkify.addLinks(s, Linkify.WEB_URLS);\r
- message.setText(s);\r
- message.setMovementMethod(LinkMovementMethod.getInstance());\r
- infobox.setView(message);\r
-\r
- //TRANS\r
- infobox.setPositiveButton(Navit.get_text("Ok"), new DialogInterface.OnClickListener()\r
- {\r
- public void onClick(DialogInterface arg0, int arg1)\r
- {\r
- Log.e("Navit", "Ok, user saw the infobox");\r
- }\r
- });\r
-\r
- //TRANS\r
- infobox.setNeutralButton(NavitTextTranslations.NAVIT_JAVA_MENU_MOREINFO,\r
- new DialogInterface.OnClickListener()\r
- {\r
- public void onClick(DialogInterface arg0, int arg1)\r
- {\r
- Log.e("Navit", "user wants more info, show the website");\r
- String url = "http://wiki.navit-project.org/index.php/Navit_on_Android";\r
- Intent i = new Intent(Intent.ACTION_VIEW);\r
- i.setData(Uri.parse(url));\r
- startActivity(i);\r
- }\r
- });\r
-\r
- File navit_first_startup = new File(FIRST_STARTUP_FILE);\r
- // if file does NOT exist, show the info box\r
- if (!navit_first_startup.exists())\r
- {\r
- FileOutputStream fos_temp;\r
- try\r
- {\r
- fos_temp = new FileOutputStream(navit_first_startup);\r
- fos_temp.write((int) 65); // just write an "A" to the file, but really doesnt matter\r
- fos_temp.flush();\r
- fos_temp.close();\r
- infobox.show();\r
- }\r
- catch (Exception e)\r
- {\r
- e.printStackTrace();\r
- }\r
- }\r
- /*\r
- * show info box for first time users\r
- */\r
- \r
- // make handler statically available for use in "msg_to_msg_handler"\r
-\r
Display display_ = getWindowManager().getDefaultDisplay();\r
int width_ = display_.getWidth();\r
int height_ = display_.getHeight();\r
Log.e("Navit", "Failed to extract navit.xml for " + my_display_density);\r
}\r
\r
- // --> dont use!! NavitMain(this, langu, android.os.Build.VERSION.SDK_INT);\r
- Log.e("Navit", "android.os.Build.VERSION.SDK_INT="\r
- + Integer.valueOf(android.os.Build.VERSION.SDK));\r
+ // --> dont use android.os.Build.VERSION.SDK_INT, needs API >= 4\r
+ Log.e("Navit", "android.os.Build.VERSION.SDK_INT=" + Integer.valueOf(android.os.Build.VERSION.SDK));\r
NavitMain(this, langu, Integer.valueOf(android.os.Build.VERSION.SDK), my_display_density, NAVIT_DATA_DIR+"/bin/navit");\r
- // CAUTION: don't use android.os.Build.VERSION.SDK_INT if <uses-sdk android:minSdkVersion="3" />\r
- // You will get exception on all devices with Android 1.5 and lower\r
- // because Build.VERSION.SDK_INT is since SDK 4 (Donut 1.6)\r
-\r
- // Platform Version API Level\r
- // Android 2.2 8\r
- // Android 2.1 7\r
- // Android 2.0.1 6\r
- // Android 2.0 5\r
- // Android 1.6 4\r
- // Android 1.5 3\r
- // Android 1.1 2\r
- // Android 1.0 1\r
+\r
+ showInfos();\r
\r
Navit.mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);\r
\r