Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Improve app selector UI #1616

Merged
merged 9 commits into from Jan 22, 2024
Merged

feat: Improve app selector UI #1616

merged 9 commits into from Jan 22, 2024

Conversation

oSumAtrIX
Copy link
Member

@oSumAtrIX oSumAtrIX commented Jan 3, 2024

This PR improves the app selector app item UI by simplifying it:

Before After
image image
image image

Changes:

  • Improved the suggested version chip padding
  • Show the suggested version chip only if it does not match the installed version and is not "any version" in the patcher screen
  • Moved patch count and version next to app name
  • Corrected sizes and paddings
  • Simplify strings such as "Select application" -> "Select app"

Todo:

  • Make this look better:
    image

  • Correct sizing/padding:
    image

@oSumAtrIX oSumAtrIX changed the title feat: Improve app selector app item UI feat: Improve app selector UI Jan 3, 2024
@Ushie
Copy link
Member

Ushie commented Jan 3, 2024

Show the suggested version chip only if it does not match the installed version and is not "any version"

Ideally the chip would be kept, or displayed another way, as it is the only "official" way of sourcing the APK file

Considering patching from installed (playstore split APKs) is not supported, this should be resolved before merging this PR

@oSumAtrIX
Copy link
Member Author

oSumAtrIX commented Jan 3, 2024

I'd say a click on the card can show a popup that replaces the toast that is currently shown with a description and offers a button that calls the same action as the chip for non installed apps

@oSumAtrIX
Copy link
Member Author

The same popup would be able to conveniently show available patches for the app in addition and kill two birds with one stone by doing that

@oSumAtrIX
Copy link
Member Author

oSumAtrIX commented Jan 3, 2024

@Ushie For apps that are already installed, this idea is a problem, as you may want to select that installed app. Say, the suggested version of the app is installed. Then there would not be any motivation for the user to use the suggested version chip button regardless, as they already have the suggested version installed. So keeping it on the card, or not, would make no difference here.

@Ushie
Copy link
Member

Ushie commented Jan 3, 2024

That is true, but with the current design it would be quite terrible UX wise, for a change like this to make sense, there would have to be many changes

To begin with, you'd need to remove the concept of an "installed app", and move it back into a secondary form of selection, at the moment it is the other way around

By making selecting from storage the primary action, ALL app cards primary action would now be the search query in a webview, or the likes, and then handle the APK download

Alternatively, you would just keep the search query logic as is right now, without using a webview, and request the user to select the APK file once they return to the app

@oSumAtrIX
Copy link
Member Author

The only solution would be to show a chip for every app, even when the suggested version matches the installed version. This is a problem because it is redundant to show. Additionally the not installed app chip only shows a toast instead of showing a popup and offering a solution which is to launch a search query to download it

@oSumAtrIX oSumAtrIX merged commit efb2d5e into dev Jan 22, 2024
1 check passed
github-actions bot pushed a commit that referenced this pull request Jan 22, 2024
# [1.19.0-dev.1](v1.18.0...v1.19.0-dev.1) (2024-01-22)

### Bug Fixes

