Android documentation

Basics

Doorbell requires a min SDK version of 16.

You can install Doorbell via Maven Central.

Include the following in your dependencies:

implementation 'io.doorbell:android-sdk:0.3.0@aar'

Note If you're using an older version of Gradle, you will need to use compile instead of implementation

For the library to work, your app will need to have the Internet permission. To do this (if it doesn't already), just add the following line to your application's AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />

In the activity where you want to use Doorbell, you'll need to import the library using:

import io.doorbell.android.Doorbell;

Methods

The Doorbell object extends the AlertDialog.Builder class, so you can access all the existing methods (such as setTitle(String title)).

There are more methods that you can call on the Doorbell object though:

  • setEmail(String email)
  • addProperty(String key, Object value)
  • captureScreenshot()
  • enableNPSRatings()
  • disableNPSRatings()
  • resetProperties()
  • show()

And also you can access all the views in the Dialog with the following methods:

  • getMessageField()
  • getEmailField()
  • getNPSLabel()
  • getNPSField()
  • getNPSScoreLabelLow()
  • getNPSScoreLabelHigh()
  • getPoweredByField()

Example


    // In your activity
    int appId = 0; // Replace with your application's ID
    String apiKey = "YOUR-API-KEY-GOES-HERE"; // Replace with your application's API key

    Doorbell doorbellDialog = new Doorbell(this, appId, apiKey); // Create the Doorbell object

    doorbellDialog.setEmail("name@example.com"); // Prepopulate the email address field
    doorbellDialog.setName("Philip Manavopoulos"); // Set the name of the user (if known)
    doorbellDialog.addProperty("loggedIn", true); // Optionally add some properties
    doorbellDialog.addProperty("username", 'manavo');
    doorbellDialog.addProperty("loginCount", 123);
    doorbellDialog.getEmailField().setVisibility(View.GONE); // Hide the email field, since we've filled it in already

    // Capture and send a screenshot of the current activity,
    // (only available on certain plans)
    doorbellDialog.captureScreenshot();

    // Enable NPS ratings (only available on certain plans)
    doorbellDialog.enableNPSRatings();

    // Callback for when a message is successfully sent
    doorbellDialog.setOnFeedbackSentCallback(new io.doorbell.android.callbacks.OnFeedbackSentCallback() {
        @Override
        public void handle(String message) {
            // Show the message in a different way, or use your own message!
            Toast.makeText(context, message, Toast.LENGTH_LONG).show();
        }
    });

    // Callback for when the dialog is shown
    doorbellDialog.setOnShowCallback(new io.doorbell.android.callbacks.OnShowCallback() {
        @Override
        public void handle() {
            Toast.makeText(context, "Dialog shown", Toast.LENGTH_LONG).show();
        }
    });

    doorbellDialog.show();
            

Screenshots

As shown above in the example, the Android SDK can capture a screenshot of the current activity, and attach it to the message being submitted.

To make the most of this, please ensure that a button to send your a message is included on all activities on which a screenshot would be important.

The ability to capture a screenshot and show Doorbell when the user shakes their device will be released soon.