Git Product home page Git Product logo

Comments (12)

subiol avatar subiol commented on July 20, 2024 1

Upon speaking with some developers, I have found an improved solution that could make sending new emails very simple, even for inexperienced users. I am going to try to explain the problem with just having SimpleLogin app catch mailto uri intents and the improved solution as simple as possible.

There is a problem with having SimpleLogin app simply catching the mailto uri intents. This is what a user would have to do to use it: If a user has, for example, two email clients installed in Android, like K-9 and FairEmail, together with SimpleLogin app, there would be three apps that can catch mailto uri intents. So when the user clicks in an email in an app, Android would ask which app the user wants to use to handle it. The user would have to select SimpleLogin, and ideally say just once. Then SimpleLogin would open with a list of all the aliases. The uses selects the alias and SimpleLogin opens the dialog with the two options to copy the reverse alias email address or 'Begin composing with default email'. If the user selects 'Begin composing with default email', Android again will ask the user which app wants to use to handle it. The user now would have to select his email client, k-9 or FairEmail in this example. But even here the user, by mistake or ignorance, could select SimpleLogin again, making things weird and complicated. This, in general is not an ideal system, far from it.

But I think there is a very elegant and simple solution to acomplish the desired functionality. Speaking to some other developers, I was told that an app can send an intent, specifying the app that should handle that intent (by using setPackage() when sending the intent). So the solution to this situation and that would make the flow easy to use even for novice users is as follows.

SimpleLogin would ideally be selected as default app to handle mailto uri intents but it is not strictly necessary. SimpleLogin should have a configuration option to select which email client should handle the email sending. SimpleLogin can query Android to know which apps can handle mailto uri intents (using Pacakge Manager), get the list, remove itself from that list (in the previous example leaving k-9 and FairEmail in the list) and present this list for the user to select one. This app is the one that SimpleLogin app will specify when sending a mailto uri intent.

So now, configured like this, once a user clicks in an email link in any app, this is what he would see: SimpleLogin app automatically opens (if it is the default app) with a list of alias for the user to select. Once the user selects an alias, the email client will automatically open with the right reverse alias email address and the user can start typing the email and send when ready. Simple, intuitive and quick. And the only configuration necessary is to select the default email client app in the SimpleLogin app.

The same configuration parameter would apply when selecting 'Send mail' directly from the SimpleLogin application, eliminating the possibility of selecting the SimpleLogin app twice (or more) in the intent selection menu.

I hope I have not made the explanation more complicated than it really is. Please ask if any part of my explanation is not clear or there is any issue with my proposal. I honestly think this system would make sending emails from Android with SimpleLogin really easy and intuitive, with only one configuration parameter.

For the developer, I was told that there are some issues to take into account when retrieving the list of apps that can handle a particular intent, depending on the Android version, explained here: https://developer.android.com/training/basics/intents/package-visibility

from simple-login-android.

subiol avatar subiol commented on July 20, 2024 1

Yeah, just tested it and works great. I had not seen the option in settings.

from simple-login-android.

ntnhon avatar ntnhon commented on July 20, 2024

We love this idea! Thank you!

from simple-login-android.

ntnhon avatar ntnhon commented on July 20, 2024

I can't explain it better. You made the point very clear and I'll try to implement the feature this way.

from simple-login-android.

ntnhon avatar ntnhon commented on July 20, 2024

Hello, I finished working on this feature. You can download the apk and test it here if you wish: https://github.com/simple-login/Simple-Login-Android/raw/f81f33e56d4535b29ae1cff5b01c169a6ac88c6f/SimpleLogin/app/fdroid/release/app-fdroid-release.apk

When other apps ask for an intent that can handle email addresses, SimpleLogin will show up:
Screenshot_2021-03-15-22-51-18-223_android

SimpleLogin will then prompt the user to choose how they want to create a contact:
Screenshot_2021-03-15-22-52-17-760_io simplelogin android

Once the contact is created, the app shows the same dialog as clicking on a contact:
Screenshot_2021-03-15-22-53-40-152_io simplelogin android

Choosing "Begin composing with default email" excludes SimpleLogin from the list of mailto intent handlers:
Screenshot_2021-03-15-22-53-45-937_android

from simple-login-android.

subiol avatar subiol commented on July 20, 2024

Hi

I am not sure why but I can not install the apk. I have been trying for a couple days. It tells me if I want to update this existing application. I say yes, and then it says App not installed. That's it.

In any case, I can see you have adapted the idea that I gave you. Looks really good, I can not wait to try it, it is going to simplify sending emails on Android.

from simple-login-android.

ntnhon avatar ntnhon commented on July 20, 2024

Hi,
It is maybe because the apk I gave you is signed with the signature I use for Play Store build, not the f-droid one so that it can not override your current app. Anyway, I published a new version 1.8 and it is now live on Play Store. If you prefer install via f-droid you might have to wait a week or so (or maybe more), they are kind of slow in building apps lately. Feel free to request more features that you think make sense for SimpleLogin.

from simple-login-android.

subiol avatar subiol commented on July 20, 2024

Yes, that is it. I am using the F-droid version. I do not have the PlayStore installed in this phone, so I will have to wait.

From experience from other projects, you should consider creating your own F-droid repository, where you publish your updates with your own signatures. The software to run the F-droid respository is open source.

I am looking towards trying the new features.

from simple-login-android.

subiol avatar subiol commented on July 20, 2024

F-Droid has finally updated your app. I have tested and it is working beautifully. Sending the intent but without SimpleLogin app appearing as an option and therefore not even needing to set up a default email is great. Great job.

What I would improve for the future is reducing the amount of steps necessary (maybe as an option if you think it is not friendly for "newbies"). For example, when an email is clicked and SimpleLogin app catches the intent, I would prefer if the pick an alias screen would automatically open up, instead of having to chose between picking an alias, creating a random email or creating a new email. You could have the two extra options of creating a random email and creating a new email, as icons on the top right on the pick an alias list. This way there is one menu less we have to go through when sending an email.

The other one, is I would like to at least have the option to go directly to composing with your default email, instead of having to chose between copy reverse alias and begin composing with default email. That would eliminate another screen and click.

from simple-login-android.

ntnhon avatar ntnhon commented on July 20, 2024

We developers are usually not the best when it comes to UX design. What you are proposing totally makes sense. I created #39 & #40.

Did you try creating contact from contact list?

from simple-login-android.

subiol avatar subiol commented on July 20, 2024

Did you try creating contact from contact list?

No, how would I go about doing that?

from simple-login-android.

ntnhon avatar ntnhon commented on July 20, 2024

from simple-login-android.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.