Skip to content

Commit 14095de

Browse files
committed
Duck.ai: Omnibar
1 parent 90de230 commit 14095de

File tree

2 files changed

+173
-16
lines changed

2 files changed

+173
-16
lines changed

duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/ui/DuckChatWebViewFragment.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import android.webkit.WebChromeClient.FileChooserParams
3737
import android.webkit.WebSettings
3838
import android.webkit.WebView
3939
import androidx.annotation.AnyThread
40-
import androidx.appcompat.widget.Toolbar
4140
import androidx.core.content.ContextCompat
4241
import androidx.lifecycle.ViewModelProvider
4342
import androidx.lifecycle.lifecycleScope
@@ -161,7 +160,8 @@ open class DuckChatWebViewFragment : DuckDuckGoFragment(R.layout.activity_duck_c
161160
private var pendingUploadTask: ValueCallback<Array<Uri>>? = null
162161

163162
private val root: ViewGroup by lazy { binding.root }
164-
private val toolbar: Toolbar? by lazy { binding.includeToolbar.toolbar }
163+
164+
// private val toolbar: Toolbar? by lazy { binding.includeToolbar.toolbar }
165165
internal val simpleWebview: WebView by lazy { binding.simpleWebview }
166166

167167
@SuppressLint("SetJavaScriptEnabled")
@@ -171,13 +171,13 @@ open class DuckChatWebViewFragment : DuckDuckGoFragment(R.layout.activity_duck_c
171171
) {
172172
super.onViewCreated(view, savedInstanceState)
173173

174-
toolbar?.let {
175-
it.setNavigationIcon(com.duckduckgo.mobile.android.R.drawable.ic_arrow_left_24)
176-
it.setNavigationOnClickListener {
177-
requireActivity().onBackPressed()
178-
}
179-
it.setTitle(R.string.duck_chat_title)
180-
}
174+
// toolbar?.let {
175+
// it.setNavigationIcon(com.duckduckgo.mobile.android.R.drawable.ic_arrow_left_24)
176+
// it.setNavigationOnClickListener {
177+
// requireActivity().onBackPressed()
178+
// }
179+
// it.setTitle(R.string.duck_chat_title)
180+
// }
181181

182182
val url = arguments?.getString(KEY_DUCK_AI_URL) ?: "https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=5"
183183

@@ -604,5 +604,6 @@ open class DuckChatWebViewFragment : DuckDuckGoFragment(R.layout.activity_duck_c
604604
"Mozilla/5.0 (Linux; Android 16) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.0.0 Mobile DuckDuckGo/5 Safari/537.36"
605605
private const val REQUEST_CODE_CHOOSE_FILE = 100
606606
const val KEY_DUCK_AI_URL: String = "KEY_DUCK_AI_URL"
607+
const val KEY_DUCK_AI_URL: String = "KEY_TABS_URL"
607608
}
608609
}

duckchat/duckchat-impl/src/main/res/layout/activity_duck_chat_webview.xml

Lines changed: 163 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,175 @@
1717
-->
1818

1919
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
20+
xmlns:app="http://schemas.android.com/apk/res-auto"
2021
xmlns:tools="http://schemas.android.com/tools"
2122
android:layout_width="match_parent"
2223
android:layout_height="match_parent"
23-
android:orientation="vertical"
24-
tools:context="com.duckduckgo.app.about.AboutDuckDuckGoActivity">
24+
android:orientation="vertical">
2525

26-
<include
27-
android:id="@+id/includeToolbar"
28-
layout="@layout/include_default_toolbar" />
26+
<androidx.constraintlayout.widget.ConstraintLayout
27+
android:id="@+id/inputModeWidgetLayout"
28+
android:layout_width="match_parent"
29+
android:layout_height="?attr/actionBarSize"
30+
android:layout_marginStart="@dimen/omnibarCardMarginHorizontal"
31+
android:layout_marginTop="@dimen/omnibarCardMarginBottom"
32+
android:orientation="horizontal"
33+
app:layout_constraintEnd_toEndOf="parent"
34+
app:layout_constraintStart_toStartOf="parent"
35+
app:layout_constraintTop_toBottomOf="@id/spacer">
36+
37+
<com.google.android.material.card.MaterialCardView
38+
android:id="@+id/inputModeWidgetCard"
39+
style="@style/Widget.DuckDuckGo.OmnibarCardView"
40+
android:layout_width="0dp"
41+
android:layout_height="wrap_content"
42+
app:cardElevation="0dp"
43+
app:layout_constraintEnd_toStartOf="@id/inputModeMainButtonsContainer"
44+
app:layout_constraintStart_toStartOf="parent"
45+
app:layout_constraintTop_toTopOf="parent"
46+
app:strokeColor="?attr/daxColorAccentBlue"
47+
app:strokeWidth="@dimen/omnibarOutlineWidth">
48+
49+
<LinearLayout
50+
android:layout_width="match_parent"
51+
android:layout_height="wrap_content"
52+
android:orientation="vertical">
53+
54+
<LinearLayout
55+
android:id="@+id/inputModeWidgetCardContent"
56+
android:layout_width="match_parent"
57+
android:layout_height="wrap_content"
58+
android:orientation="horizontal"
59+
android:padding="@dimen/keyline_0">
60+
61+
<ImageView
62+
android:id="@+id/daxIcon"
63+
android:layout_width="@dimen/toolbarIcon"
64+
android:layout_height="@dimen/toolbarIcon"
65+
android:layout_gravity="center"
66+
android:importantForAccessibility="no"
67+
android:scaleType="fitCenter"
68+
app:srcCompat="@drawable/ic_duckai"
69+
tools:visibility="visible" />
70+
71+
<com.duckduckgo.common.ui.view.text.DaxTextView
72+
android:id="@+id/inputField"
73+
android:layout_width="0dp"
74+
android:layout_height="wrap_content"
75+
android:layout_weight="1"
76+
android:layout_gravity="center_vertical"
77+
android:layout_marginStart="10dp"
78+
app:typography="body1"
79+
app:textType="primary"
80+
android:text="Duck.ai" />
81+
82+
<ImageView
83+
android:id="@+id/inputFieldVoiceInputButton"
84+
android:layout_width="@dimen/toolbarIcon"
85+
android:layout_height="@dimen/toolbarIcon"
86+
android:layout_gravity="top"
87+
android:background="@drawable/selectable_item_experimental_background"
88+
android:gravity="center"
89+
android:importantForAccessibility="no"
90+
android:scaleType="center"
91+
android:visibility="gone"
92+
app:srcCompat="@drawable/ic_microphone_24"
93+
tools:visibility="visible" />
94+
95+
<ImageView
96+
android:id="@+id/inputFieldClearText"
97+
android:layout_width="@dimen/toolbarIcon"
98+
android:layout_height="@dimen/toolbarIcon"
99+
android:layout_gravity="top"
100+
android:background="@drawable/selectable_item_experimental_background"
101+
android:gravity="center"
102+
android:importantForAccessibility="no"
103+
android:scaleType="centerInside"
104+
android:visibility="gone"
105+
app:srcCompat="@drawable/ic_close_circle_small_secondary_24" />
106+
107+
</LinearLayout>
108+
109+
<FrameLayout
110+
android:id="@+id/inputScreenButtonsContainer"
111+
android:layout_width="wrap_content"
112+
android:layout_height="wrap_content"
113+
android:layout_gravity="end"
114+
android:layout_marginEnd="8dp"
115+
android:visibility="gone" />
116+
117+
</LinearLayout>
118+
119+
</com.google.android.material.card.MaterialCardView>
120+
121+
<androidx.constraintlayout.widget.ConstraintLayout
122+
android:id="@+id/inputModeMainButtonsContainer"
123+
android:layout_width="wrap_content"
124+
android:layout_height="@dimen/toolbarIcon"
125+
android:layout_marginStart="@dimen/keyline_2"
126+
app:layout_constraintBottom_toBottomOf="@id/inputModeWidgetCard"
127+
app:layout_constraintEnd_toEndOf="parent"
128+
app:layout_constraintStart_toEndOf="@id/inputModeWidgetCard"
129+
app:layout_constraintTop_toTopOf="@id/inputModeWidgetCard">
130+
131+
<FrameLayout
132+
android:id="@+id/inputFieldFireButton"
133+
android:layout_width="@dimen/toolbarIcon"
134+
android:layout_height="@dimen/toolbarIcon"
135+
android:background="@drawable/selectable_item_experimental_background"
136+
app:layout_constraintBottom_toBottomOf="parent"
137+
app:layout_constraintEnd_toStartOf="@id/inputFieldTabsMenu"
138+
app:layout_constraintStart_toStartOf="parent"
139+
app:layout_constraintTop_toTopOf="parent">
140+
141+
<ImageView
142+
android:id="@+id/fireIconImageView"
143+
android:layout_width="@dimen/bottomNavIcon"
144+
android:layout_height="@dimen/bottomNavIcon"
145+
android:layout_gravity="center"
146+
android:scaleType="center"
147+
android:src="@drawable/ic_fire_24" />
148+
</FrameLayout>
149+
150+
<com.duckduckgo.browser.ui.tabs.NewTabSwitcherButton
151+
android:id="@+id/inputFieldTabsMenu"
152+
android:layout_width="@dimen/toolbarIcon"
153+
android:layout_height="@dimen/toolbarIcon"
154+
app:layout_constraintBottom_toBottomOf="parent"
155+
app:layout_constraintEnd_toStartOf="@id/inputFieldBrowserMenu"
156+
app:layout_constraintStart_toEndOf="@id/inputFieldFireButton"
157+
app:layout_constraintTop_toTopOf="parent" />
158+
159+
<FrameLayout
160+
android:id="@+id/inputFieldBrowserMenu"
161+
android:layout_width="@dimen/toolbarIcon"
162+
android:layout_height="@dimen/toolbarIcon"
163+
android:background="@drawable/selectable_item_experimental_background"
164+
app:layout_constraintBottom_toBottomOf="parent"
165+
app:layout_constraintEnd_toEndOf="parent"
166+
app:layout_constraintStart_toEndOf="@id/inputFieldTabsMenu"
167+
app:layout_constraintTop_toTopOf="parent">
168+
169+
<ImageView
170+
android:id="@+id/browserMenuImageView"
171+
android:layout_width="@dimen/bottomNavIcon"
172+
android:layout_height="@dimen/bottomNavIcon"
173+
android:layout_gravity="center"
174+
android:scaleType="center"
175+
android:src="@drawable/ic_menu_vertical_24" />
176+
177+
</FrameLayout>
178+
179+
</androidx.constraintlayout.widget.ConstraintLayout>
180+
181+
</androidx.constraintlayout.widget.ConstraintLayout>
29182

30183
<WebView
31184
android:id="@+id/simpleWebview"
32185
android:layout_width="match_parent"
33-
android:layout_height="match_parent" />
186+
android:layout_height="match_parent"
187+
app:layout_constraintBottom_toBottomOf="@id/inputModeWidgetCard"
188+
app:layout_constraintEnd_toEndOf="parent"
189+
app:layout_constraintStart_toStartOf="parent" />
34190

35-
</LinearLayout>
191+
</LinearLayout>

0 commit comments

Comments
 (0)