Skip to content

Commit 7e3ad98

Browse files
authored
Make activities enable popup options they want
Make activities enable popup menu options they want rather than disabling options they don't want
1 parent d426915 commit 7e3ad98

File tree

4 files changed

+40
-57
lines changed

4 files changed

+40
-57
lines changed

app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt

Lines changed: 12 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,8 @@ class BrowserActivity : DuckDuckGoActivity(), BookmarkDialogCreationListener {
9999
super.onCreate(savedInstanceState)
100100

101101
setContentView(R.layout.activity_browser)
102-
103-
createWebView()
104102
createPopupMenu()
103+
createWebView()
105104
configureObservers()
106105
configureToolbar()
107106
configureWebView()
@@ -116,6 +115,15 @@ class BrowserActivity : DuckDuckGoActivity(), BookmarkDialogCreationListener {
116115

117116
private fun createPopupMenu() {
118117
popupMenu = BrowserPopupMenu(layoutInflater)
118+
val view = popupMenu.contentView
119+
popupMenu.apply {
120+
enableMenuOption(view.forwardPopupMenuItem) { webView.goForward() }
121+
enableMenuOption(view.backPopupMenuItem) { webView.goBack() }
122+
enableMenuOption(view.refreshPopupMenuItem) { webView.reload() }
123+
enableMenuOption(view.bookmarksPopupMenuItem) { launchBookmarks() }
124+
enableMenuOption(view.addBookmarksPopupMenuItem) { addBookmark() }
125+
enableMenuOption(view.settingsPopupMenuItem) { launchSettings() }
126+
}
119127
}
120128

121129
private fun createWebView() {
@@ -433,42 +441,6 @@ class BrowserActivity : DuckDuckGoActivity(), BookmarkDialogCreationListener {
433441
popupMenu.show(rootView, toolbar)
434442
}
435443

436-
@Suppress("UNUSED_PARAMETER")
437-
fun onGoForwardClicked(view: View) {
438-
webView.goForward()
439-
popupMenu.dismiss()
440-
}
441-
442-
@Suppress("UNUSED_PARAMETER")
443-
fun onGoBackClicked(view: View) {
444-
webView.goBack()
445-
popupMenu.dismiss()
446-
}
447-
448-
@Suppress("UNUSED_PARAMETER")
449-
fun onRefreshClicked(view: View) {
450-
webView.reload()
451-
popupMenu.dismiss()
452-
}
453-
454-
@Suppress("UNUSED_PARAMETER")
455-
fun onBookmarksClicked(view: View) {
456-
launchBookmarksView()
457-
popupMenu.dismiss()
458-
}
459-
460-
@Suppress("UNUSED_PARAMETER")
461-
fun onAddBookmarkClicked(view: View) {
462-
addBookmark()
463-
popupMenu.dismiss()
464-
}
465-
466-
@Suppress("UNUSED_PARAMETER")
467-
fun onSettingsClicked(view: View) {
468-
launchSettingsView()
469-
popupMenu.dismiss()
470-
}
471-
472444
private fun addBookmark() {
473445

474446
val addBookmarkDialog = BookmarkAddEditDialogFragment.createDialogCreationMode(
@@ -479,11 +451,11 @@ class BrowserActivity : DuckDuckGoActivity(), BookmarkDialogCreationListener {
479451
addBookmarkDialog.show(supportFragmentManager, ADD_BOOKMARK_FRAGMENT_TAG)
480452
}
481453

482-
private fun launchSettingsView() {
454+
private fun launchSettings() {
483455
startActivity(SettingsActivity.intent(this))
484456
}
485457

486-
private fun launchBookmarksView() {
458+
private fun launchBookmarks() {
487459
startActivity(BookmarksActivity.intent(this))
488460
}
489461

app/src/main/java/com/duckduckgo/app/browser/BrowserPopupMenu.kt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import android.view.LayoutInflater
2424
import android.view.View
2525
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
2626
import android.widget.PopupWindow
27+
import kotlinx.android.synthetic.main.popup_window_browser_menu.view.*
2728

2829
class BrowserPopupMenu : PopupWindow {
2930

@@ -38,9 +39,26 @@ class BrowserPopupMenu : PopupWindow {
3839
elevation = 6.toFloat()
3940
}
4041

42+
disableButtons()
4143
animationStyle = android.R.style.Animation_Dialog
4244
}
4345

46+
private fun disableButtons() {
47+
contentView.apply {
48+
backPopupMenuItem.isEnabled = false
49+
forwardPopupMenuItem.isEnabled = false
50+
refreshPopupMenuItem.isEnabled = false
51+
}
52+
}
53+
54+
fun enableMenuOption(menuView: View, onClick: () -> Unit) {
55+
menuView.isEnabled = true
56+
menuView.setOnClickListener {
57+
onClick()
58+
dismiss()
59+
}
60+
}
61+
4462
fun show(rootView: View, anchorView: View) {
4563
val anchorLocation = IntArray(2)
4664
anchorView.getLocationOnScreen(anchorLocation)
@@ -51,7 +69,7 @@ class BrowserPopupMenu : PopupWindow {
5169

5270
companion object {
5371

54-
val margin = 30
72+
private const val margin = 30
5573

5674
fun inflate(layoutInflater: LayoutInflater): View {
5775
return layoutInflater.inflate(R.layout.popup_window_browser_menu, null)

app/src/main/java/com/duckduckgo/app/home/HomeActivity.kt

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import android.os.Bundle
2222
import android.support.v4.app.ActivityOptionsCompat
2323
import android.view.Menu
2424
import android.view.MenuItem
25-
import android.view.View
2625
import android.webkit.CookieManager
2726
import com.duckduckgo.app.bookmarks.ui.BookmarksActivity
2827
import com.duckduckgo.app.browser.BrowserActivity
@@ -66,11 +65,10 @@ class HomeActivity : DuckDuckGoActivity() {
6665

6766
private fun configurePopupMenu() {
6867
popupMenu = BrowserPopupMenu(layoutInflater)
69-
popupMenu.contentView.apply {
70-
backPopupMenuItem.isEnabled = false
71-
forwardPopupMenuItem.isEnabled = false
72-
refreshPopupMenuItem.isEnabled = false
73-
addBookmarksPopupMenuItem.isEnabled = false
68+
val view = popupMenu.contentView
69+
popupMenu.apply {
70+
enableMenuOption(view.bookmarksPopupMenuItem) { launchBookmarks() }
71+
enableMenuOption(view.settingsPopupMenuItem) { launchSettings() }
7472
}
7573
}
7674

@@ -132,14 +130,12 @@ class HomeActivity : DuckDuckGoActivity() {
132130
popupMenu.show(rootView, toolbar)
133131
}
134132

135-
fun onBookmarksClicked(view: View) {
133+
fun launchBookmarks() {
136134
startActivity(BookmarksActivity.intent(this))
137-
popupMenu.dismiss()
138135
}
139136

140-
fun onSettingsClicked(view: View) {
137+
fun launchSettings() {
141138
startActivity(SettingsActivity.intent(this))
142-
popupMenu.dismiss()
143139
}
144140

145141
override fun onDestroy() {

app/src/main/res/layout/popup_window_browser_menu.xml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
android:layout_height="wrap_content"
3636
android:layout_weight="1"
3737
android:contentDescription="@string/back"
38-
android:onClick="onGoBackClicked"
3938
android:src="@drawable/ic_arrow_back_24px" />
4039

4140
<ImageButton
@@ -45,7 +44,6 @@
4544
android:layout_height="wrap_content"
4645
android:layout_weight="1"
4746
android:contentDescription="@string/forward"
48-
android:onClick="onGoForwardClicked"
4947
android:src="@drawable/ic_arrow_forward_24px" />
5048

5149
<ImageButton
@@ -55,7 +53,6 @@
5553
android:layout_height="wrap_content"
5654
android:layout_weight="1"
5755
android:contentDescription="@string/refresh"
58-
android:onClick="onRefreshClicked"
5956
android:src="@drawable/ic_refresh_24px" />
6057

6158
</LinearLayout>
@@ -79,23 +76,23 @@
7976
style="@style/BrowserTextMenuItem"
8077
android:layout_width="match_parent"
8178
android:layout_height="wrap_content"
82-
android:onClick="onBookmarksClicked"
79+
android:enabled="false"
8380
android:text="@string/bookmarksMenuTitle" />
8481

8582
<TextView
8683
android:id="@+id/addBookmarksPopupMenuItem"
8784
style="@style/BrowserTextMenuItem"
8885
android:layout_width="match_parent"
8986
android:layout_height="wrap_content"
90-
android:onClick="onAddBookmarkClicked"
87+
android:enabled="false"
9188
android:text="@string/addBookmarkMenuTitle" />
9289

9390
<TextView
9491
android:id="@+id/settingsPopupMenuItem"
9592
style="@style/BrowserTextMenuItem"
9693
android:layout_width="match_parent"
9794
android:layout_height="wrap_content"
98-
android:onClick="onSettingsClicked"
95+
android:enabled="false"
9996
android:text="@string/settingsMenuItemTitle" />
10097

10198
</LinearLayout>

0 commit comments

Comments
 (0)