135cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson/* 235cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * Copyright (C) 2017 The Android Open Source Project 335cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * 435cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * Licensed under the Apache License, Version 2.0 (the "License"); 535cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * you may not use this file except in compliance with the License. 635cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * You may obtain a copy of the License at 735cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * 835cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * http://www.apache.org/licenses/LICENSE-2.0 935cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * 1035cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * Unless required by applicable law or agreed to in writing, software 1135cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * distributed under the License is distributed on an "AS IS" BASIS, 1235cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1335cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * See the License for the specific language governing permissions and 1435cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * limitations under the License. 1535cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson */ 1635cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidsonpackage android.service.euicc; 1735cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 1835cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidsonimport android.annotation.Nullable; 194f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sunimport android.annotation.SystemApi; 2035cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidsonimport android.os.Parcel; 2135cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidsonimport android.os.Parcelable; 2235cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidsonimport android.telephony.euicc.DownloadableSubscription; 2335cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 2435cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson/** 2591c3d07fd9c75258a47fb25c59bc0cd5d2b638a4Jeff Davidson * Result of a {@link EuiccService#onGetDownloadableSubscriptionMetadata} operation. 2635cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * @hide 2735cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson */ 284f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun@SystemApi 2935cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidsonpublic final class GetDownloadableSubscriptionMetadataResult implements Parcelable { 3035cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 3135cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson public static final Creator<GetDownloadableSubscriptionMetadataResult> CREATOR = 3235cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson new Creator<GetDownloadableSubscriptionMetadataResult>() { 3335cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson @Override 3435cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson public GetDownloadableSubscriptionMetadataResult createFromParcel(Parcel in) { 3535cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson return new GetDownloadableSubscriptionMetadataResult(in); 3635cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson } 3735cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 3835cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson @Override 3935cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson public GetDownloadableSubscriptionMetadataResult[] newArray(int size) { 4035cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson return new GetDownloadableSubscriptionMetadataResult[size]; 4135cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson } 4235cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson }; 4335cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 4483f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson /** 454f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun * @hide 464f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun * @deprecated - Do no use. Use getResult() instead. 474f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun */ 484f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun @Deprecated 494f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun public final int result; 504f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun 514f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun @Nullable 524f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun private final DownloadableSubscription mSubscription; 534f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun 544f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun /** 554f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun * Gets the result of the operation. 5683f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * 5783f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * <p>May be one of the predefined {@code RESULT_} constants in EuiccService or any 5883f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * implementation-specific code starting with {@link EuiccService#RESULT_FIRST_USER}. 5983f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson */ 604f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun public int getResult() { 614f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun return result; 624f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun } 6335cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 6435cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson /** 654f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun * Gets the {@link DownloadableSubscription} with filled-in metadata. 6635cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson * 6783f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * <p>Only non-null if {@link #result} is {@link EuiccService#RESULT_OK}. 6835cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson */ 6935cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson @Nullable 704f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun public DownloadableSubscription getDownloadableSubscription() { 714f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun return mSubscription; 724f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun } 7335cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 7483f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson /** 7583f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * Construct a new {@link GetDownloadableSubscriptionMetadataResult}. 7683f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * 7783f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * @param result Result of the operation. May be one of the predefined {@code RESULT_} constants 7883f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * in EuiccService or any implementation-specific code starting with 7983f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * {@link EuiccService#RESULT_FIRST_USER}. 8083f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * @param subscription The subscription with filled-in metadata. Should only be provided if the 8183f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson * result is {@link EuiccService#RESULT_OK}. 8283f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson */ 8383f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson public GetDownloadableSubscriptionMetadataResult(int result, 8483f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson @Nullable DownloadableSubscription subscription) { 8535cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson this.result = result; 8683f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson if (this.result == EuiccService.RESULT_OK) { 874f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun this.mSubscription = subscription; 8883f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson } else { 8983f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson if (subscription != null) { 9083f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson throw new IllegalArgumentException( 9183f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson "Error result with non-null subscription: " + result); 9283f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson } 934f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun this.mSubscription = null; 9483f8bc81be65cb09720c6d8dac7717d4652cd931Jeff Davidson } 9535cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson } 9635cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 9735cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson private GetDownloadableSubscriptionMetadataResult(Parcel in) { 9835cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson this.result = in.readInt(); 994f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun this.mSubscription = in.readTypedObject(DownloadableSubscription.CREATOR); 10035cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson } 10135cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 10235cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson @Override 10335cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson public void writeToParcel(Parcel dest, int flags) { 10435cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson dest.writeInt(result); 1054f73b9c09ac6ae73c22ad02872e362c817ab2d4cHolly Jiuyu Sun dest.writeTypedObject(this.mSubscription, flags); 10635cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson } 10735cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson 10835cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson @Override 10935cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson public int describeContents() { 11035cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson return 0; 11135cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson } 11235cda39422acdeb3fa47ca60f131678e52dbfcb3Jeff Davidson}