summaryrefslogtreecommitdiff
path: root/navit/android
diff options
context:
space:
mode:
authormvglasow <michael@vonglasow.com>2016-01-03 14:30:58 +0100
committermvglasow <michael@vonglasow.com>2016-01-03 14:30:58 +0100
commitf1dda621779deb4528e6eca50d1b8db09a2ad55d (patch)
tree658be6d1b97b918614c1fe40b3f566d0f264549a /navit/android
parent92cbe432f829b2738fb6a39433cffdbe075b132a (diff)
parent7c59b3cbf0b8cce38164f63ad666eab60b7fe183 (diff)
downloadnavit-f1dda621779deb4528e6eca50d1b8db09a2ad55d.tar.gz
Merge pull request #52 from mvglasow/trac1325.rebasedR6505
Add:port_android:OSD button to show Android menu
Diffstat (limited to 'navit/android')
-rw-r--r--navit/android/src/org/navitproject/navit/Navit.java26
-rw-r--r--navit/android/src/org/navitproject/navit/NavitGraphics.java20
2 files changed, 35 insertions, 11 deletions
diff --git a/navit/android/src/org/navitproject/navit/Navit.java b/navit/android/src/org/navitproject/navit/Navit.java
index 90fcbe5eb..a117ccd6d 100644
--- a/navit/android/src/org/navitproject/navit/Navit.java
+++ b/navit/android/src/org/navitproject/navit/Navit.java
@@ -246,6 +246,8 @@ public class Navit extends Activity
super.onCreate(savedInstanceState);
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB)
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ else
+ this.getActionBar().hide();
dialogs = new NavitDialogs(this);
@@ -590,6 +592,16 @@ public class Navit extends Activity
break;
}
}
+
+ /**
+ * @brief Shows the Options menu.
+ *
+ * Calling this method has the same effect as pressing the hardware Menu button, where present, or touching
+ * the overflow button in the Action bar.
+ */
+ public void showMenu() {
+ openOptionsMenu();
+ }
void setDestination(float latitude, float longitude, String address) {
Toast.makeText( getApplicationContext(),getString(R.string.address_search_set_destination) + "\n" + address, Toast.LENGTH_LONG).show(); //TRANS
@@ -690,25 +702,17 @@ public class Navit extends Activity
NavitDestroy();
}
- public void fullscreen(int fullscreen)
- {
- if(fullscreen != 0)
- {
+ public void fullscreen(int fullscreen) {
+ if(fullscreen != 0) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB)
- this.getActionBar().hide();
}
- else
- {
+ else {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB)
- this.getActionBar().show();
}
}
-
public void disableSuspend()
{
wl.acquire();
diff --git a/navit/android/src/org/navitproject/navit/NavitGraphics.java b/navit/android/src/org/navitproject/navit/NavitGraphics.java
index 728b49878..08f4fbe3e 100644
--- a/navit/android/src/org/navitproject/navit/NavitGraphics.java
+++ b/navit/android/src/org/navitproject/navit/NavitGraphics.java
@@ -32,6 +32,7 @@ import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PointF;
import android.graphics.Rect;
+import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.util.FloatMath;
@@ -41,6 +42,7 @@ import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
+import android.view.ViewConfiguration;
import android.view.inputmethod.InputMethodManager;
import android.widget.RelativeLayout;
@@ -792,6 +794,24 @@ public class NavitGraphics
private int SizeChangedCallbackID, ButtonCallbackID, MotionCallbackID, KeypressCallbackID;
// private int count;
+ /**
+ * @brief Returns whether the device has a hardware menu button.
+ *
+ * Only Android versions starting with ICS (API version 14) support the API call to detect the presence of a
+ * Menu button. On earlier Android versions, the following assumptions will be made: On API levels up to 10,
+ * this method will always return {@code true}, as these Android versions relied on devices having a physical
+ * Menu button. On API levels 11 through 13 (Honeycomb releases), this method will always return
+ * {@code false}, as Honeycomb was a tablet-only release and did not require devices to have a Menu button.
+ */
+ public boolean hasMenuButton() {
+ if (Build.VERSION.SDK_INT <= 10)
+ return true;
+ else if (Build.VERSION.SDK_INT <= 13)
+ return false;
+ else
+ return ViewConfiguration.get(activity.getApplication()).hasPermanentMenuKey();
+ }
+
public void setSizeChangedCallback(int id)
{
SizeChangedCallbackID = id;