Commit f181e135 authored by wanglei's avatar wanglei

...

parent 451c5f7c
......@@ -5,8 +5,7 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<!-- fcm 添加以下权限 -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <!-- fcm 添加以下权限 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
......@@ -14,7 +13,6 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
......@@ -34,7 +32,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.SmartCleaner"
tools:targetApi="34">
<activity
android:name=".activity.FunctionGuideActivity"
android:exported="false" />
<activity
android:name=".activity.splash.NewSplashActivity"
android:exported="true"
......@@ -54,7 +54,6 @@
android:launchMode="singleTask"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".activity.AppManagerActivity"
android:exported="false"
......@@ -134,7 +133,6 @@
android:name=".activity.BatteryInfoActivity"
android:screenOrientation="portrait" />
<meta-data
android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION"
android:value="true" />
......@@ -166,7 +164,6 @@
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<service
android:name=".fcm.FcmService"
android:exported="true">
......@@ -192,14 +189,10 @@
<intent-filter>
<action android:name="CANCEL_NOTIFICATION" />
</intent-filter>
</receiver>
<!--常驻通知栏-->
</receiver> <!-- 常驻通知栏 -->
<service
android:name=".service.PermanentNotificationService"
android:permission="android.permission.FOREGROUND_SERVICE" />
<!--闪光灯-->
android:permission="android.permission.FOREGROUND_SERVICE" /> <!-- 闪光灯 -->
<service
android:name=".service.FlashlightService"
android:exported="true"
......
......@@ -14,6 +14,7 @@ import com.test.easy.easycleanerjunk.databinding.ActivityAppManagerBinding
import com.test.easy.easycleanerjunk.helps.BaseActivity
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.BarUtils
import com.test.easy.easycleanerjunk.view.AFunOb
import kotlin.random.Random
class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
......@@ -59,9 +60,9 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback {
AdmobUtils.showInterstitialAd(this@AppManagerActivity, isShowInterVal = false) {
finishToMain()
}
// AdmobUtils.showInterstitialAd(this@AppManagerActivity, isShowInterVal = false) {
// finishToMain()
// }
}
}
......
......@@ -77,17 +77,16 @@ class BatteryInfoActivity : BaseActivity<ActivityLayoutBatteryInfoBinding>() {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback {
AdmobUtils.showInterstitialAd(this@BatteryInfoActivity, isShowInterVal = false) {
finishToMain()
}
}
binding.idTvGotIt.setOnClickListener {
AdmobUtils.showInterstitialAd(this) {
startActivity(Intent(this, ResultActivity::class.java).apply {
// AdmobUtils.showInterstitialAd(this@BatteryInfoActivity, isShowInterVal = false) {
// finishToMain()
// }
startActivity(Intent(this@BatteryInfoActivity, ResultActivity::class.java).apply {
putExtra("from", AFunOb.BATTERY_INFO)
})
finish()
}
binding.idTvGotIt.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
}
......
......@@ -80,11 +80,18 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
}
onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
finishToMain()
startActivity(Intent(this@CleanJunkActivity, ResultActivity::class.java).apply {
putExtra("from", AFunOb.JUNK_CLEANER)
putExtra("clean_size", 0)
})
finish()
}
})
binding.idClBtn.setOnClickListener {
if (binding.idClBtn.text == "Go it") {
onBackPressedDispatcher.onBackPressed()
} else {
startActivity(
Intent(this, CleaningActivity::class.java)
.putExtra("list", selectList.toTypedArray())
......@@ -93,6 +100,8 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
finish()
}
}
}
private fun setAdapter() {
binding.idExRl.adapter = mAdapter
binding.idExRl.layoutManager = LinearLayoutManager(this)
......@@ -172,18 +181,21 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
binding.idClBtn.isVisible = scanCount >= 3
binding.idClBtn.isEnabled = sizes.sum() > 0
if (scanCount >= 3 && sizes.sum().toInt() == 0) {
AdmobUtils.showInterstitialAd(this) {
startActivity(
Intent(this, ResultActivity::class.java).putExtra(
"from",
AFunOb.JUNK_CLEANER
).putExtra("clean_size", 0L)
)
finish()
}
}
// AdmobUtils.showInterstitialAd(this) {
// startActivity(
// Intent(this, ResultActivity::class.java).putExtra(
// "from",
// AFunOb.JUNK_CLEANER
// ).putExtra("clean_size", 0L)
// )
// finish()
// }
binding.idClBtn.text = "Go it"
} else {
binding.idClBtn.text = "Clean up ${selectSize.toFormatSize(1)}"
}
binding.idClBtn.isEnabled = true
}
@SuppressLint("NotifyDataSetChanged")
private fun addData(index: Int) {
......
package com.test.easy.easycleanerjunk.activity
import android.graphics.Color
import com.test.easy.easycleanerjunk.databinding.ActivityFunctionGuideBinding
import com.test.easy.easycleanerjunk.helps.BaseActivity
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.BarUtils
import com.test.easy.easycleanerjunk.view.AFunOb.APP_MANAGER
import com.test.easy.easycleanerjunk.view.AFunOb.BATTERY_INFO
import com.test.easy.easycleanerjunk.view.AFunOb.JUNK_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.LARGE_FILE_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.PHOTO_COMPRESS
import com.test.easy.easycleanerjunk.view.AFunOb.SCREENSHOT_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.SIMILAR_PHOTOS
import com.test.easy.easycleanerjunk.view.AFunOb.WHATSAPP_CLEANER
import kotlin.random.Random
class FunctionGuideActivity : BaseActivity<ActivityFunctionGuideBinding>() {
private val functionList =
arrayListOf(
JUNK_CLEANER,
LARGE_FILE_CLEANER,
SIMILAR_PHOTOS,
PHOTO_COMPRESS,
SCREENSHOT_CLEANER,
BATTERY_INFO,
WHATSAPP_CLEANER,
APP_MANAGER
)
override val binding: ActivityFunctionGuideBinding by lazy {
ActivityFunctionGuideBinding.inflate(layoutInflater)
}
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
val from = intent.extras?.getString("from") ?: ""
functionList.remove(from)
val function = functionList[Random.nextInt(functionList.size)]
when (function) {
JUNK_CLEANER -> {}
LARGE_FILE_CLEANER -> {}
SIMILAR_PHOTOS -> {}
PHOTO_COMPRESS -> {}
SCREENSHOT_CLEANER -> {}
BATTERY_INFO -> {}
WHATSAPP_CLEANER -> {}
APP_MANAGER -> {}
}
AdmobUtils.showNativeAd(this, binding.flAd)
}
override fun initListener() {
}
}
\ No newline at end of file
package com.test.easy.easycleanerjunk.activity
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.text.format.Formatter
......@@ -44,6 +45,7 @@ import com.test.easy.easycleanerjunk.helps.PermissionHelp.checkStorePermission
import com.test.easy.easycleanerjunk.helps.PermissionHelp.requestStorePermission
import com.test.easy.easycleanerjunk.helps.TimeUtils
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.view.AFunOb
import com.test.easy.easycleanerjunk.view.DialogViews.showGerPermission
import com.test.easy.easycleanerjunk.view.FileDeleteDialog.showFileDeleteDialog
import com.test.easy.easycleanerjunk.view.FileDetailDialog.showFileDetailDialog
......@@ -184,14 +186,13 @@ class LargeFileCleanActivity : BaseActivity<ActivityLayoutLargeFileBinding>() {
showPopupWindow(binding.llFilter, 2, listTimes)
}
binding.flBack.setOnClickListener {
AdmobUtils.showInterstitialAd(this) {
finishToMain()
}
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback {
AdmobUtils.showInterstitialAd(this@LargeFileCleanActivity, isShowInterVal = false) {
finishToMain()
}
startActivity(Intent(this@LargeFileCleanActivity, FunctionGuideActivity::class.java).apply {
putExtra("from", AFunOb.LARGE_FILE_CLEANER)
})
finish()
}
}
......
package com.test.easy.easycleanerjunk.activity
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.Toast
import androidx.activity.OnBackPressedCallback
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
......@@ -24,8 +23,8 @@ import com.test.easy.easycleanerjunk.helps.MediaStoreUtils
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.BarUtils
import com.test.easy.easycleanerjunk.utils.NewFileUtils
import kotlinx.coroutines.launch
import kotlin.random.Random
import com.test.easy.easycleanerjunk.view.AFunOb
import com.test.easy.easycleanerjunk.view.FileDeleteDialog.showFileDeleteDialog
class RepeatPhotoActivity : BaseActivity<ActivityLayoutRepeatPhotoBinding>() {
private var isSelectAll = false
......@@ -43,17 +42,20 @@ class RepeatPhotoActivity : BaseActivity<ActivityLayoutRepeatPhotoBinding>() {
checkPermission()
}
@SuppressLint("NotifyDataSetChanged")
@SuppressLint("NotifyDataSetChanged", "SetTextI18n")
override fun initListener() {
binding.idBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
AdmobUtils.showInterstitialAd(this@RepeatPhotoActivity, isShowInterVal = false) {
finishToMain()
}
// AdmobUtils.showInterstitialAd(this@RepeatPhotoActivity, isShowInterVal = false) {
// finishToMain()
// }
startActivity(Intent(this@RepeatPhotoActivity, ResultActivity::class.java).apply {
putExtra("from", AFunOb.SIMILAR_PHOTOS)
})
finish()
}
})
......@@ -72,6 +74,7 @@ class RepeatPhotoActivity : BaseActivity<ActivityLayoutRepeatPhotoBinding>() {
setTvStatus()
}
binding.idTvDelete.setOnClickListener {
showFileDeleteDialog {
AdmobUtils.showInterstitialAd(this) {
val list = fileList.toList().filter { it.isSelect }
if (list.isNotEmpty() && list.all { NewFileUtils.delete(it.path) }) {
......@@ -79,20 +82,17 @@ class RepeatPhotoActivity : BaseActivity<ActivityLayoutRepeatPhotoBinding>() {
FileHelps.similarImageList.removeAll(list)
mAdapter.notifyDataSetChanged()
setTvStatus()
Toast.makeText(this, "Delete Successful", Toast.LENGTH_SHORT)
val array = list.map { it.path }.toTypedArray()
MediaStoreUtils.updateMediaStore(this, array)
} else {
Toast.makeText(this, "Delete failed.", Toast.LENGTH_SHORT)
}
}
}
}
}
private var fileList = mutableListOf<ImageDataBean>()
var isplay = 0
private var isplay = 0
override fun onPermissionsResult(isGranted: Boolean) {
if (isGranted) {
isplay += 1
......@@ -101,7 +101,7 @@ class RepeatPhotoActivity : BaseActivity<ActivityLayoutRepeatPhotoBinding>() {
binding.idLlScanning.setOnClickListener { }
FileHelps.getImageFiles {
AdmobUtils.showInterstitialAd(this){
AdmobUtils.showInterstitialAd(this) {
binding.lottie.cancelAnimation()
binding.idLlScanning.isVisible = false
binding.idLlResult.isVisible = true
......@@ -148,6 +148,7 @@ class RepeatPhotoActivity : BaseActivity<ActivityLayoutRepeatPhotoBinding>() {
override fun getItemCount() = fileList.size
@SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = fileList[position]
Glide.with(BaseApplication.context).load(item.path).into(holder.ivImage)
......
......@@ -12,10 +12,12 @@ import com.test.easy.easycleanerjunk.helps.BaseActivity
import com.test.easy.easycleanerjunk.helps.KotlinExt.toFormatSize
import com.test.easy.easycleanerjunk.utils.BarUtils
import com.test.easy.easycleanerjunk.utils.SPUtils
import com.test.easy.easycleanerjunk.view.AFunOb.APP_MANAGER
import com.test.easy.easycleanerjunk.view.AFunOb.BATTERY_INFO
import com.test.easy.easycleanerjunk.view.AFunOb.JUNK_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.LARGE_FILE_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.PHOTO_COMPRESS
import com.test.easy.easycleanerjunk.view.AFunOb.SCREENSHOT_CLEANER
import com.test.easy.easycleanerjunk.view.AFunOb.SIMILAR_PHOTOS
import com.test.easy.easycleanerjunk.view.AFunOb.WHATSAPP_CLEANER
......@@ -51,6 +53,18 @@ class ResultActivity : BaseActivity<ActivityLayoutResultBinding>() {
startActivity(Intent(this, StartCompressionPhotoActivity::class.java))
}
SCREENSHOT_CLEANER -> {
startActivity(Intent(this, ScreenShotActivity::class.java))
}
WHATSAPP_CLEANER -> {
startActivity(Intent(this, WhatsAppCleanerActivity::class.java))
}
APP_MANAGER -> {
startActivity(Intent(this, AppManagerActivity::class.java))
}
}
finish()
}
......
package com.test.easy.easycleanerjunk.activity
import android.annotation.SuppressLint
import android.content.Intent
import android.os.Environment
import android.os.Handler
import android.view.View
......@@ -16,6 +17,7 @@ import com.test.easy.easycleanerjunk.helps.KotlinExt.toFormatSize
import com.test.easy.easycleanerjunk.helps.PermissionHelp.checkStorePermission
import com.test.easy.easycleanerjunk.helps.PermissionHelp.requestStorePermission
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.view.AFunOb
import com.test.easy.easycleanerjunk.view.DialogViews.showGerPermission
import com.test.easy.easycleanerjunk.view.FileDeleteDialog.showFileDeleteDialog
import kotlinx.coroutines.Dispatchers
......@@ -99,10 +101,16 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback {
AdmobUtils.showInterstitialAd(this@ScreenShotActivity, isShowInterVal = false) {
finishToMain()
}
// AdmobUtils.showInterstitialAd(this@ScreenShotActivity, isShowInterVal = false) {
// finishToMain()
// }
startActivity(Intent(this@ScreenShotActivity, ResultActivity::class.java).apply {
putExtra("from", AFunOb.SIMILAR_PHOTOS)
})
finish()
}
binding.llSelectAll.setOnClickListener {
binding.llSelectAll.isSelected = !binding.llSelectAll.isSelected
screenShotAdapter.toggleSelect(binding.llSelectAll.isSelected)
......@@ -110,9 +118,9 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
setCleanUpUi(size)
}
binding.tvClean.setOnClickListener {
AdmobUtils.showInterstitialAd(this) {
val files = screenShotAdapter.getSelectData()
showFileDeleteDialog {
AdmobUtils.showInterstitialAd(this) {
lifecycleScope.launch(Dispatchers.IO) {
async {
files.forEach { screenFile ->
......
......@@ -20,6 +20,7 @@ import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.BarUtils
import com.test.easy.easycleanerjunk.utils.FileHexEx.isImage
import com.test.easy.easycleanerjunk.utils.FileHexEx.isVideo
import com.test.easy.easycleanerjunk.view.AFunOb
import com.test.easy.easycleanerjunk.view.DialogViews.showGerPermission
import java.io.File
import kotlin.random.Random
......@@ -73,9 +74,16 @@ class WhatsAppCleanerActivity : BaseActivity<ActivityWhatsAppCleanerBinding>() {
onBackPressedDispatcher.onBackPressed()
}
onBackPressedDispatcher.addCallback {
AdmobUtils.showInterstitialAd(this@WhatsAppCleanerActivity, isShowInterVal = false) {
finishToMain()
// AdmobUtils.showInterstitialAd(this@WhatsAppCleanerActivity, isShowInterVal = false) {
// finishToMain()
// }
startActivity(Intent(this@WhatsAppCleanerActivity, ResultActivity::class.java).apply {
putExtra("from", AFunOb.WHATSAPP_CLEANER)
})
finish()
}
binding.tvTvGoIt.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
}
......
......@@ -22,7 +22,6 @@ import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_PHOTO_COMPRESS
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_SCREENSHOT_CLEAN
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_SIMILAR_IMAGE
import com.test.easy.easycleanerjunk.bean.ConfigBean.Companion.ID_WHATSAPP
import com.test.easy.easycleanerjunk.bean.WhatsAppCleanerBean
import com.test.easy.easycleanerjunk.helps.ConfigHelper
object SplashJumpUtils {
......
......@@ -15,9 +15,7 @@ import com.test.easy.easycleanerjunk.activity.ScreenShotActivity
import com.test.easy.easycleanerjunk.activity.SettingActivity
import com.test.easy.easycleanerjunk.activity.WhatsAppCleanerActivity
import com.test.easy.easycleanerjunk.activity.photocompress.photo.StartCompressionPhotoActivity
import com.test.easy.easycleanerjunk.bean.ConfigBean
import com.test.easy.easycleanerjunk.databinding.FragmentLayoutHomeBinding
import com.test.easy.easycleanerjunk.fcm.NotificationUtil.sendNotification
import com.test.easy.easycleanerjunk.helps.BaseFragment
import com.test.easy.easycleanerjunk.helps.KotlinExt.setOnClickListener
import com.test.easy.easycleanerjunk.utils.BarUtils
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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:background="#577DFD"
android:orientation="vertical"
tools:context=".activity.FunctionGuideActivity">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_function"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_des"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="20dp"
android:layout_marginTop="24dp"
android:textColor="@color/white"
android:textSize="14sp"
android:textStyle="bold"
tools:text="Clean up remaining junk files to free up space" />
<TextView
android:id="@+id/tv_function"
android:layout_width="250dp"
android:layout_height="45dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="126dp"
android:background="@drawable/bg_corners_ffffff_25"
android:gravity="center"
android:text="Clean Up"
android:textColor="#577DFD"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
<FrameLayout
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom" />
</FrameLayout>
\ No newline at end of file
......@@ -231,7 +231,9 @@
android:text="Got it"
android:textColor="@color/white"
android:textSize="18sp"
android:textStyle="bold" />
android:textStyle="bold"
tools:ignore="HardcodedText" />
</androidx.appcompat.widget.LinearLayoutCompat>
<FrameLayout
......
......@@ -11,7 +11,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="UselessParent">
......@@ -101,8 +101,8 @@
tools:ignore="HardcodedText" />
</LinearLayout>
</FrameLayout>
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
......@@ -115,10 +115,27 @@
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_whatsapp" />
<FrameLayout
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
android:layout_gravity="top" />
<com.noober.background.view.BLTextView
android:id="@+id/tv_tv_go_it"
android:layout_width="266dp"
android:layout_height="50dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="16dp"
android:gravity="center"
android:text="Go it"
android:textColor="@color/white"
android:textSize="19sp"
app:bl_corners_radius="10dp"
app:bl_solid_color="@color/theme_color"
tools:ignore="HardcodedText" />
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
......
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