PrivyID's Official Client Integration Library for Android.
- Min SDK >= 30
- Add the JitPack repository to your build.gradlefile.
allprojects {
  repositories {
    maven { url 'https://jitpack.io' }
  }
}- Add the dependency
dependencies {
  implementation 'dev.privyid:pena-android:1.1.0'
}- Add internet permission in your AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />- Add Pena in your layout file
  <dev.privyid.pena.Pena
    android:id="@+id/pena"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
  />- And handle on your Activity
Kotlin
import dev.privyid.pena.Payload
import dev.privyid.pena.Pena
import dev.privyid.pena.Placement
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val pena = findViewById<Pena>(R.id.pena)
        pena.openDoc(
            url = "https://sign.document.com/doc/xxx",
            lang = "en",
            signature = Placement(
                x = 100,
                y = 200,
                page = 1,
                fixed = true,
            ),
            onAfterAction = this::onAfterAction,
        )
    }
    private fun onAfterAction(payload: Payload) {
        if (payload.action == "sign")
            Toast.makeText(this, "Signed", Toast.LENGTH_SHORT).show()
    }
}Java
import dev.privyid.pena.Payload;
import dev.privyid.pena.Pena;
import dev.privyid.pena.PenaDocument;
import dev.privyid.pena.Placement;
import kotlin.Unit;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Pena pena = findViewById(R.id.pena);
        pena.openDoc(
                new PenaDocument("https://sign.document.com/doc/xxx")
                        .setLang("en")
                        .setSignature(new Placement(100, 200, 1, true))
                        .setOnAfterAction(this::onAfterAction)
        );
    }
    private Unit onAfterAction(Payload payload) {
        if (payload.getAction().equals("sign"))
            Toast.makeText(this, "Signed", Toast.LENGTH_SHORT).show();
        return null;
    }
}| Options | Type | Default | Description | 
|---|---|---|---|
| url | String | - | (Required) Document's url | 
| lang | String | en | Set language, valid value is enorid | 
| visibility | Boolean | true | Set signature visibility | 
| privyId | String | - | Set recipient's privyId | 
| signature | Placement | - | Set signature placement (Deprecated) use API to set placement when upload the document | 
| ├ x | Number | - | X Coordinate | 
| ├ y | Number | - | Y Coordinate | 
| ├ page | Number | - | Target page | 
| └ fixed | Boolean | false | Disabled signature for moving | 
| debug | Boolean | false | Enable debug mode | 
| needScrollTo | Number | String | - | Force user to scroll to target page before doing an action (sign,review,etc). Valid value is a number, or set lastto target the last page | 
| onAfterAction | Function | - | After action hook | 
This project is licensed under the MIT License - see the LICENSE file for details