Skip to content

Commit d473f5b

Browse files
committed
refactor: rename SDAI to PDAI in code and paths
- Rename log tag [SDAI] -> [PDAI] - Rename log file sdaiv1.log -> pdaiv1.log - Update custom model path SDAI -> PDAI - Rename SdaiWorkerFactory -> PdaiWorkerFactory - Update test stubs naming - Add CHANGES.md with 0.7.0 release notes
1 parent 08bca0e commit d473f5b

11 files changed

Lines changed: 95 additions & 17 deletions

File tree

CHANGES.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# What's new in 0.7.0
2+
3+
## Rebrand
4+
- Project renamed from SDAI to **PDAI (Pocket Diffusion)**
5+
- New package namespace: `dev.minios.pdaiv1`
6+
- New app icon and theme
7+
- Updated website and documentation
8+
9+
## Qualcomm QNN Backend
10+
- Added local generation using Qualcomm QNN SDK with NPU acceleration (HTP)
11+
- Supports Snapdragon 8 Gen 1 and newer
12+
- GPU fallback via OpenCL (MNN backend)
13+
- Built-in models from HuggingFace + custom model support
14+
- Multiple resolution presets, configurable scheduler (DPM, Euler)
15+
- Img2Img with denoising support
16+
17+
## Fal.AI Integration
18+
- Added Fal.AI as generation backend with FLUX models support
19+
- Dynamic endpoint configuration from OpenAPI spec
20+
21+
## A1111/Forge Enhancements
22+
- Forge modules support
23+
- ADetailer configuration
24+
- Hires.Fix settings
25+
26+
## Gallery
27+
- Model name now displayed in generation details
28+
- Improved ZoomableImage component
29+
- Better InPaint canvas zoom/pan
30+
- Enhanced navigation
31+
32+
## Performance
33+
- Skip network requests for inactive server sources
34+
- File-based media storage (migrated from Base64)
35+
36+
## Dependencies Update
37+
- Updated compileSdk to 36 (required by new AndroidX libraries)
38+
- **Compose & UI:**
39+
- Compose BOM: 2025.03.01 → 2025.12.01
40+
- Compose Activity: 1.10.1 → 1.12.2
41+
- Compose JUnit: 1.7.8 → 1.10.0
42+
- **AndroidX Libraries:**
43+
- Core-KTX: 1.15.0 → 1.17.0
44+
- AppCompat: 1.7.0 → 1.7.1
45+
- Lifecycle: 2.8.7 → 2.10.0
46+
- Navigation: 2.8.9 → 2.9.6
47+
- WorkManager: 2.10.0 → 2.11.0
48+
- Security Crypto: 1.0.0 → 1.1.0
49+
- ExifInterface: 1.4.0 → 1.4.2
50+
- **Networking:**
51+
- Retrofit: 2.11.0 → 3.0.0
52+
- Gson: 2.12.1 → 2.13.2
53+
- OkHttp: 5.0.0-alpha.14 (kept for compatibility)
54+
- **Dependency Injection:**
55+
- Koin Core: 4.0.4 → 4.1.1
56+
- Koin Compose: 4.0.4 → 4.1.1
57+
- **ML & Processing:**
58+
- ONNX Runtime: 1.21.0 → 1.23.2
59+
- MediaPipe Generator: 0.10.21 → 0.10.26.1
60+
- **Reactive:**
61+
- RxJava: 3.1.10 → 3.1.12
62+
- **Testing:**
63+
- MockK: 1.13.17 → 1.14.7
64+
- Robolectric: 4.14.1 → 4.16
65+
- Coroutines Test: 1.10.1 → 1.10.2
66+
- Turbine: 1.2.0 → 1.2.1
67+
- **Utilities:**
68+
- Material Components: 1.12.0 → 1.13.0
69+
- Apache Commons Lang: 3.17.0 → 3.20.0
70+
- Kotlinx Serialization: 1.8.1 → 1.9.0
71+
- **Build Tools:**
72+
- Added gradle-versions-plugin 0.51.0 for dependency updates tracking
73+
- Added version-catalog-update-plugin 0.8.5 for automated updates
74+
75+
## Other
76+
- Light status bar for app theme
77+
- Updated translations (RU, TR, UK, ZH)
78+
- Unit tests for QNN, Fal.AI, ForgeModules

