From 77970ceadc7726264d4b80be370c9faaf3c61ca2 Mon Sep 17 00:00:00 2001 From: Fahim Salam Chowdhury Date: Fri, 16 Jun 2023 12:58:05 +0600 Subject: [PATCH 1/4] 1322-Implement_google_login_warning_dialog issue: https://gitlab.e.foundation/e/os/backlog/-/issues/1322 --- .../e/apps/ui/setup/signin/SignInFragment.kt | 19 +++++++++++++++++-- app/src/main/res/values/strings.xml | 3 +++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt index 636e19f99..1d3c177f7 100644 --- a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt @@ -2,6 +2,7 @@ package foundation.e.apps.ui.setup.signin import android.os.Bundle import android.view.View +import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.navigation.findNavController @@ -25,8 +26,7 @@ class SignInFragment : Fragment(R.layout.fragment_sign_in) { _binding = FragmentSignInBinding.bind(view) binding.googleBT.setOnClickListener { - view.findNavController() - .safeNavigate(R.id.signInFragment, R.id.action_signInFragment_to_googleSignInFragment) + showGoogleAlertDialog() } binding.anonymousBT.setOnClickListener { @@ -48,4 +48,19 @@ class SignInFragment : Fragment(R.layout.fragment_sign_in) { super.onDestroyView() _binding = null } + + private fun showGoogleAlertDialog() { + AlertDialog.Builder(requireContext()) + .setCancelable(true) + .setMessage(R.string.google_login_alert_message) + .setNegativeButton(R.string.cancel, null) + .setPositiveButton(R.string.proceed_to_google_login) { _, _ -> + navigateToGoogleSignInFragment() + }.show() + } + + private fun navigateToGoogleSignInFragment() { + view?.findNavController() + ?.safeNavigate(R.id.signInFragment, R.id.action_signInFragment_to_googleSignInFragment) + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc7be94c3..a32f8adc8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -222,4 +222,7 @@ Daily Weekly Monthly + + We recommend using a dedicated Google account to:\n\n\t\u2022 mitigate micro-targeting\n\t\u2022 limit impact in case this account is restricted by Google + Proceed to Google login -- GitLab From 681a3356d6fe517ff310b257645827cfb01032ca Mon Sep 17 00:00:00 2001 From: Fahim Salam Chowdhury Date: Tue, 20 Jun 2023 13:04:37 +0600 Subject: [PATCH 2/4] refactor showGoogleAlertDialog method --- .../e/apps/ui/setup/signin/SignInFragment.kt | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt index 1d3c177f7..83574ab37 100644 --- a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt @@ -1,5 +1,6 @@ package foundation.e.apps.ui.setup.signin +import android.content.DialogInterface.OnClickListener import android.os.Bundle import android.view.View import androidx.appcompat.app.AlertDialog @@ -26,7 +27,10 @@ class SignInFragment : Fragment(R.layout.fragment_sign_in) { _binding = FragmentSignInBinding.bind(view) binding.googleBT.setOnClickListener { - showGoogleAlertDialog() + showGoogleAlertDialog( + { _, _ -> navigateToGoogleSignInFragment() }, + null + ) } binding.anonymousBT.setOnClickListener { @@ -49,14 +53,16 @@ class SignInFragment : Fragment(R.layout.fragment_sign_in) { _binding = null } - private fun showGoogleAlertDialog() { + private fun showGoogleAlertDialog( + onYesClickListener: OnClickListener?, + onCancelClickListener: OnClickListener? + ) { AlertDialog.Builder(requireContext()) .setCancelable(true) .setMessage(R.string.google_login_alert_message) - .setNegativeButton(R.string.cancel, null) - .setPositiveButton(R.string.proceed_to_google_login) { _, _ -> - navigateToGoogleSignInFragment() - }.show() + .setNegativeButton(R.string.cancel, onCancelClickListener) + .setPositiveButton(R.string.proceed_to_google_login, onYesClickListener) + .show() } private fun navigateToGoogleSignInFragment() { -- GitLab From 71a86e070513dcc5fba7a006b3b86d2627faa975 Mon Sep 17 00:00:00 2001 From: Fahim Salam Chowdhury Date: Tue, 20 Jun 2023 13:32:08 +0600 Subject: [PATCH 3/4] refactor showGoogleAlertDialog method --- .../e/apps/ui/setup/signin/SignInFragment.kt | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt index 83574ab37..f864336fa 100644 --- a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt @@ -1,6 +1,5 @@ package foundation.e.apps.ui.setup.signin -import android.content.DialogInterface.OnClickListener import android.os.Bundle import android.view.View import androidx.appcompat.app.AlertDialog @@ -28,8 +27,8 @@ class SignInFragment : Fragment(R.layout.fragment_sign_in) { binding.googleBT.setOnClickListener { showGoogleAlertDialog( - { _, _ -> navigateToGoogleSignInFragment() }, - null + { navigateToGoogleSignInFragment() }, + { } ) } @@ -54,14 +53,14 @@ class SignInFragment : Fragment(R.layout.fragment_sign_in) { } private fun showGoogleAlertDialog( - onYesClickListener: OnClickListener?, - onCancelClickListener: OnClickListener? + onYesClickListener: () -> Unit, + onCancelClickListener: () -> Unit ) { AlertDialog.Builder(requireContext()) .setCancelable(true) .setMessage(R.string.google_login_alert_message) - .setNegativeButton(R.string.cancel, onCancelClickListener) - .setPositiveButton(R.string.proceed_to_google_login, onYesClickListener) + .setPositiveButton(R.string.proceed_to_google_login) { _, _ -> onYesClickListener() } + .setNegativeButton(R.string.cancel) { _, _ -> onCancelClickListener() } .show() } -- GitLab From 667a868c835977100a3ec6bf768cb133612bd0aa Mon Sep 17 00:00:00 2001 From: Fahim Salam Chowdhury Date: Tue, 20 Jun 2023 14:50:57 +0600 Subject: [PATCH 4/4] refactor showGoogleSingInAlertDialog method --- .../e/apps/ui/setup/signin/SignInFragment.kt | 16 ++-------------- .../java/foundation/e/apps/utils/Extensions.kt | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt index f864336fa..213e84148 100644 --- a/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt +++ b/app/src/main/java/foundation/e/apps/ui/setup/signin/SignInFragment.kt @@ -2,7 +2,6 @@ package foundation.e.apps.ui.setup.signin import android.os.Bundle import android.view.View -import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import androidx.navigation.findNavController @@ -11,6 +10,7 @@ import foundation.e.apps.R import foundation.e.apps.data.login.LoginViewModel import foundation.e.apps.databinding.FragmentSignInBinding import foundation.e.apps.di.CommonUtilsModule.safeNavigate +import foundation.e.apps.utils.showGoogleSignInAlertDialog @AndroidEntryPoint class SignInFragment : Fragment(R.layout.fragment_sign_in) { @@ -26,7 +26,7 @@ class SignInFragment : Fragment(R.layout.fragment_sign_in) { _binding = FragmentSignInBinding.bind(view) binding.googleBT.setOnClickListener { - showGoogleAlertDialog( + context?.showGoogleSignInAlertDialog( { navigateToGoogleSignInFragment() }, { } ) @@ -52,18 +52,6 @@ class SignInFragment : Fragment(R.layout.fragment_sign_in) { _binding = null } - private fun showGoogleAlertDialog( - onYesClickListener: () -> Unit, - onCancelClickListener: () -> Unit - ) { - AlertDialog.Builder(requireContext()) - .setCancelable(true) - .setMessage(R.string.google_login_alert_message) - .setPositiveButton(R.string.proceed_to_google_login) { _, _ -> onYesClickListener() } - .setNegativeButton(R.string.cancel) { _, _ -> onCancelClickListener() } - .show() - } - private fun navigateToGoogleSignInFragment() { view?.findNavController() ?.safeNavigate(R.id.signInFragment, R.id.action_signInFragment_to_googleSignInFragment) diff --git a/app/src/main/java/foundation/e/apps/utils/Extensions.kt b/app/src/main/java/foundation/e/apps/utils/Extensions.kt index bf43bc84a..7a4db0246 100644 --- a/app/src/main/java/foundation/e/apps/utils/Extensions.kt +++ b/app/src/main/java/foundation/e/apps/utils/Extensions.kt @@ -1,5 +1,8 @@ package foundation.e.apps.utils +import android.content.Context +import androidx.appcompat.app.AlertDialog +import foundation.e.apps.R import java.text.SimpleDateFormat import java.util.Date import java.util.Locale @@ -8,3 +11,15 @@ fun Date.getFormattedString(format: String, locale: Locale = Locale.getDefault() val dateFormat = SimpleDateFormat(format, locale) return dateFormat.format(this) } + +fun Context.showGoogleSignInAlertDialog( + onYesClickListener: () -> Unit, + onCancelClickListener: () -> Unit +) { + AlertDialog.Builder(this) + .setCancelable(true) + .setMessage(R.string.google_login_alert_message) + .setPositiveButton(R.string.proceed_to_google_login) { _, _ -> onYesClickListener() } + .setNegativeButton(R.string.cancel) { _, _ -> onCancelClickListener() } + .show() +} \ No newline at end of file -- GitLab