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;
+ }
}