add: notification listener service
This commit is contained in:
@@ -212,6 +212,15 @@
|
||||
|
||||
</service>
|
||||
|
||||
<service
|
||||
android:name="com.stardust.notification.NotificationListenerService"
|
||||
android:label="@string/_app_name"
|
||||
android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE">
|
||||
<intent-filter>
|
||||
<action android:name="android.service.notification.NotificationListenerService"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
|
||||
<receiver android:name=".external.widget.ScriptWidget">
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
package com.stardust.scriptdroid.ui.main.drawer;
|
||||
|
||||
import android.app.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
@@ -13,6 +17,7 @@ import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy;
|
||||
import com.bumptech.glide.request.target.SimpleTarget;
|
||||
import com.bumptech.glide.request.transition.Transition;
|
||||
import com.stardust.notification.NotificationListenerService;
|
||||
import com.stardust.scriptdroid.App;
|
||||
import com.stardust.scriptdroid.Pref;
|
||||
import com.stardust.scriptdroid.R;
|
||||
@@ -55,6 +60,7 @@ import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/1/30.
|
||||
* TODO 侧拉菜单用RecyclerView
|
||||
*/
|
||||
@EFragment(R.layout.fragment_drawer)
|
||||
public class DrawerFragment extends android.support.v4.app.Fragment {
|
||||
@@ -67,6 +73,9 @@ public class DrawerFragment extends android.support.v4.app.Fragment {
|
||||
@ViewById(R.id.accessibility_service)
|
||||
DrawerMenuItem mAccessibilityServiceItem;
|
||||
|
||||
@ViewById(R.id.notification_service)
|
||||
DrawerMenuItem mNotificationPermissionItem;
|
||||
|
||||
@ViewById(R.id.floating_window)
|
||||
DrawerMenuItem mFloatingWindowItem;
|
||||
|
||||
@@ -201,6 +210,19 @@ public class DrawerFragment extends android.support.v4.app.Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
@Click(R.id.notification_service)
|
||||
void goToNotificationServiceSettings() {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP_MR1) {
|
||||
return;
|
||||
}
|
||||
boolean enabled = NotificationListenerService.getInstance() != null;
|
||||
boolean checked = mNotificationPermissionItem.getSwitchCompat().isChecked();
|
||||
if ((checked && !enabled) || (!checked && enabled)) {
|
||||
startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private boolean isAccessibilityServiceEnabled() {
|
||||
return AccessibilityServiceTool.isAccessibilityServiceEnabled(getActivity());
|
||||
}
|
||||
@@ -307,6 +329,10 @@ public class DrawerFragment extends android.support.v4.app.Fragment {
|
||||
private void syncSwitchState() {
|
||||
mAccessibilityServiceItem.getSwitchCompat().setChecked(
|
||||
AccessibilityServiceTool.isAccessibilityServiceEnabled(getActivity()));
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
|
||||
mNotificationPermissionItem.getSwitchCompat().setChecked(NotificationListenerService.getInstance() != null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void enableAccessibilityService() {
|
||||
|
||||
BIN
app/src/main/res/drawable-xhdpi/ic_ali_notification.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/ic_ali_notification.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
@@ -15,7 +15,7 @@
|
||||
<com.stardust.scriptdroid.ui.main.drawer.DrawerMenuGroup
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:title="@string/text_accessibility_service">
|
||||
app:title="@string/text_service">
|
||||
|
||||
<com.stardust.scriptdroid.ui.main.drawer.DrawerMenuItem
|
||||
android:id="@+id/accessibility_service"
|
||||
@@ -35,6 +35,14 @@
|
||||
app:title="@string/text_stable_mode"
|
||||
app:with_switch="true"/>
|
||||
|
||||
<com.stardust.scriptdroid.ui.main.drawer.DrawerMenuItem
|
||||
android:id="@+id/notification_service"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:icon="@drawable/ic_ali_notification"
|
||||
app:title="@string/text_notification_permission"
|
||||
app:with_switch="true"/>
|
||||
|
||||
|
||||
</com.stardust.scriptdroid.ui.main.drawer.DrawerMenuGroup>
|
||||
|
||||
|
||||
@@ -282,6 +282,8 @@
|
||||
<string name="text_reset_succeed">重置成功</string>
|
||||
<string name="text_cannot_read_file" formatted="true">无法读取文件: %s</string>
|
||||
<string name="text_connected">已连接</string>
|
||||
<string name="text_service">服务</string>
|
||||
<string name="text_notification_permission">通知权限</string>
|
||||
|
||||
|
||||
<string-array name="ad_showing_mode_keys">
|
||||
|
||||
Reference in New Issue
Block a user