View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0007439||Taler||wallet (Android App)||public||2022-11-06 22:54||2023-09-23 15:09|
|Reporter||Christian Grothoff||Assigned To||avalos|
|Platform||i7||OS||Debian GNU/Linux||OS Version||squeeze|
|Target Version||0.9.3||Fixed in Version||0.9.3|
|Summary||0007439: cannot specify expiration for push payments in Android wallet|
|Description||When sending money to another wallet, it must be possible for the user to specify an expiration time for the push payment, as only then the coins that were pushed can be recovered if the receiver didn't accept the payment.|
Similarly, we should also allow setting an expiration date when invoicing (technically a separate issue, but very symmetric so should be done at the same time).
This is also missing in the other wallets.
|Tags||No tags attached.|
||@sebasjm I see that there is purse_expiration now added in https://git.taler.net/wallet-core.git/commit/?id=5c742afb However, the API docs still don't contain this. I can try to scrape the source code for details, but `any` in the docs should really go away in favor of real docs.|
> it must be possible for the user to specify an expiration time for the push payment, as only then the coins that were pushed can be recovered if the receiver didn't accept the payment.
@Christian Grothoff it looks like before wallet-core was setting this on its on to a sane default value. I am not sure cluttering the UI with this is actually a good idea. Is there a strong use-case for customizing the expiry or could we not just add a small print saying: The money will be available for X days and if not claimed will return automatically (minus a nominal fee).
@sebasjm it also seems in this commit, the amount was moved into the contract terms which is also not reflected in the documentation: https://docs.taler.net/wallet/wallet-core.html#initiatepeerpushpaymentop
Also, this breaks peer-push in the Android wallet, because it was yet another unannounced protocol change.
||docs updated, should be online soon|
||Christian, if you feel strongly about letting the user specify expiry, do you have special requirements for how to let the user do that? several options as buttons with one pre-selected or a date picker? or an input field for a number of days?|
No super-strong feelings. But:
1) I suspect we don't need time to be very precise in the default implementation, so *date* should be enough, not the exact hour / minute / second.
2) We probably don't want to offer excessively long choices --- like in 10 years makes no sense. In fact, probably even 1 year will not make sense. I'd expect all sane choices to be < 3 months (as we're talking about locking up funds!).
So based on this, an input field with a number of days limited to 2 or maybe 3 digits is probably the simplest widget and one that will prevent stupid inputs, too ;-).
||This is my proposal.|
||Looks good. Fine with me. Maybe put the entire widget into a re-usable composable.|
||implemented in https://git.taler.net/taler-android.git/commit/?id=1c979ef1d0efd8bdaed7dda292825c41f1d48893|
|2022-11-06 22:54||Christian Grothoff||New Issue|
|2022-11-06 22:54||Christian Grothoff||Status||new => assigned|
|2022-11-06 22:54||Christian Grothoff||Assigned To||=> grote|
|2022-11-06 22:55||Christian Grothoff||Summary||cannot specify expiration for push payments => cannot specify expiration for push payments in Android wallet|
|2022-11-06 22:56||Christian Grothoff||Relationship added||related to 0007440|
|2022-12-20 18:26||Christian Grothoff||Target Version||0.9.1 => 0.9.2|
|2023-01-03 15:34||grote||Note Added: 0019558|
|2023-01-03 15:39||grote||Note Added: 0019559|
|2023-01-03 15:45||grote||Note Added: 0019560|
|2023-01-03 16:23||sebasjm||Note Added: 0019561|
|2023-01-03 16:45||grote||Assigned To||grote => Christian Grothoff|
|2023-01-03 16:45||grote||Status||assigned => feedback|
|2023-01-03 16:45||grote||Note Added: 0019563|
|2023-01-06 15:02||Christian Grothoff||Note Added: 0019594|
|2023-01-06 15:02||Christian Grothoff||Assigned To||Christian Grothoff => grote|
|2023-01-06 15:02||Christian Grothoff||Status||feedback => assigned|
|2023-02-21 01:16||avalos||Assigned To||grote => avalos|
|2023-02-21 01:37||avalos||Note Added: 0019892|
|2023-02-21 01:37||avalos||File Added: Expiration Date.png|
|2023-02-21 13:20||grote||Note Added: 0019895|
|2023-03-07 18:55||Florian Dold||Target Version||0.9.2 => 0.9.3|
|2023-03-21 22:14||grote||Status||assigned => resolved|
|2023-03-21 22:14||grote||Resolution||open => fixed|
|2023-03-21 22:14||grote||Note Added: 0019972|
|2023-09-23 15:07||Christian Grothoff||Fixed in Version||=> 0.9.3|
|2023-09-23 15:09||Christian Grothoff||Status||resolved => closed|