> For the complete documentation index, see [llms.txt](https://docs.wepin.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wepin.io/en/widget-integration/android-java-and-kotlin-sdk/pin-pad-library/init.md).

# Initialization

The method for initializing the Wepin Android PIN Pad Library is as follows.

```kotlin
import com.wepin.android.pinlib.WepinPin
```

Before creating an instance of `WepinPin`, please pass the app’s Activity Context, the app ID, and the app key assigned after app registration to the `WepinPinParams` object as shown below.

```kotlin
val wepinPinParams =  WepinPinParams(
            context = this,
            appId = "your-wepin-app-id",
            appKey = "your-wepin-app-key"
        )
```

Please create a `WepinPin` instance by passing the previously created `WepinPinParams`.

```kotlin
val wepinPin = WepinPin(wepinPinParams)
```

After creating the `WepinPin` instance, call the `initialize` method to complete the initialization.

```kotlin
val res = wepinPin.initialize(attributes)
```

#### parameters

&#x20;`atrributes` \<WepinPinAttributes>

* `defualtLanguage` \<String>\
  The default language setting for the PIN pad screen is `'en'`. Currently supported languages are `'ko'`, `'en'`, and `'ja'`.

#### Return value

`CompletableFuture` \<Boolean>\
Returns **true** if successful, and **false** if it fails.

### Example

{% tabs %}
{% tab title="Java" %}

```java
public class MainActivity extends ComponentActivity {
    private WepinLogin wepinLogin;
    private WepinPin wepinPin;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_example_main);

        initView();
        // Initialize Wepin Login Library 
        // ...

        // Initialize Wepin PIN Pad Library 
        WepinPinParams wepinPinParams = new WepinPinParams(
            this,
            "your-wepin-app-id",
            "your-wepin-app-key"
        );
        wepinPin = new WepinPin(wepinPinParams);
        
        WepinPinAttributes attributes = new WepinPinAttributes("en");
        CompletableFuture<InfResponse> res = wepinPin.initialize(attributes);
        if (res != null) {
            res.whenComplete((infResponse, error) -> {
                if (error == null) {
                    System.out.println(infResponse);
                } else {
                    System.out.println(error);
                }
            });
        }
        // ...
    }
}
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
class MainActivity : ComponentActivity() {
    private lateinit var wepinLogin: WepinLogin
    private lateinit var wepinPin: WepinPin
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

        setContentView(R.layout.activity_example_main)
    
        initView()
        // Initialize Wepin Login Libary 
        // ...
        
        // Initialize Wepin PIN Pad Libary 
        val wepinPinParams =  WepinPinParams(
            context = this,
            appId = 'your-wepin-app-id',
            appKey = 'your-wepin-app-key'
        )
        wepinPin = WepinPin(wepinPinParams)       
        var attributes = WepinPinAttributes("en")
        val res = wepinPin.initialize(attributes)
        res?.whenComplete { infResponse, error ->
          if (error == null) {
            println(infResponse)
          } else {
            println(error) 
          }
      }        
    // ...
}
```

{% endtab %}
{% endtabs %}

## isInitialized

You can use the `isInitialized` method to check if the `WepinPin` instance has been successfully initialized.

The return values are as follows

* \<Boolean>\
  Returns **true** if initialization was successful and **false** if it failed.

### Example

{% tabs %}
{% tab title="Java" %}

```java
if(wepinPin.isInitialized()){
    // Success to initialize WepinPin
}
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
if(wepinPin.isInitialized()){
    // Success to initialize WepinPin
}
```

{% endtab %}
{% endtabs %}

## changeLanguage

```kotlin
wepinPin.changeLanguage("ko")
```

Changes the language displayed on the PIN pad screen. Currently, only `'ko'`, `'en'`, and `'ja'` are supported.<br>

### **Parameters**

* &#x20;`language` \<String>

### **Return value**

* `CompletableFuture` \<Boolean>\
  Returns **true** if successful and **false** if it fails.

### **Example**

{% tabs %}
{% tab title="Java" %}

```java
wepinPin.changeLanguage("ko").whenComplete((res, err) -> {
    if (err == null) {
        System.out.println(res);
    } else {
        System.out.println(err);
    }
});
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
wepinPin.changeLanguage("ko").whenComplete{ res, err ->
    if (err == null) {
      println(res)
    } else {
      println(err)
    }
}
```

{% endtab %}
{% endtabs %}
