diff --git a/app/src/main/java/com/concordium/wallet/ui/account/accountsoverview/ShieldingNoticeDialogFragment.kt b/app/src/main/java/com/concordium/wallet/ui/account/accountsoverview/ShieldingNoticeDialogFragment.kt
new file mode 100644
index 000000000..70038d915
--- /dev/null
+++ b/app/src/main/java/com/concordium/wallet/ui/account/accountsoverview/ShieldingNoticeDialogFragment.kt
@@ -0,0 +1,103 @@
+package com.concordium.wallet.ui.account.accountsoverview
+
+import android.content.ActivityNotFoundException
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Intent
+import android.net.Uri
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.app.AppCompatDialogFragment
+import androidx.core.content.ContextCompat
+import androidx.core.content.ContextCompat.getSystemService
+import androidx.core.view.isVisible
+import com.concordium.wallet.BuildConfig
+import com.concordium.wallet.R
+import com.concordium.wallet.data.repository.AuthenticationRepository
+import com.concordium.wallet.databinding.DialogShieldingNoticeBinding
+import com.concordium.wallet.ui.common.delegates.AuthDelegate
+import com.concordium.wallet.ui.common.delegates.AuthDelegateImpl
+import org.koin.android.ext.android.inject
+
+class ShieldingNoticeDialogFragment :
+ AppCompatDialogFragment(),
+ AuthDelegate by AuthDelegateImpl() {
+
+ private lateinit var binding: DialogShieldingNoticeBinding
+
+ private val authenticationRepository: AuthenticationRepository by inject()
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ binding = DialogShieldingNoticeBinding.inflate(layoutInflater)
+ return binding.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ authenticationRepository.getSeedPhase().onSuccess { phrase ->
+ binding.copyPhraseButton.isVisible = true
+ binding.copyPhraseButton.setOnClickListener {
+ showAuthentication(
+ activity = requireActivity() as AppCompatActivity,
+ authenticated = {
+ val clipboard: ClipboardManager? =
+ getSystemService(requireContext(), ClipboardManager::class.java)
+ val clip = ClipData.newPlainText("Phrase", phrase)
+ clipboard?.setPrimaryClip(clip)
+ }
+ )
+ }
+ }
+
+ binding.continueWithOldWalletButton.setOnClickListener {
+ dismiss()
+ }
+
+ binding.installCryptoxButton.setOnClickListener {
+ val cryptoXPackage =
+ if (BuildConfig.ENV_NAME == "prod_testnet")
+ "com.pioneeringtechventures.wallet.testnet"
+ else
+ "com.pioneeringtechventures.wallet"
+
+ val intent = Intent(Intent.ACTION_VIEW).apply {
+ addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+ setData(Uri.parse("market://details?id=$cryptoXPackage"))
+ }
+ try {
+ startActivity(intent)
+ } catch (_: ActivityNotFoundException) {
+ startActivity(
+ Intent(
+ Intent.ACTION_VIEW,
+ Uri.parse("https://play.google.com/store/apps/details?id=$cryptoXPackage")
+ )
+ )
+ }
+ }
+ }
+
+ override fun onStart() {
+ super.onStart()
+ dialog?.window?.apply {
+ setLayout(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT
+ )
+ setBackgroundDrawable(
+ ContextCompat.getDrawable(
+ requireContext(),
+ R.drawable.bg_shielding_notice
+ )
+ )
+ }
+ }
+}
diff --git a/app/src/main/res/drawable/bg_shielding_notice.xml b/app/src/main/res/drawable/bg_shielding_notice.xml
new file mode 100644
index 000000000..766ad9c42
--- /dev/null
+++ b/app/src/main/res/drawable/bg_shielding_notice.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ico_unshield.xml b/app/src/main/res/drawable/ico_unshield.xml
new file mode 100644
index 000000000..16d03e062
--- /dev/null
+++ b/app/src/main/res/drawable/ico_unshield.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/dialog_shielding_notice.xml b/app/src/main/res/layout/dialog_shielding_notice.xml
new file mode 100644
index 000000000..70481218d
--- /dev/null
+++ b/app/src/main/res/layout/dialog_shielding_notice.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index feb5c5717..9628adf3f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1117,4 +1117,17 @@
Transaction fee is out of specified range
Baking reward is out of specified range
+
+ Transaction Shielding is going away
+
+ We recommend that you unshield any Shielded balance today. To do so move your account to the new CryptoX Concordium wallet.\n\n
+ 1. Install the CryptoX Concordium wallet\n
+ 2. Copy your seed phrase\n
+ 3. Insert your seed phrase in the CryptoX wallet\n\n
+ When that’s done, you will be able to unshield your Shielded balance through the CryptoX wallet, and you can safely delete this one.\n\n
+ Don’t worry, your wallet will stay here on your device until you uninstall it, but we highly encourage you to migrate today.
+
+ Install CryptoX Concordium wallet
+ Continue with the old wallet
+ Copy your seed phrase