diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index aa1bb3883218..ffb7d559a197 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,5 +1,6 @@
# This is the module where the Android Design System resides
# Any changes to the source files of this module require approval from @malmstein or @nalcalag.
-/common/common-ui/ @malmstein @nalcalag
+/android-design-system/design-system/ @malmstein @mikescamell
+/android-design-system/design-system-internal/ @malmstein @mikescamell
/saved-sites/ @malmstein
/example-feature/ @cdrussell
\ No newline at end of file
diff --git a/android-design-system/design-system-internal/build.gradle b/android-design-system/design-system-internal/build.gradle
index b97fbf916226..43cd2d64c943 100644
--- a/android-design-system/design-system-internal/build.gradle
+++ b/android-design-system/design-system-internal/build.gradle
@@ -26,7 +26,18 @@ android {
anvil {
generateDaggerFactories = true // default is false
}
+ lint {
+ baseline = file("lint-baseline.xml")
+ }
namespace 'com.duckduckgo.common.ui.internal'
+
+ buildFeatures {
+ compose true
+ }
+
+ composeOptions {
+ kotlinCompilerExtensionVersion = "_"
+ }
}
dependencies {
@@ -42,11 +53,13 @@ dependencies {
implementation project(path: ':app-build-config-api')
implementation project(':internal-features-api')
implementation project(path: ':navigation-api')
+ implementation "androidx.datastore:datastore-preferences:_"
implementation AndroidX.appCompat
implementation Google.android.material
implementation AndroidX.constraintLayout
implementation AndroidX.core.splashscreen
+ implementation AndroidX.fragment.ktx
implementation AndroidX.recyclerView
implementation AndroidX.lifecycle.viewModelKtx
// just to get the dagger annotations
diff --git a/android-design-system/design-system-internal/lint-baseline.xml b/android-design-system/design-system-internal/lint-baseline.xml
new file mode 100644
index 000000000000..fca7771929ee
--- /dev/null
+++ b/android-design-system/design-system-internal/lint-baseline.xml
@@ -0,0 +1,1870 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android-design-system/design-system-internal/src/main/AndroidManifest.xml b/android-design-system/design-system-internal/src/main/AndroidManifest.xml
new file mode 100644
index 000000000000..33aef8c3d0a7
--- /dev/null
+++ b/android-design-system/design-system-internal/src/main/AndroidManifest.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ThemePreviewInternalFeature.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ThemePreviewInternalFeature.kt
index 9fce7d0bb8a6..4a05ddfdf564 100644
--- a/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ThemePreviewInternalFeature.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ThemePreviewInternalFeature.kt
@@ -18,7 +18,7 @@ package com.duckduckgo.common.ui.internal
import android.content.Context
import com.duckduckgo.anvil.annotations.PriorityKey
-import com.duckduckgo.common.ui.themepreview.ui.AppComponentsActivity
+import com.duckduckgo.common.ui.internal.ui.AppComponentsActivity
import com.duckduckgo.di.scopes.AppScope
import com.duckduckgo.internal.features.api.InternalFeaturePlugin
import com.squareup.anvil.annotations.ContributesMultibinding
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/ADSComposeTools.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/ADSComposeTools.kt
similarity index 96%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/ADSComposeTools.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/ADSComposeTools.kt
index d47f25ea32b6..00491eab7508 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/ADSComposeTools.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/ADSComposeTools.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui
+package com.duckduckgo.common.ui.internal.ui
import android.view.View
import androidx.compose.runtime.Composable
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsActivity.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsActivity.kt
similarity index 94%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsActivity.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsActivity.kt
index e5b7834b9a63..f4459339e831 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsActivity.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsActivity.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui
+package com.duckduckgo.common.ui.internal.ui
import android.content.Context
import android.content.Intent
@@ -26,12 +26,12 @@ import androidx.lifecycle.lifecycleScope
import androidx.viewpager.widget.ViewPager
import com.duckduckgo.common.ui.DuckDuckGoTheme
import com.duckduckgo.common.ui.applyTheme
+import com.duckduckgo.common.ui.internal.R
+import com.duckduckgo.common.ui.internal.ui.store.AppComponentsPrefsDataStore
+import com.duckduckgo.common.ui.internal.ui.store.appComponentsDataStore
import com.duckduckgo.common.ui.store.ThemingSharedPreferences
-import com.duckduckgo.common.ui.themepreview.ui.store.AppComponentsPrefsDataStore
-import com.duckduckgo.common.ui.themepreview.ui.store.appComponentsDataStore
import com.duckduckgo.common.ui.view.listitem.OneLineListItem
import com.duckduckgo.common.utils.DefaultDispatcherProvider
-import com.duckduckgo.mobile.android.R
import com.google.android.material.tabs.TabLayout
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.launch
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsPagerAdapter.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsPagerAdapter.kt
similarity index 74%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsPagerAdapter.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsPagerAdapter.kt
index 8f09a1b23c94..e49d8ca2203b 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsPagerAdapter.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsPagerAdapter.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023 DuckDuckGo
+ * Copyright (c) 2025 DuckDuckGo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,22 +14,22 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui
+package com.duckduckgo.common.ui.internal.ui
import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentStatePagerAdapter
-import com.duckduckgo.common.ui.themepreview.ui.component.ComponentOtherFragment
-import com.duckduckgo.common.ui.themepreview.ui.component.buttons.ComponentButtonsFragment
-import com.duckduckgo.common.ui.themepreview.ui.component.buttons.ComponentInteractiveElementsFragment
-import com.duckduckgo.common.ui.themepreview.ui.component.cards.ComponentLayoutsFragment
-import com.duckduckgo.common.ui.themepreview.ui.component.listitems.ComponentListItemsElementsFragment
-import com.duckduckgo.common.ui.themepreview.ui.component.navigation.ComponentMessagingFragment
-import com.duckduckgo.common.ui.themepreview.ui.component.textinput.ComponentTextInputFragment
-import com.duckduckgo.common.ui.themepreview.ui.dialogs.DialogsFragment
-import com.duckduckgo.common.ui.themepreview.ui.palette.ColorPaletteFragment
-import com.duckduckgo.common.ui.themepreview.ui.typography.TypographyFragment
+import com.duckduckgo.common.ui.internal.ui.component.ComponentOtherFragment
+import com.duckduckgo.common.ui.internal.ui.component.buttons.ComponentButtonsFragment
+import com.duckduckgo.common.ui.internal.ui.component.buttons.ComponentInteractiveElementsFragment
+import com.duckduckgo.common.ui.internal.ui.component.cards.ComponentLayoutsFragment
+import com.duckduckgo.common.ui.internal.ui.component.listitems.ComponentListItemsElementsFragment
+import com.duckduckgo.common.ui.internal.ui.component.navigation.ComponentMessagingFragment
+import com.duckduckgo.common.ui.internal.ui.component.textinput.ComponentTextInputFragment
+import com.duckduckgo.common.ui.internal.ui.dialogs.DialogsFragment
+import com.duckduckgo.common.ui.internal.ui.palette.ColorPaletteFragment
+import com.duckduckgo.common.ui.internal.ui.typography.TypographyFragment
import com.duckduckgo.mobile.android.R
/** View pager to show all tabbed destinations - Instructions, Theme Summary and Components. */
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsViewModel.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsViewModel.kt
similarity index 88%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsViewModel.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsViewModel.kt
index a4659817edfb..f6518b7d96f5 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsViewModel.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsViewModel.kt
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui
+package com.duckduckgo.common.ui.internal.ui
import androidx.lifecycle.ViewModel
import com.duckduckgo.common.ui.DuckDuckGoTheme
-import com.duckduckgo.common.ui.themepreview.ui.store.AppComponentsPrefsDataStore
+import com.duckduckgo.common.ui.internal.ui.store.AppComponentsPrefsDataStore
import kotlinx.coroutines.flow.Flow
class AppComponentsViewModel(
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsViewModelExt.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsViewModelExt.kt
similarity index 88%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsViewModelExt.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsViewModelExt.kt
index 75df65c215fa..fd9f7cb248ae 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/AppComponentsViewModelExt.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/AppComponentsViewModelExt.kt
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui
+package com.duckduckgo.common.ui.internal.ui
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
+import com.duckduckgo.common.ui.internal.ui.store.AppComponentsPrefsDataStore
+import com.duckduckgo.common.ui.internal.ui.store.appComponentsDataStore
import com.duckduckgo.common.ui.store.ThemingSharedPreferences
-import com.duckduckgo.common.ui.themepreview.ui.store.AppComponentsPrefsDataStore
-import com.duckduckgo.common.ui.themepreview.ui.store.appComponentsDataStore
import com.duckduckgo.common.utils.DefaultDispatcherProvider
internal fun Fragment.appComponentsViewModel(): Lazy = activityViewModels {
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/PlatformLabelView.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/PlatformLabelView.kt
similarity index 98%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/PlatformLabelView.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/PlatformLabelView.kt
index 08253505ca17..2fc0d23a0f5e 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/PlatformLabelView.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/PlatformLabelView.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui
+package com.duckduckgo.common.ui.internal.ui
import android.content.Context
import android.util.AttributeSet
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/Component.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/Component.kt
similarity index 94%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/Component.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/Component.kt
index 28f472f87846..b911267d6c49 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/Component.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/Component.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component
+package com.duckduckgo.common.ui.internal.ui.component
enum class Component {
BUTTON,
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentAdapter.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentAdapter.kt
similarity index 96%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentAdapter.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentAdapter.kt
index 8fb9457ce739..b1392a22cd4b 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentAdapter.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentAdapter.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component
+package com.duckduckgo.common.ui.internal.ui.component
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentFragment.kt
similarity index 94%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentFragment.kt
index 3b7e7f0fccdd..445bba7a4275 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentFragment.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component
+package com.duckduckgo.common.ui.internal.ui.component
import android.annotation.SuppressLint
import android.os.Bundle
@@ -24,7 +24,7 @@ import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
-import com.duckduckgo.mobile.android.R
+import com.duckduckgo.common.ui.internal.R
@SuppressLint("NoFragment") // we don't use DI here
abstract class ComponentFragment : Fragment() {
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentOtherFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentOtherFragment.kt
similarity index 92%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentOtherFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentOtherFragment.kt
index 3caef3dd9bbe..b4c2c11d38e9 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentOtherFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentOtherFragment.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component
+package com.duckduckgo.common.ui.internal.ui.component
class ComponentOtherFragment : ComponentFragment() {
override fun getComponents(): List {
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentViewHolder.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentViewHolder.kt
similarity index 95%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentViewHolder.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentViewHolder.kt
index 4daa5c23ec5b..29ef6f0cf296 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/ComponentViewHolder.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/ComponentViewHolder.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023 DuckDuckGo
+ * Copyright (c) 2025 DuckDuckGo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component
+package com.duckduckgo.common.ui.internal.ui.component
import android.annotation.SuppressLint
import android.view.Gravity
@@ -23,6 +23,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.recyclerview.widget.RecyclerView
+import com.duckduckgo.common.ui.internal.R
import com.duckduckgo.common.ui.view.MessageCta
import com.duckduckgo.common.ui.view.MessageCta.Message
import com.duckduckgo.common.ui.view.MessageCta.MessageType.REMOTE_PROMO_MESSAGE
@@ -30,11 +31,11 @@ import com.duckduckgo.common.ui.view.listitem.OneLineListItem
import com.duckduckgo.common.ui.view.listitem.SectionHeaderListItem
import com.duckduckgo.common.ui.view.listitem.TwoLineListItem
import com.duckduckgo.common.utils.extensions.html
-import com.duckduckgo.mobile.android.R
import com.google.android.material.card.MaterialCardView
import com.google.android.material.shape.ShapeAppearanceModel
import com.google.android.material.shape.TriangleEdgeTreatment
import com.google.android.material.snackbar.Snackbar
+import com.duckduckgo.mobile.android.R as CommonR
sealed class ComponentViewHolder(val view: View) : RecyclerView.ViewHolder(view) {
@@ -70,13 +71,13 @@ sealed class ComponentViewHolder(val view: View) : RecyclerView.ViewHolder(view)
override fun bind(component: Component) {
val smallMessage = Message(title = "Small Message", subtitle = "Body text goes here. This component doesn't have buttons")
val bigSingleMessage = Message(
- topIllustration = R.drawable.ic_announce,
+ topIllustration = CommonR.drawable.ic_announce,
title = "Big Single Message",
subtitle = "Body text goes here. This component has one button",
action = "Primary",
)
val bigTwoActionsMessage = Message(
- topIllustration = R.drawable.ic_ddg_announce,
+ topIllustration = CommonR.drawable.ic_ddg_announce,
title = "Big Two Actions Message",
subtitle = "Body text goes here. This component has two buttons",
action = "Primary",
@@ -84,7 +85,7 @@ sealed class ComponentViewHolder(val view: View) : RecyclerView.ViewHolder(view)
)
val bigTwoActionsUpdateMessage = Message(
- topIllustration = R.drawable.ic_app_update,
+ topIllustration = CommonR.drawable.ic_app_update,
title = "Big Two Actions Message",
subtitle = "Body text goes here. This component has two buttons and showcases and app update",
action = "Primary",
@@ -92,13 +93,13 @@ sealed class ComponentViewHolder(val view: View) : RecyclerView.ViewHolder(view)
)
val mediumMessage = Message(
- topIllustration = R.drawable.ic_critical_update,
+ topIllustration = CommonR.drawable.ic_critical_update,
title = "Big Single Message",
subtitle = "Body text goes here. This component has one button",
)
val promoSingleMessage = Message(
- middleIllustration = R.drawable.desktop_promo_artwork,
+ middleIllustration = CommonR.drawable.desktop_promo_artwork,
title = "Promo Single Action Message",
subtitle = "Body text goes here. This component has one promo button and supports bold text",
promoAction = "Promo Link",
@@ -222,7 +223,7 @@ sealed class ComponentViewHolder(val view: View) : RecyclerView.ViewHolder(view)
setClickListener { Snackbar.make(this, component.name, Snackbar.LENGTH_SHORT).show() }
}
view.findViewById(R.id.oneLineListItemWithLongTextTruncated).apply {
- setPrimaryText(context.getString(R.string.dax_one_line_list_item_html_primary_text).html(context))
+ setPrimaryText(context.getString(CommonR.string.dax_one_line_list_item_html_primary_text).html(context))
}
}
}
@@ -306,8 +307,8 @@ sealed class ComponentViewHolder(val view: View) : RecyclerView.ViewHolder(view)
}
view.findViewById(R.id.twoLineListItemWithHTMLTags).apply {
- setPrimaryText(context.getString(R.string.dax_list_item_html_primary_text).html(context))
- setSecondaryText(context.getString(R.string.dax_list_item_html_secondary_text).html(context))
+ setPrimaryText(context.getString(CommonR.string.dax_list_item_html_primary_text).html(context))
+ setSecondaryText(context.getString(CommonR.string.dax_list_item_html_secondary_text).html(context))
}
}
}
@@ -333,7 +334,7 @@ sealed class ComponentViewHolder(val view: View) : RecyclerView.ViewHolder(view)
class CardComponentViewHolder(parent: ViewGroup) : ComponentViewHolder(inflate(parent, R.layout.component_card)) {
override fun bind(component: Component) {
view.findViewById(R.id.ticketViewCard).apply {
- val cornerSize = resources.getDimension(R.dimen.smallShapeCornerRadius)
+ val cornerSize = resources.getDimension(CommonR.dimen.smallShapeCornerRadius)
val edgeTreatment = TriangleEdgeTreatment(cornerSize, true)
shapeAppearanceModel = ShapeAppearanceModel.Builder()
.setLeftEdge(edgeTreatment)
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/buttons/ComponentButtonsFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/buttons/ComponentButtonsFragment.kt
similarity index 75%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/buttons/ComponentButtonsFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/buttons/ComponentButtonsFragment.kt
index 7326c8f9b1c9..1b675c7226a1 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/buttons/ComponentButtonsFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/buttons/ComponentButtonsFragment.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023 DuckDuckGo
+ * Copyright (c) 2025 DuckDuckGo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component.buttons
+package com.duckduckgo.common.ui.internal.ui.component.buttons
-import com.duckduckgo.common.ui.themepreview.ui.component.Component
-import com.duckduckgo.common.ui.themepreview.ui.component.ComponentFragment
+import com.duckduckgo.common.ui.internal.ui.component.Component
+import com.duckduckgo.common.ui.internal.ui.component.ComponentFragment
class ComponentButtonsFragment : ComponentFragment() {
override fun getComponents(): List {
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/buttons/ComponentInteractiveElementsFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/buttons/ComponentInteractiveElementsFragment.kt
similarity index 78%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/buttons/ComponentInteractiveElementsFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/buttons/ComponentInteractiveElementsFragment.kt
index 5fb1b6f769c9..e0c1a1217f09 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/buttons/ComponentInteractiveElementsFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/buttons/ComponentInteractiveElementsFragment.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023 DuckDuckGo
+ * Copyright (c) 2025 DuckDuckGo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component.buttons
+package com.duckduckgo.common.ui.internal.ui.component.buttons
-import com.duckduckgo.common.ui.themepreview.ui.component.Component
-import com.duckduckgo.common.ui.themepreview.ui.component.ComponentFragment
+import com.duckduckgo.common.ui.internal.ui.component.Component
+import com.duckduckgo.common.ui.internal.ui.component.ComponentFragment
class ComponentInteractiveElementsFragment : ComponentFragment() {
override fun getComponents(): List {
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/cards/ComponentLayoutsFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/cards/ComponentLayoutsFragment.kt
similarity index 74%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/cards/ComponentLayoutsFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/cards/ComponentLayoutsFragment.kt
index 1ae187f0233f..097ca79bd1e0 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/cards/ComponentLayoutsFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/cards/ComponentLayoutsFragment.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023 DuckDuckGo
+ * Copyright (c) 2025 DuckDuckGo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component.cards
+package com.duckduckgo.common.ui.internal.ui.component.cards
-import com.duckduckgo.common.ui.themepreview.ui.component.Component
-import com.duckduckgo.common.ui.themepreview.ui.component.ComponentFragment
+import com.duckduckgo.common.ui.internal.ui.component.Component
+import com.duckduckgo.common.ui.internal.ui.component.ComponentFragment
class ComponentLayoutsFragment : ComponentFragment() {
override fun getComponents(): List {
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/listitems/ComponentListItemsElementsFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/listitems/ComponentListItemsElementsFragment.kt
similarity index 52%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/listitems/ComponentListItemsElementsFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/listitems/ComponentListItemsElementsFragment.kt
index e64636191f07..c9890d3d9a4f 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/listitems/ComponentListItemsElementsFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/listitems/ComponentListItemsElementsFragment.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023 DuckDuckGo
+ * Copyright (c) 2025 DuckDuckGo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,16 +14,16 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component.listitems
+package com.duckduckgo.common.ui.internal.ui.component.listitems
-import com.duckduckgo.common.ui.themepreview.ui.component.Component
-import com.duckduckgo.common.ui.themepreview.ui.component.Component.MENU_ITEM
-import com.duckduckgo.common.ui.themepreview.ui.component.Component.POPUP_MENU_ITEM
-import com.duckduckgo.common.ui.themepreview.ui.component.Component.SECTION_HEADER_LIST_ITEM
-import com.duckduckgo.common.ui.themepreview.ui.component.Component.SETTINGS_LIST_ITEM
-import com.duckduckgo.common.ui.themepreview.ui.component.Component.SINGLE_LINE_LIST_ITEM
-import com.duckduckgo.common.ui.themepreview.ui.component.Component.TWO_LINE_LIST_ITEM
-import com.duckduckgo.common.ui.themepreview.ui.component.ComponentFragment
+import com.duckduckgo.common.ui.internal.ui.component.Component
+import com.duckduckgo.common.ui.internal.ui.component.Component.MENU_ITEM
+import com.duckduckgo.common.ui.internal.ui.component.Component.POPUP_MENU_ITEM
+import com.duckduckgo.common.ui.internal.ui.component.Component.SECTION_HEADER_LIST_ITEM
+import com.duckduckgo.common.ui.internal.ui.component.Component.SETTINGS_LIST_ITEM
+import com.duckduckgo.common.ui.internal.ui.component.Component.SINGLE_LINE_LIST_ITEM
+import com.duckduckgo.common.ui.internal.ui.component.Component.TWO_LINE_LIST_ITEM
+import com.duckduckgo.common.ui.internal.ui.component.ComponentFragment
class ComponentListItemsElementsFragment : ComponentFragment() {
override fun getComponents(): List {
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/navigation/ComponentMessagingFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/navigation/ComponentMessagingFragment.kt
similarity index 75%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/navigation/ComponentMessagingFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/navigation/ComponentMessagingFragment.kt
index 1c683754420f..884be9af3eff 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/navigation/ComponentMessagingFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/navigation/ComponentMessagingFragment.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023 DuckDuckGo
+ * Copyright (c) 2025 DuckDuckGo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,10 +14,10 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component.navigation
+package com.duckduckgo.common.ui.internal.ui.component.navigation
-import com.duckduckgo.common.ui.themepreview.ui.component.Component
-import com.duckduckgo.common.ui.themepreview.ui.component.ComponentFragment
+import com.duckduckgo.common.ui.internal.ui.component.Component
+import com.duckduckgo.common.ui.internal.ui.component.ComponentFragment
class ComponentMessagingFragment : ComponentFragment() {
override fun getComponents(): List {
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/textinput/ComponentTextInputFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/textinput/ComponentTextInputFragment.kt
similarity index 92%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/textinput/ComponentTextInputFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/textinput/ComponentTextInputFragment.kt
index 626f2cc9d39c..676442db58da 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/component/textinput/ComponentTextInputFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/component/textinput/ComponentTextInputFragment.kt
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2023 DuckDuckGo
+ * Copyright (c) 2025 DuckDuckGo
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.component.textinput
+package com.duckduckgo.common.ui.internal.ui.component.textinput
import android.annotation.SuppressLint
import android.os.Bundle
@@ -22,9 +22,9 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
+import com.duckduckgo.common.ui.internal.databinding.ComponentTextInputViewBinding
import com.duckduckgo.common.ui.view.text.TextInput.Action
import com.duckduckgo.mobile.android.R
-import com.duckduckgo.mobile.android.databinding.ComponentTextInputViewBinding
import com.google.android.material.snackbar.Snackbar
@SuppressLint("NoFragment") // we don't use DI here
diff --git a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/dialogs/DialogsFragment.kt b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/dialogs/DialogsFragment.kt
similarity index 83%
rename from design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/dialogs/DialogsFragment.kt
rename to android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/dialogs/DialogsFragment.kt
index 8041866d04d8..20271e21bb91 100644
--- a/design-system/src/main/java/com/duckduckgo/common/ui/themepreview/ui/dialogs/DialogsFragment.kt
+++ b/android-design-system/design-system-internal/src/main/java/com/duckduckgo/common/ui/internal/ui/dialogs/DialogsFragment.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.duckduckgo.common.ui.themepreview.ui.dialogs
+package com.duckduckgo.common.ui.internal.ui.dialogs
import android.annotation.SuppressLint
import android.os.Bundle
@@ -24,6 +24,7 @@ import android.view.ViewGroup
import android.widget.Button
import android.widget.Toast
import androidx.fragment.app.Fragment
+import com.duckduckgo.common.ui.internal.R
import com.duckduckgo.common.ui.view.LottieDaxDialog
import com.duckduckgo.common.ui.view.TypewriterDaxDialog
import com.duckduckgo.common.ui.view.button.ButtonType.DESTRUCTIVE
@@ -34,8 +35,8 @@ import com.duckduckgo.common.ui.view.dialog.PromoBottomSheetDialog
import com.duckduckgo.common.ui.view.dialog.RadioListAlertDialogBuilder
import com.duckduckgo.common.ui.view.dialog.StackedAlertDialogBuilder
import com.duckduckgo.common.ui.view.dialog.TextAlertDialogBuilder
-import com.duckduckgo.mobile.android.R
import com.google.android.material.snackbar.Snackbar
+import com.duckduckgo.mobile.android.R as CommonR
/** Fragment to display a list of dialogs. */
@SuppressLint("NoFragment") // we don't use DI here
@@ -58,11 +59,11 @@ class DialogsFragment : Fragment() {
view.findViewById