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

Option to show all apps that can open a link (UI improvement) #47

Open
advait404 opened this issue Aug 11, 2022 · 18 comments
Open

Option to show all apps that can open a link (UI improvement) #47

advait404 opened this issue Aug 11, 2022 · 18 comments
Labels
enhancement New feature or request

Comments

@advait404
Copy link

Firstly, thanks a lot for this wonderful app. its by far the best URL cleaner on android.

I use the Open Link With app that instantly shows all apps that can open a link. So it takes only 2 clicks: one to select the open link with app, and one to choose the specific app to use.

however, In URL checker there is only 1 app shown that can open the link, and the rest are accessed by clicking on the arrow. This takes 3+ clicks and is a bit confusing. I think an option to change the view from showing 1 main app into a list format will be nice. It will make opening pprcess much quicker, and with the automatic URL cleaning enabled, its a very simple and quick process.

Additionally, it would be great if the apps' logos are also visible next to their names in the list, making identifying the apps easier and faster.

@TrianguloY
Copy link
Owner

I think I mentioned it somewhere, but funny fact my original prototype had exactly this, a list with icons (a very ugly list).
I'm not really sure why I changed it, maybe because with the module approach it took a lot of space or perhaps the share button was hard to add in that case.

I've been thinking into adding a setting to toggle between the button+arrow and icons list too, and it would in fact be a good addition.

So many good ideas, so little time...

@TrianguloY TrianguloY added the enhancement New feature or request label Aug 11, 2022
@advait404
Copy link
Author

Wow, thanks for the super fast reply. I wish I could help you more with this, but I barely have any coding experience.

Frankly, the current UI is really good and works well. So I don't think this is a priority, but it would be great to add.

One 'easy' way of implementing this could be to show the app list by default, and to show this list below the arrow instead of above it. This way, the user can click on the app directly. It probably won't look great, but works decently well.

Is it possible to maybe copy code from the open link with app and reuse it here? Or maybe some collaboration between the projects? It could help with implementing the best of both apps.

@TrianguloY
Copy link
Owner

