summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormvglasow <michael -at- vonglasow.com>2019-02-21 02:33:57 +0100
committermvglasow <michael -at- vonglasow.com>2019-02-21 02:33:57 +0100
commitf6cea0c798c53eafa2f0e58a26e7c2fc607a3694 (patch)
tree6933d77570b05ac098abf4dafccbbf391418907e
parent0428ef92825cfa2d9949a9ea6ef84e0d98fb8fba (diff)
downloadnavit-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.java92
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