diff options
author | Torsten Grote <t@grobox.de> | 2020-04-15 11:26:51 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-04-15 11:26:51 -0300 |
commit | ea3250845fb266a2ecd5ebeba561bc99101bf3de (patch) | |
tree | d726f2216efa9b3008741b0037db325725d0d90b /wallet/src/main/java/net/taler/wallet/history/HistoryManager.kt | |
parent | 8e4f85d467c8e8109026a7195757ce9448ad7b19 (diff) | |
download | taler-android-ea3250845fb266a2ecd5ebeba561bc99101bf3de.tar.gz taler-android-ea3250845fb266a2ecd5ebeba561bc99101bf3de.tar.bz2 taler-android-ea3250845fb266a2ecd5ebeba561bc99101bf3de.zip |
[wallet] rename history to transactions
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/history/HistoryManager.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/history/HistoryManager.kt | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/history/HistoryManager.kt b/wallet/src/main/java/net/taler/wallet/history/HistoryManager.kt deleted file mode 100644 index 7ce4f5b..0000000 --- a/wallet/src/main/java/net/taler/wallet/history/HistoryManager.kt +++ /dev/null @@ -1,79 +0,0 @@ -/* - * This file is part of GNU Taler - * (C) 2020 Taler Systems S.A. - * - * GNU Taler is free software; you can redistribute it and/or modify it under the - * terms of the GNU General Public License as published by the Free Software - * Foundation; either version 3, or (at your option) any later version. - * - * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR - * A PARTICULAR PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with - * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/> - */ - -package net.taler.wallet.history - -import androidx.lifecycle.LiveData -import androidx.lifecycle.MutableLiveData -import androidx.lifecycle.asLiveData -import androidx.lifecycle.switchMap -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.module.kotlin.readValue -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.channels.awaitClose -import kotlinx.coroutines.flow.callbackFlow -import kotlinx.coroutines.flow.onCompletion -import kotlinx.coroutines.flow.onStart -import net.taler.wallet.backend.WalletBackendApi - -sealed class HistoryResult { - object Error : HistoryResult() - class Success(val history: History) : HistoryResult() -} - -@Suppress("EXPERIMENTAL_API_USAGE") -class HistoryManager( - private val walletBackendApi: WalletBackendApi, - private val mapper: ObjectMapper -) { - - private val mProgress = MutableLiveData<Boolean>() - val progress: LiveData<Boolean> = mProgress - - val showAll = MutableLiveData<Boolean>() - - var selectedEvent: HistoryEvent? = null - - val history: LiveData<HistoryResult> = showAll.switchMap { showAll -> - loadHistory(showAll) - .onStart { mProgress.postValue(true) } - .onCompletion { mProgress.postValue(false) } - .asLiveData(Dispatchers.IO) - } - - private fun loadHistory(showAll: Boolean) = callbackFlow { - walletBackendApi.sendRequest("getHistory", null) { isError, result -> - if (isError) { - offer(HistoryResult.Error) - close() - return@sendRequest - } - val history = History() - val json = result.getJSONArray("history") - for (i in 0 until json.length()) { - val event: HistoryEvent = mapper.readValue(json.getString(i)) - event.json = json.getJSONObject(i) - history.add(event) - } - history.reverse() // show latest first - val filtered = if (showAll) history else history.filter { it.showToUser } as History - offer(HistoryResult.Success(filtered)) - close() - } - awaitClose() - } - -} |