整理:文件命名统一规范

This commit is contained in:
pppscn 2022-04-06 16:19:25 +08:00
parent 55a5e15d48
commit 30f9ed71a7
10 changed files with 273 additions and 273 deletions

View File

@ -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)

View File

@ -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);
}

View File

@ -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));
});
//正则替换

View File

@ -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));
});
}

View File

@ -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));
});
}

View File

@ -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)");

View File

@ -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内网穿透

View File

@ -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, "重复通知不再处理");

View File

@ -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);
}
}
}

View File

@ -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();
}
}