diff options
author | mvglasow <michael -at- vonglasow.com> | 2019-02-21 02:33:57 +0100 |
---|---|---|
committer | mvglasow <michael -at- vonglasow.com> | 2019-02-21 02:33:57 +0100 |
commit | f6cea0c798c53eafa2f0e58a26e7c2fc607a3694 (patch) | |
tree | 6933d77570b05ac098abf4dafccbbf391418907e | |
parent | 0428ef92825cfa2d9949a9ea6ef84e0d98fb8fba (diff) | |
download | navit-f6cea0c798c53eafa2f0e58a26e7c2fc607a3694.tar.gz |
Refactor:graphics/android:Separate methods to set activity and camera
Signed-off-by: mvglasow <michael -at- vonglasow.com>
-rw-r--r-- | navit/android/src/org/navitproject/navit/NavitGraphics.java | 92 |
1 files changed, 61 insertions, 31 deletions
diff --git a/navit/android/src/org/navitproject/navit/NavitGraphics.java b/navit/android/src/org/navitproject/navit/NavitGraphics.java index f85c24833..c7430d1bc 100644 --- a/navit/android/src/org/navitproject/navit/NavitGraphics.java +++ b/navit/android/src/org/navitproject/navit/NavitGraphics.java @@ -78,7 +78,7 @@ public class NavitGraphics { private SystemBarTintView bottomTintView; private FrameLayout frameLayout; private RelativeLayout relativelayout; - private NavitCamera camera; + private NavitCamera camera = null; private Navit activity; private static Boolean in_map = false; // for menu key @@ -106,7 +106,28 @@ public class NavitGraphics { private void SetCamera(int use_camera) { if (use_camera != 0 && camera == null) { // activity.requestWindowFeature(Window.FEATURE_NO_TITLE); - camera = new NavitCamera(activity); + addCamera(); + addCameraView(); + } + } + + /** + * @brief Adds a camera. + * + * This method does not create the view for the camera. This must be done separately by calling + * {@link #addCameraView()}. + */ + private void addCamera() { + camera = new NavitCamera(activity); + } + + /** + * @brief Adds a view for the camera. + * + * If {@link #camera} is null, this method is a no-op. + */ + private void addCameraView() { + if (camera != null) { relativelayout.addView(camera); relativelayout.bringChildToFront(view); } @@ -588,37 +609,10 @@ public class NavitGraphics { public NavitGraphics(final Activity activity, NavitGraphics parent, int x, int y, int w, int h, int wraparound, int use_camera) { if (parent == null) { - this.activity = (Navit) activity; - view = new NavitView(activity); - //activity.registerForContextMenu(view); - view.setClickable(false); - view.setFocusable(true); - view.setFocusableInTouchMode(true); - view.setKeepScreenOn(true); - relativelayout = new RelativeLayout(activity); if (use_camera != 0) { - SetCamera(use_camera); + addCamera(); } - relativelayout.addView(view); - - /* The navigational and status bar tinting code is meaningful only on API19+ */ - if (Build.VERSION.SDK_INT >= 19) { - frameLayout = new FrameLayout(activity); - frameLayout.addView(relativelayout); - leftTintView = new SystemBarTintView(activity); - rightTintView = new SystemBarTintView(activity); - topTintView = new SystemBarTintView(activity); - bottomTintView = new SystemBarTintView(activity); - frameLayout.addView(leftTintView); - frameLayout.addView(rightTintView); - frameLayout.addView(topTintView); - frameLayout.addView(bottomTintView); - activity.setContentView(frameLayout); - } else { - activity.setContentView(relativelayout); - } - - view.requestFocus(); + setActivity(activity); } else { draw_bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); bitmap_w = w; @@ -632,6 +626,42 @@ public class NavitGraphics { parent_graphics = parent; } + /** + * @brief Sets up the main activity. + * + * @param activity The main activity. + */ + protected void setActivity(final Activity activity) { + this.activity = (Navit) activity; + view = new NavitView(activity); + view.setClickable(false); + view.setFocusable(true); + view.setFocusableInTouchMode(true); + view.setKeepScreenOn(true); + relativelayout = new RelativeLayout(activity); + addCameraView(); + relativelayout.addView(view); + + /* The navigational and status bar tinting code is meaningful only on API19+ */ + if (Build.VERSION.SDK_INT >= 19) { + frameLayout = new FrameLayout(activity); + frameLayout.addView(relativelayout); + leftTintView = new SystemBarTintView(activity); + rightTintView = new SystemBarTintView(activity); + topTintView = new SystemBarTintView(activity); + bottomTintView = new SystemBarTintView(activity); + frameLayout.addView(leftTintView); + frameLayout.addView(rightTintView); + frameLayout.addView(topTintView); + frameLayout.addView(bottomTintView); + activity.setContentView(frameLayout); + } else { + activity.setContentView(relativelayout); + } + + view.requestFocus(); + } + public enum msg_type { CLB_ZOOM_IN, CLB_ZOOM_OUT, CLB_REDRAW, CLB_MOVE, CLB_BUTTON_UP, CLB_BUTTON_DOWN, CLB_SET_DESTINATION, CLB_SET_DISPLAY_DESTINATION, CLB_CALL_CMD, CLB_COUNTRY_CHOOSER, CLB_LOAD_MAP, CLB_UNLOAD_MAP, CLB_DELETE_MAP |