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
def4fe73
Commit
def4fe73
authored
Aug 22, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
85c4a376
Hide whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
428 additions
and
48 deletions
+428
-48
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+13
-6
DownloadBean.kt
app/src/main/java/com/base/browserwhite/bean/DownloadBean.kt
+5
-1
AESHelper.kt
app/src/main/java/com/base/browserwhite/help/AESHelper.kt
+1
-1
NewsUtils.kt
app/src/main/java/com/base/browserwhite/help/NewsUtils.kt
+4
-1
ReportUtils.java
...src/main/java/com/base/browserwhite/help/ReportUtils.java
+3
-1
MainActivity.kt
...in/java/com/base/browserwhite/ui/activity/MainActivity.kt
+2
-1
DownloadGuideFragment.kt
...rowserwhite/ui/activity/download/DownloadGuideFragment.kt
+23
-0
WebDownloadGuideActivity.kt
...serwhite/ui/activity/download/WebDownloadGuideActivity.kt
+58
-1
WebDownloadManagerActivity.kt
...rwhite/ui/activity/download/WebDownloadManagerActivity.kt
+62
-0
NewsActivity.kt
...va/com/base/browserwhite/ui/activity/news/NewsActivity.kt
+1
-1
NewsDetailActivity.kt
.../base/browserwhite/ui/activity/news/NewsDetailActivity.kt
+1
-1
ResultActivity.kt
...om/base/browserwhite/ui/activity/result/ResultActivity.kt
+1
-4
WebBrowserActivity.kt
...browserwhite/ui/activity/webbrowser/WebBrowserActivity.kt
+0
-1
WebViewFragment.kt
...se/browserwhite/ui/activity/webbrowser/WebViewFragment.kt
+2
-3
DownloadAdapter.kt
.../java/com/base/browserwhite/ui/adapter/DownloadAdapter.kt
+2
-2
FileFragment.kt
...in/java/com/base/browserwhite/ui/fragment/FileFragment.kt
+11
-0
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+1
-10
EventUtils.kt
app/src/main/java/com/base/browserwhite/utils/EventUtils.kt
+2
-1
PermissionHelp.kt
...c/main/java/com/base/browserwhite/utils/PermissionHelp.kt
+0
-1
VideoDownloader.kt
.../main/java/com/base/browserwhite/utils/VideoDownloader.kt
+127
-0
activity_web_download_guide.xml
app/src/main/res/layout/activity_web_download_guide.xml
+74
-0
activity_web_download_manager.xml
app/src/main/res/layout/activity_web_download_manager.xml
+9
-8
fragment_download_guide.xml
app/src/main/res/layout/fragment_download_guide.xml
+23
-0
fragment_file.xml
app/src/main/res/layout/fragment_file.xml
+2
-3
fragment_web_view.xml
app/src/main/res/layout/fragment_web_view.xml
+1
-1
shangyibu.png
app/src/main/res/mipmap-xxhdpi/shangyibu.png
+0
-0
tu1.png
app/src/main/res/mipmap-xxhdpi/tu1.png
+0
-0
w_fanhui.png
app/src/main/res/mipmap-xxhdpi/w_fanhui.png
+0
-0
xiayibu.png
app/src/main/res/mipmap-xxhdpi/xiayibu.png
+0
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
def4fe73
...
@@ -26,12 +26,7 @@
...
@@ -26,12 +26,7 @@
android:theme=
"@style/Theme.BrowserWhite"
android:theme=
"@style/Theme.BrowserWhite"
android:usesCleartextTraffic=
"true"
android:usesCleartextTraffic=
"true"
tools:targetApi=
"34"
>
tools:targetApi=
"34"
>
<activity
android:name=
".ui.activity.download.WebDownloadManagerActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.activity.download.WebDownloadGuideActivity"
android:exported=
"false"
/>
<activity
<activity
android:name=
".ui.activity.SplashActivity"
android:name=
".ui.activity.SplashActivity"
android:exported=
"true"
android:exported=
"true"
...
@@ -42,6 +37,18 @@
...
@@ -42,6 +37,18 @@
<category
android:name=
"android.intent.category.LAUNCHER"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</intent-filter>
</activity>
</activity>
<activity
android:name=
".ui.activity.download.WebDownloadManagerActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
android:name=
".ui.activity.download.WebDownloadGuideActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
<activity
android:name=
".ui.activity.news.NewsDetailActivity"
android:name=
".ui.activity.news.NewsDetailActivity"
android:exported=
"false"
android:exported=
"false"
...
...
app/src/main/java/com/base/browserwhite/bean/DownloadBean.kt
View file @
def4fe73
package
com.base.browserwhite.bean
package
com.base.browserwhite.bean
data class
DownloadBean
(
val
path
:
String
,
val
time
:
Long
=
0
)
{
data class
DownloadBean
(
val
downloadId
:
Long
=
0
,
val
path
:
String
=
""
,
val
time
:
String
=
""
)
{
var
isTime
:
Boolean
=
false
var
isTime
:
Boolean
=
false
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/
utils
/AESHelper.kt
→
app/src/main/java/com/base/browserwhite/
help
/AESHelper.kt
View file @
def4fe73
package
com.base.browserwhite.
utils
package
com.base.browserwhite.
help
import
android.util.Base64
import
android.util.Base64
import
java.security.SecureRandom
import
java.security.SecureRandom
...
...
app/src/main/java/com/base/browserwhite/
utils
/NewsUtils.kt
→
app/src/main/java/com/base/browserwhite/
help
/NewsUtils.kt
View file @
def4fe73
package
com.base.browserwhite.
utils
package
com.base.browserwhite.
help
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.bean.NewsBean
import
com.base.browserwhite.bean.NewsBean
import
com.base.browserwhite.utils.AppPreferences
import
com.base.browserwhite.utils.ConfigHelper
import
com.base.browserwhite.utils.LogEx
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.google.gson.JsonParser
import
com.google.gson.JsonParser
import
com.google.gson.reflect.TypeToken
import
com.google.gson.reflect.TypeToken
...
...
app/src/main/java/com/base/browserwhite/
utils
/ReportUtils.java
→
app/src/main/java/com/base/browserwhite/
help
/ReportUtils.java
View file @
def4fe73
package
com
.
base
.
browserwhite
.
utils
;
package
com
.
base
.
browserwhite
.
help
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
com.base.browserwhite.utils.LogEx
;
import
java.io.BufferedReader
;
import
java.io.BufferedReader
;
import
java.io.InputStreamReader
;
import
java.io.InputStreamReader
;
import
java.net.HttpURLConnection
;
import
java.net.HttpURLConnection
;
...
...
app/src/main/java/com/base/browserwhite/ui/activity/MainActivity.kt
View file @
def4fe73
...
@@ -18,6 +18,7 @@ import com.base.browserwhite.ui.fragment.FileFragment
...
@@ -18,6 +18,7 @@ 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.VideoDownloader
import
java.io.File
import
java.io.File
class
MainActivity
:
BaseActivity
<
ActivityMainBinding
>()
{
class
MainActivity
:
BaseActivity
<
ActivityMainBinding
>()
{
...
@@ -63,7 +64,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
...
@@ -63,7 +64,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
override
fun
onPageSelected
(
position
:
Int
)
{
override
fun
onPageSelected
(
position
:
Int
)
{
}
}
})
})
VideoDownloader
.
downloadVideo
(
this
,
"https://assets.mixkit.co/videos/4702/4702-720.mp4"
)
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/activity/download/DownloadGuideFragment.kt
0 → 100644
View file @
def4fe73
package
com.base.browserwhite.ui.activity.download
import
com.base.browserwhite.databinding.FragmentDownloadGuideBinding
import
com.base.browserwhite.ui.fragment.BaseFragment
class
DownloadGuideFragment
()
:
BaseFragment
<
FragmentDownloadGuideBinding
>()
{
private
var
index
=
0
constructor
(
index
:
Int
)
:
this
()
{
this
.
index
=
index
}
override
val
binding
:
FragmentDownloadGuideBinding
by
lazy
{
FragmentDownloadGuideBinding
.
inflate
(
layoutInflater
)
}
override
fun
setView
()
{
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/download/WebDownloadGuideActivity.kt
View file @
def4fe73
package
com.base.browserwhite.ui.activity.download
package
com.base.browserwhite.ui.activity.download
import
com.base.browserwhite.R
import
android.graphics.Color
import
androidx.activity.addCallback
import
androidx.core.view.isVisible
import
androidx.core.view.updatePadding
import
androidx.fragment.app.Fragment
import
androidx.viewpager2.adapter.FragmentStateAdapter
import
androidx.viewpager2.widget.ViewPager2
import
com.base.browserwhite.databinding.ActivityWebDownloadGuideBinding
import
com.base.browserwhite.databinding.ActivityWebDownloadGuideBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.utils.BarUtils
class
WebDownloadGuideActivity
:
BaseActivity
<
ActivityWebDownloadGuideBinding
>()
{
class
WebDownloadGuideActivity
:
BaseActivity
<
ActivityWebDownloadGuideBinding
>()
{
private
val
fragment1
:
DownloadGuideFragment
by
lazy
{
DownloadGuideFragment
(
0
)
}
private
val
fragment2
:
DownloadGuideFragment
by
lazy
{
DownloadGuideFragment
(
1
)
}
private
val
fragment3
:
DownloadGuideFragment
by
lazy
{
DownloadGuideFragment
(
2
)
}
private
val
fragment4
:
DownloadGuideFragment
by
lazy
{
DownloadGuideFragment
(
3
)
}
private
var
currentPosition
:
Int
=
0
private
val
fragments
by
lazy
{
mutableListOf
(
fragment1
,
fragment2
,
fragment3
,
fragment4
)
}
override
val
binding
:
ActivityWebDownloadGuideBinding
by
lazy
{
override
val
binding
:
ActivityWebDownloadGuideBinding
by
lazy
{
ActivityWebDownloadGuideBinding
.
inflate
(
layoutInflater
)
ActivityWebDownloadGuideBinding
.
inflate
(
layoutInflater
)
}
}
override
fun
initView
()
{
override
fun
initView
()
{
BarUtils
.
setStatusBarLightMode
(
this
,
true
)
BarUtils
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
)
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
binding
.
viewPager2
.
run
{
adapter
=
object
:
FragmentStateAdapter
(
this
@WebDownloadGuideActivity
)
{
override
fun
getItemCount
():
Int
{
return
fragments
.
size
}
override
fun
createFragment
(
position
:
Int
):
Fragment
{
return
fragments
[
position
]
}
}
}
binding
.
viewPager2
.
registerOnPageChangeCallback
(
object
:
ViewPager2
.
OnPageChangeCallback
()
{
override
fun
onPageSelected
(
position
:
Int
)
{
currentPosition
=
position
binding
.
ivBefore
.
isVisible
=
currentPosition
>
0
binding
.
ivNext
.
isVisible
=
currentPosition
<
3
}
})
}
override
fun
initListener
()
{
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
finishToMain
()
}
binding
.
flFanhui
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
}
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/download/WebDownloadManagerActivity.kt
View file @
def4fe73
package
com.base.browserwhite.ui.activity.download
package
com.base.browserwhite.ui.activity.download
import
android.content.Intent
import
android.graphics.Color
import
android.graphics.Color
import
android.os.Environment
import
androidx.activity.addCallback
import
androidx.core.view.isVisible
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.DownloadBean
import
com.base.browserwhite.databinding.ActivityWebDownloadManagerBinding
import
com.base.browserwhite.databinding.ActivityWebDownloadManagerBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.adapter.DownloadAdapter
import
com.base.browserwhite.ui.adapter.DownloadAdapter
import
com.base.browserwhite.ui.views.DialogViews.showGerPermission
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.KotlinExt.toFormatTime
import
com.base.browserwhite.utils.PermissionHelp.checkStorePermission
import
com.base.browserwhite.utils.PermissionHelp.requestStorePermission
import
java.io.File
class
WebDownloadManagerActivity
:
BaseActivity
<
ActivityWebDownloadManagerBinding
>()
{
class
WebDownloadManagerActivity
:
BaseActivity
<
ActivityWebDownloadManagerBinding
>()
{
...
@@ -22,6 +33,57 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin
...
@@ -22,6 +33,57 @@ class WebDownloadManagerActivity : BaseActivity<ActivityWebDownloadManagerBindin
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
adapter
=
DownloadAdapter
()
adapter
=
DownloadAdapter
()
binding
.
rv
.
adapter
=
adapter
if
(
checkStorePermission
())
{
initData
()
}
else
{
showGerPermission
(
desc
=
""
,
deny
=
{
finishToMain
()
},
allow
=
{
requestStorePermission
(
launcher
,
result
=
{
if
(
it
)
initData
()
else
finishToMain
()
})
})
}
}
override
fun
initListener
()
{
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
finishToMain
()
}
binding
.
flFanhui
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
}
binding
.
tvHowUse
.
setOnClickListener
{
startActivity
(
Intent
(
this
,
WebDownloadGuideActivity
::
class
.
java
))
finish
()
}
}
}
private
fun
initData
()
{
val
appName
:
String
=
resources
.
getString
(
R
.
string
.
app_name
)
val
dir
=
File
(
Environment
.
getExternalStoragePublicDirectory
(
Environment
.
DIRECTORY_DOWNLOADS
),
appName
)
// dir.listFiles().isNullOrEmpty()
if
(
true
)
{
binding
.
llEmpty
.
isVisible
=
true
}
else
{
val
fileList
=
arrayListOf
<
File
>()
val
timeList
=
arrayListOf
<
String
>()
val
beanList
=
arrayListOf
<
DownloadBean
>()
fileList
.
addAll
(
dir
.
listFiles
()
?:
arrayOf
())
fileList
.
sortBy
{
it
.
lastModified
()
}
fileList
.
forEach
{
val
time
=
it
.
lastModified
().
toFormatTime
()
if
(!
timeList
.
contains
(
time
))
{
timeList
.
add
(
time
)
beanList
.
add
(
DownloadBean
(
time
=
time
).
apply
{
isTime
=
true
})
}
else
{
beanList
.
add
(
DownloadBean
(
path
=
it
.
absolutePath
))
}
}
adapter
.
submitList
(
beanList
)
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/news/NewsActivity.kt
View file @
def4fe73
...
@@ -11,7 +11,7 @@ import com.base.browserwhite.ui.activity.BaseActivity
...
@@ -11,7 +11,7 @@ import com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.adapter.NewsAdapter
import
com.base.browserwhite.ui.adapter.NewsAdapter
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.
utils
.NewsUtils
import
com.base.browserwhite.
help
.NewsUtils
import
com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
...
...
app/src/main/java/com/base/browserwhite/ui/activity/news/NewsDetailActivity.kt
View file @
def4fe73
...
@@ -7,7 +7,7 @@ import androidx.fragment.app.FragmentTransaction
...
@@ -7,7 +7,7 @@ import androidx.fragment.app.FragmentTransaction
import
com.base.browserwhite.R
import
com.base.browserwhite.R
import
com.base.browserwhite.databinding.ActivityNewsDetailBinding
import
com.base.browserwhite.databinding.ActivityNewsDetailBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.
fragment
.WebViewFragment
import
com.base.browserwhite.ui.
activity.webbrowser
.WebViewFragment
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.BarUtils
class
NewsDetailActivity
:
BaseActivity
<
ActivityNewsDetailBinding
>()
{
class
NewsDetailActivity
:
BaseActivity
<
ActivityNewsDetailBinding
>()
{
...
...
app/src/main/java/com/base/browserwhite/ui/activity/result/ResultActivity.kt
View file @
def4fe73
...
@@ -7,15 +7,12 @@ import androidx.activity.addCallback
...
@@ -7,15 +7,12 @@ import androidx.activity.addCallback
import
com.base.browserwhite.bean.ConstObject.JUNK_CLEANER
import
com.base.browserwhite.bean.ConstObject.JUNK_CLEANER
import
com.base.browserwhite.databinding.ActivityResultBinding
import
com.base.browserwhite.databinding.ActivityResultBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.news.NewsActivity
import
com.base.browserwhite.ui.activity.news.NewsDetailActivity
import
com.base.browserwhite.ui.activity.news.NewsDetailActivity
import
com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import
com.base.browserwhite.ui.adapter.NewsAdapter
import
com.base.browserwhite.ui.adapter.NewsAdapter
import
com.base.browserwhite.ui.fragment.HomeFragment
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.BarUtils
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.LogEx
import
com.base.browserwhite.
utils
.NewsUtils
import
com.base.browserwhite.
help
.NewsUtils
import
com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
...
...
app/src/main/java/com/base/browserwhite/ui/activity/webbrowser/WebBrowserActivity.kt
View file @
def4fe73
...
@@ -15,7 +15,6 @@ import com.base.browserwhite.bean.ConstObject.GOOGLE
...
@@ -15,7 +15,6 @@ import com.base.browserwhite.bean.ConstObject.GOOGLE
import
com.base.browserwhite.databinding.ActivityWebBrowserBinding
import
com.base.browserwhite.databinding.ActivityWebBrowserBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.fragment.HomeFragment
import
com.base.browserwhite.ui.fragment.HomeFragment
import
com.base.browserwhite.ui.fragment.WebViewFragment
import
com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import
com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.BarUtils
...
...
app/src/main/java/com/base/browserwhite/ui/
fragment
/WebViewFragment.kt
→
app/src/main/java/com/base/browserwhite/ui/
activity/webbrowser
/WebViewFragment.kt
View file @
def4fe73
package
com.base.browserwhite.ui.
fragment
package
com.base.browserwhite.ui.
activity.webbrowser
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.net.Uri
import
android.net.Uri
import
android.net.http.SslError
import
android.net.http.SslError
import
android.os.Handler
import
android.os.Looper
import
android.view.View
import
android.view.View
import
android.webkit.CookieManager
import
android.webkit.CookieManager
import
android.webkit.JsResult
import
android.webkit.JsResult
...
@@ -19,6 +17,7 @@ import android.webkit.WebView
...
@@ -19,6 +17,7 @@ import android.webkit.WebView
import
android.webkit.WebViewClient
import
android.webkit.WebViewClient
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.base.browserwhite.databinding.FragmentWebViewBinding
import
com.base.browserwhite.databinding.FragmentWebViewBinding
import
com.base.browserwhite.ui.fragment.BaseFragment
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
...
...
app/src/main/java/com/base/browserwhite/ui/adapter/DownloadAdapter.kt
View file @
def4fe73
...
@@ -25,11 +25,11 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV
...
@@ -25,11 +25,11 @@ class DownloadAdapter : BaseQuickAdapter<DownloadBean, DownloadAdapter.DownloadV
val
context
=
holder
.
itemView
.
context
val
context
=
holder
.
itemView
.
context
if
(
item
.
isTime
)
{
if
(
item
.
isTime
)
{
val
binding
=
ItemDownloadTimeBinding
.
bind
(
holder
.
itemView
)
val
binding
=
ItemDownloadTimeBinding
.
bind
(
holder
.
itemView
)
binding
.
tvTime
.
text
=
item
.
time
.
toFormatTime
()
binding
.
tvTime
.
text
=
item
.
time
}
else
{
}
else
{
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
).
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
()
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/FileFragment.kt
View file @
def4fe73
...
@@ -7,10 +7,14 @@ import android.view.View
...
@@ -7,10 +7,14 @@ import android.view.View
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
import
com.base.browserwhite.databinding.ActivityWebDownloadGuideBinding
import
com.base.browserwhite.databinding.FragmentFileBinding
import
com.base.browserwhite.databinding.FragmentFileBinding
import
com.base.browserwhite.ui.activity.MainActivity
import
com.base.browserwhite.ui.activity.MainActivity
import
com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import
com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import
com.base.browserwhite.ui.activity.download.WebDownloadGuideActivity
import
com.base.browserwhite.ui.activity.download.WebDownloadManagerActivity
import
com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity
import
com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity
import
com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import
com.base.browserwhite.ui.adapter.MediaAdapter
import
com.base.browserwhite.ui.adapter.MediaAdapter
import
com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import
com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import
com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
import
com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
...
@@ -124,6 +128,13 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
...
@@ -124,6 +128,13 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
putExtra
(
"tittle"
,
"Zip"
)
putExtra
(
"tittle"
,
"Zip"
)
})
})
}
}
binding
.
llDownload
.
setOnClickListener
{
// requireActivity().startActivity(Intent(requireContext(), WebBrowserActivity::class.java).apply {
// putExtra("url", "https://mixkit.co/free-stock-video/girl-dancing-happily-in-a-field-of-flowers-4702/")
// })
startActivity
(
Intent
(
requireContext
(),
WebDownloadManagerActivity
::
class
.
java
))
}
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
def4fe73
...
@@ -33,23 +33,14 @@ import com.base.browserwhite.ui.adapter.NewsAdapter
...
@@ -33,23 +33,14 @@ import com.base.browserwhite.ui.adapter.NewsAdapter
import
com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import
com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import
com.base.browserwhite.utils.AppPreferences
import
com.base.browserwhite.utils.AppPreferences
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.
utils
.NewsUtils.requestNews
import
com.base.browserwhite.
help
.NewsUtils.requestNews
import
com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import
okhttp3.Call
import
okhttp3.Callback
import
okhttp3.OkHttpClient
import
okhttp3.Request
import
okhttp3.Response
import
java.io.File
import
java.io.FileOutputStream
import
java.io.IOException
import
java.net.MalformedURLException
import
java.net.MalformedURLException
import
java.net.URL
import
java.net.URL
import
java.net.URLEncoder
import
java.net.URLEncoder
import
java.nio.charset.StandardCharsets
import
java.nio.charset.StandardCharsets
import
java.util.Locale
class
HomeFragment
:
BaseFragment
<
FragmentHomeBinding
>()
{
class
HomeFragment
:
BaseFragment
<
FragmentHomeBinding
>()
{
...
...
app/src/main/java/com/base/browserwhite/utils/EventUtils.kt
View file @
def4fe73
...
@@ -2,7 +2,8 @@ package com.base.browserwhite.utils
...
@@ -2,7 +2,8 @@ package com.base.browserwhite.utils
import
android.os.Build
import
android.os.Build
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.utils.ReportUtils.doPost
import
com.base.browserwhite.help.AESHelper
import
com.base.browserwhite.help.ReportUtils.doPost
import
org.json.JSONException
import
org.json.JSONException
import
org.json.JSONObject
import
org.json.JSONObject
...
...
app/src/main/java/com/base/browserwhite/utils/PermissionHelp.kt
View file @
def4fe73
...
@@ -9,7 +9,6 @@ import android.os.Build
...
@@ -9,7 +9,6 @@ import android.os.Build
import
android.os.Environment
import
android.os.Environment
import
android.provider.Settings
import
android.provider.Settings
import
androidx.core.app.ActivityCompat
import
androidx.core.app.ActivityCompat
import
com.base.browserwhite.utils.PermissionHelp.checkStorePermission
object
PermissionHelp
{
object
PermissionHelp
{
...
...
app/src/main/java/com/base/browserwhite/utils/VideoDownloader.kt
0 → 100644
View file @
def4fe73
package
com.base.browserwhite.utils
import
android.annotation.SuppressLint
import
android.app.DownloadManager
import
android.content.Context
import
android.database.Cursor
import
android.net.Uri
import
android.os.Environment
import
com.base.browserwhite.R
import
java.io.File
object
VideoDownloader
{
//https://assets.mixkit.co/videos/4702/4702-720.mp4
fun
downloadVideo
(
context
:
Context
,
uri
:
String
):
Pair
<
Long
,
File
>
{
val
downloadManager
=
context
.
getSystemService
(
Context
.
DOWNLOAD_SERVICE
)
as
DownloadManager
val
fileName
=
uri
.
split
(
"/"
).
last
()
// 创建一个DownloadManager.Request对象
val
request
=
DownloadManager
.
Request
(
Uri
.
parse
(
uri
))
// 设置下载的标题和描述
request
.
setTitle
(
fileName
)
request
.
setDescription
(
"Downloading $fileName"
)
// 设置通知栏的可见性
request
.
setNotificationVisibility
(
DownloadManager
.
Request
.
VISIBILITY_VISIBLE_NOTIFY_COMPLETED
)
// 设置下载的文件类型
request
.
setMimeType
(
"video/mp4"
)
// 设置下载文件的存储位置
val
subPath
=
context
.
resources
.
getString
(
R
.
string
.
app_name
)
+
"/$fileName"
request
.
setDestinationInExternalPublicDir
(
Environment
.
DIRECTORY_DOWNLOADS
,
subPath
)
// 设置是否允许漫游
request
.
setAllowedOverRoaming
(
false
)
// 将下载请求加入下载队列
val
downloadId
=
downloadManager
.
enqueue
(
request
)
val
filePath
=
File
(
Environment
.
getExternalStoragePublicDirectory
(
Environment
.
DIRECTORY_DOWNLOADS
),
subPath
)
return
Pair
(
downloadId
,
filePath
)
}
fun
queryDownloadProgress
(
context
:
Context
,
downloadId
:
Long
,
uiAction
:
(
progress
:
Int
)
->
Uri
,
noRunningAction
:
(
status
:
Int
)
->
Uri
)
{
val
downloadManager
=
context
.
getSystemService
(
Context
.
DOWNLOAD_SERVICE
)
as
DownloadManager
// 创建查询对象
val
query
=
DownloadManager
.
Query
().
setFilterById
(
downloadId
)
// 执行查询
val
cursor
=
downloadManager
.
query
(
query
)
// 检查游标是否有数据
if
(
cursor
!=
null
&&
cursor
.
moveToFirst
())
{
// 获取下载的状态
val
columnIndexStatus
=
cursor
.
getColumnIndex
(
DownloadManager
.
COLUMN_STATUS
)
val
status
=
cursor
.
getInt
(
columnIndexStatus
)
// 检查下载是否还在进行中
if
(
status
==
DownloadManager
.
STATUS_RUNNING
)
{
// 获取下载的进度
val
columnIndexBytesDownloadedSoFar
=
cursor
.
getColumnIndex
(
DownloadManager
.
COLUMN_BYTES_DOWNLOADED_SO_FAR
)
val
bytesDownloadedSoFar
=
cursor
.
getLong
(
columnIndexBytesDownloadedSoFar
)
val
columnIndexTotalSizeBytes
=
cursor
.
getColumnIndex
(
DownloadManager
.
COLUMN_TOTAL_SIZE_BYTES
)
val
totalSizeBytes
=
cursor
.
getLong
(
columnIndexTotalSizeBytes
)
// 计算下载的百分比
val
progress
=
(
100
*
bytesDownloadedSoFar
.
toFloat
()
/
totalSizeBytes
.
toFloat
()).
toInt
()
// 在这里处理进度更新,例如更新UI
uiAction
.
invoke
(
progress
)
}
else
{
// 处理下载完成或出错的情况
noRunningAction
.
invoke
(
status
)
when
(
status
)
{
DownloadManager
.
STATUS_PAUSED
->
{
println
(
"Download paused"
)
}
DownloadManager
.
STATUS_FAILED
->
{
println
(
"Download failed"
)
}
DownloadManager
.
STATUS_SUCCESSFUL
->
{
println
(
"Download successful"
)
}
}
}
// 关闭游标
cursor
.
close
()
}
}
@SuppressLint
(
"Range"
)
fun
queryDownloadFilePath
(
context
:
Context
,
downloadId
:
Long
):
String
{
var
filePath
:
String
=
""
val
downloadManager
=
context
.
getSystemService
(
Context
.
DOWNLOAD_SERVICE
)
as
DownloadManager
runCatching
{
val
query
=
DownloadManager
.
Query
().
setFilterById
(
downloadId
)
val
cursor
:
Cursor
=
downloadManager
.
query
(
query
)
if
(
cursor
.
moveToFirst
())
{
val
status
=
cursor
.
getInt
(
cursor
.
getColumnIndex
(
DownloadManager
.
COLUMN_STATUS
))
if
(
status
==
DownloadManager
.
STATUS_SUCCESSFUL
)
{
//下载文件的本地路径
filePath
=
cursor
.
getString
(
cursor
.
getColumnIndex
(
DownloadManager
.
COLUMN_LOCAL_FILENAME
))
}
}
cursor
.
close
()
}
return
filePath
}
}
\ No newline at end of file
app/src/main/res/layout/activity_web_download_guide.xml
View file @
def4fe73
...
@@ -5,6 +5,80 @@
...
@@ -5,6 +5,80 @@
android:id=
"@+id/main"
android:id=
"@+id/main"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"#4688C5"
tools:context=
".ui.activity.download.WebDownloadGuideActivity"
>
tools:context=
".ui.activity.download.WebDownloadGuideActivity"
>
<FrameLayout
android:id=
"@+id/fl_top"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintTop_toTopOf=
"parent"
>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|start"
android:layout_marginVertical=
"10dp"
android:layout_marginStart=
"10dp"
tools:ignore=
"UselessParent"
>
<FrameLayout
android:id=
"@+id/fl_fanhui"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"10dp"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/w_fanhui"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:text=
"How to download videos"
android:textColor=
"@color/white"
android:textSize=
"19sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
</LinearLayout>
</FrameLayout>
<androidx.viewpager2.widget.ViewPager2
android:id=
"@+id/viewPager2"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
app:layout_constraintBottom_toTopOf=
"@id/iv_before"
app:layout_constraintTop_toBottomOf=
"@id/fl_top"
/>
<ImageView
android:id=
"@+id/iv_before"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"20dp"
android:layout_marginBottom=
"45dp"
android:src=
"@mipmap/shangyibu"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv_next"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"20dp"
android:layout_marginBottom=
"45dp"
android:src=
"@mipmap/xiayibu"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
tools:ignore=
"ContentDescription"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/activity_web_download_manager.xml
View file @
def4fe73
...
@@ -61,6 +61,13 @@
...
@@ -61,6 +61,13 @@
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:layout_weight=
"1"
>
android:layout_weight=
"1"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_download"
/>
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_empty"
android:id=
"@+id/ll_empty"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
...
@@ -92,6 +99,8 @@
...
@@ -92,6 +99,8 @@
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:layout_marginTop=
"22dp"
android:layout_marginTop=
"22dp"
android:background=
"@drawable/bg_0571ed_25"
android:background=
"@drawable/bg_0571ed_25"
android:clickable=
"true"
android:focusable=
"true"
android:gravity=
"center"
android:gravity=
"center"
android:text=
"How to download videos"
android:text=
"How to download videos"
android:textColor=
"@color/white"
android:textColor=
"@color/white"
...
@@ -99,14 +108,6 @@
...
@@ -99,14 +108,6 @@
tools:ignore=
"HardcodedText"
/>
tools:ignore=
"HardcodedText"
/>
</LinearLayout>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_download"
/>
</FrameLayout>
</FrameLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_download_guide.xml
0 → 100644
View file @
def4fe73
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/main"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"#4688C5"
tools:context=
".ui.activity.download.WebDownloadGuideActivity"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/tu1"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintVertical_bias=
"0.35"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_file.xml
View file @
def4fe73
...
@@ -248,13 +248,13 @@
...
@@ -248,13 +248,13 @@
</androidx.cardview.widget.CardView>
</androidx.cardview.widget.CardView>
<LinearLayout
<LinearLayout
android:id=
"@+id/ll_download"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"70dp"
android:layout_height=
"70dp"
android:layout_margin=
"16dp"
android:layout_margin=
"16dp"
android:background=
"@drawable/bg_storke_dee9f4"
android:background=
"@drawable/bg_storke_dee9f4"
android:elevation=
"0dp"
android:elevation=
"0dp"
android:orientation=
"horizontal"
android:orientation=
"horizontal"
>
android:visibility=
"gone"
>
<ImageView
<ImageView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
...
@@ -305,7 +305,6 @@
...
@@ -305,7 +305,6 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"165dp"
android:layout_height=
"165dp"
android:layout_marginHorizontal=
"16dp"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"12dp"
android:layout_marginBottom=
"8dp"
android:layout_marginBottom=
"8dp"
android:background=
"@drawable/bg_storke_dee9f4"
android:background=
"@drawable/bg_storke_dee9f4"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
...
...
app/src/main/res/layout/fragment_web_view.xml
View file @
def4fe73
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
android:orientation=
"vertical"
tools:context=
".ui.
fragment
.WebViewFragment"
>
tools:context=
".ui.
activity.webbrowser
.WebViewFragment"
>
<ProgressBar
<ProgressBar
android:id=
"@+id/progress_bar"
android:id=
"@+id/progress_bar"
...
...
app/src/main/res/mipmap-xxhdpi/shangyibu.png
0 → 100644
View file @
def4fe73
8.35 KB
app/src/main/res/mipmap-xxhdpi/tu1.png
0 → 100644
View file @
def4fe73
58.5 KB
app/src/main/res/mipmap-xxhdpi/w_fanhui.png
0 → 100644
View file @
def4fe73
649 Bytes
app/src/main/res/mipmap-xxhdpi/xiayibu.png
0 → 100644
View file @
def4fe73
8.05 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