SystemStateControllerService.java revision 52d8f7d353c67d89f6a248a15fb893da8fdccbf6
1d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park/* 2d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * Copyright (C) 2016 The Android Open Source Project 3d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * 4d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * Licensed under the Apache License, Version 2.0 (the "License"); 5d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * you may not use this file except in compliance with the License. 6d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * You may obtain a copy of the License at 7d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * 8d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * http://www.apache.org/licenses/LICENSE-2.0 9d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * 10d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * Unless required by applicable law or agreed to in writing, software 11d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * distributed under the License is distributed on an "AS IS" BASIS, 12d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * See the License for the specific language governing permissions and 14d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park * limitations under the License. 15d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park */ 16d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Parkpackage com.android.car; 17d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 18d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Parkimport android.content.Context; 193cb891017933140b613cfaf5b8422c112c0f32dcKeun-young Parkimport android.content.res.Resources; 20d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 21d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Parkimport com.android.car.CarPowerManagementService.PowerEventProcessingHandler; 22d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Parkimport com.android.car.CarPowerManagementService.PowerServiceEventListener; 23d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 24d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Parkimport java.io.PrintWriter; 25d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 26d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Parkpublic class SystemStateControllerService implements CarServiceBase, 27d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park PowerServiceEventListener, PowerEventProcessingHandler { 28d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 29d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park private final CarPowerManagementService mCarPowerManagementService; 303cb891017933140b613cfaf5b8422c112c0f32dcKeun-young Park private final CarAudioService mCarAudioService; 315ce1c8a623943dd92add6261b4828a1d358c6e0bKeun-young Park private final ICarImpl mICarImpl; 323cb891017933140b613cfaf5b8422c112c0f32dcKeun-young Park private final boolean mLockWhenMuting; 33d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 34d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public SystemStateControllerService(Context context, 350d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev CarPowerManagementService carPowerManagementService, 363cb891017933140b613cfaf5b8422c112c0f32dcKeun-young Park CarAudioService carAudioService, ICarImpl carImpl) { 370d07c76bbc788fba8c77d8e932330ab22ec6ba27Pavel Maltsev mCarPowerManagementService = carPowerManagementService; 383cb891017933140b613cfaf5b8422c112c0f32dcKeun-young Park mCarAudioService = carAudioService; 395ce1c8a623943dd92add6261b4828a1d358c6e0bKeun-young Park mICarImpl = carImpl; 403cb891017933140b613cfaf5b8422c112c0f32dcKeun-young Park Resources res = context.getResources(); 413cb891017933140b613cfaf5b8422c112c0f32dcKeun-young Park mLockWhenMuting = res.getBoolean(R.bool.displayOffMuteLockAllAudio); 42d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 43d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 44d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 45d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public long onPrepareShutdown(boolean shuttingDown) { 46f9215209e0f425d2fc570bef37dad959c82d2e9eKeun-young Park //TODO add state saving here for things to restore on power on. bug: 32096079 47d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park return 0; 48d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 49d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 50d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 51d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public void onPowerOn(boolean displayOn) { 5252d8f7d353c67d89f6a248a15fb893da8fdccbf6Hongwei Wang // TODO may consider mute / unmute the system based on displayOn 53d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 54d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 55d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 56d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public int getWakeupTime() { 57d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park return 0; 58d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 59d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 60d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 61d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public void onShutdown() { 62f9215209e0f425d2fc570bef37dad959c82d2e9eKeun-young Park // TODO bug: 32096079 63d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 64d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 65d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 66d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public void onSleepEntry() { 67f9215209e0f425d2fc570bef37dad959c82d2e9eKeun-young Park // TODO bug: 32096079 68d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 69d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 70d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 71d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public void onSleepExit() { 72f9215209e0f425d2fc570bef37dad959c82d2e9eKeun-young Park // TODO bug: 32096079 73d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 74d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 75d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 76d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public void init() { 77d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park mCarPowerManagementService.registerPowerEventListener(this); 78d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park mCarPowerManagementService.registerPowerEventProcessingHandler(this); 79d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 80d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 81d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 82d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public void release() { 83d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 84d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park 85d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park @Override 86d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park public void dump(PrintWriter writer) { 87d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park } 88d73afaeb1c4c64ddad94e696a0fd88147888dee1Keun-young Park} 89