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

Android Global Crash Reporting (using Email) #335

Closed
ISNIT0 opened this issue Dec 19, 2017 · 20 comments
Closed

Android Global Crash Reporting (using Email) #335

ISNIT0 opened this issue Dec 19, 2017 · 20 comments
Assignees
Milestone

Comments

@ISNIT0
Copy link
Contributor

ISNIT0 commented Dec 19, 2017

Context:
At the recent UK hackathon, the branch ISNIT0/crash-handler was created. This implements a new Activity which is opened instead of a fatal app crash. It asks the user what information they would like to supply the developers (if any) and then opens an email client (using an Android intent) with pre-filled information.

The current implementation looks as follows:
screenshot_2017-12-15-12-07-06
screenshot_2017-12-15-12-07-54

This thread is about the mode of transport we use - email

Pros to using email:

  • It's already implemented
  • It's easy to maintain
  • It's entirely transparent (users can see exactly what information we're collecting)
  • Users can edit with as much detail as they would like
  • We get control over which information we collect (compared to Crashlytics and ACRA)
  • Emails could go to to a shared Google Group
  • The retrying etc. is already implemented

Cons to using email:

  • Could get false data sent to us
  • Could get spam/abuse from people who find the email address
  • Not anonymous
  • It's different to how most apps implement this

My personal view is that we should go ahead with email, but consider changing it going forward.

Source Email Thread:

Attached are some screenshots of the flow Elad and I have got so far for when the app crashes un-recoverably.

After spending a lot of yesterday experimenting with Crashlytics and ACRA, I've come to the conclusion that they're not flexible/configurable enough to allow for fine-grained control of what information we collect.

The current implementation (ISNIT0/crash-handler) opens an email app locally with a filled in email body (based on previously selected items) and logs attached.

I think the email gives a lot of transparency over what information is being sent, and for now is probably a good way of collecting the information (if someone doesn't want to give their email, they don't need to submit feedback). Email will also wait until the user is online and send then.

What're your thoughts, have you any specific suggestions or objections?
@kelson42
Copy link
Collaborator

kelson42 commented Jan 18, 2018

@ISNIT0 Sorry for the delay in my answer. This looks promising. The problem is that you need a way to send the feedabck per email in a secure way (no open SMTP server, no password hardcoded in app). Have you plan? Does Google do not provide an integrated way to gather this kind of "customized feedback"?

@divadsn
Copy link
Contributor

divadsn commented Jan 21, 2018

@kelson42 afaik you can achieve that using Google Firebase, but on the other side it wouldn't work if the user has no Google Apps installed, which tends to happen often nowadays.

@kelson42
Copy link
Collaborator

@divadsn interesting. I'm not so concern about that as 99% of our user download the app through the Play store. I'm more concern about other privacy violoation that might imply the usage of Google Firebase.

@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Jan 29, 2018

The suggestion here is that it uses people's personal email provider (opens their email app), so everything is transparent etc. No hidden analytics/email sending from us

@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Jan 29, 2018

And we could create a google group type email address which receives all the messages

@mhutti1
Copy link
Contributor

mhutti1 commented Jan 29, 2018

@kelson42 I think you can set up a "magic email link" that will autopopulate the data and will open in the users email app that they can then send.

@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Jan 29, 2018

This code just uses Android intents

@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Jan 29, 2018

startActivityForResult(Intent.createChooser(emailIntent , "Send email..."), 1);

@kelson42
Copy link
Collaborator

@ISNIT0 @mhutti1 OK, if you want I can create a mailbox @kiwix.org and give you the credential. That way we could quite easily go ahead on this.

@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Jan 29, 2018

Yes please - do you think it should be "feedback"@ ?

@kelson42
Copy link
Collaborator

maybe a bit more specific like android-crash-feedback@ ?

@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Jan 30, 2018

I was thinking it'd be good to keep it friendly and easy for anyone to submit private feedback anyway?
If it's super specific, people might not want to submit other, custom feedback.

@kelson42
Copy link
Collaborator

@ISNIT0 yes, but we have already contact@kiwix.org and I do not want to mix this kind of "special reports" with more traditional ones.

@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Jan 30, 2018 via email

@kelson42
Copy link
Collaborator

Email box created and credentials communicated to @ISNIT0 @julianharty @mhutti1

@kelson42
Copy link
Collaborator

kelson42 commented Feb 4, 2018

@ISNIT0 It seems the code has been merged for this!? Can we close that ticket?

@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Feb 5, 2018

@kelson42 I don't think it has been merged yet. Still some build issues - I'll look into it this week, then we can close all 3 of these issues 👍

@kelson42
Copy link
Collaborator

Considering that nobody works on this and seems to really want to push this I propose to abandon that task.

@kelson42 kelson42 added this to the 2.5 milestone Jun 18, 2019
@kelson42 kelson42 modified the milestones: 2.5, 3.0 Jun 18, 2019
@ISNIT0
Copy link
Contributor Author

ISNIT0 commented Jun 18, 2019

This was actually merged a while ago, clearly I forgot to close this issue 🤷‍♂
https://github.com/kiwix/kiwix-android/pull/351/files

@macgills
Copy link
Contributor

Well if that is the case then I will close this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants