2015-08-03 23:51:53 +02:00
|
|
|
package nodomain.freeyourgadget.gadgetbridge.service.devices.miband;
|
2015-04-19 22:20:47 +02:00
|
|
|
|
2015-08-18 17:37:51 +02:00
|
|
|
import java.util.Calendar;
|
|
|
|
import java.util.GregorianCalendar;
|
|
|
|
|
2015-05-01 01:26:12 +02:00
|
|
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
|
|
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
|
|
|
|
2015-04-19 22:20:47 +02:00
|
|
|
public class BatteryInfo extends AbstractInfo {
|
|
|
|
public BatteryInfo(byte[] data) {
|
|
|
|
super(data);
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getLevelInPercent() {
|
|
|
|
if (mData.length >= 1) {
|
|
|
|
return mData[0];
|
|
|
|
}
|
|
|
|
return 50; // actually unknown
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getStatus() {
|
|
|
|
if (mData.length >= 10) {
|
|
|
|
int value = mData[9];
|
|
|
|
switch (value) {
|
|
|
|
case 1:
|
2015-05-01 01:26:12 +02:00
|
|
|
return GBApplication.getContext().getString(R.string.battery_low);
|
2015-04-19 22:20:47 +02:00
|
|
|
case 2:
|
2015-05-01 01:26:12 +02:00
|
|
|
return GBApplication.getContext().getString(R.string.battery_medium);
|
2015-04-19 22:20:47 +02:00
|
|
|
case 3:
|
2015-05-01 01:26:12 +02:00
|
|
|
return GBApplication.getContext().getString(R.string.battery_full);
|
2015-04-19 22:20:47 +02:00
|
|
|
case 4:
|
2015-05-01 01:26:12 +02:00
|
|
|
return GBApplication.getContext().getString(R.string.battery_not_charging);
|
2015-04-19 22:20:47 +02:00
|
|
|
}
|
|
|
|
}
|
2015-05-01 01:26:12 +02:00
|
|
|
return GBApplication.getContext().getString(R.string._unknown_);
|
2015-04-19 22:20:47 +02:00
|
|
|
}
|
2015-08-18 17:37:51 +02:00
|
|
|
|
|
|
|
public GregorianCalendar getLastChargeTime() {
|
|
|
|
GregorianCalendar lastCharge = new GregorianCalendar();
|
|
|
|
|
|
|
|
if (mData.length >= 10) {
|
|
|
|
lastCharge.set(Calendar.YEAR, (2000 + mData[1]));
|
|
|
|
lastCharge.set(Calendar.MONTH, mData[2]);
|
|
|
|
lastCharge.set(Calendar.DATE, mData[3]);
|
|
|
|
lastCharge.set(Calendar.HOUR_OF_DAY, mData[4]);
|
|
|
|
lastCharge.set(Calendar.MINUTE, mData[5]);
|
|
|
|
lastCharge.set(Calendar.SECOND, mData[6]);
|
|
|
|
}
|
|
|
|
|
|
|
|
return lastCharge;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int getNumCharges() {
|
|
|
|
if (mData.length >= 10) {
|
|
|
|
return ((0xff & mData[7]) | ((0xff & mData[8]) << 8));
|
|
|
|
|
|
|
|
}
|
|
|
|
return -1;
|
|
|
|
}
|
2015-04-19 22:20:47 +02:00
|
|
|
}
|