Merge changes from topic "null_callback"

* changes:
  Fixed null callback issue
  Added debug messages and watchdog
This commit is contained in:
Jack Yu
2019-08-22 14:23:51 +00:00
committed by Gerrit Code Review
2 changed files with 36 additions and 28 deletions

View File

@@ -24,7 +24,6 @@ import android.telephony.NetworkService.NetworkServiceProvider;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
/**
* Network service callback. Object of this class is passed to NetworkServiceProvider upon
@@ -61,11 +60,11 @@ public class NetworkServiceCallback {
/** Request failed */
public static final int RESULT_ERROR_FAILED = 5;
private final WeakReference<INetworkServiceCallback> mCallback;
private final INetworkServiceCallback mCallback;
/** @hide */
public NetworkServiceCallback(INetworkServiceCallback callback) {
mCallback = new WeakReference<>(callback);
mCallback = callback;
}
/**
@@ -78,15 +77,14 @@ public class NetworkServiceCallback {
*/
public void onRequestNetworkRegistrationInfoComplete(int result,
@Nullable NetworkRegistrationInfo state) {
INetworkServiceCallback callback = mCallback.get();
if (callback != null) {
if (mCallback != null) {
try {
callback.onRequestNetworkRegistrationInfoComplete(result, state);
mCallback.onRequestNetworkRegistrationInfoComplete(result, state);
} catch (RemoteException e) {
Rlog.e(mTag, "Failed to onRequestNetworkRegistrationInfoComplete on the remote");
}
} else {
Rlog.e(mTag, "Weak reference of callback is null.");
Rlog.e(mTag, "onRequestNetworkRegistrationInfoComplete callback is null.");
}
}
}

View File

@@ -27,7 +27,6 @@ import android.telephony.data.DataService.DataServiceProvider;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
import java.util.List;
/**
@@ -42,6 +41,8 @@ public class DataServiceCallback {
private static final String TAG = DataServiceCallback.class.getSimpleName();
private static final boolean DBG = true;
/**
* Result of data requests
* @hide
@@ -62,11 +63,11 @@ public class DataServiceCallback {
/** Request sent in illegal state */
public static final int RESULT_ERROR_ILLEGAL_STATE = 4;
private final WeakReference<IDataServiceCallback> mCallback;
private final IDataServiceCallback mCallback;
/** @hide */
public DataServiceCallback(IDataServiceCallback callback) {
mCallback = new WeakReference<>(callback);
mCallback = callback;
}
/**
@@ -78,13 +79,15 @@ public class DataServiceCallback {
*/
public void onSetupDataCallComplete(@ResultCode int result,
@Nullable DataCallResponse response) {
IDataServiceCallback callback = mCallback.get();
if (callback != null) {
if (mCallback != null) {
try {
callback.onSetupDataCallComplete(result, response);
if (DBG) Rlog.d(TAG, "onSetupDataCallComplete");
mCallback.onSetupDataCallComplete(result, response);
} catch (RemoteException e) {
Rlog.e(TAG, "Failed to onSetupDataCallComplete on the remote");
}
} else {
Rlog.e(TAG, "onSetupDataCallComplete: callback is null!");
}
}
@@ -95,13 +98,15 @@ public class DataServiceCallback {
* @param result The result code. Must be one of the {@link ResultCode}.
*/
public void onDeactivateDataCallComplete(@ResultCode int result) {
IDataServiceCallback callback = mCallback.get();
if (callback != null) {
if (mCallback != null) {
try {
callback.onDeactivateDataCallComplete(result);
if (DBG) Rlog.d(TAG, "onDeactivateDataCallComplete");
mCallback.onDeactivateDataCallComplete(result);
} catch (RemoteException e) {
Rlog.e(TAG, "Failed to onDeactivateDataCallComplete on the remote");
}
} else {
Rlog.e(TAG, "onDeactivateDataCallComplete: callback is null!");
}
}
@@ -112,13 +117,14 @@ public class DataServiceCallback {
* @param result The result code. Must be one of the {@link ResultCode}.
*/
public void onSetInitialAttachApnComplete(@ResultCode int result) {
IDataServiceCallback callback = mCallback.get();
if (callback != null) {
if (mCallback != null) {
try {
callback.onSetInitialAttachApnComplete(result);
mCallback.onSetInitialAttachApnComplete(result);
} catch (RemoteException e) {
Rlog.e(TAG, "Failed to onSetInitialAttachApnComplete on the remote");
}
} else {
Rlog.e(TAG, "onSetInitialAttachApnComplete: callback is null!");
}
}
@@ -129,13 +135,14 @@ public class DataServiceCallback {
* @param result The result code. Must be one of the {@link ResultCode}.
*/
public void onSetDataProfileComplete(@ResultCode int result) {
IDataServiceCallback callback = mCallback.get();
if (callback != null) {
if (mCallback != null) {
try {
callback.onSetDataProfileComplete(result);
mCallback.onSetDataProfileComplete(result);
} catch (RemoteException e) {
Rlog.e(TAG, "Failed to onSetDataProfileComplete on the remote");
}
} else {
Rlog.e(TAG, "onSetDataProfileComplete: callback is null!");
}
}
@@ -149,13 +156,14 @@ public class DataServiceCallback {
*/
public void onRequestDataCallListComplete(@ResultCode int result,
@NonNull List<DataCallResponse> dataCallList) {
IDataServiceCallback callback = mCallback.get();
if (callback != null) {
if (mCallback != null) {
try {
callback.onRequestDataCallListComplete(result, dataCallList);
mCallback.onRequestDataCallListComplete(result, dataCallList);
} catch (RemoteException e) {
Rlog.e(TAG, "Failed to onRequestDataCallListComplete on the remote");
}
} else {
Rlog.e(TAG, "onRequestDataCallListComplete: callback is null!");
}
}
@@ -166,13 +174,15 @@ public class DataServiceCallback {
* @param dataCallList List of the current active data connection.
*/
public void onDataCallListChanged(@NonNull List<DataCallResponse> dataCallList) {
IDataServiceCallback callback = mCallback.get();
if (callback != null) {
if (mCallback != null) {
try {
callback.onDataCallListChanged(dataCallList);
if (DBG) Rlog.d(TAG, "onDataCallListChanged");
mCallback.onDataCallListChanged(dataCallList);
} catch (RemoteException e) {
Rlog.e(TAG, "Failed to onDataCallListChanged on the remote");
}
} else {
Rlog.e(TAG, "onDataCallListChanged: callback is null!");
}
}
}