shjung 2 yıl önce
ebeveyn
işleme
ddb975c218

BIN
app-release - old.apk


BIN
app/release/app-release - old.apk


+ 50 - 27
app/src/main/java/com/tsi/navi/activity/MainActivity.java

@@ -103,6 +103,7 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
     private boolean dispAllSignal = false;
     private boolean isTrackingMode = false;
     private boolean isDebugMode = false;
+    private boolean dispCvibSignal = false;
     private double trackingZoom;
     private float currSpeed = 0;
     private float lastBearing = -1, currBearing = -1;
@@ -179,12 +180,12 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
                 }
                 else {
                     CpuNodeStatusDTO status = this.mapper.readValue(message, CpuNodeStatusDTO.class);
-                    if (directionSignalFragment.isVisible() && directionSignalFragment.getNodeId() == status.getA()) {
-                        directionSignalFragment.updateSignal(status);
-                    }
                     if (directionNaviSignalFragment.isVisible() && directionNaviSignalFragment.getNodeId() == status.getA()) {
                         directionNaviSignalFragment.updateSignal(status);
                     }
+                    if (directionSignalFragment.isVisible() && directionSignalFragment.getNodeId() == status.getA()) {
+                        directionSignalFragment.updateSignal(status);
+                    }
                     if (userSignalFragment.isVisible() && userSignalFragment.getNodeId() == status.getA()) {
                         userSignalFragment.updateSignal(status, 10);
                     }
@@ -209,12 +210,12 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
                 if (this.userSignalFragment.isVisible()) {
                     this.fragmentManager.beginTransaction().hide(this.userSignalFragment).commit();
                 }
-                if (this.directionSignalFragment.isVisible()) {
-                    this.fragmentManager.beginTransaction().hide(this.directionSignalFragment).commit();
-                }
                 if (this.directionNaviSignalFragment.isVisible()) {
                     this.fragmentManager.beginTransaction().hide(this.directionNaviSignalFragment).commit();
                 }
+                if (this.directionSignalFragment.isVisible()) {
+                    this.fragmentManager.beginTransaction().hide(this.directionSignalFragment).commit();
+                }
             }
         } catch (Exception e) {
             Log.e(TAG, "Request topic error: " + e.getMessage());
@@ -287,6 +288,7 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
         this.context = MainActivity.this;
         this.deviceId = PrefManager.getDeviceId(this);
         this.dispAllSignal = PrefManager.getDispAreaCross(this);
+        this.dispCvibSignal = PrefManager.getDispCvibSignal(this);
 
         TsiNaviApplication.getMapConfig().loadConfig(this);
         //this.tsiApiService = ApiUtils.getApiService(PrefManager.getApiUrl(this));
@@ -360,7 +362,6 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
             inflater.inflate(R.menu.bottom_menu, popup.getMenu());
 
             MenuItem itemDispCross = popup.getMenu().findItem(R.id.menu_disp_cross);
-            //itemDispCross.setVisible(false);
             if (itemDispCross != null) {
                 if (this.dispAllSignal) {
                     itemDispCross.setIcon(R.drawable.ic_check_yes);
@@ -378,7 +379,15 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
                     itemDebugMode.setIcon(R.drawable.ic_check_no);
                 }
             }
-
+            MenuItem itemDispCvib = popup.getMenu().findItem(R.id.menu_disp_cvib);
+            if (itemDispCvib != null) {
+                if (this.dispCvibSignal) {
+                    itemDispCvib.setIcon(R.drawable.ic_check_yes);
+                }
+                else {
+                    itemDispCvib.setIcon(R.drawable.ic_check_no);
+                }
+            }
             binding.fabMenu.setImageResource(R.drawable.ic_action_close);
 
             popup.setOnMenuItemClickListener(item -> {
@@ -472,28 +481,40 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
                         if (!this.isTrackingMode) {
                             if (this.dispAllSignal) {
                                 if (this.selectedNode != null) {
-                                    if (!this.directionSignalFragment.isVisible()) {
-                                        this.fragmentManager.beginTransaction().show(this.directionSignalFragment).commit();
-                                        this.directionSignalFragment.setNodeCross(this.selectedNode, 10);
-                                    }
                                     if (!this.directionNaviSignalFragment.isVisible()) {
                                         this.fragmentManager.beginTransaction().show(this.directionNaviSignalFragment).commit();
                                         this.directionNaviSignalFragment.setNodeCross(this.selectedNode, 10);
                                     }
+                                    if (this.dispCvibSignal && !this.directionSignalFragment.isVisible()) {
+                                        this.fragmentManager.beginTransaction().show(this.directionSignalFragment).commit();
+                                        this.directionSignalFragment.setNodeCross(this.selectedNode, 10);
+                                    }
                                 }
                             }
                             else {
-                                if (this.directionSignalFragment.isVisible()) {
-                                    //this.fragmentManager.beginTransaction().hide(this.directionSignalFragment).commit();
-                                    this.directionSignalFragment.setNodeCross(null, 10);
-                                }
                                 if (this.directionNaviSignalFragment.isVisible()) {
                                     //this.fragmentManager.beginTransaction().hide(this.directionNaviSignalFragment).commit();
                                     this.directionNaviSignalFragment.setNodeCross(null, 10);
                                 }
+                                if (this.directionSignalFragment.isVisible()) {
+                                    //this.fragmentManager.beginTransaction().hide(this.directionSignalFragment).commit();
+                                    this.directionSignalFragment.setNodeCross(null, 10);
+                                }
                             }
                         }
                         break;
+                    case R.id.menu_disp_cvib:
+                        this.dispCvibSignal = !this.dispCvibSignal;
+                        PrefManager.setDispAreaCross(this.context, this.dispCvibSignal);
+                        if (this.dispCvibSignal && this.directionNaviSignalFragment.isVisible() && !this.directionSignalFragment.isVisible()) {
+                            this.directionSignalFragment.setNodeCross(this.directionNaviSignalFragment.getNode(), this.directionNaviSignalFragment.getDirection());
+                            this.fragmentManager.beginTransaction().show(this.directionSignalFragment).commit();
+                        }
+                        if (!this.dispCvibSignal && this.directionSignalFragment.isVisible()) {
+                            this.directionSignalFragment.setNodeCross(this.directionNaviSignalFragment.getNode(), this.directionNaviSignalFragment.getDirection());
+                            this.fragmentManager.beginTransaction().hide(this.directionSignalFragment).commit();
+                        }
+                        break;
                     case R.id.menu_debug_mode:
                         this.isDebugMode = !this.isDebugMode;
                         mapUtils.setDebugMode(this.isDebugMode);
@@ -501,11 +522,13 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
                         if (!this.isDebugMode) {
                             if (this.gpsTracking.getRequestNode() != null) {
                                 requestTopicMessage("x");
-                                this.directionSignalFragment.setNodeCross(null, 10);
                                 this.directionNaviSignalFragment.setNodeCross(null, 10);
+                                this.directionSignalFragment.setNodeCross(null, 10);
                             }
                             if (this.directionSignalFragment.isVisible()) {
                                 this.fragmentManager.beginTransaction().hide(this.directionSignalFragment).commit();
+                            }
+                            if (this.directionNaviSignalFragment.isVisible()) {
                                 this.fragmentManager.beginTransaction().hide(this.directionNaviSignalFragment).commit();
                             }
                         }
@@ -991,12 +1014,12 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
         setRequestNode(node);
 
         this.userSignalFragment.setNodeCross(null);
-        this.directionSignalFragment.setNodeCross(node, directionCode);
         this.directionNaviSignalFragment.setNodeCross(node, directionCode);
+        this.directionSignalFragment.setNodeCross(node, directionCode);
 
         requestTopicMessage(String.valueOf(nodeId));
 
-        if (!this.directionSignalFragment.isVisible()) {
+        if (this.dispCvibSignal && !this.directionSignalFragment.isVisible()) {
             this.fragmentManager.beginTransaction().show(this.directionSignalFragment).commit();
         }
         if (!this.directionNaviSignalFragment.isVisible()) {
@@ -1121,22 +1144,22 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
             }
 
             if (this.dispAllSignal) {
-                if (!this.directionSignalFragment.isVisible()) {
-                    //TODO Log.e(TAG, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: " + this.selectedNode);
-                    if (this.selectedNode != null) this.fragmentManager.beginTransaction().show(this.directionSignalFragment).commit();
-                }
                 if (!this.directionNaviSignalFragment.isVisible()) {
                     //TODO Log.e(TAG, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: " + this.selectedNode);
                     if (this.selectedNode != null) this.fragmentManager.beginTransaction().show(this.directionNaviSignalFragment).commit();
                 }
+                if (this.dispCvibSignal && !this.directionSignalFragment.isVisible()) {
+                    //TODO Log.e(TAG, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX: " + this.selectedNode);
+                    if (this.selectedNode != null) this.fragmentManager.beginTransaction().show(this.directionSignalFragment).commit();
+                }
             }
             else {
-                if (this.directionSignalFragment.isVisible()) {
-                    //this.fragmentManager.beginTransaction().hide(this.directionSignalFragment).commit();
-                }
                 if (this.directionNaviSignalFragment.isVisible()) {
                     //this.fragmentManager.beginTransaction().hide(this.directionNaviSignalFragment).commit();
                 }
+                if (this.directionSignalFragment.isVisible()) {
+                    //this.fragmentManager.beginTransaction().hide(this.directionSignalFragment).commit();
+                }
             }
         }
     }
@@ -1146,8 +1169,8 @@ public class MainActivity extends AppCompatActivity implements OnMapReadyCallbac
             this.naverMap.moveCamera(CameraUpdate.scrollTo(this.selectedNode.getLatLng()));
 
             this.userSignalFragment.setNodeCross(this.selectedNode);
-            this.directionSignalFragment.setNodeCross(this.selectedNode, 10);
             this.directionNaviSignalFragment.setNodeCross(this.selectedNode, 10);
+            this.directionSignalFragment.setNodeCross(this.selectedNode, 10);
             requestTopicMessage(String.valueOf(this.selectedNode.getNodeId()));
         }
     }

