Commit 5e0851cd authored by wanglei's avatar wanglei

...

parent 0aa8d604
...@@ -17,6 +17,8 @@ import com.base.datarecovery.utils.ActivityManagerUtils ...@@ -17,6 +17,8 @@ import com.base.datarecovery.utils.ActivityManagerUtils
import com.base.datarecovery.utils.AppPreferences import com.base.datarecovery.utils.AppPreferences
import com.base.datarecovery.utils.InstallHelps import com.base.datarecovery.utils.InstallHelps
import com.base.datarecovery.utils.LogEx import com.base.datarecovery.utils.LogEx
import com.facebook.FacebookSdk
import com.facebook.LoggingBehavior
import com.google.android.gms.ads.identifier.AdvertisingIdClient import com.google.android.gms.ads.identifier.AdvertisingIdClient
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
...@@ -49,6 +51,9 @@ class MyApplication : BaseApplication() { ...@@ -49,6 +51,9 @@ class MyApplication : BaseApplication() {
fun initApp(isFirst: Boolean = false) { fun initApp(isFirst: Boolean = false) {
if (!isFirst) { if (!isFirst) {
FacebookSdk.sdkInitialize(applicationContext)
// FacebookSdk.setIsDebugEnabled(true)
// FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS)
val topic = ConfigHelper.packageName + "_push" val topic = ConfigHelper.packageName + "_push"
FCMManager.initFirebase(this) FCMManager.initFirebase(this)
FCMManager.subscribeToTopic(topic) FCMManager.subscribeToTopic(topic)
......
package com.base.datarecovery.activity package com.base.datarecovery.activity
import android.graphics.Color import android.graphics.Color
import android.graphics.Typeface
import android.os.Bundle import android.os.Bundle
import android.os.Environment import android.os.Environment
import android.util.Log import android.util.Log
...@@ -10,21 +11,24 @@ import androidx.appcompat.app.AppCompatActivity ...@@ -10,21 +11,24 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.datarecovery.ads.admob.AdmobBannerUtils import com.base.datarecovery.ads.admob.AdmobBannerUtils
import com.base.datarecovery.databinding.ActivityMainBinding import com.base.datarecovery.databinding.ActivityMainBinding
import com.base.datarecovery.fragment.HomeFragment
import com.base.datarecovery.fragment.RecoveryFragment
import com.base.datarecovery.help.BaseActivity import com.base.datarecovery.help.BaseActivity
import com.base.datarecovery.help.FileHelp.getDirFiles import com.base.datarecovery.help.FileHelp.getDirFiles
import com.base.datarecovery.help.PermissionHelp.checkStorePermission import com.base.datarecovery.help.PermissionHelp.checkStorePermission
import com.base.datarecovery.utils.AppPreferences
import com.base.datarecovery.utils.BarUtils import com.base.datarecovery.utils.BarUtils
import com.base.datarecovery.utils.LogEx
import com.base.datarecovery.view.DialogViews.showExitDialog import com.base.datarecovery.view.DialogViews.showExitDialog
import com.base.datarecovery.view.DialogViews.showExitFunctionDialog
import com.base.datarecovery.view.PermissionDialog.showPermissionBottomSheet import com.base.datarecovery.view.PermissionDialog.showPermissionBottomSheet
import com.base.datarecovery.view.RateStarPop
import com.base.datarecovery.view.RateStarPop.showRateStarPopDialog import com.base.datarecovery.view.RateStarPop.showRateStarPopDialog
import com.facebook.appevents.AppEventsLogger
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.async import kotlinx.coroutines.async
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
...@@ -34,6 +38,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -34,6 +38,16 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
override val binding: ActivityMainBinding by lazy { override val binding: ActivityMainBinding by lazy {
ActivityMainBinding.inflate(layoutInflater) ActivityMainBinding.inflate(layoutInflater)
} }
private val homeFragment by lazy {
HomeFragment()
}
private val recoveryFragment by lazy {
RecoveryFragment()
}
private val fragments by lazy {
mutableListOf(homeFragment, recoveryFragment)
}
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, true) BarUtils.setStatusBarLightMode(this, true)
...@@ -42,15 +56,56 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -42,15 +56,56 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
if (!checkStorePermission()) { if (!checkStorePermission()) {
if (dialog == null) { if (dialog == null) {
dialog = showPermissionBottomSheet(launcher) { dialog = showPermissionBottomSheet(launcher) {
AdmobBannerUtils.showCollapsibleBannerAd(this, binding.flAd) AdmobBannerUtils.showCollapsibleBannerAd(this, binding.flBanner)
} }
} }
} else { } else {
AdmobBannerUtils.showCollapsibleBannerAd(this, binding.flAd) AdmobBannerUtils.showCollapsibleBannerAd(this, binding.flBanner)
}
binding.viewpager2.run {
adapter = object : FragmentStateAdapter(this@MainActivity) {
override fun getItemCount(): Int {
return fragments.size
}
override fun createFragment(position: Int): Fragment {
return fragments[position]
}
}
}
binding.viewpager2.registerOnPageChangeCallback(object :
ViewPager2.OnPageChangeCallback() {
override fun onPageSelected(position: Int) {
setPageIndicate(position)
}
})
val fbhome = AppPreferences.getInstance().getInt("fb_home", 0)
if (fbhome == 0) {
val logger = AppEventsLogger.newLogger(this)
logger.logEvent("home")
AppPreferences.getInstance().put("fb_home", 1)
} }
}
private fun setPageIndicate(p: Int) {
binding.ll1.isSelected = false
binding.ll2.isSelected = false
binding.tv1.typeface = Typeface.DEFAULT
binding.tv2.typeface = Typeface.DEFAULT
when (p) {
0 -> {
binding.ll1.isSelected = true
binding.tv1.typeface = Typeface.DEFAULT_BOLD
}
1 -> {
binding.ll2.isSelected = true
binding.tv2.typeface = Typeface.DEFAULT_BOLD
}
}
} }
override fun initListener() { override fun initListener() {
...@@ -58,6 +113,15 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -58,6 +113,15 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
onBackPressedDispatcher.addCallback { onBackPressedDispatcher.addCallback {
showExitDialog() showExitDialog()
} }
binding.ll1.setOnClickListener {
// BarUtils.setStatusBarColor(this, Color.parseColor("#F4F5F9"))
binding.viewpager2.currentItem = 0
}
binding.ll2.setOnClickListener {
// BarUtils.setStatusBarColor(this, Color.parseColor("#F4F5F9"))
binding.viewpager2.currentItem = 1
}
} }
override fun onResume() { override fun onResume() {
......
...@@ -5,6 +5,7 @@ import android.os.Bundle ...@@ -5,6 +5,7 @@ import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.ViewGroup import android.view.ViewGroup
import android.view.ViewTreeObserver import android.view.ViewTreeObserver
import com.base.datarecovery.BuildConfig
import com.base.datarecovery.help.ConfigHelper import com.base.datarecovery.help.ConfigHelper
import com.google.ads.mediation.admob.AdMobAdapter import com.google.ads.mediation.admob.AdMobAdapter
import com.google.android.gms.ads.AdListener import com.google.android.gms.ads.AdListener
...@@ -29,7 +30,7 @@ object AdmobBannerUtils { ...@@ -29,7 +30,7 @@ object AdmobBannerUtils {
val screenPixelDensity = context.resources.displayMetrics.density val screenPixelDensity = context.resources.displayMetrics.density
val adWidth = (parent.width / screenPixelDensity).toInt() val adWidth = (parent.width / screenPixelDensity).toInt()
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, adWidth) val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, adWidth)
adView?.adUnitId = ConfigHelper.bannerAdmobId adView?.adUnitId = if (BuildConfig.DEBUG) ConfigHelper.bannerAdmobIdTest else ConfigHelper.bannerAdmobId
adView?.setAdSize(adSize) adView?.setAdSize(adSize)
loadCollapsibleBanner() loadCollapsibleBanner()
parent.viewTreeObserver.removeOnGlobalLayoutListener(listener) parent.viewTreeObserver.removeOnGlobalLayoutListener(listener)
......
...@@ -41,30 +41,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -41,30 +41,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
startActivity(Intent(requireContext(), ScanJunkActivity::class.java)) startActivity(Intent(requireContext(), ScanJunkActivity::class.java))
// sendNotification(requireContext(), ConstObject.ID_JUNK_CLEAN_PUSH) // sendNotification(requireContext(), ConstObject.ID_JUNK_CLEAN_PUSH)
} }
binding.flRyPhoto.setOnClickListener {
startActivity(Intent(requireContext(), FileScanResultActivity::class.java).apply {
putExtra("ScanType", SCAN_PHOTOS)
})
}
binding.flRyVideo.setOnClickListener {
startActivity(Intent(requireContext(), FileScanResultActivity::class.java).apply {
putExtra("ScanType", SCAN_VIDEOS)
})
}
binding.cardRyDocument.setOnClickListener {
startActivity(Intent(requireContext(), FileScanResultActivity::class.java).apply {
putExtra("ScanType", SCAN_DOCUMENTS)
})
}
binding.cardPrivacySpace.setOnClickListener {
if (privacyPinPassword.isNotEmpty()) {
startActivity(Intent(requireContext(), PrivacyPinOneActivity::class.java))
} else {
startActivity(Intent(requireContext(), PrivacySpaceActivity::class.java).apply {
})
}
}
binding.cardPhotosManager.setOnClickListener { binding.cardPhotosManager.setOnClickListener {
startActivity(Intent(requireContext(), PhotoManagerAnimationActivity::class.java)) startActivity(Intent(requireContext(), PhotoManagerAnimationActivity::class.java))
} }
......
package com.base.datarecovery.fragment
import android.content.Intent
import com.base.datarecovery.activity.privacyspace.PrivacyPinOneActivity
import com.base.datarecovery.activity.privacyspace.PrivacySpaceActivity
import com.base.datarecovery.activity.recovery.FileScanResultActivity
import com.base.datarecovery.bean.ConstObject
import com.base.datarecovery.databinding.FragmentRecoveryBinding
import com.base.datarecovery.help.BaseFragment
class RecoveryFragment : BaseFragment<FragmentRecoveryBinding>() {
override val binding: FragmentRecoveryBinding by lazy {
FragmentRecoveryBinding.inflate(layoutInflater)
}
override fun setView() {
}
override fun setListener() {
super.setListener()
binding.flRyPhoto.setOnClickListener {
startActivity(Intent(requireContext(), FileScanResultActivity::class.java).apply {
putExtra("ScanType", ConstObject.SCAN_PHOTOS)
})
}
binding.flRyVideo.setOnClickListener {
startActivity(Intent(requireContext(), FileScanResultActivity::class.java).apply {
putExtra("ScanType", ConstObject.SCAN_VIDEOS)
})
}
binding.cardRyDocument.setOnClickListener {
startActivity(Intent(requireContext(), FileScanResultActivity::class.java).apply {
putExtra("ScanType", ConstObject.SCAN_DOCUMENTS)
})
}
binding.cardPrivacySpace.setOnClickListener {
if (ConstObject.privacyPinPassword.isNotEmpty()) {
startActivity(Intent(requireContext(), PrivacyPinOneActivity::class.java))
} else {
startActivity(Intent(requireContext(), PrivacySpaceActivity::class.java).apply {
})
}
}
}
}
\ No newline at end of file
...@@ -11,7 +11,8 @@ object ConfigHelper { ...@@ -11,7 +11,8 @@ object ConfigHelper {
const val eventUrl = "https://rp.rocioxyn.xyz" const val eventUrl = "https://rp.rocioxyn.xyz"
const val apiUrl = "https://api.rocioxyn.xyz" const val apiUrl = "https://api.rocioxyn.xyz"
const val admobTrueMaxFalse = false //admob test id
const val bannerAdmobIdTest = "ca-app-pub-3940256099942544/9214589741"
// admob广告id // admob广告id
const val interAdmobId = "ca-app-pub-3640696756167444/7394845374" const val interAdmobId = "ca-app-pub-3640696756167444/7394845374"
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#577DFD" android:state_selected="true" />
<item android:color="#C9C9C9" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/tab_clean_s" android:state_selected="true" />
<item android:drawable="@mipmap/tab_clean_n" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/tab_recovery_n" android:state_selected="false" />
<item android:drawable="@mipmap/tab_recovery_s" android:state_selected="true" />
</selector>
\ No newline at end of file
...@@ -7,18 +7,94 @@ ...@@ -7,18 +7,94 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".activity.MainActivity"> tools:context=".activity.MainActivity">
<fragment <androidx.viewpager2.widget.ViewPager2
android:id="@+id/fragment" android:id="@+id/viewpager2"
android:name="com.base.datarecovery.fragment.HomeFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/fl_ad" app:layout_constraintBottom_toTopOf="@id/ll"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@id/fl_banner"
app:layout_constraintTop_toBottomOf="@id/viewpager2"
tools:ignore="DisableBaselineAlignment">
<LinearLayout
android:id="@+id/ll_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
android:paddingTop="10dp"
android:paddingBottom="15dp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_clean_tab"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_1"
android:layout_width="100dp"
android:layout_height="20dp"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="Clean"
android:textColor="@color/color_tab_select"
android:textSize="11sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical"
android:paddingTop="10dp"
android:paddingBottom="15dp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_recovery_tab"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_2"
android:layout_width="100dp"
android:layout_height="20dp"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="Recovery"
android:textColor="@color/color_tab_select"
android:textSize="11sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout>
<FrameLayout <FrameLayout
android:id="@+id/fl_ad" android:id="@+id/fl_banner"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" /> app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="match_parent">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -65,170 +65,12 @@ ...@@ -65,170 +65,12 @@
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
</FrameLayout> </FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="16dp"
android:text="Core Services"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_marginTop="16dp"
android:orientation="horizontal"
tools:ignore="DisableBaselineAlignment">
<FrameLayout
android:id="@+id/fl_ry_photo"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:background="@mipmap/photo">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:text="Recovery\nPhotos"
android:textColor="@color/white"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</FrameLayout>
<FrameLayout
android:id="@+id/fl_ry_video"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:background="@mipmap/videos">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:text="Recovery\nVideos"
android:textColor="@color/white"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</FrameLayout>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="16dp"
android:text="Comprehensive functions"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_marginTop="16dp"
android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:id="@+id/card_ry_document"
android:layout_width="0dp"
android:layout_height="70dp"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
app:cardBackgroundColor="#F8F8F8"
app:cardCornerRadius="10dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:src="@mipmap/recovery"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="Recovery\nDocuments"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/card_whats_app"
android:layout_width="0dp"
android:layout_height="70dp"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
app:cardBackgroundColor="#F8F8F8"
app:cardCornerRadius="10dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:src="@mipmap/whatsapp"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="WhatsAPP\nCleaner"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -331,16 +173,16 @@ ...@@ -331,16 +173,16 @@
android:orientation="horizontal"> android:orientation="horizontal">
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
android:id="@+id/card_privacy_space" android:id="@+id/card_whats_app"
app:cardBackgroundColor="#F8F8F8"
app:cardCornerRadius="10dp"
app:cardElevation="0dp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="70dp" android:layout_height="70dp"
android:layout_marginHorizontal="8dp" android:layout_marginHorizontal="8dp"
android:layout_weight="1" android:layout_weight="1"
android:clickable="true" android:clickable="true"
android:focusable="true" android:focusable="true">
app:cardBackgroundColor="#F8F8F8"
app:cardCornerRadius="10dp"
app:cardElevation="0dp">
<LinearLayout <LinearLayout
...@@ -354,7 +196,7 @@ ...@@ -354,7 +196,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:src="@mipmap/space" android:src="@mipmap/whatsapp"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<TextView <TextView
...@@ -362,7 +204,7 @@ ...@@ -362,7 +204,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:text="Privacy\nSpace" android:text="WhatsAPP\nCleaner"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="15sp" android:textSize="15sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
......
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".fragment.RecoveryFragment">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="16dp"
android:text="Core Services"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_marginTop="16dp"
android:orientation="horizontal"
tools:ignore="DisableBaselineAlignment">
<FrameLayout
android:id="@+id/fl_ry_photo"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:background="@mipmap/photo">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:text="Recovery\nPhotos"
android:textColor="@color/white"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</FrameLayout>
<FrameLayout
android:id="@+id/fl_ry_video"
android:layout_width="0dp"
android:layout_height="80dp"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:background="@mipmap/videos">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:text="Recovery\nVideos"
android:textColor="@color/white"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</FrameLayout>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="16dp"
android:text="Comprehensive functions"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="8dp"
android:layout_marginTop="16dp"
android:orientation="horizontal">
<androidx.cardview.widget.CardView
android:id="@+id/card_ry_document"
app:cardBackgroundColor="#F8F8F8"
app:cardCornerRadius="10dp"
app:cardElevation="0dp"
android:layout_width="0dp"
android:layout_height="70dp"
android:layout_marginHorizontal="8dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:src="@mipmap/recovery"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="Recovery\nDocuments"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id="@+id/card_privacy_space"
android:layout_width="0dp"
android:layout_height="70dp"
android:layout_marginHorizontal="8dp"
android:layout_weight="1"
android:clickable="true"
android:focusable="true"
app:cardBackgroundColor="#F8F8F8"
app:cardCornerRadius="10dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:src="@mipmap/space"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:text="Privacy\nSpace"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
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