From 5d60f62c2007abf7ad521860b61cd9b2732598b9 Mon Sep 17 00:00:00 2001 From: Amir Mousavi Date: Tue, 16 Jun 2026 00:18:45 +0330 Subject: [PATCH] Feat(P3): Modularize module and add Pardakht Novin support - Split `p3` module into `p3_pardakht_novin` and `p3_sepehr` sub-modules - Create `pardakht_novin_app` module with dedicated WebView and Hilt configuration - Rename P3 services, printers, and models to be vendor-specific (e.g., `P3PardakhtNovinService`) - Add `p3_pardakht_novin` and `p3_sepehr` product flavors to `tis_app` and `stage_app` - Update project settings and build configurations to include the new modular structure - Implement Sepehr-specific POS and Printer services in the new module --- .idea/compiler.xml | 4 +- .idea/deploymentTargetSelector.xml | 47 ++- .idea/dictionaries/project.xml | 7 + .idea/gradle.xml | 3 + .idea/kotlinc.xml | 7 + .idea/markdown.xml | 8 + .idea/planningMode.xml | 1 + build.gradle.kts | 1 + gradle/libs.versions.toml | 2 + p3/{ => p3_pardakht_novin}/.gitignore | 0 p3/{ => p3_pardakht_novin}/build.gradle.kts | 2 +- p3/{ => p3_pardakht_novin}/consumer-rules.pro | 0 .../libs/classes-2.1.17.jar | Bin .../libs/platform_sdk_v2.3.706.jar | Bin p3/{ => p3_pardakht_novin}/proguard-rules.pro | 0 .../ExampleInstrumentedTest.kt | 2 +- .../src/main/AndroidManifest.xml | 0 .../P3PardakhtNovinIapPosService.kt} | 9 +- .../P3PardakhtNovinPrinter.kt | 335 +++++++++++++++ .../P3PardakhtNovinPrinterHelper.kt | 173 ++++++++ .../P3PardakhtNovinService.kt | 47 +++ .../di/P3PardakhtNovinModule.kt | 11 + .../models/IapAccountSplit.kt | 2 +- .../src/main/res/font/font.ttf | Bin .../p3_pardakht_novin}/ExampleUnitTest.kt | 2 +- p3/p3_sepehr/.gitignore | 1 + p3/p3_sepehr/build.gradle.kts | 49 +++ p3/p3_sepehr/consumer-rules.pro | 0 p3/p3_sepehr/libs/classes-2.1.17.jar | Bin 0 -> 319622 bytes p3/p3_sepehr/libs/platform_sdk_v2.3.706.jar | Bin 0 -> 21988 bytes p3/p3_sepehr/proguard-rules.pro | 21 + .../ExampleInstrumentedTest.kt | 24 ++ p3/p3_sepehr/src/main/AndroidManifest.xml | 5 + .../P3SepehrIapPosService.kt | 78 ++++ .../p3_pardakht_novin/P3SepehrPrinter.kt} | 4 +- .../P3SepehrPrinterHelper.kt} | 4 +- .../p3_pardakht_novin/P3SepehrService.kt} | 14 +- .../p3_pardakht_novin/di/P3SepehrModule.kt} | 10 +- .../models/IapAccountSplit.kt | 6 + p3/p3_sepehr/src/main/res/font/font.ttf | Bin 0 -> 60392 bytes .../p3_pardakht_novin/ExampleUnitTest.kt | 17 + pardakht_novin_app/.gitignore | 1 + pardakht_novin_app/build.gradle.kts | 92 +++++ pardakht_novin_app/proguard-rules.pro | 21 + .../ExampleInstrumentedTest.kt | 24 ++ .../src/main/AndroidManifest.xml | 48 +++ .../src/main/ic_launcher-playstore.png | Bin 0 -> 118474 bytes .../ui/PardakhtNovinMainActivity.kt | 69 ++++ .../pardakht_novin_app/ui/PspApplication.kt | 13 + .../ui/screen/PardakhtNovinWebViewScreen.kt | 101 +++++ .../ui/viewmodel/WebViewModel.kt | 57 +++ .../res/drawable/ic_launcher_background.xml | 170 ++++++++ .../res/drawable/ic_launcher_foreground.xml | 30 ++ .../main/res/drawable/ic_pardakht_novin.xml | 381 ++++++++++++++++++ .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 2070 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 0 -> 4838 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 3696 bytes .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 1310 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 0 -> 2600 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 2324 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 3166 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 0 -> 7612 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 5532 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 5992 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 0 -> 13988 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 10202 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 9220 bytes .../ic_launcher_foreground.webp | Bin 0 -> 21944 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 15352 bytes .../src/main/res/values/colors.xml | 10 + .../res/values/ic_launcher_background.xml | 4 + .../src/main/res/values/strings.xml | 3 + .../src/main/res/values/themes.xml | 5 + .../java/com/example/tis_app/di/PspModule.kt | 8 +- .../java/com/example/tis_sep/di/PspModule.kt | 20 + .../java/com/example/tis_sep/di/PspModule.kt | 24 ++ .../pardakht_novin_app/ExampleUnitTest.kt | 17 + settings.gradle.kts | 7 +- stage_app/build.gradle.kts | 27 +- .../java/com/example/tis_app/di/PspModule.kt | 4 +- tis_app/build.gradle.kts | 29 +- .../tis_app/screen/TisWebViewScreen.kt | 2 +- .../java/com/example/tis_app/di/PspModule.kt | 20 + 85 files changed, 2031 insertions(+), 64 deletions(-) create mode 100644 .idea/dictionaries/project.xml create mode 100644 .idea/kotlinc.xml create mode 100644 .idea/markdown.xml rename p3/{ => p3_pardakht_novin}/.gitignore (100%) rename p3/{ => p3_pardakht_novin}/build.gradle.kts (96%) rename p3/{ => p3_pardakht_novin}/consumer-rules.pro (100%) rename p3/{ => p3_pardakht_novin}/libs/classes-2.1.17.jar (100%) rename p3/{ => p3_pardakht_novin}/libs/platform_sdk_v2.3.706.jar (100%) rename p3/{ => p3_pardakht_novin}/proguard-rules.pro (100%) rename p3/{src/androidTest/java/com/example/p3 => p3_pardakht_novin/src/androidTest/java/com/example/p3_pardakht_novin}/ExampleInstrumentedTest.kt (94%) rename p3/{ => p3_pardakht_novin}/src/main/AndroidManifest.xml (100%) rename p3/{src/main/java/com/example/p3/IapPosService.kt => p3_pardakht_novin/src/main/java/com/example/p3_pardakht_novin/P3PardakhtNovinIapPosService.kt} (95%) create mode 100644 p3/p3_pardakht_novin/src/main/java/com/example/p3_pardakht_novin/P3PardakhtNovinPrinter.kt create mode 100644 p3/p3_pardakht_novin/src/main/java/com/example/p3_pardakht_novin/P3PardakhtNovinPrinterHelper.kt create mode 100644 p3/p3_pardakht_novin/src/main/java/com/example/p3_pardakht_novin/P3PardakhtNovinService.kt create mode 100644 p3/p3_pardakht_novin/src/main/java/com/example/p3_pardakht_novin/di/P3PardakhtNovinModule.kt rename p3/{src/main/java/com/example/p3 => p3_pardakht_novin/src/main/java/com/example/p3_pardakht_novin}/models/IapAccountSplit.kt (61%) rename p3/{ => p3_pardakht_novin}/src/main/res/font/font.ttf (100%) rename p3/{src/test/java/com/example/p3 => p3_pardakht_novin/src/test/java/com/example/p3_pardakht_novin}/ExampleUnitTest.kt (89%) create mode 100644 p3/p3_sepehr/.gitignore create mode 100644 p3/p3_sepehr/build.gradle.kts create mode 100644 p3/p3_sepehr/consumer-rules.pro create mode 100644 p3/p3_sepehr/libs/classes-2.1.17.jar create mode 100644 p3/p3_sepehr/libs/platform_sdk_v2.3.706.jar create mode 100644 p3/p3_sepehr/proguard-rules.pro create mode 100644 p3/p3_sepehr/src/androidTest/java/com/example/p3_pardakht_novin/ExampleInstrumentedTest.kt create mode 100644 p3/p3_sepehr/src/main/AndroidManifest.xml create mode 100644 p3/p3_sepehr/src/main/java/com/example/p3_pardakht_novin/P3SepehrIapPosService.kt rename p3/{src/main/java/com/example/p3/P3Printer.kt => p3_sepehr/src/main/java/com/example/p3_pardakht_novin/P3SepehrPrinter.kt} (99%) rename p3/{src/main/java/com/example/p3/PrinterHelper.kt => p3_sepehr/src/main/java/com/example/p3_pardakht_novin/P3SepehrPrinterHelper.kt} (98%) rename p3/{src/main/java/com/example/p3/P3Service.kt => p3_sepehr/src/main/java/com/example/p3_pardakht_novin/P3SepehrService.kt} (72%) rename p3/{src/main/java/com/example/p3/di/P3Module.kt => p3_sepehr/src/main/java/com/example/p3_pardakht_novin/di/P3SepehrModule.kt} (66%) create mode 100644 p3/p3_sepehr/src/main/java/com/example/p3_pardakht_novin/models/IapAccountSplit.kt create mode 100644 p3/p3_sepehr/src/main/res/font/font.ttf create mode 100644 p3/p3_sepehr/src/test/java/com/example/p3_pardakht_novin/ExampleUnitTest.kt create mode 100644 pardakht_novin_app/.gitignore create mode 100644 pardakht_novin_app/build.gradle.kts create mode 100644 pardakht_novin_app/proguard-rules.pro create mode 100644 pardakht_novin_app/src/androidTest/java/com/example/pardakht_novin_app/ExampleInstrumentedTest.kt create mode 100644 pardakht_novin_app/src/main/AndroidManifest.xml create mode 100644 pardakht_novin_app/src/main/ic_launcher-playstore.png create mode 100644 pardakht_novin_app/src/main/java/com/example/pardakht_novin_app/ui/PardakhtNovinMainActivity.kt create mode 100644 pardakht_novin_app/src/main/java/com/example/pardakht_novin_app/ui/PspApplication.kt create mode 100644 pardakht_novin_app/src/main/java/com/example/pardakht_novin_app/ui/screen/PardakhtNovinWebViewScreen.kt create mode 100644 pardakht_novin_app/src/main/java/com/example/pardakht_novin_app/ui/viewmodel/WebViewModel.kt create mode 100644 pardakht_novin_app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 pardakht_novin_app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 pardakht_novin_app/src/main/res/drawable/ic_pardakht_novin.xml create mode 100644 pardakht_novin_app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 pardakht_novin_app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 pardakht_novin_app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp create mode 100644 pardakht_novin_app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 pardakht_novin_app/src/main/res/values/colors.xml create mode 100644 pardakht_novin_app/src/main/res/values/ic_launcher_background.xml create mode 100644 pardakht_novin_app/src/main/res/values/strings.xml create mode 100644 pardakht_novin_app/src/main/res/values/themes.xml rename {tis_app/src/p3 => pardakht_novin_app/src/p3_pardakht_novin}/java/com/example/tis_app/di/PspModule.kt (55%) create mode 100644 pardakht_novin_app/src/ps4/java/com/example/tis_sep/di/PspModule.kt create mode 100644 pardakht_novin_app/src/standard/java/com/example/tis_sep/di/PspModule.kt create mode 100644 pardakht_novin_app/src/test/java/com/example/pardakht_novin_app/ExampleUnitTest.kt create mode 100644 tis_app/src/p3_pardakht_novin/java/com/example/tis_app/di/PspModule.kt diff --git a/.idea/compiler.xml b/.idea/compiler.xml index b86273d..1b96c39 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,8 @@ - + + + \ No newline at end of file diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index de575c8..a2a5c8b 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -6,20 +6,29 @@