Merge "Do not use hidden API ParcelableException"
This commit is contained in:
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package android.telephony;
|
package android.telephony;
|
||||||
|
|
||||||
import android.os.ParcelableException;
|
|
||||||
import android.telephony.CellInfo;
|
import android.telephony.CellInfo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -28,5 +27,5 @@ import java.util.List;
|
|||||||
oneway interface ICellInfoCallback
|
oneway interface ICellInfoCallback
|
||||||
{
|
{
|
||||||
void onCellInfo(in List<CellInfo> state);
|
void onCellInfo(in List<CellInfo> state);
|
||||||
void onError(in int errorCode, in ParcelableException detail);
|
void onError(in int errorCode, in String exceptionName, in String message);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ import android.telephony.Annotation.NetworkType;
|
|||||||
import android.telephony.Annotation.RadioPowerState;
|
import android.telephony.Annotation.RadioPowerState;
|
||||||
import android.telephony.Annotation.SimActivationState;
|
import android.telephony.Annotation.SimActivationState;
|
||||||
import android.telephony.VisualVoicemailService.VisualVoicemailTask;
|
import android.telephony.VisualVoicemailService.VisualVoicemailTask;
|
||||||
import android.telephony.data.ApnSetting;
|
|
||||||
import android.telephony.emergency.EmergencyNumber;
|
import android.telephony.emergency.EmergencyNumber;
|
||||||
import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories;
|
import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories;
|
||||||
import android.telephony.ims.ImsMmTelManager;
|
import android.telephony.ims.ImsMmTelManager;
|
||||||
@@ -5490,19 +5489,20 @@ public class TelephonyManager {
|
|||||||
telephony.requestCellInfoUpdate(
|
telephony.requestCellInfoUpdate(
|
||||||
getSubId(),
|
getSubId(),
|
||||||
new ICellInfoCallback.Stub() {
|
new ICellInfoCallback.Stub() {
|
||||||
|
@Override
|
||||||
public void onCellInfo(List<CellInfo> cellInfo) {
|
public void onCellInfo(List<CellInfo> cellInfo) {
|
||||||
Binder.withCleanCallingIdentity(() ->
|
Binder.withCleanCallingIdentity(() ->
|
||||||
executor.execute(() -> callback.onCellInfo(cellInfo)));
|
executor.execute(() -> callback.onCellInfo(cellInfo)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onError(int errorCode, android.os.ParcelableException detail) {
|
@Override
|
||||||
|
public void onError(int errorCode, String exceptionName, String message) {
|
||||||
Binder.withCleanCallingIdentity(() ->
|
Binder.withCleanCallingIdentity(() ->
|
||||||
executor.execute(() -> callback.onError(
|
executor.execute(() -> callback.onError(
|
||||||
errorCode,
|
errorCode,
|
||||||
detail == null ? null : detail.getCause())));
|
createThrowableByClassName(exceptionName, message))));
|
||||||
}
|
}
|
||||||
}, getOpPackageName());
|
}, getOpPackageName());
|
||||||
|
|
||||||
} catch (RemoteException ex) {
|
} catch (RemoteException ex) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5531,22 +5531,36 @@ public class TelephonyManager {
|
|||||||
telephony.requestCellInfoUpdateWithWorkSource(
|
telephony.requestCellInfoUpdateWithWorkSource(
|
||||||
getSubId(),
|
getSubId(),
|
||||||
new ICellInfoCallback.Stub() {
|
new ICellInfoCallback.Stub() {
|
||||||
|
@Override
|
||||||
public void onCellInfo(List<CellInfo> cellInfo) {
|
public void onCellInfo(List<CellInfo> cellInfo) {
|
||||||
Binder.withCleanCallingIdentity(() ->
|
Binder.withCleanCallingIdentity(() ->
|
||||||
executor.execute(() -> callback.onCellInfo(cellInfo)));
|
executor.execute(() -> callback.onCellInfo(cellInfo)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onError(int errorCode, android.os.ParcelableException detail) {
|
@Override
|
||||||
|
public void onError(int errorCode, String exceptionName, String message) {
|
||||||
Binder.withCleanCallingIdentity(() ->
|
Binder.withCleanCallingIdentity(() ->
|
||||||
executor.execute(() -> callback.onError(
|
executor.execute(() -> callback.onError(
|
||||||
errorCode,
|
errorCode,
|
||||||
detail == null ? null : detail.getCause())));
|
createThrowableByClassName(exceptionName, message))));
|
||||||
}
|
}
|
||||||
}, getOpPackageName(), workSource);
|
}, getOpPackageName(), workSource);
|
||||||
} catch (RemoteException ex) {
|
} catch (RemoteException ex) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Throwable createThrowableByClassName(String className, String message) {
|
||||||
|
if (className == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Class<?> c = Class.forName(className);
|
||||||
|
return (Throwable) c.getConstructor(String.class).newInstance(message);
|
||||||
|
} catch (ReflectiveOperationException | ClassCastException e) {
|
||||||
|
}
|
||||||
|
return new RuntimeException(className + ": " + message);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the minimum time in milli-seconds between {@link PhoneStateListener#onCellInfoChanged
|
* Sets the minimum time in milli-seconds between {@link PhoneStateListener#onCellInfoChanged
|
||||||
* PhoneStateListener.onCellInfoChanged} will be invoked.
|
* PhoneStateListener.onCellInfoChanged} will be invoked.
|
||||||
|
|||||||
Reference in New Issue
Block a user