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