180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn/* 280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * Copyright (C) 2012 The Android Open Source Project 380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * 480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * you may not use this file except in compliance with the License. 680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * You may obtain a copy of the License at 780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * 880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * 1080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 1180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 1280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * See the License for the specific language governing permissions and 1480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn * limitations under the License. 1580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn */ 1680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 1780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackbornpackage com.android.server.am; 1880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 1980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackbornimport java.io.PrintWriter; 2080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackbornimport java.util.ArrayList; 2180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 2280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackbornimport android.app.IStopUserCallback; 2380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackbornimport android.os.UserHandle; 2480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 2580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackbornpublic class UserStartedState { 2636d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn // User is first coming up. 2780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public final static int STATE_BOOTING = 0; 2836d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn // User is in the normal running state. 2980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public final static int STATE_RUNNING = 1; 3036d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn // User is in the initial process of being stopped. 3180a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public final static int STATE_STOPPING = 2; 3236d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn // User is in the final phase of stopping, sending Intent.ACTION_SHUTDOWN. 3336d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn public final static int STATE_SHUTDOWN = 3; 3480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 3580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public final UserHandle mHandle; 3680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public final ArrayList<IStopUserCallback> mStopCallbacks 3780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn = new ArrayList<IStopUserCallback>(); 3880a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 3980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public int mState = STATE_BOOTING; 40d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn public boolean switching; 41d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn public boolean initializing; 4280a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 4380a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn public UserStartedState(UserHandle handle, boolean initial) { 4480a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn mHandle = handle; 4580a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn } 4680a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn 4780a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn void dump(String prefix, PrintWriter pw) { 4836d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn pw.print(prefix); pw.print("mState="); 4936d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn switch (mState) { 5036d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn case STATE_BOOTING: pw.print("BOOTING"); break; 5136d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn case STATE_RUNNING: pw.print("RUNNING"); break; 5236d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn case STATE_STOPPING: pw.print("STOPPING"); break; 5336d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn case STATE_SHUTDOWN: pw.print("SHUTDOWN"); break; 5436d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn default: pw.print(mState); break; 5536d337adffa6d1c4c953e83730ad58747f554877Dianne Hackborn } 56d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn if (switching) pw.print(" SWITCHING"); 57d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn if (initializing) pw.print(" INITIALIZING"); 58d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn pw.println(); 5980a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn } 6080a4af2bbc6af42ae605e454bf89558e564f5244Dianne Hackborn} 61