diff --git a/app/src/main/java/com/aurora/store/view/ui/onboarding/AppLinksFragment.kt b/app/src/main/java/com/aurora/store/view/ui/onboarding/AppLinksFragment.kt
new file mode 100644
index 000000000..402b334ab
--- /dev/null
+++ b/app/src/main/java/com/aurora/store/view/ui/onboarding/AppLinksFragment.kt
@@ -0,0 +1,86 @@
+package com.aurora.store.view.ui.onboarding
+
+import android.content.Intent
+import android.content.pm.verify.domain.DomainVerificationManager
+import android.content.pm.verify.domain.DomainVerificationUserState
+import android.net.Uri
+import android.os.Bundle
+import android.provider.Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS
+import android.view.View
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.fragment.app.Fragment
+import com.aurora.extensions.isSAndAbove
+import com.aurora.extensions.toast
+import com.aurora.store.R
+import com.aurora.store.databinding.FragmentAppLinksBinding
+
+class AppLinksFragment : Fragment(R.layout.fragment_app_links) {
+
+ private var _binding: FragmentAppLinksBinding? = null
+ private val binding: FragmentAppLinksBinding
+ get() = _binding!!
+
+ private val playStoreDomain = "play.google.com"
+
+ private val startForResult =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
+ if (isSAndAbove() && playStoreDomainVerified()) {
+ toast(R.string.app_link_enabled)
+ }
+ updateButtonState()
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ _binding = FragmentAppLinksBinding.bind(view)
+
+ updateButtonState()
+ if (isSAndAbove()) {
+ binding.btnAction.setOnClickListener {
+ val intent = Intent(
+ ACTION_APP_OPEN_BY_DEFAULT_SETTINGS,
+ Uri.parse("package:${view.context.packageName}")
+ )
+ startForResult.launch(intent)
+ }
+ }
+ }
+
+ override fun onDestroyView() {
+ _binding = null
+ super.onDestroyView()
+ }
+
+ private fun updateButtonState() {
+ if (isSAndAbove()) {
+ if (playStoreDomainVerified()) {
+ binding.btnAction.apply {
+ text = getString(R.string.action_enabled)
+ isEnabled = false
+ }
+ }
+ } else {
+ binding.btnAction.apply {
+ text = getString(R.string.action_enabled)
+ isEnabled = false
+ }
+ }
+ }
+
+ private fun playStoreDomainVerified(): Boolean {
+ return if (isSAndAbove()) {
+ val domainVerificationManager = requireContext().getSystemService(
+ DomainVerificationManager::class.java
+ )
+ val userState = domainVerificationManager.getDomainVerificationUserState(
+ requireContext().packageName
+ )
+
+ val playStoreDomain = userState?.hostToStateMap?.filterKeys { it == playStoreDomain }
+ playStoreDomain?.values?.first() == DomainVerificationUserState.DOMAIN_STATE_SELECTED
+ } else {
+ true
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt b/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt
index 6e3f24dca..e092012c6 100644
--- a/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt
@@ -117,8 +117,8 @@ class OnboardingFragment : Fragment(R.layout.fragment_onboarding) {
fun refreshButtonState() {
binding.btnBackward.isEnabled = lastPosition != 0
- binding.btnForward.isEnabled = lastPosition != 4
- if (lastPosition == 4) {
+ binding.btnForward.isEnabled = lastPosition != 5
+ if (lastPosition == 5) {
binding.btnForward.text = getString(R.string.action_finish)
binding.btnForward.isEnabled = true
binding.btnForward.setOnClickListener {
@@ -175,13 +175,14 @@ class OnboardingFragment : Fragment(R.layout.fragment_onboarding) {
1 -> return InstallerFragment()
2 -> return ThemeFragment()
3 -> return AccentFragment()
- 4 -> return PermissionsFragment()
+ 4 -> return AppLinksFragment()
+ 5 -> return PermissionsFragment()
}
return Fragment()
}
override fun getItemCount(): Int {
- return 5
+ return 6
}
}
}
diff --git a/app/src/main/res/layout/fragment_app_links.xml b/app/src/main/res/layout/fragment_app_links.xml
new file mode 100644
index 000000000..99be965b9
--- /dev/null
+++ b/app/src/main/res/layout/fragment_app_links.xml
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_onboarding_permissions.xml b/app/src/main/res/layout/fragment_onboarding_permissions.xml
index 4c78012fc..603c3acef 100644
--- a/app/src/main/res/layout/fragment_onboarding_permissions.xml
+++ b/app/src/main/res/layout/fragment_onboarding_permissions.xml
@@ -57,6 +57,6 @@
android:padding="@dimen/padding_normal"
android:scrollbars="none"
app:itemSpacing="@dimen/margin_small"
- tools:listitem="@layout/view_installer" />
+ tools:listitem="@layout/view_permission" />
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8d67ac066..9811b8d18 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -18,7 +18,8 @@
~ You should have received a copy of the GNU General Public License
~ along with Aurora Store. If not, see .
~
- -->
+ -->
+
"BHIM - UPI"
"Donate via UPI"
"Bitcoin Cash"
@@ -371,4 +372,11 @@
App Language
Layout
Select default tab
+ App Links
+ Aurora store can open supported links
+ Enable
+ Enabled
+ App link enabled!
+ play.google.com
+ Google Play, also known as the Google Play Store and formerly Android Market.