From 976c840047999ebd671b676cd3e404af8b36366e Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Mon, 16 Sep 2019 14:21:06 -0700 Subject: [PATCH] For #3077 - Replaces connect another device dialog with a scree --- .../mozilla/fenix/settings/SupportUtils.kt | 3 +- .../fenix/share/AddNewDeviceFragment.kt | 49 +++++++++++ .../mozilla/fenix/share/ShareController.kt | 8 +- .../res/layout/fragment_add_new_device.xml | 87 +++++++++++++++++++ app/src/main/res/navigation/nav_graph.xml | 8 ++ app/src/main/res/values/strings.xml | 9 +- 6 files changed, 156 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/org/mozilla/fenix/share/AddNewDeviceFragment.kt create mode 100644 app/src/main/res/layout/fragment_add_new_device.xml diff --git a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt index 5222d68ad..eb8777db4 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SupportUtils.kt @@ -28,7 +28,8 @@ object SupportUtils { PRIVATE_BROWSING_MYTHS("common-myths-about-private-browsing"), YOUR_RIGHTS("your-rights"), TRACKING_PROTECTION("tracking-protection-firefox-preview"), - WHATS_NEW("whats-new-firefox-preview") + WHATS_NEW("whats-new-firefox-preview"), + SEND_TABS("send-tab-firefox-preview-another-device") } /** diff --git a/app/src/main/java/org/mozilla/fenix/share/AddNewDeviceFragment.kt b/app/src/main/java/org/mozilla/fenix/share/AddNewDeviceFragment.kt new file mode 100644 index 000000000..6e87a96e1 --- /dev/null +++ b/app/src/main/java/org/mozilla/fenix/share/AddNewDeviceFragment.kt @@ -0,0 +1,49 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.share + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.appcompat.app.AlertDialog +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.Fragment +import kotlinx.android.synthetic.main.fragment_add_new_device.* +import org.mozilla.fenix.R +import org.mozilla.fenix.settings.SupportUtils + +class AddNewDeviceFragment : Fragment() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? = inflater.inflate(R.layout.fragment_add_new_device, container, false) + + override fun onResume() { + super.onResume() + (activity as AppCompatActivity).title = getString(R.string.sync_add_new_device_title) + (activity as AppCompatActivity).supportActionBar?.show() + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + learn_button.setOnClickListener { + val intent = SupportUtils.createCustomTabIntent( + requireContext(), + SupportUtils.getSumoURLForTopic(requireContext(), SupportUtils.SumoTopic.SEND_TABS) + ) + startActivity(intent) + } + + connect_button.setOnClickListener { + AlertDialog.Builder(requireContext()).apply { + setMessage(R.string.sync_connect_device_dialog) + setPositiveButton(R.string.sync_confirmation_button) { dialog, _ -> dialog.cancel() } + create() + }.show() + } + } +} diff --git a/app/src/main/java/org/mozilla/fenix/share/ShareController.kt b/app/src/main/java/org/mozilla/fenix/share/ShareController.kt index 8c9b40b36..ec231813c 100644 --- a/app/src/main/java/org/mozilla/fenix/share/ShareController.kt +++ b/app/src/main/java/org/mozilla/fenix/share/ShareController.kt @@ -10,7 +10,6 @@ import android.content.Intent.ACTION_SEND import android.content.Intent.EXTRA_TEXT import android.content.Intent.FLAG_ACTIVITY_NEW_TASK import androidx.annotation.VisibleForTesting -import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment import androidx.navigation.NavController import com.google.android.material.snackbar.Snackbar @@ -88,11 +87,8 @@ class DefaultShareController( } override fun handleAddNewDevice() { - AlertDialog.Builder(fragment.requireContext()).apply { - setMessage(R.string.sync_connect_device_dialog) - setPositiveButton(R.string.sync_confirmation_button) { dialog, _ -> dialog.cancel() } - create() - }.show() + val directions = ShareFragmentDirections.actionShareFragmentToAddNewDeviceFragment() + navController.navigate(directions) } override fun handleShareToDevice(device: Device) { diff --git a/app/src/main/res/layout/fragment_add_new_device.xml b/app/src/main/res/layout/fragment_add_new_device.xml new file mode 100644 index 000000000..36234cd97 --- /dev/null +++ b/app/src/main/res/layout/fragment_add_new_device.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index a45601494..36a70dae9 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -504,6 +504,9 @@ + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b4259a690..05929f178 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -379,7 +379,6 @@ Open tabs - Delete history @@ -597,6 +596,14 @@ Got it Cannot share to this app + + Send to device + + No Devices Connected + + Learn About Sending Tabs… + + Connect Another Device…