Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
H
HFile Manager Master
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
HFile Manager Master
Commits
4dcfc53e
Commit
4dcfc53e
authored
Mar 18, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:白包版本
parent
7887d484
Show whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
386 additions
and
295 deletions
+386
-295
deploymentTargetDropDown.xml
.idea/deploymentTargetDropDown.xml
+1
-1
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+23
-12
OverviewActivity.kt
...main/java/com/zxhy/hfilemanagermaster/OverviewActivity.kt
+0
-4
FileOperationDialog.kt
...com/zxhy/hfilemanagermaster/dialog/FileOperationDialog.kt
+3
-1
DupPictureActivity.kt
...m/zxhy/hfilemanagermaster/duplicate/DupPictureActivity.kt
+2
-4
EmptyFileActivity.kt
...om/zxhy/hfilemanagermaster/emptyfile/EmptyFileActivity.kt
+3
-4
FileBrowseActivity.kt
.../zxhy/hfilemanagermaster/filebrowse/FileBrowseActivity.kt
+2
-5
FilesFragment.kt
...n/java/com/zxhy/hfilemanagermaster/files/FilesFragment.kt
+8
-15
ImageActivity.kt
...n/java/com/zxhy/hfilemanagermaster/image/ImageActivity.kt
+4
-3
FileAdapter.kt
...om/zxhy/hfilemanagermaster/internalstorage/FileAdapter.kt
+23
-2
InternalStorageActivity.kt
...emanagermaster/internalstorage/InternalStorageActivity.kt
+99
-84
LargeFileFragment.kt
...om/zxhy/hfilemanagermaster/largefile/LargeFileFragment.kt
+5
-1
ManagerFragment.kt
...va/com/zxhy/hfilemanagermaster/manager/ManagerFragment.kt
+14
-7
MediaPermission.kt
...com/zxhy/hfilemanagermaster/permission/MediaPermission.kt
+3
-1
VideoActivity.kt
...n/java/com/zxhy/hfilemanagermaster/video/VideoActivity.kt
+4
-3
textcolor_selector.xml
app/src/main/res/drawable/textcolor_selector.xml
+2
-0
activity_empty_file.xml
app/src/main/res/layout/activity_empty_file.xml
+1
-0
activity_file_browse.xml
app/src/main/res/layout/activity_file_browse.xml
+3
-2
activity_image.xml
app/src/main/res/layout/activity_image.xml
+3
-2
activity_internal_storage.xml
app/src/main/res/layout/activity_internal_storage.xml
+1
-0
activity_large_file.xml
app/src/main/res/layout/activity_large_file.xml
+1
-0
activity_overview.xml
app/src/main/res/layout/activity_overview.xml
+57
-56
dialog_file_details.xml
app/src/main/res/layout/dialog_file_details.xml
+6
-3
fragment_files.xml
app/src/main/res/layout/fragment_files.xml
+3
-1
fragment_manager.xml
app/src/main/res/layout/fragment_manager.xml
+3
-1
item_image.xml
app/src/main/res/layout/item_image.xml
+1
-0
item_image_select.xml
app/src/main/res/layout/item_image_select.xml
+2
-2
item_media_select.xml
app/src/main/res/layout/item_media_select.xml
+0
-1
popupwindow_more_operation.xml
app/src/main/res/layout/popupwindow_more_operation.xml
+101
-78
dikaisd_8897920.png
app/src/main/res/mipmap-hdpi/dikaisd_8897920.png
+0
-0
dikaisd_8897920.png
app/src/main/res/mipmap-mdpi/dikaisd_8897920.png
+0
-0
dikaisd_8897920.png
app/src/main/res/mipmap-xhdpi/dikaisd_8897920.png
+0
-0
dikaisd_8897920.png
app/src/main/res/mipmap-xxhdpi/dikaisd_8897920.png
+0
-0
dikaisd_8897920.png
app/src/main/res/mipmap-xxxhdpi/dikaisd_8897920.png
+0
-0
dimens.xml
app/src/main/res/values/dimens.xml
+7
-0
strings.xml
app/src/main/res/values/strings.xml
+1
-2
No files found.
.idea/deploymentTargetDropDown.xml
View file @
4dcfc53e
...
...
@@ -15,7 +15,7 @@
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown
value=
"2024-03-18T0
5:10:08.056979
Z"
/>
<timeTargetWasSelectedWithDropDown
value=
"2024-03-18T0
9:51:39.340552400
Z"
/>
</State>
</entry>
</value>
...
...
app/src/main/AndroidManifest.xml
View file @
4dcfc53e
...
...
@@ -21,7 +21,7 @@
android:allowBackup=
"true"
android:dataExtractionRules=
"@xml/data_extraction_rules"
android:fullBackupContent=
"@xml/backup_rules"
android:icon=
"@mipmap/
ic_launcher
"
android:icon=
"@mipmap/
dikaisd_8897920
"
android:label=
"@string/app_name"
android:requestLegacyExternalStorage=
"true"
android:roundIcon=
"@mipmap/ic_launcher_round"
...
...
@@ -31,44 +31,55 @@
<activity
android:name=
"com.zxhy.hfilemanagermaster.image.ImageShowActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
/>
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.filebrowse.FileBrowseActivity"
android:exported=
"false"
/>
android:exported=
"false"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.internalstorage.InternalStorageActivity"
android:exported=
"false"
/>
android:exported=
"false"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.video.VideoActivity"
android:exported=
"false"
/>
android:exported=
"false"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.image.ImageActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
/>
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.duplicate.DupPictureActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
/>
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.emptyfile.EmptyFileActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
/>
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.largefile.LargeFileActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
/>
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.ToolsActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
/>
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.OverviewActivity"
android:exported=
"true"
android:launchMode=
"singleTop"
/>
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
/>
<activity
android:name=
"com.zxhy.hfilemanagermaster.HLaunchActivity"
android:exported=
"true"
>
android:exported=
"true"
android:screenOrientation=
"portrait"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/OverviewActivity.kt
View file @
4dcfc53e
...
...
@@ -26,10 +26,8 @@ class OverviewActivity : AppCompatActivity() {
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
enableEdgeToEdge
()
permissionLauncher
=
PermissionLauncher
(
this
)
intentLauncher
=
IntentLauncher
(
this
)
binding
=
ActivityOverviewBinding
.
inflate
(
layoutInflater
)
setContentView
(
binding
.
root
)
ViewCompat
.
setOnApplyWindowInsetsListener
(
findViewById
(
R
.
id
.
main
))
{
v
,
insets
->
...
...
@@ -41,8 +39,6 @@ class OverviewActivity : AppCompatActivity() {
window
.
statusBarColor
=
ContextCompat
.
getColor
(
this
,
R
.
color
.
color_B7FF03
)
binding
.
ivManager
.
isSelected
=
true
binding
.
flManager
.
setOnClickListener
{
binding
.
fragmentContainerView
.
findNavController
().
navigate
(
R
.
id
.
managerFragment
)
showManager
()
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/dialog/FileOperationDialog.kt
View file @
4dcfc53e
...
...
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import
android.content.Context
import
android.text.format.Formatter
import
android.view.LayoutInflater
import
android.view.ViewGroup
import
androidx.appcompat.app.AlertDialog
import
com.example.hfilemanagermaster.R
import
com.example.hfilemanagermaster.databinding.DialogFileDetailsBinding
...
...
@@ -59,7 +60,8 @@ fun Context.showFileDetailsDialog(
//修改dialog的尺寸
val
lp
=
dialog
.
window
?.
attributes
lp
?.
width
=
this
.
resources
.
getDimensionPixelOffset
(
R
.
dimen
.
dp_255
)
lp
?.
height
=
this
.
resources
.
getDimensionPixelOffset
(
R
.
dimen
.
dp_233
)
// lp?.height = this.resources.getDimensionPixelOffset(R.dimen.dp_233)
lp
?.
height
=
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
dialog
.
window
?.
attributes
=
lp
dialog
.
window
?.
setBackgroundDrawableResource
(
android
.
R
.
color
.
transparent
)
dialog
.
window
?.
setDimAmount
(
0f
)
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/duplicate/DupPictureActivity.kt
View file @
4dcfc53e
...
...
@@ -32,7 +32,6 @@ import java.io.File
class
DupPictureActivity
:
AppCompatActivity
()
{
private
lateinit
var
binding
:
ActivityDupPictureBinding
private
lateinit
var
adapter
:
DupImageAdapter
private
lateinit
var
dialog
:
Dialog
private
lateinit
var
intentLauncher
:
IntentLauncher
private
lateinit
var
permissionLauncher
:
PermissionLauncher
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
...
...
@@ -112,7 +111,6 @@ class DupPictureActivity : AppCompatActivity() {
binding
.
tvAll
.
visibility
=
View
.
VISIBLE
binding
.
tvDelete
.
visibility
=
View
.
VISIBLE
dialog
=
showLoadingDialog
()
loadData
()
}
...
...
@@ -134,13 +132,13 @@ class DupPictureActivity : AppCompatActivity() {
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
runOnUiThread
{
toast
(
"delete failed"
)
loadData
(
)
}
}
}.
start
()
private
fun
loadData
()
{
dialog
.
show
()
val
dialog
=
showLoadingDialog
()
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
val
list
=
dupImageStore
()
val
dupDataList
=
arrayListOf
<
DupImageData
>()
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/emptyfile/EmptyFileActivity.kt
View file @
4dcfc53e
...
...
@@ -37,7 +37,6 @@ class EmptyFileActivity : AppCompatActivity() {
private
lateinit
var
intentLauncher
:
IntentLauncher
private
lateinit
var
permissionLauncher
:
PermissionLauncher
private
lateinit
var
emptyFileAdapter
:
EmptyFileAdapter
private
lateinit
var
loadDialog
:
Dialog
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
enableEdgeToEdge
()
...
...
@@ -63,7 +62,7 @@ class EmptyFileActivity : AppCompatActivity() {
}
private
fun
loadEmptyFile
()
{
loadDialog
.
show
()
val
loadDialog
=
showLoadingDialog
()
emptyFile
(
this
,
onDoAction
=
{
list
->
...
...
@@ -123,7 +122,6 @@ class EmptyFileActivity : AppCompatActivity() {
}
}
loadDialog
=
showLoadingDialog
()
loadEmptyFile
()
}
...
...
@@ -144,7 +142,8 @@ class EmptyFileActivity : AppCompatActivity() {
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
runOnUiThread
{
toast
(
"delete failed"
)
loadEmptyFile
()
// toast("delete failed")
}
}
}.
start
()
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/filebrowse/FileBrowseActivity.kt
View file @
4dcfc53e
...
...
@@ -39,7 +39,6 @@ class FileBrowseActivity : AppCompatActivity() {
private
lateinit
var
binding
:
ActivityFileBrowseBinding
private
var
tittle
=
""
private
lateinit
var
fileSelectAdapter
:
FileSelectorAdapter
private
lateinit
var
loadDialog
:
Dialog
private
lateinit
var
intentLauncher
:
IntentLauncher
private
lateinit
var
permissionLauncher
:
PermissionLauncher
...
...
@@ -119,13 +118,11 @@ class FileBrowseActivity : AppCompatActivity() {
private
fun
fileMode
()
{
binding
.
clLock
.
visibility
=
View
.
GONE
binding
.
clShow
.
visibility
=
View
.
VISIBLE
loadDialog
=
showLoadingDialog
()
loadData
()
}
private
fun
loadData
()
{
val
loadDialog
=
showLoadingDialog
()
when
(
tittle
)
{
"Word"
->
wordFile
(
this
,
onDoAction
=
{
list
->
...
...
@@ -264,7 +261,7 @@ class FileBrowseActivity : AppCompatActivity() {
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
runOnUiThread
{
toast
(
"delete failed"
)
loadData
(
)
}
}
}.
start
()
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/files/FilesFragment.kt
View file @
4dcfc53e
...
...
@@ -11,15 +11,13 @@ import androidx.navigation.fragment.findNavController
import
com.example.hfilemanagermaster.R
import
com.example.hfilemanagermaster.databinding.FragmentFilesBinding
import
com.zxhy.hfilemanagermaster.OverviewActivity
import
com.zxhy.hfilemanagermaster.dialog.showLoadingDialog
import
com.zxhy.hfilemanagermaster.image.ImageShowActivity
import
com.zxhy.hfilemanagermaster.knife.recentPhoto
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.launch
/**
* A simple [Fragment] subclass.
* Use the [FilesFragment.newInstance] factory method to
* create an instance of this fragment.
*/
class
FilesFragment
:
Fragment
()
{
private
lateinit
var
binding
:
FragmentFilesBinding
...
...
@@ -29,7 +27,7 @@ class FilesFragment : Fragment() {
super
.
onCreate
(
savedInstanceState
)
arguments
?.
let
{
}
(
activity
as
OverviewActivity
).
setStatusBarColor
(
R
.
color
.
white
)
}
override
fun
onCreateView
(
...
...
@@ -53,6 +51,7 @@ class FilesFragment : Fragment() {
})
}
}
(
activity
as
OverviewActivity
).
setStatusBarColor
(
R
.
color
.
white
)
binding
.
ivImage
.
setOnClickListener
{
findNavController
().
navigate
(
R
.
id
.
imageActivity
)
...
...
@@ -84,26 +83,20 @@ class FilesFragment : Fragment() {
}
findNavController
().
navigate
(
R
.
id
.
fileBrowseActivity
,
bundle
)
}
loadData
()
}
override
fun
onResume
()
{
super
.
onResume
()
private
fun
loadData
()
{
val
dialog
=
requireContext
().
showLoadingDialog
()
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
val
list
=
requireContext
().
recentPhoto
()
launch
(
Dispatchers
.
Main
)
{
dialog
.
dismiss
()
binding
.
rv
.
adapter
=
imageAdapter
imageAdapter
.
setData
(
list
)
}
}
}
companion
object
{
@JvmStatic
fun
newInstance
()
=
FilesFragment
().
apply
{
arguments
=
Bundle
().
apply
{
}
}
}
}
\ No newline at end of file
app/src/main/java/com/zxhy/hfilemanagermaster/image/ImageActivity.kt
View file @
4dcfc53e
...
...
@@ -33,7 +33,6 @@ class ImageActivity : AppCompatActivity() {
private
lateinit
var
binding
:
ActivityImageBinding
private
lateinit
var
imageAdapter
:
ImageSelectAdapter2
private
lateinit
var
loadDialog
:
Dialog
private
lateinit
var
intentLauncher
:
IntentLauncher
private
lateinit
var
permissionLauncher
:
PermissionLauncher
...
...
@@ -112,11 +111,12 @@ class ImageActivity : AppCompatActivity() {
binding
.
clLock
.
visibility
=
View
.
GONE
binding
.
clShow
.
visibility
=
View
.
VISIBLE
loadDialog
=
showLoadingDialog
()
loadImageData
()
}
private
fun
loadImageData
()
{
val
loadDialog
=
showLoadingDialog
()
imageFile
(
this
,
onDoAction
=
{
list
->
runOnUiThread
{
...
...
@@ -147,7 +147,8 @@ class ImageActivity : AppCompatActivity() {
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
runOnUiThread
{
toast
(
"delete failed"
)
loadImageData
()
// toast("delete failed")
}
}
}.
start
()
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/internalstorage/FileAdapter.kt
View file @
4dcfc53e
...
...
@@ -40,6 +40,7 @@ class FileAdapter(
return
mediaList
.
size
}
@SuppressLint
(
"SetTextI18n"
)
override
fun
onBindViewHolder
(
holder
:
FileSelectViewHolder
,
position
:
Int
)
{
val
context
=
holder
.
binding
.
root
.
context
val
data
=
mediaList
[
position
]
...
...
@@ -73,7 +74,17 @@ class FileAdapter(
}
tvName
.
text
=
data
.
name
val
file
=
File
(
data
.
path
)
if
(
file
.
exists
())
{
if
(
file
.
isFile
)
{
tvSize
.
text
=
data
.
size
}
if
(
file
.
isDirectory
)
{
tvSize
.
text
=
"${file.list()?.size ?: 0} items"
}
}
else
{
tvSize
.
text
=
"0 items"
}
ivSelector
.
isSelected
=
data
.
select
flSelector
.
setOnClickListener
{
data
.
select
=
!
data
.
select
...
...
@@ -130,7 +141,17 @@ class FileAdapter(
iv
.
setImageResource
(
R
.
drawable
.
icon_file_unknown
)
}
tvName
.
text
=
data
.
name
val
file
=
File
(
data
.
path
)
if
(
file
.
exists
())
{
if
(
file
.
isFile
)
{
tvSize
.
text
=
data
.
size
}
if
(
file
.
isDirectory
)
{
tvSize
.
text
=
"${file.list()?.size ?: 0} items"
}
}
else
{
tvSize
.
text
=
"0 items"
}
ivSelector
.
isSelected
=
data
.
select
flSelector
.
setOnClickListener
{
data
.
select
=
!
data
.
select
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/internalstorage/InternalStorageActivity.kt
View file @
4dcfc53e
...
...
@@ -55,7 +55,6 @@ class InternalStorageActivity : AppCompatActivity() {
private
val
selectedOperationMode
=
2
private
val
lockMode
=
-
1
private
var
currentMode
=
lockMode
//0普通浏览模式 1可选模式 2选中操作模式 -1无权限锁功能模式
private
var
popupWindow
:
PopupWindow
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
...
...
@@ -233,6 +232,7 @@ class InternalStorageActivity : AppCompatActivity() {
}
}
binding
.
ivMore
.
setOnClickListener
{
if
(
fileAdapter
.
getSelectSize
()
==
0
)
return
@setOnClickListener
showPopupMoreOperation
()
}
}
...
...
@@ -349,31 +349,41 @@ class InternalStorageActivity : AppCompatActivity() {
@SuppressLint
(
"ClickableViewAccessibility"
,
"InflateParams"
)
private
fun
showPopupMoreOperation
()
{
va
l
yOff
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_180
)
if
(
popupWindow
==
null
)
{
va
r
yOff
=
0
var
height
=
0
val
size
=
fileAdapter
.
getSelectFile
().
size
val
popupWindowView
=
layoutInflater
.
inflate
(
R
.
layout
.
popupwindow_more_operation
,
null
)
val
popupBinding
=
PopupwindowMoreOperationBinding
.
bind
(
popupWindowView
)
if
(
size
==
1
)
{
yOff
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_160
)
height
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_118
)
}
else
{
popupBinding
.
llRename
.
visibility
=
View
.
GONE
popupBinding
.
llDetails
.
visibility
=
View
.
GONE
yOff
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_90
)
height
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_46
)
}
val
width
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_150
)
val
height
=
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_125
)
popupWindow
=
PopupWindow
(
popupWindowView
,
width
,
height
,
true
)
popupWindow
?.
setBackgroundDrawable
(
ColorDrawable
(
Color
.
TRANSPARENT
))
popupWindow
?.
isOutsideTouchable
=
true
popupWindow
?.
isTouchable
=
true
popupWindow
?.
showAsDropDown
(
binding
.
ivPlaceholder
,
0
,
-
yOff
)
resources
.
getDimensionPixelSize
(
R
.
dimen
.
dp_118
)
val
popupWindow
=
PopupWindow
(
popupWindowView
,
width
,
height
,
true
)
popupWindow
.
setBackgroundDrawable
(
ColorDrawable
(
Color
.
TRANSPARENT
))
popupWindow
.
isOutsideTouchable
=
true
popupWindow
.
isTouchable
=
true
popupBinding
.
apply
{
tv
Rename
.
setOnTouchListener
{
_
,
event
->
ll
Rename
.
setOnTouchListener
{
_
,
event
->
when
(
event
.
action
)
{
MotionEvent
.
ACTION_DOWN
->
{
popupBinding
.
ivRename
.
isSelected
=
true
popupBinding
.
tvRename
.
isSelected
=
true
}
MotionEvent
.
ACTION_UP
->
{
popupBinding
.
ivRename
.
isSelected
=
false
popupBinding
.
tvRename
.
isSelected
=
false
}
else
->
{}
...
...
@@ -384,20 +394,22 @@ class InternalStorageActivity : AppCompatActivity() {
val
list
=
fileAdapter
.
getSelectFile
()
if
(
list
.
size
==
1
)
{
val
file
=
File
(
list
.
first
().
path
)
popupWindow
?
.
dismiss
()
popupWindow
.
dismiss
()
renameFile
(
file
)
}
else
{
toast
(
"Please select only one file!"
)
}
}
tv
Delete
.
setOnTouchListener
{
_
,
event
->
ll
Delete
.
setOnTouchListener
{
_
,
event
->
when
(
event
.
action
)
{
MotionEvent
.
ACTION_DOWN
->
{
popupBinding
.
ivDelete
.
isSelected
=
true
popupBinding
.
tvDelete
.
isSelected
=
true
}
MotionEvent
.
ACTION_UP
->
{
popupBinding
.
ivDelete
.
isSelected
=
false
popupBinding
.
tvDelete
.
isSelected
=
false
}
else
->
{}
...
...
@@ -407,17 +419,19 @@ class InternalStorageActivity : AppCompatActivity() {
tvDelete
.
setOnClickListener
{
val
list
=
fileAdapter
.
getSelectFile
()
if
(
list
.
isEmpty
())
return
@setOnClickListener
popupWindow
?
.
dismiss
()
popupWindow
.
dismiss
()
deleteFiles
(
list
)
}
tv
Details
.
setOnTouchListener
{
_
,
event
->
ll
Details
.
setOnTouchListener
{
_
,
event
->
when
(
event
.
action
)
{
MotionEvent
.
ACTION_DOWN
->
{
popupBinding
.
ivDetails
.
isSelected
=
true
popupBinding
.
tvDetails
.
isSelected
=
true
}
MotionEvent
.
ACTION_UP
->
{
popupBinding
.
ivDetails
.
isSelected
=
false
popupBinding
.
tvDetails
.
isSelected
=
false
}
else
->
{}
...
...
@@ -431,7 +445,7 @@ class InternalStorageActivity : AppCompatActivity() {
val
data
=
list
.
first
()
val
file
=
File
(
data
.
path
)
if
(
file
.
exists
())
{
popupWindow
?
.
dismiss
()
popupWindow
.
dismiss
()
showFileDetailsDialog
(
"File details"
,
file
,
cancelAction
=
{
fileAdapter
.
notifyItemIndex
(
data
)
...
...
@@ -443,9 +457,9 @@ class InternalStorageActivity : AppCompatActivity() {
toast
(
"Please select only one file!"
)
}
}
}
}
else
{
popupWindow
?.
showAsDropDown
(
binding
.
ivPlaceholder
,
0
,
-
yOff
)
popupWindow
.
showAsDropDown
(
binding
.
ivPlaceholder
,
0
,
-
yOff
)
}
}
...
...
@@ -486,7 +500,8 @@ class InternalStorageActivity : AppCompatActivity() {
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
runOnUiThread
{
toast
(
"delete failed"
)
loadFile
()
// toast("delete failed")
}
}
}.
start
()
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/largefile/LargeFileFragment.kt
View file @
4dcfc53e
...
...
@@ -20,7 +20,6 @@ class LargeFileFragment : Fragment() {
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
(
activity
as
OverviewActivity
).
setStatusBarColor
(
R
.
color
.
color_C2F300
)
}
override
fun
onCreateView
(
...
...
@@ -32,6 +31,11 @@ class LargeFileFragment : Fragment() {
return
view
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
super
.
onViewCreated
(
view
,
savedInstanceState
)
(
activity
as
OverviewActivity
).
setStatusBarColor
(
R
.
color
.
color_C2F300
)
}
companion
object
{
@JvmStatic
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/manager/ManagerFragment.kt
View file @
4dcfc53e
...
...
@@ -14,6 +14,7 @@ import com.zxhy.hfilemanagermaster.knife.getMountInfoList
import
com.zxhy.hfilemanagermaster.permission.IntentLauncher
import
com.zxhy.hfilemanagermaster.permission.PermissionLauncher
import
com.zxhy.hfilemanagermaster.permission.requestStoreFollow
import
com.zxhy.hfilemanagermaster.permission.storePermissionCheck
import
java.math.BigDecimal
/**
...
...
@@ -95,6 +96,9 @@ class ManagerFragment : Fragment() {
findNavController
().
navigate
(
R
.
id
.
internalStorageActivity
)
}
if
(
requireContext
().
storePermissionCheck
())
{
}
else
{
requireContext
().
requestStoreFollow
(
(
requireActivity
()
as
OverviewActivity
).
permissionLauncher
,
(
requireActivity
()
as
OverviewActivity
).
intentLauncher
,
...
...
@@ -105,6 +109,9 @@ class ManagerFragment : Fragment() {
}
}
companion
object
{
@JvmStatic
fun
newInstance
()
=
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/permission/MediaPermission.kt
View file @
4dcfc53e
...
...
@@ -77,12 +77,14 @@ fun Context.storePermissionCheck(): Boolean {
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
TIRAMISU
)
{
//Android 13以后
return
Environment
.
isExternalStorageManager
()
}
else
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
R
)
{
//Android 11以后
return
Environment
.
isExternalStorageManager
()
&&
arrayOf
(
val
flag1
=
Environment
.
isExternalStorageManager
()
val
flag2
=
arrayOf
(
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
).
all
{
ContextCompat
.
checkSelfPermission
(
this
,
it
)
==
PackageManager
.
PERMISSION_GRANTED
}
return
flag1
or
flag2
}
else
{
//Android 11以下,Android 6以上
return
arrayOf
(
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
...
...
app/src/main/java/com/zxhy/hfilemanagermaster/video/VideoActivity.kt
View file @
4dcfc53e
...
...
@@ -32,7 +32,6 @@ class VideoActivity : AppCompatActivity() {
private
lateinit
var
binding
:
ActivityVideoBinding
private
lateinit
var
videoAdapter
:
VideoSelectAdapter
private
lateinit
var
loadDialog
:
Dialog
private
lateinit
var
intentLauncher
:
IntentLauncher
private
lateinit
var
permissionLauncher
:
PermissionLauncher
...
...
@@ -108,7 +107,6 @@ class VideoActivity : AppCompatActivity() {
binding
.
clLock
.
visibility
=
View
.
GONE
binding
.
clShow
.
visibility
=
View
.
VISIBLE
loadDialog
=
showLoadingDialog
()
loadVideoData
()
}
...
...
@@ -129,12 +127,15 @@ class VideoActivity : AppCompatActivity() {
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
runOnUiThread
{
toast
(
"delete failed"
)
loadVideoData
()
// toast("delete failed")
}
}
}.
start
()
private
fun
loadVideoData
()
{
val
loadDialog
=
showLoadingDialog
()
videoFile
(
this
,
onDoAction
=
{
list
->
runOnUiThread
{
...
...
app/src/main/res/drawable/textcolor_selector.xml
View file @
4dcfc53e
...
...
@@ -3,8 +3,10 @@
<item
android:color=
"#333333"
android:state_focused=
"true"
/>
<item
android:color=
"#333333"
android:state_pressed=
"true"
/>
<item
android:color=
"#333333"
android:state_selected=
"true"
/>
<item
android:color=
"#999999"
android:state_focused=
"false"
/>
<item
android:color=
"#999999"
android:state_pressed=
"false"
/>
<item
android:color=
"#999999"
android:state_selected=
"false"
/>
</selector>
\ No newline at end of file
app/src/main/res/layout/activity_empty_file.xml
View file @
4dcfc53e
...
...
@@ -75,6 +75,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:layout_width=
"0dp"
android:overScrollMode=
"never"
android:layout_height=
"0dp"
android:layout_marginHorizontal=
"20dp"
android:layout_marginVertical=
"16dp"
...
...
app/src/main/res/layout/activity_file_browse.xml
View file @
4dcfc53e
...
...
@@ -60,7 +60,7 @@
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintRight_toLeftOf=
"@id/tv_all"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"RtlHardcoded"
/>
tools:ignore=
"
ContentDescription,
RtlHardcoded"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
...
...
@@ -77,8 +77,9 @@
android:id=
"@+id/rv"
android:layout_width=
"0dp"
android:layout_height=
"0dp"
android:layout_marginHorizontal=
"
20
dp"
android:layout_marginHorizontal=
"
12
dp"
android:layout_marginVertical=
"16dp"
android:overScrollMode=
"never"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toTopOf=
"@id/tv_delete"
app:layout_constraintLeft_toLeftOf=
"parent"
...
...
app/src/main/res/layout/activity_image.xml
View file @
4dcfc53e
...
...
@@ -73,10 +73,11 @@
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:layout_width=
"
0dp
"
android:layout_width=
"
wrap_content
"
android:layout_height=
"0dp"
android:layout_marginHorizontal=
"20dp"
android:layout_marginVertical=
"16dp"
android:overScrollMode=
"never"
android:paddingHorizontal=
"6dp"
app:layout_constraintBottom_toTopOf=
"@id/tv_delete"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
...
...
app/src/main/res/layout/activity_internal_storage.xml
View file @
4dcfc53e
...
...
@@ -160,6 +160,7 @@
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:layout_width=
"match_parent"
android:overScrollMode=
"never"
android:layout_height=
"0dp"
android:layout_marginBottom=
"12dp"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
...
...
app/src/main/res/layout/activity_large_file.xml
View file @
4dcfc53e
...
...
@@ -125,6 +125,7 @@
android:layout_marginHorizontal=
"0dp"
android:layout_marginTop=
"8dp"
android:layout_marginBottom=
"8dp"
android:overScrollMode=
"never"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toTopOf=
"@id/tv_delete"
app:layout_constraintLeft_toLeftOf=
"parent"
...
...
app/src/main/res/layout/activity_overview.xml
View file @
4dcfc53e
...
...
@@ -17,70 +17,71 @@
app:layout_constraintTop_toTopOf=
"parent"
app:navGraph=
"@navigation/nav"
/>
<FrameLayout
android:id=
"@+id/fl_manager"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"50dp"
android:layout_marginBottom=
"25dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toLeftOf=
"@id/fl_tools"
>
<ImageView
android:id=
"@+id/iv_manager"
android:layout_width=
"24dp"
android:layout_height=
"24dp"
android:layout_marginStart=
"100dp
"
android:layout_marginBottom=
"55
dp"
android:layout_gravity=
"center_horizontal
"
android:layout_marginTop=
"12
dp"
android:importantForAccessibility=
"no"
android:src=
"@drawable/manager_selector"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
/>
<FrameLayout
android:id=
"@+id/fl_manager"
android:layout_width=
"84dp"
android:layout_height=
"48dp"
app:layout_constraintBottom_toBottomOf=
"@id/iv_manager"
app:layout_constraintLeft_toLeftOf=
"@id/iv_manager"
app:layout_constraintRight_toRightOf=
"@id/iv_manager"
app:layout_constraintTop_toTopOf=
"@id/iv_manager"
/>
android:src=
"@drawable/manager_selector"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"4dp"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"48dp"
android:text=
"Manager"
android:textAllCaps=
"false"
android:textColor=
"#333333"
android:textSize=
"10sp"
app:layout_constraintLeft_toLeftOf=
"@id/iv_manager"
app:layout_constraintRight_toRightOf=
"@id/iv_manager"
app:layout_constraintTop_toBottomOf=
"@id/iv_manager"
tools:ignore=
"HardcodedText,SmallSp"
/>
</FrameLayout>
<FrameLayout
android:id=
"@+id/fl_tools"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"50dp"
android:layout_marginBottom=
"25dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toRightOf=
"@id/fl_manager"
app:layout_constraintRight_toRightOf=
"parent"
>
<ImageView
android:id=
"@+id/iv_tools"
android:layout_width=
"24dp"
android:layout_height=
"24dp"
android:layout_marginEnd=
"100dp
"
android:layout_marginBottom=
"55
dp"
android:layout_gravity=
"center_horizontal
"
android:layout_marginTop=
"12
dp"
android:importantForAccessibility=
"no"
android:src=
"@drawable/tools_selector"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
/>
<FrameLayout
android:id=
"@+id/fl_tools"
android:layout_width=
"84dp"
android:layout_height=
"48dp"
app:layout_constraintBottom_toBottomOf=
"@id/iv_tools"
app:layout_constraintLeft_toLeftOf=
"@id/iv_tools"
app:layout_constraintRight_toRightOf=
"@id/iv_tools"
app:layout_constraintTop_toTopOf=
"@id/iv_tools"
/>
android:src=
"@drawable/tools_selector"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"4dp"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"48dp"
android:text=
"Tools"
android:textAllCaps=
"false"
android:textColor=
"#333333"
android:textSize=
"10sp"
app:layout_constraintLeft_toLeftOf=
"@id/iv_tools"
app:layout_constraintRight_toRightOf=
"@id/iv_tools"
app:layout_constraintTop_toBottomOf=
"@id/iv_tools"
tools:ignore=
"HardcodedText,SmallSp"
/>
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/dialog_file_details.xml
View file @
4dcfc53e
...
...
@@ -8,7 +8,7 @@
<androidx.cardview.widget.CardView
android:layout_width=
"250dp"
android:layout_height=
"
228dp
"
android:layout_height=
"
wrap_content
"
android:layout_margin=
"5dp"
app:cardBackgroundColor=
"#FF1A1A1A"
app:cardCornerRadius=
"16dp"
...
...
@@ -94,13 +94,15 @@
<TextView
android:id=
"@+id/tv_position"
android:layout_width=
"
wrap_content
"
android:layout_width=
"
0dp
"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"8dp"
android:layout_marginRight=
"20dp"
android:text=
"Position:"
android:textColor=
"#FFFFFFFF"
android:textSize=
"14sp"
app:layout_constraintLeft_toLeftOf=
"@id/iv_file"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_time"
tools:ignore=
"HardcodedText"
/>
...
...
@@ -108,7 +110,7 @@
android:id=
"@+id/tv_cancel"
android:layout_width=
"210dp"
android:layout_height=
"40dp"
android:layout_margin
Bottom
=
"8dp"
android:layout_margin
Vertical
=
"8dp"
android:background=
"@mipmap/ds_0230"
android:gravity=
"center"
android:text=
"Sure"
...
...
@@ -117,6 +119,7 @@
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_position"
tools:ignore=
"HardcodedText"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
...
...
app/src/main/res/layout/fragment_files.xml
View file @
4dcfc53e
...
...
@@ -3,6 +3,7 @@
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/white"
tools:context=
"com.zxhy.hfilemanagermaster.files.FilesFragment"
>
...
...
@@ -194,10 +195,11 @@
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:
layout_marginHorizontal=
"6dp
"
android:
overScrollMode=
"never
"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center_vertical"
android:layout_marginHorizontal=
"6dp"
android:orientation=
"horizontal"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_image"
/>
...
...
app/src/main/res/layout/fragment_manager.xml
View file @
4dcfc53e
...
...
@@ -231,6 +231,7 @@
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"12dp"
app:cardCornerRadius=
"8dp"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_document"
>
...
...
@@ -250,7 +251,8 @@
app:layout_constraintHorizontal_chainStyle=
"spread_inside"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintRight_toLeftOf=
"@id/ll_word"
app:layout_constraintTop_toTopOf=
"parent"
>
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"UseCompoundDrawables"
>
<TextView
android:layout_width=
"wrap_content"
...
...
app/src/main/res/layout/item_image.xml
View file @
4dcfc53e
...
...
@@ -12,6 +12,7 @@
android:id=
"@+id/iv"
android:layout_width=
"80dp"
android:layout_height=
"80dp"
android:scaleType=
"centerCrop"
tools:ignore=
"ContentDescription"
/>
</androidx.cardview.widget.CardView>
\ No newline at end of file
app/src/main/res/layout/item_image_select.xml
View file @
4dcfc53e
...
...
@@ -3,8 +3,8 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"100dp"
android:layout_margin=
"12dp"
android:layout_height=
"100dp"
android:layout_margin=
"6dp"
app:cardCornerRadius=
"8dp"
>
<androidx.constraintlayout.widget.ConstraintLayout
...
...
@@ -18,12 +18,12 @@
tools:ignore=
"ContentDescription"
/>
<ImageView
android:src=
"@drawable/bg_circle_selector_c2f300"
android:id=
"@+id/iv_selector"
android:layout_width=
"24dp"
android:layout_height=
"24dp"
android:layout_marginHorizontal=
"2dp"
android:layout_marginVertical=
"2dp"
android:src=
"@drawable/bg_circle_selector_c2f300"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintRight_toRightOf=
"parent"
tools:ignore=
"ContentDescription"
/>
...
...
app/src/main/res/layout/item_media_select.xml
View file @
4dcfc53e
...
...
@@ -11,7 +11,6 @@
android:id=
"@+id/iv"
android:layout_width=
"40dp"
android:layout_height=
"40dp"
android:layout_marginLeft=
"8dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
...
...
app/src/main/res/layout/popupwindow_more_operation.xml
View file @
4dcfc53e
...
...
@@ -8,7 +8,7 @@
<androidx.cardview.widget.CardView
android:layout_width=
"106dp"
android:layout_height=
"
122dp
"
android:layout_height=
"
wrap_content
"
app:cardCornerRadius=
"4dp"
app:cardElevation=
"5dp"
app:layout_constraintBottom_toBottomOf=
"parent"
...
...
@@ -18,91 +18,114 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
android:layout_height=
"wrap_content"
>
<LinearLayout
android:id=
"@+id/ll_rename"
android:layout_width=
"match_parent"
android:layout_height=
"36dp"
android:orientation=
"horizontal"
app:layout_constraintBottom_toTopOf=
"@id/ll_delete"
app:layout_constraintTop_toTopOf=
"parent"
>
<TextView
android:id=
"@+id/tv_rename"
android:layout_width=
"wrap_content
"
android:layout_width=
"0dp
"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"12dp"
android:layout_gravity=
"center_vertical"
android:layout_weight=
"1"
android:background=
"@null"
android:clickable=
"true"
android:focusable=
"true"
android:paddingLeft=
"12dp"
android:text=
"Rename"
android:textColor=
"@drawable/textcolor_selector"
android:textSize=
"16sp"
app:layout_constraintBottom_toTopOf=
"@id/tv_delete"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"HardcodedText,RtlHardcoded"
/>
tools:ignore=
"HardcodedText,RtlHardcoded,RtlSymmetry"
/>
<ImageView
android:id=
"@+id/iv_rename"
android:layout_width=
"24dp"
android:layout_height=
"24dp"
android:layout_gravity=
"center_vertical"
android:layout_marginRight=
"3dp"
android:clickable=
"true"
android:focusable=
"true"
android:src=
"@drawable/bg_circle_selector_press_c2f300"
app:layout_constraintBottom_toBottomOf=
"@id/tv_rename"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/tv_rename"
android:visibility=
"gone"
tools:ignore=
"ContentDescription,RtlHardcoded"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/ll_delete"
android:layout_width=
"match_parent"
android:layout_height=
"36dp"
android:orientation=
"horizontal"
app:layout_constraintBottom_toTopOf=
"@id/ll_Details"
app:layout_constraintTop_toBottomOf=
"@id/ll_rename"
>
<TextView
android:id=
"@+id/tv_delete"
android:layout_width=
"wrap_content
"
android:layout_width=
"0dp
"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_weight=
"1"
android:clickable=
"true"
android:focusable=
"true"
android:paddingStart=
"12dp"
android:text=
"Delete"
android:textColor=
"@drawable/textcolor_selector"
android:textSize=
"16sp"
app:layout_constraintBottom_toTopOf=
"@id/tv_Details"
app:layout_constraintLeft_toLeftOf=
"@id/tv_rename"
app:layout_constraintTop_toBottomOf=
"@id/tv_rename"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:id=
"@+id/iv_delete"
android:layout_width=
"24dp"
android:layout_height=
"24dp"
android:layout_gravity=
"center_vertical"
android:layout_marginRight=
"3dp"
android:clickable=
"true"
android:focusable=
"true"
android:src=
"@drawable/bg_circle_selector_press_c2f300"
app:layout_constraintBottom_toBottomOf=
"@id/tv_delete"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/tv_delete"
android:visibility=
"gone"
tools:ignore=
"ContentDescription,RtlHardcoded"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/ll_Details"
android:layout_width=
"match_parent"
android:layout_height=
"36dp"
android:orientation=
"horizontal"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/ll_delete"
>
<TextView
android:id=
"@+id/tv_Details"
android:layout_width=
"wrap_content
"
android:layout_width=
"0dp
"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_weight=
"1"
android:clickable=
"true"
android:focusable=
"true"
android:paddingStart=
"12dp"
android:text=
"Details"
android:textColor=
"@drawable/textcolor_selector"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"@id/tv_rename"
app:layout_constraintTop_toBottomOf=
"@id/tv_delete"
tools:ignore=
"HardcodedText"
/>
tools:ignore=
"HardcodedText,RtlSymmetry"
/>
<ImageView
android:id=
"@+id/iv_details"
android:layout_width=
"24dp"
android:layout_height=
"24dp"
android:layout_gravity=
"center_vertical"
android:layout_marginRight=
"3dp"
android:clickable=
"true"
android:focusable=
"true"
android:src=
"@drawable/bg_circle_selector_press_c2f300"
app:layout_constraintBottom_toBottomOf=
"@id/tv_Details"
app:layout_constraintRight_toRightOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/tv_Details"
android:visibility=
"gone"
tools:ignore=
"ContentDescription,RtlHardcoded"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
...
...
app/src/main/res/mipmap-hdpi/dikaisd_8897920.png
0 → 100644
View file @
4dcfc53e
7.8 KB
app/src/main/res/mipmap-mdpi/dikaisd_8897920.png
0 → 100644
View file @
4dcfc53e
3.82 KB
app/src/main/res/mipmap-xhdpi/dikaisd_8897920.png
0 → 100644
View file @
4dcfc53e
8.74 KB
app/src/main/res/mipmap-xxhdpi/dikaisd_8897920.png
0 → 100644
View file @
4dcfc53e
21.2 KB
app/src/main/res/mipmap-xxxhdpi/dikaisd_8897920.png
0 → 100644
View file @
4dcfc53e
25.3 KB
app/src/main/res/values/dimens.xml
View file @
4dcfc53e
...
...
@@ -6,8 +6,10 @@
<dimen
name=
"dp_120"
>
120dp
</dimen>
<dimen
name=
"dp_122"
>
122dp
</dimen>
<dimen
name=
"dp_125"
>
125dp
</dimen>
<dimen
name=
"dp_82"
>
82dp
</dimen>
<dimen
name=
"dp_140"
>
140dp
</dimen>
<dimen
name=
"dp_180"
>
180dp
</dimen>
<dimen
name=
"dp_118"
>
118dp
</dimen>
<dimen
name=
"dp_12"
>
12dp
</dimen>
<dimen
name=
"dp_15"
>
15dp
</dimen>
<dimen
name=
"dp_18"
>
18dp
</dimen>
...
...
@@ -20,4 +22,9 @@
<dimen
name=
"dp_255"
>
255dp
</dimen>
<dimen
name=
"dp_177"
>
177dp
</dimen>
<dimen
name=
"dp_233"
>
233dp
</dimen>
<dimen
name=
"dp_46"
>
46dp
</dimen>
<dimen
name=
"dp_60"
>
60dp
</dimen>
<dimen
name=
"dp_80"
>
80dp
</dimen>
<dimen
name=
"dp_90"
>
90dp
</dimen>
<dimen
name=
"dp_160"
>
160dp
</dimen>
</resources>
\ No newline at end of file
app/src/main/res/values/strings.xml
View file @
4dcfc53e
<resources>
<string
name=
"app_name"
>
HFileManagerMaster
</string>
<!-- TODO: Remove or change this placeholder text -->
<string
name=
"app_name"
>
Manager Master
</string>
<string
name=
"hello_blank_fragment"
>
Hello blank fragment
</string>
</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