Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
F
File Recovery RecycleBin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
File Recovery RecycleBin
Commits
99da756e
Commit
99da756e
authored
Jul 19, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...ad
parent
145e98e1
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
192 additions
and
22 deletions
+192
-22
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+13
-1
RecycleBinDetailActivity.kt
...ecyclebin/activity/recyclebin/RecycleBinDetailActivity.kt
+69
-12
AdmobNativeUtils.kt
...base/filerecoveryrecyclebin/ads/admob/AdmobNativeUtils.kt
+2
-2
HomeFragment.kt
.../com/base/filerecoveryrecyclebin/fragment/HomeFragment.kt
+0
-1
activity_recycle_bin_detail.xml
app/src/main/res/layout/activity_recycle_bin_detail.xml
+103
-0
fragment_home_3.xml
app/src/main/res/layout/fragment_home_3.xml
+0
-6
bofang.png
app/src/main/res/mipmap-xxhdpi/bofang.png
+0
-0
fanhui_b.png
app/src/main/res/mipmap-xxhdpi/fanhui_b.png
+0
-0
file_paths.xml
app/src/main/res/xml/file_paths.xml
+5
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
99da756e
...
...
@@ -191,7 +191,9 @@
<receiver
android:name=
".fcm.CloseNotificationReceiver"
android:exported=
"false"
/>
<!-- 添加以下接收器 -->
android:exported=
"false"
/>
<!-- 添加以下接收器 -->
<!-- 注册广播 -->
<receiver
android:name=
".fcm.FcmReceiver"
...
...
@@ -205,6 +207,16 @@
</intent-filter>
</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
android:name=
"com.google.android.gms.ads.APPLICATION_ID"
android:value=
"ca-app-pub-3940256099942544~3347511713"
/>
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/activity/recyclebin/RecycleBinDetailActivity.kt
View file @
99da756e
package
com.base.filerecoveryrecyclebin.activity.recyclebin
import
android.annotation.SuppressLint
import
android.content.Intent
import
android.graphics.Color
import
android.net.Uri
import
android.os.Build
import
android.view.View
import
android.widget.Toast
import
androidx.activity.addCallback
import
androidx.annotation.RequiresApi
import
androidx.core.content.FileProvider
import
com.base.filerecoveryrecyclebin.activity.ResultActivity
import
com.base.filerecoveryrecyclebin.activity.recyclebin.RecycleBinFileEx.findRecycleBinFile
import
com.base.filerecoveryrecyclebin.activity.recyclebin.RecycleBinFileEx.findRecycleBinJsonFile
...
...
@@ -11,49 +17,100 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.RECYCLE_BIN
import
com.base.filerecoveryrecyclebin.bean.RecycleBinBean
import
com.base.filerecoveryrecyclebin.databinding.ActivityRecycleBinDetailBinding
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.LogEx
import
com.base.filerecoveryrecyclebin.view.DialogViews.showRecycleBinDetailDialog
import
com.bumptech.glide.Glide
import
com.google.gson.Gson
import
java.io.File
class
RecycleBinDetailActivity
:
BaseActivity
<
ActivityRecycleBinDetailBinding
>()
{
private
val
TAG
=
"RecycleBinDetailActivity"
override
val
binding
:
ActivityRecycleBinDetailBinding
by
lazy
{
ActivityRecycleBinDetailBinding
.
inflate
(
layoutInflater
)
}
private
var
recycleBinBean
:
RecycleBinBean
?
=
null
@SuppressLint
(
"SetTextI18n"
)
@RequiresApi
(
Build
.
VERSION_CODES
.
Q
)
override
fun
initView
()
{
BarUtils
.
setStatusBarLightMode
(
this
,
true
)
BarUtils
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
)
// binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
val
json
=
intent
.
extras
?.
getString
(
"Json"
)
?:
""
LogEx
.
logDebug
(
TAG
,
"json=$json"
)
val
bean
=
Gson
().
fromJson
(
json
,
RecycleBinBean
::
class
.
java
)
if
(
bean
.
mimeType
==
"image/jpeg"
)
{
recycleBinBean
=
Gson
().
fromJson
(
json
,
RecycleBinBean
::
class
.
java
)
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
binFile
=
findRecycleBinFile
(
file
.
name
)
val
binJsonFile
=
findRecycleBinJsonFile
(
file
.
name
)
if
(
binFile
!=
null
&&
binJsonFile
!=
null
)
{
Glide
.
with
(
this
).
load
(
binFile
.
absoluteFile
).
centerCrop
().
into
(
binding
.
iv
)
showRecycleBinDetailDialog
(
bean
,
binFile
,
binJsonFile
)
{
binding
.
tvName
.
text
=
bean
.
path
binding
.
tvSize
.
text
=
bean
.
size
.
toFormatSize
()
binding
.
tvTime
.
text
=
"Delete time:${bean.deleteTime.toFormatTime()}"
}
}
}
override
fun
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
()
}
}
}
if
(
bean
.
mimeType
==
""
)
{
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
();
}
}
override
fun
initListener
()
{
super
.
initListener
()
}
}
}
\ No newline at end of file
app/src/main/java/com/base/filerecoveryrecyclebin/ads/admob/AdmobNativeUtils.kt
View file @
99da756e
...
...
@@ -39,7 +39,7 @@ object AdmobNativeUtils {
return
}
isLoading
=
true
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"NativeAd"
))
{
return
}
...
...
@@ -81,7 +81,7 @@ object AdmobNativeUtils {
val
obj
=
JSONObject
()
obj
.
put
(
"ad_unit"
,
"NativeAd"
)
EventUtils
.
event
(
"ad_prepare_show"
,
ext
=
obj
)
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
())
{
if
(!
AdDisplayUtils
.
getInstance
().
shouldShowAd
(
"NativeAd"
))
{
return
}
loadingListener
=
{
...
...
app/src/main/java/com/base/filerecoveryrecyclebin/fragment/HomeFragment.kt
View file @
99da756e
...
...
@@ -23,7 +23,6 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
override
fun
setView
()
{
binding
.
lottie
.
repeatCount
=
ValueAnimator
.
INFINITE
AdmobMaxHelper
.
admobMaxShowNativeAd
(
requireActivity
(),
binding
.
flAd
,
0
)
}
override
fun
setListener
()
{
...
...
app/src/main/res/layout/activity_recycle_bin_detail.xml
View file @
99da756e
...
...
@@ -7,10 +7,113 @@
android:layout_height=
"match_parent"
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
android:id=
"@+id/iv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
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>
\ No newline at end of file
app/src/main/res/layout/fragment_home_3.xml
View file @
99da756e
...
...
@@ -352,12 +352,6 @@
</LinearLayout>
<FrameLayout
android:id=
"@+id/fl_ad"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
...
...
app/src/main/res/mipmap-xxhdpi/bofang.png
0 → 100644
View file @
99da756e
12 KB
app/src/main/res/mipmap-xxhdpi/fanhui_b.png
0 → 100644
View file @
99da756e
747 Bytes
app/src/main/res/xml/file_paths.xml
0 → 100644
View file @
99da756e
<?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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment