From e6a18759859e2d682f7035c632b7c9c2758638d4 Mon Sep 17 00:00:00 2001 From: Craig Russell Date: Tue, 28 Aug 2018 11:03:54 +0100 Subject: [PATCH 1/4] Remove null check on selected tab which was causing a bug --- .../main/java/com/duckduckgo/app/tabs/ui/TabSwitcherAdapter.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherAdapter.kt b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherAdapter.kt index 0f2a8c23512e..05e4d37a1f17 100644 --- a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherAdapter.kt +++ b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherAdapter.kt @@ -76,7 +76,6 @@ class TabSwitcherAdapter(private val context: Context, private val itemClickList fun updateData(data: List?, selectedTab: TabEntity?) { data ?: return - selectedTab ?: return this.data = data this.selectedTab = selectedTab From 27676f48ca391dc69cb731dcbac15b26aee42122 Mon Sep 17 00:00:00 2001 From: Craig Russell Date: Tue, 28 Aug 2018 11:04:11 +0100 Subject: [PATCH 2/4] Update to latest AGP version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index d4953fb5438d..3a4e42858e14 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.2.0-rc01' + classpath 'com.android.tools.build:gradle:3.2.0-rc02' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong From 2d81965021bb8188bb38f8318bb6e1c98c42c26f Mon Sep 17 00:00:00 2001 From: Craig Russell Date: Tue, 28 Aug 2018 11:05:04 +0100 Subject: [PATCH 3/4] Show toolbar when opening a new background tab so animation is visible --- .../java/com/duckduckgo/app/browser/BrowserTabFragment.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index a05ab9c9fec3..b3cf2abff21d 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -17,8 +17,6 @@ package com.duckduckgo.app.browser import android.Manifest -import android.animation.Animator -import android.animation.AnimatorListenerAdapter import android.animation.LayoutTransition.CHANGING import android.animation.LayoutTransition.DISAPPEARING import android.annotation.SuppressLint @@ -44,7 +42,6 @@ import android.support.v4.content.pm.ShortcutManagerCompat import android.support.v7.app.AlertDialog import android.support.v7.widget.LinearLayoutManager import android.text.Editable -import android.text.Layout import android.view.* import android.view.View.VISIBLE import android.view.inputmethod.EditorInfo @@ -54,7 +51,6 @@ import android.webkit.WebSettings import android.webkit.WebView import android.webkit.WebView.FindListener import android.widget.EditText -import android.widget.FrameLayout import android.widget.TextView import androidx.core.view.isVisible import androidx.core.view.postDelayed @@ -385,6 +381,7 @@ class BrowserTabFragment : Fragment(), FindListener { } private fun openInNewBackgroundTab() { + appBarLayout.setExpanded(true, true) viewModel.tabs.removeObservers(this) val view = tabsButton?.actionView as TabSwitcherButton view.increment { From c59a38c83501b2e6aed81083d2d21c3cf8f591e1 Mon Sep 17 00:00:00 2001 From: Craig Russell Date: Tue, 28 Aug 2018 11:34:34 +0100 Subject: [PATCH 4/4] Add option to close all tabs (without clearing all stored data) --- .../duckduckgo/app/tabs/ui/TabSwitcherActivity.kt | 8 +++++++- .../main/res/menu/menu_tab_switcher_activity.xml | 13 ++++++++++--- app/src/main/res/values/strings.xml | 1 + 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt index 91ed254d0d3c..088902d31c17 100644 --- a/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/tabs/ui/TabSwitcherActivity.kt @@ -25,7 +25,6 @@ import android.support.v7.widget.LinearLayoutManager import android.view.Menu import android.view.MenuItem import com.duckduckgo.app.browser.R -import com.duckduckgo.app.browser.WebDataManager import com.duckduckgo.app.global.DuckDuckGoActivity import com.duckduckgo.app.global.ViewModelFactory import com.duckduckgo.app.global.view.ClearPersonalDataAction @@ -106,6 +105,7 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherAdapter.TabSwitched when (item.itemId) { R.id.fire -> onFire() R.id.newTab -> onNewTabRequested() + R.id.closeAllTabs -> closeAllTabs() } return super.onOptionsItemSelected(item) } @@ -129,6 +129,12 @@ class TabSwitcherActivity : DuckDuckGoActivity(), TabSwitcherAdapter.TabSwitched viewModel.onTabDeleted(tab) } + private fun closeAllTabs() { + viewModel.tabs.value?.forEach { + viewModel.onTabDeleted(it) + } + } + override fun finish() { clearObserversEarlyToStopViewUpdates() super.finish() diff --git a/app/src/main/res/menu/menu_tab_switcher_activity.xml b/app/src/main/res/menu/menu_tab_switcher_activity.xml index c0e33701208b..a2108cbb2f39 100644 --- a/app/src/main/res/menu/menu_tab_switcher_activity.xml +++ b/app/src/main/res/menu/menu_tab_switcher_activity.xml @@ -15,18 +15,25 @@ --> + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + tools:ignore="AlwaysShowAction"> + app:showAsAction="always" /> + app:showAsAction="always" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d4ab5c9ba071..fa85b0cbb62d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -83,6 +83,7 @@ Tap fire to forget everything + Close All Tabs Privacy Dashboard