Add minimal support for OP6 DND slider
diff --git a/Qualcomm/QtiAudio/src/me/phh/qti/audio/Service.java b/Qualcomm/QtiAudio/src/me/phh/qti/audio/Service.java
index 94adc5d..ecc1a07 100644
--- a/Qualcomm/QtiAudio/src/me/phh/qti/audio/Service.java
+++ b/Qualcomm/QtiAudio/src/me/phh/qti/audio/Service.java
@@ -4,14 +4,21 @@
 import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
+import android.media.AudioManager;
 import android.media.AudioSystem;
 import android.os.IBinder;
+import android.os.UEventObserver;
+import android.os.SystemProperties;
 
 import vendor.qti.hardware.radio.am.V1_0.IQcRilAudioCallback;
 import vendor.qti.hardware.radio.am.V1_0.IQcRilAudio;
 
 public class Service extends android.app.Service {
+	AudioManager audioManager;
 	@Override public void onCreate() {
+		String fp = SystemProperties.get("ro.vendor.build.fingerprint", "nothing");
+		audioManager = getSystemService(AudioManager.class);
+
 		new java.lang.Thread() {
 			@Override
 			public void run() {
@@ -25,37 +32,67 @@
 				} catch(Exception e) {
 					android.util.Log.d("PHH", "Failed setting callback", e);
 				}
-			}
-		}.start();
-	}
+                if(fp.contains("OnePlus6")) {
+                    try {
+                        (new UEventObserver() {
+                            @Override
+                            public void onUEvent(UEventObserver.UEvent event) {
+                                try {
+                                    android.util.Log.v("PHH", "USB UEVENT: " + event.toString());
+                                    String state = event.get("STATE");
 
-	IQcRilAudio service;
-	IQcRilAudioCallback cb = new IQcRilAudioCallback.Stub() {
-		@Override
-		public String getParameters(String parameter) {
-			android.util.Log.d("PHH", "Got getParameters " + parameter);
-			try {
-				return AudioSystem.getParameters(parameter);
-			} catch(Exception e) { 
-				android.util.Log.d("PHH", "Failed getting parameters");
-			}
-			return "";
-		}
+                                    boolean ringing = state.contains("USB=0");
+                                    boolean silent = state.contains("(null)=0");
+                                    boolean vibrate = state.contains("USB_HOST=0");
+                                    android.util.Log.v("PHH", "Got ringing = " + ringing + ", silent = " + silent + ", vibrate = " + vibrate);
+                                    if(ringing && !silent && !vibrate)
+                                        audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
+                                    if(silent && !ringing && !vibrate)
+                                        audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
+                                    if(vibrate && !silent && !ringing)
+                                        audioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
+                                } catch(Exception e) {
+                                    android.util.Log.d("PHH", "Failed parsing uevent", e);
+                                }
 
-		@Override
-		public int setParameters(String parameters) {
-			android.util.Log.d("PHH", "Got setParameters " + parameters);
-			try {
-				AudioSystem.setParameters(parameters);
-			} catch(Exception e) { 
-				android.util.Log.d("PHH", "Failed setting parameters");
-			}
-			return 0;
-		}
-	};
+                            }
+                        }).startObserving("DEVPATH=/devices/platform/soc/soc:tri_state_key");
+                    } catch(Exception e) {
+                        android.util.Log.d("PHH", "Failed setting UEventObserver", e);
+                    }
+                }
 
-	@Override
-	public IBinder onBind(Intent intent) {
-		return null;
-	}
+            }
+        }.start();
+    }
+
+    IQcRilAudio service;
+    IQcRilAudioCallback cb = new IQcRilAudioCallback.Stub() {
+        @Override
+        public String getParameters(String parameter) {
+            android.util.Log.d("PHH", "Got getParameters " + parameter);
+            try {
+                return AudioSystem.getParameters(parameter);
+            } catch(Exception e) {
+                android.util.Log.d("PHH", "Failed getting parameters");
+            }
+            return "";
+        }
+
+        @Override
+        public int setParameters(String parameters) {
+            android.util.Log.d("PHH", "Got setParameters " + parameters);
+            try {
+                AudioSystem.setParameters(parameters);
+            } catch(Exception e) {
+                android.util.Log.d("PHH", "Failed setting parameters");
+            }
+            return 0;
+        }
+    };
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        return null;
+    }
 }