feat:新增隐私协议
feat:替换部分图标
This commit is contained in:
10
.idea/deploymentTargetDropDown.xml
generated
10
.idea/deploymentTargetDropDown.xml
generated
@@ -4,18 +4,18 @@
|
||||
<value>
|
||||
<entry key="app">
|
||||
<State>
|
||||
<targetSelectedWithDropDown>
|
||||
<runningDeviceTargetSelectedWithDropDown>
|
||||
<Target>
|
||||
<type value="QUICK_BOOT_TARGET" />
|
||||
<type value="RUNNING_DEVICE_TARGET" />
|
||||
<deviceKey>
|
||||
<Key>
|
||||
<type value="VIRTUAL_DEVICE_PATH" />
|
||||
<value value="$USER_HOME$/.android/avd/Card_Pixel_3a_XL_API_34.avd" />
|
||||
<value value="$USER_HOME$/.android/avd/CarsPixel_4_XL_API_30.avd" />
|
||||
</Key>
|
||||
</deviceKey>
|
||||
</Target>
|
||||
</targetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2024-03-08T06:17:13.921598Z" />
|
||||
</runningDeviceTargetSelectedWithDropDown>
|
||||
<timeTargetWasSelectedWithDropDown value="2024-03-08T10:09:11.383802Z" />
|
||||
</State>
|
||||
</entry>
|
||||
</value>
|
||||
|
@@ -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>
|
@@ -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))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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 |
12
app/src/main/res/drawable/base_ic_back.xml
Normal file
12
app/src/main/res/drawable/base_ic_back.xml
Normal 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>
|
@@ -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>
|
42
app/src/main/res/layout/privacy_agreement_activity.xml
Normal file
42
app/src/main/res/layout/privacy_agreement_activity.xml
Normal 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>
|
4
app/src/main/res/values/dimens.xml
Normal file
4
app/src/main/res/values/dimens.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="titlebar_height">45dp</dimen>
|
||||
</resources>
|
@@ -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>
|
Reference in New Issue
Block a user