Is your mailbox full of bug reports and feature requests from your app users?
android-issue-reporter is a new material designed library to report issues from your app directly to GitHub, even without an account.
This library is inspired by Paolo Rotolo's Gitty Reporter
Download the demo app from the Google Play Store.
GitHub bot | Include device info | Demo |
Install android-issue-reporter from jitpack.io:
Add the JitPack repository in your root build.gradle
at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Then, add the android-issue-reporter dependency:
dependencies {
implementation 'com.github.heinrichreimer:android-issue-reporter:1.4'
}
Get the latest dependency version at jitpack.io.
Just start the issue reporter directly from your activity using the fluent launcher builder:
IssueReporterLauncher
.forTarget("HeinrichReimer", "android-issue-reporter")
// [Recommended] Theme to use for the reporter.
// (See #theming for further information.)
.theme(R.style.Theme_App_Dark)
// [Optional] Auth token to open issues if users don't have a GitHub account
// You can register a bot account on GitHub and copy ist OAuth2 token here.
// (See #how-to-create-a-bot-key for further information.)
.guestToken("28f479f73db97d912611b27579aad7a76ad2baf5")
// [Optional] Force users to enter an email adress when the report is sent using
// the guest token.
.guestEmailRequired(true)
// [Optional] Set a minimum character limit for the description to filter out
// empty reports.
.minDescriptionLength(20)
// [Optional] Include other relevant info in the bug report (like custom variables)
.putExtraInfo("Test 1", "Example string")
.putExtraInfo("Test 2", true)
// [Optional] Disable back arrow in toolbar
.homeAsUpEnabled(false)
.launch(this);
Alternatively, if you need to further customize the issue reporter, create a new Activity
class that extends IssueReporterActivity
:
public class ExampleReporterActivity extends IssueReporterActivity {
// Where should the issues go?
// (http://github.com/username/repository)
@Override
public GithubTarget getTarget() {
return new GithubTarget("username", "repository");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// [Optional] Auth token to open issues if users don't have a GitHub account
// You can register a bot account on GitHub and copy ist OAuth2 token here.
// (See #how-to-create-a-bot-key for further information.)
setGuestToken("28f479f73db97d912611b27579aad7a76ad2baf5")
// [Optional] Force users to enter an email adress when the report is sent using
// the guest token.
setGuestEmailRequired(true);
// [Optional] Set a minimum character limit for the description to filter out
// empty reports.
setMinimumDescriptionLength(20);
}
// [Optional] Include other relevant info in the bug report (like custom variables)
@Override
public void onSaveExtraInfo(ExtraInfo extraInfo) {
extraInfo.put("Test 1", "Example string");
extraInfo.put("Test 2", true);
}
}
Create a theme extending Theme.IssueReporter
theme and set it to the launcher using IssueReporterLauncher.theme(@StyleRes int theme)
or declare it in AndroidManifest.xml
if you have extended IssueReporterActivity
:
<style name="Theme.App" parent="Theme.IssueReporter">
<item name="colorPrimary">...</item><!-- required -->
<item name="colorPrimaryDark">...</item><!-- required -->
<item name="colorAccent">...</item><!-- required -->
</style>
-
Create a new GitHub account. (You have to use a unique email address.)
-
Go to https://github.com/settings/tokens and create a new token using Generate new token. (Only the
public_repo
permission is needed.) -
Copy the OAuth access token you get at the end of the setup.
-
Use the token in
IssueReporterLauncher.theme(String token)
or overridegetGuestToken()
in your reporter activity like this:@Override public String getGuestToken() { return "<your token here>"; }
- Two factor authentication is not supported.
To contribute to the android-issue-reporter library, just create a codespace from this repository or clone it in an editor that supports Dev Containers (e.g., Visual Studio Code or IntelliJ).
All required dependencies will automatically be installed for you.
Once ready, create a pull request with your changes. We're happy to any contribution!
If you hit any problems using android-issue-reporter, please file an issue. We're happy to help!
This repository is released under the MIT license. If you like android-issue-reporter, consider sponsoring me.