Add minimal support for OP6 DND slider

This commit is contained in:
Pierre-Hugues Husson 2018-06-07 16:41:01 +02:00
parent 9c74ef21a7
commit eafa2e451f

View file

@ -4,14 +4,21 @@ import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.util.Log; import android.util.Log;
import android.media.AudioManager;
import android.media.AudioSystem; import android.media.AudioSystem;
import android.os.IBinder; 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.IQcRilAudioCallback;
import vendor.qti.hardware.radio.am.V1_0.IQcRilAudio; import vendor.qti.hardware.radio.am.V1_0.IQcRilAudio;
public class Service extends android.app.Service { public class Service extends android.app.Service {
AudioManager audioManager;
@Override public void onCreate() { @Override public void onCreate() {
String fp = SystemProperties.get("ro.vendor.build.fingerprint", "nothing");
audioManager = getSystemService(AudioManager.class);
new java.lang.Thread() { new java.lang.Thread() {
@Override @Override
public void run() { public void run() {
@ -25,6 +32,36 @@ public class Service extends android.app.Service {
} catch(Exception e) { } catch(Exception e) {
android.util.Log.d("PHH", "Failed setting callback", e); android.util.Log.d("PHH", "Failed setting callback", e);
} }
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");
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);
}
}
}).startObserving("DEVPATH=/devices/platform/soc/soc:tri_state_key");
} catch(Exception e) {
android.util.Log.d("PHH", "Failed setting UEventObserver", e);
}
}
} }
}.start(); }.start();
} }