From c20810059df400006f7c8d9bbbffced639cf629e Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Sun, 9 Aug 2020 01:40:59 +0200 Subject: [PATCH] Fix crash when opening GPX file, reformat code --- .../activities/ActivitySummaryDetail.java | 55 +++++++------------ 1 file changed, 19 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ActivitySummaryDetail.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ActivitySummaryDetail.java index 35b62e989..c97c05f70 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ActivitySummaryDetail.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ActivitySummaryDetail.java @@ -55,16 +55,12 @@ public class ActivitySummaryDetail extends AbstractGBActivity { @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); setContentView(R.layout.activity_summary_details); Intent intent = getIntent(); - //if (true) return; - - GBDevice device = intent.getParcelableExtra(GBDevice.EXTRA_DEVICE); - mGBDevice = device; + mGBDevice = intent.getParcelableExtra(GBDevice.EXTRA_DEVICE); ActivitySummary summary = (ActivitySummary) intent.getSerializableExtra("summary"); @@ -73,13 +69,11 @@ public class ActivitySummaryDetail extends AbstractGBActivity { show_track_btn.setVisibility(View.GONE); if (gpxTrack != null) { - ActivityTrack activityTrack = new ActivityTrack(); - show_track_btn.setVisibility(View.VISIBLE); show_track_btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { try { - AndroidUtils.viewFile(gpxTrack, Intent.ACTION_VIEW, getApplicationContext()); + AndroidUtils.viewFile(gpxTrack, Intent.ACTION_VIEW, ActivitySummaryDetail.this); } catch (IOException e) { GB.toast(getApplicationContext(), "Unable to display GPX track: " + e.getMessage(), Toast.LENGTH_LONG, GB.ERROR, e); } @@ -87,20 +81,19 @@ public class ActivitySummaryDetail extends AbstractGBActivity { }); } - LOG.debug("petr summary: " + summary + ","+ summary.getSummaryData()); + LOG.debug("petr summary: " + summary + "," + summary.getSummaryData()); String activitykind = ActivityKind.asString(summary.getActivityKind(), getApplicationContext()); - String starttime = DateTimeUtils.formatDateTime(summary.getStartTime()); String endtime = DateTimeUtils.formatDateTime(summary.getEndTime()); - Long startTs = summary.getStartTime().getTime() / 1000; - Long endTs = summary.getEndTime().getTime() / 1000; - Long durationms = (summary.getEndTime().getTime() - summary.getStartTime().getTime()); + long startTs = summary.getStartTime().getTime() / 1000; + long endTs = summary.getEndTime().getTime() / 1000; + long durationms = (summary.getEndTime().getTime() - summary.getStartTime().getTime()); String durationhms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(durationms), TimeUnit.MILLISECONDS.toMinutes(durationms) % TimeUnit.HOURS.toMinutes(1), TimeUnit.MILLISECONDS.toSeconds(durationms) % TimeUnit.MINUTES.toSeconds(1)); - int steps = getSteps(startTs.intValue(), endTs.intValue()); + int steps = getSteps((int) startTs, (int) endTs); ImageView activity_icon = (ImageView) findViewById(R.id.item_image); activity_icon.setImageResource(ActivityKind.getIconId(summary.getActivityKind())); @@ -113,62 +106,52 @@ public class ActivitySummaryDetail extends AbstractGBActivity { TextView activity_duration = (TextView) findViewById(R.id.duration); activity_duration.setText(durationhms); - JSONObject summaryData = null; - String sumData = summary.getSummaryData(); - if (sumData != null) { - try { - summaryData = new JSONObject(sumData); - } catch (JSONException e) { - e.printStackTrace(); - } + String sumData = summary.getSummaryData(); + if (sumData != null) { + try { + summaryData = new JSONObject(sumData); + } catch (JSONException e) { + e.printStackTrace(); } - String summaryDatastr = ""; + } + StringBuilder summaryDatastr = new StringBuilder(); - if (summaryData== null) return; + if (summaryData == null) return; Iterator keys = summaryData.keys(); LOG.debug("petr summary JSON:" + summaryData + keys); - while(keys.hasNext()) { + while (keys.hasNext()) { String key = keys.next(); LOG.debug("petr key:" + key); try { - LOG.debug("petr" + key + ": " + summaryData.get(key) + "\n"); DecimalFormat df = new DecimalFormat("#.##"); JSONObject innerData = (JSONObject) summaryData.get(key); Object value = innerData.get("value"); String unit = innerData.getString("unit"); - summaryDatastr += String.format("%s: %s %s\n", key, df.format(value), unit); - + summaryDatastr.append(String.format("%s: %s %s\n", key, df.format(value), unit)); } catch (JSONException e) { e.printStackTrace(); } } TextView details = (TextView) findViewById(R.id.details); - - details.setText(summaryDatastr); - - + details.setText(summaryDatastr.toString()); } private int getSteps(int tsStart, int tsEnd) { - try (DBHandler handler = GBApplication.acquireDB()) { DailyTotals dt = new DailyTotals(); ActivityAnalysis analysis = new ActivityAnalysis(); ActivityAmounts amountsSteps; amountsSteps = analysis.calculateActivityAmounts(dt.getSamples(handler, mGBDevice, tsStart, tsEnd)); return (int) dt.getTotalsStepsForActivityAmounts(amountsSteps); - } catch (Exception e) { - GB.toast("Error loading activity steps.", Toast.LENGTH_SHORT, GB.ERROR, e); } return 0; - } }