Skip to content

Commit

Permalink
feat: implemented SearchComplete
Browse files Browse the repository at this point in the history
Related to #4154
  • Loading branch information
VaiTon committed Aug 23, 2021
1 parent f6adce8 commit b33dadb
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 28 deletions.
19 changes: 12 additions & 7 deletions app/src/main/AndroidManifest.xml
Expand Up @@ -94,8 +94,8 @@

<activity
android:name=".features.splash.SplashActivity"
android:label="@string/app_name"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/SplashTheme">

<intent-filter>
Expand All @@ -110,8 +110,8 @@

<activity
android:name=".features.MainActivity"
android:launchMode="singleTop"
android:exported="true"
android:launchMode="singleTop"
android:windowSoftInputMode="stateUnchanged|adjustResize">

<intent-filter>
Expand All @@ -137,9 +137,9 @@
</activity>
<activity
android:name=".features.product.view.ProductViewActivity"
android:exported="true"
android:launchMode="singleTop"
android:parentActivityName=".features.MainActivity"
android:exported="true"
android:windowSoftInputMode="stateUnchanged|adjustResize">

<meta-data
Expand All @@ -151,8 +151,10 @@
android:label="@string/app_name_long"
tools:targetApi="m">
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<data
android:host="@string/deeplink_product"
android:pathPrefix="/product"
Expand Down Expand Up @@ -192,11 +194,11 @@

<activity
android:name=".features.categories.activity.CategoryActivity"
android:launchMode="singleTop"
android:exported="true"
android:launchMode="singleTop"
android:parentActivityName=".features.MainActivity">

<intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>

Expand All @@ -219,11 +221,13 @@
android:name=".features.search.ProductSearchActivity"
android:exported="true"
android:theme="@style/OFFTheme.NoActionBar">

<intent-filter
android:autoVerify="true"
android:label="@string/app_name_long"
tools:targetApi="m">
<action android:name="android.intent.action.VIEW" />

<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
Expand Down Expand Up @@ -278,10 +282,11 @@
android:scheme="https" />
</intent-filter>
</activity>

<activity
android:name=".features.additives.AdditiveListActivity"
android:launchMode="singleTop"
android:exported="true"
android:launchMode="singleTop"
android:parentActivityName=".features.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
Expand Down
Expand Up @@ -2,6 +2,10 @@ package openfoodfacts.github.scrachx.openfood.analytics

