1a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor/* Copyright 2013, The Android Open Source Project 2a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * 3a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * Licensed under the Apache License, Version 2.0 (the "License"); 4a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * you may not use this file except in compliance with the License. 5a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * You may obtain a copy of the License at 6a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * 7a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * http://www.apache.org/licenses/LICENSE-2.0 8a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * 9a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * Unless required by applicable law or agreed to in writing, software 10a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * distributed under the License is distributed on an "AS IS" BASIS, 11a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * See the License for the specific language governing permissions and 13a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * limitations under the License. 14a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor*/ 15a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor 16a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynorpackage android.os; 17a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor 18a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor/** 19a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * {@hide} 20a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor */ 21a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynorpublic class BatteryProperties implements Parcelable { 22a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public boolean chargerAcOnline; 23a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public boolean chargerUsbOnline; 24a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public boolean chargerWirelessOnline; 257b04311d88e377c67b4c663091b6b1c63c932c52Adrian Roos public int maxChargingCurrent; 26f92fcfe36ad841cba4774e7f2129e8dab7ac784aBadhri Jagan Sridharan public int maxChargingVoltage; 27a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public int batteryStatus; 28a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public int batteryHealth; 29a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public boolean batteryPresent; 30a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public int batteryLevel; 31a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public int batteryVoltage; 32a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public int batteryTemperature; 33abcb9f3e7637146b64104d34a44b46f0c981314bAdam Lesinski public int batteryFullCharge; 346361e22feae7cdb0968f1056c7834e2825eeae31Ruchi Kandoi public int batteryChargeCounter; 35a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public String batteryTechnology; 36a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor 37a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn public BatteryProperties() { 38a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn } 39a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn 40a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn public void set(BatteryProperties other) { 41a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn chargerAcOnline = other.chargerAcOnline; 42a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn chargerUsbOnline = other.chargerUsbOnline; 43a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn chargerWirelessOnline = other.chargerWirelessOnline; 447b04311d88e377c67b4c663091b6b1c63c932c52Adrian Roos maxChargingCurrent = other.maxChargingCurrent; 45f92fcfe36ad841cba4774e7f2129e8dab7ac784aBadhri Jagan Sridharan maxChargingVoltage = other.maxChargingVoltage; 46a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn batteryStatus = other.batteryStatus; 47a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn batteryHealth = other.batteryHealth; 48a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn batteryPresent = other.batteryPresent; 49a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn batteryLevel = other.batteryLevel; 50a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn batteryVoltage = other.batteryVoltage; 51a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn batteryTemperature = other.batteryTemperature; 52abcb9f3e7637146b64104d34a44b46f0c981314bAdam Lesinski batteryFullCharge = other.batteryFullCharge; 536361e22feae7cdb0968f1056c7834e2825eeae31Ruchi Kandoi batteryChargeCounter = other.batteryChargeCounter; 54a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn batteryTechnology = other.batteryTechnology; 55a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn } 56a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn 57a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor /* 58a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * Parcel read/write code must be kept in sync with 59a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor * frameworks/native/services/batteryservice/BatteryProperties.cpp 60a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor */ 61a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor 62a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor private BatteryProperties(Parcel p) { 63a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor chargerAcOnline = p.readInt() == 1 ? true : false; 64a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor chargerUsbOnline = p.readInt() == 1 ? true : false; 65a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor chargerWirelessOnline = p.readInt() == 1 ? true : false; 667b04311d88e377c67b4c663091b6b1c63c932c52Adrian Roos maxChargingCurrent = p.readInt(); 67f92fcfe36ad841cba4774e7f2129e8dab7ac784aBadhri Jagan Sridharan maxChargingVoltage = p.readInt(); 68a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor batteryStatus = p.readInt(); 69a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor batteryHealth = p.readInt(); 70a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor batteryPresent = p.readInt() == 1 ? true : false; 71a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor batteryLevel = p.readInt(); 72a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor batteryVoltage = p.readInt(); 73a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor batteryTemperature = p.readInt(); 74abcb9f3e7637146b64104d34a44b46f0c981314bAdam Lesinski batteryFullCharge = p.readInt(); 756361e22feae7cdb0968f1056c7834e2825eeae31Ruchi Kandoi batteryChargeCounter = p.readInt(); 76a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor batteryTechnology = p.readString(); 77a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor } 78a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor 79a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public void writeToParcel(Parcel p, int flags) { 80a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(chargerAcOnline ? 1 : 0); 81a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(chargerUsbOnline ? 1 : 0); 82a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(chargerWirelessOnline ? 1 : 0); 837b04311d88e377c67b4c663091b6b1c63c932c52Adrian Roos p.writeInt(maxChargingCurrent); 84f92fcfe36ad841cba4774e7f2129e8dab7ac784aBadhri Jagan Sridharan p.writeInt(maxChargingVoltage); 85a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(batteryStatus); 86a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(batteryHealth); 87a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(batteryPresent ? 1 : 0); 88a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(batteryLevel); 89a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(batteryVoltage); 90a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeInt(batteryTemperature); 91abcb9f3e7637146b64104d34a44b46f0c981314bAdam Lesinski p.writeInt(batteryFullCharge); 926361e22feae7cdb0968f1056c7834e2825eeae31Ruchi Kandoi p.writeInt(batteryChargeCounter); 93a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor p.writeString(batteryTechnology); 94a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor } 95a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor 96a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public static final Parcelable.Creator<BatteryProperties> CREATOR 97a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor = new Parcelable.Creator<BatteryProperties>() { 98a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public BatteryProperties createFromParcel(Parcel p) { 99a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor return new BatteryProperties(p); 100a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor } 101a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor 102a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public BatteryProperties[] newArray(int size) { 103a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor return new BatteryProperties[size]; 104a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor } 105a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor }; 106a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor 107a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor public int describeContents() { 108a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor return 0; 109a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor } 110a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor} 111