1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-06-20 12:00:51 +02:00
Gadgetbridge/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/BatteryInfoActivity.java

171 lines
7.2 KiB
Java
Raw Normal View History

package nodomain.freeyourgadget.gadgetbridge.activities;
2021-02-11 18:47:05 +01:00
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
2021-02-11 18:47:05 +01:00
import android.view.View;
import android.widget.DatePicker;
import android.widget.ImageView;
2021-02-14 16:46:57 +01:00
import android.widget.LinearLayout;
2021-02-11 18:47:05 +01:00
import android.widget.SeekBar;
import android.widget.TextView;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
2021-02-11 18:47:05 +01:00
import java.util.Calendar;
2021-02-14 16:46:57 +01:00
import java.util.Date;
2021-02-11 18:47:05 +01:00
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
import nodomain.freeyourgadget.gadgetbridge.R;
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
2021-02-14 16:46:57 +01:00
import nodomain.freeyourgadget.gadgetbridge.util.DateTimeUtils;
public class BatteryInfoActivity extends AbstractGBActivity {
private static final Logger LOG = LoggerFactory.getLogger(BatteryInfoActivity.class);
2021-02-11 18:47:05 +01:00
GBDevice gbDevice;
private int timeFrom;
private int timeTo;
private int timeSpanDays = 14;
@Override
protected void onCreate(Bundle savedInstanceState) {
2021-02-11 18:47:05 +01:00
super.onCreate(savedInstanceState);
final Context appContext = this.getApplicationContext();
if (appContext instanceof GBApplication) {
setContentView(R.layout.activity_battery_info);
}
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
if (bundle != null) {
gbDevice = bundle.getParcelable(GBDevice.EXTRA_DEVICE);
} else {
throw new IllegalArgumentException("Must provide a device when invoking this activity");
}
final BatteryInfoChartFragment batteryInfoChartFragment = new BatteryInfoChartFragment();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.batteryChartFragmentHolder, batteryInfoChartFragment)
.commit();
2021-02-11 18:47:05 +01:00
timeTo = (int) (System.currentTimeMillis() / 1000);
timeFrom = timeTo - 24 * 3600 * timeSpanDays;
batteryInfoChartFragment.setDateAndGetData(gbDevice, timeFrom, timeTo);
2021-02-11 18:47:05 +01:00
TextView battery_status_device_name_text = (TextView) findViewById(R.id.battery_status_device_name);
TextView battery_status_battery_voltage = (TextView) findViewById(R.id.battery_status_battery_voltage);
2021-02-14 16:46:57 +01:00
final TextView battery_status_date_from_text = (TextView) findViewById(R.id.battery_status_date_from_text);
final TextView battery_status_date_to_text = (TextView) findViewById(R.id.battery_status_date_to_text);
2021-02-11 18:47:05 +01:00
SeekBar battery_status_time_span_seekbar = (SeekBar) findViewById(R.id.battery_status_time_span_seekbar);
final TextView battery_status_time_span_text = (TextView) findViewById(R.id.battery_status_time_span_text);
2021-02-14 16:46:57 +01:00
LinearLayout battery_status_date_to_layout = (LinearLayout) findViewById(R.id.battery_status_date_to_layout);
2021-02-11 18:47:05 +01:00
battery_status_time_span_seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
String text;
switch (i) {
case 0:
2021-02-14 16:46:57 +01:00
text = getString(R.string.calendar_day);
2021-02-11 18:47:05 +01:00
timeSpanDays = 1;
break;
case 1:
2021-02-14 16:46:57 +01:00
text = getString(R.string.calendar_week);
2021-02-11 18:47:05 +01:00
timeSpanDays = 7;
break;
case 2:
2021-02-14 16:46:57 +01:00
text = getString(R.string.calendar_two_weeks);
2021-02-11 18:47:05 +01:00
timeSpanDays = 14;
break;
case 3:
2021-02-14 16:46:57 +01:00
text = getString(R.string.calendar_month);
2021-02-11 18:47:05 +01:00
timeSpanDays = 30;
break;
case 4:
2021-02-14 16:46:57 +01:00
text = getString(R.string.calendar_six_months);
2021-02-11 18:47:05 +01:00
timeSpanDays = 182;
break;
case 5:
2021-02-14 16:46:57 +01:00
text = getString(R.string.calendar_year);
2021-02-11 18:47:05 +01:00
timeSpanDays = 365;
break;
default:
2021-02-14 16:46:57 +01:00
text = getString(R.string.calendar_two_weeks);
2021-02-11 18:47:05 +01:00
timeSpanDays = 14;
}
battery_status_time_span_text.setText(text);
timeFrom = timeTo - 24 * 3600 * timeSpanDays;
2021-02-14 16:46:57 +01:00
battery_status_date_from_text.setText(DateTimeUtils.formatDate(new Date(timeFrom * 1000L)));
battery_status_date_to_text.setText(DateTimeUtils.formatDate(new Date(timeTo * 1000L)));
2021-02-11 18:47:05 +01:00
batteryInfoChartFragment.setDateAndGetData(gbDevice, timeFrom, timeTo);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
2021-02-14 16:46:57 +01:00
//Button battery_status_calendar_button = findViewById(R.id.battery_status_calendar_button);
battery_status_date_to_layout.setOnClickListener(new View.OnClickListener() {
2021-02-11 18:47:05 +01:00
@Override
public void onClick(View v) {
final Calendar currentDate = Calendar.getInstance();
currentDate.setTimeInMillis(timeTo * 1000L);
Context context = getApplicationContext();
if (context instanceof GBApplication) {
new DatePickerDialog(BatteryInfoActivity.this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar date = Calendar.getInstance();
date.set(year, monthOfYear, dayOfMonth);
timeTo = (int) (date.getTimeInMillis() / 1000);
timeFrom = timeTo - 24 * 3600 * timeSpanDays;
2021-02-14 16:46:57 +01:00
battery_status_date_from_text.setText(DateTimeUtils.formatDate(new Date(timeFrom * 1000L)));
battery_status_date_to_text.setText(DateTimeUtils.formatDate(new Date(timeTo * 1000L)));
2021-02-11 18:47:05 +01:00
batteryInfoChartFragment.setDateAndGetData(gbDevice, timeFrom, timeTo);
}
}, currentDate.get(Calendar.YEAR), currentDate.get(Calendar.MONTH), currentDate.get(Calendar.DATE)).show();
}
}
});
battery_status_time_span_seekbar.setProgress(2);
ImageView battery_status_device_icon = findViewById(R.id.battery_status_device_icon);
battery_status_device_icon.setImageResource(gbDevice.isInitialized() ? gbDevice.getType().getIcon() : gbDevice.getType().getDisabledIcon());
2021-02-11 18:47:05 +01:00
TextView battery_status_battery_level_text = (TextView) findViewById(R.id.battery_status_battery_level);
String level = gbDevice.getBatteryLevel() > 0 ? String.format("%1s%%", gbDevice.getBatteryLevel()) : "";
String voltage = gbDevice.getBatteryVoltage() > 0 ? String.format("%1sV", gbDevice.getBatteryVoltage()) : "";
battery_status_device_name_text.setText(gbDevice.getName());
2021-02-11 18:47:05 +01:00
battery_status_battery_level_text.setText(level);
battery_status_battery_voltage.setText(voltage);
}
}