Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Matthew Finkel
fenix
Commits
e240de7e
Commit
e240de7e
authored
Sep 04, 2019
by
Sawyer Blatz
Committed by
Emily Kager
Sep 10, 2019
Browse files
For #4908: Adds telemetry for send tab
parent
d0ef2d40
Changes
5
Hide whitespace changes
Inline
Side-by-side
app/src/main/java/org/mozilla/fenix/components/metrics/GleanMetricsService.kt
View file @
e240de7e
...
...
@@ -242,6 +242,12 @@ private val Event.wrapper: EventWrapper<*>?
is
Event
.
SyncAccountSyncNow
->
EventWrapper
<
NoExtraKeys
>(
{
SyncAccount
.
syncNow
.
record
(
it
)
}
)
is
Event
.
SignInToSendTab
->
EventWrapper
<
NoExtraKeys
>(
{
SyncAccount
.
signInToSendTab
.
record
(
it
)
}
)
is
Event
.
SendTab
->
EventWrapper
<
NoExtraKeys
>(
{
SyncAccount
.
sendTab
.
record
(
it
)
}
)
is
Event
.
PreferenceToggled
->
EventWrapper
(
{
Events
.
preferenceToggled
.
record
(
it
)
},
{
Events
.
preferenceToggledKeys
.
valueOf
(
it
)
}
...
...
app/src/main/java/org/mozilla/fenix/components/metrics/Metrics.kt
View file @
e240de7e
...
...
@@ -71,6 +71,8 @@ sealed class Event {
object
SyncAccountOpened
:
Event
()
object
SyncAccountClosed
:
Event
()
object
SyncAccountSyncNow
:
Event
()
object
SendTab
:
Event
()
object
SignInToSendTab
:
Event
()
object
HistoryOpened
:
Event
()
object
HistoryItemShared
:
Event
()
object
HistoryItemOpened
:
Event
()
...
...
app/src/main/java/org/mozilla/fenix/share/ShareController.kt
View file @
e240de7e
...
...
@@ -4,6 +4,7 @@
package
org.mozilla.fenix.share
import
android.content.Context
import
android.content.Intent
import
android.content.Intent.ACTION_SEND
import
android.content.Intent.EXTRA_TEXT
...
...
@@ -16,6 +17,8 @@ import mozilla.components.concept.sync.Device
import
mozilla.components.concept.sync.TabData
import
mozilla.components.feature.sendtab.SendTabUseCases
import
org.mozilla.fenix.R
import
org.mozilla.fenix.components.metrics.Event
import
org.mozilla.fenix.ext.metrics
import
org.mozilla.fenix.ext.nav
import
org.mozilla.fenix.share.listadapters.AppShareOption
...
...
@@ -43,6 +46,7 @@ interface ShareController {
* @param dismiss - callback signalling sharing can be closed.
*/
class
DefaultShareController
(
private
val
context
:
Context
,
private
val
fragment
:
Fragment
,
private
val
sharedTabs
:
List
<
ShareTab
>,
private
val
sendTabUseCases
:
SendTabUseCases
,
...
...
@@ -73,6 +77,7 @@ class DefaultShareController(
}
override
fun
handleShareToDevice
(
device
:
Device
)
{
context
.
metrics
.
track
(
Event
.
SendTab
)
sendTabUseCases
.
sendToDeviceAsync
(
device
.
id
,
sharedTabs
.
toTabData
())
(
fragment
.
activity
as
ShareFragment
.
TabsSharedCallback
).
onTabsShared
(
sharedTabs
.
size
)
dismiss
()
...
...
@@ -85,6 +90,7 @@ class DefaultShareController(
}
override
fun
handleSignIn
()
{
context
.
metrics
.
track
(
Event
.
SignInToSendTab
)
val
directions
=
ShareFragmentDirections
.
actionShareFragmentToTurnOnSyncFragment
()
navController
.
nav
(
R
.
id
.
shareFragment
,
directions
)
dismiss
()
...
...
app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt
View file @
e240de7e
...
...
@@ -86,6 +86,7 @@ class ShareFragment : AppCompatDialogFragment() {
shareInteractor
=
ShareInteractor
(
DefaultShareController
(
context
=
requireContext
(),
fragment
=
this
,
sharedTabs
=
tabs
,
navController
=
findNavController
(),
...
...
app/src/test/java/org/mozilla/fenix/share/ShareControllerTest.kt
View file @
e240de7e
...
...
@@ -4,6 +4,7 @@
package
org.mozilla.fenix.share
import
android.content.Context
import
android.content.Intent
import
androidx.fragment.app.Fragment
import
androidx.navigation.NavController
...
...
@@ -24,11 +25,15 @@ import mozilla.components.concept.sync.Device
import
mozilla.components.concept.sync.DeviceType
import
mozilla.components.concept.sync.TabData
import
mozilla.components.feature.sendtab.SendTabUseCases
import
org.junit.Before
import
org.junit.Test
import
org.junit.runner.RunWith
import
org.mozilla.fenix.HomeActivity
import
org.mozilla.fenix.R
import
org.mozilla.fenix.TestApplication
import
org.mozilla.fenix.components.metrics.Event
import
org.mozilla.fenix.components.metrics.MetricController
import
org.mozilla.fenix.ext.metrics
import
org.mozilla.fenix.ext.nav
import
org.mozilla.fenix.share.listadapters.AppShareOption
import
org.robolectric.RobolectricTestRunner
...
...
@@ -38,6 +43,8 @@ import org.robolectric.annotation.Config
@RunWith
(
RobolectricTestRunner
::
class
)
@Config
(
application
=
TestApplication
::
class
)
class
ShareControllerTest
{
private
val
context
:
Context
=
mockk
(
relaxed
=
true
)
private
val
metrics
:
MetricController
=
mockk
(
relaxed
=
true
)
private
val
fragment
=
mockk
<
Fragment
>(
relaxed
=
true
)
private
val
shareTabs
=
listOf
(
ShareTab
(
"url0"
,
"title0"
),
...
...
@@ -52,7 +59,12 @@ class ShareControllerTest {
private
val
sendTabUseCases
=
mockk
<
SendTabUseCases
>(
relaxed
=
true
)
private
val
navController
=
mockk
<
NavController
>(
relaxed
=
true
)
private
val
dismiss
=
mockk
<()
->
Unit
>(
relaxed
=
true
)
private
val
controller
=
DefaultShareController
(
fragment
,
shareTabs
,
sendTabUseCases
,
navController
,
dismiss
)
private
val
controller
=
DefaultShareController
(
context
,
fragment
,
shareTabs
,
sendTabUseCases
,
navController
,
dismiss
)
@Before
fun
setUp
()
{
every
{
context
.
metrics
}
returns
metrics
}
@Test
fun
`handleShareClosed
should
call
a
passed
in
delegate
to
close
this
`
()
{
...
...
@@ -102,6 +114,7 @@ class ShareControllerTest {
// Verify all the needed methods are called.
verifyOrder
{
metrics
.
track
(
Event
.
SendTab
)
sendTabUseCases
.
sendToDeviceAsync
(
capture
(
deviceId
),
capture
(
tabsShared
))
tabSharedCallbackActivity
.
onTabsShared
(
capture
(
sharedTabsNumber
))
dismiss
()
...
...
@@ -153,6 +166,7 @@ class ShareControllerTest {
controller
.
handleSignIn
()
verifyOrder
{
metrics
.
track
(
Event
.
SignInToSendTab
)
navController
.
nav
(
R
.
id
.
shareFragment
,
ShareFragmentDirections
.
actionShareFragmentToTurnOnSyncFragment
()
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment