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
21c75ca1
Commit
21c75ca1
authored
Jun 14, 2019
by
Emily Kager
Committed by
Emily Kager
Jul 10, 2019
Browse files
For #3478 - Add Tab sent snackbar confirmation for device sharing
parent
1f12ee0f
Changes
7
Hide whitespace changes
Inline
Side-by-side
app/src/main/java/org/mozilla/fenix/HomeActivity.kt
View file @
21c75ca1
...
...
@@ -17,6 +17,7 @@ import androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
androidx.navigation.ui.AppBarConfiguration
import
androidx.navigation.ui.NavigationUI
import
com.google.android.material.snackbar.Snackbar
import
io.sentry.Sentry
import
io.sentry.event.Breadcrumb
import
io.sentry.event.BreadcrumbBuilder
...
...
@@ -31,9 +32,11 @@ import mozilla.components.support.base.feature.BackHandler
import
mozilla.components.support.ktx.kotlin.isUrl
import
mozilla.components.support.ktx.kotlin.toNormalizedUrl
import
mozilla.components.support.utils.SafeIntent
import
org.mozilla.fenix.components.FenixSnackbar
import
org.mozilla.fenix.components.isSentryEnabled
import
org.mozilla.fenix.components.metrics.Event
import
org.mozilla.fenix.ext.components
import
org.mozilla.fenix.ext.getRootView
import
org.mozilla.fenix.ext.nav
import
org.mozilla.fenix.home.HomeFragmentDirections
import
org.mozilla.fenix.library.bookmarks.BookmarkFragmentDirections
...
...
@@ -44,10 +47,11 @@ import org.mozilla.fenix.settings.AccountProblemFragmentDirections
import
org.mozilla.fenix.settings.PairFragmentDirections
import
org.mozilla.fenix.settings.SettingsFragmentDirections
import
org.mozilla.fenix.settings.TurnOnSyncFragmentDirections
import
org.mozilla.fenix.share.ShareFragment
import
org.mozilla.fenix.utils.Settings
@SuppressWarnings
(
"TooManyFunctions"
)
open
class
HomeActivity
:
AppCompatActivity
()
{
@SuppressWarnings
(
"TooManyFunctions"
,
"LargeClass"
)
open
class
HomeActivity
:
AppCompatActivity
()
,
ShareFragment
.
TabsSharedCallback
{
open
val
isCustomTab
=
false
private
var
sessionObserver
:
SessionManager
.
Observer
?
=
null
...
...
@@ -370,6 +374,17 @@ open class HomeActivity : AppCompatActivity() {
}.
also
{
components
.
core
.
sessionManager
.
register
(
it
,
this
)
}
}
override
fun
onTabsShared
(
tabsSize
:
Int
)
{
this
@HomeActivity
.
getRootView
()
?.
let
{
FenixSnackbar
.
make
(
it
,
Snackbar
.
LENGTH_SHORT
).
setText
(
getString
(
if
(
tabsSize
==
1
)
R
.
string
.
sync_sent_tab_snackbar
else
R
.
string
.
sync_sent_tabs_snackbar
)
).
show
()
}
}
companion
object
{
const
val
OPEN_TO_BROWSER
=
"open_to_browser"
}
...
...
app/src/main/java/org/mozilla/fenix/browser/BrowserFragment.kt
View file @
21c75ca1
...
...
@@ -104,7 +104,6 @@ import java.net.URL
@SuppressWarnings
(
"TooManyFunctions"
,
"LargeClass"
)
class
BrowserFragment
:
Fragment
(),
BackHandler
{
private
lateinit
var
toolbarComponent
:
ToolbarComponent
private
var
tabCollectionObserver
:
Observer
<
List
<
TabCollection
>>?
=
null
...
...
@@ -953,7 +952,7 @@ class BrowserFragment : Fragment(), BackHandler {
}
private
fun
shareUrl
(
url
:
String
)
{
val
directions
=
BrowserFragmentDirections
.
actionBrowserFragmentToShareFragment
(
url
)
val
directions
=
BrowserFragmentDirections
.
actionBrowserFragmentToShareFragment
(
url
=
url
)
nav
(
R
.
id
.
browserFragment
,
directions
)
}
...
...
app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
View file @
21c75ca1
...
...
@@ -717,7 +717,10 @@ class HomeFragment : Fragment(), AccountObserver {
private
fun
share
(
url
:
String
?
=
null
,
tabs
:
List
<
ShareTab
>?
=
null
)
{
val
directions
=
HomeFragmentDirections
.
actionHomeFragmentToShareFragment
(
url
=
url
,
tabs
=
tabs
?.
toTypedArray
())
HomeFragmentDirections
.
actionHomeFragmentToShareFragment
(
url
=
url
,
tabs
=
tabs
?.
toTypedArray
()
)
nav
(
R
.
id
.
homeFragment
,
directions
)
}
...
...
app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkFragment.kt
View file @
21c75ca1
...
...
@@ -217,8 +217,8 @@ class BookmarkFragment : Fragment(), BackHandler, AccountObserver {
nav
(
R
.
id
.
bookmarkFragment
,
BookmarkFragmentDirections
.
actionBookmarkFragmentToShareFragment
(
this
,
it
.
item
.
title
url
=
this
,
title
=
it
.
item
.
title
)
)
metrics
()
?.
track
(
Event
.
ShareBookmark
)
...
...
app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt
View file @
21c75ca1
...
...
@@ -287,7 +287,10 @@ class HistoryFragment : Fragment(), BackHandler {
private
fun
share
(
url
:
String
?
=
null
,
tabs
:
List
<
ShareTab
>?
=
null
)
{
val
directions
=
HistoryFragmentDirections
.
actionHistoryFragmentToShareFragment
(
url
=
url
,
tabs
=
tabs
?.
toTypedArray
())
HistoryFragmentDirections
.
actionHistoryFragmentToShareFragment
(
url
=
url
,
tabs
=
tabs
?.
toTypedArray
()
)
nav
(
R
.
id
.
historyFragment
,
directions
)
}
...
...
app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt
View file @
21c75ca1
...
...
@@ -21,6 +21,7 @@ import kotlinx.android.synthetic.main.fragment_share.view.*
import
mozilla.components.concept.sync.DeviceEventOutgoing
import
mozilla.components.concept.sync.OAuthAccount
import
org.mozilla.fenix.FenixViewModelProvider
import
org.mozilla.fenix.HomeActivity
import
org.mozilla.fenix.R
import
org.mozilla.fenix.ext.nav
import
org.mozilla.fenix.ext.requireComponents
...
...
@@ -28,6 +29,10 @@ import org.mozilla.fenix.mvi.ActionBusFactory
import
org.mozilla.fenix.mvi.getAutoDisposeObservable
class
ShareFragment
:
AppCompatDialogFragment
()
{
interface
TabsSharedCallback
{
fun
onTabsShared
(
tabsSize
:
Int
)
}
private
lateinit
var
component
:
ShareComponent
private
var
tabs
:
Array
<
ShareTab
>
=
emptyArray
()
...
...
@@ -39,7 +44,6 @@ class ShareFragment : AppCompatDialogFragment() {
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?):
View
?
{
val
view
=
inflater
.
inflate
(
R
.
layout
.
fragment_share
,
container
,
false
)
val
args
=
ShareFragmentArgs
.
fromBundle
(
arguments
!!
)
if
(
args
.
url
==
null
&&
args
.
tabs
.
isNullOrEmpty
())
{
throw
IllegalStateException
(
"URL and tabs cannot both be null."
)
}
...
...
@@ -131,6 +135,7 @@ class ShareFragment : AppCompatDialogFragment() {
)
}
}
(
activity
as
?
HomeActivity
)
?.
onTabsShared
(
tabs
.
size
)
}
}
...
...
app/src/main/res/navigation/nav_graph.xml
View file @
21c75ca1
...
...
@@ -419,8 +419,8 @@
<argument
android:name=
"tabs"
android:defaultValue=
"@null"
app:
nullable=
"true
"
app:
argType=
"org.mozilla.fenix.share.ShareTab[]
"
/>
app:
argType=
"org.mozilla.fenix.share.ShareTab[]
"
app:
nullable=
"true
"
/>
<action
android:id=
"@+id/action_shareFragment_to_turnOnSyncFragment"
app:destination=
"@+id/turnOnSyncFragment"
...
...
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