13f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn/* 23f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * Copyright (C) 2017 The Android Open Source Project 33f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * 43f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 53f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * you may not use this file except in compliance with the License. 63f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * You may obtain a copy of the License at 73f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * 83f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 93f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * 103f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * Unless required by applicable law or agreed to in writing, software 113f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 123f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * See the License for the specific language governing permissions and 143f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * limitations under the License. 153f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn */ 163f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 173f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackbornpackage android.app; 183f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 193f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackbornimport android.content.Intent; 203f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackbornimport android.os.Parcel; 213f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackbornimport android.os.Parcelable; 223f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 233f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn/** 243f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * Describes a Service.onStartCommand() request from the system. 253f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn * @hide 263f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn */ 273f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackbornpublic class ServiceStartArgs implements Parcelable { 283f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn final public boolean taskRemoved; 293f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn final public int startId; 303f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn final public int flags; 313f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn final public Intent args; 323f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 333f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn public ServiceStartArgs(boolean _taskRemoved, int _startId, int _flags, Intent _args) { 343f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn taskRemoved = _taskRemoved; 353f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn startId = _startId; 363f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn flags = _flags; 373f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn args = _args; 383f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 393f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 403f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn public String toString() { 413f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn return "ServiceStartArgs{taskRemoved=" + taskRemoved + ", startId=" + startId 423f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn + ", flags=0x" + Integer.toHexString(flags) + ", args=" + args + "}"; 433f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 443f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 453f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn public int describeContents() { 463f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn return 0; 473f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 483f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 493f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn public void writeToParcel(Parcel out, int flags) { 503f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn out.writeInt(taskRemoved ? 1 : 0); 513f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn out.writeInt(startId); 523f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn out.writeInt(flags); 533f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn if (args != null) { 543f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn out.writeInt(1); 553f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn args.writeToParcel(out, 0); 563f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } else { 573f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn out.writeInt(0); 583f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 593f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 603f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 613f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn public static final Parcelable.Creator<ServiceStartArgs> CREATOR 623f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn = new Parcelable.Creator<ServiceStartArgs>() { 633f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn public ServiceStartArgs createFromParcel(Parcel in) { 643f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn return new ServiceStartArgs(in); 653f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 663f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 673f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn public ServiceStartArgs[] newArray(int size) { 683f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn return new ServiceStartArgs[size]; 693f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 703f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn }; 713f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn 723f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn public ServiceStartArgs(Parcel in) { 733f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn taskRemoved = in.readInt() != 0; 743f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn startId = in.readInt(); 753f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn flags = in.readInt(); 763f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn if (in.readInt() != 0) { 773f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn args = Intent.CREATOR.createFromParcel(in); 783f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } else { 793f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn args = null; 803f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 813f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn } 823f7c9f2d0164f2b5826c194e9309791637f35c2cDianne Hackborn} 83