From fec49163d1580677291f4971590a0d449ede2902 Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Mon, 26 Feb 2024 16:49:44 -0600 Subject: [wallet] Pending operations are no more! bug 0008508 --- .../wallet/pending/PendingOperationsFragment.kt | 152 --------------------- 1 file changed, 152 deletions(-) delete mode 100644 wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt (limited to 'wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt') diff --git a/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt b/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt deleted file mode 100644 index a76a7d1..0000000 --- a/wallet/src/main/java/net/taler/wallet/pending/PendingOperationsFragment.kt +++ /dev/null @@ -1,152 +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 - */ - -package net.taler.wallet.pending - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.Menu -import android.view.MenuInflater -import android.view.MenuItem -import android.view.View -import android.view.ViewGroup -import android.widget.LinearLayout -import android.widget.TextView -import androidx.fragment.app.Fragment -import androidx.fragment.app.activityViewModels -import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView -import net.taler.common.showError -import net.taler.wallet.MainViewModel -import net.taler.wallet.R -import net.taler.wallet.databinding.FragmentPendingOperationsBinding -import org.json.JSONObject - -interface PendingOperationClickListener { - fun onPendingOperationClick(type: String, detail: JSONObject) -} - -class PendingOperationsFragment : Fragment(), PendingOperationClickListener { - - private val model: MainViewModel by activityViewModels() - private val pendingOperationsManager by lazy { model.pendingOperationsManager } - - private lateinit var ui: FragmentPendingOperationsBinding - private val pendingAdapter = PendingOperationsAdapter(emptyList(), this) - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setHasOptionsMenu(true) - } - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View { - ui = FragmentPendingOperationsBinding.inflate(inflater, container, false) - return ui.root - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - ui.listPending.apply { - val myLayoutManager = LinearLayoutManager(requireContext()) - val myItemDecoration = - DividerItemDecoration(requireContext(), myLayoutManager.orientation) - layoutManager = myLayoutManager - adapter = pendingAdapter - addItemDecoration(myItemDecoration) - } - - pendingOperationsManager.pendingOperations.observe(viewLifecycleOwner) { - updatePending(it) - } - } - - override fun onStart() { - super.onStart() - pendingOperationsManager.getPending() - } - - @Deprecated("Deprecated in Java") - override fun onOptionsItemSelected(item: MenuItem): Boolean { - return when (item.itemId) { - R.id.retry_pending -> { - pendingOperationsManager.retryPendingNow() - true - } - else -> super.onOptionsItemSelected(item) - } - } - - @Deprecated("Deprecated in Java") - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - inflater.inflate(R.menu.pending_operations, menu) - super.onCreateOptionsMenu(menu, inflater) - } - - private fun updatePending(pendingOperations: List) { - pendingAdapter.update(pendingOperations) - } - - override fun onPendingOperationClick(type: String, detail: JSONObject) { - requireActivity().showError("No detail view for $type implemented yet.") - } -} - -class PendingOperationsAdapter( - private var items: List, - private val listener: PendingOperationClickListener -) : - RecyclerView.Adapter() { - - init { - setHasStableIds(false) - } - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { - val rowView = - LayoutInflater.from(parent.context).inflate(R.layout.list_item_pending_operation, parent, false) - return MyViewHolder(rowView) - } - - override fun getItemCount(): Int { - return items.size - } - - override fun onBindViewHolder(holder: MyViewHolder, position: Int) { - val p = items[position] - val pendingContainer = holder.rowView.findViewById(R.id.pending_container) - pendingContainer.setOnClickListener { - listener.onPendingOperationClick(p.type, p.detail) - } - val textView = holder.rowView.findViewById(R.id.pending_text) - val subTextView = holder.rowView.findViewById(R.id.pending_subtext) - subTextView.text = p.detail.toString(1) - textView.text = p.type - } - - fun update(items: List) { - this.items = items - this.notifyDataSetChanged() - } - - class MyViewHolder(val rowView: View) : RecyclerView.ViewHolder(rowView) - -} -- cgit v1.2.3