diff options
author | mvglasow <michael@vonglasow.com> | 2016-01-03 14:30:58 +0100 |
---|---|---|
committer | mvglasow <michael@vonglasow.com> | 2016-01-03 14:30:58 +0100 |
commit | f1dda621779deb4528e6eca50d1b8db09a2ad55d (patch) | |
tree | 658be6d1b97b918614c1fe40b3f566d0f264549a /navit/android | |
parent | 92cbe432f829b2738fb6a39433cffdbe075b132a (diff) | |
parent | 7c59b3cbf0b8cce38164f63ad666eab60b7fe183 (diff) | |
download | navit-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.java | 26 | ||||
-rw-r--r-- | navit/android/src/org/navitproject/navit/NavitGraphics.java | 20 |
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; |