Shake-to-feedback plugin for Android.
Inspired by Google Maps' Shake to feedback and based on Square's seismic.
Download the latest .aar via Maven:
<dependency>
<groupId>com.linkedin.shaky</groupId>
<artifactId>shaky</artifactId>
<version>1.0.3</version>
</dependency>
or Gradle:
compile 'com.linkedin.shaky:shaky:1.0.3'
Add the following to your AndroidManifest.xml
application tag:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths"/>
</provider>
Create the corresponding res/xml/filepaths.xml
resource:
<paths>
<files-path name="files" path="."/>
</paths>
This allows files captured by Shaky to be shared with external apps. In this case, whatever app picks up the email Intent. Note: you only need these xml permissions to share files with external apps. For more information see FileProvider.
In your Application
subclass:
public class ShakyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Shaky.with(this, new EmailShakeDelegate("[email protected]"));
}
}
For a complete example, see the demo app.
Your app can define custom behavior by subclassing
ShakeDelegate
and implementing the
void submit(Activity, FeedbackResult)
method (e.g. to send the data to a custom server endpoint).
In addition, you can implement the
Bundle collectData()
to collect extra app data including device logs, user data, etc. You will also need to handle how to send the extra data collected in your submit
method.