重构代码
authorTrillGates <williamtrillgates@gmail.com>
Fri, 22 Oct 2021 02:18:57 +0000 (10:18 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Fri, 22 Oct 2021 02:18:57 +0000 (10:18 +0800)
app/src/main/java/com/ic/sos/MainActivity.java
app/src/main/java/com/ic/sos/SOSPresenter.java
app/src/main/java/com/ic/sos/SOSState.java

index 5977aba..826e317 100644 (file)
@@ -15,7 +15,7 @@ import android.support.v4.app.INotificationSideChannel;
  * - 拨通不再往下拨号-(有一个通了,不再往下拨号)-stop
  * - 拨通还往下拨号,此次组拨完结束为止(即使拨通了,把本组拨完)- continue
  * - 拨通了往下拨号,直到轮询完(即使拨通了,也要按轮询次数拨完)- loop
- * - 拨号超时(每次拨号计时,不管是否拨通都是挂断)- persist.sys.sos.time(默认值为-1,按系统的拨号超时)
+ * - 拨号超时(每次拨号计时,不管是否拨通都是挂断)- persist.sys.sos.time(默认值为0,按系统的拨号超时)
  */
 public class MainActivity extends AppCompatActivity {
 
@@ -30,6 +30,18 @@ public class MainActivity extends AppCompatActivity {
         initObserver();
     }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        //当UI重新可见的时候,检查是否需要进行下一个拨号
+        //TODO:
+    }
+
+    @Override
+    public void onBackPressed() {
+        //把返回键屏蔽掉
+    }
+
     private void initObserver() {
         sosPresenter.stateValue.observe(this, sosState -> {
             //状态变化,改变UI
index 41e0550..2ed2dd0 100644 (file)
@@ -221,6 +221,7 @@ public class SOSPresenter {
      * 根据策略去拨号
      */
     private void doSosCall() {
+        stateValue.postValue(SOSState.CALLING);
         ICLogger.d("===========================================");
         ICLogger.d("currentCallIndex ==> " + currentCallIndex);
         ICLogger.d("phoneNumList.size() ==> " + phoneNumList.size());
@@ -236,7 +237,7 @@ public class SOSPresenter {
             String targetPhoneNum = phoneNumList.get(currentCallIndex);
             callPhone(targetPhoneNum);
             //开始准备超时
-            if (callDuration != -1) {
+            if (callDuration != 0) {
                 //需要按时挂断
                 handler.removeCallbacks(endCallTask);
                 handler.postDelayed(endCallTask, callDuration * 1000);
@@ -287,13 +288,13 @@ public class SOSPresenter {
     private void initCallDuration() {
         String callDurationStr = SystemUtils.getSystemProperties("persist.sys.sos.time");
         if (TextUtils.isEmpty(callDurationStr)) {
-            callDuration = -1;
+            callDuration = 0;
         } else {
             try {
                 callDuration = Integer.parseInt(callDurationStr);
             } catch (Exception e) {
                 e.printStackTrace();
-                callDuration = -1;
+                callDuration = 0;
             }
         }
     }
index 770feaf..a379749 100644 (file)
@@ -4,4 +4,6 @@ public enum SOSState {
     NONE/*默认状态*/,
     NO_SOS_NUM/*没有SOS号码*/,
     NO_SIM/*没有sim卡*/,
+    CALLING/*正在拨号*/,
+    CALL_FAILED/*拨号失败*/
 }