Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f12e2c7 authored by Jack Yu's avatar Jack Yu Committed by android-build-merger
Browse files

Merge "Added data service interface"

am: 3965e3bb

Change-Id: I7543aff2abadb4c6b2556f37cd5e763cb5a8c08c
parents f4d3a4d1 3965e3bb
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -455,6 +455,8 @@ java_library {
        "telecomm/java/com/android/internal/telecom/IInCallService.aidl",
        "telecomm/java/com/android/internal/telecom/ITelecomService.aidl",
        "telecomm/java/com/android/internal/telecom/RemoteServiceCallback.aidl",
	"telephony/java/android/telephony/data/IDataService.aidl",
	"telephony/java/android/telephony/data/IDataServiceCallback.aidl",
        "telephony/java/android/telephony/ims/internal/aidl/IImsCallSessionListener.aidl",
        "telephony/java/android/telephony/ims/internal/aidl/IImsCapabilityCallback.aidl",
        "telephony/java/android/telephony/ims/internal/aidl/IImsConfig.aidl",
+32 −0
Original line number Diff line number Diff line
@@ -4123,6 +4123,38 @@ package android.telephony.data {
    field public static final int TYPE_COMMON = 0; // 0x0
  }

  public abstract class DataService extends android.app.Service {
    method public abstract android.telephony.data.DataService.DataServiceProvider createDataServiceProvider(int);
    field public static final java.lang.String DATA_SERVICE_EXTRA_SLOT_ID = "android.telephony.data.extra.SLOT_ID";
    field public static final java.lang.String DATA_SERVICE_INTERFACE = "android.telephony.data.DataService";
  }

  public class DataService.DataServiceProvider {
    ctor public DataService.DataServiceProvider(int);
    method public void deactivateDataCall(int, boolean, boolean, android.telephony.data.DataServiceCallback);
    method public void getDataCallList(android.telephony.data.DataServiceCallback);
    method public final int getSlotId();
    method public final void notifyDataCallListChanged(java.util.List<android.telephony.data.DataCallResponse>);
    method protected void onDestroy();
    method public void setDataProfile(java.util.List<android.telephony.data.DataProfile>, boolean, android.telephony.data.DataServiceCallback);
    method public void setInitialAttachApn(android.telephony.data.DataProfile, boolean, android.telephony.data.DataServiceCallback);
    method public void setupDataCall(int, android.telephony.data.DataProfile, boolean, boolean, boolean, android.net.LinkProperties, android.telephony.data.DataServiceCallback);
  }

  public class DataServiceCallback {
    method public void onDataCallListChanged(java.util.List<android.telephony.data.DataCallResponse>);
    method public void onDeactivateDataCallComplete(int);
    method public void onGetDataCallListComplete(int, java.util.List<android.telephony.data.DataCallResponse>);
    method public void onSetDataProfileComplete(int);
    method public void onSetInitialAttachApnComplete(int);
    method public void onSetupDataCallComplete(int, android.telephony.data.DataCallResponse);
    field public static final int RESULT_ERROR_BUSY = 3; // 0x3
    field public static final int RESULT_ERROR_ILLEGAL_STATE = 4; // 0x4
    field public static final int RESULT_ERROR_INVALID_ARG = 2; // 0x2
    field public static final int RESULT_ERROR_UNSUPPORTED = 1; // 0x1
    field public static final int RESULT_SUCCESS = 0; // 0x0
  }

}

