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
d847feb0
Commit
d847feb0
authored
Jul 31, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
49d69b86
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
57 additions
and
5 deletions
+57
-5
FileRecoveredActivity.kt
...e/datarecovery/activity/recovery/FileRecoveredActivity.kt
+2
-0
FileRecoveryActivity.kt
...se/datarecovery/activity/recovery/FileRecoveryActivity.kt
+6
-0
FileScanResultActivity.kt
.../datarecovery/activity/recovery/FileScanResultActivity.kt
+6
-0
FileTimeColumnsAdapter.kt
...a/com/base/datarecovery/adapter/FileTimeColumnsAdapter.kt
+4
-3
AdmobMaxHelper.kt
...src/main/java/com/base/datarecovery/ads/AdmobMaxHelper.kt
+1
-1
AdMaxInterstitialUtils.kt
...a/com/base/datarecovery/ads/max/AdMaxInterstitialUtils.kt
+3
-1
ConstObject.kt
app/src/main/java/com/base/datarecovery/bean/ConstObject.kt
+1
-0
RecoveryFragment.kt
...n/java/com/base/datarecovery/fragment/RecoveryFragment.kt
+6
-0
FileHexEx.kt
app/src/main/java/com/base/datarecovery/utils/FileHexEx.kt
+28
-0
No files found.
app/src/main/java/com/base/datarecovery/activity/recovery/FileRecoveredActivity.kt
View file @
d847feb0
...
...
@@ -11,6 +11,7 @@ import androidx.core.view.ViewCompat
import
androidx.core.view.WindowInsetsCompat
import
com.base.datarecovery.R
import
com.base.datarecovery.ads.AdmobMaxHelper
import
com.base.datarecovery.bean.ConstObject.SCAN_AUDIOS
import
com.base.datarecovery.bean.ConstObject.SCAN_DOCUMENTS
import
com.base.datarecovery.bean.ConstObject.SCAN_PHOTOS
import
com.base.datarecovery.bean.ConstObject.SCAN_VIDEOS
...
...
@@ -40,6 +41,7 @@ class FileRecoveredActivity : BaseActivity<ActivityFileRecoveredBinding>() {
SCAN_PHOTOS
->
if
(
number
==
1
)
"Photo"
else
"Photos"
SCAN_VIDEOS
->
if
(
number
==
1
)
"Video"
else
"Videos"
SCAN_DOCUMENTS
->
if
(
number
==
1
)
"Document"
else
"Documents"
SCAN_AUDIOS
->
if
(
number
==
1
)
"Audio"
else
"Audios"
else
->
""
}
binding
.
tvType
.
text
=
type
...
...
app/src/main/java/com/base/datarecovery/activity/recovery/FileRecoveryActivity.kt
View file @
d847feb0
...
...
@@ -14,6 +14,7 @@ import androidx.lifecycle.lifecycleScope
import
com.base.datarecovery.R
import
com.base.datarecovery.adapter.FileTimeColumnsAdapter
import
com.base.datarecovery.adapter.RecoveryFilterAdapter
import
com.base.datarecovery.bean.ConstObject.SCAN_AUDIOS
import
com.base.datarecovery.bean.ConstObject.SCAN_DOCUMENTS
import
com.base.datarecovery.bean.ConstObject.SCAN_PHOTOS
import
com.base.datarecovery.bean.ConstObject.SCAN_VIDEOS
...
...
@@ -85,6 +86,10 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
binding
.
clThumbnails
.
visibility
=
View
.
GONE
}
SCAN_AUDIOS
->
{
binding
.
clThumbnails
.
visibility
=
View
.
GONE
binding
.
llLayout
.
visibility
=
View
.
GONE
}
}
adapter
=
FileTimeColumnsAdapter
(
scanType
,
...
...
@@ -158,6 +163,7 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
SCAN_PHOTOS
->
dirType
=
"Photo"
SCAN_DOCUMENTS
->
dirType
=
"Document"
SCAN_VIDEOS
->
dirType
=
"Video"
SCAN_AUDIOS
->
dirType
=
"Audio"
}
val
appName
=
this
.
resources
.
getString
(
R
.
string
.
app_name
)
val
appDir
=
File
(
Environment
.
getExternalStorageDirectory
(),
appName
)
...
...
app/src/main/java/com/base/datarecovery/activity/recovery/FileScanResultActivity.kt
View file @
d847feb0
...
...
@@ -10,6 +10,7 @@ import androidx.core.view.isVisible
import
androidx.lifecycle.lifecycleScope
import
com.base.datarecovery.adapter.FileFolderAdapter
import
com.base.datarecovery.ads.AdmobMaxHelper
import
com.base.datarecovery.bean.ConstObject.SCAN_AUDIOS
import
com.base.datarecovery.bean.ConstObject.SCAN_DOCUMENTS
import
com.base.datarecovery.bean.ConstObject.SCAN_PHOTOS
import
com.base.datarecovery.bean.ConstObject.SCAN_VIDEOS
...
...
@@ -69,6 +70,10 @@ class FileScanResultActivity : BaseActivity<ActivityFileScanResultBinding>() {
binding
.
tvTittle
.
text
=
"Video Recovery"
binding
.
tvFileType
.
text
=
"videos"
}
SCAN_AUDIOS
->
{
binding
.
tvTittle
.
text
=
"Audio Recovery"
binding
.
tvFileType
.
text
=
"Audios"
}
}
fileFolderAdapter
=
FileFolderAdapter
(
scanType
)
{
folderBean
->
FileRecoveryActivity
.
folderBean
=
null
...
...
@@ -145,6 +150,7 @@ class FileScanResultActivity : BaseActivity<ActivityFileScanResultBinding>() {
SCAN_PHOTOS
->
FileHexEx
::
isImage
SCAN_DOCUMENTS
->
FileHexEx
::
isDocument
SCAN_VIDEOS
->
FileHexEx
::
isVideo
SCAN_AUDIOS
->
FileHexEx
::
isAudio
else
->
FileHexEx
::
isImage
}
val
root
=
Environment
.
getExternalStorageDirectory
()
...
...
app/src/main/java/com/base/datarecovery/adapter/FileTimeColumnsAdapter.kt
View file @
d847feb0
...
...
@@ -12,6 +12,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.RecyclerView.ViewHolder
import
com.base.datarecovery.R
import
com.base.datarecovery.bean.ConstObject.SCAN_AUDIOS
import
com.base.datarecovery.bean.ConstObject.SCAN_DOCUMENTS
import
com.base.datarecovery.bean.FolderBean
import
com.base.datarecovery.bean.RecoveryBean
...
...
@@ -55,7 +56,7 @@ class FileTimeColumnsAdapter(
val
subAdapter
=
MediaColumnsAdapter
()
if
(
scanType
==
SCAN_DOCUMENTS
)
{
if
(
scanType
==
SCAN_DOCUMENTS
||
scanType
==
SCAN_AUDIOS
)
{
binding
.
rvMediaColumns
.
layoutManager
=
LinearLayoutManager
(
context
)
}
else
{
binding
.
rvMediaColumns
.
layoutManager
=
GridLayoutManager
(
context
,
columns
)
...
...
@@ -105,7 +106,7 @@ class FileTimeColumnsAdapter(
4
->
R
.
layout
.
item_media_columns4
else
->
R
.
layout
.
item_media_columns2
}
if
(
scanType
==
SCAN_DOCUMENTS
)
{
if
(
(
scanType
==
SCAN_DOCUMENTS
)
||
(
scanType
==
SCAN_AUDIOS
)
)
{
layout
=
R
.
layout
.
item_document
}
return
CS
(
layout
.
inflate
(
parent
))
...
...
@@ -123,7 +124,7 @@ class FileTimeColumnsAdapter(
val
context
=
holder
.
itemView
.
context
val
data
=
list
[
position
]
if
(
scanType
==
SCAN_DOCUMENTS
)
{
if
(
(
scanType
==
SCAN_DOCUMENTS
)
or
(
scanType
==
SCAN_AUDIOS
)
)
{
if
(
payloads
.
isEmpty
())
{
val
binding
=
ItemDocumentBinding
.
bind
(
holder
.
itemView
)
binding
.
ivSelector
.
isSelected
=
data
.
isSelect
...
...
app/src/main/java/com/base/datarecovery/ads/AdmobMaxHelper.kt
View file @
d847feb0
...
...
@@ -135,7 +135,7 @@ object AdmobMaxHelper {
AdMaxInit
.
maxInitAction
=
{
Log
.
d
(
TAG
,
"max init suc"
)
// AdMaxOpenUtils.loadAppOpenAd(activity)
AdMaxInterstitialUtils
.
loadInterstitialAd
(
activity
)
//
AdMaxInterstitialUtils.loadInterstitialAd(activity)
}
}
}
...
...
app/src/main/java/com/base/datarecovery/ads/max/AdMaxInterstitialUtils.kt
View file @
d847feb0
...
...
@@ -44,7 +44,9 @@ object AdMaxInterstitialUtils {
}
override
fun
onAdLoadFailed
(
p0
:
String
,
p1
:
MaxError
)
{
LogEx
.
logDebug
(
TAG
,
"onAdLoadFailed"
)
LogEx
.
logDebug
(
TAG
,
"广告拉取失败了,onAdLoadFailed:"
+
p0
)
LogEx
.
logDebug
(
TAG
,
"广告拉取失败了,onAdLoadFailed:"
+
p1
.
message
.
toString
())
LogEx
.
logDebug
(
TAG
,
"广告拉取失败了,onAdLoadFailed:"
+
p1
.
code
)
val
reqId
=
UUID
.
randomUUID
().
toString
()
AdMaxEvent
.
pullAd
(
null
,
"interAd"
,
reqId
=
reqId
,
error
=
p1
.
message
,
code
=
p1
.
code
)
AdDisplayUtils
.
getInstance
().
incrementAdRequestFailCount
()
...
...
app/src/main/java/com/base/datarecovery/bean/ConstObject.kt
View file @
d847feb0
...
...
@@ -34,6 +34,7 @@ object ConstObject {
const
val
SCAN_PHOTOS
=
1
const
val
SCAN_DOCUMENTS
=
2
const
val
SCAN_VIDEOS
=
3
const
val
SCAN_AUDIOS
=
4
const
val
SELECT_FILE_ALL
=
"All types"
const
val
SELECT_FILE_PICTURE
=
"Picture"
...
...
app/src/main/java/com/base/datarecovery/fragment/RecoveryFragment.kt
View file @
d847feb0
...
...
@@ -39,6 +39,11 @@ class RecoveryFragment : BaseFragment<FragmentRecoveryBinding>() {
putExtra
(
"ScanType"
,
ConstObject
.
SCAN_DOCUMENTS
)
})
}
binding
.
cardRyAudio
.
setOnClickListener
{
startActivity
(
Intent
(
requireContext
(),
FileScanResultActivity
::
class
.
java
).
apply
{
putExtra
(
"ScanType"
,
ConstObject
.
SCAN_AUDIOS
)
})
}
binding
.
cardPrivacySpace
.
setOnClickListener
{
if
(
ConstObject
.
privacyPinPassword
.
isNotEmpty
())
{
startActivity
(
Intent
(
requireContext
(),
PrivacyPinOneActivity
::
class
.
java
))
...
...
@@ -51,6 +56,7 @@ class RecoveryFragment : BaseFragment<FragmentRecoveryBinding>() {
binding
.
cardPhotosManager
.
setOnClickListener
{
startActivity
(
Intent
(
requireContext
(),
PhotoManagerAnimationActivity
::
class
.
java
))
}
}
override
fun
onResume
()
{
...
...
app/src/main/java/com/base/datarecovery/utils/FileHexEx.kt
View file @
d847feb0
...
...
@@ -126,5 +126,33 @@ object FileHexEx {
}
fun
isAudio
(
file
:
File
):
Boolean
{
return
isMp3
(
file
)
||
isFlac
(
file
)
||
isWav
(
file
)
}
fun
isMp3
(
file
:
File
):
Boolean
{
val
mp3Hex1
=
"49443303"
val
hex1
=
FileHelp
.
readFileRange
(
file
.
absolutePath
,
0
,
4
).
byteArrayToHexString
()
val
flag1
=
hex1
==
mp3Hex1
LogEx
.
logDebug
(
TAG
,
"flag1=$flag1 hex1=${hex1} ${file.absolutePath}"
)
return
flag1
}
fun
isFlac
(
file
:
File
):
Boolean
{
val
flacHex
=
"664C6143"
val
hex1
=
FileHelp
.
readFileRange
(
file
.
absolutePath
,
0
,
4
).
byteArrayToHexString
()
val
flag1
=
hex1
==
flacHex
LogEx
.
logDebug
(
TAG
,
"flag1=$flag1 hex1=${hex1} ${file.absolutePath}"
)
return
flag1
}
fun
isWav
(
file
:
File
):
Boolean
{
val
wavHex
=
"5249464668E7820957415645666D74"
val
hex1
=
FileHelp
.
readFileRange
(
file
.
absolutePath
,
0
,
15
).
byteArrayToHexString
()
val
flag1
=
hex1
==
wavHex
LogEx
.
logDebug
(
TAG
,
"flag1=$flag1 hex1=${hex1} ${file.absolutePath}"
)
return
flag1
}
}
\ 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