1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-11-27 20:36:51 +01:00

Add button to share JSON details

This commit is contained in:
José Rebelo 2024-10-06 20:21:54 +01:00
parent 22a6d9b7d9
commit 95b6485965
3 changed files with 25 additions and 0 deletions

View File

@ -68,6 +68,7 @@ import java.io.File;
import java.io.FileFilter; import java.io.FileFilter;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator; import java.util.Comparator;
@ -530,6 +531,9 @@ public class ActivitySummaryDetail extends AbstractGBActivity {
} else if (itemId == R.id.activity_action_dev_share_raw_details) { } else if (itemId == R.id.activity_action_dev_share_raw_details) {
shareRawDetails(ActivitySummaryDetail.this, currentItem); shareRawDetails(ActivitySummaryDetail.this, currentItem);
return true; return true;
} else if (itemId == R.id.activity_action_dev_share_json_details) {
shareJsonDetails(ActivitySummaryDetail.this, currentItem);
return true;
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
@ -627,6 +631,21 @@ public class ActivitySummaryDetail extends AbstractGBActivity {
} }
} }
private static void shareJsonDetails(final Context context, final BaseActivitySummary summary) {
if (summary.getSummaryData() == null) {
GB.toast(context, "No json details in this activity", Toast.LENGTH_LONG, GB.WARN);
return;
}
final String jsonSummaryFilename = FileUtils.makeValidFileName(String.format("%s.json", DateTimeUtils.formatIso8601(summary.getStartTime())));
try {
AndroidUtils.shareBytesAsFile(context, jsonSummaryFilename, summary.getSummaryData().getBytes(StandardCharsets.UTF_8));
} catch (final Exception e) {
GB.toast(context, "Unable to share json details: " + e.getMessage(), Toast.LENGTH_LONG, GB.ERROR, e);
}
}
private void updateMenuItems() { private void updateMenuItems() {
boolean hasGpx = false; boolean hasGpx = false;
boolean hasRawSummary = false; boolean hasRawSummary = false;

View File

@ -43,6 +43,11 @@
android:id="@+id/activity_action_dev_share_raw_details" android:id="@+id/activity_action_dev_share_raw_details"
android:title="@string/activity_detail_share_raw_details" android:title="@string/activity_detail_share_raw_details"
app:showAsAction="never" /> app:showAsAction="never" />
<item
android:id="@+id/activity_action_dev_share_json_details"
android:title="@string/activity_detail_share_json_details"
app:showAsAction="never" />
</menu> </menu>
</item> </item>

View File

@ -2286,6 +2286,7 @@
<string name="activity_detail_share_gps_label">Share GPS Track</string> <string name="activity_detail_share_gps_label">Share GPS Track</string>
<string name="activity_detail_share_raw_summary">Share Raw Summary</string> <string name="activity_detail_share_raw_summary">Share Raw Summary</string>
<string name="activity_detail_share_raw_details">Share Raw Details</string> <string name="activity_detail_share_raw_details">Share Raw Details</string>
<string name="activity_detail_share_json_details">Share JSON Details</string>
<string name="gps_track">GPS track</string> <string name="gps_track">GPS track</string>
<string name="dev_tools">Dev Tools</string> <string name="dev_tools">Dev Tools</string>
<!-- Device Actions Preferences --> <!-- Device Actions Preferences -->