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" />
+
+
-