Skip to content

Commit

Permalink
Merge dev into main (#249)
Browse files Browse the repository at this point in the history
* Version name & code rise, update docs (#60)

* Version name & code rise, update docs

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Implement is empty function (#63)

* Feature/androidsdk 173 (#62)

* Implement clear text feature

* Update tests

* Add submit test for MainActivity.kt

* Revert "Add submit test for MainActivity.kt"

This reverts commit e8224bc9175661fcbd18f4bbd9fed2bf87ac10ce.

* Feature/androidsdk 182 (#61)

* Implement secure text feature

* Update tests

* Add ability to set custom secure symbol

* Update comments

* Add default options value

* Add VGSSecureTextOptions.kt comments

* Fix demo

* Fix demo

* Add isSecureText function

* Fix comment

* Implement ability to set array of ranges for secure feature

* Update demo app

* Fix tests

* Update naming, add comments

* Update tests

* Update secure text feature

* Finish secure text symbol

* Refactoring: rename field

* Update tests

* fix secureText mode without user range

* update tests

* Update VGSTextRange.kt comments and visibility modifiers

* Update SecureTransformationMethod.kt checks, refactor

Co-authored-by: Dmytro <dmitriy.kosolapenko@vgs.io>

* Feature/androidsdk 172 (#64)

* Add submit test for MainActivity.kt

* Implement secure text check

* Remove test code

* Test circleCi config.yml

* Fix config.yml

* Fix version config.yml

* Test config.yml

* Test config.yml

* Test config.yml

* Remove test code

* Test

* Test

* Remove test code

* Cicrleci with browserstack integration (#65)

Cicrleci with browserstack integration

* Show error message in Logcat when the secure range is not correct (#68)

* Add logcat message if range is not valid

* Fix message

* Disable secure text range error logs if no content

* Code style improve

* Refactoring

* Implement set secure text event (#69)

* Implement set secure text event

* Cache OnSecureTextRangeSet events and invoke on subscribe to VGSShow

* Update tests

* Refactoring

* Refactoring: rename

* Implement setAnalyticsEnabled function (#73)

* Add possibility to scroll content horizontally (#75)

* Fix singleLine

* Add setMovementMethod function to VGSTextView.kt

* Remove log

* Fix comment

* Remove test code

* Release/v1.0.4 (#76)

* Update README.md

* add new script

* remove old script

* Version name & code rise, update docs

* Update build.gradle

* Version name & code rise

* Docs update

* Fix version

* Update docs

* Update dependencies & gradle version

* Update docs

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Firebase Test Lab integration (#70)

* Firebase Test Lab integration

* Test base64 command

* Update files path

* Try gcloud image

* Run separate jobs

* Fix formating

* Update workflow

* Fix required

* Fix required

* Remove sudo

* Revert separate job changes

* Revert separate job changes

* Remove redundant code

* Update

* Test

* Fetch result tests

* Fetch result tests

* Update device list

* Test separate job

* Fix formatting

* Remove docker

* Add artifacts path

* Remove failed job

* Run different steps for build

* Test

* Test

* Fix path

* Test

* Test attach workspace

* Fix

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Add "Run_UI_Test" job filter to run only on master branch

* Change master to main

* Uncomment test code

* Refactor: add aliases

* Update devices list

* Replace device name with id

* Add Run_UI_Test filters to run only on staging branch

* Test get destination branch

* Test

* Test CIRCLE_PULL_REQUEST env variable

* Test ${CIRCLE_PULL_REQUEST##*/} env variable

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test skipping Run_UI_tests on not release branch

* Test skipping Run_UI_tests on not release branch

* Test skipping Run_UI_tests on not release branch

* Revert latest changes

* Add Fragment and ViewPager UI tests (#77)

* Refactor: Move activity demo code to another activity

* Add spalsh screen

* Refactoring

* Refactoring: update packages

* Refactor activity test

* Add empty fragment

* Implement fragment case

* Add fragment UI tests, refactor: improve activity views ids

* Add viewpager activity

* Test token

* Test token

* Test token

* Fix on detach from window

* Implement view pager

* Refactor UI to separate xml files

* Add collect & show fragmenta

* Implement collect and show fragment, implement communication between fragments

* Implement view pager tests

* Restore "ZeroData" image

* Implement Log levels (#81)

* Base logger implementation

* Fix varargs

* Allow nullable values in logs

* Refactor logger, switch all logs to use new logger

* Implement OkHttpClient.kt request/response logs

* Implement HttpUrlClient.kt.kt request/response logs

* Disable analytics logs

* Refactor: rename VGSShowLogger.kt

* Add view upadte logs

* Set VGSShowLogger.Level.NONE for release builds

* Add no subscribed view log message

* Refactoring

* Update comments

* Update comments

* Add isEnabled flag to VGSShowLogger.kt

* Improve comment

* Refactor: replace ':' with '-', improve comments

* Fix host normalized log level

* Add logLevel param in vgs-client header (#83)

* Add logLevel in vgs-client header

* Refactoring

* Revert "Add logLevel param in vgs-client header (#83)" (#84)

This reverts commit 40c8efbb

* Merge release into dev (#86)

* Version name & code rise

* Update docs

* Update kotlin version (#89)

* Update gradle plugin (#88)

* Update gradle version

* Update kotlin version

* Track analytics disabled/enabled (#91)

* Add logLevel in vgs-client header

* Refactoring

* Add analytic disabled/enabled parameter in agent header

* Refactor: function rename

* Implement GET/PUT/PATCH/DELETE Http methods (#92)

* Implement different VGSHttpMethod.kt

* Refactoring

* Update google play json (#96)

* Update google-services.json

* Test

* Remove test code

* Satellite integration (#90)

* Add ability to set localhost as base url to use it with Satellite. Refactoring

* Update Satellite integration implementation

* Merge with dev

* Remove test code

* Add warning message

* Update logging divider

* Update comments and log messages

* Refactoring

* Update Validator.kt dependencies

* Improve ValidatorKtTest.kt

* Add env check

* Refactoring

* Add use satellite flag

* Add vgsSatellite parameter to events

* Refactoring

* Fix comments, remove test code

* Release 1.1.0 (#97)

* Implement optional payload (#99)

* Implement optional payload for VGSShow.request/requestAsync

* Code format

* Add ability to release on Maven (#101)

* Add ability to release on Maven

* Update UI test job

* Update dependencies

* Refactor: rename functions, improve request/response logging (#102)

* Fix/custom view attributes (#103)

* Fix custom view padding

* Fix text hint color & appearance

* Remove redundant attribute set

* Fix tests

* Add ability to remove/clear static headers (#104)

* remove bintray code from repo  (#105)

* remove bintray code from repo

* update pr template

* Add VGSPDFView (#106)

* Add vgsshow-pdf module, add base implementation of VGSPDFView.kt

* Update VGSPDFView.kt

* Add basic attributes implementation, implement save state, add comments.
Fix circular dependency.

* Start implementing share feature

* Remove vgsshow-pdf module, move VGSPDFView.kt to vgsshow module, update comments

* Add ability to share pdf doc

* Naming update to make it consistent with iOS

* Refactoring, Add ability to set request timeout interval

* Update VGSFieldType.PDF comment

* Update VGSView.getFieldType() comment

* Update VGSPDFView.refresh() comment

* Add VGSPDFView.OnPageChangeListener

* Add VGSPDFView.OnRenderStateChangeListener

* Update VGSPDFView.kt comment

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* PDF viewer - demo app (#107)

* Add vgsshow-pdf module, add base implementation of VGSPDFView.kt

* Update VGSPDFView.kt

* Add basic attributes implementation, implement save state, add comments.
Fix circular dependency.

* Start implementing share feature

* Remove vgsshow-pdf module, move VGSPDFView.kt to vgsshow module, update comments

* Add ability to share pdf doc

* Naming update to make it consistent with iOS

* Refactoring, Add ability to set request timeout interval

* Add PDF view dome screen

* Base test setup

* Update VGSFieldType.PDF comment

* Update VGSView.getFieldType() comment

* Update VGSPDFView.refresh() comment

* Add VGSPDFView.OnPageChangeListener

* Add VGSPDFView.OnRenderStateChangeListener

* Update PDFActivity.kt rendering listener

* Update VGSPDFView.kt comment

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* Add demo screen

* Add UI test

* Delete cached PDF files (#108)

* Delete cached PDF files

* Update function call order

* Add Render/ShareContent events (#109)

* Add Render/ShareContent events

* Update analytics

* Resolve conflicts, code format

* Fix device model analytics attribute

* Fix "contentPath" attribute in InitEvent

* Fix "field" attribute in CopyToClipboardEvent

* Refactor SetSecureTextEvent params order

* Remove dependancy on IHttpClient.kt from VGSRequest.kt, remove default paramteres from HttpRequest.kt - make VGSRequest.kt responsible for paramteres(handle default params in only one place) (#110)

* update dependencies (#111)

* Update dependencies & release process (#112)

* Update dependencies versions

* Update release plugin & process

* Fix lint warnings (#113)

* Fix some warnings

* Remove deprecated plugin(actually it's not used at all)

* Fix redundant switch block & deprecation

* Remove share (#114)

* Update dependencies (#115)

* Create dependabot.yml (#118)

* Move google-services.json to ci (#120)

* Remove google-services.json, update ci config. Add gradle test to check if file created.

* Remove tests code

* Remove redundant dependencies (#121)

* Remove redundant dependencies

* Modify ci config to run ui tests

* Remove custom hostname

* Update test

* Revert ci changes

* Update docs (#123)

* Update dokka html task output directory

* Regenerate docs

* Update dokka

* Update docs

* Remove Kotlin synthetics from demo (#124)

* Remove Kotlin synthetics from demo

* Remove tenant

* Update dependencies (#125)

* Rename root project

* Target & compile sdk version update

* Fix exported tag in demo manifest

* Gradle version update

* Remove redundant gradle import

* Update all plugins, remove redundant dependencies

* Add dokkaHtml output path

* Remove redunant versions var's

* Update demo app dependencies and minSdk version

* Update vgs-show dependencies

* Remove deprecated kotlin-android-extension plugin

* Add versions catalog, update show module

* Add versions catalog, update demo module

* Add dependabot.yml config

* Resolve conflicts

* Apply Detect (#126)

* setup detect

* configure detect on ci

* fix typo

* fix typo

* create detect dir

* fix type

* fix typo

* Add ability to apply previous response (#127)

* Add ability to re-apply success response

* Add apply response demo

* Add demo route.yaml

* Add @MainThread annotation

* Make only VGSResponse.Success parcelable

* Fix tests

* Merge public release v1.2.1 into development (#129)

* Update feature-request.md

* Update issue-report.md

* Update pull_request_template.md

* Update CODEOWNERS

* Version name & code rise

* Update docs

* Remove outdated tests

---------

Co-authored-by: Dima Khludkov <57712402+dmytrokhl@users.noreply.github.com>

* Bump io.mockk:mockk from 1.12.4 to 1.13.5 (#130)

Bumps [io.mockk:mockk](https://github.com/mockk/mockk) from 1.12.4 to 1.13.5.
- [Release notes](https://github.com/mockk/mockk/releases)
- [Commits](https://github.com/mockk/mockk/compare/1.12.4...1.13.5)

---
updated-dependencies:
- dependency-name: io.mockk:mockk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump androidx.test.ext:junit from 1.1.3 to 1.1.5 (#132)

Bumps androidx.test.ext:junit from 1.1.3 to 1.1.5.

---
updated-dependencies:
- dependency-name: androidx.test.ext:junit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.mockito:mockito-inline from 4.8.0 to 5.2.0 (#134)

Bumps [org.mockito:mockito-inline](https://github.com/mockito/mockito) from 4.8.0 to 5.2.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v4.8.0...v5.2.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-inline
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.json:json from 20220924 to 20230618 (#136)

Bumps [org.json:json](https://github.com/douglascrockford/JSON-java) from 20220924 to 20230618.
- [Release notes](https://github.com/douglascrockford/JSON-java/releases)
- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)
- [Commits](https://github.com/douglascrockford/JSON-java/commits)

---
updated-dependencies:
- dependency-name: org.json:json
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump org.mockito:mockito-core from 4.8.0 to 5.4.0 (#140)

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 4.8.0 to 5.4.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v4.8.0...v5.4.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump androidx.core:core-ktx from 1.9.0 to 1.10.1 (#135)

* Bump androidx.core:core-ktx from 1.9.0 to 1.10.1

Bumps androidx.core:core-ktx from 1.9.0 to 1.10.1.

---
updated-dependencies:
- dependency-name: androidx.core:core-ktx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update dependencies

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump androidx.test:runner from 1.4.0 to 1.5.2 (#138)

Bumps androidx.test:runner from 1.4.0 to 1.5.2.

---
updated-dependencies:
- dependency-name: androidx.test:runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump androidx.test:core-ktx from 1.4.0 to 1.5.0 (#139)

Bumps androidx.test:core-ktx from 1.4.0 to 1.5.0.

---
updated-dependencies:
- dependency-name: androidx.test:core-ktx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump androidx.appcompat:appcompat from 1.5.1 to 1.6.1 (#141)

Bumps androidx.appcompat:appcompat from 1.5.1 to 1.6.1.

---
updated-dependencies:
- dependency-name: androidx.appcompat:appcompat
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump com.vanniktech:gradle-maven-publish-plugin from 0.25.2 to 0.25.3 (#143)

Bumps [com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin) from 0.25.2 to 0.25.3.
- [Release notes](https://github.com/vanniktech/gradle-maven-publish-plugin/releases)
- [Changelog](https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.25.2...0.25.3)

---
updated-dependencies:
- dependency-name: com.vanniktech:gradle-maven-publish-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add `VGSImageView` (#137)

* Implement custom image view, default image view attributes, handle loading images from base 64 string

* Update demo, remove ability to set image from xml

* Implement default image view functions

* Add javadoc

* Improve ViewsStore.kt base64 handling

* Add clear & hasImage functions

* Fix javadoc typo

* Fix tests

* Add tests, fix typo

* Update tests

* Implement OnLoadStateChangeListener, refactor VGSException.kt

* Remove hardcoded values

* Bump com.android.tools.build:gradle from 7.4.2 to 8.0.2 (#142)

* Bump com.android.tools.build:gradle from 7.4.2 to 8.0.2

Bumps com.android.tools.build:gradle from 7.4.2 to 8.0.2.

---
updated-dependencies:
- dependency-name: com.android.tools.build:gradle
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update gradle

* Remove duplicate dependency alias

* Update ci image

* Update ci image

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump org.jetbrains.kotlin:kotlin-gradle-plugin from 1.8.22 to 1.9.0 (#145)

Bumps [org.jetbrains.kotlin:kotlin-gradle-plugin](https://github.com/JetBrains/kotlin) from 1.8.22 to 1.9.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/commits)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-gradle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Merge public release v1.3.0 into development (#147)

* Update feature-request.md

* Update issue-report.md

* Update pull_request_template.md

* Update CODEOWNERS

* Public release v1.2.1 (#128)

* Version name & code rise, update docs (#60)

* Version name & code rise, update docs

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Implement is empty function (#63)

* Feature/androidsdk 173 (#62)

* Implement clear text feature

* Update tests

* Add submit test for MainActivity.kt

* Revert "Add submit test for MainActivity.kt"

This reverts commit e8224bc9175661fcbd18f4bbd9fed2bf87ac10ce.

* Feature/androidsdk 182 (#61)

* Implement secure text feature

* Update tests

* Add ability to set custom secure symbol

* Update comments

* Add default options value

* Add VGSSecureTextOptions.kt comments

* Fix demo

* Fix demo

* Add isSecureText function

* Fix comment

* Implement ability to set array of ranges for secure feature

* Update demo app

* Fix tests

* Update naming, add comments

* Update tests

* Update secure text feature

* Finish secure text symbol

* Refactoring: rename field

* Update tests

* fix secureText mode without user range

* update tests

* Update VGSTextRange.kt comments and visibility modifiers

* Update SecureTransformationMethod.kt checks, refactor

Co-authored-by: Dmytro <dmitriy.kosolapenko@vgs.io>

* Feature/androidsdk 172 (#64)

* Add submit test for MainActivity.kt

* Implement secure text check

* Remove test code

* Test circleCi config.yml

* Fix config.yml

* Fix version config.yml

* Test config.yml

* Test config.yml

* Test config.yml

* Remove test code

* Test

* Test

* Remove test code

* Cicrleci with browserstack integration (#65)

Cicrleci with browserstack integration

* Show error message in Logcat when the secure range is not correct (#68)

* Add logcat message if range is not valid

* Fix message

* Disable secure text range error logs if no content

* Code style improve

* Refactoring

* Implement set secure text event (#69)

* Implement set secure text event

* Cache OnSecureTextRangeSet events and invoke on subscribe to VGSShow

* Update tests

* Refactoring

* Refactoring: rename

* Implement setAnalyticsEnabled function (#73)

* Add possibility to scroll content horizontally (#75)

* Fix singleLine

* Add setMovementMethod function to VGSTextView.kt

* Remove log

* Fix comment

* Remove test code

* Release/v1.0.4 (#76)

* Update README.md

* add new script

* remove old script

* Version name & code rise, update docs

* Update build.gradle

* Version name & code rise

* Docs update

* Fix version

* Update docs

* Update dependencies & gradle version

* Update docs

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Firebase Test Lab integration (#70)

* Firebase Test Lab integration

* Test base64 command

* Update files path

* Try gcloud image

* Run separate jobs

* Fix formating

* Update workflow

* Fix required

* Fix required

* Remove sudo

* Revert separate job changes

* Revert separate job changes

* Remove redundant code

* Update

* Test

* Fetch result tests

* Fetch result tests

* Update device list

* Test separate job

* Fix formatting

* Remove docker

* Add artifacts path

* Remove failed job

* Run different steps for build

* Test

* Test

* Fix path

* Test

* Test attach workspace

* Fix

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Add "Run_UI_Test" job filter to run only on master branch

* Change master to main

* Uncomment test code

* Refactor: add aliases

* Update devices list

* Replace device name with id

* Add Run_UI_Test filters to run only on staging branch

* Test get destination branch

* Test

* Test CIRCLE_PULL_REQUEST env variable

* Test ${CIRCLE_PULL_REQUEST##*/} env variable

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test skipping Run_UI_tests on not release branch

* Test skipping Run_UI_tests on not release branch

* Test skipping Run_UI_tests on not release branch

* Revert latest changes

* Add Fragment and ViewPager UI tests (#77)

* Refactor: Move activity demo code to another activity

* Add spalsh screen

* Refactoring

* Refactoring: update packages

* Refactor activity test

* Add empty fragment

* Implement fragment case

* Add fragment UI tests, refactor: improve activity views ids

* Add viewpager activity

* Test token

* Test token

* Test token

* Fix on detach from window

* Implement view pager

* Refactor UI to separate xml files

* Add collect & show fragmenta

* Implement collect and show fragment, implement communication between fragments

* Implement view pager tests

* Restore "ZeroData" image

* Implement Log levels (#81)

* Base logger implementation

* Fix varargs

* Allow nullable values in logs

* Refactor logger, switch all logs to use new logger

* Implement OkHttpClient.kt request/response logs

* Implement HttpUrlClient.kt.kt request/response logs

* Disable analytics logs

* Refactor: rename VGSShowLogger.kt

* Add view upadte logs

* Set VGSShowLogger.Level.NONE for release builds

* Add no subscribed view log message

* Refactoring

* Update comments

* Update comments

* Add isEnabled flag to VGSShowLogger.kt

* Improve comment

* Refactor: replace ':' with '-', improve comments

* Fix host normalized log level

* Add logLevel param in vgs-client header (#83)

* Add logLevel in vgs-client header

* Refactoring

* Revert "Add logLevel param in vgs-client header (#83)" (#84)

This reverts commit 40c8efbb

* Merge release into dev (#86)

* Version name & code rise

* Update docs

* Update kotlin version (#89)

* Update gradle plugin (#88)

* Update gradle version

* Update kotlin version

* Track analytics disabled/enabled (#91)

* Add logLevel in vgs-client header

* Refactoring

* Add analytic disabled/enabled parameter in agent header

* Refactor: function rename

* Implement GET/PUT/PATCH/DELETE Http methods (#92)

* Implement different VGSHttpMethod.kt

* Refactoring

* Update google play json (#96)

* Update google-services.json

* Test

* Remove test code

* Satellite integration (#90)

* Add ability to set localhost as base url to use it with Satellite. Refactoring

* Update Satellite integration implementation

* Merge with dev

* Remove test code

* Add warning message

* Update logging divider

* Update comments and log messages

* Refactoring

* Update Validator.kt dependencies

* Improve ValidatorKtTest.kt

* Add env check

* Refactoring

* Add use satellite flag

* Add vgsSatellite parameter to events

* Refactoring

* Fix comments, remove test code

* Release 1.1.0 (#97)

* Implement optional payload (#99)

* Implement optional payload for VGSShow.request/requestAsync

* Code format

* Add ability to release on Maven (#101)

* Add ability to release on Maven

* Update UI test job

* Update dependencies

* Refactor: rename functions, improve request/response logging (#102)

* Fix/custom view attributes (#103)

* Fix custom view padding

* Fix text hint color & appearance

* Remove redundant attribute set

* Fix tests

* Add ability to remove/clear static headers (#104)

* remove bintray code from repo  (#105)

* remove bintray code from repo

* update pr template

* Add VGSPDFView (#106)

* Add vgsshow-pdf module, add base implementation of VGSPDFView.kt

* Update VGSPDFView.kt

* Add basic attributes implementation, implement save state, add comments.
Fix circular dependency.

* Start implementing share feature

* Remove vgsshow-pdf module, move VGSPDFView.kt to vgsshow module, update comments

* Add ability to share pdf doc

* Naming update to make it consistent with iOS

* Refactoring, Add ability to set request timeout interval

* Update VGSFieldType.PDF comment

* Update VGSView.getFieldType() comment

* Update VGSPDFView.refresh() comment

* Add VGSPDFView.OnPageChangeListener

* Add VGSPDFView.OnRenderStateChangeListener

* Update VGSPDFView.kt comment

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* PDF viewer - demo app (#107)

* Add vgsshow-pdf module, add base implementation of VGSPDFView.kt

* Update VGSPDFView.kt

* Add basic attributes implementation, implement save state, add comments.
Fix circular dependency.

* Start implementing share feature

* Remove vgsshow-pdf module, move VGSPDFView.kt to vgsshow module, update comments

* Add ability to share pdf doc

* Naming update to make it consistent with iOS

* Refactoring, Add ability to set request timeout interval

* Add PDF view dome screen

* Base test setup

* Update VGSFieldType.PDF comment

* Update VGSView.getFieldType() comment

* Update VGSPDFView.refresh() comment

* Add VGSPDFView.OnPageChangeListener

* Add VGSPDFView.OnRenderStateChangeListener

* Update PDFActivity.kt rendering listener

* Update VGSPDFView.kt comment

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* Add demo screen

* Add UI test

* Delete cached PDF files (#108)

* Delete cached PDF files

* Update function call order

* Add Render/ShareContent events (#109)

* Add Render/ShareContent events

* Update analytics

* Resolve conflicts, code format

* Fix device model analytics attribute

* Fix "contentPath" attribute in InitEvent

* Fix "field" attribute in CopyToClipboardEvent

* Refactor SetSecureTextEvent params order

* Remove dependancy on IHttpClient.kt from VGSRequest.kt, remove default paramteres from HttpRequest.kt - make VGSRequest.kt responsible for paramteres(handle default params in only one place) (#110)

* update dependencies (#111)

* Update dependencies & release process (#112)

* Update dependencies versions

* Update release plugin & process

* Fix lint warnings (#113)

* Fix some warnings

* Remove deprecated plugin(actually it's not used at all)

* Fix redundant switch block & deprecation

* Remove share (#114)

* Update dependencies (#115)

* Create dependabot.yml (#118)

* Move google-services.json to ci (#120)

* Remove google-services.json, update ci config. Add gradle test to check if file created.

* Remove tests code

* Remove redundant dependencies (#121)

* Remove redundant dependencies

* Modify ci config to run ui tests

* Remove custom hostname

* Update test

* Revert ci changes

* Update docs (#123)

* Update dokka html task output directory

* Regenerate docs

* Update dokka

* Update docs

* Remove Kotlin synthetics from demo (#124)

* Remove Kotlin synthetics from demo

* Remove tenant

* Update dependencies (#125)

* Rename root project

* Target & compile sdk version update

* Fix exported tag in demo manifest

* Gradle version update

* Remove redundant gradle import

* Update all plugins, remove redundant dependencies

* Add dokkaHtml output path

* Remove redunant versions var's

* Update demo app dependencies and minSdk version

* Update vgs-show dependencies

* Remove deprecated kotlin-android-extension plugin

* Add versions catalog, update show module

* Add versions catalog, update demo module

* Add dependabot.yml config

* Resolve conflicts

* Apply Detect (#126)

* setup detect

* configure detect on ci

* fix typo

* fix typo

* create detect dir

* fix type

* fix typo

* Add ability to apply previous response (#127)

* Add ability to re-apply success response

* Add apply response demo

* Add demo route.yaml

* Add @MainThread annotation

* Make only VGSResponse.Success parcelable

* Fix tests

* Version name & code rise

* Update docs

* Remove outdated tests

---------

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Version name & code rise

* Update docs

* Update README.md

* Merge with master

* Update docs

---------

Co-authored-by: Dima Khludkov <57712402+dmytrokhl@users.noreply.github.com>
Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Improve accessibility features

* Merge public release v1.3.1 into development (#150)

* Update feature-request.md

* Update issue-report.md

* Update pull_request_template.md

* Update CODEOWNERS

* Public release v1.2.1 (#128)

* Version name & code rise, update docs (#60)

* Version name & code rise, update docs

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Implement is empty function (#63)

* Feature/androidsdk 173 (#62)

* Implement clear text feature

* Update tests

* Add submit test for MainActivity.kt

* Revert "Add submit test for MainActivity.kt"

This reverts commit e8224bc9175661fcbd18f4bbd9fed2bf87ac10ce.

* Feature/androidsdk 182 (#61)

* Implement secure text feature

* Update tests

* Add ability to set custom secure symbol

* Update comments

* Add default options value

* Add VGSSecureTextOptions.kt comments

* Fix demo

* Fix demo

* Add isSecureText function

* Fix comment

* Implement ability to set array of ranges for secure feature

* Update demo app

* Fix tests

* Update naming, add comments

* Update tests

* Update secure text feature

* Finish secure text symbol

* Refactoring: rename field

* Update tests

* fix secureText mode without user range

* update tests

* Update VGSTextRange.kt comments and visibility modifiers

* Update SecureTransformationMethod.kt checks, refactor

Co-authored-by: Dmytro <dmitriy.kosolapenko@vgs.io>

* Feature/androidsdk 172 (#64)

* Add submit test for MainActivity.kt

* Implement secure text check

* Remove test code

* Test circleCi config.yml

* Fix config.yml

* Fix version config.yml

* Test config.yml

* Test config.yml

* Test config.yml

* Remove test code

* Test

* Test

* Remove test code

* Cicrleci with browserstack integration (#65)

Cicrleci with browserstack integration

* Show error message in Logcat when the secure range is not correct (#68)

* Add logcat message if range is not valid

* Fix message

* Disable secure text range error logs if no content

* Code style improve

* Refactoring

* Implement set secure text event (#69)

* Implement set secure text event

* Cache OnSecureTextRangeSet events and invoke on subscribe to VGSShow

* Update tests

* Refactoring

* Refactoring: rename

* Implement setAnalyticsEnabled function (#73)

* Add possibility to scroll content horizontally (#75)

* Fix singleLine

* Add setMovementMethod function to VGSTextView.kt

* Remove log

* Fix comment

* Remove test code

* Release/v1.0.4 (#76)

* Update README.md

* add new script

* remove old script

* Version name & code rise, update docs

* Update build.gradle

* Version name & code rise

* Docs update

* Fix version

* Update docs

* Update dependencies & gradle version

* Update docs

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Firebase Test Lab integration (#70)

* Firebase Test Lab integration

* Test base64 command

* Update files path

* Try gcloud image

* Run separate jobs

* Fix formating

* Update workflow

* Fix required

* Fix required

* Remove sudo

* Revert separate job changes

* Revert separate job changes

* Remove redundant code

* Update

* Test

* Fetch result tests

* Fetch result tests

* Update device list

* Test separate job

* Fix formatting

* Remove docker

* Add artifacts path

* Remove failed job

* Run different steps for build

* Test

* Test

* Fix path

* Test

* Test attach workspace

* Fix

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Add "Run_UI_Test" job filter to run only on master branch

* Change master to main

* Uncomment test code

* Refactor: add aliases

* Update devices list

* Replace device name with id

* Add Run_UI_Test filters to run only on staging branch

* Test get destination branch

* Test

* Test CIRCLE_PULL_REQUEST env variable

* Test ${CIRCLE_PULL_REQUEST##*/} env variable

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test skipping Run_UI_tests on not release branch

* Test skipping Run_UI_tests on not release branch

* Test skipping Run_UI_tests on not release branch

* Revert latest changes

* Add Fragment and ViewPager UI tests (#77)

* Refactor: Move activity demo code to another activity

* Add spalsh screen

* Refactoring

* Refactoring: update packages

* Refactor activity test

* Add empty fragment

* Implement fragment case

* Add fragment UI tests, refactor: improve activity views ids

* Add viewpager activity

* Test token

* Test token

* Test token

* Fix on detach from window

* Implement view pager

* Refactor UI to separate xml files

* Add collect & show fragmenta

* Implement collect and show fragment, implement communication between fragments

* Implement view pager tests

* Restore "ZeroData" image

* Implement Log levels (#81)

* Base logger implementation

* Fix varargs

* Allow nullable values in logs

* Refactor logger, switch all logs to use new logger

* Implement OkHttpClient.kt request/response logs

* Implement HttpUrlClient.kt.kt request/response logs

* Disable analytics logs

* Refactor: rename VGSShowLogger.kt

* Add view upadte logs

* Set VGSShowLogger.Level.NONE for release builds

* Add no subscribed view log message

* Refactoring

* Update comments

* Update comments

* Add isEnabled flag to VGSShowLogger.kt

* Improve comment

* Refactor: replace ':' with '-', improve comments

* Fix host normalized log level

* Add logLevel param in vgs-client header (#83)

* Add logLevel in vgs-client header

* Refactoring

* Revert "Add logLevel param in vgs-client header (#83)" (#84)

This reverts commit 40c8efbb

* Merge release into dev (#86)

* Version name & code rise

* Update docs

* Update kotlin version (#89)

* Update gradle plugin (#88)

* Update gradle version

* Update kotlin version

* Track analytics disabled/enabled (#91)

* Add logLevel in vgs-client header

* Refactoring

* Add analytic disabled/enabled parameter in agent header

* Refactor: function rename

* Implement GET/PUT/PATCH/DELETE Http methods (#92)

* Implement different VGSHttpMethod.kt

* Refactoring

* Update google play json (#96)

* Update google-services.json

* Test

* Remove test code

* Satellite integration (#90)

* Add ability to set localhost as base url to use it with Satellite. Refactoring

* Update Satellite integration implementation

* Merge with dev

* Remove test code

* Add warning message

* Update logging divider

* Update comments and log messages

* Refactoring

* Update Validator.kt dependencies

* Improve ValidatorKtTest.kt

* Add env check

* Refactoring

* Add use satellite flag

* Add vgsSatellite parameter to events

* Refactoring

* Fix comments, remove test code

* Release 1.1.0 (#97)

* Implement optional payload (#99)

* Implement optional payload for VGSShow.request/requestAsync

* Code format

* Add ability to release on Maven (#101)

* Add ability to release on Maven

* Update UI test job

* Update dependencies

* Refactor: rename functions, improve request/response logging (#102)

* Fix/custom view attributes (#103)

* Fix custom view padding

* Fix text hint color & appearance

* Remove redundant attribute set

* Fix tests

* Add ability to remove/clear static headers (#104)

* remove bintray code from repo  (#105)

* remove bintray code from repo

* update pr template

* Add VGSPDFView (#106)

* Add vgsshow-pdf module, add base implementation of VGSPDFView.kt

* Update VGSPDFView.kt

* Add basic attributes implementation, implement save state, add comments.
Fix circular dependency.

* Start implementing share feature

* Remove vgsshow-pdf module, move VGSPDFView.kt to vgsshow module, update comments

* Add ability to share pdf doc

* Naming update to make it consistent with iOS

* Refactoring, Add ability to set request timeout interval

* Update VGSFieldType.PDF comment

* Update VGSView.getFieldType() comment

* Update VGSPDFView.refresh() comment

* Add VGSPDFView.OnPageChangeListener

* Add VGSPDFView.OnRenderStateChangeListener

* Update VGSPDFView.kt comment

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* PDF viewer - demo app (#107)

* Add vgsshow-pdf module, add base implementation of VGSPDFView.kt

* Update VGSPDFView.kt

* Add basic attributes implementation, implement save state, add comments.
Fix circular dependency.

* Start implementing share feature

* Remove vgsshow-pdf module, move VGSPDFView.kt to vgsshow module, update comments

* Add ability to share pdf doc

* Naming update to make it consistent with iOS

* Refactoring, Add ability to set request timeout interval

* Add PDF view dome screen

* Base test setup

* Update VGSFieldType.PDF comment

* Update VGSView.getFieldType() comment

* Update VGSPDFView.refresh() comment

* Add VGSPDFView.OnPageChangeListener

* Add VGSPDFView.OnRenderStateChangeListener

* Update PDFActivity.kt rendering listener

* Update VGSPDFView.kt comment

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* Add demo screen

* Add UI test

* Delete cached PDF files (#108)

* Delete cached PDF files

* Update function call order

* Add Render/ShareContent events (#109)

* Add Render/ShareContent events

* Update analytics

* Resolve conflicts, code format

* Fix device model analytics attribute

* Fix "contentPath" attribute in InitEvent

* Fix "field" attribute in CopyToClipboardEvent

* Refactor SetSecureTextEvent params order

* Remove dependancy on IHttpClient.kt from VGSRequest.kt, remove default paramteres from HttpRequest.kt - make VGSRequest.kt responsible for paramteres(handle default params in only one place) (#110)

* update dependencies (#111)

* Update dependencies & release process (#112)

* Update dependencies versions

* Update release plugin & process

* Fix lint warnings (#113)

* Fix some warnings

* Remove deprecated plugin(actually it's not used at all)

* Fix redundant switch block & deprecation

* Remove share (#114)

* Update dependencies (#115)

* Create dependabot.yml (#118)

* Move google-services.json to ci (#120)

* Remove google-services.json, update ci config. Add gradle test to check if file created.

* Remove tests code

* Remove redundant dependencies (#121)

* Remove redundant dependencies

* Modify ci config to run ui tests

* Remove custom hostname

* Update test

* Revert ci changes

* Update docs (#123)

* Update dokka html task output directory

* Regenerate docs

* Update dokka

* Update docs

* Remove Kotlin synthetics from demo (#124)

* Remove Kotlin synthetics from demo

* Remove tenant

* Update dependencies (#125)

* Rename root project

* Target & compile sdk version update

* Fix exported tag in demo manifest

* Gradle version update

* Remove redundant gradle import

* Update all plugins, remove redundant dependencies

* Add dokkaHtml output path

* Remove redunant versions var's

* Update demo app dependencies and minSdk version

* Update vgs-show dependencies

* Remove deprecated kotlin-android-extension plugin

* Add versions catalog, update show module

* Add versions catalog, update demo module

* Add dependabot.yml config

* Resolve conflicts

* Apply Detect (#126)

* setup detect

* configure detect on ci

* fix typo

* fix typo

* create detect dir

* fix type

* fix typo

* Add ability to apply previous response (#127)

* Add ability to re-apply success response

* Add apply response demo

* Add demo route.yaml

* Add @MainThread annotation

* Make only VGSResponse.Success parcelable

* Fix tests

* Version name & code rise

* Update docs

* Remove outdated tests

---------

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Public release v1.3.0 (#146)

* Version name & code rise, update docs (#60)

* Version name & code rise, update docs

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Implement is empty function (#63)

* Feature/androidsdk 173 (#62)

* Implement clear text feature

* Update tests

* Add submit test for MainActivity.kt

* Revert "Add submit test for MainActivity.kt"

This reverts commit e8224bc9175661fcbd18f4bbd9fed2bf87ac10ce.

* Feature/androidsdk 182 (#61)

* Implement secure text feature

* Update tests

* Add ability to set custom secure symbol

* Update comments

* Add default options value

* Add VGSSecureTextOptions.kt comments

* Fix demo

* Fix demo

* Add isSecureText function

* Fix comment

* Implement ability to set array of ranges for secure feature

* Update demo app

* Fix tests

* Update naming, add comments

* Update tests

* Update secure text feature

* Finish secure text symbol

* Refactoring: rename field

* Update tests

* fix secureText mode without user range

* update tests

* Update VGSTextRange.kt comments and visibility modifiers

* Update SecureTransformationMethod.kt checks, refactor

Co-authored-by: Dmytro <dmitriy.kosolapenko@vgs.io>

* Feature/androidsdk 172 (#64)

* Add submit test for MainActivity.kt

* Implement secure text check

* Remove test code

* Test circleCi config.yml

* Fix config.yml

* Fix version config.yml

* Test config.yml

* Test config.yml

* Test config.yml

* Remove test code

* Test

* Test

* Remove test code

* Cicrleci with browserstack integration (#65)

Cicrleci with browserstack integration

* Show error message in Logcat when the secure range is not correct (#68)

* Add logcat message if range is not valid

* Fix message

* Disable secure text range error logs if no content

* Code style improve

* Refactoring

* Implement set secure text event (#69)

* Implement set secure text event

* Cache OnSecureTextRangeSet events and invoke on subscribe to VGSShow

* Update tests

* Refactoring

* Refactoring: rename

* Implement setAnalyticsEnabled function (#73)

* Add possibility to scroll content horizontally (#75)

* Fix singleLine

* Add setMovementMethod function to VGSTextView.kt

* Remove log

* Fix comment

* Remove test code

* Release/v1.0.4 (#76)

* Update README.md

* add new script

* remove old script

* Version name & code rise, update docs

* Update build.gradle

* Version name & code rise

* Docs update

* Fix version

* Update docs

* Update dependencies & gradle version

* Update docs

Co-authored-by: Dmytro Kos <dmitriy.kosolapenko@vgs.io>

* Firebase Test Lab integration (#70)

* Firebase Test Lab integration

* Test base64 command

* Update files path

* Try gcloud image

* Run separate jobs

* Fix formating

* Update workflow

* Fix required

* Fix required

* Remove sudo

* Revert separate job changes

* Revert separate job changes

* Remove redundant code

* Update

* Test

* Fetch result tests

* Fetch result tests

* Update device list

* Test separate job

* Fix formatting

* Remove docker

* Add artifacts path

* Remove failed job

* Run different steps for build

* Test

* Test

* Fix path

* Test

* Test attach workspace

* Fix

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Test

* Add "Run_UI_Test" job filter to run only on master branch

* Change master to main

* Uncomment test code

* Refactor: add aliases

* Update devices list

* Replace device name with id

* Add Run_UI_Test filters to run only on staging branch

* Test get destination branch

* Test

* Test CIRCLE_PULL_REQUEST env variable

* Test ${CIRCLE_PULL_REQUEST##*/} env variable

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test retrieve branch name

* Test skipping Run_UI_tests on not release branch

* Test skipping Run_UI_tests on not release branch

* Test skipping Run_UI_tests on not release branch

* Revert latest changes

* Add Fragment and ViewPager UI tests (#77)

* Refactor: Move activity demo code to another activity

* Add spalsh screen

* Refactoring

* Refactoring: update packages

* Refactor activity test

* Add empty fragment

* Implement fragment case

* Add fragment UI tests, refactor: improve activity views ids

* Add viewpager activity

* Test token

* Test token

* Test token

* Fix on detach from window

* Implement view pager

* Refactor UI to separate xml files

* Add collect & show fragmenta

* Implement collect and show fragment, implement communication between fragments

* Implement view pager tests

* Restore "ZeroData" image

* Implement Log levels (#81)

* Base logger implementation

* Fix varargs

* Allow nullable values in logs

* Refactor logger, switch all logs to use new logger

* Implement OkHttpClient.kt request/response logs

* Implement HttpUrlClient.kt.kt request/response logs

* Disable analytics logs

* Refactor: rename VGSShowLogger.kt

* Add view upadte logs

* Set VGSShowLogger.Level.NONE for release builds

* Add no subscribed view log message

* Refactoring

* Update comments

* Update comments

* Add isEnabled flag to VGSShowLogger.kt

* Improve comment

* Refactor: replace ':' with '-', improve comments

* Fix host normalized log level

* Add logLevel param in vgs-client header (#83)

* Add logLevel in vgs-client header

* Refactoring

* Revert "Add logLevel param in vgs-client header (#83)" (#84)

This reverts commit 40c8efbb

* Merge release into dev (#86)

* Version name & code rise

* Update docs

* Update kotlin version (#89)

* Update gradle plugin (#88)

* Update gradle version

* Update kotlin version

* Track analytics disabled/enabled (#91)

* Add logLevel in vgs-client header

* Refactoring

* Add analytic disabled/enabled parameter in agent header

* Refactor: function rename

* Implement GET/PUT/PATCH/DELETE Http methods (#92)

* Implement different VGSHttpMethod.kt

* Refactoring

* Update google play json (#96)

* Update google-services.json

* Test

* Remove test code

* Satellite integration (#90)

* Add ability to set localhost as base url to use it with Satellite. Refactoring

* Update Satellite integration implementation

* Merge with dev

* Remove test code

* Add warning message

* Update logging divider

* Update comments and log messages

* Refactoring

* Update Validator.kt dependencies

* Improve ValidatorKtTest.kt

* Add env check

* Refactoring

* Add use satellite flag

* Add vgsSatellite parameter to events

* Refactoring

* Fix comments, remove test code

* Release 1.1.0 (#97)

* Implement optional payload (#99)

* Implement optional payload for VGSShow.request/requestAsync

* Code format

* Add ability to release on Maven (#101)

* Add ability to release on Maven

* Update UI test job

* Update dependencies

* Refactor: rename functions, improve request/response logging (#102)

* Fix/custom view attributes (#103)

* Fix custom view padding

* Fix text hint color & appearance

* Remove redundant attribute set

* Fix tests

* Add ability to remove/clear static headers (#104)

* remove bintray code from repo  (#105)

* remove bintray code from repo

* update pr template

* Add VGSPDFView (#106)

* Add vgsshow-pdf module, add base implementation of VGSPDFView.kt

* Update VGSPDFView.kt

* Add basic attributes implementation, implement save state, add comments.
Fix circular dependency.

* Start implementing share feature

* Remove vgsshow-pdf module, move VGSPDFView.kt to vgsshow module, update comments

* Add ability to share pdf doc

* Naming update to make it consistent with iOS

* Refactoring, Add ability to set request timeout interval

* Update VGSFieldType.PDF comment

* Update VGSView.getFieldType() comment

* Update VGSPDFView.refresh() comment

* Add VGSPDFView.OnPageChangeListener

* Add VGSPDFView.OnRenderStateChangeListener

* Update VGSPDFView.kt comment

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* PDF viewer - demo app (#107)

* Add vgsshow-pdf module, add base implementation of VGSPDFView.kt

* Update VGSPDFView.kt

* Add basic attributes implementation, implement save state, add comments.
Fix circular dependency.

* Start implementing share feature

* Remove vgsshow-pdf module, move VGSPDFView.kt to vgsshow module, update comments

* Add ability to share pdf doc

* Naming update to make it consistent with iOS

* Refactoring, Add ability to set request timeout interval

* Add PDF view dome screen

* Base test setup

* Update VGSFieldType.PDF comment

* Update VGSView.getFieldType() comment

* Update VGSPDFView.refresh() comment

* Add VGSPDFView.OnPageChangeListener

* Add VGSPDFView.OnRenderStateChangeListener

* Update PDFActivity.kt rendering listener

* Update VGSPDFView.kt comment

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* Set default share chooser title to PDF_FILE_NAME(document.pdf)

* Add demo screen

* Add UI test

* Delete cached PDF files (#108)

* Delete cached PDF files

* Update function call order

* Add Render/ShareContent events (#109)

* Add Render/ShareContent events

* Update analytics

* Resolve conflicts, code format

* Fix device model analytics attribute

* Fix "contentPath" attribute in InitEvent

* Fix "field" attribute in CopyToClipboardEvent

* Refactor SetSecureTextEvent params order

* Remove dependancy on IHttpClient.kt from VGSRequest.kt, remove default paramteres from HttpRequest.kt - make VGSRequest.kt responsible for paramteres(handle default params in only one place) (#110)

* update dependencies (#111)

* Update dependencies & release process (#112)

* Update dependencies versions

* Update release plugin & process

* Fix lint warnings (#113)

* Fix some warnings

* Remove deprecated plugin(actually it's not used at all)

* Fix redundant switch block & deprecation

* Remove share (#114)

* Update dependencies (#115)

* Create dependabot.yml (#118)

* Move google-services.json to ci (#120)

* Remove google-services.json, update ci config. Add gradle test to check if file created.

* Remove tests code

* Remove redundant dependencies (#121)

* Remove redundant dependencies

* Modify ci config to run ui tests

* Remove custom hostname

* Update test

* Revert ci changes

* Update docs (#123)

* Update dokka html task output directory

* Regenerate docs

* Update dokka

* Update docs

* Remove Kotlin synthetics from demo (#124)

* Remove Kotlin synthetics from demo

* Remove tenant

* Update dependencies (#125)

* Rename root project

* Target & compile sdk version update

* Fix exported tag in demo manifest

* Gradle version update

* Remove redundant gradle import

* Update all plugins, remove redundant dependencies

* Add dokkaHtml output path

* Remove redunant versions var's

* Update demo app dependencies and minSdk version

* Update vgs-show dependencies

* Remove deprecated kotlin-android-extension plugin

* Add versions catalog, update show module

* Add versions catalog, update demo module

* Add dependabot.yml config

* Resolve conflicts

* Apply Detect (#126)

* setup detect

* configure detect on ci

* fix typo

* fix typo

* create detect dir

* fix type

* fix typo

* Add ability to apply previous response (#127)

* Add ability to re-apply success response

* Add apply response demo

* Add demo route.yaml

* Add @MainThread annotation

* Make only VGSResponse.Success parcelable

* Fix tests

* Merge public release v1.2.1 into development (#129)

* Update feature-request.md

* Update issue-report.md

* Update pull_request_template.md

* Update CODEOWNERS

* Version name & code rise

* Update docs

* Remove outdated tests

---------

Co-authored-by: Dima Khludkov <57712402+dmytrokhl@users.noreply.github.com>

* Bump io.mockk:mockk from 1.12.4 to 1.13.5 (#130)

Bumps [io.mockk:mockk](https://github.com/mockk/mockk) from 1.12.4 to 1.13.5.
- [Release notes](https://github.com/mockk/mockk/releases)
- [Commits](https://github.com/mockk/mockk/compare/1.12.4...1.13.5)

---
updated-dependencies:
- dependency-name: io.mockk:mockk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump androidx.test.ext:junit from 1.1.3 to 1.1.5 (#132)

Bumps androidx.test.ext:junit from 1.1.3 to 1.1.5.

---
updated-dependencies:
- dependency-name: androidx.test.ext:junit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.mockito:mockito-inline from 4.8.0 to 5.2.0 (#134)

Bumps [org.mockito:mockito-inline](https://github.com/mockito/mockito) from 4.8.0 to 5.2.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v4.8.0...v5.2.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-inline
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.json:json from 20220924 to 20230618 (#136)

Bumps [org.json:json](https://github.com/douglascrockford/JSON-java) from 20220924 to 20230618.
- [Release notes](https://github.com/douglascrockford/JSON-java/releases)
- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)
- [Commits](https://github.com/douglascrockford/JSON-java/commits)

---
updated-dependencies:
- dependency-name: org.json:json
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump org.mockito:mockito-core from 4.8.0 to 5.4.0 (#140)

Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 4.8.0 to 5.4.0.
- [Release notes](https://github.com/mockito/mockito/releases)
- [Commits](https://github.com/mockito/mockito/compare/v4.8.0...v5.4.0)

---
updated-dependencies:
- dependency-name: org.mockito:mockito-core
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump androidx.core:core-ktx from 1.9.0 to 1.10.1 (#135)

* Bump androidx.core:core-ktx from 1.9.0 to 1.10.1

Bumps androidx.core:core-ktx from 1.9.0 to 1.10.1.

---
updated-dependencies:
- dependency-name: androidx.core:core-ktx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update dependencies

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump androidx.test:runner from 1.4.0 to 1.5.2 (#138)

Bumps androidx.test:runner from 1.4.0 to 1.5.2.

---
updated-dependencies:
- dependency-name: androidx.test:runner
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump androidx.test:core-ktx from 1.4.0 to 1.5.0 (#139)

Bumps androidx.test:core-ktx from 1.4.0 to 1.5.0.

---
updated-dependencies:
- dependency-name: androidx.test:core-ktx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump androidx.appcompat:appcompat from 1.5.1 to 1.6.1 (#141)

Bumps androidx.appcompat:appcompat from 1.5.1 to 1.6.1.

---
updated-dependencies:
- dependency-name: androidx.appcompat:appcompat
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dmytrodmytryshyn <dmytro.dmytryshyn@vgs.io>

* Bump com.vanniktech:gradle-maven-publish-plugin from 0.25.2 to 0.25.3 (#143)

Bumps [com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin) from 0.25.2 to 0.25.3.
- [Release notes](https://github.com/vanniktech/gradle-maven-publish-plugin/releases)
- [Changelog](https://github.com/vanniktech/gradle-maven-publish-plugin/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vanniktech/gradle-maven-publish-plugin/compare/0.25.2...0.25.3)

---
updated-dependencies:
- dependency-name: com.vanniktech:gradle-maven-publish-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add `VGSImageView` (#137)

* Implement custom image view, default image view attributes, handle loading images from base 64 string

* Update demo, remove ability to set image from xml

* Implement default image view functions

* Add javadoc

* Improve ViewsStore.kt base64 handling

* Add clear & hasImage functions

* Fix javadoc typo

* Fix tests

* Add tests, fix typo

* Update tests

* Implement OnLoadStateChangeListener, refactor VGSException.kt

* Remove hardcoded values

* Bump com.android.tools.build:gradle from 7.4.2 to 8.0.2 (#142)

* Bump com.android.tools.build:gradle from 7.4.2 to 8.0.2

Bumps com.android.tools.build:gradle from 7.4.2 to 8.0.2.

---
updated-dependencies:
- dependency-name: com.android.tools.build:gradle
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* Update gradle

* Remove duplicate dependency alias

* Update…
  • Loading branch information
7 people authored Aug 6, 2024
1 parent 75c3eb6 commit 992af2b
Show file tree
Hide file tree
Showing 5 changed files with 255 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ sealed class VGSException : Exception() {
override val message: String?
get() = errorMessage

internal class Custom constructor(
internal class Custom(
override val code: Int = -1,
override val errorMessage: String?
) : VGSException()
Expand Down Expand Up @@ -56,7 +56,7 @@ sealed class VGSException : Exception() {
override val errorMessage: String = "Unexpected Response Data Format"
}

internal class RequestPayload constructor(httpPayloadFormat: VGSHttpBodyFormat) :
internal class RequestPayload(httpPayloadFormat: VGSHttpBodyFormat) :
VGSException() {

override val code: Int
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
package com.verygoodsecurity.vgsshow.core.exception

import com.verygoodsecurity.vgsshow.core.network.client.VGSHttpBodyFormat
import org.junit.Assert.assertEquals
import org.junit.Test

class VGSExceptionTest {

@Test
fun custom_exceptionCodeAndMessageCorrect() {
val code = 1000
val errorMessage = "Test error message"

val exception = VGSException.Custom(code = code, errorMessage = errorMessage)

assertEquals(code, exception.code)
assertEquals(errorMessage, exception.message)
}

@Test
fun urlNotValid_exceptionCodeAndMessageCorrect() {
val code = 1480
val errorMessage = "URL Error: Not valid organization parameters"

val exception = VGSException.UrlNotValid()

assertEquals(code, exception.code)
assertEquals(errorMessage, exception.message)
}

@Test
fun noInternetPermission_exceptionCodeAndMessageCorrect() {
val code = 1481
val errorMessage = "Permission denied (missing INTERNET permission?)"

val exception = VGSException.NoInternetPermission()

assertEquals(code, exception.code)
assertEquals(errorMessage, exception.message)
}

@Test
fun noInternetConnection_exceptionCodeAndMessageCorrect() {
val code = 1482
val errorMessage = "No Internet connection"

val exception = VGSException.NoInternetConnection()

assertEquals(code, exception.code)
assertEquals(errorMessage, exception.message)
}


@Test
fun requestTimeout_exceptionCodeAndMessageCorrect() {
val code = 1483
val errorMessage = "TimeoutException"

val exception = VGSException.RequestTimeout()

assertEquals(code, exception.code)
assertEquals(errorMessage, exception.message)
}


@Test
fun responsePayload_exceptionCodeAndMessageCorrect() {
val code = 1401
val errorMessage = "Unexpected Response Data Format"

val exception = VGSException.ResponsePayload()

assertEquals(code, exception.code)
assertEquals(errorMessage, exception.message)
}

@Test
fun requestPayload_exceptionCodeAndMessageCorrect() {
val code = 1404
val bodyFormat = VGSHttpBodyFormat.JSON
val errorMessage = "Payload is not valid ${bodyFormat.name}"

val exception = VGSException.RequestPayload(bodyFormat)

assertEquals(code, exception.code)
assertEquals(errorMessage, exception.message)
}

@Test
fun imageNotValid_exceptionCodeAndMessageCorrect() {
val code = 1407
val errorMessage = "Base64 data is not valid image"

val exception = VGSException.ImageNotValid()

assertEquals(code, exception.code)
assertEquals(errorMessage, exception.message)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package com.verygoodsecurity.vgsshow.core.network.extension

import com.verygoodsecurity.vgsshow.core.network.client.VGSHttpBodyFormat
import com.verygoodsecurity.vgsshow.core.network.client.VGSHttpMethod
import com.verygoodsecurity.vgsshow.core.network.model.VGSRequest
import com.verygoodsecurity.vgsshow.core.network.model.data.request.JsonRequestData
import org.json.JSONObject
import org.junit.Assert.assertEquals
import org.junit.Assert.assertNull
import org.junit.Test

class MapperKtTest {

@Test
fun toHttpRequest_successfullyMapped() {
val url = "URL"
val path = "path"
val method = VGSHttpMethod.POST
val headers = mapOf("header" to "value")
val extraHeaders = mapOf("extra_header" to "extra_value")
val body = mapOf("key" to "value")
val timeoutInterval = 100L

val request = VGSRequest.Builder(path, method)
.headers(headers)
.body(body)
.requestTimeoutInterval(timeoutInterval)
.build()

val result = request.toHttpRequest(url, extraHeaders)

assertEquals(url, result.url)
assertEquals(path, result.path)
assertEquals(method, result.method)
assertEquals(headers + extraHeaders, result.headers)
assertEquals(JsonRequestData(body).getRawData(), result.data?.getRawData())
assertEquals(timeoutInterval, result.requestTimeoutInterval)
}

@Test
fun toContentType_json_successfullyMapped() {
assertEquals("application/json", VGSHttpBodyFormat.JSON.toContentType())
}

@Test
fun toContentType_form_successfullyMapped() {
assertEquals("application/x-www-form-urlencoded", VGSHttpBodyFormat.X_WWW_FORM_URLENCODED.toContentType())
}

@Test
fun stringToJsonOrNull_validData_successfullyMapped() {
val data = "{\"key\":\"value\"}"

val result = data.toJsonOrNull()

assertEquals(data, result.toString())
}

@Test
fun stringToJsonOrNul_invalidData_nullReturned() {
val data = "{\"key\"=\"value\"}"

val result = data.toJsonOrNull()

assertNull(result)
}

@Test
fun mapToJsonOrNull_validData_successfullyMapped() {
val data = mapOf("key" to "value")
val expected = JSONObject("{\"key\":\"value\"}")

val result = data.toJsonOrNull()

assertEquals(expected.toString(), result.toString())
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.verygoodsecurity.vgsshow.util.extension

import com.verygoodsecurity.vgsshow.core.exception.VGSException
import org.junit.Assert.assertThrows
import org.junit.Test

class ByteArrayKtTest {

@Test
fun decodeBitmap_arrayEmpty_exceptionThrown() {
val byteArray = ByteArray(0)

assertThrows(VGSException.ImageNotValid::class.java) { byteArray.decodeBitmap() }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
package com.verygoodsecurity.vgsshow.util.extension

import org.junit.Assert.assertEquals
import org.junit.Test

class MapKtTest {

@Test
fun plus_successfullyAdded() {
val testMap1 = mapOf(0 to "test0", 1 to "test1")
val testMap2 = mapOf(2 to "test2", 3 to "test3")
val expected = mapOf(0 to "test0", 1 to "test1", 2 to "test2", 3 to "test3")

val result = testMap1 + testMap2

assertEquals(expected, result)
}

@Test
fun plusOnNull_successfullyAdded() {
val testMap1 = null
val testMap2 = mapOf(2 to "test2", 3 to "test3")
val expected = mapOf(2 to "test2", 3 to "test3")

val result = testMap1 + testMap2

assertEquals(expected, result)
}

@Test
fun plusNull_successfullyAdded() {
val testMap1 = mapOf(0 to "test0", 1 to "test1")
val testMap2 = null
val expected = mapOf(0 to "test0", 1 to "test1")

val result = testMap1 + testMap2

assertEquals(expected, result)
}

@Test
fun plusItem_successfullyAdded() {
val map = mapOf(0 to "test0", 1 to "test1")
val item = 2 to "test2"
val expected = mapOf(0 to "test0", 1 to "test1", 2 to "test2")

val result = map.plusItem(item)

assertEquals(expected, result)
}

@Test
fun plusItemOnNull_successfullyAdded() {
val map = null
val item = 2 to "test2"
val expected = mapOf(2 to "test2")

val result = map.plusItem(item)

assertEquals(expected, result)
}
}

0 comments on commit 992af2b

Please sign in to comment.