diff --git a/app/build.gradle b/app/build.gradle index 29635f62b..c93049d25 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -149,6 +149,8 @@ android.applicationVariants.all { variant -> def buildType = variant.buildType.name + buildConfigField 'Boolean', 'COLLECTIONS_ENABLED', (buildType != "release").toString() + if (buildType == "release") { def versionCode = generatedVersionCode @@ -358,7 +360,7 @@ dependencies { } androidTestImplementation Deps.espresso_idling_resources - + androidTestImplementation Deps.tools_test_runner androidTestImplementation Deps.tools_test_rules androidTestUtil Deps.orchestrator diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index 75d81f0b3..c97350cfb 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -176,7 +176,7 @@ class HomeFragment : Fragment(), CoroutineScope { @SuppressWarnings("ComplexMethod") private fun handleTabAction(action: TabAction) { Do exhaustive when (action) { - is TabAction.Archive -> {} + is TabAction.SaveTabGroup -> {} is TabAction.MenuTapped -> { val isPrivate = (activity as HomeActivity).browsingModeManager.isPrivate val titles = requireComponents.core.sessionManager.sessions diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt index 193d4029b..e87b5b4ae 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlAdapter.kt @@ -9,7 +9,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import io.reactivex.Observer import kotlinx.coroutines.Job -import org.mozilla.fenix.home.sessioncontrol.viewholders.ArchiveTabsViewHolder +import org.mozilla.fenix.home.sessioncontrol.viewholders.SaveTabGroupViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.DeleteTabsViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.NoTabMessageViewHolder import org.mozilla.fenix.home.sessioncontrol.viewholders.PrivateBrowsingDescriptionViewHolder @@ -22,7 +22,7 @@ sealed class AdapterItem { object NoTabMessage : AdapterItem() data class TabItem(val tab: Tab) : AdapterItem() object PrivateBrowsingDescription : AdapterItem() - object ArchiveTabs : AdapterItem() + object SaveTabGroup : AdapterItem() object DeleteTabs : AdapterItem() val viewType: Int @@ -30,7 +30,7 @@ sealed class AdapterItem { TabHeader -> TabHeaderViewHolder.LAYOUT_ID NoTabMessage -> NoTabMessageViewHolder.LAYOUT_ID is TabItem -> TabViewHolder.LAYOUT_ID - ArchiveTabs -> ArchiveTabsViewHolder.LAYOUT_ID + SaveTabGroup -> SaveTabGroupViewHolder.LAYOUT_ID PrivateBrowsingDescription -> PrivateBrowsingDescriptionViewHolder.LAYOUT_ID DeleteTabs -> DeleteTabsViewHolder.LAYOUT_ID } @@ -56,7 +56,7 @@ class SessionControlAdapter( TabHeaderViewHolder.LAYOUT_ID -> TabHeaderViewHolder(view, actionEmitter) NoTabMessageViewHolder.LAYOUT_ID -> NoTabMessageViewHolder(view) TabViewHolder.LAYOUT_ID -> TabViewHolder(view, actionEmitter, job) - ArchiveTabsViewHolder.LAYOUT_ID -> ArchiveTabsViewHolder(view, actionEmitter) + SaveTabGroupViewHolder.LAYOUT_ID -> SaveTabGroupViewHolder(view, actionEmitter) PrivateBrowsingDescriptionViewHolder.LAYOUT_ID -> PrivateBrowsingDescriptionViewHolder( view, actionEmitter diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlComponent.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlComponent.kt index 7cb18c136..00b3ec11b 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlComponent.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlComponent.kt @@ -60,7 +60,7 @@ data class SessionControlState( ) : ViewState sealed class TabAction : Action { - object Archive : TabAction() + object SaveTabGroup : TabAction() object MenuTapped : TabAction() object Add : TabAction() data class CloseAll(val private: Boolean) : TabAction() diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlUIView.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlUIView.kt index 2da64d566..aa6d738a0 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlUIView.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/SessionControlUIView.kt @@ -14,6 +14,7 @@ import io.reactivex.functions.Consumer import org.mozilla.fenix.R import org.mozilla.fenix.mvi.UIView import androidx.recyclerview.widget.ItemTouchHelper +import org.mozilla.fenix.BuildConfig // Convert HomeState into a data structure HomeAdapter understands @SuppressWarnings("ComplexMethod") @@ -25,6 +26,8 @@ private fun SessionControlState.toAdapterList(): List { tabs.reversed().map(AdapterItem::TabItem).forEach { items.add(it) } if (mode == Mode.Private) { items.add(AdapterItem.DeleteTabs) + } else if (BuildConfig.COLLECTIONS_ENABLED) { + items.add(AdapterItem.SaveTabGroup) } } else { val item = if (mode == Mode.Private) AdapterItem.PrivateBrowsingDescription diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/ArchiveTabsViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/SaveTabGroupViewHolder.kt similarity index 73% rename from app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/ArchiveTabsViewHolder.kt rename to app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/SaveTabGroupViewHolder.kt index b20e13a6c..30890c4e4 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/ArchiveTabsViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/SaveTabGroupViewHolder.kt @@ -7,24 +7,24 @@ package org.mozilla.fenix.home.sessioncontrol.viewholders import android.view.View import androidx.recyclerview.widget.RecyclerView import io.reactivex.Observer -import kotlinx.android.synthetic.main.archive_tabs_button.view.* +import kotlinx.android.synthetic.main.save_tab_group_button.view.* import org.mozilla.fenix.R import org.mozilla.fenix.home.sessioncontrol.SessionControlAction import org.mozilla.fenix.home.sessioncontrol.TabAction import org.mozilla.fenix.home.sessioncontrol.onNext -class ArchiveTabsViewHolder( +class SaveTabGroupViewHolder( view: View, private val actionEmitter: Observer ) : RecyclerView.ViewHolder(view) { init { - view.save_session_button.setOnClickListener { - actionEmitter.onNext(TabAction.Archive) + view.save_tab_group_button.setOnClickListener { + actionEmitter.onNext(TabAction.SaveTabGroup) } } companion object { - const val LAYOUT_ID = R.layout.archive_tabs_button + const val LAYOUT_ID = R.layout.save_tab_group_button } } diff --git a/app/src/main/res/layout/archive_tabs_button.xml b/app/src/main/res/layout/save_tab_group_button.xml similarity index 89% rename from app/src/main/res/layout/archive_tabs_button.xml rename to app/src/main/res/layout/save_tab_group_button.xml index c5abb4465..325f67e52 100644 --- a/app/src/main/res/layout/archive_tabs_button.xml +++ b/app/src/main/res/layout/save_tab_group_button.xml @@ -4,7 +4,7 @@ - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 47e73b853..386db00f3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -242,8 +242,8 @@ Share Current session image - - Save session + + Save Tab Group Delete session @@ -401,7 +401,7 @@ Off - DEPRECATED + DEPRECATED