/*
 * Copyright 2017 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package android.telephony.data;

import android.annotation.IntDef;
import android.net.LinkProperties;
import android.os.RemoteException;
import android.telephony.Rlog;
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;

Data service callback, which is for bound data service to invoke for solicited and unsolicited response. The caller is responsible to create a callback object for each single asynchronous request.
@hide
/** * Data service callback, which is for bound data service to invoke for solicited and unsolicited * response. The caller is responsible to create a callback object for each single asynchronous * request. * * @hide */
public class DataServiceCallback { private static final String TAG = DataServiceCallback.class.getSimpleName();
Result of data requests
@hide
/** * Result of data requests * @hide */
@Retention(RetentionPolicy.SOURCE) @IntDef({RESULT_SUCCESS, RESULT_ERROR_UNSUPPORTED, RESULT_ERROR_INVALID_ARG, RESULT_ERROR_BUSY, RESULT_ERROR_ILLEGAL_STATE}) public @interface ResultCode {}
Request is completed successfully
/** Request is completed successfully */
public static final int RESULT_SUCCESS = 0;
Request is not support
/** Request is not support */
public static final int RESULT_ERROR_UNSUPPORTED = 1;
Request contains invalid arguments
/** Request contains invalid arguments */
public static final int RESULT_ERROR_INVALID_ARG = 2;
Service is busy
/** Service is busy */
public static final int RESULT_ERROR_BUSY = 3;
Request sent in illegal state
/** Request sent in illegal state */
public static final int RESULT_ERROR_ILLEGAL_STATE = 4; private final WeakReference<IDataServiceCallback> mCallback;
@hide
/** @hide */
public DataServiceCallback(IDataServiceCallback callback) { mCallback = new WeakReference<>(callback); }
Params:
  • result – The result code. Must be one of the ResultCode.
  • response – Setup data call response.
/** * Called to indicate result for the request {@link DataServiceProvider#setupDataCall(int, * DataProfile, boolean, boolean, int, LinkProperties, DataServiceCallback)} . * * @param result The result code. Must be one of the {@link ResultCode}. * @param response Setup data call response. */
public void onSetupDataCallComplete(@ResultCode int result, DataCallResponse response) { IDataServiceCallback callback = mCallback.get(); if (callback != null) { try { callback.onSetupDataCallComplete(result, response); } catch (RemoteException e) { Rlog.e(TAG, "Failed to onSetupDataCallComplete on the remote"); } } }
Params:
  • result – The result code. Must be one of the ResultCode.
/** * Called to indicate result for the request {@link DataServiceProvider#deactivateDataCall(int, * int, 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) { try { callback.onDeactivateDataCallComplete(result); } catch (RemoteException e) { Rlog.e(TAG, "Failed to onDeactivateDataCallComplete on the remote"); } } }
Params:
  • result – The result code. Must be one of the ResultCode.
/** * Called to indicate result for the request {@link DataServiceProvider#setInitialAttachApn( * DataProfile, boolean, 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) { try { callback.onSetInitialAttachApnComplete(result); } catch (RemoteException e) { Rlog.e(TAG, "Failed to onSetInitialAttachApnComplete on the remote"); } } }
Params:
  • result – The result code. Must be one of the ResultCode.
/** * Called to indicate result for the request {@link DataServiceProvider#setDataProfile(List, * boolean, 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) { try { callback.onSetDataProfileComplete(result); } catch (RemoteException e) { Rlog.e(TAG, "Failed to onSetDataProfileComplete on the remote"); } } }
Called to indicate result for the request DataServiceProvider.getDataCallList(DataServiceCallback).
Params:
  • result – The result code. Must be one of the ResultCode.
  • dataCallList – List of the current active data connection.
/** * Called to indicate result for the request {@link DataServiceProvider#getDataCallList( * DataServiceCallback)}. * * @param result The result code. Must be one of the {@link ResultCode}. * @param dataCallList List of the current active data connection. */
public void onGetDataCallListComplete(@ResultCode int result, List<DataCallResponse> dataCallList) { IDataServiceCallback callback = mCallback.get(); if (callback != null) { try { callback.onGetDataCallListComplete(result, dataCallList); } catch (RemoteException e) { Rlog.e(TAG, "Failed to onGetDataCallListComplete on the remote"); } } }
Called to indicate that data connection list changed.
Params:
  • dataCallList – List of the current active data connection.
/** * Called to indicate that data connection list changed. * * @param dataCallList List of the current active data connection. */
public void onDataCallListChanged(List<DataCallResponse> dataCallList) { IDataServiceCallback callback = mCallback.get(); if (callback != null) { try { callback.onDataCallListChanged(dataCallList); } catch (RemoteException e) { Rlog.e(TAG, "Failed to onDataCallListChanged on the remote"); } } } }