* added a trailing comma ([975180b](975180b))
* Allow mounting without Magisk ([3f96608](3f96608))
* fix redundant buttons on dialog ([079c0de](079c0de))
* Incorrect strings and logics ([#1619](#1619)) ([4f22e88](4f22e88))
* **Keystore Password:** textfield title display ([8e52abd](8e52abd))
* Mount script causes build to fail ([#1613](#1613)) ([f3c78c2](f3c78c2))
* **Patch Option:** Set text colour on dropdown menu ([acb1e24](acb1e24))
* **Release CI:** truncate the "v" from version ([8595099](8595099))
* use lowercase repo names ([#1626](#1626)) ([edd8602](edd8602))

### Features

* Add API migration code ([#1615](#1615)) ([28ae276](28ae276))
* add haptic feedback ([#1459](#1459)) ([7911459](7911459))
* Improve app selector and patcher UI ([#1616](#1616)) ([efb2d5e](efb2d5e))
* Improve Split APK warning readability ([#1625](#1625)) ([6fd740f](6fd740f))
* Simplify settings strings ([#1618](#1618)) ([0d45fe4](0d45fe4))
* use native TextField ([9ed43ef](9ed43ef))

### Performance Improvements

* Load patched apps as soon as possible ([c94eb7a](c94eb7a))
github-actions bot pushed a commit to BenjaminHalko/revanced-manager that referenced this pull request Jan 30, 2024
# [1.10.0-dev.1](v1.9.3...v1.10.0-dev.1) (2024-01-30)

### Bug Fixes

* `Don't use 'BuildContext's across async gaps.` ([ReVanced#1148](https://github.com/BenjaminHalko/revanced-manager/issues/1148)) ([fc8a4fc](fc8a4fc))
* `Material You` toggle not updating sometimes ([ReVanced#1421](https://github.com/BenjaminHalko/revanced-manager/issues/1421)) ([e686898](e686898))
* Add missing confirmation dialog ([7a1ba9d](7a1ba9d))
* added a trailing comma ([975180b](975180b))
* Allow mounting without Magisk ([3f96608](3f96608))
* **App Selector:** Unable to select APK from storage when asked to ([ReVanced#1513](https://github.com/BenjaminHalko/revanced-manager/issues/1513)) ([7897827](7897827))
* **app-bar:** title not hiding completely ([ReVanced#1376](https://github.com/BenjaminHalko/revanced-manager/issues/1376)) ([d577e97](d577e97))
* back button closing the app from any page ([2bf6a03](2bf6a03))
* **build:** allow profile variant to compile ([d25d1ef](d25d1ef)), closes [ReVanced#1305](https://github.com/BenjaminHalko/revanced-manager/issues/1305)
* close before returning ([64a96fc](64a96fc))
* Correct update message ([a141ec8](a141ec8))
* **custom-sources:** ignore casing when checking if default repo is being used ([ReVanced#1281](https://github.com/BenjaminHalko/revanced-manager/issues/1281)) ([9ad1d6c](9ad1d6c))
* default theme not following system ([ReVanced#1288](https://github.com/BenjaminHalko/revanced-manager/issues/1288)) ([6f4866e](6f4866e))
* Disable wakelock when patching is canceled ([ReVanced#1514](https://github.com/BenjaminHalko/revanced-manager/issues/1514)) ([9df89c7](9df89c7))
* do not ask for patches consent before initializing model ([1e8d8f7](1e8d8f7))
* Do not delete cached downloads ([6961bb7](6961bb7))
* Do not delete files from post-fs-data.d ([70a1086](70a1086))
* Do not hardcode any predefined packages ([2e8e3b0](2e8e3b0))
* **export-settings:** export patches as json object ([f7c11d0](f7c11d0))
* **export-settings:** remove boolean workaround ([2ad106f](2ad106f))
* exported logs patch selection ([ReVanced#1535](https://github.com/BenjaminHalko/revanced-manager/issues/1535)) ([2ae8d49](2ae8d49))
* Fill the preferred action ([0492e91](0492e91))
* fix redundant buttons on dialog ([079c0de](079c0de))
* force disable material you on Android 11 and below ([ReVanced#1293](https://github.com/BenjaminHalko/revanced-manager/issues/1293)) ([c3d345d](c3d345d))
* Hide empty patches category labels ([ReVanced#1439](https://github.com/BenjaminHalko/revanced-manager/issues/1439)) ([0be568b](0be568b))
* hide install button on error ([42e41c3](42e41c3))
* ignore the root .gradle folder ([8e2cfbd](8e2cfbd))
* improve app list loading speed ([ReVanced#1166](https://github.com/BenjaminHalko/revanced-manager/issues/1166)) ([f4b0a69](f4b0a69))
* Include new patches that are used by default ([7831a34](7831a34))
* Incorrect duplicate filename handling when exporting files ([ReVanced#1541](https://github.com/BenjaminHalko/revanced-manager/issues/1541)) ([de51fbd](de51fbd))
* Incorrect strings and logics ([ReVanced#1619](https://github.com/BenjaminHalko/revanced-manager/issues/1619)) ([4f22e88](4f22e88))
* **install-type:** update padding and enable radio list scrolling ([ReVanced#1287](https://github.com/BenjaminHalko/revanced-manager/issues/1287)) ([e75d3c8](e75d3c8))
* **installer:** open the patched app after install ([ReVanced#1233](https://github.com/BenjaminHalko/revanced-manager/issues/1233)) ([c5fc54e](c5fc54e))
* **Keystore Password:** textfield title display ([8e52abd](8e52abd))
* Load installed apps ([36c86e2](36c86e2))
* Load patches from older versions of ReVanced Manager correctly ([6ad0d86](6ad0d86))
* load patches via `PatchBundle` ([ReVanced#1242](https://github.com/BenjaminHalko/revanced-manager/issues/1242)) ([4b8542b](4b8542b))
* Log saved patch option values ([ReVanced#1420](https://github.com/BenjaminHalko/revanced-manager/issues/1420)) ([e7d8285](e7d8285))
* make entire theme item clickable ([e01b323](e01b323))
* migration latest changes to native buttons ([c56c445](c56c445))
* Mount script causes build to fail ([ReVanced#1613](https://github.com/BenjaminHalko/revanced-manager/issues/1613)) ([f3c78c2](f3c78c2))
* Move installation log to correct place ([c4a7954](c4a7954))
* npe when loading patch bundle on android 8 ([0bfa776](0bfa776))
* npe when patching on android 8 ([9f64011](9f64011))
* **Patch Option:** Set text colour on dropdown menu ([acb1e24](acb1e24))
* **patch_selector:** correct popup menu style ([72ea33b](72ea33b)), closes [ReVanced#1372](https://github.com/BenjaminHalko/revanced-manager/issues/1372)
* patcher logs hiding behind navigation bar ([ReVanced#1476](https://github.com/BenjaminHalko/revanced-manager/issues/1476)) ([5ed3ed9](5ed3ed9))
* **patches-selector:** ignore punctuation marks when searching for patch ([ReVanced#1377](https://github.com/BenjaminHalko/revanced-manager/issues/1377)) ([2dc92e2](2dc92e2))
* permissions handling at first launch ([8cb96f1](8cb96f1))
* Prevent crash by escaping string correctly ([8a1ab47](8a1ab47))
* properly log messages and progress ([7911a8f](7911a8f))
* **Release CI:** truncate the "v" from version ([8595099](8595099))
* Reload patches ([b07439d](b07439d))
* remove codeblock from log export ([d60ced2](d60ced2)), closes [ReVanced#1416](https://github.com/BenjaminHalko/revanced-manager/issues/1416)
* Remove incorrect punctuation ([ReVanced#1499](https://github.com/BenjaminHalko/revanced-manager/issues/1499)) ([35d8084](35d8084))
* reset patches after patching ([cd07f39](cd07f39))
* Reset progress if patch was cancelled ([850bdc4](850bdc4))
* Retrieve app information from patched app ([2b4b3ca](2b4b3ca))
* search bar overflow ([ReVanced#1301](https://github.com/BenjaminHalko/revanced-manager/issues/1301)) ([0983ba8](0983ba8))
* search with package name ([ReVanced#1344](https://github.com/BenjaminHalko/revanced-manager/issues/1344)) ([4085c10](4085c10))
* selected patches order ([ReVanced#1345](https://github.com/BenjaminHalko/revanced-manager/issues/1345)) ([2abadc7](2abadc7))
* **settings-view:** list items jumping on scroll up ([ReVanced#1375](https://github.com/BenjaminHalko/revanced-manager/issues/1375)) ([5d5f311](5d5f311))
* **settings:** inverted version compatibility switch ([59adb91](59adb91))
* typo in reset patch selection dialog ([ReVanced#1387](https://github.com/BenjaminHalko/revanced-manager/issues/1387)) ([53677e2](53677e2))
* Unable to unselect new patches ([18e680b](18e680b))
* unable to use custom API ([ReVanced#1435](https://github.com/BenjaminHalko/revanced-manager/issues/1435)) ([e74ffac](e74ffac))
* Update home screen after installation ([7426f54](7426f54))
* update install type dialog padding ([b7acb47](b7acb47))
* Update the progress properly until installation finishes successfully ([1298a96](1298a96))
* update youtube link ([ReVanced#1286](https://github.com/BenjaminHalko/revanced-manager/issues/1286)) ([42b6bbf](42b6bbf))
* Use correct installation type labels ([1928b15](1928b15))
* Use correct method name for string replacement ([494e268](494e268))
* Use correct version code & name ([ReVanced#1647](https://github.com/BenjaminHalko/revanced-manager/issues/1647)) ([d933997](d933997))
* use lowercase repo names ([ReVanced#1626](https://github.com/BenjaminHalko/revanced-manager/issues/1626)) ([edd8602](edd8602))

### Features

* ability to search query for suggested version ([ReVanced#1151](https://github.com/BenjaminHalko/revanced-manager/issues/1151)) ([9bd48c1](9bd48c1))
* Add API migration code ([ReVanced#1615](https://github.com/BenjaminHalko/revanced-manager/issues/1615)) ([28ae276](28ae276))
* add haptic feedback ([ReVanced#1459](https://github.com/BenjaminHalko/revanced-manager/issues/1459)) ([7911459](7911459))
* Add patch options ([ReVanced#1354](https://github.com/BenjaminHalko/revanced-manager/issues/1354)) ([ac63667](ac63667))
* add user agent ([ReVanced#1380](https://github.com/BenjaminHalko/revanced-manager/issues/1380)) ([e960fcc](e960fcc))
* Adjust install dialog labels ([c87f92b](c87f92b))
* append patch version to the APK name while sharing/exporting ([ReVanced#1547](https://github.com/BenjaminHalko/revanced-manager/issues/1547)) ([7df1ae7](7df1ae7))
* clarify "Version compatibility check" description ([ReVanced#1397](https://github.com/BenjaminHalko/revanced-manager/issues/1397)) ([533b6a1](533b6a1))
* Clarify non root installation button ([11a8f31](11a8f31))
* dialogs correctly follows Material 3 specifications ([ReVanced#1560](https://github.com/BenjaminHalko/revanced-manager/issues/1560)) ([f8d086a](f8d086a))
* Disable selection of un-suggested app version by default ([ReVanced#1471](https://github.com/BenjaminHalko/revanced-manager/issues/1471)) ([70b2ee0](70b2ee0))
* Export settings migration activity ([ReVanced#1308](https://github.com/BenjaminHalko/revanced-manager/issues/1308)) ([4de274b](4de274b))
* Improve app selector and patcher UI ([ReVanced#1616](https://github.com/BenjaminHalko/revanced-manager/issues/1616)) ([efb2d5e](efb2d5e))
* Improve dialog text clarity ([69b6ef0](69b6ef0))
* Improve installation robustness ([ReVanced#1528](https://github.com/BenjaminHalko/revanced-manager/issues/1528)) ([c23275f](c23275f))
* Improve Split APK warning readability ([ReVanced#1625](https://github.com/BenjaminHalko/revanced-manager/issues/1625)) ([6fd740f](6fd740f))
* Only log relevant records ([15b8613](15b8613))
* output suggested version into patch log ([ReVanced#1557](https://github.com/BenjaminHalko/revanced-manager/issues/1557)) ([637641c](637641c))
* **patcher:** improve logs ([ReVanced#1299](https://github.com/BenjaminHalko/revanced-manager/issues/1299)) ([8fd4fe0](8fd4fe0))
* Remove full external storage access ([ReVanced#1381](https://github.com/BenjaminHalko/revanced-manager/issues/1381)) ([f334da9](f334da9))
* Remove original package name in app info view ([91837eb](91837eb))
* root status in export patch log ([ReVanced#1407](https://github.com/BenjaminHalko/revanced-manager/issues/1407)) ([ad6b164](ad6b164))
* **settings - appearance:** add system option ([ReVanced#1279](https://github.com/BenjaminHalko/revanced-manager/issues/1279)) ([6260a80](6260a80)), closes [ReVanced#1260](https://github.com/BenjaminHalko/revanced-manager/issues/1260)
* share settings ([2a89ef7](2a89ef7))
* Show a dialog when an update is available ([ReVanced#1654](https://github.com/BenjaminHalko/revanced-manager/issues/1654)) ([c7d975e](c7d975e))
* show patch options in error log ([ReVanced#1394](https://github.com/BenjaminHalko/revanced-manager/issues/1394)) ([bb99901](bb99901))
* Simplify label ([6bdc0c7](6bdc0c7))
* Simplify label ([8661d72](8661d72))
* Simplify settings strings ([ReVanced#1618](https://github.com/BenjaminHalko/revanced-manager/issues/1618)) ([0d45fe4](0d45fe4))
* update color scheme ([ReVanced#1483](https://github.com/BenjaminHalko/revanced-manager/issues/1483)) ([ec26e4d](ec26e4d))
* updated logs ([ReVanced#1526](https://github.com/BenjaminHalko/revanced-manager/issues/1526)) ([7931eb9](7931eb9))
* use native TextField ([9ed43ef](9ed43ef))
* Use simpler wording ([d8eadc2](d8eadc2))

### Performance Improvements

* Do not load patches twice ([012110f](012110f))
* Do not load patches twice ([ReVanced#1328](https://github.com/BenjaminHalko/revanced-manager/issues/1328)) ([a709abd](a709abd))
* Load patched apps as soon as possible ([c94eb7a](c94eb7a))
* Reduce amount of network requests ([8ce266b](8ce266b))
* Reduce amount of shell commands ([5b1c89a](5b1c89a))
* Use hashset for fast comparison ([1fad904](1fad904))
github-actions bot pushed a commit to BenjaminHalko/revanced-manager that referenced this pull request Jan 31, 2024
## Features
* Add API migration code ([ReVanced#1615](https://github.com/BenjaminHalko/revanced-manager/issues/1615)) ([oSumAtrIX](28ae276))
* add haptic feedback ([ReVanced#1459](https://github.com/BenjaminHalko/revanced-manager/issues/1459)) ([Benjamin](7911459))
* Improve app selector and patcher UI ([ReVanced#1616](https://github.com/BenjaminHalko/revanced-manager/issues/1616)) ([oSumAtrIX](efb2d5e))
* Improve Split APK warning readability ([ReVanced#1625](https://github.com/BenjaminHalko/revanced-manager/issues/1625)) ([Osama Tahir](6fd740f))
* Show a dialog when an update is available ([ReVanced#1654](https://github.com/BenjaminHalko/revanced-manager/issues/1654)) ([aAbed](c7d975e))
* Simplify settings strings ([ReVanced#1618](https://github.com/BenjaminHalko/revanced-manager/issues/1618)) ([oSumAtrIX](0d45fe4))
* use native TextField ([validcube](9ed43ef))
## Bug Fixes
* added a trailing comma ([Benjamin Halko](975180b))
* Allow mounting without Magisk ([Ushie](3f96608))
* Do not delete files from post-fs-data.d ([aAbed](70a1086))
* fix redundant buttons on dialog ([validcube](079c0de))
* Incorrect strings and logics ([ReVanced#1619](https://github.com/BenjaminHalko/revanced-manager/issues/1619)) ([aAbed](4f22e88))
* textfield title display ([validcube](8e52abd))
* Mount script causes build to fail ([ReVanced#1613](https://github.com/BenjaminHalko/revanced-manager/issues/1613)) ([Benjamin](f3c78c2))
* Set text colour on dropdown menu ([validcube](acb1e24))
* truncate the "v" from version ([Pun Butrach](8595099))
* something ([Benjamin Halko](9622b08))
* Use correct version code & name ([ReVanced#1647](https://github.com/BenjaminHalko/revanced-manager/issues/1647)) ([Benjamin](d933997))
* use lowercase repo names ([ReVanced#1626](https://github.com/BenjaminHalko/revanced-manager/issues/1626)) ([Benjamin](edd8602))
## Performance Improvements
* Load patched apps as soon as possible ([oSumAtrIX](c94eb7a))
@oSumAtrIX oSumAtrIX deleted the feat/improve-app-selector-ui branch February 26, 2024 01:59
github-actions bot pushed a commit that referenced this pull request Mar 5, 2024
# [1.19.0](v1.18.0...v1.19.0) (2024-03-05)

### Bug Fixes

* added a trailing comma ([975180b](975180b))
* adjust padding ([3559477](3559477))
* Allow mounting without Magisk ([3f96608](3f96608))
* Bump dependencies to support BCS keystore ([6ec6546](6ec6546))
* Do not delete files from post-fs-data.d ([70a1086](70a1086))
* Fix patched APKs exports after installation ([1200360](1200360))
* fix redundant buttons on dialog ([079c0de](079c0de))
* Incorrect strings and logics ([#1619](#1619)) ([4f22e88](4f22e88))
* **Keystore Password:** textfield title display ([8e52abd](8e52abd))
* Mount script causes build to fail ([#1613](#1613)) ([f3c78c2](f3c78c2))
* **Patch Option:** Set text colour on dropdown menu ([acb1e24](acb1e24))
* **PopScope:** User able to exit patch screen when the installer is still running ([#1663](#1663)) ([eb6d3cd](eb6d3cd))
* **Release CI:** truncate the "v" from version ([8595099](8595099))
* Show version label correctly ([c72d10a](c72d10a))
* Specify that dark theme is dark ([#1699](#1699)) ([d4b15ae](d4b15ae))
* Stop patch when signing fails ([#1553](#1553)) ([5b2c551](5b2c551))
* **Update Confirmation Sheet:** Add top padding ([9aeb156](9aeb156))
* Use correct title size for bottom sheet ([#1687](#1687)) ([3436523](3436523))
* Use correct version code & name ([#1647](#1647)) ([d933997](d933997))
* use lowercase repo names ([#1626](#1626)) ([edd8602](edd8602))

### Features

* Add a toggle for alternative sources ([#1686](#1686)) ([f89c742](f89c742))
* Add API migration code ([#1615](#1615)) ([28ae276](28ae276))
* add haptic feedback ([#1459](#1459)) ([7911459](7911459))
* Allow changing languages ([#1488](#1488)) ([f82c439](f82c439))
* Display current app language at the top of the list ([aa0575a](aa0575a))
* Hide the Install button during installation ([#1633](#1633)) ([3e696d6](3e696d6))
* Improve app selector and patcher UI ([#1616](#1616)) ([efb2d5e](efb2d5e))
* Improve consistency on language selector ([b2119ce](b2119ce))
* Improve language distinguishness and resolve language-specific issues ([#1706](#1706)) ([6d866d4](6d866d4))
* Improve Split APK warning readability ([#1625](#1625)) ([6fd740f](6fd740f))
* Show a dialog when an update is available ([#1654](#1654)) ([c7d975e](c7d975e))
* Simplify settings strings ([#1618](#1618)) ([0d45fe4](0d45fe4))
* Use more appropriate progress values ([2d7026a](2d7026a))
* use native TextField ([9ed43ef](9ed43ef))

### Performance Improvements

* Load patched apps as soon as possible ([c94eb7a](c94eb7a))

### Reverts

* WillPopScope migration ([3b0fed5](3b0fed5))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants