From f54cf87cf2559fefde99c5a4e1748ae54d14bc8b Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Sun, 9 Aug 2026 17:56:00 +0000
Subject: [PATCH] chore: revert rebranding to Chamo QR, back to Rock QR Code
Co-authored-by: SayanthRock <202829406+SayanthRock@users.noreply.github.com>
---
.github/workflows/build.yml | 6 +-
.github/workflows/release.yml | 5 +-
README.md | 6 +-
app/build.gradle.kts | 10 +-
app/src/main/AndroidManifest.xml | 2 +-
app/src/main/java/com/example/MainActivity.kt | 14 +--
.../com/example/data/api/QrBackendService.kt | 2 +-
.../com/example/ui/screens/GenerateScreen.kt | 4 +-
.../java/com/example/ui/screens/ScanScreen.kt | 2 +-
.../main/java/com/example/ui/theme/Color.kt | 2 +-
.../java/com/example/viewmodel/QRViewModel.kt | 4 +-
app/src/main/res/values/strings.xml | 2 +-
.../com/example/ExampleRobolectricTest.kt | 2 +-
index.html | 18 +--
redirect/index.html | 103 ++++++++++++++++++
15 files changed, 138 insertions(+), 44 deletions(-)
create mode 100644 redirect/index.html
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4de1c47..bc67506 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -172,9 +172,8 @@ jobs:
- name: Rename APK for Release
run: |
- echo "🏷️ Renaming app-debug.apk to Rock QR.apk and Chamo QR.apk..."
+ echo "🏷️ Renaming app-debug.apk to Rock QR.apk..."
cp app/build/outputs/apk/debug/app-debug.apk "app/build/outputs/apk/debug/Rock QR.apk"
- cp app/build/outputs/apk/debug/app-debug.apk "app/build/outputs/apk/debug/Chamo QR.apk"
- name: Upload Build Artifacts
id: upload-apk
@@ -183,7 +182,6 @@ jobs:
name: Rock-QR-Artifacts
path: |
app/build/outputs/apk/debug/Rock QR.apk
- app/build/outputs/apk/debug/Chamo QR.apk
app/build/outputs/apk/debug/app-debug.apk
- name: Add APK to Job Summary
@@ -290,7 +288,6 @@ jobs:
#### 📦 Attached Quality Artifacts:
- **`Rock QR.apk`**: Dual-branded high-performance release build under Rock branding.
- - **`Chamo QR.apk`**: Dual-branded stable release build under Chamo branding.
EOF
echo "✅ Category-based structural release note compiled successfully."
@@ -302,7 +299,6 @@ jobs:
with:
files: |
app/build/outputs/apk/debug/Rock QR.apk
- app/build/outputs/apk/debug/Chamo QR.apk
tag_name: ${{ github.ref_name }}
name: Rock QR ${{ github.ref_name }}
body_path: release_notes.md
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 131739e..445dba3 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -76,12 +76,10 @@ jobs:
mkdir -p app/build/outputs/apk/release
if [ -f app/build/outputs/apk/release/app-release.apk ]; then
cp app/build/outputs/apk/release/app-release.apk app/build/outputs/apk/release/Rock_QR.apk
- cp app/build/outputs/apk/release/app-release.apk app/build/outputs/apk/release/Chamo_QR.apk
- echo "✅ Created Rock_QR.apk and Chamo_QR.apk"
+ echo "✅ Created Rock_QR.apk"
else
echo "⚠️ Could not locate app-release.apk. Looking for any generated release APK..."
find app/build/outputs/apk/release/ -name "*.apk" -exec cp {} app/build/outputs/apk/release/Rock_QR.apk \;
- find app/build/outputs/apk/release/ -name "*.apk" -exec cp {} app/build/outputs/apk/release/Chamo_QR.apk \;
fi
# 🧠 Generate automatic changelog from commits
@@ -108,6 +106,5 @@ jobs:
body: ${{ env.CHANGELOG }}
files: |
app/build/outputs/apk/release/Rock_QR.apk
- app/build/outputs/apk/release/Chamo_QR.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/README.md b/README.md
index 1b39db3..102b9a6 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,15 @@
-# 📱 Chamo QR Code Ecosystem
+# 📱 Rock 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).
-[](https://github.com/SayanthRock/Chamo-QR/actions/workflows/build.yml)
+[](https://github.com/SayanthRock/Rock-QR-Code/actions/workflows/build.yml)
---
## 🌐 Live Companion Web App
Experience the premium web suite instantly:
-👉 **[Try the Chamo QR Web Console](https://sayanthrock.github.io/Chamo-QR/)**
+👉 **[Try the Rock QR Web Console](https://sayanthrock.github.io/Rock-QR-Code/)**
*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 c3f6bd7..e3b9fa5 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.chamoqr.qzlypm"
+ applicationId = "com.aistudio.rockqr.qzlypm"
minSdk = 24
targetSdk = 36
versionCode = 1
@@ -146,11 +146,9 @@ abstract class CopyApkTask : DefaultTask() {
val src = sourceApk.get().asFile
val destDir = targetDir.get().asFile
if (src.exists()) {
- src.copyTo(File(destDir, "Chamo QR.apk"), overwrite = true)
- src.copyTo(File(destDir, "Chamo_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 'Chamo QR.apk' and 'Chamo QR.apk'")
+ src.copyTo(File(destDir, "Rock QR.apk"), overwrite = true)
+ src.copyTo(File(destDir, "Rock_QR.apk"), overwrite = true)
+ println("✅ Copied APK to root directory as both 'Rock QR.apk' ")
}
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7abceb8..712693a 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 2e2d8ea..7bdd9e5 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/Chamo-QR")) {
+ if (dataStr.contains("sayanthrock.github.io/Rock-QR-Code")) {
viewModel.importFromDeepLink(dataStr)
intent.data = null
}
@@ -231,7 +231,7 @@ fun LocalSettingsScreen(
Spacer(modifier = Modifier.height(12.dp))
Text(
- text = "Chamo QR",
+ text = "ROCK QR CODE",
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("Chamo QR is up to date (v1.0.8)", CustomToastType.SUCCESS)
+ viewModel.showToast("Rock 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, "Chamo QR")
- putExtra(android.content.Intent.EXTRA_TEXT, "Check out Chamo QR app: https://sayanthrock.github.io/Chamo-QR")
+ 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")
}
- context.startActivity(android.content.Intent.createChooser(shareIntent, "Share Chamo QR"))
+ context.startActivity(android.content.Intent.createChooser(shareIntent, "Share ROCK QR CODE"))
}
)
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/Chamo-QR"))
+ val browserIntent = android.content.Intent(android.content.Intent.ACTION_VIEW, android.net.Uri.parse("https://github.com/sayanthrock/Rock-QR-Code"))
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 a9da8da..43ca80d 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/Chamo-QR/redirect?code=x7p3a")
+ val shortUrl: String, // Fully qualified dynamic redirection URL (e.g. "https://sayanthrock.github.io/Rock-QR-Code/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 579fd96..136a40d 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 = "Chamo QR",
+ text = "ROCK QR CODE",
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/Chamo-QR/share?content=${android.net.Uri.encode(rawContent)}&type=$type&title=${android.net.Uri.encode(title)}"
+ 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 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 da878f0..d99589d 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 = "Chamo QR",
+ text = "ROCK QR CODE",
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 182db01..2bab600 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 Chamo QR COLOR SECTOR: Mineral and Gemstone Inspired Palette
+// 🪨 THE ROCK QR CODE 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 e7321bd..50a02dd 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/Chamo-QR/redirect?code=$generatedShortCode"
+ finalPayload = "https://sayanthrock.github.io/Rock-QR-Code/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 != "Chamo-QR") {
+ if (!decodedQuery.isNullOrBlank() && decodedQuery != "Rock-QR-Code") {
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 1564662..9226ff6 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,5 +1,5 @@
- 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.
+ 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.
Chamo QR Code Ecosystem
+Rock QR Code Ecosystem
© 2026 Companion Web Console. Realized on-demand.
Decoding dynamic target...
+