sealed class AnalyticsEvent(val category: String, val action: String, val name: String?, val value: Float?) {

object ProductSearch : AnalyticsEvent("search", "completed", null, null)

object ProductSearchStart : AnalyticsEvent("search", "started", null, null)

data class ScannedBarcode(val barcode: String) : AnalyticsEvent("scanner", "scanned", barcode, null)

data class ScannedBarcodeResultExpanded(val barcode: String?) : AnalyticsEvent("scanner", "result-expanded", barcode, null)
Expand Down
Expand Up @@ -46,15 +46,13 @@ class MatomoAnalytics @Inject constructor(
}

fun showAnalyticsBottomSheetIfNeeded(childFragmentManager: FragmentManager) {
if (sharedPreferences.contains(context.getString(R.string.pref_analytics_reporting_key))) {
//key already exists, do not show
return
}
val bottomSheet = AnalyticsUsageDialogFragment()
bottomSheet.show(childFragmentManager, AnalyticsUsageDialogFragment.TAG)
//key already exists, do not show
if (context.getString(R.string.pref_analytics_reporting_key) in sharedPreferences) return

AnalyticsUsageDialogFragment().show(childFragmentManager, AnalyticsUsageDialogFragment.TAG)
}

fun onAnalyticsEnabledToggled(enabled: Boolean) {
fun setEnabled(enabled: Boolean) {
tracker.isOptOut = !enabled
}
}
Expand Up @@ -87,7 +87,6 @@ import openfoodfacts.github.scrachx.openfood.features.login.LoginActivity.Compan
import openfoodfacts.github.scrachx.openfood.features.product.edit.ProductEditActivity
import openfoodfacts.github.scrachx.openfood.features.productlists.ProductListsActivity
import openfoodfacts.github.scrachx.openfood.features.scanhistory.ScanHistoryActivity
import openfoodfacts.github.scrachx.openfood.features.search.ProductSearchActivity.Companion.start
import openfoodfacts.github.scrachx.openfood.features.searchbycode.SearchByCodeFragment
import openfoodfacts.github.scrachx.openfood.features.shared.BaseActivity
import openfoodfacts.github.scrachx.openfood.images.ProductImage
Expand Down Expand Up @@ -127,6 +126,7 @@ import java.util.*
import javax.inject.Inject
import kotlin.time.Duration
import kotlin.time.ExperimentalTime
import openfoodfacts.github.scrachx.openfood.features.search.ProductSearchActivity.Companion.start as startSearch

@AndroidEntryPoint
class MainActivity : BaseActivity(), NavigationDrawerListener {
Expand Down Expand Up @@ -310,7 +310,7 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
ITEM_PREFERENCES -> newFragment = PreferencesFragment.newInstance()
ITEM_ABOUT -> CustomTabActivityHelper.openCustomTab(this@MainActivity, customTabsIntent, discoverUri, WebViewFallback())
ITEM_CONTRIBUTE -> CustomTabActivityHelper.openCustomTab(this@MainActivity, customTabsIntent, contributeUri, WebViewFallback())
ITEM_INCOMPLETE_PRODUCTS -> start(
ITEM_INCOMPLETE_PRODUCTS -> startSearch(
this@MainActivity,
SearchType.INCOMPLETE_PRODUCT,
""
Expand All @@ -326,7 +326,11 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
Toast.makeText(this@MainActivity, R.string.app_disabled_text, Toast.LENGTH_SHORT).show()
startActivity(Intent().apply {
action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
data = Uri.fromParts("package", BuildConfig.OFOTHERLINKAPP, null)
data = Uri.fromParts(
"package",
BuildConfig.OFOTHERLINKAPP,
null
)
})
}
} else {
Expand All @@ -346,7 +350,7 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
CustomTabActivityHelper.openCustomTab(
this@MainActivity,
CustomTabsIntent.Builder().build(),
Uri.parse(getString(R.string.advanced_search_url)),
getString(R.string.advanced_search_url).toUri(),
WebViewFallback()
)
}
Expand All @@ -356,7 +360,7 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
.setTitle(R.string.confirm_logout)
.setMessage(R.string.logout_dialog_content)
.setPositiveButton(android.R.string.ok) { _, _ -> logout() }
.setNegativeButton(R.string.dialog_cancel) { d, _ -> d.dismiss() }
.setNegativeButton(android.R.string.cancel) { d, _ -> d.dismiss() }
.show()
}
newFragment?.let(::swapToFragment)
Expand Down Expand Up @@ -517,7 +521,7 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
}

private fun openMyContributionsInSearchActivity() =
start(this, SearchType.CONTRIBUTOR, getUserLogin()!!)
startSearch(this, SearchType.CONTRIBUTOR, getUserLogin()!!)

private fun getProfileSettingDrawerItem(): IProfile<ProfileSettingDrawerItem> {
val userLogin = getUserLogin()
Expand Down Expand Up @@ -715,7 +719,7 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
SearchSuggestionProvider.MODE
)
suggestions.saveRecentQuery(query, null)
start(this, SearchType.SEARCH, query)
startSearch(this, SearchType.SEARCH, query)

searchMenuItem?.collapseActionView()
}
Expand Down Expand Up @@ -887,5 +891,7 @@ class MainActivity : BaseActivity(), NavigationDrawerListener {
private const val BARCODE_SHORTCUT = "BARCODE"
const val PRODUCT_SEARCH_KEY = "product_search"
private val LOG_TAG = MainActivity::class.simpleName!!

fun start(context: Context) = context.startActivity(Intent(context, MainActivity::class.java))
}
}
Expand Up @@ -272,7 +272,7 @@ class PreferencesFragment : PreferenceFragmentCompat(), INavigationItem, OnShare

