From ed53b1d544429a9503df098434d988b8572b6b4c Mon Sep 17 00:00:00 2001 From: OliE Date: Thu, 1 Feb 2018 19:07:11 +0100 Subject: [PATCH] replaced at the CSV export option the abort button with share button. --- .../com/health/openscale/core/OpenScale.java | 6 ++- .../gui/fragments/TableFragment.java | 40 +++++++++++++++---- .../app/src/main/res/values-de/strings.xml | 2 + .../app/src/main/res/values/strings.xml | 1 + 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java index 97c08977..e3b70b9d 100644 --- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java +++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java @@ -348,13 +348,15 @@ public class OpenScale { } } - public void exportData(String filename) { + public boolean exportData(String filename) { try { CsvHelper.exportTo(new FileWriter(filename), scaleMeasurementList); - Toast.makeText(context, context.getString(R.string.info_data_exported) + " /sdcard" + filename, Toast.LENGTH_SHORT).show(); + return true; } catch (IOException e) { Toast.makeText(context, context.getResources().getString(R.string.error_exporting) + " " + e.getMessage(), Toast.LENGTH_SHORT).show(); } + + return false; } public void clearScaleData(int userId) { diff --git a/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java index 60c618b2..e4cf2631 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/fragments/TableFragment.java @@ -22,6 +22,7 @@ import android.content.SharedPreferences; import android.content.res.Configuration; import android.graphics.Color; import android.graphics.Typeface; +import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.preference.PreferenceManager; @@ -42,6 +43,7 @@ import android.widget.ListView; import android.widget.TableLayout; import android.widget.TableRow; import android.widget.TextView; +import android.widget.Toast; import com.health.openscale.R; import com.health.openscale.core.OpenScale; @@ -64,6 +66,7 @@ import com.health.openscale.gui.views.WaistMeasurementView; import com.health.openscale.gui.views.WaterMeasurementView; import com.health.openscale.gui.views.WeightMeasurementView; +import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -326,26 +329,47 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { public void onClick(View v) { AlertDialog.Builder filenameDialog = new AlertDialog.Builder(getActivity()); - filenameDialog.setTitle(getResources().getString(R.string.info_set_filename) + " /sdcard ..."); + filenameDialog.setTitle(getResources().getString(R.string.info_set_filename) + " " + Environment.getExternalStorageDirectory().getPath()); - String exportFilename = prefs.getString("exportFilename", "/openScale_data_" + OpenScale.getInstance(getContext()).getSelectedScaleUser().getUserName() + ".csv"); + String exportFilename = prefs.getString("exportFilename", "openScale_data_" + OpenScale.getInstance(getContext()).getSelectedScaleUser().getUserName() + ".csv"); final EditText txtFilename = new EditText(tableView.getContext()); txtFilename.setText(exportFilename); filenameDialog.setView(txtFilename); - filenameDialog.setPositiveButton(getResources().getString(R.string.label_ok), new DialogInterface.OnClickListener() { + filenameDialog.setPositiveButton(getResources().getString(R.string.label_export), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - OpenScale.getInstance(getContext()).exportData(Environment.getExternalStorageDirectory().getPath() + txtFilename.getText().toString()); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext()); - prefs.edit().putString("exportFilename", txtFilename.getText().toString()).commit(); + String fullPath = Environment.getExternalStorageDirectory().getPath() + "/" + txtFilename.getText().toString(); + + if (OpenScale.getInstance(getContext()).exportData(fullPath)) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(tableView.getContext()); + prefs.edit().putString("exportFilename", txtFilename.getText().toString()).commit(); + Toast.makeText(getContext(), getResources().getString(R.string.info_data_exported) + " " + fullPath, Toast.LENGTH_SHORT).show(); + } } }); - filenameDialog.setNegativeButton(getResources().getString(R.string.label_cancel), new DialogInterface.OnClickListener() { + filenameDialog.setNeutralButton(getResources().getString(R.string.label_share), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { - dialog.dismiss(); + String fullPath = Environment.getExternalStorageDirectory().getPath() + "/tmp/" + txtFilename.getText().toString(); + + if (!OpenScale.getInstance(getContext()).exportData(fullPath)) { + return; + } + + Intent intentShareFile = new Intent(Intent.ACTION_SEND); + File shareFile = new File(fullPath); + + if(shareFile.exists()) { + intentShareFile.setType("text/comma-separated-values"); + intentShareFile.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+fullPath)); + + intentShareFile.putExtra(Intent.EXTRA_SUBJECT, "openScale export csv file"); + intentShareFile.putExtra(Intent.EXTRA_TEXT, txtFilename.getText().toString()); + + startActivity(Intent.createChooser(intentShareFile, getResources().getString(R.string.label_share))); + } } }); diff --git a/android_app/app/src/main/res/values-de/strings.xml b/android_app/app/src/main/res/values-de/strings.xml index c4987d9a..d38cd090 100644 --- a/android_app/app/src/main/res/values-de/strings.xml +++ b/android_app/app/src/main/res/values-de/strings.xml @@ -182,4 +182,6 @@ Allgmein Theme Um die Änderungen zu übernehmen, ist ein App Neustart erforderlich + Teilen + Suche beendet nach Bluetooth Waagen \ No newline at end of file diff --git a/android_app/app/src/main/res/values/strings.xml b/android_app/app/src/main/res/values/strings.xml index f9800ead..87916a95 100644 --- a/android_app/app/src/main/res/values/strings.xml +++ b/android_app/app/src/main/res/values/strings.xml @@ -24,6 +24,7 @@ No Delete Add user + Share Id Weight