<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
+ <component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
package com.ic.sos;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.lifecycle.Observer;
-
-import android.content.Intent;
import android.os.Bundle;
-import android.support.v4.app.INotificationSideChannel;
import android.view.View;
+import androidx.appcompat.app.AppCompatActivity;
+
/**
* SOS拨号策略:
* 影响因素有:
public void checkNextCall() {
boolean doCallNext;
//是否进行下一个拨号,结合策略和是否有接听
-
//已经接听了
//stop,continue,loop
if ("continue".equals(callWay)) {
+ //如果拨通了,就不再往下轮询了
//播完此轮就好
- doCallNext = currentCallIndex != phoneNumList.size() - 1;
+ boolean isLastOne = currentCallIndex == phoneNumList.size() - 1;
+ //是否有拨通hasRemoteAnswer
+ boolean isLastLoop = currentLoopGroupTime == loopTime;
+ //有接听的,拨完这轮,没接听的,一直拨到最后一轮
+ doCallNext = (hasRemoteAnswer && !isLastOne) || !isLastLoop;
} else if ("loop".equals(callWay)) {
//连续拨打完目标轮询组的次数
doCallNext = currentLoopGroupTime != loopTime;
ICLogger.d("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
//组的叠加会在拨号位置到了列表尾部时增加
if (doCallNext) {
- handler.postDelayed(this::doSosCall, 10000);
+ handler.postDelayed(this::doSosCall, 1000);
} else {
ICLogger.d("结束界面...");
stateValue.postValue(SOSState.FINISH);