mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-22 07:28:10 +00:00
fix(core): do not send ButtonRequest on every paging event
partial revert of 54db2291f2
from #1671
This commit is contained in:
parent
8ed7bdbc27
commit
1e1963f1ee
@ -47,11 +47,6 @@ message Failure {
|
|||||||
message ButtonRequest {
|
message ButtonRequest {
|
||||||
optional ButtonRequestType code = 1; // enum identifier of the screen
|
optional ButtonRequestType code = 1; // enum identifier of the screen
|
||||||
optional uint32 pages = 2; // if the screen is paginated, number of pages
|
optional uint32 pages = 2; // if the screen is paginated, number of pages
|
||||||
optional uint32 page_number = 3; // if the screen is paginated, current page (1-based)
|
|
||||||
/* Rationale: both fields are optional, and neither field can have 0 as a valid
|
|
||||||
value. So both testing `if pages` and `if page_number` do the right thing.
|
|
||||||
Also the following is always true: `page_is_last = (page_number == pages)` */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Type of button request
|
* Type of button request
|
||||||
*/
|
*/
|
||||||
|
@ -7,7 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|||||||
## 2.4.1 [14th July 2021]
|
## 2.4.1 [14th July 2021]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- ButtonRequest is sent also after every screen of a multi-page view. [#1671]
|
- ButtonRequest for multi-page views contains number of pages. [#1671]
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- Converted altcoin apps to common layout code. [#1538]
|
- Converted altcoin apps to common layout code. [#1538]
|
||||||
|
@ -283,14 +283,12 @@ if TYPE_CHECKING:
|
|||||||
class ButtonRequest(protobuf.MessageType):
|
class ButtonRequest(protobuf.MessageType):
|
||||||
code: ButtonRequestType | None
|
code: ButtonRequestType | None
|
||||||
pages: int | None
|
pages: int | None
|
||||||
page_number: int | None
|
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
*,
|
*,
|
||||||
code: ButtonRequestType | None = None,
|
code: ButtonRequestType | None = None,
|
||||||
pages: int | None = None,
|
pages: int | None = None,
|
||||||
page_number: int | None = None,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -111,12 +111,9 @@ class Paginated(ui.Layout):
|
|||||||
code: ButtonRequestType = ButtonRequestType.Other,
|
code: ButtonRequestType = ButtonRequestType.Other,
|
||||||
) -> Any:
|
) -> Any:
|
||||||
workflow.close_others()
|
workflow.close_others()
|
||||||
|
await ctx.call(ButtonRequest(code=code, pages=len(self.pages)), ButtonAck)
|
||||||
result = WAS_PAGED
|
result = WAS_PAGED
|
||||||
while result is WAS_PAGED:
|
while result is WAS_PAGED:
|
||||||
br = ButtonRequest(
|
|
||||||
code=code, pages=len(self.pages), page_number=self.page + 1
|
|
||||||
)
|
|
||||||
await ctx.call(br, ButtonAck)
|
|
||||||
result = await self
|
result = await self
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
@ -701,7 +701,6 @@ class ButtonRequest(protobuf.MessageType):
|
|||||||
FIELDS = {
|
FIELDS = {
|
||||||
1: protobuf.Field("code", ButtonRequestType, repeated=False, required=False),
|
1: protobuf.Field("code", ButtonRequestType, repeated=False, required=False),
|
||||||
2: protobuf.Field("pages", "uint32", repeated=False, required=False),
|
2: protobuf.Field("pages", "uint32", repeated=False, required=False),
|
||||||
3: protobuf.Field("page_number", "uint32", repeated=False, required=False),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@ -709,11 +708,9 @@ class ButtonRequest(protobuf.MessageType):
|
|||||||
*,
|
*,
|
||||||
code: Optional[ButtonRequestType] = None,
|
code: Optional[ButtonRequestType] = None,
|
||||||
pages: Optional[int] = None,
|
pages: Optional[int] = None,
|
||||||
page_number: Optional[int] = None,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
self.code = code
|
self.code = code
|
||||||
self.pages = pages
|
self.pages = pages
|
||||||
self.page_number = page_number
|
|
||||||
|
|
||||||
|
|
||||||
class ButtonAck(protobuf.MessageType):
|
class ButtonAck(protobuf.MessageType):
|
||||||
|
Loading…
Reference in New Issue
Block a user