# Changelog

All notable changes to the Face Detection TADI SDK Flutter plugin will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.0.8] - 2026-01-10

### Added
- Comprehensive unit tests for model classes (31 tests total)
- GitHub Actions CI/CD pipeline with automated testing, analysis, and builds
- SECURITY.md with vulnerability reporting guidelines and security best practices
- Test coverage for `SdkConfig`, `FaceDetectionResult`, and all nested models
- `bankId` parameter in `SdkConfig` for bank identifier tracking

### Fixed
- **iOS**: Enabled `bankId` parameter support (was commented out, but native SDK supports it)
- **CRITICAL**: Removed hardcoded credentials from README documentation
- **CRITICAL**: Fixed failing unit tests - added missing mock implementation
- Code quality issues: replaced `print()` with `debugPrint()` in example app
- Documentation comment formatting issues (HTML escaping in dartdoc)
- Version inconsistencies in README (updated from 0.0.1 to 0.0.8)
- minSdk discrepancy between README (API 21) and build.gradle (API 24)

### Changed
- Updated README to reflect bundled native SDK (no external credentials needed)
- Updated podspec with correct version (0.0.8) and proper contact information
- Improved Android setup instructions (removed misleading Nexus repository section)
- Platform support table now correctly shows Android API 24 minimum
- `bankId` parameter is now documented and fully supported on both iOS and Android platforms

### Improved
- All static analysis issues resolved (0 warnings, 0 errors)
- Code now passes `dart analyze` with `--fatal-infos` flag
- Better security documentation and best practices
- CI/CD automation for quality assurance

## [0.0.7] - 2025-12-XX

### Changed
- Updated native Android SDK to version 1.0.8

## [0.0.6] - 2025-XX-XX

### Changed
- Minor improvements and bug fixes

## [0.0.5] - 2025-XX-XX

### Changed
- Internal improvements

## [0.0.4] - 2025-XX-XX

### Changed
- Bug fixes and stability improvements

## [0.0.3] - 2024-12-XX

### Changed
- Updated dependencies and configurations

## [0.0.2] - 2024-12-19

### Fixed
- **BREAKING FIX**: Resolved critical AAR dependency issue that prevented plugin from working when installed from pub.dev
- Extracted and integrated facedetectsdk AAR contents directly into plugin:
  - Converted AAR to JAR and patched bytecode to redirect R class references
  - Merged resources (layouts, drawables, values, network security config) into plugin
  - Merged AndroidManifest.xml permissions and activity declarations
  - Integrated ProGuard consumer rules for proper code shrinking
- Added AndroidX support via gradle.properties
- Plugin now works correctly for all users installing from pub.dev, not just in example project

### Technical Changes
- Changed from `implementation(files("libs/facedetectsdk.aar"))` to `implementation(files("libs/facedetectsdk-patched.jar"))`
- Applied bytecode patching to redirect resource references from `uz.detectface.facedetectsdk.R` to `uz.tadi.facedetect_tadi_sdk.R`
- All resources now bundled within plugin package
- Updated build configuration to support AndroidX dependencies

## [0.0.1] - 2024-12-11

### Added
- Initial release of Face Detection TADI SDK Flutter plugin
- Integration with native Android SDK (uz.tadi:facedetectsdk:1.0.4)
- Integration with native iOS SDK (TGFISBIN framework v1.0.5)
- Face detection and liveness verification
- Biometric identity verification
- Multi-language support (English, Russian, Uzbek)
- Two result formats: Flat (simple) and Nested (structured)
- Security features:
  - JWT signature validation support
  - Nonce-based challenge-response
  - Root/Jailbreak detection
  - Mutual SSL/TLS support
- UI customization options:
  - Custom logo support
  - Font family customization
  - Color theming
  - Input styling
  - Layout scaling
- Comprehensive error handling with PlatformException
- Base64 encoded photo, signature, and capture results
- Support for additional documents and foreign documents
- Example app demonstrating all features
- Complete documentation for both platforms

### Platform Support
- Android: API 21 (Android 5.0) and above
- iOS: iOS 13.0 and above

### Dependencies
#### Android
- uz.tadi:facedetectsdk:1.0.4
- Google ML Kit Face Detection
- AndroidX Camera libraries
- Kotlin reflection
- kotlinx-serialization-json

#### iOS
- TGFISBIN.xcframework v1.0.5
- Swift 5.0+

### Known Issues
- Nested result format requires additional mapping in the Flutter layer
- iOS framework must be manually integrated (not available via CocoaPods public repository)
