diff --git a/common/src/main/java/com/xypower/common/MicroPhotoContext.java b/common/src/main/java/com/xypower/common/MicroPhotoContext.java index 715162b2..1836806f 100644 --- a/common/src/main/java/com/xypower/common/MicroPhotoContext.java +++ b/common/src/main/java/com/xypower/common/MicroPhotoContext.java @@ -28,10 +28,13 @@ public class MicroPhotoContext { public static final String ACTION_HEARTBEAT_MP = "com.xypower.mpapp.ACT_HB"; public static final String ACTION_RESTART_MP = "com.xypower.mpapp.ACT_RESTART"; - public final static String DEFAULT_MASTER_URL = "http://61.169.135.150:40101/"; + public final static String DEFAULT_MASTER_SERVER = "61.169.135.150"; + public final static int DEFAULT_MASTER_PORT = 40101; + public final static String DEFAULT_MASTER_URL = "http://" + DEFAULT_MASTER_SERVER + ":" + Integer.toString(DEFAULT_MASTER_PORT) + "/"; public final static String MASTER_URL_CMDID = "cmdid"; + public final static int DEFAULT_PROTOCOL = 0xFF00; - public final static int DEFAULT_HEARTBEAT_TIME_FOR_SEPARATE_NW = 575; // 9:35 + public final static int DEFAULT_HEARTBEAT_TIME_FOR_SEPARATE_NW = 9 * 3600 + 35 * 60; // unit second 9:35 public final static int DEFAULT_HEARTBEAT_FOR_SHARED_NW = 10; // minutes public final static int DEFAULT_QUICK_HEARTBEAT = 60; // second @@ -114,6 +117,23 @@ public class MicroPhotoContext { return null; } + public static String formatHeartbeatTime(int ts) { + int hours = ts / 3600; + int minutes = (ts / 60) % 60; + int seconds = ts % 60; + + String str = ""; + if (seconds != 0) { + str = ((seconds < 10) ? ":0" : ":") + Integer.toString(seconds); + } + + str = ((minutes < 10) ? ":0" : ":") + Integer.toString(minutes) + str; + + str = ((hours < 10) ? "0" : "") + Integer.toString(hours) + str; + + return str; + } + public static boolean isAppAlive(Context context, String packageName) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List services = am.getRunningServices(Integer.MAX_VALUE); diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java b/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java index 02f9a6d5..06cd3590 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/MainActivity.java @@ -61,10 +61,6 @@ public class MainActivity extends AppCompatActivity { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); - MicroPhotoContext.AppConfig appConfig = MicroPhotoContext.getMpAppConfig(getApplicationContext()); - ((TextView) findViewById((R.id.cmdid))).setText(TextUtils.isEmpty(appConfig.cmdid) ? "" : appConfig.cmdid); - - startMicroPhotoService(getApplicationContext()); } @@ -101,6 +97,48 @@ public class MainActivity extends AppCompatActivity { } } + @Override + protected void onResume() { + super.onResume(); + + Context context = getApplicationContext(); + MicroPhotoContext.AppConfig appConfig = MicroPhotoContext.getMpAppConfig(context); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("CMDID:" + (TextUtils.isEmpty(appConfig.cmdid) ? "" : appConfig.cmdid)); + + MicroPhotoContext.MasterConfig masterConfig = MicroPhotoContext.getMasterConfig(context); + stringBuilder.append("\r\n"); + stringBuilder.append("运维主站:" + (TextUtils.isEmpty(masterConfig.server) ? MicroPhotoContext.DEFAULT_MASTER_SERVER : masterConfig.server)); + stringBuilder.append(":"); + stringBuilder.append(Integer.toString((masterConfig.port != 0) ? masterConfig.port : MicroPhotoContext.DEFAULT_MASTER_PORT)); + stringBuilder.append("\r\n"); + + stringBuilder.append("心跳模式:"); + if (masterConfig.usingAbsHbTime != 0) { + stringBuilder.append("固定时间心跳 "); + if (masterConfig.absHeartbeats != null && masterConfig.absHeartbeats.length > 0) { + for (int item : masterConfig.absHeartbeats) { + stringBuilder.append(MicroPhotoContext.formatHeartbeatTime(item)); + stringBuilder.append(" "); + } + } else { + stringBuilder.append(MicroPhotoContext.formatHeartbeatTime(MicroPhotoContext.DEFAULT_HEARTBEAT_TIME_FOR_SEPARATE_NW)); + } + } + else { + stringBuilder.append("周期性心跳 / " + masterConfig.heartbeat + "分钟"); + } + stringBuilder.append("\r\n"); + + stringBuilder.append("运维网络:"); + stringBuilder.append(masterConfig.separateNetwork != 0 ? "独立网络" : "公用网络"); + stringBuilder.append("\r\n"); + + ((TextView) findViewById((R.id.cmdid))).setText(stringBuilder.toString()); + + + } + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { diff --git a/mpmaster/src/main/res/drawable/ic_in_mntn_mode.xml b/mpmaster/src/main/res/drawable/ic_in_mntn_mode.xml new file mode 100644 index 00000000..ece9e319 --- /dev/null +++ b/mpmaster/src/main/res/drawable/ic_in_mntn_mode.xml @@ -0,0 +1,5 @@ + + + diff --git a/mpmaster/src/main/res/layout/activity_main.xml b/mpmaster/src/main/res/layout/activity_main.xml index a6194e94..9dddfa78 100644 --- a/mpmaster/src/main/res/layout/activity_main.xml +++ b/mpmaster/src/main/res/layout/activity_main.xml @@ -13,9 +13,19 @@ android:layout_marginStart="12dp" android:layout_marginTop="12dp" android:textSize="24sp" + android:lineSpacingMultiplier="1.25" android:text="" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + \ No newline at end of file