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