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