1 /* 2 * Copyright 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.internal.telephony.dataconnection; 18 19 import android.os.Parcel; 20 import android.os.Parcelable; 21 22 /** 23 * This class serves to pass around the parameters of Keepalive session 24 * status within the telephony framework. 25 * 26 * {@hide} 27 */ 28 public class KeepaliveStatus implements Parcelable { 29 private static final String LOG_TAG = "KeepaliveStatus"; 30 31 /** This should match the HAL Radio::1_1::KeepaliveStatusCode */ 32 public static final int STATUS_ACTIVE = 0; 33 public static final int STATUS_INACTIVE = 1; 34 public static final int STATUS_PENDING = 2; 35 36 public static final int ERROR_NONE = 0; 37 public static final int ERROR_UNSUPPORTED = 1; 38 public static final int ERROR_NO_RESOURCES = 2; 39 public static final int ERROR_UNKNOWN = 3; 40 41 public static final int INVALID_HANDLE = Integer.MAX_VALUE; 42 43 /** An opaque value that identifies this Keepalive status to the modem */ 44 public final int sessionHandle; 45 46 /** 47 * A status code indicating whether this Keepalive session is 48 * active, inactive, or pending activation 49 */ 50 public final int statusCode; 51 52 /** An error code indicating a lower layer failure, if any */ 53 public final int errorCode; 54 KeepaliveStatus(int error)55 public KeepaliveStatus(int error) { 56 sessionHandle = INVALID_HANDLE; 57 statusCode = STATUS_INACTIVE; 58 errorCode = error; 59 } 60 KeepaliveStatus(int handle, int code)61 public KeepaliveStatus(int handle, int code) { 62 sessionHandle = handle; 63 statusCode = code; 64 errorCode = ERROR_NONE; 65 } 66 67 68 @Override toString()69 public String toString() { 70 return String.format("{errorCode=%d, sessionHandle=%d, statusCode=%d}", 71 errorCode, sessionHandle, statusCode); 72 } 73 74 // Parcelable Implementation 75 @Override describeContents()76 public int describeContents() { 77 return 0; 78 } 79 80 @Override writeToParcel(Parcel dest, int flags)81 public void writeToParcel(Parcel dest, int flags) { 82 dest.writeInt(errorCode); 83 dest.writeInt(sessionHandle); 84 dest.writeInt(statusCode); 85 } 86 KeepaliveStatus(Parcel p)87 private KeepaliveStatus(Parcel p) { 88 errorCode = p.readInt(); 89 sessionHandle = p.readInt(); 90 statusCode = p.readInt(); 91 } 92 93 public static final Parcelable.Creator<KeepaliveStatus> CREATOR = 94 new Parcelable.Creator<KeepaliveStatus>() { 95 @Override 96 public KeepaliveStatus createFromParcel(Parcel source) { 97 return new KeepaliveStatus(source); 98 } 99 100 @Override 101 public KeepaliveStatus[] newArray(int size) { 102 return new KeepaliveStatus[size]; 103 } 104 }; 105 } 106