Commit 579c5771 authored by wanglei's avatar wanglei

========节日加班==========

parent 6d47c8fc
......@@ -52,6 +52,12 @@
</intent-filter>
</activity>
<activity
android:name=".activity.SettingActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity">
</activity>
<activity
android:name=".activity.FileCategoryActivity"
android:exported="false"
......@@ -94,13 +100,7 @@
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name="com.base.superfilemanager.activity.MainActivity"
android:exported="true">
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN" />-->
<!-- <category android:name="android.intent.category.LAUNCHER" />-->
<!-- </intent-filter>-->
</activity>
android:exported="true"></activity>
<activity
android:name="com.base.superfilemanager.activity.ScanJunkActivity"
android:screenOrientation="portrait"
......
......@@ -57,8 +57,6 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
)
}
// private val child1 = ArrayList<ChildBean>()
// private val child2 = ArrayList<ChildBean>()
private val child3 = ArrayList<ChildBean>()
private val child4 = ArrayList<ChildBean>()
private val child5 = ArrayList<ChildBean>()
......@@ -110,22 +108,12 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
FileHelps.getFileList({
}, {
// if (mData.isEmpty()) {
//
//
// }
FileHelps.fileList.toList().let { it ->
if (it.isNotEmpty()) {
// child3.clear()
// child4.clear()
// child5.clear()
// sizes[0] = 0
// sizes[1] = 0
// sizes[2] = 0
val a = it.filter { it.isApk() }
val halfSize = if (a.size % 2 == 1) a.size / 2 + 1 else a.size / 2
val firstHalf = a.subList(0, halfSize)
firstHalf.forEach { l ->
a.forEach { l ->
sizes[0] += l.size
// junkList.add(p0.path)
val bean = ChildBean(R.mipmap.apk, l.name, l.path, l.size)
......@@ -133,11 +121,10 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
}
ScanCount += 1
updateSize(doneIndex = 0)
// mData.addAll(it)
val b = it.filter { it.isJunk() }
val bhalfSize = if (b.size % 2 == 1) b.size / 2 + 1 else b.size / 2
val bfirstHalf = b.subList(0, bhalfSize)
bfirstHalf.forEach { l ->
val bHalfSize = if (b.size % 2 == 1) b.size / 2 + 1 else b.size / 2
val bFirstHalf = b.subList(0, bHalfSize)
b.forEach { l ->
sizes[1] += l.size
// junkList.add(p0.path)
val bean = ChildBean(null, l.name, l.path, l.size)
......@@ -146,11 +133,10 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
ScanCount += 1
updateSize(doneIndex = 1)
val c = it.filter { it.isOtherTrash() }
val chalfSize = if (c.size % 2 == 1) c.size / 2 + 1 else c.size / 2
val cfirstHalf = c.subList(0, chalfSize)
cfirstHalf.forEach { l ->
val cHalfSize = if (c.size % 2 == 1) c.size / 2 + 1 else c.size / 2
val cFirstHalf = c.subList(0, cHalfSize)
c.forEach { l ->
sizes[2] += l.size
// junkList.add(p0.path)
val bean = ChildBean(null, l.name, l.path, l.size)
child5.add(bean)
}
......@@ -173,7 +159,7 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
selectSize = 0L
for (i in parentList.indices) {
if (parentList[i].childItem.isNotEmpty()) {
val childsize = parentList[i].childItem.filter {
val childSize = parentList[i].childItem.filter {
it.isChildSelected
}.sumOf {
it.childSize
......@@ -187,7 +173,7 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
}
}
}
selectSize += childsize
selectSize += childSize
} else {
if (parentList[i].isParentSelected) {
selectSize += parentList[i].parentSize
......@@ -263,12 +249,6 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
it.isChildSelected
}.map { it.chilepath })
}
// for (item in parentList) {
// if (item.isParentSelected) {
// Log.e("MXL", "updateView: " + item)
// }
// }
}
private val mAdapter by lazy {
......@@ -375,10 +355,6 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
val childType = parentList[groupPosition].childItem[childPosition]
when (groupPosition) {
0 -> {
// val c = ConfigHelper.appList?.firstOrNull {
// it.name == childType.childname
// }
// viewHolder.binding.idImgIcon.setImageDrawable(c?.icon)
val packageManager: PackageManager = this@CleanJunkActivity.packageManager
val apkFilePath = childType.chilepath // 替换成您的APK文件路径
val packageInfo =
......
......@@ -122,8 +122,8 @@ class PermissionManagerActivity : BaseActivity<ActivityPermissionManagerBinding>
val info: PackageInfo
try {
info = pm.getPackageInfo(pkg, PackageManager.GET_PERMISSIONS)
val packagePermissions = info.requestedPermissions
packagePermissions.forEach { permission ->
val packagePermissions: Array<String>? = info.requestedPermissions ?: null
packagePermissions?.forEach { permission ->
LogEx.logDebug(TAG, "permission=$permission")
val common = commonPermissions.find { it.permissionMatch == permission }
common?.let {
......
package com.base.superfilemanager.activity
import android.content.Intent
import android.net.Uri
import com.base.superfilemanager.databinding.ActivitySettingBinding
import com.base.superfilemanager.display.NotificationService
import com.base.superfilemanager.display.fcm.FcmHelper
import com.base.superfilemanager.display.fcm.NotificationJobService.Companion.initJob
import com.base.superfilemanager.helps.BaseActivity
import com.base.superfilemanager.helps.ConfigHelper.allNotification
import com.base.superfilemanager.helps.ConfigHelper.remainNotification
class SettingActivity : BaseActivity<ActivitySettingBinding>() {
override val binding: ActivitySettingBinding by lazy {
ActivitySettingBinding.inflate(layoutInflater)
}
override fun initView() {
binding.switchRemainNotification.isChecked = remainNotification
binding.switchAllNotification.isChecked = allNotification
}
override fun initListener() {
binding.ivBack.setOnClickListener {
// AdmobUtils.showInterstitialAd(this) {
finishToMain()
// }
}
binding.switchRemainNotification.setOnCheckedChangeListener { buttonView, isChecked ->
remainNotification = isChecked
if (isChecked) {
initJob()
} else {
val serviceIntent = Intent(this, NotificationService::class.java)
stopService(serviceIntent)
}
}
binding.switchAllNotification.setOnCheckedChangeListener { buttonView, isChecked ->
allNotification = isChecked
switchFcm(isChecked)
}
binding.cardPrivacy.setOnClickListener {
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse("https://sites.google.com/view/esuper-file-manager/home")
)
startActivity(intent)
}
}
private fun switchFcm(checked: Boolean) {
if (checked) {
FcmHelper.subscribeToTopic()
} else {
FcmHelper.unSubscribeToTopic()
}
}
}
\ No newline at end of file
......@@ -18,7 +18,7 @@ import com.blankj.utilcode.util.BarUtils
import com.base.superfilemanager.databinding.ActivityLayoutSplashBinding
import com.base.superfilemanager.display.CloseNotificationReceiver
import com.base.superfilemanager.display.NotificationHelper
import com.base.superfilemanager.display.fcm.NotificationJobService
import com.base.superfilemanager.display.fcm.NotificationJobService.Companion.initJob
import com.base.superfilemanager.helps.BaseActivity
import com.base.superfilemanager.helps.ConfigHelper
import com.base.superfilemanager.helps.LogEx
......@@ -75,16 +75,6 @@ class NewSplashActivity : BaseActivity<ActivityLayoutSplashBinding>(),
loadAd()
}
private fun initJob() {
val jobScheduler = getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
val job = JobInfo.Builder(0, ComponentName(this, NotificationJobService::class.java))
.setMinimumLatency(0L)
.setOverrideDeadline(0L)
.setPersisted(true)
.build()
jobScheduler.schedule(job)
}
override fun onProgressMax() {
Handler().postDelayed({
......
......@@ -44,7 +44,7 @@ class PrivacyAgreementManager {
binding.idTvPrivacyPolicy.setOnClickListener {
val intent = Intent(
Intent.ACTION_VIEW,
Uri.parse("https://sites.google.com/view/one-clean-master/home")
Uri.parse("https://sites.google.com/view/esuper-file-manager/home")
)
context.startActivity(intent)
}
......
......@@ -2,9 +2,7 @@ package com.base.superfilemanager.activity.splash
import android.app.Activity
import android.content.Intent
import com.base.superfilemanager.activity.GuestActivity
import com.base.superfilemanager.activity.AppManagerActivity
import com.base.superfilemanager.activity.BatteryInfoActivity
import com.base.superfilemanager.activity.CleanGuestActivity
import com.base.superfilemanager.activity.LargeFileCleanActivity
import com.base.superfilemanager.activity.MainActivity
......@@ -14,16 +12,12 @@ import com.base.superfilemanager.activity.RepeaterdPhotoActivity
import com.base.superfilemanager.activity.ScanJunkActivity
import com.base.superfilemanager.activity.photocompress.photo.StartCompressionPhotoActivity
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_APP_MANAGER
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_CHARGE
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_INSTALL_PACKAGE_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_JUNK_CLEAN_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_LARGE_FILE_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_LOW_BATTERY_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_NETWORK_TRAFFIC
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_PHOTO_COMPRESS
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_RECENT_USE_APP
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_SIMILAR_IMAGE
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_UNINSTALL_PACKAGE_PUSH
import com.base.superfilemanager.helps.ConfigHelper
import com.base.superfilemanager.helps.EventHelper
......@@ -46,6 +40,7 @@ object SplashJumpUtils {
ID_JUNK_CLEAN_PUSH -> {
context.startActivity(Intent(context, ScanJunkActivity::class.java))
}
ID_LARGE_FILE_PUSH -> {
context.startActivity(Intent(context, LargeFileCleanActivity::class.java))
}
......@@ -72,26 +67,11 @@ object SplashJumpUtils {
//================================被动广播==============================================
ID_INSTALL_PACKAGE_PUSH -> {
context.startActivity(Intent(context, ScanJunkActivity::class.java))
}
ID_UNINSTALL_PACKAGE_PUSH -> {
context.startActivity(Intent(context, ScanJunkActivity::class.java))
}
ID_CHARGE -> {
context.startActivity(Intent(context, BatteryInfoActivity::class.java))
}
ID_LOW_BATTERY_PUSH -> {
context.startActivity(Intent(context, BatteryInfoActivity::class.java))
}
else -> {
val isHotLaunch = context.intent?.extras?.getBoolean("isHotLaunch", false) ?: false
if (!isHotLaunch) {
if (!ConfigHelper.ifGuest) {
ConfigHelper.ifGuest = true
context.startActivity(Intent(context, CleanGuestActivity::class.java))
} else {
context.startActivity(Intent(context, MainActivity::class.java))
......
......@@ -55,11 +55,6 @@ data class ConfigBean(
//场景触发push actionId 被动发送
const val ID_WIFI_PUSH = 22001//连接wifi时
const val ID_INSTALL_PACKAGE_PUSH = 22002//安装应用
const val ID_UNINSTALL_PACKAGE_PUSH = 22003//卸载应用
const val ID_CHARGE = 22004//充电
const val ID_LOW_BATTERY_PUSH = 22005//电量低于阈值时
const val ID_LOW_RAM_PUSH = 22007//内存低于阈值
fun ConfigBean.getActionPushInterval(actionId: Int): Int {
val interval = when (actionId) {
......@@ -78,11 +73,6 @@ data class ConfigBean(
ID_RECENT_USE_APP -> push_interval_11014
ID_SIMILAR_IMAGE -> push_interval_11015
ID_WIFI_PUSH -> push_interval_22001
ID_INSTALL_PACKAGE_PUSH -> push_interval_22002
ID_UNINSTALL_PACKAGE_PUSH -> push_interval_22003
ID_CHARGE -> push_interval_22004
ID_LOW_BATTERY_PUSH -> push_interval_22005
ID_LOW_RAM_PUSH -> push_interval_22007
else -> 0
}
return interval
......
......@@ -6,13 +6,6 @@ import android.content.Intent
import android.content.IntentFilter
import android.os.Build
import android.util.Log
import com.blankj.utilcode.util.SPUtils
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_CHARGE
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_LOW_BATTERY_PUSH
import com.base.superfilemanager.display.NotificationHelper.postActionNotification
import com.base.superfilemanager.helps.BaseApplication
import kotlin.time.Duration.Companion.minutes
import kotlin.time.DurationUnit
class ActionBroadcast : BroadcastReceiver() {
......@@ -56,12 +49,10 @@ class ActionBroadcast : BroadcastReceiver() {
Log.d("glc", "解锁")
if (mIsScreenOn && !isLock) {
// 展示主动推送
NotificationTimerTask(null).oneShotNotification()
}
}
Intent.ACTION_POWER_CONNECTED -> {
BaseApplication.context.postActionNotification(ID_CHARGE)
}
Intent.ACTION_POWER_DISCONNECTED -> {
......@@ -69,25 +60,9 @@ class ActionBroadcast : BroadcastReceiver() {
}
Intent.ACTION_BATTERY_CHANGED -> {//电量改变
lowBattery(intent)
}
}
}
private fun lowBattery(intent: Intent?) {
val level = intent?.getIntExtra("level", 0) ?: 0
if (level < 50) {
val lastPushTime = SPUtils.getInstance().getLong(ID_LOW_BATTERY_PUSH.toString(), 0)
val flag2 = (System.currentTimeMillis() - lastPushTime) > 20.minutes.toLong(DurationUnit.MILLISECONDS)
val isPushCfg = PushStrategy.isPush(ID_LOW_BATTERY_PUSH)
if (flag2 && isPushCfg) {
BaseApplication.context.postActionNotification(ID_LOW_BATTERY_PUSH, extra = level)
}
}
}
}
\ No newline at end of file
......@@ -18,17 +18,13 @@ import com.base.superfilemanager.R
import com.base.superfilemanager.activity.splash.NewSplashActivity
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_APP_MANAGER
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_BATTERY_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_CHARGE
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_CLEAN_NOTIFICATION
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_INSTALL_PACKAGE_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_JUNK_CLEAN_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_LARGE_FILE_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_LOW_BATTERY_PUSH
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_NETWORK_TRAFFIC
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_PHOTO_COMPRESS
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_RECENT_USE_APP
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_SIMILAR_IMAGE
import com.base.superfilemanager.bean.ConfigBean.Companion.ID_UNINSTALL_PACKAGE_PUSH
import com.base.superfilemanager.helps.BaseApplication
import com.base.superfilemanager.helps.ComUtils
import com.base.superfilemanager.helps.EventHelper
......@@ -170,31 +166,6 @@ object NotificationHelper {
}
//==================================下面是被动推送的情况===============================================
ID_INSTALL_PACKAGE_PUSH -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.install)
remoteViews.setTextViewText(R.id.tv_desc, "Installation successful. Delete useless APKs")
remoteViews.setTextViewText(R.id.tv_btn, "Scan")
}
ID_UNINSTALL_PACKAGE_PUSH -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.uninstall)
remoteViews.setTextViewText(R.id.tv_desc, "Uninstalled successfully, clean residual files from your device")
remoteViews.setTextViewText(R.id.tv_btn, "Clean up")
}
ID_CHARGE -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.start)
remoteViews.setTextViewText(R.id.tv_desc, "View phone battery consumption recently")
remoteViews.setTextViewText(R.id.tv_btn, "View")
}
ID_LOW_BATTERY_PUSH -> {
remoteViews.setImageViewResource(R.id.iv_icon, R.drawable.batter)
remoteViews.setTextViewText(R.id.tv_desc, "The battery is $extra%, view the battery information")
remoteViews.setTextViewText(R.id.tv_btn, "View")
}
else -> {
return
}
......
......@@ -57,8 +57,6 @@ object PushStrategy {
// }
//是否上次推送间隔大于配置间隔
// val isOganic = UserChancelEx.isOrganicUser()
// val interval = if (isOganic) pushManagement.o_push_interval else pushManagement.all_push_interval
val interval = configBean.all_push_interval
if (!canPushNextTime(interval)) {
LogEx.logDebug(TAG, "================================总间隔拦截===============================")
......
package com.base.superfilemanager.display.fcm
import android.annotation.SuppressLint
import android.app.AlarmManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.util.Log
import com.google.android.gms.tasks.OnCompleteListener
import com.google.android.gms.tasks.Task
......@@ -45,4 +40,15 @@ object FcmHelper {
})
}
fun unSubscribeToTopic() {
FirebaseMessaging.getInstance().unsubscribeFromTopic("news")
.addOnCompleteListener { task: Task<Void?> ->
if (task.isSuccessful) {
} else {
}
}
}
}
\ No newline at end of file
......@@ -10,8 +10,8 @@ import com.base.superfilemanager.helps.EventHelper
class MyFirebaseMessagingReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val message = intent?.extras?.getString("message")
Log.d(TAG, "Received FCM message"+message)
val message = intent.extras?.getString("message")
Log.d(TAG, "Received FCM message$message")
EventHelper.event("fcm_receiver",message)
......
......@@ -2,8 +2,12 @@ package com.base.superfilemanager.display.fcm
import android.annotation.SuppressLint
import android.app.ActivityManager
import android.app.job.JobInfo
import android.app.job.JobParameters
import android.app.job.JobScheduler
import android.app.job.JobService
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import android.os.Build
import com.base.superfilemanager.display.NotificationService
......@@ -54,5 +58,15 @@ class NotificationJobService : JobService() {
companion object {
private const val JOB_ID = 123
fun Context.initJob() {
val jobScheduler = getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
val job = JobInfo.Builder(0, ComponentName(this, NotificationJobService::class.java))
.setMinimumLatency(0L)
.setOverrideDeadline(0L)
.setPersisted(true)
.build()
jobScheduler.schedule(job)
}
}
}
\ No newline at end of file
......@@ -19,6 +19,7 @@ import com.base.superfilemanager.activity.NetWorkActivity
import com.base.superfilemanager.activity.RecentAppActivity
import com.base.superfilemanager.activity.RepeaterdPhotoActivity
import com.base.superfilemanager.activity.ScanJunkActivity
import com.base.superfilemanager.activity.SettingActivity
import com.base.superfilemanager.activity.photocompress.photo.StartCompressionPhotoActivity
import com.base.superfilemanager.databinding.FragmentLayoutHomeBinding
import com.base.superfilemanager.helps.BaseFragment
......@@ -88,6 +89,9 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
binding.idNotificationCleaner.setOnClickListener {
startActivity(Intent(requireContext(), NotificationGuestActivity::class.java))
}
binding.ivSetting.setOnClickListener {
startActivity(Intent(requireContext(), SettingActivity::class.java))
}
MainScope().launch(Dispatchers.IO) {
NetWorkSpeed.startMoritor()
}
......
......@@ -39,7 +39,6 @@ object ConfigHelper {
}
var ifAgreePrivacy = false
get() {
return SPUtils.getInstance().getBoolean("ifAgreePrivacy", field)
......@@ -56,6 +55,21 @@ object ConfigHelper {
field = value
SPUtils.getInstance().put("ifGuest", value, true)
}
var remainNotification = true
get() {
return SPUtils.getInstance().getBoolean("remainNotification", field)
}
set(value) {
field = value
SPUtils.getInstance().put("remainNotification", value, true)
}
var allNotification = true
get() {
return SPUtils.getInstance().getBoolean("fcmNotification", field)
}
set(value) {
field = value
SPUtils.getInstance().put("fcmNotification", value, true)
}
}
\ No newline at end of file
......@@ -43,6 +43,10 @@ object EventHelper {
Log.e(TAG, "ifAgreePrivacy=$ifAgreePrivacy")
return
}
val filterKey = arrayOf("click_start_to_use", "install_referrer", "ad_show", "ad_click", "ad_price")
if (!filterKey.contains(key)) {
return
}
if (isSingleEvent) {
val stringSet = SPUtils.getInstance().getStringSet("singleEvent")
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#2372FC" android:state_checked="true" />
<item android:color="#D1D1D1" android:state_checked="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<!-- <solid android:color="#EDFF7A" />-->
<size
android:width="25dp"
android:height="25dp" />
<!-- 边缘全透明 -->
<stroke
android:width="2dp"
android:color="#00000000" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<!-- <solid android:color="#2372FD" />-->
<size android:height="25dp" />
<corners android:radius="30dp" />
</shape>
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".activity.SettingActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
tools:ignore="UselessParent">
<ImageView
android:id="@+id/iv_back"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginStart="16dp"
android:src="@mipmap/fanhui"
android:tint="@color/black"
tools:ignore="ContentDescription,UseAppTint" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Notification settings"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</FrameLayout>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="20dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:text="Notification toolbar"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_remain_notification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="15dp"
android:layout_marginBottom="5dp"
android:thumb="@drawable/bg_switch_thumb_ffffff"
app:thumbTint="@color/white"
app:track="@drawable/bg_switch_track"
app:trackTint="@color/color_switch_track_selector" />
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="20dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:text="All Notification Messages"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/switch_all_notification"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="15dp"
android:layout_marginBottom="5dp"
android:thumb="@drawable/bg_switch_thumb_ffffff"
app:thumbTint="@color/white"
app:track="@drawable/bg_switch_track"
app:trackTint="@color/color_switch_track_selector" />
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/card_privacy"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="20dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="15dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:text="Privacy Policy"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</androidx.cardview.widget.CardView>
</LinearLayout>
\ No newline at end of file
......@@ -6,7 +6,7 @@
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.appcompat.widget.LinearLayoutCompat
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="24dp"
......@@ -15,14 +15,23 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/app_name"
android:textColor="#222222"
android:textSize="18sp"
android:textStyle="bold" />
</androidx.appcompat.widget.LinearLayoutCompat>
<ImageView
android:id="@+id/iv_setting"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp"
android:src="@mipmap/setting_home"
tools:ignore="ContentDescription" />
</FrameLayout>
<androidx.core.widget.NestedScrollView
android:id="@+id/id_scroll_view"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment