Implement isAntennaConnected interface of ITuner.

Test: instrumentation
Bug: b/36863239
Change-Id: I325cc29a696a6163fd3db1f2a75e64a2b1ddf514
This commit is contained in:
Tomasz Wasilczyk
2017-05-17 14:55:17 -07:00
parent 615e77a674
commit 39ac214838
5 changed files with 39 additions and 5 deletions

View File

@@ -84,4 +84,6 @@ interface ITuner {
* configuration.
*/
void setAnalogForced(boolean isForced);
boolean isAntennaConnected();
}

View File

@@ -218,8 +218,11 @@ class TunerAdapter extends RadioTuner {
@Override
public boolean isAntennaConnected() {
// TODO(b/36863239): forward to mTuner
throw new RuntimeException("Not implemented");
try {
return mTuner.isAntennaConnected();
} catch (RemoteException e) {
throw new RuntimeException("service died", e);
}
}
@Override

View File

@@ -74,6 +74,8 @@ class Tuner extends ITuner.Stub {
private native boolean nativeIsAnalogForced(long nativeContext);
private native void nativeSetAnalogForced(long nativeContext, boolean isForced);
private native boolean nativeIsAntennaConnected(long nativeContext);
@Override
public void close() {
synchronized (mLock) {
@@ -177,6 +179,7 @@ class Tuner extends ITuner.Stub {
}
}
@Override
public boolean startBackgroundScan() {
synchronized (mLock) {
checkNotClosedLocked();
@@ -184,6 +187,7 @@ class Tuner extends ITuner.Stub {
}
}
@Override
public List<RadioManager.ProgramInfo> getProgramList(String filter) {
synchronized (mLock) {
checkNotClosedLocked();
@@ -195,6 +199,7 @@ class Tuner extends ITuner.Stub {
}
}
@Override
public boolean isAnalogForced() {
synchronized (mLock) {
checkNotClosedLocked();
@@ -202,10 +207,19 @@ class Tuner extends ITuner.Stub {
}
}
@Override
public void setAnalogForced(boolean isForced) {
synchronized (mLock) {
checkNotClosedLocked();
nativeSetAnalogForced(mNativeContext, isForced);
}
}
@Override
public boolean isAntennaConnected() {
synchronized (mLock) {
checkNotClosedLocked();
return nativeIsAntennaConnected(mNativeContext);
}
}
}

View File

@@ -319,6 +319,21 @@ static void nativeSetAnalogForced(JNIEnv *env, jobject obj, jlong nativeContext,
convert::ThrowIfFailed(env, halResult);
}
static bool nativeIsAntennaConnected(JNIEnv *env, jobject obj, jlong nativeContext) {
ALOGV("nativeIsAntennaConnected()");
auto halTuner = getHalTuner(nativeContext);
if (halTuner == nullptr) return false;
bool isConnected = false;
Result halResult;
auto hidlResult = halTuner->getConfiguration([&](Result result, const BandConfig& config) {
halResult = result;
isConnected = config.antennaConnected;
});
convert::ThrowIfFailed(env, hidlResult, halResult);
return isConnected;
}
static const JNINativeMethod gTunerMethods[] = {
{ "nativeInit", "(I)J", (void*)nativeInit },
{ "nativeFinalize", "(J)V", (void*)nativeFinalize },
@@ -338,6 +353,7 @@ static const JNINativeMethod gTunerMethods[] = {
(void*)nativeGetProgramList },
{ "nativeIsAnalogForced", "(J)Z", (void*)nativeIsAnalogForced },
{ "nativeSetAnalogForced", "(JZ)V", (void*)nativeSetAnalogForced },
{ "nativeIsAntennaConnected", "(J)Z", (void*)nativeIsAntennaConnected },
};
} // namespace Tuner

View File

@@ -137,9 +137,8 @@ public class RadioTest {
}
private void checkAntenna() {
// TODO(b/36863239): enable check when isAntennaConnected is implemented
//boolean isConnected = mRadioTuner.isAntennaConnected();
//assertTrue(isConnected);
boolean isConnected = mRadioTuner.isAntennaConnected();
assertTrue(isConnected);
}
@Test