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
0e171b64
Commit
0e171b64
authored
Aug 20, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
93e17847
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
206 additions
and
16 deletions
+206
-16
NewsBean.kt
app/src/main/java/com/base/browserwhite/bean/NewsBean.kt
+8
-1
NewsActivity.kt
...va/com/base/browserwhite/ui/activity/news/NewsActivity.kt
+100
-0
ResultActivity.kt
...om/base/browserwhite/ui/activity/result/ResultActivity.kt
+11
-5
NewsAdapter.kt
...main/java/com/base/browserwhite/ui/adapter/NewsAdapter.kt
+7
-2
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+11
-4
activity_news.xml
app/src/main/res/layout/activity_news.xml
+55
-3
item_news.xml
app/src/main/res/layout/item_news.xml
+0
-1
item_tab_news.xml
app/src/main/res/layout/item_tab_news.xml
+14
-0
No files found.
app/src/main/java/com/base/browserwhite/bean/NewsBean.kt
View file @
0e171b64
...
...
@@ -11,4 +11,11 @@ class NewsBean(
val
type
:
Int
=
0
,
val
linkPath
:
String
=
""
,
//网站链接
)
{
}
\ No newline at end of file
}
// 栏目类别 0:最新 , 101 :政治, 301:体育 ,娱乐:501 ,
//世界:2401,生活方式:2001,公共安全:1802,经济:401
class
NewsCategory
(
val
id
:
Int
=
0
,
val
name
:
String
=
""
)
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/news/NewsActivity.kt
View file @
0e171b64
package
com.base.browserwhite.ui.activity.news
import
android.graphics.Color
import
androidx.activity.addCallback
import
androidx.core.view.updatePadding
import
com.base.browserwhite.bean.NewsCategory
import
com.base.browserwhite.databinding.ActivityNewsBinding
import
com.base.browserwhite.databinding.ItemTabNewsBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.adapter.NewsAdapter
import
com.base.browserwhite.utils.BarUtils
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.NewsUtils
import
com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
class
NewsActivity
:
BaseActivity
<
ActivityNewsBinding
>()
{
private
val
TAG
=
"NewsActivity"
override
val
binding
:
ActivityNewsBinding
by
lazy
{
ActivityNewsBinding
.
inflate
(
layoutInflater
)
}
private
lateinit
var
newsAdapter
:
NewsAdapter
private
lateinit
var
helper
:
QuickAdapterHelper
private
var
isLoading
=
false
private
var
currentCategory
:
Int
=
0
override
fun
initView
()
{
BarUtils
.
setStatusBarLightMode
(
this
,
true
)
BarUtils
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
)
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
newsAdapter
=
NewsAdapter
(
false
,
clickAction
=
{
})
helper
=
QuickAdapterHelper
.
Builder
(
newsAdapter
).
setTrailingLoadStateAdapter
(
object
:
TrailingLoadStateAdapter
.
OnTrailingListener
{
override
fun
onLoad
()
{
LogEx
.
logDebug
(
TAG
,
"onLoad"
)
requestMore
(
currentCategory
)
}
override
fun
onFailRetry
()
{
LogEx
.
logDebug
(
TAG
,
"onFailRetry"
)
requestMore
(
currentCategory
)
}
override
fun
isAllowLoading
():
Boolean
{
LogEx
.
logDebug
(
TAG
,
"isLoading=$isLoading"
)
return
!
isLoading
}
}).
build
()
binding
.
rv
.
adapter
=
helper
.
adapter
val
category
=
arrayOf
(
NewsCategory
(
0
,
"Latest"
),
NewsCategory
(
101
,
"Political"
),
NewsCategory
(
301
,
"Sports"
),
NewsCategory
(
501
,
"Entertainment"
),
NewsCategory
(
2401
,
"Word"
),
NewsCategory
(
2001
,
"Lifestyle"
),
NewsCategory
(
1802
,
"Public Safety"
),
NewsCategory
(
401
,
"Economic"
),
)
category
.
forEach
{
bean
->
val
tabBinding
=
ItemTabNewsBinding
.
inflate
(
layoutInflater
)
tabBinding
.
tv
.
text
=
bean
.
name
binding
.
tabLayout
.
addView
(
tabBinding
.
root
)
}
binding
.
tabLayout
.
observeIndexChange
{
fromIndex
,
toIndex
,
reselect
,
fromUser
->
if
(!
reselect
)
{
val
bean
=
category
[
toIndex
]
currentCategory
=
bean
.
id
requestMore
(
bean
.
id
,
true
)
}
}
}
override
fun
initListener
()
{
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
finishToMain
()
}
binding
.
ivGuanbi
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
}
}
private
fun
requestMore
(
categoryId
:
Int
,
changeCategory
:
Boolean
=
false
)
{
isLoading
=
true
helper
.
trailingLoadState
=
LoadState
.
None
val
lastNewsId
=
newsAdapter
.
getLastPageNumber
()
LogEx
.
logDebug
(
TAG
,
"requestMore lastNewsId=$lastNewsId"
)
NewsUtils
.
requestNews
(
categoryId
=
categoryId
,
pageNumber
=
lastNewsId
,
errorCallBack
=
{
isLoading
=
false
LogEx
.
logDebug
(
TAG
,
"errorCallBack"
)
},
beanCallBack
=
{
isLoading
=
false
binding
.
root
.
post
{
LogEx
.
logDebug
(
TAG
,
"beanCallBack"
)
if
(
lastNewsId
==
null
||
changeCategory
)
{
newsAdapter
.
submitList
(
it
)
}
else
{
newsAdapter
.
addAll
(
it
)
}
helper
.
trailingLoadState
=
LoadState
.
NotLoading
(
false
)
}
})
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/result/ResultActivity.kt
View file @
0e171b64
...
...
@@ -7,6 +7,7 @@ import androidx.activity.addCallback
import
com.base.browserwhite.bean.ConstObject.JUNK_CLEANER
import
com.base.browserwhite.databinding.ActivityResultBinding
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.webbrowser.WebBrowserActivity
import
com.base.browserwhite.ui.adapter.NewsAdapter
...
...
@@ -47,11 +48,16 @@ class ResultActivity : BaseActivity<ActivityResultBinding>() {
}
}
}
newsAdapter
=
NewsAdapter
{
url
->
startActivity
(
Intent
(
this
,
NewsDetailActivity
::
class
.
java
).
apply
{
putExtra
(
"url"
,
url
)
})
}
newsAdapter
=
NewsAdapter
(
clickAction
=
{
url
->
startActivity
(
Intent
(
this
,
NewsDetailActivity
::
class
.
java
).
apply
{
putExtra
(
"url"
,
url
)
})
},
moreAction
=
{
}
)
helper
=
QuickAdapterHelper
.
Builder
(
newsAdapter
).
setTrailingLoadStateAdapter
(
object
:
TrailingLoadStateAdapter
.
OnTrailingListener
{
override
fun
onLoad
()
{
...
...
app/src/main/java/com/base/browserwhite/ui/adapter/NewsAdapter.kt
View file @
0e171b64
...
...
@@ -5,6 +5,7 @@ import android.content.Context
import
android.graphics.drawable.Drawable
import
android.view.View
import
android.view.ViewGroup
import
androidx.core.view.isVisible
import
androidx.recyclerview.widget.RecyclerView.ViewHolder
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.NewsBean
...
...
@@ -20,7 +21,8 @@ import com.bumptech.glide.request.target.Target
import
com.chad.library.adapter4.BaseQuickAdapter
class
NewsAdapter
(
val
clickAction
:
(
url
:
String
)
->
Unit
val
showMore
:
Boolean
=
true
,
val
clickAction
:
(
url
:
String
)
->
Unit
,
val
moreAction
:
(()
->
Unit
)?
=
null
)
:
BaseQuickAdapter
<
NewsBean
,
NewsAdapter
.
NewsViewHolder
>()
{
private
val
TAG
=
"NewsAdapter"
...
...
@@ -41,7 +43,7 @@ class NewsAdapter(
val
binding
=
ItemNewsBinding
.
bind
(
holder
.
itemView
)
if
(
items
.
first
()
==
item
)
{
if
(
items
.
first
()
==
item
&&
showMore
)
{
binding
.
ll
.
visibility
=
View
.
VISIBLE
}
else
{
binding
.
ll
.
visibility
=
View
.
GONE
...
...
@@ -79,6 +81,9 @@ class NewsAdapter(
binding
.
root
.
setOnClickListener
{
clickAction
.
invoke
(
item
.
linkPath
)
}
binding
.
tvMore
.
setOnClickListener
{
moreAction
?.
invoke
()
}
}
fun
getLastPageNumber
():
Long
?
{
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
0e171b64
...
...
@@ -22,6 +22,7 @@ import com.base.browserwhite.bean.webSiteGroupBeanList
import
com.base.browserwhite.databinding.FragmentHomeBinding
import
com.base.browserwhite.service.StayNotificationService.Companion.restartStartStayNotification
import
com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import
com.base.browserwhite.ui.activity.news.NewsActivity
import
com.base.browserwhite.ui.activity.news.NewsDetailActivity
import
com.base.browserwhite.ui.activity.scanqrc.ScanQRCActivity
import
com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
...
...
@@ -68,11 +69,17 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
override
fun
setView
()
{
newsAdapter
=
NewsAdapter
{
url
->
requireContext
().
startActivity
(
Intent
(
requireContext
(),
NewsDetailActivity
::
class
.
java
).
apply
{
putExtra
(
"url"
,
url
)
newsAdapter
=
NewsAdapter
(
clickAction
=
{
url
->
requireContext
().
startActivity
(
Intent
(
requireContext
(),
NewsDetailActivity
::
class
.
java
).
apply
{
putExtra
(
"url"
,
url
)
})
},
moreAction
=
{
startActivity
(
Intent
(
requireContext
(),
NewsActivity
::
class
.
java
).
apply
{
})
})
}
helper
=
QuickAdapterHelper
.
Builder
(
newsAdapter
).
setTrailingLoadStateAdapter
(
object
:
TrailingLoadStateAdapter
.
OnTrailingListener
{
override
fun
onLoad
()
{
...
...
app/src/main/res/layout/activity_news.xml
View file @
0e171b64
<?xml version="1.0" encoding="utf-8"?>
<
androidx.constraintlayout.widget.Constraint
Layout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
Linear
Layout
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"
tools:context=
".ui.activity.news.NewsActivity"
>
android:orientation=
"vertical"
tools:context=
".ui.activity.webstore.WevStoreActivity"
>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
tools:ignore=
"UselessParent"
>
<TextView
android:id=
"@+id/tv_title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|start"
android:layout_marginVertical=
"15dp"
android:layout_marginStart=
"15dp"
android:text=
"News"
android:textColor=
"@color/black"
android:textSize=
"25sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:id=
"@+id/iv_guanbi"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"18dp"
android:src=
"@mipmap/w_guanbi"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<com.angcyo.tablayout.DslTabLayout
android:id=
"@+id/tabLayout"
android:layout_width=
"match_parent"
android:layout_height=
"45dp"
android:layout_marginHorizontal=
"16dp"
android:layout_marginVertical=
"10dp"
app:tab_deselect_color=
"@color/black"
app:tab_divider_solid_color=
"@android:color/transparent"
app:tab_divider_width=
"16dp"
app:tab_draw_divider=
"true"
app:tab_enable_ico_color=
"false"
app:tab_indicator_style=
"STYLE_NONE"
app:tab_select_color=
"@color/white"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:nestedScrollingEnabled=
"false"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_news"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/item_news.xml
View file @
0e171b64
...
...
@@ -34,7 +34,6 @@
android:textColor=
"#0571ED"
android:textSize=
"15sp"
android:textStyle=
"bold"
android:visibility=
"invisible"
tools:ignore=
"HardcodedText"
/>
</FrameLayout>
...
...
app/src/main/res/layout/item_tab_news.xml
0 → 100644
View file @
0e171b64
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/tv"
android:layout_width=
"wrap_content"
android:layout_height=
"40dp"
android:layout_gravity=
"center_vertical"
android:background=
"@drawable/bg_tab_selector_webstore"
android:gravity=
"center"
android:paddingHorizontal=
"18dp"
android:paddingVertical=
"5dp"
android:textSize=
"17sp"
android:textStyle=
"bold"
tools:text=
"Latest"
/>
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