TrianguloY / UrlChecker

Android app by TrianguloY: URLCheck
Other
898 stars 52 forks source link

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

Open advait404 opened 2 years ago

advait404 commented 2 years ago

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 commented 2 years ago

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...

advait404 commented 2 years ago

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 commented 2 years ago

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 commented 1 year ago

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 commented 1 year ago

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](https://user-images.githubusercontent.com/55493443/215328981-a456553b-520c-4ad5-a0a0-3370b4651123.png)
big_icon_ctabs_off ![big_icon_ctabs_off](https://user-images.githubusercontent.com/55493443/215328730-7f98165a-291b-4bba-bee9-4183cc3b00f7.png)
big_icon_popup_ctabs_on ![big_icon_popup_ctabs_on](https://user-images.githubusercontent.com/55493443/215328757-de77acfe-a080-4e3e-8209-742bc03ccd58.png)
small_icon_ctabs_off ![small_icon_ctabs_off](https://user-images.githubusercontent.com/55493443/215328760-f7db4881-5632-4446-bef6-480e33cb5b85.png)
small_icon_ctabs_on ![small_icon_ctabs_on](https://user-images.githubusercontent.com/55493443/215328768-3c0dd763-52da-45c6-a546-db1716fbed84.png)
small_popup ![small_popup](https://user-images.githubusercontent.com/55493443/215328784-01f48bac-a4fc-4cbf-b758-f35826666510.png)

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](https://user-images.githubusercontent.com/55493443/215327790-256b932d-db2c-4164-b76a-4f14dfc44fea.png)

Alternatively, an icon grid like the share sheet has.

UntrackMe (NitterizeMe) does this.

untrackme ![untrackme](https://user-images.githubusercontent.com/55493443/215327796-fccc0042-176d-4c9e-8948-69a3229b1aed.png)
TrianguloY commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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 commented 1 year ago

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](https://user-images.githubusercontent.com/749751/215366293-b2647bc3-5ff3-4624-9a4f-4dbe44ba3862.jpg) Vs the much better looking ![Screenshot_20230129_165056_UntrackMe](https://user-images.githubusercontent.com/749751/215366522-88d1e27f-1152-4371-ac25-118bfe82600c.jpg)

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 commented 1 year ago

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 commented 1 year ago

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:

Pinned ![fav-drawer](https://user-images.githubusercontent.com/55493443/215527705-f2726f50-173c-4b7e-81f8-9e6239cde571.png)

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 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](https://user-images.githubusercontent.com/55493443/215527687-4759847b-06ad-4f39-b623-c9413a21ca84.png)

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 commented 1 year ago

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 commented 1 year ago

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 commented 11 months ago

@PressRtowin this is an elegant solution but

@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 commented 11 months ago

@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).

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 commented 7 months ago

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 commented 5 months ago

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