Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
com.ccwangluo.accelerator
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sheteng
com.ccwangluo.accelerator
Commits
f0acd09f
Commit
f0acd09f
authored
Feb 17, 2022
by
sheteng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
与 H5 对接
parent
f6b90158
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
181 additions
and
59 deletions
+181
-59
app/src/main/java/com/ccwangluo/accelerator/model/NewsRes.kt
app/src/main/java/com/ccwangluo/accelerator/model/NewsRes.kt
+13
-0
app/src/main/java/com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
.../com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
+11
-4
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
...rc/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
+3
-4
app/src/main/java/com/ccwangluo/accelerator/ui/dialog/MemberDialog.kt
.../java/com/ccwangluo/accelerator/ui/dialog/MemberDialog.kt
+1
-1
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
...a/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
+49
-2
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorViewModel.kt
.../com/ccwangluo/accelerator/ui/home/AccelertorViewModel.kt
+1
-0
app/src/main/java/com/ccwangluo/accelerator/ui/home/MineFragment.kt
...in/java/com/ccwangluo/accelerator/ui/home/MineFragment.kt
+24
-5
app/src/main/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
...in/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
+1
-1
app/src/main/java/com/ccwangluo/accelerator/ui/news/DemoObjectFragment.kt
...a/com/ccwangluo/accelerator/ui/news/DemoObjectFragment.kt
+13
-9
app/src/main/java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
...java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
+36
-8
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
...c/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
+7
-7
app/src/main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
.../main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
+1
-3
app/src/main/res/layout/fragment_mine.xml
app/src/main/res/layout/fragment_mine.xml
+1
-1
app/src/main/res/layout/fragment_quick.xml
app/src/main/res/layout/fragment_quick.xml
+15
-10
app/src/main/res/layout/fragment_webview.xml
app/src/main/res/layout/fragment_webview.xml
+1
-1
core/src/main/java/com/github/shadowsocks/HttpConfig.kt
core/src/main/java/com/github/shadowsocks/HttpConfig.kt
+2
-2
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
+2
-1
No files found.
app/src/main/java/com/ccwangluo/accelerator/model/NewsRes.kt
0 → 100644
View file @
f0acd09f
package
com.ccwangluo.accelerator.model
data class
NewsRes
(
val
avatar
:
String
?,
val
content
:
String
?,
val
createdDate
:
String
?,
val
greatNum
:
Int
?,
val
id
:
Int
?,
val
nickname
:
String
?,
val
title
:
String
?,
val
video
:
String
?,
val
videoName
:
String
?
)
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
View file @
f0acd09f
...
@@ -18,7 +18,7 @@ import com.xuexiang.xui.adapter.FragmentAdapter
...
@@ -18,7 +18,7 @@ import com.xuexiang.xui.adapter.FragmentAdapter
import
com.xuexiang.xutil.common.CollectionUtils
import
com.xuexiang.xutil.common.CollectionUtils
@Page
(
name
=
"
主页
"
)
@Page
(
name
=
"
main
"
)
class
BottomNavigationFragment
:
XPageFragment
(),
ViewPager
.
OnPageChangeListener
,
class
BottomNavigationFragment
:
XPageFragment
(),
ViewPager
.
OnPageChangeListener
,
BottomNavigationView
.
OnNavigationItemSelectedListener
{
BottomNavigationView
.
OnNavigationItemSelectedListener
{
private
lateinit
var
accelertorViewModel
:
AccelertorViewModel
private
lateinit
var
accelertorViewModel
:
AccelertorViewModel
...
@@ -37,15 +37,20 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
...
@@ -37,15 +37,20 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
}
}
var
titles
=
arrayOf
(
"加速"
,
"资讯"
,
"我的"
)
var
titles
=
arrayOf
(
"加速"
,
"资讯"
,
"我的"
)
var
fragments
=
arrayOf
(
AccelertorFragment
.
newInstance
(),
NewsFragment
.
newInstance
(),
MineFragment
.
newInstance
()
)
override
fun
initViews
()
{
override
fun
initViews
()
{
val
adapter
=
FragmentAdapter
<
XPageFragment
>(
val
adapter
=
FragmentAdapter
<
XPageFragment
>(
childFragmentManager
childFragmentManager
)
)
adapter
.
addFragment
(
AccelertorFragment
.
newInstance
()
,
titles
[
0
])
adapter
.
addFragment
(
fragments
[
0
]
,
titles
[
0
])
adapter
.
addFragment
(
NewsFragment
.
newInstance
()
,
titles
[
1
])
adapter
.
addFragment
(
fragments
[
1
]
,
titles
[
1
])
adapter
.
addFragment
(
MineFragment
.
newInstance
()
,
titles
[
2
])
adapter
.
addFragment
(
fragments
[
2
]
,
titles
[
2
])
binding
.
viewPager
.
setOffscreenPageLimit
(
titles
.
size
-
1
);
binding
.
viewPager
.
setOffscreenPageLimit
(
titles
.
size
-
1
);
binding
.
viewPager
.
adapter
=
adapter
binding
.
viewPager
.
adapter
=
adapter
...
@@ -61,11 +66,13 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
...
@@ -61,11 +66,13 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
override
fun
onHiddenChanged
(
hidden
:
Boolean
)
{
override
fun
onHiddenChanged
(
hidden
:
Boolean
)
{
super
.
onHiddenChanged
(
hidden
)
super
.
onHiddenChanged
(
hidden
)
fragments
[
binding
.
viewPager
.
currentItem
].
onHiddenChanged
(
hidden
)
if
(
hidden
)
{
if
(
hidden
)
{
getUserProfile
()
getUserProfile
()
}
}
}
}
fun
getUserProfile
()
{
fun
getUserProfile
()
{
LoginUtils
.
token
?.
let
{
LoginUtils
.
token
?.
let
{
LoginUtils
.
getUserProfile
(
this
)
{
LoginUtils
.
getUserProfile
(
this
)
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
View file @
f0acd09f
...
@@ -10,9 +10,8 @@ import com.ccwangluo.accelerator.ui.dialog.PrivacyDialog
...
@@ -10,9 +10,8 @@ import com.ccwangluo.accelerator.ui.dialog.PrivacyDialog
import
com.ccwangluo.accelerator.ui.home.AccelertorViewModel
import
com.ccwangluo.accelerator.ui.home.AccelertorViewModel
import
com.ccwangluo.accelerator.ui.login.SplashFragment
import
com.ccwangluo.accelerator.ui.login.SplashFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.PhoneUtils
import
com.ccwangluo.accelerator.utils.PhoneUtils
import
com.
ccwangluo.accelerator.utils.http
.HttpConfig
import
com.
github.shadowsocks
.HttpConfig
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.utils.StartService
import
com.github.shadowsocks.utils.StartService
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
...
@@ -85,14 +84,14 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -85,14 +84,14 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
Tencent
.
setIsPermissionGranted
(
true
)
Tencent
.
setIsPermissionGranted
(
true
)
//隐私协议
//隐私协议
if
(!
SettingSPUtils
.
isAgreePrivacy
)
{
if
(!
SettingSPUtils
.
isAgreePrivacy
)
{
PrivacyDialog
(
this
,
HttpConfig
.
privacy_url
,
{
PrivacyDialog
(
this
,
HttpConfig
.
privacy_url
)
{
if
(
it
)
{
if
(
it
)
{
SettingSPUtils
.
isAgreePrivacy
=
true
SettingSPUtils
.
isAgreePrivacy
=
true
}
else
{
}
else
{
finish
()
finish
()
}
}
}
)
.
show
<
PrivacyDialog
>()
}.
show
<
PrivacyDialog
>()
}
}
AcceleratorUtils
.
initConnect
(
this
,
connect
)
AcceleratorUtils
.
initConnect
(
this
,
connect
)
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/dialog/MemberDialog.kt
View file @
f0acd09f
...
@@ -5,7 +5,7 @@ import android.os.Bundle
...
@@ -5,7 +5,7 @@ import android.os.Bundle
import
android.widget.ImageView
import
android.widget.ImageView
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.
ccwangluo.accelerator.utils.http
.HttpConfig
import
com.
github.shadowsocks
.HttpConfig
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xui.widget.dialog.materialdialog.CustomMaterialDialog
import
com.xuexiang.xui.widget.dialog.materialdialog.CustomMaterialDialog
import
com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
import
com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
View file @
f0acd09f
package
com.ccwangluo.accelerator.ui.home
package
com.ccwangluo.accelerator.ui.home
import
android.graphics.Color
import
android.graphics.Color
import
android.os.Bundle
import
android.view.LayoutInflater
import
android.view.LayoutInflater
import
android.view.View
import
android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
...
@@ -12,10 +13,12 @@ import com.ccwangluo.accelerator.R
...
@@ -12,10 +13,12 @@ import com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.databinding.FragmentQuickBinding
import
com.ccwangluo.accelerator.databinding.FragmentQuickBinding
import
com.ccwangluo.accelerator.ui.dialog.CommonDialog
import
com.ccwangluo.accelerator.ui.dialog.CommonDialog
import
com.ccwangluo.accelerator.ui.dialog.MemberDialog
import
com.ccwangluo.accelerator.ui.dialog.MemberDialog
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.HttpConfig
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.bg.BaseService
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
...
@@ -97,17 +100,45 @@ class AccelertorFragment : XPageFragment() {
...
@@ -97,17 +100,45 @@ class AccelertorFragment : XPageFragment() {
freshData
(
it
,
acc_timer
)
freshData
(
it
,
acc_timer
)
})
})
accelertorViewModel
.
userProfile
.
observe
(
this
,{
accelertorViewModel
.
userProfile
.
observe
(
this
,
{
if
(
it
.
hasUnreadNotice
)
{
if
(
it
.
hasUnreadNotice
)
{
binding
.
iconNoticeBadge
.
visibility
=
View
.
VISIBLE
binding
.
iconNoticeBadge
.
visibility
=
View
.
VISIBLE
}
else
{
}
else
{
binding
.
iconNoticeBadge
.
visibility
=
View
.
GONE
binding
.
iconNoticeBadge
.
visibility
=
View
.
GONE
}
}
})
})
binding
.
progressViewCircleSmall
.
setProgressTextVisibility
(
false
)
}
}
override
fun
initListeners
()
{
override
fun
initListeners
()
{
binding
.
iconNotice
.
setOnClickListener
{
openToWebview
(
"/message"
)
}
binding
.
gamePage
.
setOnClickListener
{
openToWebview
(
"/game"
)
}
binding
.
smartAccOpen
.
setOnClickListener
{
if
(!
SettingSPUtils
.
isSmartAccOpen
)
{
openToWebview
(
"/setting"
)
}
}
binding
.
smartAccOpenBtn
.
setOnClickListener
{
if
(!
SettingSPUtils
.
isSmartAccOpen
)
{
openToWebview
(
"/setting"
)
}
}
binding
.
preventAccLost
.
setOnClickListener
{
openToWebview
(
"/questionDetail"
)
}
binding
.
preventAccInvalid
.
setOnClickListener
{
openToWebview
(
"/speed"
)
}
binding
.
btnExpend
.
setOnClickListener
{
binding
.
btnExpend
.
setOnClickListener
{
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
binding
.
expandableLayout1
.
toggle
()
binding
.
expandableLayout1
.
toggle
()
...
@@ -160,6 +191,22 @@ class AccelertorFragment : XPageFragment() {
...
@@ -160,6 +191,22 @@ class AccelertorFragment : XPageFragment() {
}
}
}
}
fun
openToWebview
(
url
:
String
)
{
val
params
=
Bundle
()
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
UI_MAIN_URL
+
url
)
LoginUtils
.
token
?.
let
{
openPage
(
CommonWebViewFragment
::
class
.
java
,
params
)
}
?:
let
{
LoginUtils
.
login
(
this
,
{
if
(
true
)
{
openPage
(
CommonWebViewFragment
::
class
.
java
,
params
)
}
})
}
}
override
fun
onResume
()
{
override
fun
onResume
()
{
super
.
onResume
()
super
.
onResume
()
AcceleratorUtils
.
registerStateListener
{
state
,
l
,
net
->
AcceleratorUtils
.
registerStateListener
{
state
,
l
,
net
->
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorViewModel.kt
View file @
f0acd09f
...
@@ -25,6 +25,7 @@ class AccelertorViewModel : ViewModel() {
...
@@ -25,6 +25,7 @@ class AccelertorViewModel : ViewModel() {
//加速状态
//加速状态
var
accState
=
MutableLiveData
<
BaseService
.
State
>()
var
accState
=
MutableLiveData
<
BaseService
.
State
>()
//用户状态
var
userProfile
=
MutableLiveData
<
UserProfile
>()
var
userProfile
=
MutableLiveData
<
UserProfile
>()
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/ui/home/MineFragment.kt
View file @
f0acd09f
package
com.ccwangluo.accelerator.ui.home
package
com.ccwangluo.accelerator.ui.home
import
android.content.Intent
import
android.view.LayoutInflater
import
android.view.LayoutInflater
import
android.view.View
import
android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
...
@@ -8,7 +9,7 @@ import androidx.fragment.app.Fragment
...
@@ -8,7 +9,7 @@ import androidx.fragment.app.Fragment
import
com.ccwangluo.accelerator.databinding.FragmentMineBinding
import
com.ccwangluo.accelerator.databinding.FragmentMineBinding
import
com.ccwangluo.accelerator.ui.web.AndroidInterface
import
com.ccwangluo.accelerator.ui.web.AndroidInterface
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.
ccwangluo.accelerator.utils.http
.HttpConfig
import
com.
github.shadowsocks
.HttpConfig
import
com.just.agentweb.core.AgentWeb
import
com.just.agentweb.core.AgentWeb
import
com.just.agentweb.core.client.DefaultWebClient
import
com.just.agentweb.core.client.DefaultWebClient
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
...
@@ -18,7 +19,7 @@ import com.xuexiang.xpage.utils.TitleBar
...
@@ -18,7 +19,7 @@ import com.xuexiang.xpage.utils.TitleBar
class
MineFragment
:
XPageFragment
()
{
class
MineFragment
:
XPageFragment
()
{
private
var
_binding
:
FragmentMineBinding
?
=
null
private
var
_binding
:
FragmentMineBinding
?
=
null
private
val
binding
get
()
=
_binding
!!
private
val
binding
get
()
=
_binding
!!
var
agentWeb
:
AgentWeb
?
=
null
private
var
agentWeb
:
AgentWeb
?
=
null
override
fun
initTitleBar
():
TitleBar
?
{
override
fun
initTitleBar
():
TitleBar
?
{
//不使用@Page标注的一定要注意覆盖这个方法
//不使用@Page标注的一定要注意覆盖这个方法
...
@@ -35,9 +36,9 @@ class MineFragment : XPageFragment() {
...
@@ -35,9 +36,9 @@ class MineFragment : XPageFragment() {
LoginUtils
.
token
?.
let
{
LoginUtils
.
token
?.
let
{
weburl
=
weburl
+
"?token=$it"
weburl
=
weburl
+
"?token=$it"
}
}
val
agentWeb
=
agentWeb
=
createAgentWeb
(
this
,
binding
.
mineWebview
,
weburl
)
createAgentWeb
(
this
,
binding
.
mineWebview
,
weburl
)
agentWeb
.
getJsInterfaceHolder
().
addJavaObject
(
"android"
,
AndroidInterface
(
this
,
agentWeb
))
agentWeb
?.
getJsInterfaceHolder
()
?.
addJavaObject
(
"android"
,
AndroidInterface
(
this
,
agentWeb
!!
))
}
}
override
fun
initListeners
()
{
override
fun
initListeners
()
{
...
@@ -72,11 +73,29 @@ class MineFragment : XPageFragment() {
...
@@ -72,11 +73,29 @@ class MineFragment : XPageFragment() {
super
.
setUserVisibleHint
(
isVisibleToUser
)
super
.
setUserVisibleHint
(
isVisibleToUser
)
if
(
isVisibleToUser
)
{
if
(
isVisibleToUser
)
{
LoginUtils
.
token
?.
let
{
LoginUtils
.
token
?.
let
{
// TODO: 2022/2/16 调用h5 设置token
agentWeb
?.
getJsAccessEntrace
()
?.
quickCallJs
(
"userToken"
,
it
)
}
?:
let
{
agentWeb
?.
getJsAccessEntrace
()
?.
quickCallJs
(
"clearToken"
)
}
}
}
}
}
}
override
fun
onHiddenChanged
(
hidden
:
Boolean
)
{
super
.
onHiddenChanged
(
hidden
)
if
(!
hidden
)
{
LoginUtils
.
token
?.
let
{
agentWeb
?.
getJsAccessEntrace
()
?.
quickCallJs
(
"userToken"
,
it
)
}
?:
let
{
agentWeb
?.
getJsAccessEntrace
()
?.
quickCallJs
(
"clearToken"
)
}
}
}
override
fun
onPause
()
{
override
fun
onPause
()
{
agentWeb
?.
getWebLifeCycle
()
?.
onPause
()
agentWeb
?.
getWebLifeCycle
()
?.
onPause
()
super
.
onPause
()
super
.
onPause
()
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
View file @
f0acd09f
...
@@ -26,7 +26,7 @@ class NewsFragment : XPageFragment() {
...
@@ -26,7 +26,7 @@ class NewsFragment : XPageFragment() {
return
binding
.
root
return
binding
.
root
}
}
val
titles
=
arrayOf
(
"
动态
"
,
"攻略"
,
"视频"
,
"评价"
,
"问答"
)
val
titles
=
arrayOf
(
"
全部
"
,
"攻略"
,
"视频"
,
"评价"
,
"问答"
)
var
adapter
:
DemoCollectionAdapter
?
=
null
var
adapter
:
DemoCollectionAdapter
?
=
null
override
fun
initViews
()
{
override
fun
initViews
()
{
newsViewModel
.
refreshState
.
observe
(
this
,
{
newsViewModel
.
refreshState
.
observe
(
this
,
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/news/DemoObjectFragment.kt
View file @
f0acd09f
...
@@ -8,6 +8,8 @@ import androidx.fragment.app.Fragment
...
@@ -8,6 +8,8 @@ import androidx.fragment.app.Fragment
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.ViewModelProvider
import
androidx.recyclerview.widget.RecyclerView
import
androidx.recyclerview.widget.RecyclerView
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.adapter.KotlinDataAdapter
import
com.ccwangluo.accelerator.model.NewsRes
import
com.ccwangluo.accelerator.ui.home.NewsViewModel
import
com.ccwangluo.accelerator.ui.home.NewsViewModel
import
com.ccwangluo.accelerator.ui.news.DemoCollectionAdapter.Companion.ARG_OBJECT
import
com.ccwangluo.accelerator.ui.news.DemoCollectionAdapter.Companion.ARG_OBJECT
...
@@ -16,6 +18,8 @@ class DemoObjectFragment : Fragment() {
...
@@ -16,6 +18,8 @@ class DemoObjectFragment : Fragment() {
var
recycle_view
:
RecyclerView
?
=
null
var
recycle_view
:
RecyclerView
?
=
null
private
lateinit
var
newsViewModel
:
NewsViewModel
private
lateinit
var
newsViewModel
:
NewsViewModel
private
val
deviceList
=
arrayListOf
<
NewsRes
>()
override
fun
onCreateView
(
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
container
:
ViewGroup
?,
...
@@ -29,21 +33,21 @@ class DemoObjectFragment : Fragment() {
...
@@ -29,21 +33,21 @@ class DemoObjectFragment : Fragment() {
arguments
?.
takeIf
{
it
.
containsKey
(
ARG_OBJECT
)
}
?.
apply
{
arguments
?.
takeIf
{
it
.
containsKey
(
ARG_OBJECT
)
}
?.
apply
{
val
position
=
getInt
(
ARG_OBJECT
).
toString
()
val
position
=
getInt
(
ARG_OBJECT
).
toString
()
recycle_view
=
view
.
findViewById
(
R
.
id
.
recycle_view
)
recycle_view
=
view
.
findViewById
(
R
.
id
.
recycle_view
)
val
adapter
=
KotlinDataAdapter
.
Builder
<
NewsRes
>()
.
setData
(
deviceList
)
.
setLayoutId
(
R
.
layout
.
item_dynamic
)
.
addBindView
{
itemView
,
itemData
->
}
.
create
()
recycle_view
?.
adapter
=
adapter
}
}
// val adapter = KotlinDataAdapter.Builder<DeviceModel>()
// .setData(deviceList)
// .setLayoutId(R.layout.item_device)
// .addBindView { itemView, itemData ->
// itemView.tv_device_name.text = if (itemData.platform.isEmpty()) "未命名" else
// }
// .create()
}
}
fun
refresh
()
{
fun
refresh
()
{
recycle_view
?.
postDelayed
({
recycle_view
?.
postDelayed
({
newsViewModel
.
refreshState
.
postValue
(
false
)
newsViewModel
.
refreshState
.
postValue
(
false
)
},
1000
)
},
1000
)
}
}
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
View file @
f0acd09f
package
com.ccwangluo.accelerator.ui.web
package
com.ccwangluo.accelerator.ui.web
import
android.content.Intent
import
android.net.Uri
import
android.os.Bundle
import
android.os.Bundle
import
android.webkit.JavascriptInterface
import
android.webkit.JavascriptInterface
import
androidx.core.content.ContextCompat.checkSelfPermission
import
androidx.core.content.ContextCompat.checkSelfPermission
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.github.shadowsocks.HttpConfig
import
com.ccwangluo.accelerator.utils.http.HttpConfig
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.just.agentweb.core.AgentWeb
import
com.just.agentweb.core.AgentWeb
...
@@ -43,8 +40,31 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -43,8 +40,31 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
openWebview
(
url
:
String
)
{
fun
openWebview
(
url
:
String
)
{
LoginUtils
.
token
?.
let
{
val
params
=
Bundle
()
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
UI_MAIN_URL
+
url
)
xPageFragment
.
openPage
(
CommonWebViewFragment
::
class
.
java
,
params
)
}
?:
let
{
LoginUtils
.
login
(
xPageFragment
)
{
LoginUtils
.
token
?.
let
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
"userToken"
,
it
)
}
}
}
}
//打开系统设置
@JavascriptInterface
fun
openSysSetting
()
{
PermissionUtils
.
openAppSettings
()
}
@JavascriptInterface
fun
openAsideWebview
(
url
:
String
)
{
val
params
=
Bundle
()
val
params
=
Bundle
()
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
UI_MAIN_URL
+
url
)
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
url
)
xPageFragment
.
openPage
(
CommonWebViewFragment
::
class
.
java
,
params
)
xPageFragment
.
openPage
(
CommonWebViewFragment
::
class
.
java
,
params
)
}
}
...
@@ -66,6 +86,15 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -66,6 +86,15 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
SettingSPUtils
.
isSmartAccOpen
=
isopen
SettingSPUtils
.
isSmartAccOpen
=
isopen
}
}
/**
* 智能极限加速
*/
@JavascriptInterface
fun
getSmartAccStatus
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
SettingSPUtils
.
isSmartAccOpen
.
toString
())
}
/**
/**
* 清除token
* 清除token
*/
*/
...
@@ -81,8 +110,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -81,8 +110,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
getPermissionState
(
key
:
String
,
callback
:
String
)
{
fun
getPermissionState
(
key
:
String
,
callback
:
String
)
{
xPageFragment
.
context
?.
let
{
xPageFragment
.
context
?.
let
{
PermissionUtils
.
openAppSettings
()
val
hasPermission
:
Boolean
=
PermissionUtils
.
isGranted
(
key
)
val
hasPermission
:
Boolean
=
if
(
checkSelfPermission
(
it
,
key
)
>
0
)
true
else
false
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
key
,
hasPermission
.
toString
())
.
quickCallJs
(
callback
,
key
,
hasPermission
.
toString
())
}
}
...
@@ -139,7 +167,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -139,7 +167,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
*/
*/
@JavascriptInterface
@JavascriptInterface
fun
uninstallPackge
(
pageName
:
String
)
{
fun
uninstallPackge
(
pageName
:
String
)
{
AppUtils
.
uninstallApp
(
pageName
)
AppUtils
.
uninstallApp
(
pageName
)
}
}
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
View file @
f0acd09f
...
@@ -54,13 +54,13 @@ object LoginUtils {
...
@@ -54,13 +54,13 @@ object LoginUtils {
val
dateToStamp
=
TimeUtils
.
dateToStamp
(
it
.
vipExpireTime
)
+
24
*
60
*
60
*
1000
val
dateToStamp
=
TimeUtils
.
dateToStamp
(
it
.
vipExpireTime
)
+
24
*
60
*
60
*
1000
// && it.vipExpireTime > System.currentTimeMillis()
// && it.vipExpireTime > System.currentTimeMillis()
callBack
(
it
.
vip
&&
dateToStamp
>
System
.
currentTimeMillis
())
callBack
(
it
.
vip
&&
dateToStamp
>
System
.
currentTimeMillis
())
}
?:
let
{
return
getUserProfile
(
xPageFragment
)
{
}
it
?.
let
{
getUserProfile
(
xPageFragment
)
{
callBack
(
true
)
it
?.
let
{
}
?:
let
{
callBack
(
true
)
callBack
(
false
)
}
?:
let
{
}
callBack
(
false
)
}
}
}
}
}
}
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
View file @
f0acd09f
package
com.ccwangluo.accelerator.utils.http
package
com.ccwangluo.accelerator.utils.http
import
android.util.Log
import
com.ccwangluo.accelerator.model.BaseModel
import
com.ccwangluo.accelerator.model.BaseModel
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.github.shadowsocks.HttpConfig
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.google.gson.reflect.TypeToken
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
...
@@ -10,11 +10,9 @@ import okhttp3.*
...
@@ -10,11 +10,9 @@ import okhttp3.*
import
okhttp3.MediaType.Companion.toMediaTypeOrNull
import
okhttp3.MediaType.Companion.toMediaTypeOrNull
import
okhttp3.RequestBody.Companion.toRequestBody
import
okhttp3.RequestBody.Companion.toRequestBody
import
timber.log.Timber
import
timber.log.Timber
import
java.io.IOException
import
java.security.SecureRandom
import
java.security.SecureRandom
import
java.security.cert.X509Certificate
import
java.security.cert.X509Certificate
import
java.util.concurrent.TimeUnit
import
java.util.concurrent.TimeUnit
import
java.util.logging.Logger
import
javax.net.ssl.SSLContext
import
javax.net.ssl.SSLContext
import
javax.net.ssl.SSLSocketFactory
import
javax.net.ssl.SSLSocketFactory
import
javax.net.ssl.X509TrustManager
import
javax.net.ssl.X509TrustManager
...
...
app/src/main/res/layout/fragment_mine.xml
View file @
f0acd09f
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
android:layout_height=
"match_parent"
>
android:layout_height=
"match_parent"
>
<FrameLayout
<FrameLayout
android:layout_marginTop=
"3
6
dp"
android:layout_marginTop=
"3
0
dp"
android:id=
"@+id/mine_webview"
android:id=
"@+id/mine_webview"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
android:layout_height=
"match_parent"
/>
...
...
app/src/main/res/layout/fragment_quick.xml
View file @
f0acd09f
...
@@ -42,18 +42,19 @@
...
@@ -42,18 +42,19 @@
<RelativeLayout
<RelativeLayout
android:id=
"@+id/icon_notice"
android:id=
"@+id/icon_notice"
android:layout_width=
"19dp"
android:layout_width=
"19dp"
android:layout_height=
"21dp"
android:layout_alignParentEnd=
"true"
android:layout_alignParentEnd=
"true"
android:layout_centerVertical=
"true"
android:layout_centerVertical=
"true"
android:layout_marginEnd=
"58.5dp"
android:layout_marginEnd=
"58.5dp"
>
android:layout_height=
"21dp"
>
<com.xuexiang.xui.widget.button.roundbutton.RoundButton
<com.xuexiang.xui.widget.button.roundbutton.RoundButton
android:id=
"@+id/icon_notice_badge"
android:id=
"@+id/icon_notice_badge"
android:layout_width=
"4dp"
android:layout_width=
"4dp"
android:visibility=
"gone"
android:layout_alignParentEnd=
"true"
android:layout_height=
"4dp"
android:layout_height=
"4dp"
app:rb_radius=
"4dp"
android:layout_alignParentEnd=
"true"
app:rb_backgroundColor=
"@color/red"
/>
android:visibility=
"gone"
app:rb_backgroundColor=
"@color/red"
app:rb_radius=
"4dp"
/>
<ImageView
<ImageView
android:layout_width=
"19dp"
android:layout_width=
"19dp"
...
@@ -119,9 +120,10 @@
...
@@ -119,9 +120,10 @@
android:layout_height=
"200dp"
android:layout_height=
"200dp"
android:layout_centerInParent=
"true"
android:layout_centerInParent=
"true"
android:clickable=
"true"
android:clickable=
"true"
app:srcCompat=
"@mipmap/dnf_logo"
app:riv_border_width=
"1px"
app:riv_border_width=
"1px"
app:riv_is_circle=
"true"
/>
app:riv_is_circle=
"true"
app:srcCompat=
"@mipmap/dnf_logo"
/>
<com.xuexiang.xui.widget.progress.CircleProgressView
<com.xuexiang.xui.widget.progress.CircleProgressView
android:id=
"@+id/progressView_circle_small"
android:id=
"@+id/progressView_circle_small"
android:layout_width=
"220dp"
android:layout_width=
"220dp"
...
@@ -134,10 +136,10 @@
...
@@ -134,10 +136,10 @@
app:cpv_isFilled=
"false"
app:cpv_isFilled=
"false"
app:cpv_isTracked=
"true"
app:cpv_isTracked=
"true"
app:cpv_progress_duration=
"2000"
app:cpv_progress_duration=
"2000"
app:cpv_progress_textVisibility=
"true"
app:cpv_progress_width=
"4dp"
app:cpv_progress_textColor=
"#8BE7FA"
app:cpv_progress_textColor=
"#8BE7FA"
app:cpv_progress_textSize=
"50sp"
app:cpv_progress_textSize=
"50sp"
app:cpv_progress_textVisibility=
"true"
app:cpv_progress_width=
"4dp"
app:cpv_start_color=
"#8BE7FA"
app:cpv_start_color=
"#8BE7FA"
app:cpv_start_progress=
"0"
app:cpv_start_progress=
"0"
app:cpv_track_color=
"#57595B"
app:cpv_track_color=
"#57595B"
...
@@ -146,6 +148,7 @@
...
@@ -146,6 +148,7 @@
</RelativeLayout>
</RelativeLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/game_page"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"15dp"
android:layout_marginTop=
"15dp"
...
@@ -569,6 +572,7 @@
...
@@ -569,6 +572,7 @@
android:textSize=
"14sp"
/>
android:textSize=
"14sp"
/>
<com.xuexiang.xui.widget.button.roundbutton.RoundButton
<com.xuexiang.xui.widget.button.roundbutton.RoundButton
android:id=
"@+id/prevent_acc_lost"
android:layout_width=
"70dp"
android:layout_width=
"70dp"
android:layout_height=
"25dp"
android:layout_height=
"25dp"
android:gravity=
"center"
android:gravity=
"center"
...
@@ -603,6 +607,7 @@
...
@@ -603,6 +607,7 @@
android:textSize=
"14sp"
/>
android:textSize=
"14sp"
/>
<com.xuexiang.xui.widget.button.roundbutton.RoundButton
<com.xuexiang.xui.widget.button.roundbutton.RoundButton
android:id=
"@+id/prevent_acc_invalid"
android:layout_width=
"70dp"
android:layout_width=
"70dp"
android:layout_height=
"25dp"
android:layout_height=
"25dp"
android:gravity=
"center"
android:gravity=
"center"
...
...
app/src/main/res/layout/fragment_webview.xml
View file @
f0acd09f
...
@@ -2,10 +2,10 @@
...
@@ -2,10 +2,10 @@
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:fitsSystemWindows=
"true"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<FrameLayout
<FrameLayout
android:layout_marginTop=
"36dp"
android:id=
"@+id/common_webview"
android:id=
"@+id/common_webview"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
android:layout_height=
"match_parent"
/>
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/http
/HttpConfig.kt
→
core/src/main/java/com/github/shadowsocks
/HttpConfig.kt
View file @
f0acd09f
package
com.
ccwangluo.accelerator.utils.http
package
com.
github.shadowsocks
object
HttpConfig
{
object
HttpConfig
{
...
@@ -8,7 +8,7 @@ object HttpConfig {
...
@@ -8,7 +8,7 @@ object HttpConfig {
/**
/**
* 主页h5
* 主页h5
*/
*/
val
UI_MAIN_URL
=
"http://
test-cc-tt-front.orangenet.org.cn
/#"
val
UI_MAIN_URL
=
"http://
10.3.0.217:8080
/#"
//隐私协议地址
//隐私协议地址
val
privacy_url
=
"http:wwww.baidu.com"
val
privacy_url
=
"http:wwww.baidu.com"
...
...
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
View file @
f0acd09f
...
@@ -7,6 +7,7 @@ import com.android.volley.toolbox.RequestFuture
...
@@ -7,6 +7,7 @@ import com.android.volley.toolbox.RequestFuture
import
com.android.volley.toolbox.StringRequest
import
com.android.volley.toolbox.StringRequest
import
com.android.volley.toolbox.Volley
import
com.android.volley.toolbox.Volley
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.HttpConfig
import
com.github.shadowsocks.acl.Acl
import
com.github.shadowsocks.acl.Acl
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.database.ProfileManager
...
@@ -100,7 +101,7 @@ object AuthManager {
...
@@ -100,7 +101,7 @@ object AuthManager {
val
tokenRequest
=
val
tokenRequest
=
StringRequest
(
StringRequest
(
Request
.
Method
.
GET
,
Request
.
Method
.
GET
,
"http://10.3.0.34:9000"
,
HttpConfig
.
baseUrl
,
tokenFuture
,
tokenFuture
,
tokenFuture
tokenFuture
)
)
...
...
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