fixed vibrator issues.
authorTrillGates <williamtrillgates@gmail.com>
Wed, 1 Sep 2021 11:18:33 +0000 (19:18 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Wed, 1 Sep 2021 11:18:33 +0000 (19:18 +0800)
app/src/main/java/com/enqualcomm/support/Constants.java
app/src/main/java/com/enqualcomm/support/LocationClient.java
app/src/main/java/com/enqualcomm/support/service/SilentManager.java
app/src/main/java/com/enqualcomm/support/utils/VibrateUtil.java

index 333cf5a..13d07f7 100644 (file)
@@ -21,6 +21,7 @@ public interface Constants {
 
     String ACTION_ALARM_ALARM_CHANGE = "com.enqualcomm.support.ACTION_ALARM_ALARM_CHANGE";
     String ACTION_ALARM_DELETE_ALARM= "com.ic.alarm.action.DELETE_ALARM";
+    String ACTION_ALARM_DELETE_ALARM_RESULT= "com.ic.alarm.action.DELETE_ALARM_RESULT";
 
     String ACTION_ANTIOFF_ALARM_CHANGE = "com.enqualcomm.support.ACTION_ANTIOFF_ALARM_CHANGE";
 
index ee4a01d..19b9e5c 100644 (file)
@@ -828,14 +828,6 @@ public class LocationClient {
     }
 
 
-    public PowerManager.WakeLock getLocationWakeLock() {
-        PowerManager.WakeLock wakeLock = ((PowerManager) (runtime.getContextProxy())
-                .context.getSystemService(Context.POWER_SERVICE)).newWakeLock(
-                PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getSimpleName());
-        wakeLock.acquire(1000L);
-        return wakeLock;
-    }
-
     public void onAlarm(PowerManager.WakeLock paramWakeLock) {
         //每分钟更新一次数据
         runtime.preCellInfo = runtime.getCurrentCellInfo();
index 2016138..7531d90 100644 (file)
@@ -50,6 +50,7 @@ import static android.telephony.TelephonyManager.CALL_STATE_OFFHOOK;
 import static android.telephony.TelephonyManager.CALL_STATE_RINGING;
 import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
 import static com.enqualcomm.support.Constants.ACTION_ALARM_DELETE_ALARM;
+import static com.enqualcomm.support.Constants.ACTION_ALARM_DELETE_ALARM_RESULT;
 import static com.enqualcomm.support.Constants.ACTION_ANTIOFF_ALARM_CHANGE;
 import static com.enqualcomm.support.Constants.ACTION_CLOSE_UNREAD_MSG;
 import static com.enqualcomm.support.Constants.ACTION_IC_ALARM;
@@ -988,6 +989,8 @@ public class SilentManager extends AbstractInvokeHandlerService {
                         int delete = context.getContentResolver().delete(Uri.parse(ICAlarmProvider.ALARMS),
                                 "_id=?", new String[]{alarmId});
                         ICLogger.d("delete alarm ==|||=> " + delete);
+                        //通知UI更新
+                        mContext.sendBroadcast(new Intent(ACTION_ALARM_DELETE_ALARM_RESULT));
                     }
                     query.close();
                 }
index b0c7685..6eadf02 100644 (file)
@@ -3,6 +3,7 @@ package com.enqualcomm.support.utils;
 import android.content.Context;\r
 import android.os.Handler;\r
 import android.os.HandlerThread;\r
+import android.os.PowerManager;\r
 import android.os.Vibrator;\r
 \r
 import static android.content.Context.VIBRATOR_SERVICE;\r
@@ -10,6 +11,7 @@ import static android.content.Context.VIBRATOR_SERVICE;
 public class VibrateUtil {\r
 \r
     private final Handler handler;\r
+    private PowerManager.WakeLock locationWakeLock;\r
 \r
     private VibrateUtil(Context context) {\r
         if (mContext == null) {\r
@@ -23,7 +25,7 @@ public class VibrateUtil {
         handler = new Handler(handlerThread.getLooper());\r
     }\r
 \r
-    private static Context mContext = null;\r
+    private Context mContext = null;\r
 \r
     public static VibrateUtil getInstance(Context context) {\r
         if (vibrateUtil == null) {\r
@@ -65,7 +67,9 @@ public class VibrateUtil {
                     isVibrate = false;\r
                     vibrator.cancel();\r
                     ICLogger.d("vibrate finish...");\r
-                }, 1300);\r
+                    locationWakeLock.release();\r
+                    ICLogger.d("acquire wake lock...");\r
+                }, 2000);\r
                 handler.removeCallbacks(vibrateTask);\r
                 handler.post(vibrateTask);\r
             } else {\r
@@ -76,7 +80,16 @@ public class VibrateUtil {
         }\r
     }\r
 \r
+    public PowerManager.WakeLock getLocationWakeLock() {\r
+        PowerManager.WakeLock wakeLock = ((PowerManager) mContext.getSystemService(Context.POWER_SERVICE))\r
+                .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getSimpleName());\r
+        wakeLock.acquire(3000L);\r
+        ICLogger.d("acquire wake lock...");\r
+        return wakeLock;\r
+    }\r
+\r
     private final Runnable vibrateTask = () -> {\r
+        locationWakeLock = getLocationWakeLock();\r
         vibrator.vibrate(1000);//不循环\r
     };\r
 \r