Add history metadata feature to the settings menu
This commit is contained in:
parent
1de7e22080
commit
0f861236c1
|
@ -21,10 +21,10 @@ import mozilla.components.browser.state.state.SessionState
|
|||
import mozilla.components.browser.state.state.TabSessionState
|
||||
import mozilla.components.browser.thumbnails.BrowserThumbnails
|
||||
import mozilla.components.browser.toolbar.BrowserToolbar
|
||||
import mozilla.components.concept.engine.permission.SitePermissions
|
||||
import mozilla.components.feature.app.links.AppLinksUseCases
|
||||
import mozilla.components.feature.contextmenu.ContextMenuCandidate
|
||||
import mozilla.components.feature.readerview.ReaderViewFeature
|
||||
import mozilla.components.concept.engine.permission.SitePermissions
|
||||
import mozilla.components.feature.tab.collections.TabCollection
|
||||
import mozilla.components.feature.tabs.WindowFeature
|
||||
import mozilla.components.support.base.feature.UserInteractionHandler
|
||||
|
@ -207,7 +207,7 @@ class BrowserFragment : BaseBrowserFragment(), UserInteractionHandler {
|
|||
override fun onStop() {
|
||||
super.onStop()
|
||||
updateLastBrowseActivity()
|
||||
if (FeatureFlags.historyMetadataFeature) {
|
||||
if (requireContext().settings().historyMetadataFeature) {
|
||||
updateHistoryMetadata()
|
||||
}
|
||||
pwaOnboardingObserver?.stop()
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
|
||||
package org.mozilla.fenix.components
|
||||
|
||||
import org.mozilla.fenix.gecko.GeckoProvider
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import android.os.Build
|
||||
|
@ -14,8 +13,8 @@ import mozilla.components.browser.engine.gecko.GeckoEngine
|
|||
import mozilla.components.browser.engine.gecko.fetch.GeckoViewFetchClient
|
||||
import mozilla.components.browser.engine.gecko.permission.GeckoSitePermissionsStorage
|
||||
import mozilla.components.browser.icons.BrowserIcons
|
||||
import mozilla.components.browser.state.engine.EngineMiddleware
|
||||
import mozilla.components.browser.session.storage.SessionStorage
|
||||
import mozilla.components.browser.state.engine.EngineMiddleware
|
||||
import mozilla.components.browser.state.state.BrowserState
|
||||
import mozilla.components.browser.state.store.BrowserStore
|
||||
import mozilla.components.browser.storage.sync.PlacesBookmarksStorage
|
||||
|
@ -66,13 +65,13 @@ import mozilla.components.support.locale.LocaleManager
|
|||
import org.mozilla.fenix.AppRequestInterceptor
|
||||
import org.mozilla.fenix.BuildConfig
|
||||
import org.mozilla.fenix.Config
|
||||
import org.mozilla.fenix.FeatureFlags
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.search.SearchMigration
|
||||
import org.mozilla.fenix.downloads.DownloadService
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.settings
|
||||
import org.mozilla.fenix.gecko.GeckoProvider
|
||||
import org.mozilla.fenix.historymetadata.DefaultHistoryMetadataService
|
||||
import org.mozilla.fenix.historymetadata.HistoryMetadataMiddleware
|
||||
import org.mozilla.fenix.historymetadata.HistoryMetadataService
|
||||
|
@ -85,7 +84,6 @@ import org.mozilla.fenix.telemetry.TelemetryMiddleware
|
|||
import org.mozilla.fenix.utils.Mockable
|
||||
import org.mozilla.fenix.utils.getUndoDelay
|
||||
import org.mozilla.geckoview.GeckoRuntime
|
||||
import java.lang.IllegalStateException
|
||||
|
||||
/**
|
||||
* Component group for all core browser functionality.
|
||||
|
@ -213,7 +211,7 @@ class Core(
|
|||
LastMediaAccessMiddleware()
|
||||
)
|
||||
|
||||
if (FeatureFlags.historyMetadataFeature) {
|
||||
if (context.settings().historyMetadataFeature) {
|
||||
middlewareList += HistoryMetadataMiddleware(historyMetadataService)
|
||||
}
|
||||
|
||||
|
|
|
@ -45,16 +45,8 @@ import androidx.recyclerview.widget.RecyclerView.SCROLL_STATE_IDLE
|
|||
import com.google.android.material.appbar.AppBarLayout
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import kotlinx.android.synthetic.main.fragment_home.*
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.bottomBarShadow
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.bottom_bar
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.homeAppBar
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.menuButton
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.sessionControlRecyclerView
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.tab_button
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.toolbar
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.toolbarLayout
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.toolbar_wrapper
|
||||
import kotlinx.android.synthetic.main.no_collections_message.view.add_tabs_to_collections_button
|
||||
import kotlinx.android.synthetic.main.fragment_home.view.*
|
||||
import kotlinx.android.synthetic.main.no_collections_message.view.*
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
import kotlinx.coroutines.Dispatchers.Main
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
|
@ -117,9 +109,9 @@ import org.mozilla.fenix.historymetadata.controller.DefaultHistoryMetadataContro
|
|||
import org.mozilla.fenix.home.mozonline.showPrivacyPopWindow
|
||||
import org.mozilla.fenix.home.recentbookmarks.RecentBookmarksFeature
|
||||
import org.mozilla.fenix.home.recentbookmarks.controller.DefaultRecentBookmarksController
|
||||
import org.mozilla.fenix.home.recenttabs.RecentTabsListFeature
|
||||
import org.mozilla.fenix.home.recenttabs.controller.DefaultRecentTabsController
|
||||
import org.mozilla.fenix.home.sessioncontrol.DefaultSessionControlController
|
||||
import org.mozilla.fenix.home.recenttabs.RecentTabsListFeature
|
||||
import org.mozilla.fenix.home.sessioncontrol.SessionControlInteractor
|
||||
import org.mozilla.fenix.home.sessioncontrol.SessionControlView
|
||||
import org.mozilla.fenix.home.sessioncontrol.viewholders.CollectionViewHolder
|
||||
|
@ -283,7 +275,7 @@ class HomeFragment : Fragment() {
|
|||
)
|
||||
}
|
||||
|
||||
if (FeatureFlags.historyMetadataFeature) {
|
||||
if (requireContext().settings().historyMetadataFeature) {
|
||||
historyMetadataFeature.set(
|
||||
feature = HistoryMetadataFeature(
|
||||
homeStore = homeFragmentStore,
|
||||
|
|
|
@ -26,11 +26,11 @@ import mozilla.components.feature.syncedtabs.DeviceIndicators
|
|||
import mozilla.components.feature.syncedtabs.SyncedTabsStorageSuggestionProvider
|
||||
import mozilla.components.feature.tabs.TabsUseCases
|
||||
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
||||
import org.mozilla.fenix.FeatureFlags
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.settings
|
||||
import org.mozilla.fenix.search.SearchEngineSource
|
||||
import org.mozilla.fenix.search.SearchFragmentState
|
||||
|
||||
|
@ -250,7 +250,7 @@ class AwesomeBarView(
|
|||
val providersToAdd = mutableSetOf<AwesomeBar.SuggestionProvider>()
|
||||
|
||||
if (state.showHistorySuggestions) {
|
||||
if (FeatureFlags.historyMetadataFeature) {
|
||||
if (activity.settings().historyMetadataFeature) {
|
||||
providersToAdd.add(historyMetadataProvider)
|
||||
} else {
|
||||
providersToAdd.add(historyStorageProvider)
|
||||
|
@ -284,7 +284,7 @@ class AwesomeBarView(
|
|||
providersToRemove.add(shortcutsEnginePickerProvider)
|
||||
|
||||
if (!state.showHistorySuggestions) {
|
||||
if (FeatureFlags.historyMetadataFeature) {
|
||||
if (activity.settings().historyMetadataFeature) {
|
||||
providersToRemove.add(historyMetadataProvider)
|
||||
} else {
|
||||
providersToRemove.add(historyStorageProvider)
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
package org.mozilla.fenix.settings
|
||||
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import android.widget.Toast
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.SwitchPreference
|
||||
|
@ -13,6 +16,7 @@ import org.mozilla.fenix.R
|
|||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.settings
|
||||
import org.mozilla.fenix.ext.showToolbar
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
class SecretSettingsFragment : PreferenceFragmentCompat() {
|
||||
|
||||
|
@ -30,6 +34,31 @@ class SecretSettingsFragment : PreferenceFragmentCompat() {
|
|||
onPreferenceChangeListener = SharedPreferenceUpdater()
|
||||
}
|
||||
|
||||
requirePreference<SwitchPreference>(R.string.pref_key_history_metadata_feature).apply {
|
||||
isVisible = true
|
||||
isChecked = context.settings().historyMetadataFeature
|
||||
onPreferenceChangeListener = object : SharedPreferenceUpdater() {
|
||||
override fun onPreferenceChange(preference: Preference, newValue: Any?): Boolean {
|
||||
val result = super.onPreferenceChange(preference, newValue)
|
||||
|
||||
Toast.makeText(
|
||||
context,
|
||||
getString(R.string.toast_history_metadata_feature_done),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
|
||||
Handler(Looper.getMainLooper()).postDelayed(
|
||||
{
|
||||
exitProcess(0)
|
||||
},
|
||||
EXIT_DELAY
|
||||
)
|
||||
|
||||
return result
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
requirePreference<SwitchPreference>(R.string.pref_key_allow_third_party_root_certs).apply {
|
||||
isVisible = true
|
||||
isChecked = context.settings().allowThirdPartyRootCerts
|
||||
|
@ -48,4 +77,8 @@ class SecretSettingsFragment : PreferenceFragmentCompat() {
|
|||
onPreferenceChangeListener = SharedPreferenceUpdater()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val EXIT_DELAY = 3000L
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1139,6 +1139,17 @@ class Settings(private val appContext: Context) : PreferencesHolder {
|
|||
featureFlag = FeatureFlags.addressesFeature
|
||||
)
|
||||
|
||||
var isHistoryMetadataEnabled by booleanPreference(
|
||||
appContext.getPreferenceKey(R.string.pref_key_history_metadata_feature),
|
||||
default = false
|
||||
)
|
||||
|
||||
var historyMetadataFeature by featureFlagPreference(
|
||||
appContext.getPreferenceKey(R.string.pref_key_history_metadata_feature),
|
||||
default = FeatureFlags.historyMetadataFeature,
|
||||
featureFlag = FeatureFlags.historyMetadataFeature || isHistoryMetadataEnabled
|
||||
)
|
||||
|
||||
/**
|
||||
* Storing desktop item checkbox value in the home screen menu.
|
||||
* If set to true, next opened tab from home screen will be opened in desktop mode.
|
||||
|
|
|
@ -285,4 +285,5 @@
|
|||
<string name="pref_key_show_address_feature" translatable="false">pref_key_show_address_feature</string>
|
||||
<string name="pref_key_nimbus_experiments" translatable="false">pref_key_nimbus_experiments</string>
|
||||
<string name="pref_key_nimbus_use_preview" translatable="false">pref_key_nimbus_use_preview</string>
|
||||
<string name="pref_key_history_metadata_feature" translatable="false">pref_key_history_metadata_feature</string>
|
||||
</resources>
|
||||
|
|
|
@ -37,6 +37,10 @@
|
|||
<string name="preferences_debug_info" translatable="false">Secret Debug Info</string>
|
||||
<!-- Label for enabling Address Autofill -->
|
||||
<string name="preferences_debug_settings_enable_address_feature" translatable="false">Enable Address Autofill</string>
|
||||
<!-- Label for enabling History Metadata feature -->
|
||||
<string name="preferences_debug_settings_history_metadata_feature" translatable="false">Enable History Metadata</string>
|
||||
<!-- Toast shown after confirming the History Metadata feature configuration -->
|
||||
<string name="toast_history_metadata_feature_done">History Metadata feature modified. Quitting the application to apply changes…</string>
|
||||
<!-- Label for allowing third party root certificates from the Android OS CA store preference -->
|
||||
<string name="preferences_debug_settings_allow_third_party_root_certs">Use third party CA certificates</string>
|
||||
<!-- Label for a longer description of allowing third party root certificates from the Android OS CA store preference -->
|
||||
|
|
|
@ -9,6 +9,11 @@
|
|||
android:key="@string/pref_key_show_address_feature"
|
||||
android:title="@string/preferences_debug_settings_enable_address_feature"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="@string/pref_key_history_metadata_feature"
|
||||
android:title="@string/preferences_debug_settings_history_metadata_feature"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreference
|
||||
android:defaultValue="false"
|
||||
android:key="@string/pref_key_allow_third_party_root_certs"
|
||||
|
|
Loading…
Reference in New Issue
Block a user