diff --git a/clients/android/NewsBlur/app/src/main/java/com/newsblur/delegate/MainContextMenuDelegate.kt b/clients/android/NewsBlur/app/src/main/java/com/newsblur/delegate/MainContextMenuDelegate.kt index 2165e4d4d..258932a91 100644 --- a/clients/android/NewsBlur/app/src/main/java/com/newsblur/delegate/MainContextMenuDelegate.kt +++ b/clients/android/NewsBlur/app/src/main/java/com/newsblur/delegate/MainContextMenuDelegate.kt @@ -13,6 +13,7 @@ import com.newsblur.database.BlurDatabaseHelper import com.newsblur.fragment.FolderListFragment import com.newsblur.fragment.LoginAsDialogFragment import com.newsblur.fragment.LogoutDialogFragment +import com.newsblur.fragment.NewslettersFragment import com.newsblur.service.NBSyncService import com.newsblur.util.ListTextSize import com.newsblur.util.ListTextSize.Companion.fromSize @@ -182,6 +183,11 @@ class MainContextMenuDelegateImpl( activity.startActivity(intent) true } + R.id.menu_newsletters -> { + val newFragment: DialogFragment = NewslettersFragment() + newFragment.show(activity.supportFragmentManager, NewslettersFragment::class.java.name) + true + } else -> false } } \ No newline at end of file diff --git a/clients/android/NewsBlur/app/src/main/java/com/newsblur/fragment/NewslettersFragment.kt b/clients/android/NewsBlur/app/src/main/java/com/newsblur/fragment/NewslettersFragment.kt new file mode 100644 index 000000000..bdaef86c1 --- /dev/null +++ b/clients/android/NewsBlur/app/src/main/java/com/newsblur/fragment/NewslettersFragment.kt @@ -0,0 +1,47 @@ +package com.newsblur.fragment + +import android.app.Dialog +import android.content.ClipData +import android.content.ClipboardManager +import android.os.Bundle +import androidx.appcompat.app.AlertDialog +import androidx.fragment.app.DialogFragment +import com.newsblur.R +import com.newsblur.databinding.NewsletterDialogBinding +import com.newsblur.util.PrefsUtils +import com.newsblur.util.setViewGone +import com.newsblur.util.setViewVisible + +class NewslettersFragment : DialogFragment() { + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val view = layoutInflater.inflate(R.layout.newsletter_dialog, null) + val binding: NewsletterDialogBinding = NewsletterDialogBinding.bind(view) + val emailAddress = generateEmail() + + binding.txtEmail.text = emailAddress + binding.btnSetup.setOnClickListener { + binding.btnSetup.setViewGone() + binding.txtSetup.setViewVisible() + } + + return AlertDialog.Builder(requireContext()).apply { + setView(binding.root) + setPositiveButton(android.R.string.ok, null) + setNegativeButton(R.string.copy_email) { _, _ -> + copyToClipboard(emailAddress) + } + }.create() + } + + private fun generateEmail(): String { + val userDetails = PrefsUtils.getUserDetails(requireContext()) + return "${userDetails.username}-12345678@newsletters.newsblur.com" + } + + private fun copyToClipboard(message: String) { + val clipboardManager = requireContext().getSystemService(ClipboardManager::class.java) + val clipData = ClipData.newPlainText("NewsBlur email forwarding", message) + clipboardManager.setPrimaryClip(clipData) + } +} \ No newline at end of file diff --git a/clients/android/NewsBlur/app/src/main/res/layout/newsletter_dialog.xml b/clients/android/NewsBlur/app/src/main/res/layout/newsletter_dialog.xml new file mode 100644 index 000000000..3efcc6c3d --- /dev/null +++ b/clients/android/NewsBlur/app/src/main/res/layout/newsletter_dialog.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + diff --git a/clients/android/NewsBlur/app/src/main/res/menu/main.xml b/clients/android/NewsBlur/app/src/main/res/menu/main.xml index e83d2defb..94473e868 100644 --- a/clients/android/NewsBlur/app/src/main/res/menu/main.xml +++ b/clients/android/NewsBlur/app/src/main/res/menu/main.xml @@ -27,6 +27,11 @@ android:title="@string/menu_notifications" app:showAsAction="never" /> + + diff --git a/clients/android/NewsBlur/app/src/main/res/values/strings.xml b/clients/android/NewsBlur/app/src/main/res/values/strings.xml index 8a357da90..3f0be3cca 100644 --- a/clients/android/NewsBlur/app/src/main/res/values/strings.xml +++ b/clients/android/NewsBlur/app/src/main/res/values/strings.xml @@ -269,6 +269,11 @@ %d opens %d stories/month + Forwarding email address + Setup instructions \u25bc + To read your email newsletters in NewsBlur, forward your newsletters to your custom email address shown above.\n\nIn Gmail, go to Settings > Forwarding and click on Add a forwarding address. Add your custom NewsBlur email address.\n\nGmail will walk you through confirming the email address. You\'ll want to come back to NewsBlur and look for the confirmation email under the "Newsletters" folder.\n\nNext, create a filter with all of your newsletters so that they forward to the custom address on NewsBlur. + Copy email + Import/Export… Preferences… Mute Sites… @@ -279,6 +284,7 @@ Tap to setup in NewsBlur No active subscriptions detected Loading… + Newsletters… Import/Export OPML Notifications