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
7e5a143d
Commit
7e5a143d
authored
Jul 25, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
784df70b
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
316 additions
and
0 deletions
+316
-0
LargeFileActivity.kt
...base/datarecovery/activity/largefile/LargeFileActivity.kt
+57
-0
ConstObject.kt
app/src/main/java/com/base/datarecovery/bean/ConstObject.kt
+7
-0
DialogViews.kt
app/src/main/java/com/base/datarecovery/view/DialogViews.kt
+56
-0
bg_ffffff_tlr10.xml
app/src/main/res/drawable/bg_ffffff_tlr10.xml
+8
-0
dialog_large_file_type.xml
app/src/main/res/layout/dialog_large_file_type.xml
+188
-0
No files found.
app/src/main/java/com/base/datarecovery/activity/largefile/LargeFileActivity.kt
View file @
7e5a143d
...
@@ -15,6 +15,13 @@ import com.base.datarecovery.activity.ResultActivity
...
@@ -15,6 +15,13 @@ import com.base.datarecovery.activity.ResultActivity
import
com.base.datarecovery.adapter.LargeFileAdapter
import
com.base.datarecovery.adapter.LargeFileAdapter
import
com.base.datarecovery.ads.AdmobMaxHelper
import
com.base.datarecovery.ads.AdmobMaxHelper
import
com.base.datarecovery.bean.ConstObject
import
com.base.datarecovery.bean.ConstObject
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_ALL
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_AUDIO
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_DOCUMENT
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_OTHER
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_PICTURE
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_VIDEO
import
com.base.datarecovery.bean.MediaBean
import
com.base.datarecovery.databinding.ActivityLargeFileBinding
import
com.base.datarecovery.databinding.ActivityLargeFileBinding
import
com.base.datarecovery.help.BaseActivity
import
com.base.datarecovery.help.BaseActivity
import
com.base.datarecovery.help.KotlinExt.toFormatSize
import
com.base.datarecovery.help.KotlinExt.toFormatSize
...
@@ -25,6 +32,7 @@ import com.base.datarecovery.help.PermissionHelp.requestStorePermission
...
@@ -25,6 +32,7 @@ import com.base.datarecovery.help.PermissionHelp.requestStorePermission
import
com.base.datarecovery.view.DialogViews.showDeletePermanentlyDialog
import
com.base.datarecovery.view.DialogViews.showDeletePermanentlyDialog
import
com.base.datarecovery.view.DialogViews.showExitFunctionDialog
import
com.base.datarecovery.view.DialogViews.showExitFunctionDialog
import
com.base.datarecovery.view.DialogViews.showGerPermission
import
com.base.datarecovery.view.DialogViews.showGerPermission
import
com.base.datarecovery.view.DialogViews.showLargeFileTypeDialog
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
...
@@ -33,11 +41,14 @@ import java.io.File
...
@@ -33,11 +41,14 @@ import java.io.File
class
LargeFileActivity
:
BaseActivity
<
ActivityLargeFileBinding
>()
{
class
LargeFileActivity
:
BaseActivity
<
ActivityLargeFileBinding
>()
{
private
lateinit
var
largeFileAdapter
:
LargeFileAdapter
private
lateinit
var
largeFileAdapter
:
LargeFileAdapter
private
var
largeData
=
listOf
<
MediaBean
>()
override
val
binding
:
ActivityLargeFileBinding
by
lazy
{
override
val
binding
:
ActivityLargeFileBinding
by
lazy
{
ActivityLargeFileBinding
.
inflate
(
layoutInflater
)
ActivityLargeFileBinding
.
inflate
(
layoutInflater
)
}
}
var
selectType
=
SELECT_FILE_ALL
@SuppressLint
(
"SetTextI18n"
)
@SuppressLint
(
"SetTextI18n"
)
override
fun
initView
()
{
override
fun
initView
()
{
...
@@ -83,6 +94,51 @@ class LargeFileActivity : BaseActivity<ActivityLargeFileBinding>() {
...
@@ -83,6 +94,51 @@ class LargeFileActivity : BaseActivity<ActivityLargeFileBinding>() {
deleteFiles
()
deleteFiles
()
}
}
}
}
binding
.
flFilter
.
setOnClickListener
{
showLargeFileTypeDialog
(
selectType
)
{
type
->
selectType
=
type
largeFileAdapter
.
setData
(
largeData
.
filter
{
selectFilter
(
it
)
})
}
}
}
private
fun
selectFilter
(
mediaBean
:
MediaBean
):
Boolean
{
when
(
selectType
)
{
SELECT_FILE_ALL
->
return
true
SELECT_FILE_PICTURE
->
{
return
mediaBean
.
mimeType
.
contains
(
"image"
)
}
SELECT_FILE_VIDEO
->
{
return
mediaBean
.
mimeType
.
contains
(
"video"
)
}
SELECT_FILE_AUDIO
->
{
return
mediaBean
.
mimeType
.
contains
(
"audio"
)
}
SELECT_FILE_DOCUMENT
->
{
return
mediaBean
.
mimeType
.
contains
(
"pdf"
)
||
mediaBean
.
mimeType
.
contains
(
"msword"
)
||
mediaBean
.
mimeType
.
contains
(
"document"
)
||
mediaBean
.
mimeType
.
contains
(
"excel"
)
||
mediaBean
.
mimeType
.
contains
(
"sheet"
)
||
mediaBean
.
mimeType
.
contains
(
"powerpoint"
)
||
mediaBean
.
mimeType
.
contains
(
"presentation"
)
}
SELECT_FILE_OTHER
->
{
return
mediaBean
.
mimeType
.
contains
(
"zip"
)
||
mediaBean
.
mimeType
.
contains
(
"rar"
)
||
mediaBean
.
mimeType
.
contains
(
"7z"
)
||
mediaBean
.
mimeType
.
contains
(
"tar"
)
||
mediaBean
.
mimeType
.
contains
(
"archive"
)
||
mediaBean
.
mimeType
.
contains
(
"stream"
)
}
}
return
false
}
}
private
fun
deleteFiles
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
private
fun
deleteFiles
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
...
@@ -106,6 +162,7 @@ class LargeFileActivity : BaseActivity<ActivityLargeFileBinding>() {
...
@@ -106,6 +162,7 @@ class LargeFileActivity : BaseActivity<ActivityLargeFileBinding>() {
private
fun
initData
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
private
fun
initData
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
val
beanList
=
getAllMedia
{
size
->
size
>
1024
*
1024
*
50
}
val
beanList
=
getAllMedia
{
size
->
size
>
1024
*
1024
*
50
}
launch
(
Dispatchers
.
Main
)
{
launch
(
Dispatchers
.
Main
)
{
largeData
=
beanList
binding
.
ivEmpty
.
isVisible
=
beanList
.
isEmpty
()
binding
.
ivEmpty
.
isVisible
=
beanList
.
isEmpty
()
largeFileAdapter
.
setData
(
beanList
)
largeFileAdapter
.
setData
(
beanList
)
}
}
...
...
app/src/main/java/com/base/datarecovery/bean/ConstObject.kt
View file @
7e5a143d
...
@@ -30,6 +30,13 @@ object ConstObject {
...
@@ -30,6 +30,13 @@ object ConstObject {
const
val
SCAN_DOCUMENTS
=
2
const
val
SCAN_DOCUMENTS
=
2
const
val
SCAN_VIDEOS
=
3
const
val
SCAN_VIDEOS
=
3
const
val
SELECT_FILE_ALL
=
0
const
val
SELECT_FILE_PICTURE
=
1
const
val
SELECT_FILE_VIDEO
=
2
const
val
SELECT_FILE_AUDIO
=
3
const
val
SELECT_FILE_DOCUMENT
=
4
const
val
SELECT_FILE_OTHER
=
5
var
ifAgreePrivacy
=
false
var
ifAgreePrivacy
=
false
get
()
{
get
()
{
...
...
app/src/main/java/com/base/datarecovery/view/DialogViews.kt
View file @
7e5a143d
...
@@ -28,17 +28,25 @@ import com.base.datarecovery.bean.ConstObject.RECOVERY_PHOTOS
...
@@ -28,17 +28,25 @@ import com.base.datarecovery.bean.ConstObject.RECOVERY_PHOTOS
import
com.base.datarecovery.bean.ConstObject.RECOVERY_VIDEOS
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.bean.ConstObject.SELECT_FILE_ALL
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_AUDIO
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_DOCUMENT
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_OTHER
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_PICTURE
import
com.base.datarecovery.bean.ConstObject.SELECT_FILE_VIDEO
import
com.base.datarecovery.databinding.DialogCameraSettingBinding
import
com.base.datarecovery.databinding.DialogCameraSettingBinding
import
com.base.datarecovery.databinding.DialogDeletePermanentlyBinding
import
com.base.datarecovery.databinding.DialogDeletePermanentlyBinding
import
com.base.datarecovery.databinding.DialogExitAppBinding
import
com.base.datarecovery.databinding.DialogExitAppBinding
import
com.base.datarecovery.databinding.DialogExitFunctionBinding
import
com.base.datarecovery.databinding.DialogExitFunctionBinding
import
com.base.datarecovery.databinding.DialogImageTakeBinding
import
com.base.datarecovery.databinding.DialogImageTakeBinding
import
com.base.datarecovery.databinding.DialogLargeFileTypeBinding
import
com.base.datarecovery.databinding.DialogPermissionBottomsheetBinding
import
com.base.datarecovery.databinding.DialogPermissionBottomsheetBinding
import
com.base.datarecovery.databinding.DialogPermissonOpenBinding
import
com.base.datarecovery.databinding.DialogPermissonOpenBinding
import
com.base.datarecovery.databinding.DialogRecoveringBinding
import
com.base.datarecovery.databinding.DialogRecoveringBinding
import
com.base.datarecovery.databinding.DialogRemoveFileTipBinding
import
com.base.datarecovery.databinding.DialogRemoveFileTipBinding
import
com.base.datarecovery.utils.AppPreferences
import
com.base.datarecovery.utils.AppPreferences
import
com.base.datarecovery.utils.LogEx
import
com.base.datarecovery.utils.LogEx
import
com.base.datarecovery.view.DialogViews.showExitDialog
import
com.base.datarecovery.view.PermissionDialog.showPermissionBottomSheet
import
com.base.datarecovery.view.PermissionDialog.showPermissionBottomSheet
import
com.google.android.material.bottomsheet.BottomSheetBehavior
import
com.google.android.material.bottomsheet.BottomSheetBehavior
import
com.google.android.material.bottomsheet.BottomSheetDialog
import
com.google.android.material.bottomsheet.BottomSheetDialog
...
@@ -324,4 +332,52 @@ object DialogViews {
...
@@ -324,4 +332,52 @@ object DialogViews {
}
}
}
}
fun
Context
.
showLargeFileTypeDialog
(
type
:
Int
,
click
:
(
type
:
Int
)
->
Unit
)
{
val
binding
=
DialogLargeFileTypeBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
val
dialog
=
AlertDialog
.
Builder
(
this
).
create
()
dialog
.
setView
(
binding
.
root
)
// dialog.setCanceledOnTouchOutside(false)
// dialog.setCancelable(false)
dialog
.
show
()
dialog
.
window
?.
setBackgroundDrawableResource
(
android
.
R
.
color
.
transparent
)
val
lp
:
WindowManager
.
LayoutParams
?
=
dialog
.
window
?.
attributes
lp
?.
gravity
=
Gravity
.
BOTTOM
lp
?.
width
=
ConstraintLayout
.
LayoutParams
.
MATCH_PARENT
dialog
.
window
?.
setAttributes
(
lp
)
when
(
type
)
{
SELECT_FILE_ALL
->
binding
.
flAllType
.
isSelected
=
true
SELECT_FILE_PICTURE
->
binding
.
flPicture
.
isSelected
=
true
SELECT_FILE_VIDEO
->
binding
.
flVideo
.
isSelected
=
true
SELECT_FILE_AUDIO
->
binding
.
flAudio
.
isSelected
=
true
SELECT_FILE_DOCUMENT
->
binding
.
flDocument
.
isSelected
=
true
SELECT_FILE_OTHER
->
binding
.
flOther
.
isSelected
=
true
}
binding
.
flAllType
.
setOnClickListener
{
dialog
.
dismiss
()
click
.
invoke
(
SELECT_FILE_ALL
)
}
binding
.
flPicture
.
setOnClickListener
{
dialog
.
dismiss
()
click
.
invoke
(
SELECT_FILE_PICTURE
)
}
binding
.
flVideo
.
setOnClickListener
{
dialog
.
dismiss
()
click
.
invoke
(
SELECT_FILE_VIDEO
)
}
binding
.
flAudio
.
setOnClickListener
{
dialog
.
dismiss
()
click
.
invoke
(
SELECT_FILE_AUDIO
)
}
binding
.
flDocument
.
setOnClickListener
{
dialog
.
dismiss
()
click
.
invoke
(
SELECT_FILE_DOCUMENT
)
}
binding
.
flOther
.
setOnClickListener
{
dialog
.
dismiss
()
click
.
invoke
(
SELECT_FILE_OTHER
)
}
}
}
}
app/src/main/res/drawable/bg_ffffff_tlr10.xml
0 → 100644
View file @
7e5a143d
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"@color/white"
/>
<corners
android:topLeftRadius=
"10dp"
android:topRightRadius=
"10dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/layout/dialog_large_file_type.xml
0 → 100644
View file @
7e5a143d
<?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=
"wrap_content"
android:background=
"@drawable/bg_ffffff_tlr10"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"22dp"
android:layout_marginTop=
"25dp"
android:text=
"Select type"
android:textColor=
"@color/black"
android:textSize=
"16sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1px"
android:layout_marginTop=
"16dp"
android:background=
"#EEEEEE"
/>
<FrameLayout
android:id=
"@+id/fl_all_type"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginVertical=
"18dp"
android:layout_marginStart=
"22dp"
android:text=
"All types"
android:textColor=
"@color/black"
android:textSize=
"14sp"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"22dp"
android:src=
"@drawable/bg_circle_selector"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<FrameLayout
android:id=
"@+id/fl_picture"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginVertical=
"18dp"
android:layout_marginStart=
"22dp"
android:text=
"Picture"
android:textColor=
"@color/black"
android:textSize=
"14sp"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"22dp"
android:src=
"@drawable/bg_circle_selector"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<FrameLayout
android:id=
"@+id/fl_Video"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginVertical=
"18dp"
android:layout_marginStart=
"22dp"
android:text=
"Video"
android:textColor=
"@color/black"
android:textSize=
"14sp"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"22dp"
android:src=
"@drawable/bg_circle_selector"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<FrameLayout
android:id=
"@+id/fl_Audio"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginVertical=
"18dp"
android:layout_marginStart=
"22dp"
android:text=
"Audio"
android:textColor=
"@color/black"
android:textSize=
"14sp"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"22dp"
android:src=
"@drawable/bg_circle_selector"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<FrameLayout
android:id=
"@+id/fl_document"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginVertical=
"18dp"
android:layout_marginStart=
"22dp"
android:text=
"Document"
android:textColor=
"@color/black"
android:textSize=
"14sp"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"22dp"
android:src=
"@drawable/bg_circle_selector"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<FrameLayout
android:id=
"@+id/fl_other"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginVertical=
"18dp"
android:layout_marginStart=
"22dp"
android:text=
"Other types"
android:textColor=
"@color/black"
android:textSize=
"14sp"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"22dp"
android:src=
"@drawable/bg_circle_selector"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
</LinearLayout>
\ 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