Add dialog to read TOS

This commit is contained in:
Rahul Kumar Patel
2021-03-02 01:09:26 +05:30
parent 1c8d25f1d1
commit b202025cbb
9 changed files with 207 additions and 4 deletions

View File

@@ -22,7 +22,7 @@
},
{
"id": "3",
"title": "Privacy Policy",
"title": "Privacy policy",
"subtitle": "Find out if we have your nudes :p",
"icon": "ic_privacy",
"url": "https://gitlab.com/AuroraOSS/AuroraStore/-/raw/master/POLICY.md"

View File

@@ -32,6 +32,7 @@ object Constants {
const val EXODUS_BASE_URL = "https://reports.exodus-privacy.eu.org/api/search/"
const val EXODUS_REPORT_URL = "https://reports.exodus-privacy.eu.org/reports/"
const val SHARE_URL = "http://play.google.com/store/apps/details?id="
const val TOS_URL = "https://gitlab.com/AuroraOSS/AuroraStore/-/raw/master/TermsOfService.md"
const val UPDATE_URL = "https://gitlab.com/AuroraOSS/AuroraStore/raw/master/updates.json"
const val NOTIFICATION_CHANNEL_ALERT = "NOTIFICATION_CHANNEL_ALERT"

View File

@@ -115,6 +115,10 @@ class MainActivity : BaseActivity() {
attachDrawer()
attachSearch()
if (!Preferences.getBoolean(this, Preferences.PREFERENCE_TOS_READ)) {
askToReadTOS()
}
/*Check only if download to external storage is enabled*/
if (Preferences.getBoolean(this, Preferences.PREFERENCE_DOWNLOAD_EXTERNAL)) {
checkExternalStorageAccessPermission()

View File

@@ -46,6 +46,8 @@ object Preferences {
const val PREFERENCE_DOWNLOAD_EXTERNAL = "PREFERENCE_DOWNLOAD_EXTERNAL"
const val PREFERENCE_DOWNLOAD_WIFI = "PREFERENCE_DOWNLOAD_WIFI"
const val PREFERENCE_TOS_READ = "PREFERENCE_TOS_READ"
private fun getPrefs(context: Context): SharedPreferences {
return PreferenceManager.getDefaultSharedPreferences(context)

View File

@@ -35,9 +35,13 @@ import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE
import com.aurora.store.view.ui.account.GoogleActivity
import com.aurora.store.view.ui.details.*
import com.aurora.store.view.ui.sheets.NetworkDialogSheet
import com.aurora.store.view.ui.sheets.TOSSheet
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import nl.komponents.kovenant.task
import nl.komponents.kovenant.ui.successUi
import java.lang.reflect.Modifier
import java.util.concurrent.TimeUnit
abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListener {
@@ -136,6 +140,15 @@ abstract class BaseActivity : AppCompatActivity(), NetworkProvider.NetworkListen
)
}
fun askToReadTOS() {
task {
TimeUnit.SECONDS.sleep(5)
} successUi {
TOSSheet.newInstance().show(supportFragmentManager, TOSSheet.TAG)
}
}
fun showNetworkConnectivitySheet() {
runOnUiThread {
supportFragmentManager.beginTransaction()

View File

@@ -26,6 +26,7 @@ import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
import com.aurora.Constants
import com.aurora.extensions.open
import com.aurora.store.R
import com.aurora.store.databinding.ActivityOnboardingBinding
import com.aurora.store.util.Preferences
@@ -39,7 +40,6 @@ import com.aurora.store.util.Preferences.PREFERENCE_INSTALLER_ID
import com.aurora.store.util.Preferences.PREFERENCE_INTRO
import com.aurora.store.util.Preferences.PREFERENCE_THEME_ACCENT
import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE
import com.aurora.extensions.open
import com.aurora.store.util.save
import com.aurora.store.view.ui.commons.BaseActivity
import com.aurora.store.view.ui.splash.SplashActivity
@@ -84,6 +84,10 @@ class OnboardingActivity : BaseActivity() {
moveBackward()
}
if (!Preferences.getBoolean(this, Preferences.PREFERENCE_TOS_READ)) {
askToReadTOS()
}
onNewIntent(intent)
}
@@ -92,7 +96,6 @@ class OnboardingActivity : BaseActivity() {
intent?.let {
val pos = intent.getIntExtra(Constants.INT_EXTRA, 0)
B.viewpager2.setCurrentItem(pos, false)
}
}

View File

@@ -0,0 +1,76 @@
/*
* Aurora Store
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
*
* Aurora Store is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Aurora Store is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
*
*/
package com.aurora.store.view.ui.sheets
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.aurora.Constants
import com.aurora.extensions.browse
import com.aurora.store.databinding.SheetTosBinding
import com.aurora.store.util.Preferences
class TOSSheet : BaseBottomSheet() {
private lateinit var B: SheetTosBinding
companion object {
const val TAG = "TOSSheet"
@JvmStatic
fun newInstance(): TOSSheet {
return TOSSheet().apply {
arguments = Bundle().apply {
}
}
}
}
override fun onCreateContentView(
inflater: LayoutInflater,
container: ViewGroup,
savedInstanceState: Bundle?
): View {
B = SheetTosBinding.inflate(inflater, container, false)
attachAction()
return B.root
}
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
}
private fun attachAction() {
B.btnPrimary.setOnClickListener {
requireContext().browse(Constants.TOS_URL)
Preferences.putBoolean(requireContext(), Preferences.PREFERENCE_TOS_READ, true)
}
B.btnSecondary.setOnClickListener {
Preferences.putBoolean(requireContext(), Preferences.PREFERENCE_TOS_READ, true)
dismissAllowingStateLoss()
}
}
}

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?><!--
~ Aurora Store
~ Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
~
~ Aurora Store is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 2 of the License, or
~ (at your option) any later version.
~
~ Aurora Store is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
~
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/divider"
android:orientation="vertical"
android:padding="@dimen/padding_large"
android:showDividers="middle">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/img_icon"
android:layout_width="@dimen/icon_size_category"
android:layout_height="@dimen/icon_size_category"
android:layout_centerVertical="true"
app:srcCompat="@drawable/ic_logo" />
<TextView
android:id="@+id/txt_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/margin_normal"
android:layout_marginBottom="@dimen/margin_normal"
android:layout_toEndOf="@id/img_icon"
android:maxLines="1"
android:text="@string/app_name"
android:textAlignment="viewStart"
android:textAppearance="@style/TextAppearance.Aurora.SubTitle" />
</RelativeLayout>
<TextView
android:id="@+id/txt_line1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="3"
android:text="@string/onboarding_tos"
android:textAlignment="viewStart"
android:textAppearance="@style/TextAppearance.Aurora.Line1" />
<TextView
android:id="@+id/txt_line2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="10"
android:text="@string/onboarding_tos_desc"
android:textAlignment="viewStart"
android:textAppearance="@style/TextAppearance.Aurora.Line2" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_secondary"
style="@style/Widget.MaterialComponents.Button.TextButton.Dialog.Flush"
android:layout_width="0dp"
android:layout_height="@dimen/height_button"
android:layout_weight="1"
android:text="@string/action_accept" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_primary"
style="@style/Widget.MaterialComponents.Button.TextButton.Dialog.Flush"
android:layout_width="0dp"
android:layout_height="@dimen/height_button"
android:layout_weight="1"
android:text="@string/action_read_accept" />
</LinearLayout>
</LinearLayout>

View File

@@ -45,6 +45,7 @@
<string name="account_login_using">"Login using"</string>
<string name="account_logout">"Logout from Aurora"</string>
<string name="action_accept">"Accept"</string>
<string name="action_accounts">"Accounts"</string>
<string name="action_all_reviews">"All reviews"</string>
<string name="action_apply">"Apply"</string>
@@ -104,6 +105,7 @@
<string name="action_post">"Post"</string>
<string name="action_previous">"Previous"</string>
<string name="action_purchase">"Purchase"</string>
<string name="action_read_accept">"Read &amp; accept"</string>
<string name="action_resend">"Resend"</string>
<string name="action_restart">"Restart"</string>
<string name="action_resume">"Resume"</string>
@@ -238,7 +240,6 @@
<string name="device_miui_description">"Please, disable MIUI optimizations to allow installations, otherwise you can choose Root or Services installer."</string>
<string name="device_miui_extra">"Optionally you can choose Native installer, but then you can not install bundled (split) APKs, so choice is yours."</string>
<string name="dialog_title_self_update">"New update available"</string>
<string name="dialog_desc_self_update">"Do you wish to update now ?"</string>
<string name="list_update_all_txt_one">"update available"</string>
@@ -255,6 +256,8 @@
<string name="onboarding_title_permissions">"Permissions"</string>
<string name="onboarding_title_theme">"Themes"</string>
<string name="onboarding_title_welcome">"Welcome"</string>
<string name="onboarding_tos">"Terms of services"</string>
<string name="onboarding_tos_desc">"Read our Terms of services and accept it before you continue to use Aurora Store."</string>
<string name="onboarding_welcome_select">"How you doing?"</string>
<string name="onboarding_permission_esa">"External Storage Access"</string>