app/src/main/java/dev/minios/pdaiv1/app/AiStableDiffusionClientApp.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import dev.minios.pdaiv1.domain.di.domainModule
2121
import dev.minios.pdaiv1.network.di.networkModule
2222
import dev.minios.pdaiv1.presentation.di.presentationModule
2323
import dev.minios.pdaiv1.storage.di.databaseModule
24-
import dev.minios.pdaiv1.work.di.SdaiWorkerFactory
24+
import dev.minios.pdaiv1.work.di.PdaiWorkerFactory
2525
import dev.minios.pdaiv1.work.di.backgroundWorkModule
2626
import org.koin.android.ext.android.inject
2727
import org.koin.android.ext.koin.androidContext
@@ -84,7 +84,7 @@ class AiStableDiffusionClientApp : Application() {
8484

8585
private fun initializeWorkManager() {
8686
try {
87-
val workerFactory: SdaiWorkerFactory by inject()
87+
val workerFactory: PdaiWorkerFactory by inject()
8888
val configuration = Configuration.Builder()
8989
.setWorkerFactory(workerFactory)
9090
.build()

core/common/src/main/java/dev/minios/pdaiv1/core/common/file/FileProviderDescriptor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package dev.minios.pdaiv1.core.common.file
22

3-
const val LOCAL_DIFFUSION_CUSTOM_PATH = "/storage/emulated/0/Download/SDAI/model"
3+
const val LOCAL_DIFFUSION_CUSTOM_PATH = "/storage/emulated/0/Download/PDAI/model"
44

55
interface FileProviderDescriptor {
66
val providerPath: String

core/common/src/main/java/dev/minios/pdaiv1/core/common/log/FileLoggingTree.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,9 @@ class FileLoggingTree : Timber.Tree(), KoinComponent {
8080

8181
companion object {
8282
private const val LOGGER_TIMESTAMP_FORMAT = "dd.MM.yyyy HH:mm:SS"
83-
private const val LOGGER_DEFAULT_TAG = "[SDAI]"
83+
private const val LOGGER_DEFAULT_TAG = "[PDAI]"
8484

85-
const val LOGGER_FILENAME = "sdaiv1.log"
85+
const val LOGGER_FILENAME = "pdaiv1.log"
8686

8787
fun clearLog(fileProviderDescriptor: FileProviderDescriptor) {
8888
val cacheDirectory = File(fileProviderDescriptor.logsCacheDirPath)

core/notification/src/main/java/dev/minios/pdaiv1/core/notification/PushNotificationManagerImpl.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ internal class PushNotificationManagerImpl(
5555
body: UiText?,
5656
block: NotificationCompat.Builder.() -> Unit
5757
): Notification = with(
58-
NotificationCompat.Builder(context, SDAI_NOTIFICATION_CHANNEL_ID)
58+
NotificationCompat.Builder(context, PDAI_NOTIFICATION_CHANNEL_ID)
5959
) {
6060
setSmallIcon(R.drawable.ic_notification)
6161
setContentTitle(title.asString(context))
@@ -76,13 +76,13 @@ internal class PushNotificationManagerImpl(
7676

7777
override fun createNotificationChannel() {
7878
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
79-
if (manager.getNotificationChannel(SDAI_NOTIFICATION_CHANNEL_ID) == null) {
79+
if (manager.getNotificationChannel(PDAI_NOTIFICATION_CHANNEL_ID) == null) {
8080
debugLog("Creating notification channel")
8181

8282
manager.createNotificationChannel(
8383
NotificationChannel(
84-
SDAI_NOTIFICATION_CHANNEL_ID,
85-
"SDAI Notifications",
84+
PDAI_NOTIFICATION_CHANNEL_ID,
85+
"PDAI Notifications",
8686
NotificationManager.IMPORTANCE_HIGH,
8787
).also { channel ->
8888
channel.lockscreenVisibility = Notification.VISIBILITY_PUBLIC
@@ -101,6 +101,6 @@ internal class PushNotificationManagerImpl(
101101
}
102102

103103
companion object {
104-
private const val SDAI_NOTIFICATION_CHANNEL_ID = "SDAI_NOTIFICATION_CHANNEL"
104+
private const val PDAI_NOTIFICATION_CHANNEL_ID = "PDAI_NOTIFICATION_CHANNEL"
105105
}
106106
}

feature/auth/src/main/java/dev/minios/pdaiv1/feature/auth/crypto/CryptoProviderImpl.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ class CryptoProviderImpl(private val context: Context) : CryptoProvider {
2020
private fun getMasterKeyAlias() = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)
2121

2222
companion object {
23-
private const val KEY_PREFERENCE_AUTHORIZATION = "sdai_authorization_preference"
23+
private const val KEY_PREFERENCE_AUTHORIZATION = "pdai_authorization_preference"
2424
}
2525
}

feature/work/src/main/java/dev/minios/pdaiv1/work/di/BackgroundWorkModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ val backgroundWorkModule = module {
1818
WorkManagerProvider { WorkManager.getInstance(androidApplication()) }
1919
}
2020

21-
factoryOf(::SdaiWorkerFactory) binds arrayOf(SdaiWorkerFactory::class, WorkerFactory::class)
21+
factoryOf(::PdaiWorkerFactory) binds arrayOf(PdaiWorkerFactory::class, WorkerFactory::class)
2222
singleOf(::BackgroundWorkObserverImpl) bind BackgroundWorkObserver::class
2323
factoryOf(::BackgroundTaskManagerImpl) bind BackgroundTaskManager::class
2424
}

feature/work/src/main/java/dev/minios/pdaiv1/work/di/SdaiWorkerFactory.kt renamed to feature/work/src/main/java/dev/minios/pdaiv1/work/di/PdaiWorkerFactory.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import dev.minios.pdaiv1.work.task.FalAiTask
1919
import dev.minios.pdaiv1.work.task.ImageToImageTask
2020
import dev.minios.pdaiv1.work.task.TextToImageTask
2121

22-
class SdaiWorkerFactory(
22+
class PdaiWorkerFactory(
2323
private val backgroundWorkObserver: BackgroundWorkObserver,
2424
private val pushNotificationManager: PushNotificationManager,
2525
private val preferenceManager: PreferenceManager,

presentation/src/test/java/dev/minios/pdaiv1/presentation/core/CoreGenerationMviViewModelTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ abstract class CoreGenerationMviViewModelTest<V : GenerationMviViewModel<*, *, *
4949
protected val stubMainRouter = mockk<MainRouter>()
5050
protected val stubDrawerRouter = mockk<DrawerRouter>()
5151
protected val stubDimensionValidator = mockk<DimensionValidator>()
52-
protected val stubSdaiPushNotificationManager = mockk<PushNotificationManager>()
52+
protected val stubPdaiPushNotificationManager = mockk<PushNotificationManager>()
5353

5454
protected val stubAcquireWakelockUseCase = mockk<AcquireWakelockUseCase>()
5555
protected val stubReleaseWakelockUseCase = mockk<ReleaseWakeLockUseCase>()

presentation/src/test/java/dev/minios/pdaiv1/presentation/screen/img2img/ImageToImageViewModelTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class ImageToImageViewModelTest : CoreGenerationMviViewModelTest<ImageToImageVie
7070
base64ToBitmapConverter = stubBase64ToBitmapConverter,
7171
preferenceManager = stubPreferenceManager,
7272
schedulersProvider = stubCustomSchedulers,
73-
notificationManager = stubSdaiPushNotificationManager,
73+
notificationManager = stubPdaiPushNotificationManager,
7474
wakeLockInterActor = stubWakeLockInterActor,
7575
inPaintStateProducer = stubInPaintStateProducer,
7676
mainRouter = stubMainRouter,

0 commit comments

Comments
 (0)