feat:新增隐私协议

feat:替换部分图标
This commit is contained in:
Max
2024-03-08 18:37:20 +08:00
parent 8407910377
commit b6273de27d
11 changed files with 121 additions and 8 deletions

View File

@@ -29,7 +29,7 @@
android:value="portrait|landscape" />
<activity
android:name="com.heeeeka.card.MainActivity"
android:name="com.heeeeka.card.ui.MainActivity"
android:exported="true"
android:screenOrientation="portrait">
<intent-filter>
@@ -38,5 +38,9 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.agreement.PrivacyAgreementActivity"
android:screenOrientation="portrait" />
</application>
</manifest>

View File

@@ -1,6 +1,9 @@
package com.heeeeka.card
package com.heeeeka.card.ui
import android.content.Intent
import android.os.Bundle
import android.text.SpannableString
import android.text.style.UnderlineSpan
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import com.heeeeka.card.support.ActivityResultLauncherCompat
@@ -13,6 +16,8 @@ import com.heeeeka.card.ui.firework.CardFireworkDialog
import com.heeeeka.card.utils.ILog
import com.heeeeka.card.utils.toast
import com.gyf.immersionbar.ImmersionBar
import com.heeeeka.card.R
import com.heeeeka.card.ui.agreement.PrivacyAgreementActivity
import java.nio.charset.Charset
class MainActivity : AppCompatActivity(), ILog {
@@ -42,6 +47,11 @@ class MainActivity : AppCompatActivity(), ILog {
cardEngine = CardEngine(this, it.width, it.height)
}
}
binding?.tvPrivacyAgreement?.let {
val spannableString = SpannableString(it.text)
spannableString.setSpan(UnderlineSpan(), 0, it.text.length, 0)
it.text = spannableString
}
}
private fun initEvent() {
@@ -58,6 +68,9 @@ class MainActivity : AppCompatActivity(), ILog {
binding.tvChangeFirework.setOnClickListener {
showFireworkSelectDialog()
}
binding.tvPrivacyAgreement.setOnClickListener {
startActivity(Intent(this, PrivacyAgreementActivity::class.java))
}
}
}

View File

@@ -0,0 +1,21 @@
package com.heeeeka.card.ui.agreement
import android.os.Bundle
import android.text.method.ScrollingMovementMethod
import androidx.appcompat.app.AppCompatActivity
import com.gyf.immersionbar.ImmersionBar
import com.heeeeka.card.databinding.PrivacyAgreementActivityBinding
class PrivacyAgreementActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = PrivacyAgreementActivityBinding.inflate(layoutInflater)
setContentView(binding.root)
ImmersionBar.with(this).statusBarDarkFont(true).titleBarMarginTop(binding.tvTitle).init()
binding.tvContent.movementMethod = ScrollingMovementMethod()
binding.ivBack.setOnClickListener {
finish()
}
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,12 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="18dp"
android:height="18dp"
android:viewportWidth="18"
android:viewportHeight="18">
<path
android:pathData="M9.63,1.17C9.99,1.531 9.99,2.115 9.63,2.475L3.122,9L9.63,15.525C9.99,15.885 9.99,16.469 9.63,16.83C9.271,17.19 8.688,17.19 8.329,16.83L1.17,9.652C0.81,9.292 0.81,8.708 1.17,8.348L8.329,1.17C8.688,0.81 9.271,0.81 9.63,1.17Z"
android:strokeWidth="1"
android:fillColor="#2C2E33"
android:fillType="evenOdd"
android:strokeColor="#00000000"/>
</vector>

View File

