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