Add Export CSV in Maintenance Fragment
This commit is contained in:
parent
f7f6f4b7c1
commit
f3d6fff565
|
@ -358,38 +358,21 @@ class ImportExportPrefs @Inject constructor(
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
override fun exportUserEntriesXml(activity: FragmentActivity, listEntries: Single<List<UserEntry>>) {
|
||||
override fun exportUserEntriesCsv(activity: FragmentActivity, listEntries: Single<List<UserEntry>>) {
|
||||
val entries = listEntries.blockingGet()
|
||||
log.debug("XXXXX " + entries.size)
|
||||
prefFileList.ensureExportDirExists()
|
||||
val newFile = prefFileList.newExportXmlFile()
|
||||
log.debug("XXXXX " + classicPrefsFormat.UserEntriesToCsv(entries))
|
||||
//log.debug("XXXXX " + classicPrefsFormat.UserEntriesToCsv(entries))
|
||||
|
||||
askToConfirmExport(activity, newFile) { password ->
|
||||
try {
|
||||
classicPrefsFormat.saveXml(newFile, entries)
|
||||
log.debug("XXXXX " + newFile.isHidden + " " + newFile.absolutePath)
|
||||
ToastUtils.okToast(activity, resourceHelper.gs(R.string.ue_exported))
|
||||
} catch (e: FileNotFoundException) {
|
||||
ToastUtils.errorToast(activity, resourceHelper.gs(R.string.filenotfound) + " " + newFile)
|
||||
log.error(LTag.CORE, "Unhandled exception", e)
|
||||
} catch (e: IOException) {
|
||||
ToastUtils.errorToast(activity, e.message)
|
||||
log.error(LTag.CORE, "Unhandled exception", e)
|
||||
} catch (e: PrefFileNotFoundError) {
|
||||
ToastUtils.Long.errorToast(activity, resourceHelper.gs(R.string.preferences_export_canceled)
|
||||
+ "\n\n" + resourceHelper.gs(R.string.filenotfound)
|
||||
+ ": " + e.message
|
||||
+ "\n\n" + resourceHelper.gs(R.string.needstoragepermission))
|
||||
log.error(LTag.CORE, "File system exception", e)
|
||||
} catch (e: PrefIOError) {
|
||||
ToastUtils.Long.errorToast(activity, resourceHelper.gs(R.string.preferences_export_canceled)
|
||||
+ "\n\n" + resourceHelper.gs(R.string.needstoragepermission)
|
||||
+ ": " + e.message)
|
||||
log.error(LTag.CORE, "File system exception", e)
|
||||
}
|
||||
try {
|
||||
classicPrefsFormat.saveCsv(newFile, entries)
|
||||
ToastUtils.okToast(activity, resourceHelper.gs(R.string.ue_exported))
|
||||
} catch (e: FileNotFoundException) {
|
||||
ToastUtils.errorToast(activity, resourceHelper.gs(R.string.filenotfound) + " " + newFile)
|
||||
log.error(LTag.CORE, "Unhandled exception", e)
|
||||
} catch (e: IOException) {
|
||||
ToastUtils.errorToast(activity, e.message)
|
||||
log.error(LTag.CORE, "Unhandled exception", e)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -99,6 +99,14 @@ class MaintenanceFragment : DaggerFragment() {
|
|||
}
|
||||
}
|
||||
binding.navLogsettings.setOnClickListener { startActivity(Intent(activity, LogSettingActivity::class.java)) }
|
||||
binding.exportCsv.setOnClickListener {
|
||||
activity?.let { activity ->
|
||||
OKDialog.showConfirmation(activity, resourceHelper.gs(R.string.ue_export_to_csv) + "?") {
|
||||
uel.log(Action.EXPORT_CSV)
|
||||
importExportPrefs.exportUserEntriesCsv(activity, repository.getAllUserEntries())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
|
|
|
@ -61,8 +61,8 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
|
|||
binding.ueExportToXml.setOnClickListener {
|
||||
activity?.let { activity ->
|
||||
OKDialog.showConfirmation(activity, resourceHelper.gs(R.string.ue_export_to_csv) + "?") {
|
||||
uel.log(Action.TREATMENTS_NS_REFRESH)
|
||||
importExportPrefs.exportUserEntriesXml(activity, repository.getAllUserEntries())
|
||||
uel.log(Action.EXPORT_CSV)
|
||||
importExportPrefs.exportUserEntriesCsv(activity, repository.getAllUserEntries())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,6 +75,20 @@
|
|||
android:text="@string/nav_import"
|
||||
android:textColor="@color/colorTreatmentButton" />
|
||||
|
||||
|
||||
<Button
|
||||
android:id="@+id/export_csv"
|
||||
style="?android:attr/buttonStyle"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="3dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:layout_marginTop="3dp"
|
||||
android:layout_weight="0.5"
|
||||
android:text="@string/ue_export_to_csv"
|
||||
android:textColor="@color/colorTreatmentButton" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/nav_resetdb"
|
||||
style="?android:attr/buttonStyle"
|
||||
|
|
|
@ -14,5 +14,5 @@ interface ImportExportPrefsInterface {
|
|||
fun prefsFileExists(): Boolean
|
||||
fun verifyStoragePermissions(fragment: Fragment, onGranted: Runnable)
|
||||
fun exportSharedPreferences(f: Fragment)
|
||||
fun exportUserEntriesXml(activity: FragmentActivity, entries: Single<List<UserEntry>>)
|
||||
fun exportUserEntriesCsv(activity: FragmentActivity, entries: Single<List<UserEntry>>)
|
||||
}
|
|
@ -77,7 +77,7 @@ class ClassicPrefsFormat @Inject constructor(
|
|||
return metadata
|
||||
}
|
||||
|
||||
fun saveXml(file: File, userEntries: List<UserEntry>) {
|
||||
fun saveCsv(file: File, userEntries: List<UserEntry>) {
|
||||
try {
|
||||
val contents = UserEntriesToCsv(userEntries)
|
||||
storage.putFileContents(file, contents)
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.os.Parcelable
|
|||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import info.nightscout.androidaps.core.R
|
||||
import info.nightscout.androidaps.database.entities.UserEntry
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import java.io.File
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package info.nightscout.androidaps.utils.extensions
|
||||
|
||||
import info.nightscout.androidaps.core.R
|
||||
import info.nightscout.androidaps.database.entities.UserEntry
|
||||
import info.nightscout.androidaps.database.entities.UserEntry.*
|
||||
|
||||
fun Action.stringId(): Int {
|
||||
|
@ -102,7 +101,8 @@ fun Action.stringId(): Int {
|
|||
Action.TT_DELETED_FROM_NS -> R.string.uel_tt_deleted_from_ns
|
||||
Action.TT_FROM_NS -> R.string.uel_tt_from_ns
|
||||
Action.TT_CANCELED_FROM_NS -> R.string.uel_tt_canceleted_from_ns
|
||||
else -> R.string.uel_unknown
|
||||
Action.EXPORT_CSV -> R.string.uel_export_csv
|
||||
else -> R.string.uel_unknown
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -485,6 +485,7 @@
|
|||
<string name="uel_tt_deleted_from_ns">TT DELETED FROM NS</string>
|
||||
<string name="uel_tt_from_ns">TT FROM NS</string>
|
||||
<string name="uel_tt_canceleted_from_ns">TT CANCELED FROM NS</string>
|
||||
<string name="uel_export_csv">EXPORT USER ENTRIES</string>
|
||||
<string name="uel_unknown">UNKNOWN</string>
|
||||
<string name="formated_string">Formated string</string>
|
||||
<string name="ue_export_to_csv">Export User Entries to Excel (csv)</string>
|
||||
|
|
|
@ -115,6 +115,7 @@ data class UserEntry(
|
|||
@SerializedName("TT_DELETED_FROM_NS") TT_DELETED_FROM_NS (ColorGroup.TT),
|
||||
@SerializedName("TT_FROM_NS") TT_FROM_NS (ColorGroup.TT),
|
||||
@SerializedName("TT_CANCELED_FROM_NS") TT_CANCELED_FROM_NS (ColorGroup.TT),
|
||||
@SerializedName("EXPORT_CSV") EXPORT_CSV (ColorGroup.Aaps),
|
||||
@SerializedName("UNKNOWN") UNKNOWN (ColorGroup.Aaps)
|
||||
;
|
||||
|
||||
|
@ -169,5 +170,4 @@ data class UserEntry(
|
|||
Pump,
|
||||
Aaps
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue