Merge branch 'dev' of https://github.com/nightscout/AndroidAPS into dev
This commit is contained in:
commit
52ffc8d7ff
4 changed files with 50 additions and 14 deletions
|
@ -3,6 +3,7 @@ package info.nightscout.androidaps.dependencyInjection
|
|||
import dagger.Module
|
||||
import dagger.android.ContributesAndroidInjector
|
||||
import info.nightscout.androidaps.plugins.general.food.FoodPlugin
|
||||
import info.nightscout.androidaps.plugins.general.maintenance.ImportExportPrefsImpl
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.NSClientAddAckWorker
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.NSClientAddUpdateWorker
|
||||
import info.nightscout.androidaps.plugins.general.nsclient.NSClientMbgWorker
|
||||
|
@ -30,4 +31,5 @@ abstract class WorkersModule {
|
|||
@ContributesAndroidInjector abstract fun contributesNSClientUpdateRemoveAckWorker(): NSClientUpdateRemoveAckWorker
|
||||
@ContributesAndroidInjector abstract fun contributesNSClientMbgWorker(): NSClientMbgWorker
|
||||
@ContributesAndroidInjector abstract fun contributesFoodWorker(): FoodPlugin.FoodWorker
|
||||
@ContributesAndroidInjector abstract fun contributesCsvExportWorker(): ImportExportPrefsImpl.CsvExportWorker
|
||||
}
|
|
@ -11,7 +11,10 @@ import androidx.appcompat.app.AppCompatActivity
|
|||
import androidx.core.content.ContextCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.work.*
|
||||
import dagger.android.HasAndroidInjector
|
||||
import info.nightscout.androidaps.BuildConfig
|
||||
import info.nightscout.androidaps.MainApp
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.activities.DaggerAppCompatActivityWithResult
|
||||
import info.nightscout.androidaps.activities.PreferencesActivity
|
||||
|
@ -64,7 +67,6 @@ class ImportExportPrefsImpl @Inject constructor(
|
|||
private val encryptedPrefsFormat: EncryptedPrefsFormat,
|
||||
private val prefFileList: PrefFileListProvider,
|
||||
private val uel: UserEntryLogger,
|
||||
private val repository: AppRepository,
|
||||
private val dateUtil: DateUtil
|
||||
) : ImportExportPrefs {
|
||||
|
||||
|
@ -363,19 +365,48 @@ class ImportExportPrefsImpl @Inject constructor(
|
|||
}
|
||||
|
||||
override fun exportUserEntriesCsv(activity: FragmentActivity) {
|
||||
WorkManager.getInstance(activity).enqueueUniqueWork(
|
||||
"export",
|
||||
ExistingWorkPolicy.APPEND_OR_REPLACE,
|
||||
OneTimeWorkRequest.Builder(CsvExportWorker::class.java).build()
|
||||
)
|
||||
}
|
||||
|
||||
class CsvExportWorker(
|
||||
context: Context,
|
||||
params: WorkerParameters
|
||||
) : Worker(context, params) {
|
||||
|
||||
@Inject lateinit var injector: HasAndroidInjector
|
||||
@Inject lateinit var aapsLogger: AAPSLogger
|
||||
@Inject lateinit var repository: AppRepository
|
||||
@Inject lateinit var classicPrefsFormat: ClassicPrefsFormat
|
||||
@Inject lateinit var resourceHelper: ResourceHelper
|
||||
@Inject lateinit var prefFileList: PrefFileListProvider
|
||||
@Inject lateinit var mainApp: MainApp
|
||||
|
||||
init {
|
||||
(context.applicationContext as HasAndroidInjector).androidInjector().inject(this)
|
||||
}
|
||||
|
||||
override fun doWork(): Result {
|
||||
val entries = repository.getUserEntryFilteredDataFromTime(MidnightTime.calc() - T.days(90).msecs()).blockingGet()
|
||||
prefFileList.ensureExportDirExists()
|
||||
val newFile = prefFileList.newExportCsvFile()
|
||||
|
||||
var ret = Result.success()
|
||||
try {
|
||||
classicPrefsFormat.saveCsv(newFile, entries)
|
||||
ToastUtils.okToast(activity, resourceHelper.gs(R.string.ue_exported))
|
||||
ToastUtils.okToast(mainApp, 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)
|
||||
ToastUtils.errorToast(mainApp, resourceHelper.gs(R.string.filenotfound) + " " + newFile)
|
||||
aapsLogger.error(LTag.CORE, "Unhandled exception", e)
|
||||
ret = Result.failure(workDataOf("Error" to "Error FileNotFoundException"))
|
||||
} catch (e: IOException) {
|
||||
ToastUtils.errorToast(activity, e.message)
|
||||
log.error(LTag.CORE, "Unhandled exception", e)
|
||||
ToastUtils.errorToast(mainApp, e.message)
|
||||
aapsLogger.error(LTag.CORE, "Unhandled exception", e)
|
||||
ret = Result.failure(workDataOf("Error" to "Error IOException"))
|
||||
}
|
||||
return ret
|
||||
}
|
||||
}
|
||||
}
|
|
@ -37,7 +37,8 @@
|
|||
android:layout_marginTop="8dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/setup_completed_info"
|
||||
android:textAppearance="?textAppearanceBody2" />
|
||||
android:textAppearance="?textAppearanceBody2"
|
||||
android:textColor="@color/open_humans_text" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/member_id"
|
||||
|
@ -46,6 +47,7 @@
|
|||
android:layout_marginTop="16dp"
|
||||
android:gravity="center"
|
||||
android:textAppearance="?textAppearanceBody1"
|
||||
android:textColor="@color/open_humans_text"
|
||||
tools:text="Project Member ID: 5151515" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
|
|
|
@ -4,4 +4,5 @@
|
|||
<color name="open_humans_orange_variant">#fe6315</color>
|
||||
<color name="open_humans_blue">#009fa8</color>
|
||||
<color name="open_humans_blue_variant">#036866</color>
|
||||
<color name="open_humans_text">@android:color/white</color>
|
||||
</resources>
|
Loading…
Reference in a new issue