Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
B
Browser 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
Browser White
Commits
dbb57029
Commit
dbb57029
authored
Aug 09, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
fc626689
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
143 additions
and
17 deletions
+143
-17
MediaBrowserActivity.kt
...serwhite/ui/activity/mediabrowser/MediaBrowserActivity.kt
+10
-2
MediaImageDetailActivity.kt
...hite/ui/activity/mediabrowser/MediaImageDetailActivity.kt
+39
-0
MediaVideoDetailActivity.kt
...hite/ui/activity/mediabrowser/MediaVideoDetailActivity.kt
+19
-1
FileFragment.kt
...in/java/com/base/browserwhite/ui/fragment/FileFragment.kt
+2
-14
IntentEx.kt
app/src/main/java/com/base/browserwhite/utils/IntentEx.kt
+27
-0
activity_media_image_detail.xml
app/src/main/res/layout/activity_media_image_detail.xml
+46
-0
No files found.
app/src/main/java/com/base/browserwhite/ui/activity/mediabrowser/MediaBrowserActivity.kt
View file @
dbb57029
...
...
@@ -47,11 +47,15 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
"Picture"
,
"Video"
->
{
adapter
=
MediaAdapter
(
1
,
clickAction
=
{
bean
->
if
(
tittle
==
"Picture"
)
{
startActivity
(
Intent
(
this
,
MediaImageDetailActivity
::
class
.
java
))
startActivity
(
Intent
(
this
,
MediaImageDetailActivity
::
class
.
java
).
apply
{
putExtra
(
"path"
,
bean
.
path
)
})
}
else
{
LogEx
.
logDebug
(
TAG
,
"uri=${bean.uri}"
)
val
videoIntent
=
Intent
(
this
,
MediaVideoDetailActivity
::
class
.
java
)
videoIntent
.
putExtra
(
"uri"
,
bean
.
uri
.
toString
())
videoIntent
.
putExtra
(
"path"
,
bean
.
path
)
videoIntent
.
putExtra
(
"mimeType"
,
bean
.
mimeType
)
startActivity
(
videoIntent
)
}
})
...
...
@@ -75,7 +79,6 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
binding
.
rv
.
adapter
=
adapter
initData
()
}
override
fun
initListener
()
{
...
...
@@ -88,6 +91,11 @@ class MediaBrowserActivity : BaseActivity<ActivityMediaBrowserBinding>() {
}
}
override
fun
onResume
()
{
super
.
onResume
()
initData
()
}
private
fun
initData
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
val
mediaList
=
when
(
tittle
)
{
"Picture"
->
getMediaPhoto
()
...
...
app/src/main/java/com/base/browserwhite/ui/activity/mediabrowser/MediaImageDetailActivity.kt
View file @
dbb57029
package
com.base.browserwhite.ui.activity.mediabrowser
import
android.graphics.Color
import
android.net.Uri
import
androidx.core.view.updatePadding
import
com.base.browserwhite.databinding.ActivityMediaImageDetailBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.IntentEx.shareAction
import
com.base.browserwhite.utils.LogEx
import
com.bumptech.glide.Glide
import
java.io.File
class
MediaImageDetailActivity
:
BaseActivity
<
ActivityMediaImageDetailBinding
>()
{
private
val
TAG
=
"MediaImageDetailActivity"
override
val
binding
:
ActivityMediaImageDetailBinding
by
lazy
{
ActivityMediaImageDetailBinding
.
inflate
(
layoutInflater
)
}
private
var
uri
:
String
=
""
override
fun
initView
()
{
BarUtils
.
setStatusBarLightMode
(
this
,
true
)
BarUtils
.
setStatusBarColor
(
this
,
Color
.
WHITE
)
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
uri
=
intent
.
extras
?.
getString
(
"uri"
)
?:
""
LogEx
.
logDebug
(
TAG
,
"uri=$uri"
)
val
path
=
intent
.
extras
?.
getString
(
"path"
)
?:
""
Glide
.
with
(
this
).
load
(
path
).
fitCenter
().
into
(
binding
.
iv
)
}
override
fun
initListener
()
{
super
.
initListener
()
binding
.
ivDelete
.
setOnClickListener
{
showDeleteTipDialog
{
val
path
=
intent
.
extras
?.
getString
(
"path"
)
?:
""
val
file
=
File
(
path
)
runCatching
{
file
.
delete
()
}
finish
()
}
}
binding
.
ivShare
.
setOnClickListener
{
this
.
shareAction
(
Uri
.
parse
(
uri
),
intent
.
extras
?.
getString
(
"mimeType"
)
?:
""
)
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/mediabrowser/MediaVideoDetailActivity.kt
View file @
dbb57029
package
com.base.browserwhite.ui.activity.mediabrowser
import
android.graphics.Color
import
android.net.Uri
import
android.widget.SeekBar
import
android.widget.SeekBar.OnSeekBarChangeListener
import
androidx.activity.addCallback
...
...
@@ -11,13 +12,16 @@ import androidx.media3.common.Player
import
androidx.media3.exoplayer.ExoPlayer
import
com.base.browserwhite.databinding.ActivityMediaVideoDetailBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.IntentEx.shareAction
import
com.base.browserwhite.utils.LogEx
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Job
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.isActive
import
kotlinx.coroutines.launch
import
java.io.File
class
MediaVideoDetailActivity
:
BaseActivity
<
ActivityMediaVideoDetailBinding
>()
{
private
val
TAG
=
"MediaVideoDetailActivity"
...
...
@@ -28,13 +32,14 @@ class MediaVideoDetailActivity : BaseActivity<ActivityMediaVideoDetailBinding>()
private
lateinit
var
player
:
ExoPlayer
private
var
job
:
Job
?
=
null
private
var
playEnd
:
Boolean
=
false
private
var
uri
:
String
=
""
override
fun
initView
()
{
BarUtils
.
setStatusBarLightMode
(
this
,
true
)
BarUtils
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
)
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
val
uri
=
intent
.
extras
?.
getString
(
"uri"
)
?:
""
uri
=
intent
.
extras
?.
getString
(
"uri"
)
?:
""
LogEx
.
logDebug
(
TAG
,
"uri=$uri"
)
player
=
ExoPlayer
.
Builder
(
this
).
build
()
...
...
@@ -133,6 +138,19 @@ class MediaVideoDetailActivity : BaseActivity<ActivityMediaVideoDetailBinding>()
}
})
binding
.
ivDelete
.
setOnClickListener
{
showDeleteTipDialog
{
val
path
=
intent
.
extras
?.
getString
(
"path"
)
?:
""
val
file
=
File
(
path
)
runCatching
{
file
.
delete
()
}
finish
()
}
}
binding
.
ivShare
.
setOnClickListener
{
this
.
shareAction
(
Uri
.
parse
(
uri
),
intent
.
extras
?.
getString
(
"mimeType"
)
?:
""
)
}
}
override
fun
onPause
()
{
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/FileFragment.kt
View file @
dbb57029
...
...
@@ -19,6 +19,7 @@ import com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity
import
com.base.browserwhite.ui.adapter.MediaAdapter
import
com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import
com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
import
com.base.browserwhite.utils.IntentEx.shareAction
import
com.base.browserwhite.utils.KotlinExt.toFormatSize
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaApkSize
...
...
@@ -74,20 +75,7 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
}
},
shareAction
=
{
val
shareIntent
=
Intent
().
apply
{
action
=
Intent
.
ACTION_SEND
type
=
bean
.
mimeType
putExtra
(
Intent
.
EXTRA_STREAM
,
bean
.
uri
)
flags
=
Intent
.
FLAG_GRANT_READ_URI_PERMISSION
// 可以添加更多额外信息,如主题、文本等
}
val
chooserIntent
=
Intent
.
createChooser
(
shareIntent
,
"Share File"
)
if
(
shareIntent
.
resolveActivity
(
context
.
packageManager
)
!=
null
)
{
context
.
startActivity
(
chooserIntent
)
}
else
{
Toast
.
makeText
(
context
,
"no app can share the file"
,
Toast
.
LENGTH_SHORT
).
show
()
}
context
.
shareAction
(
bean
.
uri
,
bean
.
mimeType
)
})
}
}
...
...
app/src/main/java/com/base/browserwhite/utils/IntentEx.kt
0 → 100644
View file @
dbb57029
package
com.base.browserwhite.utils
import
android.annotation.SuppressLint
import
android.content.Context
import
android.content.Intent
import
android.net.Uri
import
android.widget.Toast
object
IntentEx
{
@SuppressLint
(
"QueryPermissionsNeeded"
)
fun
Context
.
shareAction
(
uri
:
Uri
,
mimeType
:
String
)
{
val
shareIntent
=
Intent
().
apply
{
action
=
Intent
.
ACTION_SEND
type
=
mimeType
putExtra
(
Intent
.
EXTRA_STREAM
,
uri
)
flags
=
Intent
.
FLAG_GRANT_READ_URI_PERMISSION
// 可以添加更多额外信息,如主题、文本等
}
val
chooserIntent
=
Intent
.
createChooser
(
shareIntent
,
"Share File"
)
if
(
shareIntent
.
resolveActivity
(
this
.
packageManager
)
!=
null
)
{
this
.
startActivity
(
chooserIntent
)
}
else
{
Toast
.
makeText
(
this
,
"no app can share the file"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
}
\ No newline at end of file
app/src/main/res/layout/activity_media_image_detail.xml
View file @
dbb57029
...
...
@@ -7,4 +7,50 @@
android:layout_height=
"match_parent"
tools:context=
".ui.activity.mediabrowser.MediaImageDetailActivity"
>
<ImageView
android:id=
"@+id/iv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/black"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv_fanhui"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"15dp"
android:layout_marginTop=
"18dp"
android:src=
"@mipmap/s_fanhui"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
/>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"18dp"
android:layout_marginEnd=
"15dp"
android:orientation=
"horizontal"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/iv_delete"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/s_del"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv_share"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:src=
"@mipmap/s_fenxiang"
tools:ignore=
"ContentDescription"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ 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