package android.telephony.ims {
+540 −0

File added.

Preview size limit exceeded, changes collapsed.

+172 −0
Original line number Diff line number Diff line
/*
 * 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.annotation.SystemApi;
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
 */
@SystemApi
public class DataServiceCallback {

    private static final String mTag = DataServiceCallback.class.getSimpleName();

    /**
     * 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 Result {}

    /** Request is completed successfully */
    public static final int RESULT_SUCCESS              = 0;
    /** Request is not support */
    public static final int RESULT_ERROR_UNSUPPORTED    = 1;
    /** Request contains invalid arguments */
    public static final int RESULT_ERROR_INVALID_ARG    = 2;
    /** Service is busy */
    public static final int RESULT_ERROR_BUSY           = 3;
    /** Request sent in illegal state */
    public static final int RESULT_ERROR_ILLEGAL_STATE  = 4;

    private final WeakReference<IDataServiceCallback> mCallback;

    /** @hide */
    public DataServiceCallback(IDataServiceCallback callback) {
        mCallback = new WeakReference<>(callback);
    }

    /**
     * Called to indicate result for the request {@link DataServiceProvider#setupDataCall(int,
     * DataProfile, boolean, boolean, boolean, DataServiceCallback)}.
     *
     * @param result The result code. Must be one of the {@link Result}.
     * @param response Setup data call response.
     */
    public void onSetupDataCallComplete(@Result int result, DataCallResponse response) {
        IDataServiceCallback callback = mCallback.get();
        if (callback != null) {
            try {
                callback.onSetupDataCallComplete(result, response);
            } catch (RemoteException e) {
                Rlog.e(mTag, "Failed to onSetupDataCallComplete on the remote");
            }
        }
    }

    /**
     * Called to indicate result for the request {@link DataServiceProvider#deactivateDataCall(int,
     * boolean, boolean, DataServiceCallback)}.
     *
     * @param result The result code. Must be one of the {@link Result}.
     */
    public void onDeactivateDataCallComplete(@Result int result) {
        IDataServiceCallback callback = mCallback.get();
        if (callback != null) {
            try {
                callback.onDeactivateDataCallComplete(result);
            } catch (RemoteException e) {
                Rlog.e(mTag, "Failed to onDeactivateDataCallComplete on the remote");
            }
        }
    }

    /**
     * Called to indicate result for the request {@link DataServiceProvider#setInitialAttachApn(
     * DataProfile, boolean, DataServiceCallback)}.
     *
     * @param result The result code. Must be one of the {@link Result}.
     */
    public void onSetInitialAttachApnComplete(@Result int result) {
        IDataServiceCallback callback = mCallback.get();
        if (callback != null) {
            try {
                callback.onSetInitialAttachApnComplete(result);
            } catch (RemoteException e) {
                Rlog.e(mTag, "Failed to onSetInitialAttachApnComplete on the remote");
            }
        }
    }

    /**
     * Called to indicate result for the request {@link DataServiceProvider#setDataProfile(List,
     * boolean, DataServiceCallback)}.
     *
     * @param result The result code. Must be one of the {@link Result}.
     */
    @SystemApi
    public void onSetDataProfileComplete(@Result int result) {
        IDataServiceCallback callback = mCallback.get();
        if (callback != null) {
            try {
                callback.onSetDataProfileComplete(result);
            } catch (RemoteException e) {
                Rlog.e(mTag, "Failed to onSetDataProfileComplete on the remote");
            }
        }
    }

    /**
     * Called to indicate result for the request {@link DataServiceProvider#getDataCallList(
     * DataServiceCallback)}.
     *
     * @param result The result code. Must be one of the {@link Result}.
     * @param dataCallList List of the current active data connection.
     */
    public void onGetDataCallListComplete(@Result int result, List<DataCallResponse> dataCallList) {
        IDataServiceCallback callback = mCallback.get();
        if (callback != null) {
            try {
                callback.onGetDataCallListComplete(result, dataCallList);
            } catch (RemoteException e) {
                Rlog.e(mTag, "Failed to onGetDataCallListComplete on the remote");
            }
        }
    }

    /**
     * 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(mTag, "Failed to onDataCallListChanged on the remote");
            }
        }
    }
}
+39 −0
Original line number Diff line number Diff line
/*
 * 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.net.LinkProperties;
import android.telephony.data.DataProfile;
import android.telephony.data.IDataServiceCallback;

/**
 * {@hide}
 */
oneway interface IDataService
{
    void setupDataCall(int accessNetwork, in DataProfile dataProfile, boolean isRoaming,
                       boolean allowRoaming, boolean isHandover, in LinkProperties linkProperties,
                       IDataServiceCallback callback);
    void deactivateDataCall(int cid, boolean reasonRadioShutDown, boolean isHandover,
                            IDataServiceCallback callback);
    void setInitialAttachApn(in DataProfile dataProfile, boolean isRoaming,
                             IDataServiceCallback callback);
    void setDataProfile(in List<DataProfile> dps, boolean isRoaming, IDataServiceCallback callback);
    void getDataCallList(IDataServiceCallback callback);
    void registerForDataCallListChanged(IDataServiceCallback callback);
    void unregisterForDataCallListChanged(IDataServiceCallback callback);
}
Loading