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 batteryStatus;
26    public int batteryHealth;
27    public boolean batteryPresent;
28    public int batteryLevel;
29    public int batteryVoltage;
30    public int batteryTemperature;
31    public String batteryTechnology;
32
33    public BatteryProperties() {
34    }
35
36    public void set(BatteryProperties other) {
37        chargerAcOnline = other.chargerAcOnline;
38        chargerUsbOnline = other.chargerUsbOnline;
39        chargerWirelessOnline = other.chargerWirelessOnline;
40        batteryStatus = other.batteryStatus;
41        batteryHealth = other.batteryHealth;
42        batteryPresent = other.batteryPresent;
43        batteryLevel = other.batteryLevel;
44        batteryVoltage = other.batteryVoltage;
45        batteryTemperature = other.batteryTemperature;
46        batteryTechnology = other.batteryTechnology;
47    }
48
49    /*
50     * Parcel read/write code must be kept in sync with
51     * frameworks/native/services/batteryservice/BatteryProperties.cpp
52     */
53
54    private BatteryProperties(Parcel p) {
55        chargerAcOnline = p.readInt() == 1 ? true : false;
56        chargerUsbOnline = p.readInt() == 1 ? true : false;
57        chargerWirelessOnline = p.readInt() == 1 ? true : false;
58        batteryStatus = p.readInt();
59        batteryHealth = p.readInt();
60        batteryPresent = p.readInt() == 1 ? true : false;
61        batteryLevel = p.readInt();
62        batteryVoltage = p.readInt();
63        batteryTemperature = p.readInt();
64        batteryTechnology = p.readString();
65    }
66
67    public void writeToParcel(Parcel p, int flags) {
68        p.writeInt(chargerAcOnline ? 1 : 0);
69        p.writeInt(chargerUsbOnline ? 1 : 0);
70        p.writeInt(chargerWirelessOnline ? 1 : 0);
71        p.writeInt(batteryStatus);
72        p.writeInt(batteryHealth);
73        p.writeInt(batteryPresent ? 1 : 0);
74        p.writeInt(batteryLevel);
75        p.writeInt(batteryVoltage);
76        p.writeInt(batteryTemperature);
77        p.writeString(batteryTechnology);
78    }
79
80    public static final Parcelable.Creator<BatteryProperties> CREATOR
81        = new Parcelable.Creator<BatteryProperties>() {
82        public BatteryProperties createFromParcel(Parcel p) {
83            return new BatteryProperties(p);
84        }
85
86        public BatteryProperties[] newArray(int size) {
87            return new BatteryProperties[size];
88        }
89    };
90
91    public int describeContents() {
92        return 0;
93    }
94}
95