diff --git a/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java b/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java index 42c7c210..66c91d7b 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java +++ b/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java @@ -1,9 +1,12 @@ package com.idormy.sms.forwarder; import android.annotation.SuppressLint; +import android.app.ActivityManager; import android.content.ComponentName; +import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.os.Build; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; @@ -22,6 +25,7 @@ import com.idormy.sms.forwarder.service.NotifyService; import com.idormy.sms.forwarder.utils.KeepAliveUtils; import com.idormy.sms.forwarder.utils.SettingUtil; +import java.util.List; import java.util.Set; public class SettingActivity extends AppCompatActivity { @@ -71,6 +75,9 @@ public class SettingActivity extends AppCompatActivity { @SuppressLint("UseSwitchCompatOrMaterialCode") Switch switch_enable_app_notify = findViewById(R.id.switch_enable_app_notify); switchEnableAppNotify(switch_enable_app_notify); + @SuppressLint("UseSwitchCompatOrMaterialCode") Switch switch_exclude_from_recents = findViewById(R.id.switch_exclude_from_recents); + switchExcludeFromRecents(switch_exclude_from_recents); + EditText textSmsTemplate = findViewById(R.id.text_sms_template); editSmsTemplate(textSmsTemplate); } @@ -105,6 +112,26 @@ public class SettingActivity extends AppCompatActivity { }); } + //不在最近任务列表中显示 + @SuppressLint("ObsoleteSdkInt") + private void switchExcludeFromRecents(Switch switch_exclude_from_recents) { + switch_exclude_from_recents.setChecked(SettingUtil.getExcludeFromRecents()); + + switch_exclude_from_recents.setOnCheckedChangeListener((buttonView, isChecked) -> { + SettingUtil.switchExcludeFromRecents(isChecked); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); + if (am != null) { + List appTasks = am.getAppTasks(); + if (appTasks != null && !appTasks.isEmpty()) { + appTasks.get(0).setExcludeFromRecents(isChecked); + } + } + } + Log.d(TAG, "onCheckedChanged:" + isChecked); + }); + } + //设置设备名称 private void editAddExtraDeviceMark(final EditText et_add_extra_device_mark) { et_add_extra_device_mark.setText(SettingUtil.getAddExtraDeviceMark()); @@ -196,7 +223,6 @@ public class SettingActivity extends AppCompatActivity { }); } - //接口请求失败重试 private void editRetryDelayTime(final EditText et_retry_delay_time, final int index) { et_retry_delay_time.setText(String.valueOf(SettingUtil.getRetryDelayTime(index))); @@ -314,6 +340,7 @@ public class SettingActivity extends AppCompatActivity { } + //电池优化设置 public void batterySetting(View view) { if (KeepAliveUtils.isIgnoreBatteryOptimization(this)) { Toast.makeText(this, R.string.isIgnored, Toast.LENGTH_SHORT).show(); @@ -322,12 +349,12 @@ public class SettingActivity extends AppCompatActivity { } } - /** * 请求权限 * * @param view 控件 */ + @SuppressWarnings("deprecation") public void requestPermission(View view) { if (!isNLServiceEnabled()) { Intent intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"); @@ -360,7 +387,6 @@ public class SettingActivity extends AppCompatActivity { PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); } - @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -374,7 +400,6 @@ public class SettingActivity extends AppCompatActivity { } } - private void showMsg(String msg) { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java b/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java index 78d33cf0..541dbc4f 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/Define.java @@ -9,6 +9,7 @@ public class Define { public static final String SP_MSG_KEY_STRING_ENABLE_SMS = "tsms_msg_key_switch_enable_sms"; public static final String SP_MSG_KEY_STRING_ENABLE_PHONE = "tsms_msg_key_switch_enable_phone"; public static final String SP_MSG_KEY_STRING_ENABLE_APP_NOTIFY = "tsms_msg_key_switch_enable_app_notify"; + public static final String SP_MSG_KEY_STRING_ENABLE_EXCLUDE_FROM_RECENTS = "tsms_msg_key_switch_enable_exclude_from_recents"; public static final String SP_MSG_KEY_STRING_ADD_EXTRA_DEVICE_MARK = "tsms_msg_key_string_add_extra_device_mark"; public static final String SP_MSG_KEY_STRING_ADD_EXTRA_SIM1 = "tsms_msg_key_string_add_extra_sim1"; public static final String SP_MSG_KEY_STRING_ADD_EXTRA_SIM2 = "tsms_msg_key_string_add_extra_sim2"; diff --git a/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java b/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java index e80daadd..9e68b449 100644 --- a/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java +++ b/app/src/main/java/com/idormy/sms/forwarder/utils/SettingUtil.java @@ -73,7 +73,17 @@ public class SettingUtil { } public static boolean getSwitchEnableAppNotify() { - return sp_setting.getBoolean(Define.SP_MSG_KEY_STRING_ENABLE_APP_NOTIFY, true); + return sp_setting.getBoolean(Define.SP_MSG_KEY_STRING_ENABLE_APP_NOTIFY, false); + } + + public static void switchExcludeFromRecents(Boolean enable) { + sp_setting.edit() + .putBoolean(Define.SP_MSG_KEY_STRING_ENABLE_EXCLUDE_FROM_RECENTS, enable) + .apply(); + } + + public static boolean getExcludeFromRecents() { + return sp_setting.getBoolean(Define.SP_MSG_KEY_STRING_ENABLE_EXCLUDE_FROM_RECENTS, false); } public static void switchSmsTemplate(Boolean switchSmsTemplate) { diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index 890bdf13..26b87b90 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -349,6 +349,33 @@ + + + + + + + + + tools:ignore="LabelFor,RtlHardcoded" /> + tools:ignore="ButtonStyle,NestedWeights,UsingOnClickInXml" />