Telecomm: Add DND & Rate settings to flash on call [2/3]
diff --git a/src/com/android/server/telecom/Ringer.java b/src/com/android/server/telecom/Ringer.java
index ff9d01a..5e9ba82 100644
--- a/src/com/android/server/telecom/Ringer.java
+++ b/src/com/android/server/telecom/Ringer.java
@@ -353,6 +353,15 @@
             }
         }
 
+        boolean ignoreDND = Settings.System.getIntForUser(mContext.getContentResolver(),
+                Settings.System.FLASHLIGHT_ON_CALL_IGNORE_DND, 0,
+                UserHandle.USER_CURRENT) == 1;
+        if (!ignoreDND && shouldFlash) { // respect DND
+            int zenMode = Settings.Global.getInt(mContext.getContentResolver(),
+                    Settings.Global.ZEN_MODE, Settings.Global.ZEN_MODE_OFF);
+            shouldFlash = zenMode == Settings.Global.ZEN_MODE_OFF;
+        }
+
         if (shouldFlash) {
             blinkFlashlight();
         }
@@ -642,7 +651,7 @@
 
         private boolean shouldStop = false;
         private CameraManager cameraManager;
-        private int duration = 500;
+        private int duration;
         private boolean hasFlash = true;
         private Context context;
 
@@ -654,6 +663,8 @@
         private void init() {
             cameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
             hasFlash = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
+            duration = 500 / Settings.System.getIntForUser(context.getContentResolver(),
+                    Settings.System.FLASHLIGHT_ON_CALL_RATE, 1, UserHandle.USER_CURRENT);
         }
 
         void stop() {