长按删除单条日志记录
This commit is contained in:
parent
30571834ba
commit
f180ea0835
Binary file not shown.
|
@ -18,6 +18,7 @@ import android.view.MenuInflater;
|
|||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
@ -44,13 +45,25 @@ public class MainActivity extends AppCompatActivity implements ReFlashListView.I
|
|||
private List<LogVo> logVos = new ArrayList<>();
|
||||
private LogAdapter adapter;
|
||||
private ReFlashListView listView;
|
||||
//SIM卡信息
|
||||
//private Map<String, Map> SimInfo = new HashMap();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
Log.d(TAG, "oncreate");
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
//检查权限是否获取
|
||||
checkPermission();
|
||||
|
||||
//获取本机号码(注意:这里获取的不一定是卡槽1的)
|
||||
TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
|
||||
String Line1Number = mTelephonyMgr.getLine1Number();
|
||||
Log.d(TAG, "Line1Number: " + Line1Number);
|
||||
|
||||
//获取SIM卡信息
|
||||
getSimInfo(Line1Number);
|
||||
//MyApplication appContext = ((MyApplication) getApplicationContext());
|
||||
//appContext.setSimInfo(SimInfo);
|
||||
|
||||
setContentView(R.layout.activity_main);
|
||||
LogUtil.init(this);
|
||||
// 先拿到数据并放在适配器上
|
||||
|
@ -67,18 +80,40 @@ public class MainActivity extends AppCompatActivity implements ReFlashListView.I
|
|||
}
|
||||
});
|
||||
|
||||
//检查权限是否获取
|
||||
checkPermission();
|
||||
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
|
||||
@Override
|
||||
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
|
||||
//定义AlertDialog.Builder对象,当长按列表项的时候弹出确认删除对话框
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
|
||||
builder.setMessage("确定删除?");
|
||||
builder.setTitle("提示");
|
||||
|
||||
//获取本机号码(注意:这里获取的不一定是卡槽1的)
|
||||
TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
|
||||
String Line1Number = mTelephonyMgr.getLine1Number();
|
||||
Log.d(TAG, "Line1Number: " + Line1Number);
|
||||
//添加AlertDialog.Builder对象的setPositiveButton()方法
|
||||
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Long id = logVos.get(position - 1).getId();
|
||||
Log.d(TAG, "id = " + id);
|
||||
LogUtil.delLog(id, null);
|
||||
initTLogs(); //初始化数据
|
||||
showList(logVos);
|
||||
Toast.makeText(getBaseContext(), "删除列表项", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
|
||||
//获取SIM卡信息
|
||||
getSimInfo(Line1Number);
|
||||
//MyApplication appContext = ((MyApplication) getApplicationContext());
|
||||
//appContext.setSimInfo(SimInfo);
|
||||
//添加AlertDialog.Builder对象的setNegativeButton()方法
|
||||
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
|
||||
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
builder.create().show();
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 初始化数据
|
||||
|
|
|
@ -59,14 +59,6 @@ public class MyApplication extends Application {
|
|||
return channelName;
|
||||
}
|
||||
|
||||
public Map<String, Map> getSimInfo() {
|
||||
return SimInfo;
|
||||
}
|
||||
|
||||
public void setSimInfo(Map<String, Map> info) {
|
||||
SimInfo = info;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context base) {
|
||||
super.attachBaseContext(base);
|
||||
|
|
|
@ -10,21 +10,11 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
|
||||
public class RuleModel {
|
||||
private String TAG = "RuleModel";
|
||||
private Long id;
|
||||
public static final String FILED_TRANSPOND_ALL = "transpond_all";
|
||||
public static final String FILED_PHONE_NUM = "phone_num";
|
||||
public static final String FILED_MSG_CONTENT = "msg_content";
|
||||
public static final String FILED_MULTI_MATCH="multi_match";
|
||||
public static final String FILED_MULTI_MATCH = "multi_match";
|
||||
public static final Map<String, String> FILED_MAP = new HashMap<String, String>();
|
||||
static{
|
||||
FILED_MAP.put("transpond_all", "转发全部");
|
||||
FILED_MAP.put("phone_num", "手机号");
|
||||
FILED_MAP.put("msg_content", "内容");
|
||||
FILED_MAP.put("multi_match", "多重匹配");
|
||||
}
|
||||
private String filed;
|
||||
|
||||
public static final String CHECK_IS = "is";
|
||||
public static final String CHECK_CONTAIN = "contain";
|
||||
public static final String CHECK_START_WITH = "startwith";
|
||||
|
@ -32,6 +22,13 @@ public class RuleModel {
|
|||
public static final String CHECK_NOT_IS = "notis";
|
||||
public static final Map<String, String> CHECK_MAP = new HashMap<String, String>();
|
||||
|
||||
static {
|
||||
FILED_MAP.put("transpond_all", "转发全部");
|
||||
FILED_MAP.put("phone_num", "手机号");
|
||||
FILED_MAP.put("msg_content", "内容");
|
||||
FILED_MAP.put("multi_match", "多重匹配");
|
||||
}
|
||||
|
||||
static {
|
||||
CHECK_MAP.put("is", "是");
|
||||
CHECK_MAP.put("contain", "包含");
|
||||
|
@ -39,6 +36,10 @@ public class RuleModel {
|
|||
CHECK_MAP.put("endwith", "结尾是");
|
||||
CHECK_MAP.put("notis", "不是");
|
||||
}
|
||||
|
||||
private String TAG = "RuleModel";
|
||||
private Long id;
|
||||
private String filed;
|
||||
private String check;
|
||||
|
||||
private String value;
|
||||
|
@ -46,83 +47,6 @@ public class RuleModel {
|
|||
private Long senderId;
|
||||
private Long time;
|
||||
|
||||
//字段分支
|
||||
public boolean checkMsg(SmsVo msg) throws Exception {
|
||||
|
||||
//检查这一行和上一行合并的结果是否命中
|
||||
boolean mixChecked=false;
|
||||
if(msg!=null){
|
||||
//先检查规则是否命中
|
||||
switch (this.filed){
|
||||
case FILED_TRANSPOND_ALL:
|
||||
mixChecked= true;
|
||||
break;
|
||||
case FILED_PHONE_NUM:
|
||||
mixChecked= checkValue(msg.getMobile());
|
||||
break;
|
||||
case FILED_MSG_CONTENT:
|
||||
mixChecked= checkValue(msg.getContent());
|
||||
break;
|
||||
case FILED_MULTI_MATCH:
|
||||
mixChecked= RuleLineUtils.checkRuleLines(msg,this.value);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Log.i(TAG, "rule:"+this+" checkMsg:"+msg+" checked:"+mixChecked);
|
||||
return mixChecked;
|
||||
|
||||
}
|
||||
|
||||
//内容分支
|
||||
public boolean checkValue(String msgValue){
|
||||
boolean checked=false;
|
||||
|
||||
if(this.value!=null){
|
||||
switch (this.check){
|
||||
case CHECK_IS:
|
||||
checked=this.value.equals(msgValue);
|
||||
break;
|
||||
case CHECK_CONTAIN:
|
||||
if(msgValue!=null){
|
||||
checked=msgValue.contains(this.value);
|
||||
}
|
||||
break;
|
||||
case CHECK_START_WITH:
|
||||
if(msgValue!=null){
|
||||
checked=msgValue.startsWith(this.value);
|
||||
}
|
||||
break;
|
||||
case CHECK_END_WITH:
|
||||
if(msgValue!=null){
|
||||
checked=msgValue.endsWith(this.value);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Log.i(TAG, "checkValue "+msgValue+" "+this.check+" "+this.value+" checked:"+checked);
|
||||
|
||||
return checked;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public String getRuleMatch() {
|
||||
switch (filed){
|
||||
case FILED_TRANSPOND_ALL:
|
||||
return "全部转发到 ";
|
||||
default:
|
||||
return "当 "+FILED_MAP.get(filed)+" "+CHECK_MAP.get(check)+" "+value+" 转发到 ";
|
||||
}
|
||||
|
||||
}
|
||||
public static String getRuleMatch(String filed, String check, String value) {
|
||||
switch (filed) {
|
||||
case FILED_TRANSPOND_ALL:
|
||||
|
@ -134,25 +58,8 @@ public class RuleModel {
|
|||
|
||||
}
|
||||
|
||||
public Long getRuleSenderId() {
|
||||
return senderId;
|
||||
}
|
||||
|
||||
public int getRuleFiledCheckId(){
|
||||
switch (filed){
|
||||
case FILED_MSG_CONTENT:
|
||||
return R.id.btnContent;
|
||||
case FILED_PHONE_NUM:
|
||||
return R.id.btnPhone;
|
||||
case FILED_MULTI_MATCH:
|
||||
return R.id.btnMultiMatch;
|
||||
default:
|
||||
return R.id.btnTranspondAll;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getRuleFiledFromCheckId(int id){
|
||||
switch (id){
|
||||
public static String getRuleFiledFromCheckId(int id) {
|
||||
switch (id) {
|
||||
case R.id.btnContent:
|
||||
return FILED_MSG_CONTENT;
|
||||
case R.id.btnPhone:
|
||||
|
@ -164,23 +71,8 @@ public class RuleModel {
|
|||
}
|
||||
}
|
||||
|
||||
public int getRuleCheckCheckId(){
|
||||
switch (check){
|
||||
case CHECK_CONTAIN:
|
||||
return R.id.btnContain;
|
||||
case CHECK_START_WITH:
|
||||
return R.id.btnStartWith;
|
||||
case CHECK_END_WITH:
|
||||
return R.id.btnEndWith;
|
||||
case CHECK_NOT_IS:
|
||||
return R.id.btnNotIs;
|
||||
default:
|
||||
return R.id.btnIs;
|
||||
}
|
||||
}
|
||||
|
||||
public static String getRuleCheckFromCheckId(int id){
|
||||
switch (id){
|
||||
public static String getRuleCheckFromCheckId(int id) {
|
||||
switch (id) {
|
||||
case R.id.btnContain:
|
||||
return CHECK_CONTAIN;
|
||||
case R.id.btnStartWith:
|
||||
|
@ -194,6 +86,115 @@ public class RuleModel {
|
|||
}
|
||||
}
|
||||
|
||||
//字段分支
|
||||
public boolean checkMsg(SmsVo msg) throws Exception {
|
||||
|
||||
//检查这一行和上一行合并的结果是否命中
|
||||
boolean mixChecked = false;
|
||||
if (msg != null) {
|
||||
//先检查规则是否命中
|
||||
switch (this.filed) {
|
||||
case FILED_TRANSPOND_ALL:
|
||||
mixChecked = true;
|
||||
break;
|
||||
case FILED_PHONE_NUM:
|
||||
mixChecked = checkValue(msg.getMobile());
|
||||
break;
|
||||
case FILED_MSG_CONTENT:
|
||||
mixChecked = checkValue(msg.getContent());
|
||||
break;
|
||||
case FILED_MULTI_MATCH:
|
||||
mixChecked = RuleLineUtils.checkRuleLines(msg, this.value);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Log.i(TAG, "rule:" + this + " checkMsg:" + msg + " checked:" + mixChecked);
|
||||
return mixChecked;
|
||||
|
||||
}
|
||||
|
||||
//内容分支
|
||||
public boolean checkValue(String msgValue) {
|
||||
boolean checked = false;
|
||||
|
||||
if (this.value != null) {
|
||||
switch (this.check) {
|
||||
case CHECK_IS:
|
||||
checked = this.value.equals(msgValue);
|
||||
break;
|
||||
case CHECK_CONTAIN:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.contains(this.value);
|
||||
}
|
||||
break;
|
||||
case CHECK_START_WITH:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.startsWith(this.value);
|
||||
}
|
||||
break;
|
||||
case CHECK_END_WITH:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.endsWith(this.value);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Log.i(TAG, "checkValue " + msgValue + " " + this.check + " " + this.value + " checked:" + checked);
|
||||
|
||||
return checked;
|
||||
|
||||
}
|
||||
|
||||
public String getRuleMatch() {
|
||||
switch (filed) {
|
||||
case FILED_TRANSPOND_ALL:
|
||||
return "全部转发到 ";
|
||||
default:
|
||||
return "当 " + FILED_MAP.get(filed) + " " + CHECK_MAP.get(check) + " " + value + " 转发到 ";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Long getRuleSenderId() {
|
||||
return senderId;
|
||||
}
|
||||
|
||||
public int getRuleFiledCheckId() {
|
||||
switch (filed) {
|
||||
case FILED_MSG_CONTENT:
|
||||
return R.id.btnContent;
|
||||
case FILED_PHONE_NUM:
|
||||
return R.id.btnPhone;
|
||||
case FILED_MULTI_MATCH:
|
||||
return R.id.btnMultiMatch;
|
||||
default:
|
||||
return R.id.btnTranspondAll;
|
||||
}
|
||||
}
|
||||
|
||||
public int getRuleCheckCheckId() {
|
||||
switch (check) {
|
||||
case CHECK_CONTAIN:
|
||||
return R.id.btnContain;
|
||||
case CHECK_START_WITH:
|
||||
return R.id.btnStartWith;
|
||||
case CHECK_END_WITH:
|
||||
return R.id.btnEndWith;
|
||||
case CHECK_NOT_IS:
|
||||
return R.id.btnNotIs;
|
||||
default:
|
||||
return R.id.btnIs;
|
||||
}
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.idormy.sms.forwarder.model.vo;
|
|||
import com.idormy.sms.forwarder.R;
|
||||
|
||||
public class LogVo {
|
||||
private Long id;
|
||||
private String from;
|
||||
private String content;
|
||||
private String simInfo;
|
||||
|
@ -10,7 +11,8 @@ public class LogVo {
|
|||
private int senderImageId;
|
||||
private String time;
|
||||
|
||||
public LogVo(String from, String content, String simInfo, String time, String rule, int senderImageId) {
|
||||
public LogVo(Long id, String from, String content, String simInfo, String time, String rule, int senderImageId) {
|
||||
this.id = id;
|
||||
this.from = from;
|
||||
this.content = content;
|
||||
this.simInfo = simInfo;
|
||||
|
@ -23,6 +25,10 @@ public class LogVo {
|
|||
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getFrom() {
|
||||
return from;
|
||||
}
|
||||
|
|
|
@ -141,6 +141,8 @@ public class LogUtil {
|
|||
Log.d(TAG, "getLog: itemId cursor" + Arrays.toString(cursor.getColumnNames()));
|
||||
while (cursor.moveToNext()) {
|
||||
try {
|
||||
Long itemid = cursor.getLong(
|
||||
cursor.getColumnIndexOrThrow(BaseColumns._ID));
|
||||
String itemfrom = cursor.getString(
|
||||
cursor.getColumnIndexOrThrow(LogTable.LogEntry.COLUMN_NAME_FROM));
|
||||
String content = cursor.getString(
|
||||
|
@ -163,7 +165,7 @@ public class LogUtil {
|
|||
String rule = RuleModel.getRuleMatch(ruleFiled, ruleCheck, ruleValue) + senderName;
|
||||
|
||||
int senderImageId = SenderModel.getImageId(senderType);
|
||||
LogVo logVo = new LogVo(itemfrom, content, simInfo, time, rule, senderImageId);
|
||||
LogVo logVo = new LogVo(itemid, itemfrom, content, simInfo, time, rule, senderImageId);
|
||||
LogVos.add(logVo);
|
||||
} catch (Exception e) {
|
||||
Log.i(TAG, "getLog e:" + e.getMessage());
|
||||
|
|
|
@ -9,9 +9,47 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
class RuleLine {
|
||||
public static final String CONJUNCTION_AND = "并且";
|
||||
public static final String CONJUNCTION_OR = "或者";
|
||||
public static final String FILED_PHONE_NUM = "手机号";
|
||||
public static final String FILED_MSG_CONTENT = "短信内容";
|
||||
public static final String SURE_YES = "是";
|
||||
public static final String SURE_NOT = "不是";
|
||||
public static final String CHECK_EQUALS = "相等";
|
||||
public static final String CHECK_CONTAIN = "包含";
|
||||
public static final String CHECK_START_WITH = "开头";
|
||||
public static final String CHECK_END_WITH = "结尾";
|
||||
public static List<String> CONJUNCTION_LIST = new ArrayList<String>();
|
||||
public static List<String> FILED_LIST = new ArrayList<String>();
|
||||
public static List<String> SURE_LIST = new ArrayList<String>();
|
||||
public static List<String> CHECK_LIST = new ArrayList<String>();
|
||||
static String TAG = "RuleLine";
|
||||
static Boolean STARTLOG = true;
|
||||
|
||||
static {
|
||||
CONJUNCTION_LIST.add("and");
|
||||
CONJUNCTION_LIST.add("or");
|
||||
CONJUNCTION_LIST.add("并且");
|
||||
CONJUNCTION_LIST.add("或者");
|
||||
}
|
||||
|
||||
static {
|
||||
FILED_LIST.add("手机号");
|
||||
FILED_LIST.add("短信内容");
|
||||
}
|
||||
|
||||
static {
|
||||
SURE_LIST.add("是");
|
||||
SURE_LIST.add("不是");
|
||||
}
|
||||
|
||||
static {
|
||||
CHECK_LIST.add("相等");
|
||||
CHECK_LIST.add("包含");
|
||||
CHECK_LIST.add("开头");
|
||||
CHECK_LIST.add("结尾");
|
||||
}
|
||||
|
||||
//开头有几个空格
|
||||
int headSpaceNum = 0;
|
||||
RuleLine beforeRuleLine;
|
||||
|
@ -20,125 +58,13 @@ class RuleLine {
|
|||
RuleLine childRuleLine;
|
||||
//and or
|
||||
String conjunction;
|
||||
public static List<String> CONJUNCTION_LIST = new ArrayList<String>();
|
||||
public static final String CONJUNCTION_AND = "并且";
|
||||
public static final String CONJUNCTION_OR = "或者";
|
||||
|
||||
static {
|
||||
CONJUNCTION_LIST.add("and");
|
||||
CONJUNCTION_LIST.add("or");
|
||||
CONJUNCTION_LIST.add("并且");
|
||||
CONJUNCTION_LIST.add("或者");
|
||||
}
|
||||
|
||||
//手机号 短信内容
|
||||
String field;
|
||||
public static List<String> FILED_LIST = new ArrayList<String>();
|
||||
public static final String FILED_PHONE_NUM = "手机号";
|
||||
public static final String FILED_MSG_CONTENT = "短信内容";
|
||||
|
||||
static {
|
||||
FILED_LIST.add("手机号");
|
||||
FILED_LIST.add("短信内容");
|
||||
}
|
||||
|
||||
// 是否
|
||||
String sure;
|
||||
public static List<String> SURE_LIST = new ArrayList<String>();
|
||||
public static final String SURE_YES = "是";
|
||||
public static final String SURE_NOT = "不是";
|
||||
|
||||
static {
|
||||
SURE_LIST.add("是");
|
||||
SURE_LIST.add("不是");
|
||||
}
|
||||
|
||||
String check;
|
||||
public static List<String> CHECK_LIST = new ArrayList<String>();
|
||||
public static final String CHECK_EQUALS = "相等";
|
||||
public static final String CHECK_CONTAIN = "包含";
|
||||
public static final String CHECK_START_WITH = "开头";
|
||||
public static final String CHECK_END_WITH = "结尾";
|
||||
|
||||
static {
|
||||
CHECK_LIST.add("相等");
|
||||
CHECK_LIST.add("包含");
|
||||
CHECK_LIST.add("开头");
|
||||
CHECK_LIST.add("结尾");
|
||||
}
|
||||
|
||||
String value;
|
||||
|
||||
//字段分支
|
||||
public boolean checkMsg(SmsVo msg) {
|
||||
|
||||
//检查这一行和上一行合并的结果是否命中
|
||||
boolean mixChecked = false;
|
||||
|
||||
//先检查规则是否命中
|
||||
switch (this.field) {
|
||||
case FILED_PHONE_NUM:
|
||||
mixChecked = checkValue(msg.getMobile());
|
||||
break;
|
||||
case FILED_MSG_CONTENT:
|
||||
mixChecked = checkValue(msg.getContent());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
//整合肯定词
|
||||
switch (this.sure) {
|
||||
case SURE_YES:
|
||||
mixChecked = mixChecked;
|
||||
break;
|
||||
case SURE_NOT:
|
||||
mixChecked = !mixChecked;
|
||||
break;
|
||||
default:
|
||||
mixChecked = false;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
logg("rule:" + this + " checkMsg:" + msg + " checked:" + mixChecked);
|
||||
return mixChecked;
|
||||
|
||||
}
|
||||
|
||||
//内容分支
|
||||
public boolean checkValue(String msgValue) {
|
||||
boolean checked = false;
|
||||
|
||||
switch (this.check) {
|
||||
case CHECK_EQUALS:
|
||||
checked = this.value.equals(msgValue);
|
||||
break;
|
||||
case CHECK_CONTAIN:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.contains(this.value);
|
||||
}
|
||||
break;
|
||||
case CHECK_START_WITH:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.startsWith(this.value);
|
||||
}
|
||||
break;
|
||||
case CHECK_END_WITH:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.endsWith(this.value);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
logg("checkValue " + msgValue + " " + this.check + " " + this.value + " checked:" + checked);
|
||||
|
||||
return checked;
|
||||
|
||||
}
|
||||
|
||||
public RuleLine(String line, int linenum, RuleLine beforeRuleLine) throws Exception {
|
||||
logg("----------" + linenum + "-----------------");
|
||||
logg(line);
|
||||
|
@ -328,6 +254,76 @@ class RuleLine {
|
|||
|
||||
}
|
||||
|
||||
//字段分支
|
||||
public boolean checkMsg(SmsVo msg) {
|
||||
|
||||
//检查这一行和上一行合并的结果是否命中
|
||||
boolean mixChecked = false;
|
||||
|
||||
//先检查规则是否命中
|
||||
switch (this.field) {
|
||||
case FILED_PHONE_NUM:
|
||||
mixChecked = checkValue(msg.getMobile());
|
||||
break;
|
||||
case FILED_MSG_CONTENT:
|
||||
mixChecked = checkValue(msg.getContent());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
//整合肯定词
|
||||
switch (this.sure) {
|
||||
case SURE_YES:
|
||||
mixChecked = mixChecked;
|
||||
break;
|
||||
case SURE_NOT:
|
||||
mixChecked = !mixChecked;
|
||||
break;
|
||||
default:
|
||||
mixChecked = false;
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
logg("rule:" + this + " checkMsg:" + msg + " checked:" + mixChecked);
|
||||
return mixChecked;
|
||||
|
||||
}
|
||||
|
||||
//内容分支
|
||||
public boolean checkValue(String msgValue) {
|
||||
boolean checked = false;
|
||||
|
||||
switch (this.check) {
|
||||
case CHECK_EQUALS:
|
||||
checked = this.value.equals(msgValue);
|
||||
break;
|
||||
case CHECK_CONTAIN:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.contains(this.value);
|
||||
}
|
||||
break;
|
||||
case CHECK_START_WITH:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.startsWith(this.value);
|
||||
}
|
||||
break;
|
||||
case CHECK_END_WITH:
|
||||
if (msgValue != null) {
|
||||
checked = msgValue.endsWith(this.value);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
logg("checkValue " + msgValue + " " + this.check + " " + this.value + " checked:" + checked);
|
||||
|
||||
return checked;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "RuleLine{" +
|
||||
|
|
|
@ -6,9 +6,8 @@ import android.preference.PreferenceManager;
|
|||
import android.util.Log;
|
||||
|
||||
public class SettingUtil {
|
||||
private static String TAG = "SettingUtil";
|
||||
|
||||
static Boolean hasInit = false;
|
||||
private static String TAG = "SettingUtil";
|
||||
private static SharedPreferences sp_setting = null;
|
||||
private static Context context = null;
|
||||
|
||||
|
|
|
@ -15,47 +15,59 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="vertical">
|
||||
|
||||
<Button
|
||||
android:id="@+id/bt_refresh_log"
|
||||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="35dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/holo_blue_dark"
|
||||
android:onClick="cleanLog"
|
||||
android:text="清空记录"
|
||||
tools:ignore="NestedWeights" />
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:text="@string/log_tips"
|
||||
android:textColor="@android:color/holo_blue_dark" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/bt_rule_set"
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="35dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/holo_blue_dark"
|
||||
android:onClick="toRuleSetting"
|
||||
android:text="设置转发规则"
|
||||
tools:ignore="NestedWeights" />
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/bt_send_set"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="35dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/holo_blue_dark"
|
||||
android:onClick="toSendSetting"
|
||||
android:text="设置发送方" />
|
||||
<Button
|
||||
android:id="@+id/bt_refresh_log"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="35dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/holo_blue_dark"
|
||||
android:onClick="cleanLog"
|
||||
android:text="清空记录"
|
||||
tools:ignore="NestedWeights" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/bt_rule_set"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="35dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/holo_blue_dark"
|
||||
android:onClick="toRuleSetting"
|
||||
android:text="设置转发规则"
|
||||
tools:ignore="NestedWeights" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/bt_send_set"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="35dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_weight="1"
|
||||
android:background="@android:color/holo_blue_dark"
|
||||
android:onClick="toSendSetting"
|
||||
android:text="设置发送方" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
|
@ -13,6 +13,7 @@
|
|||
<string name="setbarktitle">设置Bark</string>
|
||||
<string name="check_new_version">检查更新</string>
|
||||
<string name="to_setting">设置</string>
|
||||
<string name="log_tips">提示:置顶下拉刷新,长按删除单条记录</string>
|
||||
<string name="rule_tips">提示:新建规则点击“添加”,长按删除/点击编辑已有</string>
|
||||
<string name="sender_tips">提示:新建发送方点击“添加”,长按删除/点击编辑已有</string>
|
||||
</resources>
|
||||
|
|
Loading…
Reference in New Issue