Merge pull request #4 from MarijnS95/sdk-compliant

[QcRilAm] [1/2] Drop private_apis access and convert to use public SDK interfaces
This commit is contained in:
Alin Jerpelea 2019-12-05 08:49:01 +09:00 committed by GitHub
commit e91a368036
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 34 additions and 38 deletions

View file

@ -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",
}

View file

@ -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)

View file

@ -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));
}
}

View file

@ -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);
}
}