Browse Source

离开打招呼啊可配置

tags/A.2.3.0.0
李俊才 2 years ago
parent
commit
c754e328d4
14 changed files with 74 additions and 18 deletions
  1. BIN
      app/src/main/assets/faces.db3
  2. +19
    -0
      app/src/main/java/com/aispeech/nativedemo/config/ConfigManager.java
  3. +2
    -0
      app/src/main/java/com/aispeech/nativedemo/db/SkillBuilder.java
  4. +1
    -0
      app/src/main/java/com/aispeech/nativedemo/entity/Model.java
  5. +1
    -0
      app/src/main/java/com/aispeech/nativedemo/entity/Skill.java
  6. +3
    -1
      app/src/main/java/com/aispeech/nativedemo/face/ChatMode.java
  7. +20
    -8
      app/src/main/java/com/aispeech/nativedemo/face/FaceChatGreetingQueueMode.java
  8. +6
    -1
      app/src/main/java/com/aispeech/nativedemo/face/FaceChatMode.java
  9. +8
    -2
      app/src/main/java/com/aispeech/nativedemo/face/FaceManager.java
  10. +6
    -1
      app/src/main/java/com/aispeech/nativedemo/face/FaceReceptionClearByTimeMode.java
  11. +6
    -1
      app/src/main/java/com/aispeech/nativedemo/face/FaceReceptionMode.java
  12. +1
    -3
      app/src/main/java/com/aispeech/nativedemo/network/ws/DigiWebSocketServer.java
  13. +1
    -1
      app/src/main/java/com/aispeech/nativedemo/setting/SettingDialog.java
  14. BIN
      faces.db3

BIN
app/src/main/assets/faces.db3 View File


+ 19
- 0
app/src/main/java/com/aispeech/nativedemo/config/ConfigManager.java View File

@@ -33,6 +33,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;

