diff --git a/README.md b/README.md index 102b9a6..1b39db3 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ -# 📱 Rock QR Code Ecosystem +# 📱 Chamo QR Code Ecosystem A high-fidelity, dual-platform QR Code suite delivering a premium user experience across both an **offline-first Android client** (Jetpack Compose) and a **luxury companion web app** (GitHub Pages / PWA). -[![Rock QR Code CI](https://github.com/SayanthRock/Rock-QR-Code/actions/workflows/build.yml/badge.svg)](https://github.com/SayanthRock/Rock-QR-Code/actions/workflows/build.yml) +[![Chamo QR Code CI](https://github.com/SayanthRock/Chamo-QR/actions/workflows/build.yml/badge.svg)](https://github.com/SayanthRock/Chamo-QR/actions/workflows/build.yml) --- ## 🌐 Live Companion Web App Experience the premium web suite instantly: -👉 **[Try the Rock QR Web Console](https://sayanthrock.github.io/Rock-QR-Code/)** +👉 **[Try the Chamo QR Web Console](https://sayanthrock.github.io/Chamo-QR/)** *Fully installable Progressive Web App (PWA) with complete offline support, real-time dynamic web links, custom metadata tags, and integrated camera scanner lens.* diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c3f97f4..c3f6bd7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -12,7 +12,7 @@ android { compileSdk { version = release(36) { minorApiLevel = 1 } } defaultConfig { - applicationId = "com.aistudio.rockqr.qzlypm" + applicationId = "com.aistudio.chamoqr.qzlypm" minSdk = 24 targetSdk = 36 versionCode = 1 @@ -146,11 +146,11 @@ abstract class CopyApkTask : DefaultTask() { val src = sourceApk.get().asFile val destDir = targetDir.get().asFile if (src.exists()) { - src.copyTo(File(destDir, "Rock QR.apk"), overwrite = true) - src.copyTo(File(destDir, "Rock_QR.apk"), overwrite = true) src.copyTo(File(destDir, "Chamo QR.apk"), overwrite = true) src.copyTo(File(destDir, "Chamo_QR.apk"), overwrite = true) - println("✅ Copied APK to root directory as both 'Rock QR.apk' and 'Chamo QR.apk'") + src.copyTo(File(destDir, "Chamo QR.apk"), overwrite = true) + src.copyTo(File(destDir, "Chamo_QR.apk"), overwrite = true) + println("✅ Copied APK to root directory as both 'Chamo QR.apk' and 'Chamo QR.apk'") } } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 712693a..7abceb8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -37,7 +37,7 @@ - + diff --git a/app/src/main/java/com/example/MainActivity.kt b/app/src/main/java/com/example/MainActivity.kt index 7bdd9e5..2e2d8ea 100644 --- a/app/src/main/java/com/example/MainActivity.kt +++ b/app/src/main/java/com/example/MainActivity.kt @@ -92,7 +92,7 @@ class MainActivity : ComponentActivity() { private fun handleIntent(intent: android.content.Intent?, viewModel: QRViewModel) { intent?.dataString?.let { dataStr -> - if (dataStr.contains("sayanthrock.github.io/Rock-QR-Code")) { + if (dataStr.contains("sayanthrock.github.io/Chamo-QR")) { viewModel.importFromDeepLink(dataStr) intent.data = null } @@ -231,7 +231,7 @@ fun LocalSettingsScreen( Spacer(modifier = Modifier.height(12.dp)) Text( - text = "ROCK QR CODE", + text = "Chamo QR", fontSize = 20.sp, fontWeight = FontWeight.ExtraBold, color = Color.White @@ -381,7 +381,7 @@ fun LocalSettingsScreen( title = "Check for updates", onClick = { HapticUtils.vibrate(context, 20) - viewModel.showToast("Rock QR is up to date (v1.0.8)", CustomToastType.SUCCESS) + viewModel.showToast("Chamo QR is up to date (v1.0.8)", CustomToastType.SUCCESS) } ) } @@ -398,10 +398,10 @@ fun LocalSettingsScreen( HapticUtils.vibrate(context, 20) val shareIntent = android.content.Intent(android.content.Intent.ACTION_SEND).apply { type = "text/plain" - putExtra(android.content.Intent.EXTRA_SUBJECT, "ROCK QR CODE") - putExtra(android.content.Intent.EXTRA_TEXT, "Check out ROCK QR CODE app: https://sayanthrock.github.io/Rock-QR-Code") + putExtra(android.content.Intent.EXTRA_SUBJECT, "Chamo QR") + putExtra(android.content.Intent.EXTRA_TEXT, "Check out Chamo QR app: https://sayanthrock.github.io/Chamo-QR") } - context.startActivity(android.content.Intent.createChooser(shareIntent, "Share ROCK QR CODE")) + context.startActivity(android.content.Intent.createChooser(shareIntent, "Share Chamo QR")) } ) HorizontalDivider(color = Color(0xFF27272A)) @@ -410,7 +410,7 @@ fun LocalSettingsScreen( title = "Star the project", onClick = { HapticUtils.vibrate(context, 20) - val browserIntent = android.content.Intent(android.content.Intent.ACTION_VIEW, android.net.Uri.parse("https://github.com/sayanthrock/Rock-QR-Code")) + val browserIntent = android.content.Intent(android.content.Intent.ACTION_VIEW, android.net.Uri.parse("https://github.com/sayanthrock/Chamo-QR")) context.startActivity(browserIntent) } ) diff --git a/app/src/main/java/com/example/data/api/QrBackendService.kt b/app/src/main/java/com/example/data/api/QrBackendService.kt index 43ca80d..a9da8da 100644 --- a/app/src/main/java/com/example/data/api/QrBackendService.kt +++ b/app/src/main/java/com/example/data/api/QrBackendService.kt @@ -16,7 +16,7 @@ data class CreateCodeRequest( data class CreateCodeResponse( val code: String, // Hashed or shortened path code (e.g. "x7p3a") - val shortUrl: String, // Fully qualified dynamic redirection URL (e.g. "https://sayanthrock.github.io/Rock-QR-Code/redirect?code=x7p3a") + val shortUrl: String, // Fully qualified dynamic redirection URL (e.g. "https://sayanthrock.github.io/Chamo-QR/redirect?code=x7p3a") val success: Boolean ) diff --git a/app/src/main/java/com/example/ui/screens/GenerateScreen.kt b/app/src/main/java/com/example/ui/screens/GenerateScreen.kt index 136a40d..579fd96 100644 --- a/app/src/main/java/com/example/ui/screens/GenerateScreen.kt +++ b/app/src/main/java/com/example/ui/screens/GenerateScreen.kt @@ -120,7 +120,7 @@ fun GenerateScreen( ) { Column { Text( - text = "ROCK QR CODE", + text = "Chamo QR", fontSize = 24.sp, fontWeight = FontWeight.ExtraBold, color = Color.White, @@ -262,7 +262,7 @@ fun GenerateScreen( val rawContent = viewModel.inputText.value.ifEmpty { viewModel.wifiSsid.value } val title = viewModel.inputTitle.value.ifEmpty { "Shared Code" } val type = viewModel.inputType.value - val webLink = "https://sayanthrock.github.io/Rock-QR-Code/share?content=${android.net.Uri.encode(rawContent)}&type=$type&title=${android.net.Uri.encode(title)}" + val webLink = "https://sayanthrock.github.io/Chamo-QR/share?content=${android.net.Uri.encode(rawContent)}&type=$type&title=${android.net.Uri.encode(title)}" val intent = android.content.Intent(android.content.Intent.ACTION_SEND).apply { this.type = "text/plain" diff --git a/app/src/main/java/com/example/ui/screens/ScanScreen.kt b/app/src/main/java/com/example/ui/screens/ScanScreen.kt index d99589d..da878f0 100644 --- a/app/src/main/java/com/example/ui/screens/ScanScreen.kt +++ b/app/src/main/java/com/example/ui/screens/ScanScreen.kt @@ -315,7 +315,7 @@ fun ScanScreen( ) { Column { Text( - text = "ROCK QR CODE", + text = "Chamo QR", fontSize = 24.sp, fontWeight = FontWeight.ExtraBold, color = Color.White, diff --git a/app/src/main/java/com/example/ui/theme/Color.kt b/app/src/main/java/com/example/ui/theme/Color.kt index 2bab600..182db01 100644 --- a/app/src/main/java/com/example/ui/theme/Color.kt +++ b/app/src/main/java/com/example/ui/theme/Color.kt @@ -2,7 +2,7 @@ package com.example.ui.theme import androidx.compose.ui.graphics.Color -// 🪨 THE ROCK QR CODE COLOR SECTOR: Mineral and Gemstone Inspired Palette +// 🪨 THE Chamo QR COLOR SECTOR: Mineral and Gemstone Inspired Palette // Malachite Crystalline Gem (Primary scanning/secure color) val MalachitePrimary = Color(0xFF00BD9D) // Luminescent mineral gemstone green-teal val MalachitePrimaryVariant = Color(0xFF00D1B2) diff --git a/app/src/main/java/com/example/viewmodel/QRViewModel.kt b/app/src/main/java/com/example/viewmodel/QRViewModel.kt index 50a02dd..e7321bd 100644 --- a/app/src/main/java/com/example/viewmodel/QRViewModel.kt +++ b/app/src/main/java/com/example/viewmodel/QRViewModel.kt @@ -225,7 +225,7 @@ class QRViewModel(application: Application) : AndroidViewModel(application) { } catch (e: Exception) { // Offline local fallback so the user always has a functional result! generatedShortCode = "local_" + System.currentTimeMillis().toString().takeLast(6) - finalPayload = "https://sayanthrock.github.io/Rock-QR-Code/redirect?code=$generatedShortCode" + finalPayload = "https://sayanthrock.github.io/Chamo-QR/redirect?code=$generatedShortCode" showToast("Redirection core forged as local offline fallback", CustomToastType.INFO) } } @@ -403,7 +403,7 @@ class QRViewModel(application: Application) : AndroidViewModel(application) { } else { // If there's no content parameter, check if we can interpret the whole path or general string val decodedQuery = uri.lastPathSegment - if (!decodedQuery.isNullOrBlank() && decodedQuery != "Rock-QR-Code") { + if (!decodedQuery.isNullOrBlank() && decodedQuery != "Chamo-QR") { inputText.value = decodedQuery inputType.value = detectQrType(decodedQuery) inputTitle.value = "Web Import" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9226ff6..1564662 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - ROCK QR CODE + Chamo QR Scan Generate History diff --git a/app/src/test/java/com/example/ExampleRobolectricTest.kt b/app/src/test/java/com/example/ExampleRobolectricTest.kt index 62b2c8b..7277197 100644 --- a/app/src/test/java/com/example/ExampleRobolectricTest.kt +++ b/app/src/test/java/com/example/ExampleRobolectricTest.kt @@ -16,6 +16,6 @@ class ExampleRobolectricTest { fun `read string from context`() { val context = ApplicationProvider.getApplicationContext() val appName = context.getString(R.string.app_name) - assertEquals("ROCK QR CODE", appName) + assertEquals("Chamo QR", appName) } } diff --git a/index.html b/index.html index 7df00af..4351ccf 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - Rock QR Code - Luxury Web Suite + Chamo QR Code - Luxury Web Suite @@ -110,7 +110,7 @@
- ROCK QR CODE + Chamo QR Companion Web Suite
@@ -148,7 +148,7 @@

- Instantly build custom high-fidelity QR codes with our dynamic liquid glass engine. Cross-share content between this web console and your Rock QR Code Android application. + Instantly build custom high-fidelity QR codes with our dynamic liquid glass engine. Cross-share content between this web console and your Chamo QR Code Android application.

@@ -390,7 +390,7 @@

When copying the Share Link, you receive an automated redirection URL. Any person who opens that URL will automatically import your forged QR code structure. Sharing links can also trigger the native scanner in your partner Android App!

- https://sayanthrock.github.io/Rock-QR-Code/share?content=... + https://sayanthrock.github.io/Chamo-QR/share?content=... @@ -553,7 +553,7 @@

- + View GitHub Releases @@ -570,11 +570,11 @@

-

Rock QR Code Ecosystem

+

Chamo QR Code Ecosystem

© 2026 Companion Web Console. Realized on-demand.

- + Ecosystem Repository @@ -668,8 +668,8 @@