Moving to an inline list, is easy. Making sure that it looks good and it's usable isn't. (and also testing that it doesn't break anything else!)
I'm planing to separate the open and share modules, that could also help to give more space...

@Efreak
Copy link

Efreak commented Jan 29, 2023

Try looking at the way link eye displays a list of apps.

I'm not a fan of the current color styling of link eye, so I use an older version, however I believe the list and most of the button arrangement is the same. I really link the way link eye provides the 4 buttons at the bottom, before the list of apps: copy, share, clean, close.

Alternatively, an icon grid like the share sheet has. Some apps implement multiple actions. for these it shows the actions individually. If the main app is shown instead, without text labels, it should prompt which activity to launch afterwards.

@PabloOQ
Copy link
Collaborator

PabloOQ commented Jan 29, 2023

I have tried to implement this, it doesn't look bad to me. However the icons need a minimum size to not look ugly, also some people could find these hard to see. The problem with this is that apps with longer names get totally butchered in the button, there is not much space to work with icons.
Also to make space I removed the "Open with" text, as it is somewhat redundant, and when you have as many apps as me it just doesn't make any sense (see open_with). I think the big button with the icon still makes clear that the module will launch that app to open the link. Let me know what you think, maybe with some small changes this can look good and I can make a PR.

open_with

The app in the current state.
open_with

big_icon_ctabs_off

big_icon_ctabs_off

big_icon_popup_ctabs_on

big_icon_popup_ctabs_on

small_icon_ctabs_off

small_icon_ctabs_off

small_icon_ctabs_on

small_icon_ctabs_on

small_popup

small_popup

Try looking at the way link eye displays a list of apps.

While I'm on it, here is a screenshot of the way link eye handles this.

link_eye

link_eye

Alternatively, an icon grid like the share sheet has.

UntrackMe (NitterizeMe) does this.

untrackme

untrackme

@TrianguloY
Copy link
Owner

My original idea was to have 3 or 4 icons-only (or with a small label below) on a row, either horizontally scrollable (the rest requiring a scroll), with an 'expand' button to show all (like now) or with infinite rows (like a Nx4 table).

In any case showing the icons would be a nice addition. The small icons (with maybe less space between it and the label) looks really good!

But the suggestion is to show all apps (or at least more than one) directly without any extra press. This requires the separation of open / share modules, which I feel I need to really think about.

@Ilithy
Copy link
Collaborator

Ilithy commented Jan 29, 2023

My original idea was to have 3 or 4 icons-only (or with a small label below) on a row, either horizontally scrollable (the rest requiring a scroll), with an 'expand' button to show all (like now) or with infinite rows (like a Nx4 table).

This is a great way to display a nicely expandable list of icons indeed.

In any case showing the icons would be a nice addition. The small icons (with maybe less space between it and the label) looks really good!

Please, if possible, make it an option that can be disabled 🙏

@TrianguloY
Copy link
Owner

Please, if possible, make it an option that can be disabled 🙏

My idea was to have a toggle to choose between the current selector or other alternatives (if they are very different like the table of icons), but adding the icon to the current selector should be easy to toggle too I guess.

@Ilithy
Copy link
Collaborator

Ilithy commented Jan 29, 2023

My idea was to have a toggle to choose between the current selector or other alternatives (if they are very different like the table of icons)

Yeah that's what I thought, it's more about adding icons to the current app selector

but adding the icon to the current selector should be easy to toggle too I guess.

Thank you very much for taking this into consideration 🫶

@Efreak
Copy link

Efreak commented Jan 30, 2023

The untrackme/share sheet grid looks best imo. It's easier to pick an app from a list of icons than it is to read a list. I've got 26 is currently that can open arbitrary http links (a dozen browsers that frequently get added or removed as I play around, about twice as many website client apps, and a bunch of tools like intent intercept).

apps that can open this page

Screenshot_20230129_164646

Vs the much better looking

Screenshot_20230129_165056_UntrackMe

I'm also going to submit a separate feature request for filtering the app list, since I open URLs/files with relatively few of my installed apps.

@TrianguloY
Copy link
Owner

That's a whole collection of apps you got there, I wonder how the 'sorting' algorithm sorts them in your case.

In any case, a grid of icons+text seems like the better idea. Thanks for the screenshots!

@PabloOQ
Copy link
Collaborator

PabloOQ commented Jan 30, 2023

My original idea was to have 3 or 4 icons-only (or with a small label below) on a row, either horizontally scrollable (the rest requiring a scroll), with an 'expand' button to show all (like now) or with infinite rows (like a Nx4 table).

I like this a lot, here is how I think it could work. A small drawer with a grid of icons, [1-2] x [2-5] , the apps shown are chosen based on one of these:

  • Automatically: The frequency they are used.
  • Manually: Pinned by the user.
  • Mix of both
Pinned

fav-drawer

This could be made as a mix of the following: individually, by domain, globally, or even compatible apps.
By compatible apps I mean that most URLs can only be opened by a browser, others can be opened by browser plus some apps that only work for that service, like youtube.com and youtu.be this way there is no need to configure each domain.
Maybe a hierarchy for better customization could work where the bigger category overwrites the rest unless it is not defined or has priority to be shown in the drawer: individually > domain > compatible > globally.

This gives quick access to some apps, avoiding the extra tap to open the popup menu in most cases. Even to maximize use of space some icons could have multiple functions based on input:

  • Tap
  • Hold
  • Double tap
  • Tap and hold

Tap for DuckDuckGo, hold for Firefox
image

Another idea I have is that instead of spliting the share functionality it could be added with the icons, combined in the same grid, or at least have it's own independent grid. Why? At least to me when, I want to share something it feels like a lot of steps are needed if I want to clean the URL, as it is not possible to automatically share everything to URLCheck, and then choose from there. Having a list of share icons ready skips the step of the share button.

App share -> URLCheck -> Share button -> Final App

Share

combined-drawer

The show all apps button could show a big scrollable grid Nx5 with a "open with" tab and a "share" tab. With some options for the hierarchy mentioned earlier.

Some of these ideas may be too complex, but I wanted to write it down, in case something sticks.

@pressRtowin
Copy link

Thought of an idea for this that I thought I might throw out there.

What if holding on the open button brings up a pop up grid of all the apps that could handle it, and then you can slide your finger over to the app you want to use and release to select it?

This preserves the clean look of the current UI but minimizes user actions needed quite a bit (eliminates excess tapping).


Also, whatever redesigns you end up implementing, why not do them as separate open/share modules so users can select which UI they prefer? Yes, you can use settings toggles within the module, but some of the ideas being discussed above sound quite distinct, and they could also benefit from having their own set of settings as well.

@TrianguloY
Copy link
Owner

Yup, using different modules is an alternative that will be considered once something is implemented. The main issue is that common settings will need to be moved to general settings or something like that.

@Validbit
Copy link
Contributor

Validbit commented Nov 1, 2023

@pressRtowin this is an elegant solution but

  • it may be difficult to implement
  • is badly usable in bad weather (just like most gesture actions) to be main option

@PabloOQ (icons for current list) Good job. I only think the icon for default entry (outside dd) is not needed (thus space won't be problem)

I think the current implementation is good but could use the icon grid (e.g. 3x3).
I personlly use most of my entries* so limiting the listing (and columns) would not help much.

The other layout (of scrollable pinning grid) solution that @PabloOQ provided seems to be best imo - the pin + fav/def icons don't need to be implemented, outline (neutral: pin, color: fav/def)

Solution could also be a list/setting of excluded apps or not limiting no. of columns (e.g. 8x2)) It can be used well and for the aesthetic part the labels don't have to be shown (in grid) if a right/neutral iconpack is used (e.g. Whicons)

For displaying all apps; there could be a ∙∙∙ button aside the regular dropdown (or icon entry in grid) that displays pinned apps in urlchecker settings (shown for all types - listing all apps could be slow/cluttered) that could look the same way as already implemented

*(to separate use-cases/accounts (work, school, career, home, shopping) - 14 actively (incl. pdf, dl manager, printing/eink, embed/webapp, indirect, save-as-file)

@Efreak
Copy link

Efreak commented Nov 1, 2023

@Validbit

PressRtowin this is an elegant solution but
• it may be difficult to implement
• is badly usable in bad weather (just like most gesture actions) to be main option

Agreed. Gestures that require accuracy should not be used. The only gesture I can see being available here that's not optional and disabled by default is things like scrolling and zooming (pinch zoom is hard to do accidentally and easy to detect, same also unnecessary here).

PabloOQ (icons for current list) Good job. I only think the icon for default entry (outside dd) is not needed (thus space won't be problem)

I think the current implementation is good but could use the icon grid (e.g. 3x3). I personlly use most of my entries* so limiting the listing (and columns) would not help much.

The icon grid I would love, this is exactly what I want. It shouldn't be limited to 3x3, though, as people have devices of different sizes, as well as clumsy fingers or vision impairments. Icon size, number of columns and number of rows should be configurable, and icons themselves could also be configurable via standard launcher icon themes (this allows to keep consistent across the os for people who like customizing things, but also allows users to pick a high contrast icon set for disabilities).

  • over scrolling is a possible gesture here. If the user tries to continue scrolling a significant amount (50% screen height or more) after they hit the end, an action can be done here (edit list of hidden/pinned items? Open config?)

The other layout (of scrollable pinning grid) solution that PabloOQ provided seems to be best imo - the pin + fav/def icons don't need to be implemented, outline (neutral: pin, color: fav/def)

Pinned/favorite/recently used icons just need to be ordered near the top of the list. No need to do anything else special. This is probably an ok function for long-press gesture.

Solution could also be a list/setting of excluded apps or not limiting no. of
columns (e.g. 8x2)) It can be used well and for the aesthetic part the labels don't have to be shown (in grid) if a right/neutral iconpack is used (e.g. Whicons)

For displaying all apps; there could be a ∙∙∙ button aside the regular dropdown (or icon entry in grid) that displays pinned apps in urlchecker settings (shown for all types - listing all apps could be slow/cluttered) that could look the same way as already implemented

Please don't hide functionality behind multiple taps (unless it's a list of apps that the user wants to hide because they don't usually use them), otherwise there's no point to choosing the app to open with directly; you might as well use the system chooser for it. Either a drop-down for overflow, or simply scrolling the grid.

*(to separate use-cases/accounts (work, school, career, home, shopping) - 14 actively (incl. pdf, dl manager, printing/eink, embed/webapp, indirect, save-as-file)

Only 14? 😭

@TrianguloY
Copy link
Owner

I got an email asking for a way to search the list of apps.

I'm adding that suggesting here for completeness, in case it can be also added.

@ngocanhtve
Copy link
Contributor

I think a bottom sheet would be a more modern design than the current pop-up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

8 participants