Skip to content

Commit

Permalink
For mozilla-mobile#7249 Create a search widget
Browse files Browse the repository at this point in the history
  • Loading branch information
iorgamgabriel committed Aug 9, 2022
1 parent 0794dea commit 5dd5eeb
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 7 deletions.
54 changes: 54 additions & 0 deletions app/metrics.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1900,3 +1900,57 @@ metrics:
metadata:
tags:
- Performance
search_widget_installed:
type: boolean
lifetime: application
description: |
Whether or not the search widget is installed
send_in_pings:
- metrics
bugs:
- https://github.com/mozilla-mobile/fenix/issues/
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/
data_sensitivity:
- interaction
notification_emails:
- [email protected]
expires: 119
metadata:
tags:
- Search

search_widget:
new_tab_button:
type: event
description: |
A user pressed anywhere from the Focus logo until the start of the
microphone icon, opening a new tab search screen.
bugs:
- https://github.com/mozilla-mobile/fenix/issues/
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/
data_sensitivity:
- interaction
notification_emails:
- [email protected]
expires: 119
metadata:
tags:
- Search
voice_button:
type: event
description: |
A user pressed the microphone icon, opening a new voice search screen.
bugs:
- https://github.com/mozilla-mobile/fenix/issues/
data_reviews:
- https://github.com/mozilla-mobile/fenix/pull/
data_sensitivity:
- interaction
notification_emails:
- [email protected]
expires: 119
metadata:
tags:
- Search
3 changes: 3 additions & 0 deletions app/src/main/java/org/mozilla/focus/FocusApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import mozilla.components.support.locale.LocaleAwareApplication
import mozilla.components.support.rusthttp.RustHttpConfig
import mozilla.components.support.rustlog.RustLog
import mozilla.components.support.webextensions.WebExtensionSupport
import org.mozilla.focus.GleanMetrics.Metrics
import org.mozilla.focus.biometrics.LockObserver
import org.mozilla.focus.ext.settings
import org.mozilla.focus.navigation.StoreLink
Expand Down Expand Up @@ -87,6 +88,8 @@ open class FocusApplication : LocaleAwareApplication(), CoroutineScope {
components.appStartReasonProvider.registerInAppOnCreate(this)
components.startupActivityLog.registerInAppOnCreate(this)

Metrics.searchWidgetInstalled.set(settings.searchWidgetInstalled)

ProcessLifecycleOwner.get().lifecycle.addObserver(lockObserver)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ import android.app.Activity
import android.content.Intent
import android.os.Bundle
import mozilla.components.feature.intent.ext.sanitize
import mozilla.components.service.glean.private.NoExtras
import mozilla.components.support.utils.toSafeIntent
import org.mozilla.focus.GleanMetrics.SearchWidget
import org.mozilla.focus.ext.components
import org.mozilla.focus.session.IntentProcessor
import org.mozilla.focus.utils.SupportUtils
Expand All @@ -25,7 +27,9 @@ class IntentReceiverActivity : Activity() {
super.onCreate(savedInstanceState)

val intent = intent.sanitize().toSafeIntent()

if (intent.getBooleanExtra(SEARCH_WIDGET, false)) {
SearchWidget.newTabButton.record(NoExtras())
}
if (intent.dataString.equals(SupportUtils.OPEN_WITH_DEFAULT_BROWSER_URL)) {
dispatchNormalIntent()
return
Expand Down Expand Up @@ -61,4 +65,8 @@ class IntentReceiverActivity : Activity() {

startActivity(intent)
}

companion object {
const val SEARCH_WIDGET = "search_widget"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import android.content.Intent
import mozilla.components.feature.search.widget.BaseVoiceSearchActivity
import mozilla.components.support.locale.LocaleManager
import mozilla.components.support.locale.LocaleManager.getCurrentLocale
import mozilla.telemetry.glean.private.NoExtras
import org.mozilla.focus.GleanMetrics.SearchWidget
import org.mozilla.focus.activity.IntentReceiverActivity
import java.util.Locale

Expand All @@ -18,15 +20,15 @@ class VoiceSearchActivity : BaseVoiceSearchActivity() {
?: LocaleManager.getSystemDefault()
}

override fun recordVoiceButtonTelemetry() {
// TO DO add
}

override fun startIntentAfterVoiceSearch(spokenText: String?) {
override fun onSpeechRecognitionEnded(spokenText: String) {
val intent = Intent(this, IntentReceiverActivity::class.java)
intent.action = Intent.ACTION_SEND
intent.putExtra(SPEECH_PROCESSING, spokenText)
intent.putExtra(Intent.EXTRA_TEXT, spokenText)
startActivity(intent)
}

override fun onSpeechRecognitionStarted() {
SearchWidget.voiceButton.record(NoExtras())
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import mozilla.components.support.utils.PendingIntentUtils
import org.mozilla.focus.R
import org.mozilla.focus.activity.IntentReceiverActivity
import org.mozilla.focus.ext.components
import org.mozilla.focus.searchwidget.VoiceSearchActivity

class SearchWidgetProvider : AppSearchWidgetProvider() {

Expand Down Expand Up @@ -42,6 +43,7 @@ class SearchWidgetProvider : AppSearchWidgetProvider() {
val createTextSearchIntentFlags = PendingIntentUtils.defaultFlags or
PendingIntent.FLAG_UPDATE_CURRENT
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
intent.putExtra(IntentReceiverActivity.SEARCH_WIDGET, true)
PendingIntent.getActivity(
context,
REQUEST_CODE_NEW_TAB, intent, createTextSearchIntentFlags
Expand All @@ -54,7 +56,7 @@ class SearchWidgetProvider : AppSearchWidgetProvider() {
}

override fun voiceSearchActivity(): Class<out BaseVoiceSearchActivity> {
return BaseVoiceSearchActivity::class.java
return VoiceSearchActivity::class.java
}

companion object {
Expand Down

0 comments on commit 5dd5eeb

Please sign in to comment.