requirePreference<SwitchPreference>(getString(R.string.pref_analytics_reporting_key)).let {
it.setOnPreferenceChangeListener { _, newValue ->
matomoAnalytics.onAnalyticsEnabledToggled(newValue == true)
matomoAnalytics.setEnabled(newValue == true)
true
}
}
Expand Down
Expand Up @@ -34,12 +34,12 @@ class AnalyticsUsageDialogFragment : BottomSheetDialogFragment() {
val binding: FragmentAnalyticsUsageBottomSheetBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_analytics_usage_bottom_sheet, container, false)
binding.grantButton.setOnClickListener {
saveAnalyticsReportingPref(true)
matomoAnalytics.onAnalyticsEnabledToggled(true)
matomoAnalytics.setEnabled(true)
dismiss()
}
binding.declineButton.setOnClickListener {
saveAnalyticsReportingPref(false)
matomoAnalytics.onAnalyticsEnabledToggled(false)
matomoAnalytics.setEnabled(false)
dismiss()
}
return binding.root
Expand Down
Expand Up @@ -32,6 +32,8 @@ import kotlinx.coroutines.rx2.await
import kotlinx.coroutines.rx2.awaitSingleOrNull
import kotlinx.coroutines.withContext
import openfoodfacts.github.scrachx.openfood.R
import openfoodfacts.github.scrachx.openfood.analytics.AnalyticsEvent
import openfoodfacts.github.scrachx.openfood.analytics.MatomoAnalytics
import openfoodfacts.github.scrachx.openfood.customtabs.CustomTabActivityHelper
import openfoodfacts.github.scrachx.openfood.databinding.ActivityProductBrowsingListBinding
import openfoodfacts.github.scrachx.openfood.features.adapters.ProductSearchAdapter
Expand All @@ -55,6 +57,9 @@ class ProductSearchActivity : BaseActivity() {
private var _binding: ActivityProductBrowsingListBinding? = null
private val binding get() = _binding!!

@Inject
lateinit var analytics: MatomoAnalytics

@Inject
lateinit var productRepository: ProductRepository

Expand Down Expand Up @@ -89,6 +94,9 @@ class ProductSearchActivity : BaseActivity() {
setSupportActionBar(binding.toolbarInclude.toolbar)
supportActionBar!!.setDisplayHomeAsUpEnabled(true)

// Track search without details
analytics.trackEvent(AnalyticsEvent.ProductSearch)

// OnClick
binding.buttonTryAgain.setOnClickListener { reloadSearch() }
binding.addProduct.setOnClickListener { addProduct() }
Expand Down Expand Up @@ -548,14 +556,12 @@ class ProductSearchActivity : BaseActivity() {
* @param searchTitle the title used in the activity for this search query
* @param type the type of search
*/
@JvmStatic
fun start(context: Context, type: SearchType, searchQuery: String, searchTitle: String = searchQuery) =
start(context, SearchInfo(type, searchQuery, searchTitle))

/**
* @see [start]
*/
@JvmStatic
private fun start(context: Context, searchInfo: SearchInfo) {
context.startActivity(Intent(context, ProductSearchActivity::class.java).apply {
putExtra(SEARCH_INFO, searchInfo)
Expand Down
Expand Up @@ -137,7 +137,7 @@ class WelcomeActivity : BaseActivity() {

private fun saveThenLaunchHome(grant: Boolean) {
saveAnalyticsReportingPref(grant)
matomoAnalytics.onAnalyticsEnabledToggled(grant)
matomoAnalytics.setEnabled(grant)
launchHome()
}

Expand All @@ -149,7 +149,7 @@ class WelcomeActivity : BaseActivity() {

private fun launchHome() {
prefManager.isFirstTimeLaunch = false
startActivity(Intent(this@WelcomeActivity, MainActivity::class.java))
MainActivity.start(this)
finish()
}

Expand Down

0 comments on commit b33dadb

Please sign in to comment.