From 626c0ae36bcf2cd15806724a2960cff0dbe92953 Mon Sep 17 00:00:00 2001 From: Julian_Chu Date: Sun, 8 Feb 2026 19:24:25 +0900 Subject: [PATCH 1/4] build: use java11 to satisfy agp > Android Gradle plugin requires Java 11 to run. When using Java8, this error occurs. Java11 is mandatory, so change the config. --- app/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 587b4e7887..06653d962d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,12 +54,12 @@ android { } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 + jvmTarget = JavaVersion.VERSION_11 } kapt { From e722fd1a4958fec580ec23c98ad5695da2621764 Mon Sep 17 00:00:00 2001 From: Julian_Chu Date: Sun, 8 Feb 2026 19:29:25 +0900 Subject: [PATCH 2/4] build: upgrade kotlin version Got this build error > Task :app:kaptGenerateStubsFocusWebkitDebugKotlin FAILED > e: java.lang.IllegalAccessError: superclass access check failed: class org.jetbrains.kotlin.kapt3.base.javac.KaptJavaCompiler (in unnamed module @0x2d1fb0aa) > cannot access class com.sun.tools.javac.main.JavaCompiler (in module jdk.compiler) > because module jdk.compiler does not export com.sun.tools.javac.main to unnamed module @0x2d1fb0aa it seems upgradeing kotlin version fixes this issue. --- buildSrc/src/main/java/Dependencies.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index c1a6858f75..61316121bb 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -17,7 +17,7 @@ object Versions { const val guava_android = "28.2-android" const val room = "2.4.3" const val glide = "4.0.0" - const val kotlin = "1.6.0" + const val kotlin = "1.7.20" const val kotlinXCoroutine = "1.6.0" const val ktlint = "0.41.0" const val gms = "11.8.0" From e45d21ba964ac44ee04878be90059c02c22528c5 Mon Sep 17 00:00:00 2001 From: Julian_Chu Date: Sun, 8 Feb 2026 19:37:58 +0900 Subject: [PATCH 3/4] fix: exhausted `when` expression for kotlin after upgrading kotlin version, these errors are occuring. The commit does not change the behavior, just for passing build. --- .../org/mozilla/focus/activity/MainActivity.kt | 7 +++++++ .../rocket/component/RocketLauncherActivity.kt | 1 + .../content/common/ui/ContentTabActivity.kt | 2 ++ .../rocket/download/data/DownloadsRepository.kt | 4 ++++ .../org/mozilla/rocket/home/HomeViewModel.kt | 17 +++++++++++++++++ .../domain/DismissLogoManNotificationUseCase.kt | 2 ++ .../home/topsites/ui/AddNewTopSitesViewModel.kt | 3 +++ .../ui/RecommendedSiteAdapterDelegate.kt | 3 +++ 8 files changed, 39 insertions(+) diff --git a/app/src/main/java/org/mozilla/focus/activity/MainActivity.kt b/app/src/main/java/org/mozilla/focus/activity/MainActivity.kt index b05f9cd17a..a162bce27f 100644 --- a/app/src/main/java/org/mozilla/focus/activity/MainActivity.kt +++ b/app/src/main/java/org/mozilla/focus/activity/MainActivity.kt @@ -427,6 +427,13 @@ class MainActivity : Toast.LENGTH_LONG ).show() } + DownloadsRepository.DownloadState.GeneralError -> { + Toast.makeText( + this@MainActivity, + "Downloading general error", + Toast.LENGTH_LONG + ).show() + } } } ) diff --git a/app/src/main/java/org/mozilla/rocket/component/RocketLauncherActivity.kt b/app/src/main/java/org/mozilla/rocket/component/RocketLauncherActivity.kt index 36a794399c..85039509c7 100644 --- a/app/src/main/java/org/mozilla/rocket/component/RocketLauncherActivity.kt +++ b/app/src/main/java/org/mozilla/rocket/component/RocketLauncherActivity.kt @@ -17,6 +17,7 @@ class RocketLauncherActivity : AppCompatActivity() { LaunchIntentDispatcher.Action.HANDLED -> finish() LaunchIntentDispatcher.Action.NORMAL -> dispatchNormalIntent() LaunchIntentDispatcher.Action.PRIVATE -> dispatchPrivateIntent() + null -> finish() } } diff --git a/app/src/main/java/org/mozilla/rocket/content/common/ui/ContentTabActivity.kt b/app/src/main/java/org/mozilla/rocket/content/common/ui/ContentTabActivity.kt index 3b6da36d04..91dae47a10 100644 --- a/app/src/main/java/org/mozilla/rocket/content/common/ui/ContentTabActivity.kt +++ b/app/src/main/java/org/mozilla/rocket/content/common/ui/ContentTabActivity.kt @@ -289,6 +289,8 @@ class ContentTabActivity : BaseActivity(), TabsSessionProvider.SessionHost, Cont if (!downloadState.isStartFromContextMenu) { Toast.makeText(this, R.string.download_started, Toast.LENGTH_LONG).show() } + DownloadsRepository.DownloadState.GeneralError -> + Toast.makeText(this, "Downloading general error", Toast.LENGTH_LONG).show() } } diff --git a/app/src/main/java/org/mozilla/rocket/download/data/DownloadsRepository.kt b/app/src/main/java/org/mozilla/rocket/download/data/DownloadsRepository.kt index 7571914c46..3733353d53 100644 --- a/app/src/main/java/org/mozilla/rocket/download/data/DownloadsRepository.kt +++ b/app/src/main/java/org/mozilla/rocket/download/data/DownloadsRepository.kt @@ -23,6 +23,10 @@ class DownloadsRepository( TelemetryWrapper.startDownloadFile(result.downloadId.toString(), fileSize, headerInfo.isValidSSL, headerInfo.isSupportRange) } } + // FIXME: find a proper way to handle this + DownloadState.FileNotSupported, + DownloadState.GeneralError, + DownloadState.StorageUnavailable -> Unit } } return result diff --git a/app/src/main/java/org/mozilla/rocket/home/HomeViewModel.kt b/app/src/main/java/org/mozilla/rocket/home/HomeViewModel.kt index 8521044d30..a0092ea329 100644 --- a/app/src/main/java/org/mozilla/rocket/home/HomeViewModel.kt +++ b/app/src/main/java/org/mozilla/rocket/home/HomeViewModel.kt @@ -123,6 +123,9 @@ class HomeViewModel( if (sitePage < sitePages.size && siteInPageIndex < sitePages[sitePage].sites.size) { when (val topSite = sitePages[sitePage].sites[siteInPageIndex]) { is Site.UrlSite -> topSite.highlight = true + // FIXME: find a proper way to handle this + Site.DummySite, + Site.EmptyHintSite -> Unit } } } @@ -219,6 +222,8 @@ class HomeViewModel( openAddNewTopSitesPage() TelemetryWrapper.addTopSite(TelemetryWrapper.Extra_Value.EMPTY_HINT) } + // FIXME: find a proper way to handle this + Site.DummySite -> Unit } } @@ -231,6 +236,9 @@ class HomeViewModel( showTopSiteMenu.value = ShowTopSiteMenuData(site, topSitePosition) is Site.DummySite -> showAddTopSiteMenu.call() + // FIXME: find a proper way to handle this + Site.EmptyHintSite, + is Site.UrlSite.FixedSite -> Unit } true } else { @@ -250,6 +258,9 @@ class HomeViewModel( val title = if (allowToLogTitle) site.title else "" TelemetryWrapper.pinTopSite(title, position, allowToLogTitle) } + // FIXME: find a proper way to handle this + Site.DummySite, + Site.EmptyHintSite -> Unit } } @@ -262,6 +273,10 @@ class HomeViewModel( val title = if (allowToLogTitle) site.title else "" TelemetryWrapper.removeTopSite(site.isDefault, position, title, site.isPinned) } + // FIXME: find a proper way to handle this + Site.DummySite, + Site.EmptyHintSite, + is Site.UrlSite.FixedSite -> Unit } } @@ -274,6 +289,8 @@ class HomeViewModel( is PinTopSiteUseCase.PinTopSiteResult.Existing -> { addExistingTopSite.value = pinTopSiteResult.position / TOP_SITES_PER_PAGE } + // FIXME: find a proper way to handle this + PinTopSiteUseCase.PinTopSiteResult.FullyPinned -> Unit } } diff --git a/app/src/main/java/org/mozilla/rocket/home/logoman/domain/DismissLogoManNotificationUseCase.kt b/app/src/main/java/org/mozilla/rocket/home/logoman/domain/DismissLogoManNotificationUseCase.kt index b595561872..a94b026e00 100644 --- a/app/src/main/java/org/mozilla/rocket/home/logoman/domain/DismissLogoManNotificationUseCase.kt +++ b/app/src/main/java/org/mozilla/rocket/home/logoman/domain/DismissLogoManNotificationUseCase.kt @@ -11,6 +11,8 @@ class DismissLogoManNotificationUseCase( operator fun invoke(notification: LogoManNotification.Notification) { when (notification) { is RemoteNotification -> logoManNotificationRepo.saveLastReadNotificationId(notification.id) + // FIXME: find a proper way to handle this + is LogoManNotification.Notification.MissionNotification -> Unit } } } diff --git a/app/src/main/java/org/mozilla/rocket/home/topsites/ui/AddNewTopSitesViewModel.kt b/app/src/main/java/org/mozilla/rocket/home/topsites/ui/AddNewTopSitesViewModel.kt index b13559ab37..e32e44f76f 100644 --- a/app/src/main/java/org/mozilla/rocket/home/topsites/ui/AddNewTopSitesViewModel.kt +++ b/app/src/main/java/org/mozilla/rocket/home/topsites/ui/AddNewTopSitesViewModel.kt @@ -38,6 +38,9 @@ class AddNewTopSitesViewModel( TelemetryWrapper.selectToAddTopSite(true, position, site.title) } } + // FIXME: find a proper way to handle this + Site.DummySite, + Site.EmptyHintSite -> Unit } } diff --git a/app/src/main/java/org/mozilla/rocket/home/topsites/ui/RecommendedSiteAdapterDelegate.kt b/app/src/main/java/org/mozilla/rocket/home/topsites/ui/RecommendedSiteAdapterDelegate.kt index 15402a21be..7500f3380c 100644 --- a/app/src/main/java/org/mozilla/rocket/home/topsites/ui/RecommendedSiteAdapterDelegate.kt +++ b/app/src/main/java/org/mozilla/rocket/home/topsites/ui/RecommendedSiteAdapterDelegate.kt @@ -47,6 +47,9 @@ class RecommendedSiteViewHolder( itemView.setOnClickListener { topSiteClickListener.onTopSiteClicked(site, adapterPosition) } } + // FIXME: find a proper way to handle this + Site.DummySite, + Site.EmptyHintSite -> Unit } } From f258a6f3b0539169f6b7ebe412e7f58844236d4f Mon Sep 17 00:00:00 2001 From: Julian_Chu Date: Sun, 8 Feb 2026 22:41:15 +0900 Subject: [PATCH 4/4] test: fix test the id was removed in 11d8deaa67d1d3ebc78df428c995d674c408e388 --- .../androidTest/java/org/mozilla/focus/activity/HomeTest.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/androidTest/java/org/mozilla/focus/activity/HomeTest.kt b/app/src/androidTest/java/org/mozilla/focus/activity/HomeTest.kt index b356c57897..4287449f98 100644 --- a/app/src/androidTest/java/org/mozilla/focus/activity/HomeTest.kt +++ b/app/src/androidTest/java/org/mozilla/focus/activity/HomeTest.kt @@ -135,7 +135,7 @@ class HomeTest { Espresso.pressBack() // Check menu panel not exist - onView(withId(R.id.menu)).check(doesNotExist()) + onView(withId(R.id.container)).check(doesNotExist()) // Tap menu AndroidTestUtils.tapHomeMenuButton() @@ -144,10 +144,10 @@ class HomeTest { val displayMetrics = activityRule.activity.resources.displayMetrics val displayWidth = displayMetrics.widthPixels val displayHeight = displayMetrics.heightPixels - onView(withId(R.id.menu)).perform(AndroidTestUtils.clickXY(displayWidth / 2, -displayHeight / 2, Tap.SINGLE)) + onView(withId(R.id.container)).perform(AndroidTestUtils.clickXY(displayWidth / 2, -displayHeight / 2, Tap.SINGLE)) // Check menu panel not exist - onView(withId(R.id.menu)).check(doesNotExist()) + onView(withId(R.id.container)).check(doesNotExist()) } }