Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
D
Data Recovery White
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
Data Recovery White
Commits
43f8a66d
Commit
43f8a66d
authored
Jul 11, 2024
by
leichao.gao
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
b775c859
1c224f88
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
96 additions
and
23 deletions
+96
-23
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+2
-1
ScreenShotActivity.kt
...java/com/base/datarecovery/activity/ScreenShotActivity.kt
+5
-0
FileScanActivity.kt
...m/base/datarecovery/activity/recovery/FileScanActivity.kt
+1
-0
AppFunctionAdapter.kt
.../java/com/base/datarecovery/adapter/AppFunctionAdapter.kt
+17
-8
ScreenShotAdapter.kt
...n/java/com/base/datarecovery/adapter/ScreenShotAdapter.kt
+6
-1
ConstObject.kt
app/src/main/java/com/base/datarecovery/bean/ConstObject.kt
+4
-0
FileHelp.kt
app/src/main/java/com/base/datarecovery/help/FileHelp.kt
+2
-1
activity_layout_result.xml
app/src/main/res/layout/activity_layout_result.xml
+14
-12
item_result_fun_2.xml
app/src/main/res/layout/item_result_fun_2.xml
+40
-0
bg_result.png
app/src/main/res/mipmap-xxhdpi/bg_result.png
+0
-0
themes.xml
app/src/main/res/values/themes.xml
+5
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
43f8a66d
...
@@ -34,7 +34,8 @@
...
@@ -34,7 +34,8 @@
<activity
<activity
android:name=
".activity.SplashActivity"
android:name=
".activity.SplashActivity"
android:exported=
"true"
android:exported=
"true"
android:launchMode=
"singleTask"
>
android:launchMode=
"singleTask"
android:theme=
"@style/splash.theme"
>
<intent-filter>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
app/src/main/java/com/base/datarecovery/activity/ScreenShotActivity.kt
View file @
43f8a66d
...
@@ -87,6 +87,7 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
...
@@ -87,6 +87,7 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
}
}
}
}
@SuppressLint
(
"SetTextI18n"
)
override
fun
initListener
()
{
override
fun
initListener
()
{
binding
.
flBack
.
setOnClickListener
{
binding
.
flBack
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
onBackPressedDispatcher
.
onBackPressed
()
...
@@ -120,7 +121,11 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
...
@@ -120,7 +121,11 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
}
}
}.
await
()
}.
await
()
launch
(
Dispatchers
.
Main
)
{
launch
(
Dispatchers
.
Main
)
{
binding
.
tvClean
.
text
=
"CLEAN"
screenShotAdapter
.
removeData
(
files
)
screenShotAdapter
.
removeData
(
files
)
val
split
=
screenShotAdapter
.
getAllData
().
sumOf
{
it
.
file
.
length
()
}.
toFormatSize
().
split
(
" "
)
binding
.
tvSize
.
text
=
split
[
0
]
binding
.
tvUnit
.
text
=
split
[
1
]
}
}
}
}
}
}
...
...
app/src/main/java/com/base/datarecovery/activity/recovery/FileScanActivity.kt
View file @
43f8a66d
...
@@ -25,6 +25,7 @@ import com.base.datarecovery.view.DialogViews.showGerPermission
...
@@ -25,6 +25,7 @@ import com.base.datarecovery.view.DialogViews.showGerPermission
import
com.base.datarecovery.view.FileScanDialog
import
com.base.datarecovery.view.FileScanDialog
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.channels.BufferOverflow
import
kotlinx.coroutines.channels.BufferOverflow
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.flow.MutableSharedFlow
import
kotlinx.coroutines.flow.MutableSharedFlow
import
kotlinx.coroutines.flow.SharedFlow
import
kotlinx.coroutines.flow.SharedFlow
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
...
...
app/src/main/java/com/base/datarecovery/adapter/AppFunctionAdapter.kt
View file @
43f8a66d
...
@@ -8,8 +8,13 @@ import androidx.recyclerview.widget.RecyclerView
...
@@ -8,8 +8,13 @@ import androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.RecyclerView.ViewHolder
import
androidx.recyclerview.widget.RecyclerView.ViewHolder
import
com.base.datarecovery.R
import
com.base.datarecovery.R
import
com.base.datarecovery.bean.ConstObject.JUNK_CLEANER
import
com.base.datarecovery.bean.ConstObject.JUNK_CLEANER
import
com.base.datarecovery.bean.ConstObject.PRIVACY_SPACE
import
com.base.datarecovery.bean.ConstObject.RECOVERY_DOCUMENTS
import
com.base.datarecovery.bean.ConstObject.RECOVERY_PHOTOS
import
com.base.datarecovery.bean.ConstObject.RECOVERY_VIDEOS
import
com.base.datarecovery.bean.ConstObject.REPEAT_PHOTOS
import
com.base.datarecovery.bean.ConstObject.REPEAT_PHOTOS
import
com.base.datarecovery.bean.ConstObject.SCREENSHOT_CLEANER
import
com.base.datarecovery.bean.ConstObject.SCREENSHOT_CLEANER
import
com.base.datarecovery.databinding.ItemResultFun2Binding
import
com.base.datarecovery.databinding.ItemResultFunBinding
import
com.base.datarecovery.databinding.ItemResultFunBinding
import
com.base.datarecovery.utils.AppPreferences
import
com.base.datarecovery.utils.AppPreferences
import
com.base.datarecovery.view.XmlEx.inflate
import
com.base.datarecovery.view.XmlEx.inflate
...
@@ -19,16 +24,20 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
...
@@ -19,16 +24,20 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
RecyclerView
.
Adapter
<
AppFunctionAdapter
.
JJJ
>()
{
RecyclerView
.
Adapter
<
AppFunctionAdapter
.
JJJ
>()
{
val
list
=
arrayListOf
(
val
list
=
arrayListOf
(
Fun
(
JUNK_CLEANER
,
R
.
mipmap
.
clean
,
"Clean junk regularly to free up space"
,
"Clean Up"
),
Fun
(
JUNK_CLEANER
,
R
.
mipmap
.
clean
),
Fun
(
REPEAT_PHOTOS
,
R
.
mipmap
.
repeatedphotos
,
"Check similar photos to release more space"
,
"Clean Up"
),
Fun
(
RECOVERY_PHOTOS
,
R
.
mipmap
.
photos_ss
),
Fun
(
SCREENSHOT_CLEANER
,
R
.
mipmap
.
screenshots
,
"Too many screenshots? Free up your phone storage!"
,
"Clean Up"
),
Fun
(
RECOVERY_VIDEOS
,
R
.
mipmap
.
videos_ss
),
Fun
(
RECOVERY_DOCUMENTS
,
R
.
mipmap
.
documents_ss
),
Fun
(
PRIVACY_SPACE
,
R
.
mipmap
.
space
),
Fun
(
REPEAT_PHOTOS
,
R
.
mipmap
.
repeatedphotos
),
Fun
(
SCREENSHOT_CLEANER
,
R
.
mipmap
.
screenshots
),
)
)
class
JJJ
(
view
:
View
)
:
ViewHolder
(
view
)
class
JJJ
(
view
:
View
)
:
ViewHolder
(
view
)
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
JJJ
{
override
fun
onCreateViewHolder
(
parent
:
ViewGroup
,
viewType
:
Int
):
JJJ
{
return
JJJ
(
R
.
layout
.
item_result_fun
.
inflate
(
parent
))
return
JJJ
(
R
.
layout
.
item_result_fun
_2
.
inflate
(
parent
))
}
}
override
fun
getItemCount
():
Int
{
override
fun
getItemCount
():
Int
{
...
@@ -38,12 +47,12 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
...
@@ -38,12 +47,12 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
override
fun
onBindViewHolder
(
holder
:
JJJ
,
position
:
Int
)
{
override
fun
onBindViewHolder
(
holder
:
JJJ
,
position
:
Int
)
{
val
data
=
list
[
position
]
val
data
=
list
[
position
]
val
context
=
holder
.
itemView
.
context
val
context
=
holder
.
itemView
.
context
val
binding
=
ItemResultFunBinding
.
bind
(
holder
.
itemView
)
val
binding
=
ItemResultFun
2
Binding
.
bind
(
holder
.
itemView
)
binding
.
ivIcon
.
setImageDrawable
(
ContextCompat
.
getDrawable
(
context
,
data
.
icon
))
binding
.
ivIcon
.
setImageDrawable
(
ContextCompat
.
getDrawable
(
context
,
data
.
icon
))
binding
.
tvTittle
.
text
=
data
.
name
binding
.
tvTittle
.
text
=
data
.
name
binding
.
tvDes
.
text
=
data
.
des
//
binding.tvDes.text = data.des
binding
.
tvButton
.
text
=
data
.
button
//
binding.tvButton.text = data.button
binding
.
tvButton
.
setOnClickListener
{
binding
.
root
.
setOnClickListener
{
click
.
invoke
(
data
.
name
)
click
.
invoke
(
data
.
name
)
}
}
}
}
...
...
app/src/main/java/com/base/datarecovery/adapter/ScreenShotAdapter.kt
View file @
43f8a66d
...
@@ -18,7 +18,7 @@ class ScreenShotAdapter(
...
@@ -18,7 +18,7 @@ class ScreenShotAdapter(
val
select
:
(
size
:
Int
)
->
Unit
val
select
:
(
size
:
Int
)
->
Unit
)
:
RecyclerView
.
Adapter
<
ScreenShotAdapter
.
SSS
>()
{
)
:
RecyclerView
.
Adapter
<
ScreenShotAdapter
.
SSS
>()
{
private
var
beans
=
arrayListOf
<
ScreenshotBean
>()
var
beans
=
arrayListOf
<
ScreenshotBean
>()
inner
class
SSS
(
view
:
View
)
:
ViewHolder
(
view
)
inner
class
SSS
(
view
:
View
)
:
ViewHolder
(
view
)
...
@@ -106,6 +106,11 @@ class ScreenShotAdapter(
...
@@ -106,6 +106,11 @@ class ScreenShotAdapter(
bean
.
screenPhotoBean
.
filter
{
it
.
isSelect
}
bean
.
screenPhotoBean
.
filter
{
it
.
isSelect
}
}
}
}
}
fun
getAllData
():
List
<
ScreenPhotoBean
>
{
return
beans
.
flatMap
{
bean
->
bean
.
screenPhotoBean
}
}
@SuppressLint
(
"NotifyDataSetChanged"
)
@SuppressLint
(
"NotifyDataSetChanged"
)
fun
removeData
(
files
:
List
<
ScreenPhotoBean
>)
{
fun
removeData
(
files
:
List
<
ScreenPhotoBean
>)
{
...
...
app/src/main/java/com/base/datarecovery/bean/ConstObject.kt
View file @
43f8a66d
...
@@ -12,10 +12,14 @@ object ConstObject {
...
@@ -12,10 +12,14 @@ object ConstObject {
const
val
ID_RECOVERY_DOCUMENTS
=
0
const
val
ID_RECOVERY_DOCUMENTS
=
0
const
val
ID_PRIVACY_SPACE
=
0
const
val
ID_PRIVACY_SPACE
=
0
const
val
RECOVERY_PHOTOS
=
"Recovery Photos"
const
val
RECOVERY_VIDEOS
=
"Recovery Videos"
const
val
RECOVERY_DOCUMENTS
=
"Recovery Documents"
const
val
JUNK_CLEANER
=
"Junk Cleaner"
const
val
JUNK_CLEANER
=
"Junk Cleaner"
const
val
REPEAT_PHOTOS
=
"Repeat Photos"
const
val
REPEAT_PHOTOS
=
"Repeat Photos"
const
val
PHOTO_COMPRESS
=
"Photo Compress"
const
val
PHOTO_COMPRESS
=
"Photo Compress"
const
val
SCREENSHOT_CLEANER
=
"Screenshot Cleaner"
const
val
SCREENSHOT_CLEANER
=
"Screenshot Cleaner"
const
val
PRIVACY_SPACE
=
"Privacy Space"
const
val
SCAN_PHOTOS
=
1
const
val
SCAN_PHOTOS
=
1
const
val
SCAN_DOCUMENTS
=
2
const
val
SCAN_DOCUMENTS
=
2
...
...
app/src/main/java/com/base/datarecovery/help/FileHelp.kt
View file @
43f8a66d
...
@@ -5,6 +5,7 @@ import android.util.Log
...
@@ -5,6 +5,7 @@ import android.util.Log
import
com.base.datarecovery.utils.LogEx
import
com.base.datarecovery.utils.LogEx
import
kotlinx.coroutines.CoroutineScope
import
kotlinx.coroutines.CoroutineScope
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.flow.MutableSharedFlow
import
kotlinx.coroutines.flow.MutableSharedFlow
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
import
java.io.File
import
java.io.File
...
@@ -25,7 +26,7 @@ object FileHelp {
...
@@ -25,7 +26,7 @@ object FileHelp {
onDo
:
((
file
:
File
)
->
Unit
)?
=
null
,
onDo
:
((
file
:
File
)
->
Unit
)?
=
null
,
onFinish
:
(()
->
Unit
)?
=
null
onFinish
:
(()
->
Unit
)?
=
null
)
=
launch
(
Dispatchers
.
IO
)
{
)
=
launch
(
Dispatchers
.
IO
)
{
delay
(
1000
)
var
size
=
0
var
size
=
0
//添加第一层文件到链表
//添加第一层文件到链表
...
...
app/src/main/res/layout/activity_layout_result.xml
View file @
43f8a66d
...
@@ -3,13 +3,14 @@
...
@@ -3,13 +3,14 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
android:layout_height=
"match_parent"
android:background=
"#EFEFEF"
>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/cl_top"
android:id=
"@+id/cl_top"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"200dp"
android:layout_height=
"200dp"
android:background=
"
#0164C8
"
android:background=
"
@mipmap/bg_result
"
app:layout_constraintTop_toTopOf=
"parent"
>
app:layout_constraintTop_toTopOf=
"parent"
>
<androidx.appcompat.widget.AppCompatImageView
<androidx.appcompat.widget.AppCompatImageView
...
@@ -67,25 +68,26 @@
...
@@ -67,25 +68,26 @@
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:id=
"@+id/fl_ad"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintBottom_toTopOf=
"@id/rv_fun"
app:layout_constraintTop_toBottomOf=
"@id/cl_top"
/>
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_fun"
android:id=
"@+id/rv_fun"
android:layout_width=
"
match_par
ent"
android:layout_width=
"
wrap_cont
ent"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:paddingTop=
"20dp"
android:paddingTop=
"20dp"
android:paddingBottom=
"15dp"
android:paddingBottom=
"15dp"
app:layoutManager=
"androidx.recyclerview.widget.
Linear
LayoutManager"
app:layoutManager=
"androidx.recyclerview.widget.
Grid
LayoutManager"
app:layout_constraintBottom_to
TopOf=
"@id/fl_ad
"
app:layout_constraintBottom_to
BottomOf=
"parent
"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintHorizontal_bias=
"0.0"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/cl_top"
app:layout_constraintTop_toBottomOf=
"@+id/cl_top"
app:layout_constraintVertical_bias=
"0.0"
/>
app:spanCount=
"2"
tools:listitem=
"@layout/item_result_fun_2"
/>
<FrameLayout
android:id=
"@+id/fl_ad"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/item_result_fun_2.xml
0 → 100644
View file @
43f8a66d
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
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:layout_width=
"166dp"
android:layout_height=
"100dp"
android:layout_margin=
"10dp"
>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:orientation=
"vertical"
>
<androidx.appcompat.widget.AppCompatImageView
android:id=
"@+id/iv_icon"
android:layout_width=
"45dp"
android:layout_height=
"45dp"
android:layout_gravity=
"center_horizontal"
android:layout_marginStart=
"12dp"
android:layout_marginEnd=
"9dp"
android:src=
"@mipmap/h_cleanjunk"
/>
<TextView
android:id=
"@+id/tv_tittle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"13dp"
android:includeFontPadding=
"false"
android:text=
"Battery information"
android:textColor=
"#ff000000"
android:textSize=
"15sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView>
\ No newline at end of file
app/src/main/res/mipmap-xxhdpi/bg_result.png
0 → 100644
View file @
43f8a66d
568 KB
app/src/main/res/values/themes.xml
View file @
43f8a66d
...
@@ -21,4 +21,9 @@
...
@@ -21,4 +21,9 @@
<item
name=
"android:backgroundDimEnabled"
>
false
</item>
<item
name=
"android:backgroundDimEnabled"
>
false
</item>
</style>
</style>
<style
name=
"splash.theme"
parent=
"Theme.AppCompat.DayNight.NoActionBar"
>
<item
name=
"android:windowBackground"
>
@drawable/splash_bp
</item>
<item
name=
"android:windowFullscreen"
>
false
</item>
</style>
</resources>
</resources>
\ 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