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;
336361e22feae7cdb0968f1056c7834e2825eeae31Ruchi Kandoi    public int batteryChargeCounter;
34a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    public String batteryTechnology;
35a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor
36a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn    public BatteryProperties() {
37a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn    }
38a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn
39a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn    public void set(BatteryProperties other) {
40a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        chargerAcOnline = other.chargerAcOnline;
41a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        chargerUsbOnline = other.chargerUsbOnline;
42a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        chargerWirelessOnline = other.chargerWirelessOnline;
437b04311d88e377c67b4c663091b6b1c63c932c52Adrian Roos        maxChargingCurrent = other.maxChargingCurrent;
44f92fcfe36ad841cba4774e7f2129e8dab7ac784aBadhri Jagan Sridharan        maxChargingVoltage = other.maxChargingVoltage;
45a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        batteryStatus = other.batteryStatus;
46a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        batteryHealth = other.batteryHealth;
47a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        batteryPresent = other.batteryPresent;
48a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        batteryLevel = other.batteryLevel;
49a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        batteryVoltage = other.batteryVoltage;
50a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        batteryTemperature = other.batteryTemperature;
516361e22feae7cdb0968f1056c7834e2825eeae31Ruchi Kandoi        batteryChargeCounter = other.batteryChargeCounter;
52a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn        batteryTechnology = other.batteryTechnology;
53a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn    }
54a1f1a3c573acd91024fda0ceb3b921c73b186963Dianne Hackborn
55a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    /*
56a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor     * Parcel read/write code must be kept in sync with
57a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor     * frameworks/native/services/batteryservice/BatteryProperties.cpp
58a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor     */
59a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor
60a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    private BatteryProperties(Parcel p) {
61a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        chargerAcOnline = p.readInt() == 1 ? true : false;
62a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        chargerUsbOnline = p.readInt() == 1 ? true : false;
63a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        chargerWirelessOnline = p.readInt() == 1 ? true : false;
647b04311d88e377c67b4c663091b6b1c63c932c52Adrian Roos        maxChargingCurrent = p.readInt();
65f92fcfe36ad841cba4774e7f2129e8dab7ac784aBadhri Jagan Sridharan        maxChargingVoltage = p.readInt();
66a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        batteryStatus = p.readInt();
67a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        batteryHealth = p.readInt();
68a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        batteryPresent = p.readInt() == 1 ? true : false;
69a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        batteryLevel = p.readInt();
70a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        batteryVoltage = p.readInt();
71a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        batteryTemperature = p.readInt();
726361e22feae7cdb0968f1056c7834e2825eeae31Ruchi Kandoi        batteryChargeCounter = p.readInt();
73a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        batteryTechnology = p.readString();
74a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    }
75a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor
76a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    public void writeToParcel(Parcel p, int flags) {
77a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(chargerAcOnline ? 1 : 0);
78a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(chargerUsbOnline ? 1 : 0);
79a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(chargerWirelessOnline ? 1 : 0);
807b04311d88e377c67b4c663091b6b1c63c932c52Adrian Roos        p.writeInt(maxChargingCurrent);
81f92fcfe36ad841cba4774e7f2129e8dab7ac784aBadhri Jagan Sridharan        p.writeInt(maxChargingVoltage);
82a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(batteryStatus);
83a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(batteryHealth);
84a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(batteryPresent ? 1 : 0);
85a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(batteryLevel);
86a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(batteryVoltage);
87a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeInt(batteryTemperature);
886361e22feae7cdb0968f1056c7834e2825eeae31Ruchi Kandoi        p.writeInt(batteryChargeCounter);
89a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        p.writeString(batteryTechnology);
90a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    }
91a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor
92a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    public static final Parcelable.Creator<BatteryProperties> CREATOR
93a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        = new Parcelable.Creator<BatteryProperties>() {
94a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        public BatteryProperties createFromParcel(Parcel p) {
95a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor            return new BatteryProperties(p);
96a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        }
97a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor
98a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        public BatteryProperties[] newArray(int size) {
99a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor            return new BatteryProperties[size];
100a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        }
101a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    };
102a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor
103a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    public int describeContents() {
104a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor        return 0;
105a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor    }
106a9de3462a6f4eaea63e12d82aaa0eb5728b1f812Todd Poynor}
107