import okhttp3.MediaType;
import okhttp3.RequestBody;
@@ -41,6 +42,7 @@ public class ConfigManager {
private static final String TAG = "ConfigManager";
private volatile static ConfigManager mInstance;
private long mUserTimeStamp = 0;
private ConcurrentHashMap<String, Skill> mSkillHashMap = new ConcurrentHashMap<>();

private ConfigManager() {

@@ -268,6 +270,7 @@ public class ConfigManager {
if (obj.has("data")) {
JSONArray array = obj.getJSONArray("data");
MessageUtils.sendSkills(array.toString());
mSkillHashMap.clear();
for (int i = 0; i < array.length(); i++) {
JSONObject jsonObject = array.getJSONObject(i);
Skill skill = new Skill();
@@ -280,6 +283,7 @@ public class ConfigManager {
skill.motionId = jsonObject.optString("motionId");
skill.motionName = jsonObject.optString("motionName");
SkillDbHelper.getInstance().add(skill);
mSkillHashMap.put(skill.skillCode, skill);
}
if (obj.has("timestamp")) {
mUserTimeStamp = obj.optLong("timestamp");
@@ -342,6 +346,10 @@ public class ConfigManager {
if(jsonObject.has("background")){
MessageUtils.sendBackground(model.background.url);
}
if(jsonObject.has("direction")){
model.direction = jsonObject.optInt("direction", 0);
FaceManager.getInstance().setGreetingLeaveType(model.direction);
}
if(jsonObject.has("icon")){
MessageUtils.sendIcon(model.icon.url, model.icon.type);
}
@@ -508,4 +516,15 @@ public class ConfigManager {
// MqttManager.getInstance(MainActivity.instance).getFileUploadPath(Config.ErrorEvent.ERROR_UPLOAD_WARNING, Config.ErrorEvent.ERROR_LEVEL_URGENT, "process_status", TAG);
}
}

public Skill getSkillByTag(String type) {
if (mSkillHashMap.get(type) != null) {
return mSkillHashMap.get(type);
}
Skill skill = SkillDbHelper.getInstance().getBySkillCode(type);
if (skill != null) {
mSkillHashMap.put(skill.skillCode, skill);
}
return skill;
}
}

+ 2
- 0
app/src/main/java/com/aispeech/nativedemo/db/SkillBuilder.java View File

@@ -18,6 +18,7 @@ public class SkillBuilder implements DatabaseBuilder<Skill>{
skill.skillCode = (query.getString(query.getColumnIndex("skill_code")));
skill.info = (query.getString(query.getColumnIndex("info")));
skill.resp = (query.getString(query.getColumnIndex("resp")));
skill.leavingResp = (query.getString(query.getColumnIndex("leavingResp")));
skill.motionId = (query.getString(query.getColumnIndex("motionId")));
skill.motionName = (query.getString(query.getColumnIndex("motionName")));
return skill;
@@ -32,6 +33,7 @@ public class SkillBuilder implements DatabaseBuilder<Skill>{
contentValues.put("skill_code",skill.skillCode);
contentValues.put("info",skill.info);
contentValues.put("resp",skill.resp);
contentValues.put("leavingResp",skill.leavingResp);
contentValues.put("motionId",skill.motionId);
contentValues.put("motionName",skill.motionName);
return contentValues;


+ 1
- 0
app/src/main/java/com/aispeech/nativedemo/entity/Model.java View File

@@ -12,6 +12,7 @@ public class Model implements Serializable {
public String name;
public String updateTime;
public String nickName;
public int direction = 0;
public int manCode;
public Background background;
public Icon icon;


+ 1
- 0
app/src/main/java/com/aispeech/nativedemo/entity/Skill.java View File

@@ -14,6 +14,7 @@ public class Skill implements Serializable {
public String skillCode;
public String info;
public String resp;
public String leavingResp;
public String motionId;
public String motionName;



+ 3
- 1
app/src/main/java/com/aispeech/nativedemo/face/ChatMode.java View File

@@ -13,9 +13,11 @@ public interface ChatMode {

void changeGreetingDelay(long delay);

void changeGreetingLeaveDuration(int greetingLeaveDuration);

long getGreetingDelay();

void setGreetingLeaveType(int greetingLeaveType, String greetingLeaveResp, int greetingLeaveDuration);
void setGreetingLeaveType(int greetingLeaveType);

List<PersonInfo> getPersonInScreen();
}

+ 20
- 8
app/src/main/java/com/aispeech/nativedemo/face/FaceChatGreetingQueueMode.java View File

@@ -9,6 +9,7 @@ import android.util.Log;
import com.aispeech.nativedemo.MainActivity;
import com.aispeech.nativedemo.asr.observer.DuiMessageObserver;
import com.aispeech.nativedemo.config.Config;
import com.aispeech.nativedemo.config.ConfigManager;
import com.aispeech.nativedemo.db.EmpStrongDbHelper;
import com.aispeech.nativedemo.db.ModelDbHelper;
import com.aispeech.nativedemo.db.SkillDbHelper;
@@ -160,16 +161,19 @@ public class FaceChatGreetingQueueMode implements ChatMode {
UNKNOWN_GREETING_DURATION = delay;
}

@Override
public void changeGreetingLeaveDuration(int greetingLeaveDuration) {
PersonInfo.LEAVE_DURATION = greetingLeaveDuration;
}

@Override
public long getGreetingDelay() {
return UNKNOWN_GREETING_DURATION;
}

@Override
public void setGreetingLeaveType(int greetingLeaveType, String greetingLeaveResp, int greetingLeaveDuration) {
public void setGreetingLeaveType(int greetingLeaveType) {
this.greetingLeaveType = greetingLeaveType;
this.greetingLeaveResp = greetingLeaveResp;
PersonInfo.LEAVE_DURATION = greetingLeaveDuration;
}

@Override
@@ -653,11 +657,15 @@ public class FaceChatGreetingQueueMode implements ChatMode {

public void greeting() {
int greetingType = greetingLeaveType;
String greetingResp = greetingLeaveResp;
for (PersonInfo value : mPersonsInScreen) {
// 是否有脸
long time = System.currentTimeMillis();
int type = value.hasDirectionByHD(greetingType);
Skill skill = ConfigManager.getInstance().getSkillByTag(value.tag);
String greetingResp = null;
if (skill != null) {
greetingResp = skill.leavingResp;
}
if (type == NEED_LEAVE_GREETING_CUSTOM && TextUtils.isEmpty(greetingResp)) {
continue;
}
@@ -668,7 +676,7 @@ public class FaceChatGreetingQueueMode implements ChatMode {
if (type != NEED_LEAVE_GREETING_CUSTOM) {
greetingResp = null;
}
sendGreeting(value, greetingResp);
sendGreeting(value, skill, greetingResp);
return;
}
}
@@ -676,6 +684,11 @@ public class FaceChatGreetingQueueMode implements ChatMode {
// 是否有脸
long time = System.currentTimeMillis();
int type = value.hasDirectionByHD(greetingType);
Skill skill = ConfigManager.getInstance().getSkillByTag(value.tag);
String greetingResp = null;
if (skill != null) {
greetingResp = skill.leavingResp;
}
if (type == NEED_LEAVE_GREETING_CUSTOM && TextUtils.isEmpty(greetingResp)) {
continue;
}
@@ -687,13 +700,13 @@ public class FaceChatGreetingQueueMode implements ChatMode {
if (type != NEED_LEAVE_GREETING_CUSTOM) {
greetingResp = null;
}
sendGreeting(value, greetingResp);
sendGreeting(value, skill, greetingResp);
break;
}
}
}

public void sendGreeting(PersonInfo message, String greetingLeaveResp) {
public void sendGreeting(PersonInfo message, Skill skill, String greetingLeaveResp) {
try {
JSONObject obj = new JSONObject();
obj.put("type", "greeting");
@@ -712,7 +725,6 @@ public class FaceChatGreetingQueueMode implements ChatMode {
person.put("lastInTime", message.last_in_time); // 进入屏幕的时间
person.put("lastGreetTime", message.last_greet_time); // 打招呼的时间
person.put("directionType", message.hd_position_type.ordinal()); // 运动的方向
Skill skill = SkillDbHelper.getInstance().getByType(message.tag);
if (skill != null) {
person.put("skillStatus", skill.status);
if (TextUtils.isEmpty(greetingLeaveResp)) {


+ 6
- 1
app/src/main/java/com/aispeech/nativedemo/face/FaceChatMode.java View File

@@ -1150,13 +1150,18 @@ public class FaceChatMode implements ChatMode{

}

@Override
public void changeGreetingLeaveDuration(int greetingLeaveDuration) {

}

@Override
public long getGreetingDelay() {
return 0;
}

@Override
public void setGreetingLeaveType(int greetingLeaveType, String greetingLeaveResp, int greetingLeaveDuration) {
public void setGreetingLeaveType(int greetingLeaveType) {

}



+ 8
- 2
app/src/main/java/com/aispeech/nativedemo/face/FaceManager.java View File

@@ -226,16 +226,22 @@ public class FaceManager implements ChatMode {
mFaceChatReasonMode.greetingReset(id, trackId);
}

@Override
public void changeGreetingDelay(long delay) {
mFaceChatReasonMode.changeGreetingDelay(delay);
}

@Override
public void changeGreetingLeaveDuration(int greetingLeaveDuration) {
mFaceChatReasonMode.changeGreetingLeaveDuration(greetingLeaveDuration);
}

public long getGreetingDelay() {
return mFaceChatReasonMode.getGreetingDelay();
}

public void setGreetingLeaveType(int greetingLeaveType, String greetingLeaveResp, int greetingLeaveDuration) {
mFaceChatReasonMode.setGreetingLeaveType(greetingLeaveType, greetingLeaveResp, greetingLeaveDuration);
public void setGreetingLeaveType(int greetingLeaveType) {
mFaceChatReasonMode.setGreetingLeaveType(greetingLeaveType);
}

public List<PersonInfo> getPersonInScreen() {


+ 6
- 1
app/src/main/java/com/aispeech/nativedemo/face/FaceReceptionClearByTimeMode.java View File

@@ -109,13 +109,18 @@ public class FaceReceptionClearByTimeMode implements ChatMode {

}

@Override
public void changeGreetingLeaveDuration(int greetingLeaveDuration) {

}

@Override
public long getGreetingDelay() {
return 0;
}

@Override
public void setGreetingLeaveType(int greetingLeaveType, String greetingLeaveResp, int greetingLeaveDuration) {
public void setGreetingLeaveType(int greetingLeaveType) {

}



+ 6
- 1
app/src/main/java/com/aispeech/nativedemo/face/FaceReceptionMode.java View File

@@ -482,13 +482,18 @@ public class FaceReceptionMode implements ChatMode {

}

@Override
public void changeGreetingLeaveDuration(int greetingLeaveDuration) {

}

@Override
public long getGreetingDelay() {
return 0;
}

@Override
public void setGreetingLeaveType(int greetingLeaveType, String greetingLeaveResp, int greetingLeaveDuration) {
public void setGreetingLeaveType(int greetingLeaveType) {

}



+ 1
- 3
app/src/main/java/com/aispeech/nativedemo/network/ws/DigiWebSocketServer.java View File

@@ -155,12 +155,10 @@ public class DigiWebSocketServer extends WebSocketServer {
String trackId = obj.optString("trackId");
FaceManager.getInstance().greetingReset(id, trackId);
} else if (type.equals("H5Setting")) {
int greetingLeaveType = obj.optInt("greetingLeaveType", 0);
String greetingLeaveResp = obj.optString("greetingLeaveResp", "");
int greetingLeaveDuration = obj.optInt("greetingLeaveDuration", 15*1000);
int greetingUndeterminedDelay = obj.optInt("greetingUndeterminedDelay", 2000);
FaceManager.getInstance().setGreetingLeaveType(greetingLeaveType, greetingLeaveResp, greetingLeaveDuration);
FaceManager.getInstance().changeGreetingDelay(greetingUndeterminedDelay);
FaceManager.getInstance().changeGreetingLeaveDuration(greetingLeaveDuration);
}
} catch (JSONException e) {
throw new RuntimeException(e);


+ 1
- 1
app/src/main/java/com/aispeech/nativedemo/setting/SettingDialog.java View File

@@ -79,7 +79,7 @@ public class SettingDialog extends Dialog {
FaceManager.getInstance().changeGreetingDelay(delay);
}
if (duration != null) {
FaceManager.getInstance().setGreetingLeaveType(1, "您慢走", duration);
FaceManager.getInstance().changeGreetingLeaveDuration(duration);
}
Toast.makeText(getContext(), "修改成功", Toast.LENGTH_LONG).show();
dismiss();


BIN
faces.db3 View File


Loading…
Cancel
Save