From 3c8480747411b36ca7a1e631499fc8ddcab4b3d9 Mon Sep 17 00:00:00 2001 From: Jonathan Almeida Date: Thu, 23 May 2019 19:51:25 -0400 Subject: [PATCH] Add connect another device dialog (#2803) --- .../fenix/share/AccountDevicesShareView.kt | 1 - .../org/mozilla/fenix/share/ShareComponent.kt | 1 - .../org/mozilla/fenix/share/ShareFragment.kt | 27 +++++++++++-------- app/src/main/res/values/strings.xml | 4 +++ 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/share/AccountDevicesShareView.kt b/app/src/main/java/org/mozilla/fenix/share/AccountDevicesShareView.kt index 9a17b4444..1b23c1b5b 100644 --- a/app/src/main/java/org/mozilla/fenix/share/AccountDevicesShareView.kt +++ b/app/src/main/java/org/mozilla/fenix/share/AccountDevicesShareView.kt @@ -65,7 +65,6 @@ class AccountDevicesShareAdapter( if (shareableDevices.isEmpty()) { list.add(SyncShareOption.AddNewDevice) - actionEmitter.onNext(ShareAction.HideSendTab) } val shareOptions = shareableDevices.map { diff --git a/app/src/main/java/org/mozilla/fenix/share/ShareComponent.kt b/app/src/main/java/org/mozilla/fenix/share/ShareComponent.kt index 08227ffaa..e6584d36e 100644 --- a/app/src/main/java/org/mozilla/fenix/share/ShareComponent.kt +++ b/app/src/main/java/org/mozilla/fenix/share/ShareComponent.kt @@ -23,7 +23,6 @@ sealed class ShareAction : Action { object Close : ShareAction() object SignInClicked : ShareAction() object AddNewDeviceClicked : ShareAction() - object HideSendTab : ShareAction() data class ShareDeviceClicked(val device: Device) : ShareAction() data class SendAllClicked(val devices: List) : ShareAction() data class ShareAppClicked(val packageName: String) : ShareAction() diff --git a/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt b/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt index 2acd052e5..f3f929d57 100644 --- a/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/share/ShareFragment.kt @@ -9,12 +9,13 @@ import android.content.Intent.ACTION_SEND import android.content.Intent.EXTRA_TEXT import android.content.Intent.FLAG_ACTIVITY_NEW_TASK import android.os.Bundle +import android.view.ContextThemeWrapper import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatDialogFragment import androidx.navigation.fragment.NavHostFragment.findNavController -import kotlinx.android.synthetic.main.component_share.* import kotlinx.android.synthetic.main.fragment_share.view.* import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -81,12 +82,19 @@ class ShareFragment : AppCompatDialogFragment(), CoroutineScope { ShareAction.SignInClicked -> { val directions = ShareFragmentDirections.actionShareFragmentToTurnOnSyncFragment() findNavController(this@ShareFragment).navigate(directions) + dismiss() } ShareAction.AddNewDeviceClicked -> { - requireComponents.useCases.tabsUseCases.addTab.invoke(ADD_NEW_DEVICES_URL, true) - } - ShareAction.HideSendTab -> { - send_tab_group.visibility = View.GONE + AlertDialog.Builder( + ContextThemeWrapper( + context, + R.style.DialogStyle + ) + ).apply { + setMessage(R.string.sync_connect_device_dialog) + setPositiveButton(R.string.sync_confirmation_button) { dialog, _ -> dialog.cancel() } + create() + }.show() } is ShareAction.ShareDeviceClicked -> { val authAccount = requireComponents.backgroundServices.accountManager.authenticatedAccount() @@ -96,6 +104,7 @@ class ShareFragment : AppCompatDialogFragment(), CoroutineScope { DeviceEventOutgoing.SendTab(title, url) ) } + dismiss() } is ShareAction.SendAllClicked -> { val authAccount = requireComponents.backgroundServices.accountManager.authenticatedAccount() @@ -107,6 +116,7 @@ class ShareFragment : AppCompatDialogFragment(), CoroutineScope { ) } } + dismiss() } is ShareAction.ShareAppClicked -> { val intent = Intent(ACTION_SEND).apply { @@ -116,14 +126,9 @@ class ShareFragment : AppCompatDialogFragment(), CoroutineScope { `package` = it.packageName } startActivity(intent) + dismiss() } } - dismiss() } } - - companion object { - // TODO Replace this link with the correct one when provided. - const val ADD_NEW_DEVICES_URL = "https://accounts.firefox.com/connect_another_device" - } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7eadc3a47..14a7a9146 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -508,6 +508,10 @@ Offline Connect another device + + To send a tab, sign in to Firefox on at least one other device. + + Got it