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
dc98af32
Commit
dc98af32
authored
Aug 23, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
1a083b74
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
94 additions
and
44 deletions
+94
-44
DownloadBean.kt
app/src/main/java/com/base/browserwhite/bean/DownloadBean.kt
+5
-3
MainActivity.kt
...in/java/com/base/browserwhite/ui/activity/MainActivity.kt
+13
-0
SplashActivity.kt
.../java/com/base/browserwhite/ui/activity/SplashActivity.kt
+1
-1
WebViewFragment.kt
...se/browserwhite/ui/activity/webbrowser/WebViewFragment.kt
+10
-2
DownloadAdapter.kt
.../java/com/base/browserwhite/ui/adapter/DownloadAdapter.kt
+13
-5
MediaAdapter.kt
...ain/java/com/base/browserwhite/ui/adapter/MediaAdapter.kt
+1
-2
FileFragment.kt
...in/java/com/base/browserwhite/ui/fragment/FileFragment.kt
+16
-23
ColorProgress.kt
...main/java/com/base/browserwhite/ui/views/ColorProgress.kt
+19
-1
DialogViews.kt
...c/main/java/com/base/browserwhite/ui/views/DialogViews.kt
+10
-3
dialog_download_video.xml
app/src/main/res/layout/dialog_download_video.xml
+3
-3
fragment_web_view.xml
app/src/main/res/layout/fragment_web_view.xml
+1
-1
item_download_card.xml
app/src/main/res/layout/item_download_card.xml
+2
-0
xiazhai_web.png
app/src/main/res/mipmap-xxhdpi/xiazhai_web.png
+0
-0
No files found.
app/src/main/java/com/base/browserwhite/bean/DownloadBean.kt
View file @
dc98af32
package
com.base.browserwhite.bean
package
com.base.browserwhite.bean
data class
DownloadBean
(
data class
DownloadBean
(
val
downloadId
:
Long
=
0
,
val
downloadId
:
Long
=
0
,
val
path
:
String
=
""
,
val
path
:
String
=
""
,
val
time
:
String
=
""
val
uri
:
String
=
""
,
val
time
:
String
=
""
,
)
{
)
{
var
isTime
:
Boolean
=
false
var
isTime
:
Boolean
=
false
var
uiType
:
Int
=
1
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/MainActivity.kt
View file @
dc98af32
...
@@ -6,23 +6,36 @@ import android.os.Build
...
@@ -6,23 +6,36 @@ import android.os.Build
import
android.os.Environment
import
android.os.Environment
import
android.os.StatFs
import
android.os.StatFs
import
android.os.storage.StorageManager
import
android.os.storage.StorageManager
import
android.view.View
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.core.view.isEmpty
import
androidx.core.view.isEmpty
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.Fragment
import
androidx.lifecycle.lifecycleScope
import
androidx.viewpager2.adapter.FragmentStateAdapter
import
androidx.viewpager2.adapter.FragmentStateAdapter
import
androidx.viewpager2.widget.ViewPager2
import
androidx.viewpager2.widget.ViewPager2
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.R
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.MediaBean
import
com.base.browserwhite.databinding.ActivityMainBinding
import
com.base.browserwhite.databinding.ActivityMainBinding
import
com.base.browserwhite.ui.fragment.FileFragment
import
com.base.browserwhite.ui.fragment.FileFragment
import
com.base.browserwhite.ui.fragment.HomeFragment
import
com.base.browserwhite.ui.fragment.HomeFragment
import
com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
import
com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaFile
import
com.base.browserwhite.utils.PermissionHelp.checkStorePermission
import
com.base.browserwhite.utils.VideoDownloader
import
com.base.browserwhite.utils.VideoDownloader
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.channels.BufferOverflow
import
kotlinx.coroutines.flow.MutableSharedFlow
import
kotlinx.coroutines.launch
import
java.io.File
import
java.io.File
class
MainActivity
:
BaseActivity
<
ActivityMainBinding
>()
{
class
MainActivity
:
BaseActivity
<
ActivityMainBinding
>()
{
private
val
TAG
=
"MainActivity"
private
val
homeFragment
:
HomeFragment
by
lazy
{
private
val
homeFragment
:
HomeFragment
by
lazy
{
HomeFragment
()
HomeFragment
()
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/activity/SplashActivity.kt
View file @
dc98af32
...
@@ -173,7 +173,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
...
@@ -173,7 +173,7 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
val
delayTime
=
300L
val
delayTime
=
300L
delay
(
delayTime
)
delay
(
delayTime
)
processTime
+=
delayTime
processTime
+=
delayTime
if
(
processTime
>=
Random
.
nextLong
(
5000
,
8000
)
)
{
if
(
processTime
>=
600L
)
{
if
(!
outTimeAdStart
)
{
if
(!
outTimeAdStart
)
{
outTimeAdStart
=
true
outTimeAdStart
=
true
outTimeAd
()
outTimeAd
()
...
...
app/src/main/java/com/base/browserwhite/ui/activity/webbrowser/WebViewFragment.kt
View file @
dc98af32
...
@@ -16,8 +16,10 @@ import android.webkit.WebStorage
...
@@ -16,8 +16,10 @@ import android.webkit.WebStorage
import
android.webkit.WebView
import
android.webkit.WebView
import
android.webkit.WebViewClient
import
android.webkit.WebViewClient
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.base.browserwhite.bean.DownloadBean
import
com.base.browserwhite.databinding.FragmentWebViewBinding
import
com.base.browserwhite.databinding.FragmentWebViewBinding
import
com.base.browserwhite.ui.fragment.BaseFragment
import
com.base.browserwhite.ui.fragment.BaseFragment
import
com.base.browserwhite.ui.views.DialogViews.showDownloadVideoDialog
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.LogEx
import
kotlinx.coroutines.Job
import
kotlinx.coroutines.Job
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.delay
...
@@ -31,6 +33,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
...
@@ -31,6 +33,7 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
private
val
TAG
=
"WebViewFragment"
private
val
TAG
=
"WebViewFragment"
private
var
job
:
Job
?
=
null
private
var
job
:
Job
?
=
null
var
url
:
String
=
""
var
url
:
String
=
""
private
val
downloadList
=
arrayListOf
<
DownloadBean
>()
override
val
binding
:
FragmentWebViewBinding
by
lazy
{
override
val
binding
:
FragmentWebViewBinding
by
lazy
{
FragmentWebViewBinding
.
inflate
(
layoutInflater
)
FragmentWebViewBinding
.
inflate
(
layoutInflater
)
...
@@ -64,6 +67,9 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
...
@@ -64,6 +67,9 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
}
}
reloadWebView
()
reloadWebView
()
}
}
binding
.
flDownload
.
setOnClickListener
{
requireContext
().
showDownloadVideoDialog
(
downloadList
)
}
}
}
private
fun
reloadWebView
()
{
private
fun
reloadWebView
()
{
...
@@ -219,11 +225,11 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
...
@@ -219,11 +225,11 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
}
}
var
isParsing
:
Boolean
=
false
private
var
isParsing
:
Boolean
=
false
fun
parseVideoLink
(
view
:
WebView
)
{
fun
parseVideoLink
(
view
:
WebView
)
{
if
(
isParsing
)
return
if
(
isParsing
)
return
isParsing
=
true
isParsing
=
true
downloadList
.
clear
()
view
.
evaluateJavascript
(
"(function() {"
+
view
.
evaluateJavascript
(
"(function() {"
+
"var videos = document.querySelectorAll('video');"
+
"var videos = document.querySelectorAll('video');"
+
"var videoSources = [];"
+
"var videoSources = [];"
+
...
@@ -241,9 +247,11 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
...
@@ -241,9 +247,11 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
binding
.
flDownload
.
visibility
=
View
.
VISIBLE
binding
.
flDownload
.
visibility
=
View
.
VISIBLE
binding
.
tvDownloadNumber
.
text
=
jsonArray
.
length
().
toString
()
binding
.
tvDownloadNumber
.
text
=
jsonArray
.
length
().
toString
()
}
}
for
(
i
in
0
until
jsonArray
.
length
())
{
for
(
i
in
0
until
jsonArray
.
length
())
{
val
videoUrl
=
jsonArray
.
optString
(
i
)
val
videoUrl
=
jsonArray
.
optString
(
i
)
LogEx
.
logDebug
(
TAG
,
videoUrl
)
LogEx
.
logDebug
(
TAG
,
videoUrl
)
downloadList
.
add
(
DownloadBean
(
uri
=
videoUrl
).
apply
{
uiType
=
2
})
}
}
isParsing
=
false
isParsing
=
false
})
})
...
...
app/src/main/java/com/base/browserwhite/ui/adapter/DownloadAdapter.kt
View file @
dc98af32
package
com.base.browserwhite.ui.adapter
package
com.base.browserwhite.ui.adapter
import
android.content.ClipData.Item
import
android.content.Context
import
android.content.Context
import
android.view.View
import
android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
...
@@ -8,9 +7,9 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder
...
@@ -8,9 +7,9 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder
import
com.base.browserwhite.R
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.DownloadBean
import
com.base.browserwhite.bean.DownloadBean
import
com.base.browserwhite.databinding.ItemDownloadBinding
import
com.base.browserwhite.databinding.ItemDownloadBinding
import
com.base.browserwhite.databinding.ItemDownloadCardBinding
import
com.base.browserwhite.databinding.ItemDownloadTimeBinding
import
com.base.browserwhite.databinding.ItemDownloadTimeBinding
import
com.base.browserwhite.utils.KotlinExt.toFormatSize
import
com.base.browserwhite.utils.KotlinExt.toFormatSize
import
com.base.browserwhite.utils.KotlinExt.toFormatTime
import
com.base.browserwhite.utils.XmlEx.inflate
import
com.base.browserwhite.utils.XmlEx.inflate
import
com.bumptech.glide.Glide
import
com.bumptech.glide.Glide
import
com.chad.library.adapter4.BaseQuickAdapter
import
com.chad.library.adapter4.BaseQuickAdapter
...
@@ -26,23 +25,32 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV
...
@@ -26,23 +25,32 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV
if
(
item
.
isTime
)
{
if
(
item
.
isTime
)
{
val
binding
=
ItemDownloadTimeBinding
.
bind
(
holder
.
itemView
)
val
binding
=
ItemDownloadTimeBinding
.
bind
(
holder
.
itemView
)
binding
.
tvTime
.
text
=
item
.
time
binding
.
tvTime
.
text
=
item
.
time
}
else
{
}
else
if
(
item
.
uiType
==
1
)
{
val
binding
=
ItemDownloadBinding
.
bind
(
holder
.
itemView
)
val
binding
=
ItemDownloadBinding
.
bind
(
holder
.
itemView
)
val
file
=
File
(
item
.
path
)
val
file
=
File
(
item
.
path
)
Glide
.
with
(
context
).
load
(
file
.
absoluteFile
).
centerCrop
().
into
(
binding
.
iv
)
Glide
.
with
(
context
).
load
(
file
.
absoluteFile
).
centerCrop
().
into
(
binding
.
iv
)
binding
.
tvName
.
text
=
file
.
name
binding
.
tvName
.
text
=
file
.
name
binding
.
tvSize
.
text
=
file
.
length
().
toFormatSize
()
binding
.
tvSize
.
text
=
file
.
length
().
toFormatSize
()
}
else
if
(
item
.
uiType
==
2
)
{
val
binding
=
ItemDownloadCardBinding
.
bind
(
holder
.
itemView
)
Glide
.
with
(
context
).
load
(
item
.
uri
).
centerCrop
().
into
(
binding
.
iv
)
binding
.
tvName
.
text
=
item
.
uri
.
split
(
"/"
).
last
()
}
}
}
}
override
fun
getItemViewType
(
position
:
Int
,
list
:
List
<
DownloadBean
>):
Int
{
override
fun
getItemViewType
(
position
:
Int
,
list
:
List
<
DownloadBean
>):
Int
{
val
bean
=
list
[
position
]
val
bean
=
list
[
position
]
return
if
(
bean
.
isTime
)
0
else
1
return
if
(
bean
.
isTime
)
0
else
bean
.
uiType
}
}
override
fun
onCreateViewHolder
(
context
:
Context
,
parent
:
ViewGroup
,
viewType
:
Int
):
DownloadViewHolder
{
override
fun
onCreateViewHolder
(
context
:
Context
,
parent
:
ViewGroup
,
viewType
:
Int
):
DownloadViewHolder
{
val
layout
=
if
(
viewType
==
0
)
R
.
layout
.
item_download_time
else
R
.
layout
.
item_download
val
layout
=
when
(
viewType
)
{
0
->
R
.
layout
.
item_download_time
1
->
R
.
layout
.
item_download
2
->
R
.
layout
.
item_download_card
else
->
0
}
return
DownloadViewHolder
(
layout
.
inflate
(
parent
))
return
DownloadViewHolder
(
layout
.
inflate
(
parent
))
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/adapter/MediaAdapter.kt
View file @
dc98af32
...
@@ -28,8 +28,7 @@ class MediaAdapter(
...
@@ -28,8 +28,7 @@ class MediaAdapter(
val
uiType
:
Int
,
val
uiType
:
Int
,
val
clickAction
:
((
bean
:
MediaBean
)
->
Unit
)?
=
null
,
val
clickAction
:
((
bean
:
MediaBean
)
->
Unit
)?
=
null
,
val
moreAction
:
((
view
:
View
,
bean
:
MediaBean
)
->
Unit
)?
=
null
val
moreAction
:
((
view
:
View
,
bean
:
MediaBean
)
->
Unit
)?
=
null
)
:
)
:
RecyclerView
.
Adapter
<
MediaAdapter
.
MediaViewHolder
>()
{
RecyclerView
.
Adapter
<
MediaAdapter
.
MediaViewHolder
>()
{
private
val
beanList
=
arrayListOf
<
MediaBean
>()
private
val
beanList
=
arrayListOf
<
MediaBean
>()
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/FileFragment.kt
View file @
dc98af32
...
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
...
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import
android.content.Context
import
android.content.Context
import
android.content.Intent
import
android.content.Intent
import
android.view.View
import
android.view.View
import
android.widget.Toast
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.bean.MediaBean
import
com.base.browserwhite.bean.MediaBean
...
@@ -21,17 +22,19 @@ import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
...
@@ -21,17 +22,19 @@ import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
import
com.base.browserwhite.ui.views.ProgressBean
import
com.base.browserwhite.ui.views.ProgressBean
import
com.base.browserwhite.utils.IntentEx.shareAction
import
com.base.browserwhite.utils.IntentEx.shareAction
import
com.base.browserwhite.utils.KotlinExt.toFormatSize
import
com.base.browserwhite.utils.KotlinExt.toFormatSize
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaApkCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaApkCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaAudioCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaAudioCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaDocumentCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaDocumentCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaFile
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaPhotoCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaPhotoCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaVideoCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaVideoCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaZipCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaZipCountSize
import
com.base.browserwhite.utils.MediaStoreUtils.getMediaFile
import
com.base.browserwhite.utils.PermissionHelp.checkStorePermission
import
com.base.browserwhite.utils.PermissionHelp.checkStorePermission
import
com.base.browserwhite.utils.PermissionHelp.requestStorePermission
import
com.base.browserwhite.utils.PermissionHelp.requestStorePermission
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.async
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.flow.collectLatest
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
import
java.io.File
import
java.io.File
...
@@ -62,10 +65,6 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
...
@@ -62,10 +65,6 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
moreAction
(
requireContext
(),
view
,
bean
,
adapter
)
moreAction
(
requireContext
(),
view
,
bean
,
adapter
)
})
})
binding
.
rvRecent
.
adapter
=
adapter
binding
.
rvRecent
.
adapter
=
adapter
if
(
requireContext
().
checkStorePermission
())
{
initRvData
()
}
}
}
companion
object
{
companion
object
{
...
@@ -91,7 +90,6 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
...
@@ -91,7 +90,6 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
val
launcher
=
(
requireActivity
()
as
MainActivity
).
launcher
val
launcher
=
(
requireActivity
()
as
MainActivity
).
launcher
requireContext
().
requestStorePermission
(
launcher
)
{
requireContext
().
requestStorePermission
(
launcher
)
{
if
(
it
)
{
if
(
it
)
{
initRvData
()
}
}
}
}
}
}
...
@@ -190,7 +188,6 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
...
@@ -190,7 +188,6 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
// )
// )
progressList
progressList
)
)
binding
.
tvPhotoSize
.
text
=
picturePair
.
first
.
toString
()
binding
.
tvPhotoSize
.
text
=
picturePair
.
first
.
toString
()
binding
.
tvVideoSize
.
text
=
videoPair
.
first
.
toString
()
binding
.
tvVideoSize
.
text
=
videoPair
.
first
.
toString
()
binding
.
tvAudioSize
.
text
=
audioPair
.
first
.
toString
()
binding
.
tvAudioSize
.
text
=
audioPair
.
first
.
toString
()
...
@@ -199,25 +196,21 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
...
@@ -199,25 +196,21 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
binding
.
tvZipSize
.
text
=
zipSize
.
toString
()
binding
.
tvZipSize
.
text
=
zipSize
.
toString
()
}
}
binding
.
colorProgress
.
finishAnimation
=
{
}
val
list
=
requireContext
().
getMediaFile
().
filter
{
val
file
=
File
(
it
.
path
)
private
fun
initRvData
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
if
(
BuildConfig
.
DEBUG
)
{
val
mediaList
=
requireContext
().
getMediaFile
().
filter
{
true
val
file
=
File
(
it
.
path
)
}
else
{
if
(
BuildConfig
.
DEBUG
)
{
System
.
currentTimeMillis
()
-
file
.
lastModified
()
<=
15L
*
24
*
60
*
60
*
1000
true
}
}
else
{
System
.
currentTimeMillis
()
-
file
.
lastModified
()
<=
15L
*
24
*
60
*
60
*
1000
}
}
}
if
(
list
.
isEmpty
())
{
LogEx
.
logDebug
(
TAG
,
"size=${mediaList.size}"
)
launch
(
Dispatchers
.
Main
)
{
if
(
mediaList
.
isEmpty
())
{
binding
.
tvTitleRecent
.
visibility
=
View
.
GONE
binding
.
tvTitleRecent
.
visibility
=
View
.
GONE
}
}
adapter
.
setData
(
mediaL
ist
)
adapter
.
setData
(
l
ist
)
}
}
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/views/ColorProgress.kt
View file @
dc98af32
package
com.base.browserwhite.ui.views
package
com.base.browserwhite.ui.views
import
android.animation.Animator
import
android.animation.AnimatorListenerAdapter
import
android.animation.AnimatorSet
import
android.animation.AnimatorSet
import
android.animation.ValueAnimator
import
android.animation.ValueAnimator
import
android.content.Context
import
android.content.Context
...
@@ -41,6 +43,8 @@ class ColorProgress : View {
...
@@ -41,6 +43,8 @@ class ColorProgress : View {
initPaint
(
context
)
initPaint
(
context
)
}
}
var
finishAnimation
:
(()
->
Unit
)?
=
null
private
fun
initPaint
(
context
:
Context
)
{
private
fun
initPaint
(
context
:
Context
)
{
strokeWidth
=
context
.
resources
.
getDimension
(
R
.
dimen
.
dp_9
)
strokeWidth
=
context
.
resources
.
getDimension
(
R
.
dimen
.
dp_9
)
...
@@ -111,7 +115,7 @@ class ColorProgress : View {
...
@@ -111,7 +115,7 @@ class ColorProgress : View {
invalidate
()
invalidate
()
}
}
fun
animateProgress
(
list
:
List
<
ProgressBean
>)
{
fun
animateProgress
(
list
:
List
<
ProgressBean
>)
{
listProgressBean
=
list
listProgressBean
=
list
val
totalAngle
=
list
.
maxOf
{
it
.
sweepAngle
}
val
totalAngle
=
list
.
maxOf
{
it
.
sweepAngle
}
val
progressAnimator
=
ValueAnimator
.
ofFloat
(
0f
,
totalAngle
)
val
progressAnimator
=
ValueAnimator
.
ofFloat
(
0f
,
totalAngle
)
...
@@ -121,6 +125,20 @@ class ColorProgress : View {
...
@@ -121,6 +125,20 @@ class ColorProgress : View {
val
animatedValue
=
animation
.
getAnimatedValue
()
as
Float
val
animatedValue
=
animation
.
getAnimatedValue
()
as
Float
setProgress
(
animatedValue
)
setProgress
(
animatedValue
)
}
}
progressAnimator
.
addListener
(
object
:
Animator
.
AnimatorListener
{
override
fun
onAnimationStart
(
animation
:
Animator
)
{
}
override
fun
onAnimationEnd
(
animation
:
Animator
)
{
finishAnimation
?.
invoke
()
}
override
fun
onAnimationCancel
(
animation
:
Animator
)
{
}
override
fun
onAnimationRepeat
(
animation
:
Animator
)
{
}
})
progressAnimator
.
start
()
progressAnimator
.
start
()
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/views/DialogViews.kt
View file @
dc98af32
...
@@ -17,11 +17,14 @@ import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
...
@@ -17,11 +17,14 @@ import com.base.browserwhite.bean.ConstObject.DUCKDUCKGO
import
com.base.browserwhite.bean.ConstObject.GOOGLE
import
com.base.browserwhite.bean.ConstObject.GOOGLE
import
com.base.browserwhite.bean.ConstObject.YAHOO
import
com.base.browserwhite.bean.ConstObject.YAHOO
import
com.base.browserwhite.bean.ConstObject.YANDEX
import
com.base.browserwhite.bean.ConstObject.YANDEX
import
com.base.browserwhite.bean.DownloadBean
import
com.base.browserwhite.databinding.DialogDeleteTipBinding
import
com.base.browserwhite.databinding.DialogDeleteTipBinding
import
com.base.browserwhite.databinding.DialogDownloadVideoBinding
import
com.base.browserwhite.databinding.DialogMediaMoreBinding
import
com.base.browserwhite.databinding.DialogMediaMoreBinding
import
com.base.browserwhite.databinding.DialogMyAccountBinding
import
com.base.browserwhite.databinding.DialogMyAccountBinding
import
com.base.browserwhite.databinding.DialogPermissonOpenBinding
import
com.base.browserwhite.databinding.DialogPermissonOpenBinding
import
com.base.browserwhite.databinding.DialogSearchEngineBinding
import
com.base.browserwhite.databinding.DialogSearchEngineBinding
import
com.base.browserwhite.ui.adapter.DownloadAdapter
import
com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
import
com.base.browserwhite.ui.views.DialogViews.showMyAccountDialog
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
...
@@ -205,7 +208,7 @@ object DialogViews {
...
@@ -205,7 +208,7 @@ object DialogViews {
dialog
.
show
()
dialog
.
show
()
val
params
=
dialog
.
window
?.
attributes
val
params
=
dialog
.
window
?.
attributes
params
?.
width
=
resources
.
getDimensionPixelOffset
(
R
.
dimen
.
dp_335
)
params
?.
width
=
resources
.
getDimensionPixelOffset
(
R
.
dimen
.
dp_335
)
dialog
.
window
?.
attributes
=
params
dialog
.
window
?.
attributes
=
params
dialog
.
window
?.
setBackgroundDrawableResource
(
android
.
R
.
color
.
transparent
)
dialog
.
window
?.
setBackgroundDrawableResource
(
android
.
R
.
color
.
transparent
)
binding
.
tvCancel
.
setOnClickListener
{
binding
.
tvCancel
.
setOnClickListener
{
...
@@ -217,9 +220,9 @@ object DialogViews {
...
@@ -217,9 +220,9 @@ object DialogViews {
}
}
}
}
fun
Context
.
showDownloadVideoDialog
(
)
{
fun
Context
.
showDownloadVideoDialog
(
list
:
List
<
DownloadBean
>)
{
val
dialog
=
BottomSheetDialog
(
this
)
val
dialog
=
BottomSheetDialog
(
this
)
val
binding
=
Dialog
MyAccount
Binding
.
inflate
(
LayoutInflater
.
from
(
this
))
val
binding
=
Dialog
DownloadVideo
Binding
.
inflate
(
LayoutInflater
.
from
(
this
))
dialog
.
setContentView
(
binding
.
root
)
dialog
.
setContentView
(
binding
.
root
)
dialog
.
setCanceledOnTouchOutside
(
false
)
dialog
.
setCanceledOnTouchOutside
(
false
)
...
@@ -229,6 +232,10 @@ object DialogViews {
...
@@ -229,6 +232,10 @@ object DialogViews {
val
behavior
=
BottomSheetBehavior
.
from
(
parentView
)
val
behavior
=
BottomSheetBehavior
.
from
(
parentView
)
//展开
//展开
behavior
.
state
=
BottomSheetBehavior
.
STATE_EXPANDED
behavior
.
state
=
BottomSheetBehavior
.
STATE_EXPANDED
val
adapter
=
DownloadAdapter
()
binding
.
rv
.
adapter
=
adapter
adapter
.
submitList
(
list
)
}
}
}
}
\ No newline at end of file
app/src/main/res/layout/dialog_download_video.xml
View file @
dc98af32
...
@@ -44,13 +44,13 @@
...
@@ -44,13 +44,13 @@
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:id=
"@+id/rv"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"
wrap_content
"
android:layout_height=
"
300dp
"
android:layout_marginTop=
"16dp"
android:layout_marginTop=
"16dp"
tools:listitem=
"@layout/item_download_card"
android:maxHeight=
"300dp"
android:maxHeight=
"300dp"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_download_dir"
/>
app:layout_constraintTop_toBottomOf=
"@id/tv_download_dir"
tools:listitem=
"@layout/item_download_card"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_web_view.xml
View file @
dc98af32
...
@@ -42,7 +42,7 @@
...
@@ -42,7 +42,7 @@
<ImageView
<ImageView
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:src=
"@mipmap/xiazhai"
android:src=
"@mipmap/xiazhai
_web
"
tools:ignore=
"ContentDescription"
/>
tools:ignore=
"ContentDescription"
/>
<TextView
<TextView
...
...
app/src/main/res/layout/item_download_card.xml
View file @
dc98af32
...
@@ -46,6 +46,7 @@
...
@@ -46,6 +46,7 @@
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<TextView
<TextView
android:id=
"@+id/tv_name"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textColor=
"@color/black"
android:textColor=
"@color/black"
...
@@ -53,6 +54,7 @@
...
@@ -53,6 +54,7 @@
tools:text=
"1796-21.mp4"
/>
tools:text=
"1796-21.mp4"
/>
<TextView
<TextView
android:id=
"@+id/tv_size"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"6dp"
android:layout_marginTop=
"6dp"
...
...
app/src/main/res/mipmap-xxhdpi/xiazhai_web.png
0 → 100644
View file @
dc98af32
20.7 KB
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