diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 86fbf71..8f3939d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,6 +66,12 @@ android:launchMode="singleInstance" android:theme="@style/AppTheme"> + + + SPUtils.getInstance().put("not_show_accessibility_guide", isChecked) + } + + val alphaAnimation = AlphaAnimation(0.2F, 1F).apply { + duration = 800 + repeatCount = Animation.INFINITE + repeatMode = Animation.REVERSE + } + iv_over_finger.startAnimation(alphaAnimation) + } + + override fun onResume() { + super.onResume() + val accessibilitySettingOn = PermissionHelper.isAccessibilitySettingOn() + LogUtils.d("PermissionHelper.isAccessibilitySettingOn: $accessibilitySettingOn") + if (accessibilitySettingOn) { + finish() + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/org/yameida/worktool/activity/FloatViewGuideActivity.kt b/app/src/main/java/org/yameida/worktool/activity/FloatViewGuideActivity.kt index 270ea05..7ccf421 100644 --- a/app/src/main/java/org/yameida/worktool/activity/FloatViewGuideActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/FloatViewGuideActivity.kt @@ -10,9 +10,13 @@ import android.view.animation.Animation import androidx.appcompat.app.AppCompatActivity import com.blankj.utilcode.util.LogUtils import com.blankj.utilcode.util.SPUtils +import com.blankj.utilcode.util.ToastUtils import com.blankj.utilcode.util.Utils import kotlinx.android.synthetic.main.activity_float_guide.* import org.yameida.worktool.R +import org.yameida.worktool.utils.FloatWindowHelper +import org.yameida.worktool.utils.FlowPermissionHelper +import org.yameida.worktool.utils.PermissionPageManagement /** * Created by gallon on 2019/7/20. @@ -20,6 +24,8 @@ import org.yameida.worktool.R */ class FloatViewGuideActivity: AppCompatActivity() { + private var goToSetting = false + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_float_guide) @@ -61,7 +67,21 @@ class FloatViewGuideActivity: AppCompatActivity() { val canDrawOverlays = Settings.canDrawOverlays(Utils.getApp()) LogUtils.d("Settings.canDrawOverlays: $canDrawOverlays") if (canDrawOverlays) { - finish() + if (goToSetting) { + if (FlowPermissionHelper.canBackgroundStart(Utils.getApp())) { + FloatWindowHelper.showWindow() + } + finish() + } else if (!FlowPermissionHelper.canBackgroundStart(Utils.getApp())) { + ToastUtils.showLong("请同时打开后台弹出界面权限~") + PermissionPageManagement.goToSetting(this) + goToSetting = true + } else { + if (FlowPermissionHelper.canBackgroundStart(Utils.getApp())) { + FloatWindowHelper.showWindow() + } + finish() + } } } diff --git a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt index 38c4e30..c95b5ab 100644 --- a/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/ListenActivity.kt @@ -55,8 +55,8 @@ class ListenActivity : AppCompatActivity() { override fun onResume() { super.onResume() - sw_overlay.isChecked = PermissionUtils.isGrantedDrawOverlays() - freshOpenServiceSwitch() + sw_overlay.isChecked = Settings.canDrawOverlays(Utils.getApp()) && FlowPermissionHelper.canBackgroundStart(Utils.getApp()) + sw_accessibility.isChecked = PermissionHelper.isAccessibilitySettingOn() if (needToWork) { needToWork = false goToWork() @@ -126,7 +126,7 @@ class ListenActivity : AppCompatActivity() { sw_accessibility.isChecked = false ToastUtils.showLong("请先填写并保存链接号~") } else if (!PermissionHelper.isAccessibilitySettingOn()) { - openAccessibility() + startActivity(Intent(this, AccessibilityGuideActivity::class.java)) } } else { if (PermissionHelper.isAccessibilitySettingOn()) { @@ -142,58 +142,19 @@ class ListenActivity : AppCompatActivity() { sw_overlay.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { buttonView, isChecked -> LogUtils.i("sw_overlay onCheckedChanged: $isChecked") if (isChecked) { - if (!PermissionUtils.isGrantedDrawOverlays()) { - PermissionUtils.requestDrawOverlays(object : PermissionUtils.SimpleCallback { - override fun onGranted() { - ToastUtils.showLong("请同时打开后台弹出界面权限~") - PermissionPageManagement.goToSetting(this@ListenActivity) - FloatWindowHelper.showWindow() - } - - override fun onDenied() { sw_accessibility.isChecked = false } - }) - } + startActivity(Intent(this, FloatViewGuideActivity::class.java)) } else { - if (PermissionUtils.isGrantedDrawOverlays()) { + if (Settings.canDrawOverlays(Utils.getApp()) && FlowPermissionHelper.canBackgroundStart(Utils.getApp())) { sw_overlay.isChecked = true PermissionPageManagement.goToSetting(this) } } }) - if (PermissionUtils.isGrantedDrawOverlays()) { + if (Settings.canDrawOverlays(Utils.getApp()) && FlowPermissionHelper.canBackgroundStart(Utils.getApp())) { FloatWindowHelper.showWindow() } } - /** - * 打开辅助 - */ - private fun openAccessibility() { - val clickListener = - DialogInterface.OnClickListener { dialog, which -> - freshOpenServiceSwitch() - val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) - startActivity(intent) - } - val cancel = DialogInterface.OnCancelListener { - freshOpenServiceSwitch() - } - val cancelListener = DialogInterface.OnClickListener { dialog, which -> - freshOpenServiceSwitch() - } - val dialog: AlertDialog = AlertDialog.Builder(this) - .setMessage(R.string.tips) - .setOnCancelListener(cancel) - .setNegativeButton("取消", cancelListener) - .setPositiveButton("确定", clickListener) - .create() - dialog.show() - } - - private fun freshOpenServiceSwitch() { - sw_accessibility.isChecked = PermissionHelper.isAccessibilitySettingOn() - } - private fun showSelectHostDialog() { val hostList = SPUtils.getInstance().getStringSet("host_list", mutableSetOf(Constant.host)) if (hostList.isNotEmpty()) { diff --git a/app/src/main/java/org/yameida/worktool/activity/SettingsActivity.kt b/app/src/main/java/org/yameida/worktool/activity/SettingsActivity.kt index e00b7da..2ec690b 100644 --- a/app/src/main/java/org/yameida/worktool/activity/SettingsActivity.kt +++ b/app/src/main/java/org/yameida/worktool/activity/SettingsActivity.kt @@ -78,10 +78,11 @@ class SettingsActivity : AppCompatActivity() { if (!FlowPermissionHelper.canBackgroundStart(Utils.getApp())) { ToastUtils.showLong("请同时打开后台弹出界面权限~") PermissionPageManagement.goToSetting(this) + } else { + FloatWindowHelper.showWindow() } - FloatWindowHelper.showWindow() } else { - startActivityForResult(Intent(this, FloatViewGuideActivity::class.java), 0) + startActivity(Intent(this, FloatViewGuideActivity::class.java)) } } freshOpenMain() @@ -94,24 +95,12 @@ class SettingsActivity : AppCompatActivity() { if (Constant.robotId.isBlank()) { ToastUtils.showLong("请先填写并保存链接号~") } else if (!PermissionHelper.isAccessibilitySettingOn()) { - openAccessibility() + startActivity(Intent(this, AccessibilityGuideActivity::class.java)) } } } } - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - super.onActivityResult(requestCode, resultCode, data) - freshOpenFlow() - if (Settings.canDrawOverlays(Utils.getApp())) { - if (!FlowPermissionHelper.canBackgroundStart(Utils.getApp())) { - ToastUtils.showLong("请同时打开后台弹出界面权限~") - PermissionPageManagement.goToSetting(this) - } - FloatWindowHelper.showWindow() - } - } - private fun showReplyStrategyDialog() { val strategyArray = arrayOf("只读消息不回调", "仅私聊和群聊@机器人回调", "私聊群聊全部回调") QMUIDialog.CheckableDialogBuilder(this) @@ -189,31 +178,6 @@ class SettingsActivity : AppCompatActivity() { } } - /** - * 打开辅助 - */ - private fun openAccessibility() { - val clickListener = - DialogInterface.OnClickListener { dialog, which -> - freshOpenMain() - val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) - startActivity(intent) - } - val cancel = DialogInterface.OnCancelListener { - freshOpenMain() - } - val cancelListener = DialogInterface.OnClickListener { dialog, which -> - freshOpenMain() - } - val dialog: AlertDialog = AlertDialog.Builder(this) - .setMessage(R.string.tips) - .setOnCancelListener(cancel) - .setNegativeButton("取消", cancelListener) - .setPositiveButton("确定", clickListener) - .create() - dialog.show() - } - private fun updateRobotQaUrl(callbackUrl: String) { try { val json = hashMapOf() diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkController.kt b/app/src/main/java/org/yameida/worktool/service/WeworkController.kt index c2b6334..dfde0c0 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkController.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkController.kt @@ -146,7 +146,7 @@ object WeworkController { /** * 进入群聊并修改群配置 - * 群名称、群公告、拉人、踢人 + * 群名称、群公告、拉人、踢人、群备注、群模板 * @see WeworkMessageBean.INTO_GROUP_AND_CONFIG * @param message#groupName 待修改的群 * @param message#newGroupName 修改群名 选填 diff --git a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt index 66d9a2e..1086de8 100644 --- a/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt +++ b/app/src/main/java/org/yameida/worktool/service/WeworkOperationImpl.kt @@ -257,7 +257,7 @@ object WeworkOperationImpl { /** * 进入群聊并修改群配置 - * 群名称、群公告、拉人、踢人 + * 群名称、群公告、拉人、踢人、群备注、群模板 * @param groupName 待修改的群 * @param newGroupName 修改群名 选填 * @param newGroupAnnouncement 修改群公告 选填 diff --git a/app/src/main/res/layout/activity_accessibility_guide.xml b/app/src/main/res/layout/activity_accessibility_guide.xml new file mode 100644 index 0000000..b3878d9 --- /dev/null +++ b/app/src/main/res/layout/activity_accessibility_guide.xml @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file