diff --git a/Android.bp b/Android.bp index cdc66d4..2b34545 100755 --- a/Android.bp +++ b/Android.bp @@ -6,3 +6,19 @@ hidl_package_root { name: "vendor.qti.hardware.radio.am", path: "vendor/oss/qcrilam/interface/am", } + +android_app { + name: "QcRilAm", + certificate: "platform", + + proprietary: true, + + srcs: ["src/**/*.java"], + + static_libs: ["vendor.qti.hardware.radio.am-V1.0-java"], + + optimize: { + proguard_flags_files: ["proguard.flags"], + }, + sdk_version: "system_current", +} diff --git a/Android.mk b/Android.mk deleted file mode 100644 index cf52fcc..0000000 --- a/Android.mk +++ /dev/null @@ -1,18 +0,0 @@ -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_PACKAGE_NAME := QcRilAm -LOCAL_CERTIFICATE := platform -LOCAL_MODULE_TAGS := optional -LOCAL_PROPRIETARY_MODULE := true - -LOCAL_SRC_FILES := $(call all-java-files-under, src) - -LOCAL_JAVA_LIBRARIES := android.hidl.manager-V1.0-java -LOCAL_STATIC_JAVA_LIBRARIES := vendor.qti.hardware.radio.am-V1.0-java - -LOCAL_PROGUARD_FLAG_FILES := proguard.flags -LOCAL_PRIVATE_PLATFORM_APIS := true -LOCAL_PRIVILEGED_MODULE := true - -include $(BUILD_PACKAGE) diff --git a/src/com/sony/qcrilam/BootReceiver.java b/src/com/sony/qcrilam/BootReceiver.java index efba285..67b210b 100644 --- a/src/com/sony/qcrilam/BootReceiver.java +++ b/src/com/sony/qcrilam/BootReceiver.java @@ -14,11 +14,7 @@ public class BootReceiver extends BroadcastReceiver { Log.w(TAG, "BOOT_COMPLETE NULL intent"); return; } - if (QcRilAmService.isServiceRunning()) { - Log.d(TAG, "Service is already running"); - } else { - intent.setClass(context, QcRilAmService.class); - context.startService(new Intent(context, QcRilAmService.class)); - } + + context.startService(new Intent(context, QcRilAmService.class)); } } diff --git a/src/com/sony/qcrilam/QcRilAmService.java b/src/com/sony/qcrilam/QcRilAmService.java index 5cd9563..471c0a9 100644 --- a/src/com/sony/qcrilam/QcRilAmService.java +++ b/src/com/sony/qcrilam/QcRilAmService.java @@ -2,23 +2,18 @@ package com.sony.qcrilam; import android.app.Service; import android.content.Intent; -import android.media.AudioSystem; +import android.media.AudioManager; import android.os.IBinder; import android.os.RemoteException; -import android.telephony.TelephonyManager; +import android.telephony.SubscriptionManager; import android.util.Log; import vendor.qti.hardware.radio.am.V1_0.IQcRilAudio; import vendor.qti.hardware.radio.am.V1_0.IQcRilAudioCallback; public class QcRilAmService extends Service { private static final String TAG = "QcRilAm-Service"; - private static boolean isRunning = false; - public static boolean isServiceRunning() { - return isRunning; - } - - private void addCallbackForSimSlot(int simSlotNo) { + private void addCallbackForSimSlot(final int simSlotNo, final AudioManager audioManager) { try { IQcRilAudio QcRilAudio = IQcRilAudio.getService("slot" + simSlotNo); if (QcRilAudio == null) { @@ -26,15 +21,19 @@ public class QcRilAmService extends Service { } else { QcRilAudio.setCallback(new IQcRilAudioCallback.Stub() { public String getParameters(String keys) { - return AudioSystem.getParameters(keys); + return audioManager.getParameters(keys); } public int setParameters(String keyValuePairs) { - return AudioSystem.setParameters(keyValuePairs); + /* return */ audioManager.setParameters(keyValuePairs); + // AudioManager.setParameters does not check nor return + // the value coming from AudioSystem.setParameters. + // Assume there was no error: + return 0; } }); } - } catch(RemoteException exception) { + } catch (RemoteException exception) { Log.e(TAG, "RemoteException while trying to add callback for slot" + simSlotNo); } } @@ -46,10 +45,13 @@ public class QcRilAmService extends Service { @Override public void onCreate() { - isRunning = true; - int simCount = TelephonyManager.from(this).getSimCount(); + int simCount = SubscriptionManager.from(this).getActiveSubscriptionInfoCountMax(); + Log.i(TAG, "Device has " + simCount + " sim slots"); + final AudioManager audioManager = getSystemService(AudioManager.class); + if (audioManager == null) + throw new RuntimeException("Can't get audiomanager!"); for (int simSlotNo = 1; simSlotNo <= simCount; simSlotNo++) { - addCallbackForSimSlot(simSlotNo); + addCallbackForSimSlot(simSlotNo, audioManager); } }