+ 11 - 1
app/src/main/java/com/tsi/navi/activity/fragment/DirectionNaviSignalFragment.java

@@ -159,6 +159,12 @@ public class DirectionNaviSignalFragment extends Fragment {
     // 소등(0), 적색점등(1), 황색점등(2), 녹색점등(3), 적색점멸(4), 황색점멸(5), 녹색점멸(6)
     // 미지정(0), 직진(1), 좌회전(2), 보행자(3), 자전거(4), 우회전(5), 버스(6), 유턴(7)
 
+    public NodeVo getNode() {
+        return this.node;
+    }
+    public int getDirection() {
+        return this.directionCode;
+    }
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
@@ -376,7 +382,11 @@ public class DirectionNaviSignalFragment extends Fragment {
             // 레드, 옐로우 켜져 있으면 옐로우 신호 표출
             this.sigIdx[0] = 0;
         }
-
+        if ((this.sigIdx[2] == 1 || this.sigIdx[3] == 1) && (this.sigIdx[0] == 1 || this.sigIdx[1] == 2)) {
+            // 직진 좌회전 등이 들어왔는데 적색, 옐로우 등도 같이 켜지는 경우
+            this.sigIdx[0] = 0;
+            this.sigIdx[1] = 0;
+        }
         if (remainSeconds < 0) remainSeconds = 255;
         this.tvCycle.setText(" " +String.valueOf(remainSeconds));
         for (int ii = 0; ii < this.MAX_SIGNAL; ii++) {

+ 8 - 0
app/src/main/java/com/tsi/navi/preferences/PrefManager.java

@@ -24,6 +24,7 @@ public final class PrefManager {
     public static final String NODE_VERSION  = "nodeVersion";
     public static final String WEBSOCKET_URL = "websocketUrl";
     public static final String DISP_AREA_CROSS = "dispAreaCross";
+    public static final String DISP_CVIB_SIGNAL = "dispCvibSignal";
 
     public static final String MAP_TYPE = "mapType";
     public static final String MAP_RUN_ZOOM = "mapRunZoom";
@@ -161,6 +162,13 @@ public final class PrefManager {
         PrefManager.putBoolean(context, DISP_AREA_CROSS, value);
     }
 
+    public static boolean getDispCvibSignal(final Context context) {
+        return PrefManager.getBoolean(context, DISP_CVIB_SIGNAL, false);
+    }
+    public static void setDispCvibSignal(final Context context, boolean value){
+        PrefManager.putBoolean(context, DISP_CVIB_SIGNAL, value);
+    }
+
     public static String getNodeVersion(final Context context) {
         return PrefManager.getString(context, NODE_VERSION, PrefDefaultValue.NODE_VERSION);
     }

+ 7 - 0
app/src/main/res/menu/bottom_menu.xml

@@ -16,6 +16,13 @@
         android:title="@string/menu_disp_cross"
         app:showAsAction="never" />
 
+    <item
+        android:id="@+id/menu_disp_cvib"
+        android:enabled="true"
+        android:icon="@drawable/ic_check_no"
+        android:title="@string/menu_disp_cvib"
+        app:showAsAction="never" />
+
     <item
         android:id="@+id/menu_debug_mode"
         android:enabled="true"

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -12,6 +12,7 @@
     <string name="menu_disp_cross">지도영역 교차로 표출</string>
 -->
     <string name="menu_disp_cross">사용자+주행 신호정보 표출</string>
+    <string name="menu_disp_cvib">신호정보 상세 표출</string>
     <string name="menu_debug_mode">디버그 모드</string>
     <string name="menu_map_settings">지도설정</string>
     <string name="menu_map_cache_delete">지도캐시초기화</string>