整理:文件命名统一规范
This commit is contained in:
parent
55a5e15d48
commit
30f9ed71a7
|
@ -13,7 +13,7 @@ import com.hjq.permissions.XXPermissions;
|
|||
import com.hjq.toast.ToastUtils;
|
||||
import com.idormy.sms.forwarder.receiver.RebootBroadcastReceiver;
|
||||
import com.idormy.sms.forwarder.utils.CacheUtils;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils;
|
||||
import com.xuexiang.xupdate.easy.EasyUpdate;
|
||||
import com.xuexiang.xupdate.proxy.impl.DefaultUpdateChecker;
|
||||
|
@ -65,7 +65,7 @@ public class AboutActivity extends BaseActivity {
|
|||
final TextView version_now = findViewById(R.id.version_now);
|
||||
Button check_version_now = findViewById(R.id.check_version_now);
|
||||
try {
|
||||
version_now.setText(CommonUtil.getVersionName(AboutActivity.this));
|
||||
version_now.setText(CommonUtils.getVersionName(AboutActivity.this));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ public class AboutActivity extends BaseActivity {
|
|||
check_version_now.setOnClickListener(v -> {
|
||||
try {
|
||||
String updateUrl = "https://xupdate.bms.ink/update/checkVersion?appKey=com.idormy.sms.forwarder&versionCode=";
|
||||
updateUrl += CommonUtil.getVersionCode(AboutActivity.this);
|
||||
updateUrl += CommonUtils.getVersionCode(AboutActivity.this);
|
||||
Log.d(TAG, updateUrl);
|
||||
|
||||
EasyUpdate.create(AboutActivity.this, updateUrl)
|
||||
|
|
|
@ -36,7 +36,7 @@ import com.idormy.sms.forwarder.sender.SenderUtil;
|
|||
import com.idormy.sms.forwarder.service.BatteryService;
|
||||
import com.idormy.sms.forwarder.service.FrontService;
|
||||
import com.idormy.sms.forwarder.service.MusicService;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
import com.idormy.sms.forwarder.utils.HttpUtils;
|
||||
import com.idormy.sms.forwarder.utils.KeepAliveUtils;
|
||||
import com.idormy.sms.forwarder.utils.LogUtils;
|
||||
|
@ -159,7 +159,7 @@ public class MainActivity extends BaseActivity implements RefreshListView.IRefre
|
|||
|
||||
//检查权限是否获取
|
||||
PackageManager pm = getPackageManager();
|
||||
CommonUtil.CheckPermission(pm, this);
|
||||
CommonUtils.CheckPermission(pm, this);
|
||||
XXPermissions.with(this)
|
||||
// 接收短信
|
||||
.permission(Permission.RECEIVE_SMS)
|
||||
|
@ -235,7 +235,7 @@ public class MainActivity extends BaseActivity implements RefreshListView.IRefre
|
|||
//计算浮动按钮位置
|
||||
FloatingActionButton btnFloat = findViewById(R.id.btnCleanLog);
|
||||
RefreshListView viewList = findViewById(R.id.list_view_log);
|
||||
CommonUtil.calcMarginBottom(this, btnFloat, viewList, null);
|
||||
CommonUtils.calcMarginBottom(this, btnFloat, viewList, null);
|
||||
|
||||
//清空日志
|
||||
btnFloat.setOnClickListener(v -> {
|
||||
|
@ -339,8 +339,8 @@ public class MainActivity extends BaseActivity implements RefreshListView.IRefre
|
|||
}
|
||||
|
||||
//开启读取通知栏权限
|
||||
if (SettingUtils.getSwitchEnableAppNotify() && !CommonUtil.isNotificationListenerServiceEnabled(this)) {
|
||||
CommonUtil.toggleNotificationListenerService(this);
|
||||
if (SettingUtils.getSwitchEnableAppNotify() && !CommonUtils.isNotificationListenerServiceEnabled(this)) {
|
||||
CommonUtils.toggleNotificationListenerService(this);
|
||||
SettingUtils.switchEnableAppNotify(false);
|
||||
ToastUtils.delayedShow(R.string.tips_notification_listener, 3000);
|
||||
return;
|
||||
|
@ -390,10 +390,10 @@ public class MainActivity extends BaseActivity implements RefreshListView.IRefre
|
|||
//是否同意隐私协议
|
||||
if (!MyApplication.allowPrivacyPolicy) return;
|
||||
|
||||
if (requestCode == CommonUtil.NOTIFICATION_REQUEST_CODE) {
|
||||
if (CommonUtil.isNotificationListenerServiceEnabled(this)) {
|
||||
if (requestCode == CommonUtils.NOTIFICATION_REQUEST_CODE) {
|
||||
if (CommonUtils.isNotificationListenerServiceEnabled(this)) {
|
||||
ToastUtils.show(R.string.notification_listener_service_enabled);
|
||||
CommonUtil.toggleNotificationListenerService(this);
|
||||
CommonUtils.toggleNotificationListenerService(this);
|
||||
} else {
|
||||
ToastUtils.show(R.string.notification_listener_service_disabled);
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ import com.idormy.sms.forwarder.model.SenderModel;
|
|||
import com.idormy.sms.forwarder.model.vo.SmsVo;
|
||||
import com.idormy.sms.forwarder.sender.SendUtil;
|
||||
import com.idormy.sms.forwarder.sender.SenderUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
import com.idormy.sms.forwarder.utils.LogUtils;
|
||||
import com.idormy.sms.forwarder.utils.RuleUtils;
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils;
|
||||
|
@ -133,7 +133,7 @@ public class RuleActivity extends BaseActivity {
|
|||
|
||||
//计算浮动按钮位置
|
||||
FloatingActionButton btnAddRule = findViewById(R.id.btnAddRule);
|
||||
CommonUtil.calcMarginBottom(this, btnAddRule, listView, null);
|
||||
CommonUtils.calcMarginBottom(this, btnAddRule, listView, null);
|
||||
|
||||
//添加规则
|
||||
btnAddRule.setOnClickListener(v -> setRule(null, false));
|
||||
|
@ -380,49 +380,49 @@ public class RuleActivity extends BaseActivity {
|
|||
buttonInsertSender.setOnClickListener(view -> {
|
||||
textSmsTemplate.setFocusable(true);
|
||||
textSmsTemplate.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_from));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_from));
|
||||
});
|
||||
|
||||
Button buttonInsertContent = view1.findViewById(R.id.bt_insert_content);
|
||||
buttonInsertContent.setOnClickListener(view -> {
|
||||
textSmsTemplate.setFocusable(true);
|
||||
textSmsTemplate.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_sms));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_sms));
|
||||
});
|
||||
|
||||
Button buttonInsertSenderApp = view1.findViewById(R.id.bt_insert_sender_app);
|
||||
buttonInsertSenderApp.setOnClickListener(view -> {
|
||||
textSmsTemplate.setFocusable(true);
|
||||
textSmsTemplate.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_package_name));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_package_name));
|
||||
});
|
||||
|
||||
Button buttonInsertContentApp = view1.findViewById(R.id.bt_insert_content_app);
|
||||
buttonInsertContentApp.setOnClickListener(view -> {
|
||||
textSmsTemplate.setFocusable(true);
|
||||
textSmsTemplate.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_msg));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_msg));
|
||||
});
|
||||
|
||||
Button buttonInsertExtra = view1.findViewById(R.id.bt_insert_extra);
|
||||
buttonInsertExtra.setOnClickListener(view -> {
|
||||
textSmsTemplate.setFocusable(true);
|
||||
textSmsTemplate.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_card_slot));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_card_slot));
|
||||
});
|
||||
|
||||
Button buttonInsertTime = view1.findViewById(R.id.bt_insert_time);
|
||||
buttonInsertTime.setOnClickListener(view -> {
|
||||
textSmsTemplate.setFocusable(true);
|
||||
textSmsTemplate.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_receive_time));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_receive_time));
|
||||
});
|
||||
|
||||
Button buttonInsertDeviceName = view1.findViewById(R.id.bt_insert_device_name);
|
||||
buttonInsertDeviceName.setOnClickListener(view -> {
|
||||
textSmsTemplate.setFocusable(true);
|
||||
textSmsTemplate.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_device_name));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_device_name));
|
||||
});
|
||||
|
||||
//正则替换
|
||||
|
|
|
@ -76,7 +76,7 @@ import com.idormy.sms.forwarder.sender.SenderSmsMsg;
|
|||
import com.idormy.sms.forwarder.sender.SenderTelegramMsg;
|
||||
import com.idormy.sms.forwarder.sender.SenderUtil;
|
||||
import com.idormy.sms.forwarder.sender.SenderWebNotifyMsg;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
import com.idormy.sms.forwarder.utils.LogUtils;
|
||||
import com.idormy.sms.forwarder.utils.RuleUtils;
|
||||
import com.idormy.sms.forwarder.view.ClearEditText;
|
||||
|
@ -259,7 +259,7 @@ public class SenderActivity extends BaseActivity {
|
|||
|
||||
//计算浮动按钮位置
|
||||
FloatingActionButton btnFloat = findViewById(R.id.btnAddSender);
|
||||
CommonUtil.calcMarginBottom(this, btnFloat, listView, null);
|
||||
CommonUtils.calcMarginBottom(this, btnFloat, listView, null);
|
||||
|
||||
//添加发送通道
|
||||
btnFloat.setOnClickListener(v -> {
|
||||
|
@ -456,7 +456,7 @@ public class SenderActivity extends BaseActivity {
|
|||
ToastUtils.delayedShow(R.string.invalid_name, 3000);
|
||||
return;
|
||||
}
|
||||
if (CommonUtil.checkUrl(token, true)) {
|
||||
if (CommonUtils.checkUrl(token, true)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_token, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -494,7 +494,7 @@ public class SenderActivity extends BaseActivity {
|
|||
|
||||
buttonTest.setOnClickListener(view -> {
|
||||
String token = editTextDingdingToken.getText().trim();
|
||||
if (CommonUtil.checkUrl(token, true)) {
|
||||
if (CommonUtils.checkUrl(token, true)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_token, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -709,28 +709,28 @@ public class SenderActivity extends BaseActivity {
|
|||
buttonInsertSender.setOnClickListener(view -> {
|
||||
editTextEmailTitle.setFocusable(true);
|
||||
editTextEmailTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextEmailTitle, getString(R.string.tag_from));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextEmailTitle, getString(R.string.tag_from));
|
||||
});
|
||||
|
||||
Button buttonInsertExtra = view1.findViewById(R.id.bt_insert_extra);
|
||||
buttonInsertExtra.setOnClickListener(view -> {
|
||||
editTextEmailTitle.setFocusable(true);
|
||||
editTextEmailTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextEmailTitle, getString(R.string.tag_card_slot));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextEmailTitle, getString(R.string.tag_card_slot));
|
||||
});
|
||||
|
||||
Button buttonInsertTime = view1.findViewById(R.id.bt_insert_time);
|
||||
buttonInsertTime.setOnClickListener(view -> {
|
||||
editTextEmailTitle.setFocusable(true);
|
||||
editTextEmailTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextEmailTitle, getString(R.string.tag_receive_time));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextEmailTitle, getString(R.string.tag_receive_time));
|
||||
});
|
||||
|
||||
Button buttonInsertDeviceName = view1.findViewById(R.id.bt_insert_device_name);
|
||||
buttonInsertDeviceName.setOnClickListener(view -> {
|
||||
editTextEmailTitle.setFocusable(true);
|
||||
editTextEmailTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextEmailTitle, getString(R.string.tag_device_name));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextEmailTitle, getString(R.string.tag_device_name));
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -794,7 +794,7 @@ public class SenderActivity extends BaseActivity {
|
|||
|
||||
//推送地址
|
||||
String barkServer = editTextBarkServer.getText().trim();
|
||||
if (!CommonUtil.checkUrl(barkServer, false)) {
|
||||
if (!CommonUtils.checkUrl(barkServer, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_bark_server, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -845,7 +845,7 @@ public class SenderActivity extends BaseActivity {
|
|||
String badge = editTextBarkBadge.getText().toString().trim(); //角标
|
||||
String url = editTextBarkUrl.getText().toString().trim(); //链接
|
||||
BarkSettingVo barkSettingVoNew = new BarkSettingVo(barkServer, icon, title, levelId, sound, badge, url);
|
||||
if (CommonUtil.checkUrl(barkServer, false)) {
|
||||
if (CommonUtils.checkUrl(barkServer, false)) {
|
||||
try {
|
||||
SmsVo smsVo = new SmsVo(getString(R.string.test_phone_num), getString(R.string.test_sender_sms), new Date(), getString(R.string.test_sim_info));
|
||||
SenderBarkMsg.sendMsg(0, handler, null, barkSettingVoNew, smsVo.getTitleForSend(title), smsVo.getSmsVoForSend(), getString(R.string.test_group_name));
|
||||
|
@ -863,28 +863,28 @@ public class SenderActivity extends BaseActivity {
|
|||
buttonInsertSender.setOnClickListener(view -> {
|
||||
editTextBarkTitle.setFocusable(true);
|
||||
editTextBarkTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextBarkTitle, getString(R.string.tag_from));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextBarkTitle, getString(R.string.tag_from));
|
||||
});
|
||||
|
||||
Button buttonInsertExtra = view1.findViewById(R.id.bt_insert_extra);
|
||||
buttonInsertExtra.setOnClickListener(view -> {
|
||||
editTextBarkTitle.setFocusable(true);
|
||||
editTextBarkTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextBarkTitle, getString(R.string.tag_card_slot));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextBarkTitle, getString(R.string.tag_card_slot));
|
||||
});
|
||||
|
||||
Button buttonInsertTime = view1.findViewById(R.id.bt_insert_time);
|
||||
buttonInsertTime.setOnClickListener(view -> {
|
||||
editTextBarkTitle.setFocusable(true);
|
||||
editTextBarkTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextBarkTitle, getString(R.string.tag_receive_time));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextBarkTitle, getString(R.string.tag_receive_time));
|
||||
});
|
||||
|
||||
Button buttonInsertDeviceName = view1.findViewById(R.id.bt_insert_device_name);
|
||||
buttonInsertDeviceName.setOnClickListener(view -> {
|
||||
editTextBarkTitle.setFocusable(true);
|
||||
editTextBarkTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextBarkTitle, getString(R.string.tag_device_name));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextBarkTitle, getString(R.string.tag_device_name));
|
||||
});
|
||||
|
||||
}
|
||||
|
@ -1013,7 +1013,7 @@ public class SenderActivity extends BaseActivity {
|
|||
String webParams = editTextWebNotifyWebParams.getText().toString().trim();
|
||||
Map<String, String> headers = getHeadersFromHeaderItemMap(headerItemMap);
|
||||
|
||||
if (!CommonUtil.checkUrl(webServer, false)) {
|
||||
if (!CommonUtils.checkUrl(webServer, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_webserver, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -1054,7 +1054,7 @@ public class SenderActivity extends BaseActivity {
|
|||
String webParams = editTextWebNotifyWebParams.getText().toString().trim();
|
||||
Map<String, String> headers = getHeadersFromHeaderItemMap(headerItemMap);
|
||||
|
||||
if (!CommonUtil.checkUrl(webServer, false)) {
|
||||
if (!CommonUtils.checkUrl(webServer, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_webserver, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -1116,7 +1116,7 @@ public class SenderActivity extends BaseActivity {
|
|||
}
|
||||
|
||||
String webHook = editTextQYWXGroupRobotWebHook.getText().trim();
|
||||
if (!CommonUtil.checkUrl(webHook, false)) {
|
||||
if (!CommonUtils.checkUrl(webHook, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_webhook, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -1154,7 +1154,7 @@ public class SenderActivity extends BaseActivity {
|
|||
|
||||
buttonTest.setOnClickListener(view -> {
|
||||
String webHook = editTextQYWXGroupRobotWebHook.getText().trim();
|
||||
if (!CommonUtil.checkUrl(webHook, false)) {
|
||||
if (!CommonUtils.checkUrl(webHook, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_webhook, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -1812,7 +1812,7 @@ public class SenderActivity extends BaseActivity {
|
|||
String secret = editTextFeishuSecret.getText().trim();
|
||||
String msgType = radioGroupFeishuMsgType.getCheckedRadioButtonId() == R.id.radioFeishuMsgTypeText ? "text" : "interactive";
|
||||
String titleTemplate = editTextFeishuTitle.getText().toString().trim();
|
||||
if (!CommonUtil.checkUrl(webHook, false)) {
|
||||
if (!CommonUtils.checkUrl(webHook, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_webhook, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -1855,7 +1855,7 @@ public class SenderActivity extends BaseActivity {
|
|||
String secret = editTextFeishuSecret.getText().trim();
|
||||
String msgType = radioGroupFeishuMsgType.getCheckedRadioButtonId() == R.id.radioFeishuMsgTypeText ? "text" : "interactive";
|
||||
String titleTemplate = editTextFeishuTitle.getText().toString().trim();
|
||||
if (!CommonUtil.checkUrl(webHook, false)) {
|
||||
if (!CommonUtils.checkUrl(webHook, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_webhook, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -1873,28 +1873,28 @@ public class SenderActivity extends BaseActivity {
|
|||
buttonInsertSender.setOnClickListener(view -> {
|
||||
editTextFeishuTitle.setFocusable(true);
|
||||
editTextFeishuTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextFeishuTitle, getString(R.string.tag_from));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextFeishuTitle, getString(R.string.tag_from));
|
||||
});
|
||||
|
||||
Button buttonInsertExtra = view1.findViewById(R.id.bt_insert_extra);
|
||||
buttonInsertExtra.setOnClickListener(view -> {
|
||||
editTextFeishuTitle.setFocusable(true);
|
||||
editTextFeishuTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextFeishuTitle, getString(R.string.tag_card_slot));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextFeishuTitle, getString(R.string.tag_card_slot));
|
||||
});
|
||||
|
||||
Button buttonInsertTime = view1.findViewById(R.id.bt_insert_time);
|
||||
buttonInsertTime.setOnClickListener(view -> {
|
||||
editTextFeishuTitle.setFocusable(true);
|
||||
editTextFeishuTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextFeishuTitle, getString(R.string.tag_receive_time));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextFeishuTitle, getString(R.string.tag_receive_time));
|
||||
});
|
||||
|
||||
Button buttonInsertDeviceName = view1.findViewById(R.id.bt_insert_device_name);
|
||||
buttonInsertDeviceName.setOnClickListener(view -> {
|
||||
editTextFeishuTitle.setFocusable(true);
|
||||
editTextFeishuTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextFeishuTitle, getString(R.string.tag_device_name));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextFeishuTitle, getString(R.string.tag_device_name));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -2037,28 +2037,28 @@ public class SenderActivity extends BaseActivity {
|
|||
buttonInsertSender.setOnClickListener(view -> {
|
||||
editTextPushPlusTitle.setFocusable(true);
|
||||
editTextPushPlusTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextPushPlusTitle, getString(R.string.tag_from));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextPushPlusTitle, getString(R.string.tag_from));
|
||||
});
|
||||
|
||||
Button buttonInsertExtra = view1.findViewById(R.id.bt_insert_extra);
|
||||
buttonInsertExtra.setOnClickListener(view -> {
|
||||
editTextPushPlusTitle.setFocusable(true);
|
||||
editTextPushPlusTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextPushPlusTitle, getString(R.string.tag_card_slot));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextPushPlusTitle, getString(R.string.tag_card_slot));
|
||||
});
|
||||
|
||||
Button buttonInsertTime = view1.findViewById(R.id.bt_insert_time);
|
||||
buttonInsertTime.setOnClickListener(view -> {
|
||||
editTextPushPlusTitle.setFocusable(true);
|
||||
editTextPushPlusTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextPushPlusTitle, getString(R.string.tag_receive_time));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextPushPlusTitle, getString(R.string.tag_receive_time));
|
||||
});
|
||||
|
||||
Button buttonInsertDeviceName = view1.findViewById(R.id.bt_insert_device_name);
|
||||
buttonInsertDeviceName.setOnClickListener(view -> {
|
||||
editTextPushPlusTitle.setFocusable(true);
|
||||
editTextPushPlusTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextPushPlusTitle, getString(R.string.tag_device_name));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextPushPlusTitle, getString(R.string.tag_device_name));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -2113,7 +2113,7 @@ public class SenderActivity extends BaseActivity {
|
|||
}
|
||||
|
||||
String webServer = editTextGotifyWebServer.getText().trim();
|
||||
if (!CommonUtil.checkUrl(webServer, false)) {
|
||||
if (!CommonUtils.checkUrl(webServer, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_webserver, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -2157,7 +2157,7 @@ public class SenderActivity extends BaseActivity {
|
|||
|
||||
buttonTest.setOnClickListener(view -> {
|
||||
String webServer = editTextGotifyWebServer.getText().trim();
|
||||
if (!CommonUtil.checkUrl(webServer, false)) {
|
||||
if (!CommonUtils.checkUrl(webServer, false)) {
|
||||
ToastUtils.delayedShow(R.string.invalid_webserver, 3000);
|
||||
return;
|
||||
}
|
||||
|
@ -2183,28 +2183,28 @@ public class SenderActivity extends BaseActivity {
|
|||
buttonInsertSender.setOnClickListener(view -> {
|
||||
editTextGotifyTitle.setFocusable(true);
|
||||
editTextGotifyTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextGotifyTitle, getString(R.string.tag_from));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextGotifyTitle, getString(R.string.tag_from));
|
||||
});
|
||||
|
||||
Button buttonInsertExtra = view1.findViewById(R.id.bt_insert_extra);
|
||||
buttonInsertExtra.setOnClickListener(view -> {
|
||||
editTextGotifyTitle.setFocusable(true);
|
||||
editTextGotifyTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextGotifyTitle, getString(R.string.tag_card_slot));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextGotifyTitle, getString(R.string.tag_card_slot));
|
||||
});
|
||||
|
||||
Button buttonInsertTime = view1.findViewById(R.id.bt_insert_time);
|
||||
buttonInsertTime.setOnClickListener(view -> {
|
||||
editTextGotifyTitle.setFocusable(true);
|
||||
editTextGotifyTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextGotifyTitle, getString(R.string.tag_receive_time));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextGotifyTitle, getString(R.string.tag_receive_time));
|
||||
});
|
||||
|
||||
Button buttonInsertDeviceName = view1.findViewById(R.id.bt_insert_device_name);
|
||||
buttonInsertDeviceName.setOnClickListener(view -> {
|
||||
editTextGotifyTitle.setFocusable(true);
|
||||
editTextGotifyTitle.requestFocus();
|
||||
CommonUtil.insertOrReplaceText2Cursor(editTextGotifyTitle, getString(R.string.tag_device_name));
|
||||
CommonUtils.insertOrReplaceText2Cursor(editTextGotifyTitle, getString(R.string.tag_device_name));
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ import com.idormy.sms.forwarder.sender.BatteryReportCronTask;
|
|||
import com.idormy.sms.forwarder.sender.HttpServer;
|
||||
import com.idormy.sms.forwarder.sender.SenderUtil;
|
||||
import com.idormy.sms.forwarder.service.MusicService;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
import com.idormy.sms.forwarder.utils.DbHelper;
|
||||
import com.idormy.sms.forwarder.utils.Define;
|
||||
import com.idormy.sms.forwarder.utils.HttpUtils;
|
||||
|
@ -80,7 +80,7 @@ public class SettingActivity extends BaseActivity {
|
|||
|
||||
//是否关闭页面提示
|
||||
ScrollView scrollView = findViewById(R.id.scrollView);
|
||||
CommonUtil.calcMarginBottom(this, null, null, scrollView);
|
||||
CommonUtils.calcMarginBottom(this, null, null, scrollView);
|
||||
|
||||
//转发短信广播
|
||||
switchEnableSms(findViewById(R.id.switch_enable_sms));
|
||||
|
@ -149,7 +149,7 @@ public class SettingActivity extends BaseActivity {
|
|||
if (isChecked) {
|
||||
//检查权限是否获取
|
||||
PackageManager pm = getPackageManager();
|
||||
CommonUtil.CheckPermission(pm, this);
|
||||
CommonUtils.CheckPermission(pm, this);
|
||||
XXPermissions.with(this)
|
||||
// 接收短信
|
||||
.permission(Permission.RECEIVE_SMS)
|
||||
|
@ -206,7 +206,7 @@ public class SettingActivity extends BaseActivity {
|
|||
if (isChecked) {
|
||||
//检查权限是否获取
|
||||
PackageManager pm = getPackageManager();
|
||||
CommonUtil.CheckPermission(pm, this);
|
||||
CommonUtils.CheckPermission(pm, this);
|
||||
XXPermissions.with(this)
|
||||
// 读取电话状态
|
||||
.permission(Permission.READ_PHONE_STATE)
|
||||
|
@ -282,13 +282,13 @@ public class SettingActivity extends BaseActivity {
|
|||
layout_cancel_app_notify.setVisibility(isChecked ? View.VISIBLE : View.GONE);
|
||||
//TODO:校验使用APP通知转发必备的权限
|
||||
if (isChecked) {
|
||||
if (!CommonUtil.isNotificationListenerServiceEnabled(this)) {
|
||||
CommonUtil.openNotificationAccess(this);
|
||||
if (!CommonUtils.isNotificationListenerServiceEnabled(this)) {
|
||||
CommonUtils.openNotificationAccess(this);
|
||||
ToastUtils.delayedShow(R.string.tips_notification_listener, 3000);
|
||||
return;
|
||||
} else {
|
||||
ToastUtils.delayedShow(R.string.notification_service_is_on, 3000);
|
||||
CommonUtil.toggleNotificationListenerService(this);
|
||||
CommonUtils.toggleNotificationListenerService(this);
|
||||
}
|
||||
}
|
||||
SettingUtils.switchEnableAppNotify(isChecked);
|
||||
|
@ -318,21 +318,21 @@ public class SettingActivity extends BaseActivity {
|
|||
|
||||
//请求通知使用权限
|
||||
public void requestNotificationPermission(View view) {
|
||||
if (!CommonUtil.isNotificationListenerServiceEnabled(this)) {
|
||||
CommonUtil.openNotificationAccess(this);
|
||||
if (!CommonUtils.isNotificationListenerServiceEnabled(this)) {
|
||||
CommonUtils.openNotificationAccess(this);
|
||||
} else {
|
||||
ToastUtils.show(R.string.notification_listener_service_enabled);
|
||||
CommonUtil.toggleNotificationListenerService(this);
|
||||
CommonUtils.toggleNotificationListenerService(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == CommonUtil.NOTIFICATION_REQUEST_CODE) {
|
||||
if (CommonUtil.isNotificationListenerServiceEnabled(this)) {
|
||||
if (requestCode == CommonUtils.NOTIFICATION_REQUEST_CODE) {
|
||||
if (CommonUtils.isNotificationListenerServiceEnabled(this)) {
|
||||
ToastUtils.show(R.string.notification_listener_service_enabled);
|
||||
CommonUtil.toggleNotificationListenerService(this);
|
||||
CommonUtils.toggleNotificationListenerService(this);
|
||||
SettingUtils.switchEnableAppNotify(true);
|
||||
} else {
|
||||
ToastUtils.show(R.string.notification_listener_service_disabled);
|
||||
|
@ -927,19 +927,19 @@ public class SettingActivity extends BaseActivity {
|
|||
textSmsTemplate.requestFocus();
|
||||
switch (v.getId()) {
|
||||
case R.id.bt_insert_sender:
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_from));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_from));
|
||||
return;
|
||||
case R.id.bt_insert_content:
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_sms));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_sms));
|
||||
return;
|
||||
case R.id.bt_insert_extra:
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_card_slot));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_card_slot));
|
||||
return;
|
||||
case R.id.bt_insert_time:
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_receive_time));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_receive_time));
|
||||
return;
|
||||
case R.id.bt_insert_device_name:
|
||||
CommonUtil.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_device_name));
|
||||
CommonUtils.insertOrReplaceText2Cursor(textSmsTemplate, getString(R.string.tag_device_name));
|
||||
return;
|
||||
default:
|
||||
}
|
||||
|
@ -957,7 +957,7 @@ public class SettingActivity extends BaseActivity {
|
|||
|
||||
StepBar stepBar = findViewById(R.id.stepBar);
|
||||
stepBar.setHighlight();
|
||||
CommonUtil.calcMarginBottom(this, null, null, findViewById(R.id.scrollView));
|
||||
CommonUtils.calcMarginBottom(this, null, null, findViewById(R.id.scrollView));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import com.idormy.sms.forwarder.model.CallInfo;
|
|||
import com.idormy.sms.forwarder.model.PhoneBookEntity;
|
||||
import com.idormy.sms.forwarder.model.vo.SmsVo;
|
||||
import com.idormy.sms.forwarder.sender.SendUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
import com.idormy.sms.forwarder.utils.ContactHelper;
|
||||
import com.idormy.sms.forwarder.utils.PhoneUtils;
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils;
|
||||
|
@ -117,7 +117,7 @@ public class PhoneStateReceiver extends BroadcastReceiver {
|
|||
//TODO:同一卡槽同一秒的重复未接来电广播不再重复处理(部分机型会收到两条广播?)
|
||||
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINESE).format(new Date());
|
||||
String prevHash = SettingUtils.getPrevNoticeHash(phoneNumber);
|
||||
String currHash = CommonUtil.MD5(phoneNumber + simInfo + time);
|
||||
String currHash = CommonUtils.MD5(phoneNumber + simInfo + time);
|
||||
Log.d(TAG, "prevHash=" + prevHash + " currHash=" + currHash);
|
||||
if (prevHash != null && prevHash.equals(currHash)) {
|
||||
Log.w(TAG, "Repeated missed call broadcasts of the same card slot in the same second are no longer processed repeatedly (some models will receive two broadcasts)");
|
||||
|
|
|
@ -22,7 +22,7 @@ import com.idormy.sms.forwarder.MyApplication;
|
|||
import com.idormy.sms.forwarder.R;
|
||||
import com.idormy.sms.forwarder.database.AppDatabase;
|
||||
import com.idormy.sms.forwarder.database.Config;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
import com.idormy.sms.forwarder.utils.Define;
|
||||
import com.idormy.sms.forwarder.utils.OSUtils;
|
||||
import com.idormy.sms.forwarder.utils.PhoneUtils;
|
||||
|
@ -110,8 +110,8 @@ public class FrontService extends Service {
|
|||
}
|
||||
|
||||
//开关通知监听服务
|
||||
if (SettingUtils.getSwitchEnableAppNotify() && CommonUtil.isNotificationListenerServiceEnabled(this)) {
|
||||
CommonUtil.toggleNotificationListenerService(this);
|
||||
if (SettingUtils.getSwitchEnableAppNotify() && CommonUtils.isNotificationListenerServiceEnabled(this)) {
|
||||
CommonUtils.toggleNotificationListenerService(this);
|
||||
}
|
||||
|
||||
//Frc内网穿透
|
||||
|
|
|
@ -11,7 +11,7 @@ import androidx.annotation.RequiresApi;
|
|||
import com.idormy.sms.forwarder.MyApplication;
|
||||
import com.idormy.sms.forwarder.model.vo.SmsVo;
|
||||
import com.idormy.sms.forwarder.sender.SendUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
import com.idormy.sms.forwarder.utils.SettingUtils;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
@ -81,7 +81,7 @@ public class NotifyService extends NotificationListenerService {
|
|||
|
||||
//重复通知不再处理
|
||||
String prevHash = SettingUtils.getPrevNoticeHash(packageName);
|
||||
String currHash = CommonUtil.MD5(packageName + title + text + time);
|
||||
String currHash = CommonUtils.MD5(packageName + title + text + time);
|
||||
Log.d(TAG, "prevHash=" + prevHash + " currHash=" + currHash);
|
||||
if (prevHash != null && prevHash.equals(currHash)) {
|
||||
Log.w(TAG, "重复通知不再处理");
|
||||
|
|
|
@ -1,189 +1,189 @@
|
|||
package com.idormy.sms.forwarder.utils;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ListView;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.ScrollView;
|
||||
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.idormy.sms.forwarder.MyApplication;
|
||||
import com.idormy.sms.forwarder.service.NotifyService;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* 常用工具类
|
||||
*/
|
||||
public class CommonUtil {
|
||||
public static final int NOTIFICATION_REQUEST_CODE = 9527;
|
||||
private static final String ACTION_NOTIFICATION_LISTENER_SETTINGS = "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS";
|
||||
|
||||
//是否启用通知监听服务
|
||||
public static boolean isNotificationListenerServiceEnabled(Context context) {
|
||||
Set<String> packageNames = NotificationManagerCompat.getEnabledListenerPackages(context);
|
||||
return packageNames.contains(context.getPackageName());
|
||||
}
|
||||
|
||||
//开关通知监听服务
|
||||
public static void toggleNotificationListenerService(Context context) {
|
||||
PackageManager pm = context.getPackageManager();
|
||||
pm.setComponentEnabledSetting(new ComponentName(context.getApplicationContext(), NotifyService.class),
|
||||
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
|
||||
|
||||
pm.setComponentEnabledSetting(new ComponentName(context.getApplicationContext(), NotifyService.class),
|
||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
|
||||
}
|
||||
|
||||
//跳转通知使用权设置界面
|
||||
public static void openNotificationAccess(Activity activity) {
|
||||
Intent intent = new Intent(ACTION_NOTIFICATION_LISTENER_SETTINGS);
|
||||
activity.startActivityForResult(intent, NOTIFICATION_REQUEST_CODE);
|
||||
}
|
||||
|
||||
//获取当前版本名称
|
||||
public static String getVersionName(Context context) throws Exception {
|
||||
// 获取PackageManager的实例
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
// getPackageName()是你当前类的包名,0代表是获取版本信息
|
||||
PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
|
||||
return packInfo.versionName;
|
||||
}
|
||||
|
||||
//获取当前版本号
|
||||
public static Integer getVersionCode(Context context) throws Exception {
|
||||
// 获取PackageManager的实例
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
// getPackageName()是你当前类的包名,0代表是获取版本信息
|
||||
PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
|
||||
return packInfo.versionCode;
|
||||
}
|
||||
|
||||
// 检查权限是否获取(android6.0及以上系统可能默认关闭权限,且没提示)
|
||||
@SuppressLint("InlinedApi")
|
||||
public static void CheckPermission(PackageManager pm, Context that) {
|
||||
//PackageManager pm = getPackageManager();
|
||||
boolean permission_internet = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.INTERNET", that.getPackageName()));
|
||||
boolean permission_receive_boot = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.RECEIVE_BOOT_COMPLETED", that.getPackageName()));
|
||||
boolean permission_foreground_service = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.FOREGROUND_SERVICE", that.getPackageName()));
|
||||
boolean permission_read_external_storage = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_EXTERNAL_STORAGE", that.getPackageName()));
|
||||
boolean permission_write_external_storage = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.WRITE_EXTERNAL_STORAGE", that.getPackageName()));
|
||||
boolean permission_receive_sms = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.RECEIVE_SMS", that.getPackageName()));
|
||||
boolean permission_read_sms = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_SMS", that.getPackageName()));
|
||||
boolean permission_send_sms = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.SEND_SMS", that.getPackageName()));
|
||||
boolean permission_read_phone_state = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_PHONE_STATE", that.getPackageName()));
|
||||
boolean permission_read_phone_numbers = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_PHONE_NUMBERS", that.getPackageName()));
|
||||
boolean permission_read_call_log = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_CALL_LOG", that.getPackageName()));
|
||||
boolean permission_read_contacts = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_CONTACTS", that.getPackageName()));
|
||||
boolean permission_battery_stats = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.BATTERY_STATS", that.getPackageName()));
|
||||
boolean permission_bind_notification_listener_service = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.BIND_NOTIFICATION_LISTENER_SERVICE", that.getPackageName()));
|
||||
boolean permission_query_all_packages = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.QUERY_ALL_PACKAGES", that.getPackageName()));
|
||||
|
||||
if (!(permission_internet && permission_receive_boot && permission_foreground_service &&
|
||||
permission_read_external_storage && permission_write_external_storage &&
|
||||
permission_receive_sms && permission_read_sms && permission_send_sms &&
|
||||
permission_read_call_log && permission_read_contacts &&
|
||||
permission_read_phone_state && permission_read_phone_numbers && permission_battery_stats &&
|
||||
permission_bind_notification_listener_service && permission_query_all_packages)) {
|
||||
ActivityCompat.requestPermissions((Activity) that, new String[]{
|
||||
Manifest.permission.INTERNET,
|
||||
Manifest.permission.RECEIVE_BOOT_COMPLETED,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.RECEIVE_SMS,
|
||||
Manifest.permission.READ_SMS,
|
||||
Manifest.permission.SEND_SMS,
|
||||
Manifest.permission.READ_PHONE_STATE,
|
||||
Manifest.permission.READ_CALL_LOG,
|
||||
Manifest.permission.READ_CONTACTS,
|
||||
Manifest.permission.READ_PHONE_NUMBERS,
|
||||
Manifest.permission.FOREGROUND_SERVICE,
|
||||
Manifest.permission.BATTERY_STATS,
|
||||
Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE,
|
||||
Manifest.permission.QUERY_ALL_PACKAGES,
|
||||
}, 0x01);
|
||||
}
|
||||
}
|
||||
|
||||
//计算MD5
|
||||
public static String MD5(String input) {
|
||||
if (input == null || input.length() == 0) return null;
|
||||
|
||||
try {
|
||||
MessageDigest md5 = MessageDigest.getInstance("MD5");
|
||||
md5.update(input.getBytes());
|
||||
byte[] byteArray = md5.digest();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (byte b : byteArray) {
|
||||
// 一个byte格式化成两位的16进制,不足两位高位补零
|
||||
sb.append(String.format("%02x", b));
|
||||
}
|
||||
return sb.toString().toUpperCase();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//屏幕像素转换
|
||||
public static int dp2px(Context context, float dipValue) {
|
||||
final float scale = context.getResources().getDisplayMetrics().density;
|
||||
return (int) (dipValue * scale + 0.5f);
|
||||
}
|
||||
|
||||
//是否合法的url
|
||||
public static boolean checkUrl(String urls, boolean emptyResult) {
|
||||
if (TextUtils.isEmpty(urls)) return emptyResult;
|
||||
|
||||
String regex = "(ht|f)tp(s?)\\:\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*(:(0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\&%\\+\\$#_=]*)?";
|
||||
Pattern pat = Pattern.compile(regex);
|
||||
Matcher mat = pat.matcher(urls.trim());
|
||||
return mat.matches();
|
||||
}
|
||||
|
||||
//焦点位置插入文本
|
||||
public static void insertOrReplaceText2Cursor(EditText editText, String str) {
|
||||
int start = Math.max(editText.getSelectionStart(), 0);
|
||||
int end = Math.max(editText.getSelectionEnd(), 0);
|
||||
editText.getText().replace(Math.min(start, end), Math.max(start, end), str, 0, str.length());
|
||||
}
|
||||
|
||||
//计算浮动按钮位置
|
||||
public static void calcMarginBottom(Context context, FloatingActionButton btnFloat, ListView viewList, ScrollView scrollView) {
|
||||
|
||||
int marginBottom = MyApplication.showHelpTip ? 85 : 65;
|
||||
if (btnFloat != null) {
|
||||
RelativeLayout.LayoutParams btnLayoutParams = (RelativeLayout.LayoutParams) btnFloat.getLayoutParams();
|
||||
btnLayoutParams.bottomMargin = dp2px(context, marginBottom + 10);
|
||||
btnFloat.setLayoutParams(btnLayoutParams);
|
||||
}
|
||||
|
||||
if (viewList != null) {
|
||||
RelativeLayout.LayoutParams listLayoutParams = (RelativeLayout.LayoutParams) viewList.getLayoutParams();
|
||||
listLayoutParams.bottomMargin = dp2px(context, marginBottom);
|
||||
viewList.setLayoutParams(listLayoutParams);
|
||||
}
|
||||
|
||||
if (scrollView != null) {
|
||||
RelativeLayout.LayoutParams listLayoutParams = (RelativeLayout.LayoutParams) scrollView.getLayoutParams();
|
||||
listLayoutParams.bottomMargin = dp2px(context, marginBottom);
|
||||
scrollView.setLayoutParams(listLayoutParams);
|
||||
}
|
||||
}
|
||||
}
|
||||
package com.idormy.sms.forwarder.utils;
|
||||
|
||||
import android.Manifest;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ListView;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.ScrollView;
|
||||
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.app.NotificationManagerCompat;
|
||||
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||
import com.idormy.sms.forwarder.MyApplication;
|
||||
import com.idormy.sms.forwarder.service.NotifyService;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* 常用工具类
|
||||
*/
|
||||
public class CommonUtils {
|
||||
public static final int NOTIFICATION_REQUEST_CODE = 9527;
|
||||
private static final String ACTION_NOTIFICATION_LISTENER_SETTINGS = "android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS";
|
||||
|
||||
//是否启用通知监听服务
|
||||
public static boolean isNotificationListenerServiceEnabled(Context context) {
|
||||
Set<String> packageNames = NotificationManagerCompat.getEnabledListenerPackages(context);
|
||||
return packageNames.contains(context.getPackageName());
|
||||
}
|
||||
|
||||
//开关通知监听服务
|
||||
public static void toggleNotificationListenerService(Context context) {
|
||||
PackageManager pm = context.getPackageManager();
|
||||
pm.setComponentEnabledSetting(new ComponentName(context.getApplicationContext(), NotifyService.class),
|
||||
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
|
||||
|
||||
pm.setComponentEnabledSetting(new ComponentName(context.getApplicationContext(), NotifyService.class),
|
||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
|
||||
}
|
||||
|
||||
//跳转通知使用权设置界面
|
||||
public static void openNotificationAccess(Activity activity) {
|
||||
Intent intent = new Intent(ACTION_NOTIFICATION_LISTENER_SETTINGS);
|
||||
activity.startActivityForResult(intent, NOTIFICATION_REQUEST_CODE);
|
||||
}
|
||||
|
||||
//获取当前版本名称
|
||||
public static String getVersionName(Context context) throws Exception {
|
||||
// 获取PackageManager的实例
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
// getPackageName()是你当前类的包名,0代表是获取版本信息
|
||||
PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
|
||||
return packInfo.versionName;
|
||||
}
|
||||
|
||||
//获取当前版本号
|
||||
public static Integer getVersionCode(Context context) throws Exception {
|
||||
// 获取PackageManager的实例
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
// getPackageName()是你当前类的包名,0代表是获取版本信息
|
||||
PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
|
||||
return packInfo.versionCode;
|
||||
}
|
||||
|
||||
// 检查权限是否获取(android6.0及以上系统可能默认关闭权限,且没提示)
|
||||
@SuppressLint("InlinedApi")
|
||||
public static void CheckPermission(PackageManager pm, Context that) {
|
||||
//PackageManager pm = getPackageManager();
|
||||
boolean permission_internet = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.INTERNET", that.getPackageName()));
|
||||
boolean permission_receive_boot = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.RECEIVE_BOOT_COMPLETED", that.getPackageName()));
|
||||
boolean permission_foreground_service = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.FOREGROUND_SERVICE", that.getPackageName()));
|
||||
boolean permission_read_external_storage = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_EXTERNAL_STORAGE", that.getPackageName()));
|
||||
boolean permission_write_external_storage = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.WRITE_EXTERNAL_STORAGE", that.getPackageName()));
|
||||
boolean permission_receive_sms = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.RECEIVE_SMS", that.getPackageName()));
|
||||
boolean permission_read_sms = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_SMS", that.getPackageName()));
|
||||
boolean permission_send_sms = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.SEND_SMS", that.getPackageName()));
|
||||
boolean permission_read_phone_state = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_PHONE_STATE", that.getPackageName()));
|
||||
boolean permission_read_phone_numbers = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_PHONE_NUMBERS", that.getPackageName()));
|
||||
boolean permission_read_call_log = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_CALL_LOG", that.getPackageName()));
|
||||
boolean permission_read_contacts = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.READ_CONTACTS", that.getPackageName()));
|
||||
boolean permission_battery_stats = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.BATTERY_STATS", that.getPackageName()));
|
||||
boolean permission_bind_notification_listener_service = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.BIND_NOTIFICATION_LISTENER_SERVICE", that.getPackageName()));
|
||||
boolean permission_query_all_packages = (PackageManager.PERMISSION_GRANTED == pm.checkPermission("android.permission.QUERY_ALL_PACKAGES", that.getPackageName()));
|
||||
|
||||
if (!(permission_internet && permission_receive_boot && permission_foreground_service &&
|
||||
permission_read_external_storage && permission_write_external_storage &&
|
||||
permission_receive_sms && permission_read_sms && permission_send_sms &&
|
||||
permission_read_call_log && permission_read_contacts &&
|
||||
permission_read_phone_state && permission_read_phone_numbers && permission_battery_stats &&
|
||||
permission_bind_notification_listener_service && permission_query_all_packages)) {
|
||||
ActivityCompat.requestPermissions((Activity) that, new String[]{
|
||||
Manifest.permission.INTERNET,
|
||||
Manifest.permission.RECEIVE_BOOT_COMPLETED,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.RECEIVE_SMS,
|
||||
Manifest.permission.READ_SMS,
|
||||
Manifest.permission.SEND_SMS,
|
||||
Manifest.permission.READ_PHONE_STATE,
|
||||
Manifest.permission.READ_CALL_LOG,
|
||||
Manifest.permission.READ_CONTACTS,
|
||||
Manifest.permission.READ_PHONE_NUMBERS,
|
||||
Manifest.permission.FOREGROUND_SERVICE,
|
||||
Manifest.permission.BATTERY_STATS,
|
||||
Manifest.permission.BIND_NOTIFICATION_LISTENER_SERVICE,
|
||||
Manifest.permission.QUERY_ALL_PACKAGES,
|
||||
}, 0x01);
|
||||
}
|
||||
}
|
||||
|
||||
//计算MD5
|
||||
public static String MD5(String input) {
|
||||
if (input == null || input.length() == 0) return null;
|
||||
|
||||
try {
|
||||
MessageDigest md5 = MessageDigest.getInstance("MD5");
|
||||
md5.update(input.getBytes());
|
||||
byte[] byteArray = md5.digest();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (byte b : byteArray) {
|
||||
// 一个byte格式化成两位的16进制,不足两位高位补零
|
||||
sb.append(String.format("%02x", b));
|
||||
}
|
||||
return sb.toString().toUpperCase();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
//屏幕像素转换
|
||||
public static int dp2px(Context context, float dipValue) {
|
||||
final float scale = context.getResources().getDisplayMetrics().density;
|
||||
return (int) (dipValue * scale + 0.5f);
|
||||
}
|
||||
|
||||
//是否合法的url
|
||||
public static boolean checkUrl(String urls, boolean emptyResult) {
|
||||
if (TextUtils.isEmpty(urls)) return emptyResult;
|
||||
|
||||
String regex = "(ht|f)tp(s?)\\:\\/\\/[0-9a-zA-Z]([-.\\w]*[0-9a-zA-Z])*(:(0-9)*)*(\\/?)([a-zA-Z0-9\\-\\.\\?\\,\\'\\/\\\\&%\\+\\$#_=]*)?";
|
||||
Pattern pat = Pattern.compile(regex);
|
||||
Matcher mat = pat.matcher(urls.trim());
|
||||
return mat.matches();
|
||||
}
|
||||
|
||||
//焦点位置插入文本
|
||||
public static void insertOrReplaceText2Cursor(EditText editText, String str) {
|
||||
int start = Math.max(editText.getSelectionStart(), 0);
|
||||
int end = Math.max(editText.getSelectionEnd(), 0);
|
||||
editText.getText().replace(Math.min(start, end), Math.max(start, end), str, 0, str.length());
|
||||
}
|
||||
|
||||
//计算浮动按钮位置
|
||||
public static void calcMarginBottom(Context context, FloatingActionButton btnFloat, ListView viewList, ScrollView scrollView) {
|
||||
|
||||
int marginBottom = MyApplication.showHelpTip ? 85 : 65;
|
||||
if (btnFloat != null) {
|
||||
RelativeLayout.LayoutParams btnLayoutParams = (RelativeLayout.LayoutParams) btnFloat.getLayoutParams();
|
||||
btnLayoutParams.bottomMargin = dp2px(context, marginBottom + 10);
|
||||
btnFloat.setLayoutParams(btnLayoutParams);
|
||||
}
|
||||
|
||||
if (viewList != null) {
|
||||
RelativeLayout.LayoutParams listLayoutParams = (RelativeLayout.LayoutParams) viewList.getLayoutParams();
|
||||
listLayoutParams.bottomMargin = dp2px(context, marginBottom);
|
||||
viewList.setLayoutParams(listLayoutParams);
|
||||
}
|
||||
|
||||
if (scrollView != null) {
|
||||
RelativeLayout.LayoutParams listLayoutParams = (RelativeLayout.LayoutParams) scrollView.getLayoutParams();
|
||||
listLayoutParams.bottomMargin = dp2px(context, marginBottom);
|
||||
scrollView.setLayoutParams(listLayoutParams);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -21,7 +21,7 @@ import androidx.viewpager.widget.ViewPager;
|
|||
|
||||
import com.idormy.sms.forwarder.R;
|
||||
import com.idormy.sms.forwarder.utils.AnimationUtils;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtil;
|
||||
import com.idormy.sms.forwarder.utils.CommonUtils;
|
||||
|
||||
public class ClearEditText extends RelativeLayout {
|
||||
private EditText myEdie;
|
||||
|
@ -120,7 +120,7 @@ public class ClearEditText extends RelativeLayout {
|
|||
int left = myEdie.getPaddingLeft();
|
||||
int top = myEdie.getPaddingTop();
|
||||
int bottom = myEdie.getPaddingBottom();
|
||||
myEdie.setPadding(left, top, CommonUtil.dp2px(mContext, 90), bottom);
|
||||
myEdie.setPadding(left, top, CommonUtils.dp2px(mContext, 90), bottom);
|
||||
} else if (!showClean && !showEye) {
|
||||
int left = myEdie.getPaddingLeft();
|
||||
int top = myEdie.getPaddingTop();
|
||||
|
@ -131,7 +131,7 @@ public class ClearEditText extends RelativeLayout {
|
|||
int left = myEdie.getPaddingLeft();
|
||||
int top = myEdie.getPaddingTop();
|
||||
int bottom = myEdie.getPaddingBottom();
|
||||
myEdie.setPadding(left, top, CommonUtil.dp2px(mContext, 45), bottom);
|
||||
myEdie.setPadding(left, top, CommonUtils.dp2px(mContext, 45), bottom);
|
||||
}
|
||||
|
||||
myEdie.addTextChangedListener(new TextWatcher() {
|
||||
|
@ -268,7 +268,7 @@ public class ClearEditText extends RelativeLayout {
|
|||
if (showEye) {
|
||||
//关闭按钮的宽度
|
||||
int ivWidth = 35;
|
||||
ObjectAnimator.ofFloat(ivEditEye, "translationX", -CommonUtil.dp2px(mContext, ivWidth)).setDuration(500).start();
|
||||
ObjectAnimator.ofFloat(ivEditEye, "translationX", -CommonUtils.dp2px(mContext, ivWidth)).setDuration(500).start();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue