Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
MYID Public Code
MyID Sample Android
Commits
bc38de4a
Commit
bc38de4a
authored
1 year ago
by
Javokhir
Browse files
Options
Download
Email Patches
Plain Diff
2.2.2
parent
477cd93e
master
No related merge requests found
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
CHANGELOG.md
+11
-2
CHANGELOG.md
README.md
+24
-21
README.md
app/build.gradle
+5
-9
app/build.gradle
app/src/main/java/uz/myid/sdk/sample/MainActivity.kt
+21
-11
app/src/main/java/uz/myid/sdk/sample/MainActivity.kt
app/src/main/res/layout/activity_main.xml
+36
-0
app/src/main/res/layout/activity_main.xml
app/src/main/res/values/strings.xml
+6
-4
app/src/main/res/values/strings.xml
with
103 additions
and
47 deletions
+103
-47
CHANGELOG.md
View file @
bc38de4a
...
@@ -2,6 +2,15 @@
...
@@ -2,6 +2,15 @@
All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file.
## [2.2.5] - 19 Oct, 2023
-
🔐 Added enhanced security measures
-
Added
`withClientHash`
method, which is mandatory if using withEntryType(AUTH)
## [2.2.4] - 20 Sep, 2023
-
🔨 Horizontal and landscape orientation bug on edge cases fixed.
## [2.2.3] - 25 Aug, 2023
## [2.2.3] - 25 Aug, 2023
-
Dev base url changed to
[
devmyid.uz
](
https://devmyid.uz/
)
.
-
Dev base url changed to
[
devmyid.uz
](
https://devmyid.uz/
)
.
...
@@ -92,7 +101,7 @@ All notable changes to this project will be documented in this file.
...
@@ -92,7 +101,7 @@ All notable changes to this project will be documented in this file.
-
🔥 Added new
`withOrganizationDetails(value: OrganizationDetails)`
method. You can customize the
-
🔥 Added new
`withOrganizationDetails(value: OrganizationDetails)`
method. You can customize the
SDK, for it to match your organization's brand
SDK, for it to match your organization's brand
book.
[
Usage
](
README.md#custom-organization-details
)
book.
[
Usage
](
CUSTOMIZATION.md
)
-
🌟 Added
`comparison`
value to the
`MyIdResult`
object on successful identification.
-
🌟 Added
`comparison`
value to the
`MyIdResult`
object on successful identification.
### Fixes
### Fixes
...
@@ -109,4 +118,4 @@ All notable changes to this project will be documented in this file.
...
@@ -109,4 +118,4 @@ All notable changes to this project will be documented in this file.
### Fixes
### Fixes
-
🔨
`Image's size must be lower than 1600 kb`
. This bug fixed.
-
🔨
`Image's size must be lower than 1600 kb`
. This bug fixed.
\ No newline at end of file
This diff is collapsed.
Click to expand it.
README.md
View file @
bc38de4a
...
@@ -4,12 +4,12 @@
...
@@ -4,12 +4,12 @@
-
[
Changelog
](
CHANGELOG.md
)
-
[
Changelog
](
CHANGELOG.md
)
-
[
Getting started
](
#getting-started
)
-
[
Getting started
](
#getting-started
)
-
[
Before you begin
](
#11-before-you-begin
)
-
[
Before you begin
](
#11-before-you-begin
)
-
[
Setup MyID Android SDK
](
#12-setup-myid-android-sdk
)
-
[
Setup MyID Android SDK
](
#12-setup-myid-android-sdk
)
-
[
Permissions
](
#13-permissions
)
-
[
Permissions
](
#13-permissions
)
-
[
Usage
](
#usage
)
-
[
Usage
](
#usage
)
-
[
Methods
](
#11-methods
)
-
[
Methods
](
#11-methods
)
-
[
Handling callbacks
](
#12-handling-callbacks
)
-
[
Handling callbacks
](
#12-handling-callbacks
)
-
[
SDK error codes
](
#sdk-error-codes
)
-
[
SDK error codes
](
#sdk-error-codes
)
-
[
UI customization
](
CUSTOMIZATION.md
)
-
[
UI customization
](
CUSTOMIZATION.md
)
...
@@ -45,7 +45,7 @@ repositories {
...
@@ -45,7 +45,7 @@ repositories {
}
}
dependencies
{
dependencies
{
implementation
(
"uz.myid.sdk.capture:myid-capture-sdk:2.2.
3
"
)
implementation
(
"uz.myid.sdk.capture:myid-capture-sdk:2.2.
5
"
)
}
}
```
```
...
@@ -81,6 +81,7 @@ class ExampleActivity : AppCompatActivity(), MyIdResultListener {
...
@@ -81,6 +81,7 @@ class ExampleActivity : AppCompatActivity(), MyIdResultListener {
)
)
val
myIdConfig
=
MyIdConfig
.
builder
(
clientId
=
/* Your client id */
)
val
myIdConfig
=
MyIdConfig
.
builder
(
clientId
=
/* Your client id */
)
.
withClientHash
(
/* Your clientHash */, /* Your clientHashId */
)
.
withPassportData
(
passportData
)
.
withPassportData
(
passportData
)
.
withBirthDate
(
dateOfBirth
)
.
withBirthDate
(
dateOfBirth
)
.
withSdkHash
(
sdkHash
)
.
withSdkHash
(
sdkHash
)
...
@@ -129,6 +130,7 @@ class ExampleActivity : AppCompatActivity(), MyIdResultListener {
...
@@ -129,6 +130,7 @@ class ExampleActivity : AppCompatActivity(), MyIdResultListener {
)
)
val
myIdConfig
=
MyIdConfig
.
builder
(
clientId
=
/* Your client id */
)
val
myIdConfig
=
MyIdConfig
.
builder
(
clientId
=
/* Your client id */
)
.
withClientHash
(
/* Your clientHash */, /* Your clientHashId */
)
.
withPassportData
(
passportData
)
.
withPassportData
(
passportData
)
.
withBirthDate
(
dateOfBirth
)
.
withBirthDate
(
dateOfBirth
)
.
withSdkHash
(
sdkHash
)
.
withSdkHash
(
sdkHash
)
...
@@ -159,6 +161,7 @@ class ExampleActivity : AppCompatActivity(), MyIdResultListener {
...
@@ -159,6 +161,7 @@ class ExampleActivity : AppCompatActivity(), MyIdResultListener {
Method | Notes | Default
Method | Notes | Default
--- | --- | ---
--- | --- | ---
`withClientHash(clientHash: String, clientHashId: String)`
| Provided by MyID sales team | Mandatory, if using withEntryType(MyIdEntryType.AUTH)
`withPassportData(value: String)`
| Passport serial number or PINFL data | Optional
`withPassportData(value: String)`
| Passport serial number or PINFL data | Optional
`withBirthDate(value: String)`
| Date of birth in. Format:
`dd.MM.yyyy`
| Optional
`withBirthDate(value: String)`
| Date of birth in. Format:
`dd.MM.yyyy`
| Optional
`withSdkHash(value: String)`
| 32 characters long string | Optional
`withSdkHash(value: String)`
| 32 characters long string | Optional
...
@@ -202,24 +205,24 @@ and **[ELLIPSE](images/screen04.jpg)** types.
...
@@ -202,24 +205,24 @@ and **[ELLIPSE](images/screen04.jpg)** types.
```
kotlin
```
kotlin
val
myIdResultListener
:
MyIdResultListener
=
object
:
MyIdResultListener
{
val
myIdResultListener
:
MyIdResultListener
=
object
:
MyIdResultListener
{
override
fun
onSuccess
(
result
:
MyIdResult
)
{
override
fun
onSuccess
(
result
:
MyIdResult
)
{
// Get face bitmap and result code
// Get face bitmap and result code
val
bitmap
=
result
.
bitmap
val
bitmap
=
result
.
bitmap
val
code
=
result
.
code
val
code
=
result
.
code
val
comparison
=
result
.
comparison
val
comparison
=
result
.
comparison
}
}
override
fun
onUserExited
()
{
override
fun
onUserExited
()
{
// User left the SDK
// User left the SDK
}
}
override
fun
onError
(
e
:
MyIdException
)
{
override
fun
onError
(
e
:
MyIdException
)
{
// Get error message and code:
// Get error message and code:
val
message
=
e
.
message
val
message
=
e
.
message
val
code
=
e
.
code
val
code
=
e
.
code
}
}
}
}
```
```
...
@@ -266,4 +269,4 @@ reference.
...
@@ -266,4 +269,4 @@ reference.
| 101 | Непредвиденная ошибка
| 101 | Непредвиденная ошибка
| 102 | Доступ к камере запрещен
| 102 | Доступ к камере запрещен
| 103 | Ошибка при получении данных с сервера
| 103 | Ошибка при получении данных с сервера
| 120 | Размытое фото обнаружено в SDK
| 120 | Размытое фото обнаружено в SDK
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/build.gradle
View file @
bc38de4a
...
@@ -5,23 +5,19 @@ plugins {
...
@@ -5,23 +5,19 @@ plugins {
android
{
android
{
namespace
"uz.myid.sdk.sample"
namespace
"uz.myid.sdk.sample"
compileSdk
3
3
compileSdk
3
4
defaultConfig
{
defaultConfig
{
applicationId
"uz.myid.sdk.sample"
applicationId
"uz.myid.sdk.sample"
targetSdk
34
minSdk
21
minSdk
21
versionCode
1
versionCode
1
versionName
"1.0
.0
"
versionName
"1.0"
}
}
buildTypes
{
buildTypes
{
debug
{
minifyEnabled
false
proguardFiles
getDefaultProguardFile
(
"proguard-android-optimize.txt"
),
"proguard-rules.pro"
}
release
{
release
{
minifyEnabled
true
minifyEnabled
true
shrinkResources
true
proguardFiles
getDefaultProguardFile
(
"proguard-android-optimize.txt"
),
"proguard-rules.pro"
proguardFiles
getDefaultProguardFile
(
"proguard-android-optimize.txt"
),
"proguard-rules.pro"
}
}
}
}
...
@@ -37,7 +33,7 @@ android {
...
@@ -37,7 +33,7 @@ android {
}
}
dependencies
{
dependencies
{
implementation
(
"com.google.android.material:material:1.
9
.0"
)
implementation
(
"com.google.android.material:material:1.
10
.0"
)
implementation
(
"uz.myid.sdk.capture:myid-capture-sdk:2.2.
3
"
)
implementation
(
"uz.myid.sdk.capture:myid-capture-sdk:2.2.
5
"
)
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app/src/main/java/uz/myid/sdk/sample/MainActivity.kt
View file @
bc38de4a
...
@@ -3,18 +3,28 @@ package uz.myid.sdk.sample
...
@@ -3,18 +3,28 @@ package uz.myid.sdk.sample
import
android.os.Bundle
import
android.os.Bundle
import
android.widget.EditText
import
android.widget.EditText
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
uz.myid.android.sdk.capture.*
import
uz.myid.android.sdk.capture.MyIdClient
import
uz.myid.android.sdk.capture.model.*
import
uz.myid.android.sdk.capture.MyIdConfig
import
uz.myid.android.sdk.capture.MyIdException
import
uz.myid.android.sdk.capture.MyIdResult
import
uz.myid.android.sdk.capture.MyIdResultListener
import
uz.myid.android.sdk.capture.model.MyIdBuildMode
import
uz.myid.android.sdk.capture.model.MyIdCameraShape
import
uz.myid.android.sdk.capture.model.MyIdEntryType
import
uz.myid.android.sdk.capture.model.MyIdImageFormat
import
uz.myid.android.sdk.capture.model.MyIdOrganizationDetails
import
uz.myid.android.sdk.capture.model.MyIdResidentType
import
uz.myid.android.sdk.capture.model.MyIdResolution
import
uz.myid.android.sdk.capture.takeUserResult
import
uz.myid.sdk.sample.databinding.ActivityMainBinding
import
uz.myid.sdk.sample.databinding.ActivityMainBinding
import
java.util.
*
import
java.util.
Locale
class
MainActivity
:
AppCompatActivity
(),
MyIdResultListener
{
class
MainActivity
:
AppCompatActivity
(),
MyIdResultListener
{
private
val
binding
by
lazy
{
ActivityMainBinding
.
inflate
(
layoutInflater
)
}
private
val
binding
by
lazy
{
ActivityMainBinding
.
inflate
(
layoutInflater
)
}
private
val
myIdC
lient
=
MyIdClient
()
private
val
c
lient
=
MyIdClient
()
private
var
clientId
=
""
private
var
buildMode
=
MyIdBuildMode
.
PRODUCTION
private
var
buildMode
=
MyIdBuildMode
.
PRODUCTION
private
var
entryType
=
MyIdEntryType
.
AUTH
private
var
entryType
=
MyIdEntryType
.
AUTH
private
var
residency
=
MyIdResidentType
.
RESIDENT
private
var
residency
=
MyIdResidentType
.
RESIDENT
...
@@ -28,8 +38,6 @@ class MainActivity : AppCompatActivity(), MyIdResultListener {
...
@@ -28,8 +38,6 @@ class MainActivity : AppCompatActivity(), MyIdResultListener {
setContentView
(
binding
.
root
)
setContentView
(
binding
.
root
)
with
(
binding
)
{
with
(
binding
)
{
inputClientId
.
setText
(
clientId
)
radioGroupLang
.
setOnCheckedChangeListener
{
_
,
checkedId
->
radioGroupLang
.
setOnCheckedChangeListener
{
_
,
checkedId
->
locale
=
when
(
checkedId
)
{
locale
=
when
(
checkedId
)
{
R
.
id
.
radioUz
->
Locale
(
"uz"
)
R
.
id
.
radioUz
->
Locale
(
"uz"
)
...
@@ -57,8 +65,6 @@ class MainActivity : AppCompatActivity(), MyIdResultListener {
...
@@ -57,8 +65,6 @@ class MainActivity : AppCompatActivity(), MyIdResultListener {
}
else
{
}
else
{
MyIdBuildMode
.
DEBUG
MyIdBuildMode
.
DEBUG
}
}
inputClientId
.
setText
(
clientId
)
}
}
radioGroupShape
.
setOnCheckedChangeListener
{
_
,
checkedId
->
radioGroupShape
.
setOnCheckedChangeListener
{
_
,
checkedId
->
shape
=
if
(
checkedId
==
R
.
id
.
radioCircle
)
{
shape
=
if
(
checkedId
==
R
.
id
.
radioCircle
)
{
...
@@ -110,7 +116,11 @@ class MainActivity : AppCompatActivity(), MyIdResultListener {
...
@@ -110,7 +116,11 @@ class MainActivity : AppCompatActivity(), MyIdResultListener {
phoneNumber
=
binding
.
inputPhoneNumber
.
value
phoneNumber
=
binding
.
inputPhoneNumber
.
value
)
)
val
myIdConfig
=
MyIdConfig
.
builder
(
binding
.
inputClientId
.
value
)
val
config
=
MyIdConfig
.
builder
(
binding
.
inputClientId
.
value
)
.
withClientHash
(
clientHash
=
binding
.
inputClientHash
.
value
,
clientHashId
=
binding
.
inputClientHashId
.
value
,
)
.
withPassportData
(
binding
.
inputPassportData
.
value
)
.
withPassportData
(
binding
.
inputPassportData
.
value
)
.
withBirthDate
(
binding
.
inputDate
.
value
)
.
withBirthDate
(
binding
.
inputDate
.
value
)
.
withSdkHash
(
binding
.
inputSdkHash
.
value
)
.
withSdkHash
(
binding
.
inputSdkHash
.
value
)
...
@@ -127,7 +137,7 @@ class MainActivity : AppCompatActivity(), MyIdResultListener {
...
@@ -127,7 +137,7 @@ class MainActivity : AppCompatActivity(), MyIdResultListener {
.
withPhoto
(
binding
.
checkboxWithPhoto
.
isChecked
)
.
withPhoto
(
binding
.
checkboxWithPhoto
.
isChecked
)
.
build
()
.
build
()
val
intent
=
myIdC
lient
.
createIntent
(
this
,
myIdC
onfig
)
val
intent
=
c
lient
.
createIntent
(
this
,
c
onfig
)
result
.
launch
(
intent
)
result
.
launch
(
intent
)
}
}
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/layout/activity_main.xml
View file @
bc38de4a
...
@@ -29,6 +29,42 @@
...
@@ -29,6 +29,42 @@
android:textAppearance=
"@style/TextAppearance.Material3.BodyLarge"
/>
android:textAppearance=
"@style/TextAppearance.Material3.BodyLarge"
/>
</com.google.android.material.textfield.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style=
"@style/Widget.Material3.TextInputLayout.OutlinedBox"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"12dp"
android:hint=
"@string/client_hash"
app:helperText=
"* Required"
app:helperTextEnabled=
"true"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/inputClientHash"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:importantForAutofill=
"no"
android:inputType=
"textMultiLine"
android:textAppearance=
"@style/TextAppearance.Material3.BodyLarge"
/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style=
"@style/Widget.Material3.TextInputLayout.OutlinedBox"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"12dp"
android:hint=
"@string/client_hash_id"
app:helperText=
"* Required"
app:helperTextEnabled=
"true"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/inputClientHashId"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:importantForAutofill=
"no"
android:inputType=
"textMultiLine"
android:textAppearance=
"@style/TextAppearance.Material3.BodyLarge"
/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
style=
"@style/Widget.Material3.TextInputLayout.OutlinedBox"
style=
"@style/Widget.Material3.TextInputLayout.OutlinedBox"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
...
This diff is collapsed.
Click to expand it.
app/src/main/res/values/strings.xml
View file @
bc38de4a
...
@@ -5,24 +5,26 @@
...
@@ -5,24 +5,26 @@
<string
name=
"birth_date"
>
Birth date
</string>
<string
name=
"birth_date"
>
Birth date
</string>
<string
name=
"circle"
>
Circle
</string>
<string
name=
"circle"
>
Circle
</string>
<string
name=
"client_id"
>
Client ID
</string>
<string
name=
"client_id"
>
Client ID
</string>
<string
name=
"client_hash"
>
Client hash
</string>
<string
name=
"client_hash_id"
>
Client hash ID
</string>
<string
name=
"dev"
>
Dev
</string>
<string
name=
"dev"
>
Dev
</string>
<string
name=
"ellipse"
>
Ellipse
</string>
<string
name=
"ellipse"
>
Ellipse
</string>
<string
name=
"english"
>
English
</string>
<string
name=
"english"
>
English
</string>
<string
name=
"external_id"
>
External id
</string>
<string
name=
"external_id"
>
External id
</string>
<string
name=
"face"
>
Face
</string>
<string
name=
"face"
>
Face
</string>
<string
name=
"image"
>
Image
</string>
<string
name=
"image"
>
Image
</string>
<string
name=
"manual"
>
Manual
</string>
<string
name=
"non_resident"
>
Non resident
</string>
<string
name=
"organization_phone_number"
>
Phone number
</string>
<string
name=
"organization_phone_number"
>
Phone number
</string>
<string
name=
"passport"
>
Passport or PINFL
</string>
<string
name=
"passport"
>
Passport or PINFL
</string>
<string
name=
"prod"
>
Prod
</string>
<string
name=
"prod"
>
Prod
</string>
<string
name=
"resident"
>
Resident
</string>
<string
name=
"result_image"
>
Result image
</string>
<string
name=
"result_image"
>
Result image
</string>
<string
name=
"russian"
>
Russian
</string>
<string
name=
"russian"
>
Russian
</string>
<string
name=
"scan_face_data"
>
Scan face data
</string>
<string
name=
"scan_face_data"
>
Scan face data
</string>
<string
name=
"sdk_hash"
>
Sdk hash
</string>
<string
name=
"threshold"
>
Threshold
</string>
<string
name=
"threshold"
>
Threshold
</string>
<string
name=
"uzbek"
>
Uzbek
</string>
<string
name=
"uzbek"
>
Uzbek
</string>
<string
name=
"with_photo"
>
With photo
</string>
<string
name=
"with_photo"
>
With photo
</string>
<string
name=
"without_photo"
>
Without photo
</string>
<string
name=
"without_photo"
>
Without photo
</string>
<string
name=
"sdk_hash"
>
Sdk hash
</string>
<string
name=
"manual"
>
Manual
</string>
<string
name=
"resident"
>
Resident
</string>
<string
name=
"non_resident"
>
Non resident
</string>
</resources>
</resources>
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help