@@ -114,4 +114,17 @@
app:layout_constraintTop_toTopOf="@id/iv_refresh"
app:layout_constraintWidth_percent="0.394" />
<TextView
android:id="@+id/tv_privacy_agreement"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_privacy_agreement"
android:textColor="@color/white"
android:textSize="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_refresh"
app:layout_constraintVertical_bias="0.65" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="@dimen/titlebar_height"
android:gravity="center"
android:text="@string/privacy_agreement"
android:textColor="@color/black"
android:textSize="18dp"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_back"
android:layout_width="@dimen/titlebar_height"
android:layout_height="@dimen/titlebar_height"
android:layout_marginStart="5dp"
android:scaleType="centerInside"
android:src="@drawable/base_ic_back"
app:layout_constraintBottom_toBottomOf="@id/tv_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_title" />
<TextView
android:id="@+id/tv_content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:lineSpacingMultiplier="1.3"
android:paddingHorizontal="15dp"
android:paddingVertical="5dp"
android:scrollbars="vertical"
android:text="@string/privacy_agreement_content"
android:textColor="#2C2E40"
android:textSize="14dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_title" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="titlebar_height">45dp</dimen>
</resources>

View File

@@ -1,5 +1,6 @@
<!DOCTYPE resources [<!ENTITY app_name "賀卡生產器" >]>
<resources>
<string name="app_name">賀卡生產器</string>
<string name="app_name">&app_name;</string>
<string name="change_bg">更改背景</string>
<string name="change_firework">更改煙花</string>
@@ -13,4 +14,7 @@
<string name="card_text_length_tips">祝福語太長</string>
<string name="permission_external_storage_denied">存儲權限被禁止,為了正常使用該功能,請前往系統設置頁手動開啟</string>
<string name="save_successfully">保存成功</string>
<string name="privacy_agreement">隱私政策</string>
<string name="app_privacy_agreement">&app_name;隱私政策》</string>
<string name="privacy_agreement_content">感謝您使用賀卡生產器App。本隱私政策旨在幫助您了解我們收集、使用和共享您的個人信息的方式以及您在使用我們的應用程序時的相關權利。請仔細閱讀本隱私政策以便了解我們如何處理您的個人信息。\n\n**收集的信息**\n當您使用賀卡生產器App時我們可能會收集以下類型的信息\n1.用戶提供的信息: \n包括您在App中輸入的資料例如文字內容、選擇的背景等。\n\n**使用信息**\n我們使用收集的信息來提供、維護和改進賀卡生產器App包括但不限於以下方面\n1.生成和呈現賀卡: \n我們使用您提供的信息來生成和呈現您所輸入的賀卡。\n2.App功能支持 \n我們可能使用您的信息來支持賀卡生產器App的功能包括提供定制化的服務和內容。\n3.分析使用情況: \n我們可能會分析收集的信息以瞭解用戶如何使用我們的App以及如何改進和優化我們的服務。\n4.客戶支援和技術支援: \n我們可能會使用您提供的信息來向您提供客戶支援和技術支援。\n\n**信息共享**\n我們不會向第三方出售、交易或出租您的個人信息。但在以下情況下我們可能會與第三方共享您的信息\n1.經您同意: \n在獲得您的明確同意之下我們可能會與第三方分享您的信息\n2.法律要求: \n我們可能會根據法律法規、法庭命令或其他法律程序要求向有權機構提供您的信息。\n\n**信息安全**\n我們將採取合理的安全措施來保護您提供給我們的信息以防止未經授權的訪問、使用或披露。我們使用加密技術來保護您的數據傳輸並實行嚴格的訪問控制措施來限制對您的個人信息的訪問。我們會定期審查我們的信息安全措施以確保它們能夠有效地保護您的信息。\n\n**兒童隱私**\n我們的App不面向未滿13歲的兒童。如果您發現您的孩子向我們提供了個人信息請與我們聯繫我們將盡快刪除這些信息。\n\n**隱私政策的更新**\n我們保留隨時更新本隱私政策的權利我們將在本頁面上公布任何更新的隱私政策。我們建議您定期查看本隱私政策以了解我們如何保護您的信息。\n\n**您的權利**\n根據適用法律您有權要求查詢、更正、刪除或限制處理您的個人信息。如果您希望行使這些權利請通過以下方式與我們聯繫milesdrake@wwwprintec-ht.lol\n此外您還有權利撤回您之前同意的個人信息處理活動並有權提出投訴。\n\n**聯繫我們**\n如果您對本隱私政策有任何疑問或意見請通過以下方式與我們聯繫milesdrake@wwwprintec-ht.lol\n\n感謝您使用賀卡生產器App</string>
</resources>