Commit 99da756e authored by wanglei's avatar wanglei

...ad

parent 145e98e1
...@@ -191,7 +191,9 @@ ...@@ -191,7 +191,9 @@
<receiver <receiver
android:name=".fcm.CloseNotificationReceiver" android:name=".fcm.CloseNotificationReceiver"
android:exported="false" /> <!-- 添加以下接收器 --> android:exported="false" />
<!-- 添加以下接收器 -->
<!-- 注册广播 --> <!-- 注册广播 -->
<receiver <receiver
android:name=".fcm.FcmReceiver" android:name=".fcm.FcmReceiver"
...@@ -205,6 +207,16 @@ ...@@ -205,6 +207,16 @@
</intent-filter> </intent-filter>
</receiver> </receiver>
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<meta-data <meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID" android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713" /> android:value="ca-app-pub-3940256099942544~3347511713" />
......
package com.base.filerecoveryrecyclebin.activity.recyclebin package com.base.filerecoveryrecyclebin.activity.recyclebin
import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.net.Uri
import android.os.Build import android.os.Build
import android.view.View
import android.widget.Toast
import androidx.activity.addCallback
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.core.content.FileProvider
import com.base.filerecoveryrecyclebin.activity.ResultActivity import com.base.filerecoveryrecyclebin.activity.ResultActivity
import com.base.filerecoveryrecyclebin.activity.recyclebin.RecycleBinFileEx.findRecycleBinFile import com.base.filerecoveryrecyclebin.activity.recyclebin.RecycleBinFileEx.findRecycleBinFile
import com.base.filerecoveryrecyclebin.activity.recyclebin.RecycleBinFileEx.findRecycleBinJsonFile import com.base.filerecoveryrecyclebin.activity.recyclebin.RecycleBinFileEx.findRecycleBinJsonFile
...@@ -11,49 +17,100 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.RECYCLE_BIN ...@@ -11,49 +17,100 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.RECYCLE_BIN
import com.base.filerecoveryrecyclebin.bean.RecycleBinBean import com.base.filerecoveryrecyclebin.bean.RecycleBinBean
import com.base.filerecoveryrecyclebin.databinding.ActivityRecycleBinDetailBinding import com.base.filerecoveryrecyclebin.databinding.ActivityRecycleBinDetailBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatTime
import com.base.filerecoveryrecyclebin.utils.BarUtils import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.LogEx import com.base.filerecoveryrecyclebin.utils.LogEx
import com.base.filerecoveryrecyclebin.view.DialogViews.showRecycleBinDetailDialog
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.google.gson.Gson import com.google.gson.Gson
import java.io.File import java.io.File
class RecycleBinDetailActivity : BaseActivity<ActivityRecycleBinDetailBinding>() { class RecycleBinDetailActivity : BaseActivity<ActivityRecycleBinDetailBinding>() {
private val TAG = "RecycleBinDetailActivity" private val TAG = "RecycleBinDetailActivity"
override val binding: ActivityRecycleBinDetailBinding by lazy { override val binding: ActivityRecycleBinDetailBinding by lazy {
ActivityRecycleBinDetailBinding.inflate(layoutInflater) ActivityRecycleBinDetailBinding.inflate(layoutInflater)
} }
private var recycleBinBean: RecycleBinBean? = null
@SuppressLint("SetTextI18n")
@RequiresApi(Build.VERSION_CODES.Q) @RequiresApi(Build.VERSION_CODES.Q)
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, true) BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
// binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
val json = intent.extras?.getString("Json") ?: "" val json = intent.extras?.getString("Json") ?: ""
LogEx.logDebug(TAG, "json=$json") LogEx.logDebug(TAG, "json=$json")
val bean = Gson().fromJson(json, RecycleBinBean::class.java) recycleBinBean = Gson().fromJson(json, RecycleBinBean::class.java)
if (bean.mimeType == "image/jpeg") { recycleBinBean?.let { bean ->
if (bean.mimeType.contains("image /")) {
binding.ivBofang.visibility = View.GONE
}
if (bean.mimeType.contains("video/")) {
binding.ivBofang.visibility = View.VISIBLE
}
val file = File(bean.path) val file = File(bean.path)
val binFile = findRecycleBinFile(file.name) val binFile = findRecycleBinFile(file.name)
val binJsonFile = findRecycleBinJsonFile(file.name) val binJsonFile = findRecycleBinJsonFile(file.name)
if (binFile != null && binJsonFile != null) { if (binFile != null && binJsonFile != null) {
Glide.with(this).load(binFile.absoluteFile).centerCrop().into(binding.iv) Glide.with(this).load(binFile.absoluteFile).centerCrop().into(binding.iv)
showRecycleBinDetailDialog(bean, binFile, binJsonFile) {
startActivity(Intent(this, ResultActivity::class.java).apply {
putExtra("from", RECYCLE_BIN)
})
finish()
}
}
}
if (bean.mimeType == "") {
binding.tvName.text = bean.path
binding.tvSize.text = bean.size.toFormatSize()
binding.tvTime.text = "Delete time:${bean.deleteTime.toFormatTime()}"
}
} }
} }
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
onBackPressedDispatcher.addCallback {
finish()
}
binding.flBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.tvRestore.setOnClickListener {
recycleBinBean?.let { bean ->
val file = File(bean.path)
val binFile = findRecycleBinFile(file.name)
val binJsonFile = findRecycleBinJsonFile(file.name)
runCatching {
binFile?.copyTo(File(bean.path), true)
binFile?.delete()
binJsonFile?.delete()
}
}
startActivity(Intent(this, ResultActivity::class.java).apply {
putExtra("from", RECYCLE_BIN)
})
finish()
}
binding.ivBofang.setOnClickListener {
recycleBinBean?.let { bean ->
val videoIntent = Intent(Intent.ACTION_VIEW)
val file = File(bean.path)
val binFile = findRecycleBinFile(file.name) ?: File("")
val contentUri = FileProvider.getUriForFile(this, this.applicationContext.packageName + ".fileProvider", binFile)
LogEx.logDebug(TAG, "contentUri=$contentUri")
videoIntent.setDataAndType(contentUri, bean.mimeType)
videoIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
// videoIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
if (videoIntent.resolveActivity(this.packageManager) != null) {
startActivity(Intent.createChooser(videoIntent, "choose play video"))
} else {
Toast.makeText(this, "no app to play video!", Toast.LENGTH_SHORT).show();
}
}
}
} }
} }
\ No newline at end of file
...@@ -39,7 +39,7 @@ object AdmobNativeUtils { ...@@ -39,7 +39,7 @@ object AdmobNativeUtils {
return return
} }
isLoading = true isLoading = true
if (!AdDisplayUtils.getInstance().shouldShowAd()) { if (!AdDisplayUtils.getInstance().shouldShowAd("NativeAd")) {
return return
} }
...@@ -81,7 +81,7 @@ object AdmobNativeUtils { ...@@ -81,7 +81,7 @@ object AdmobNativeUtils {
val obj = JSONObject() val obj = JSONObject()
obj.put("ad_unit", "NativeAd") obj.put("ad_unit", "NativeAd")
EventUtils.event("ad_prepare_show", ext = obj) EventUtils.event("ad_prepare_show", ext = obj)
if (!AdDisplayUtils.getInstance().shouldShowAd()) { if (!AdDisplayUtils.getInstance().shouldShowAd("NativeAd")) {
return return
} }
loadingListener = { loadingListener = {
......
...@@ -23,7 +23,6 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() { ...@@ -23,7 +23,6 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
override fun setView() { override fun setView() {
binding.lottie.repeatCount = ValueAnimator.INFINITE binding.lottie.repeatCount = ValueAnimator.INFINITE
AdmobMaxHelper.admobMaxShowNativeAd(requireActivity(), binding.flAd, 0)
} }
override fun setListener() { override fun setListener() {
......
...@@ -7,10 +7,113 @@ ...@@ -7,10 +7,113 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".activity.recyclebin.RecycleBinDetailActivity"> tools:context=".activity.recyclebin.RecycleBinDetailActivity">
<FrameLayout
android:id="@+id/fl_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:padding="15dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/fanhui_b"
tools:ignore="ContentDescription,UseAppTint" />
</FrameLayout>
<ImageView <ImageView
android:id="@+id/iv" android:id="@+id/iv"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_bofang"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:src="@mipmap/bofang"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<androidx.cardview.widget.CardView
android:layout_width="@dimen/dp_345"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="15dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="18dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/tv_restore"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:textSize="14sp"
tools:text="1721110745805_Trash_Screenshot_2024-07-16-14-07-233_00m.miui.ho" />
<TextView
android:id="@+id/tv_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:textColor="#999999"
android:textSize="14sp"
tools:text="1MB" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="9dp"
android:textColor="#999999"
android:textSize="14sp"
tools:text="2024/07/16" />
</LinearLayout>
<TextView
android:id="@+id/tv_restore"
android:layout_width="98dp"
android:layout_height="45dp"
android:layout_marginEnd="15dp"
android:background="@drawable/bg_4773ff_22"
android:gravity="center"
android:text="Restore"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -352,12 +352,6 @@ ...@@ -352,12 +352,6 @@
</LinearLayout> </LinearLayout>
<FrameLayout
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
......
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 指定内部存储路径 -->
<files-path name="internal_files" path="."/>
</paths>
\ 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