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
27a932ec
Commit
27a932ec
authored
Aug 27, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
9c686599
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
342 additions
and
12 deletions
+342
-12
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+3
-7
AppProcessActivity.kt
...browserwhite/ui/activity/appprocess/AppProcessActivity.kt
+16
-0
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+15
-5
LinkMatchUtils.kt
...c/main/java/com/base/browserwhite/utils/LinkMatchUtils.kt
+57
-0
bg_ffffff_tlf25.xml
app/src/main/res/drawable/bg_ffffff_tlf25.xml
+8
-0
progress_bar_appprocess.xml
app/src/main/res/drawable/progress_bar_appprocess.xml
+20
-0
activity_app_process.xml
app/src/main/res/layout/activity_app_process.xml
+170
-0
item_app_process.xml
app/src/main/res/layout/item_app_process.xml
+53
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
27a932ec
...
...
@@ -13,7 +13,6 @@
<uses-permission
android:name=
"android.permission.MANAGE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE_DATA_SYNC"
/>
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
<application
...
...
@@ -29,7 +28,9 @@
android:theme=
"@style/Theme.BrowserWhite"
android:usesCleartextTraffic=
"true"
tools:targetApi=
"34"
>
<activity
android:name=
".ui.activity.appprocess.AppProcessActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.activity.MainActivity"
android:exported=
"true"
...
...
@@ -64,7 +65,6 @@
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
android:name=
".ui.activity.result.ResultActivity"
android:exported=
"false"
...
...
@@ -142,11 +142,9 @@
android:resource=
"@xml/file_paths"
/>
</provider>
<service
android:name=
".service.StayNotificationService"
android:foregroundServiceType=
"dataSync"
/>
<service
android:name=
".fcm.MessagingService"
android:exported=
"false"
>
...
...
@@ -167,11 +165,9 @@
</intent-filter>
</receiver>
<meta-data
android:name=
"com.google.android.gms.ads.APPLICATION_ID"
android:value=
"ca-app-pub-3940256099942544~3347511713"
/>
<meta-data
android:name=
"com.facebook.sdk.ApplicationId"
android:value=
"@string/facebook_app_id"
/>
...
...
app/src/main/java/com/base/browserwhite/ui/activity/appprocess/AppProcessActivity.kt
0 → 100644
View file @
27a932ec
package
com.base.browserwhite.ui.activity.appprocess
import
com.base.browserwhite.databinding.ActivityAppProcessBinding
import
com.base.browserwhite.ui.activity.BaseActivity
class
AppProcessActivity
:
BaseActivity
<
ActivityAppProcessBinding
>()
{
override
val
binding
:
ActivityAppProcessBinding
by
lazy
{
ActivityAppProcessBinding
.
inflate
(
layoutInflater
)
}
override
fun
initView
()
{
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
27a932ec
...
...
@@ -36,6 +36,7 @@ import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import
com.base.browserwhite.utils.AppPreferences
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.help.NewsUtils.requestNews
import
com.base.browserwhite.utils.LinkMatchUtils
import
com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
...
...
@@ -246,11 +247,20 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
binding
.
editWeb
.
setOnEditorActionListener
(
object
:
TextView
.
OnEditorActionListener
{
override
fun
onEditorAction
(
v
:
TextView
?,
actionId
:
Int
,
event
:
KeyEvent
?):
Boolean
{
if
(
actionId
==
IME_ACTION_DONE
)
{
val
content
=
v
?.
text
.
toString
()
LinkMatchUtils
.
handleInput
(
requireContext
(),
content
,
loadUrl
=
{
url
->
requireActivity
().
startActivity
(
Intent
(
requireContext
(),
WebBrowserActivity
::
class
.
java
).
apply
{
putExtra
(
"searchEngine"
,
searchEngine
)
val
content
=
v
?.
text
.
toString
()
putExtra
(
"url"
,
getWWWSearch
(
content
)
?:
searchAction
(
content
))
putExtra
(
"url"
,
url
)
})
},
performSearch
=
{
url
->
searchAction
.
invoke
(
url
)
})
return
true
;
// 返回true表示事件已处理
}
return
false
...
...
app/src/main/java/com/base/browserwhite/utils/LinkMatchUtils.kt
0 → 100644
View file @
27a932ec
package
com.base.browserwhite.utils
import
android.content.Context
import
android.text.TextUtils
import
android.widget.Toast
object
LinkMatchUtils
{
fun
handleInput
(
context
:
Context
,
input
:
String
,
loadUrl
:
(
url
:
String
)
->
Unit
,
performSearch
:
(
search
:
String
)
->
Unit
)
{
var
tempInput
=
input
if
(
TextUtils
.
isEmpty
(
input
))
{
Toast
.
makeText
(
context
,
"input something please"
,
Toast
.
LENGTH_SHORT
).
show
()
return
}
// 去除输入字符串两端的空白字符
tempInput
=
input
.
trim
{
it
<=
' '
}
// 检查输入是否看起来像是一个网址
if
(
isLikelyUrl
(
tempInput
))
{
// 补齐协议并加载网址
val
formattedUrl
=
addProtocolIfNeeded
(
tempInput
)
loadUrl
(
formattedUrl
);
}
else
{
// 作为搜索关键词处理
performSearch
(
input
);
}
}
/**
* 检查输入是否可能是一个网址。
*/
private
fun
isLikelyUrl
(
input
:
String
):
Boolean
{
// 简单的启发式检查,适用于网址识别
return
input
.
matches
(
".*\\..+"
.
toRegex
())
&&
!
input
.
matches
(
".*\\s.*"
.
toRegex
())
}
/**
* 如果输入的字符串没有明确的协议部分,补齐 "http://" 或 "https://"。
*/
private
fun
addProtocolIfNeeded
(
input
:
String
):
String
{
// 如果输入以 "http://" 或 "https://" 开头,不做改变
if
(
input
.
startsWith
(
"http://"
)
||
input
.
startsWith
(
"https://"
))
{
return
input
}
else
if
(
input
.
startsWith
(
"www."
))
{
return
"http://$input"
}
else
if
(
input
.
contains
(
"."
))
{
return
"https://$input"
}
// 其他情况,无法确定是网址还是搜索词
return
input
}
}
app/src/main/res/drawable/bg_ffffff_tlf25.xml
0 → 100644
View file @
27a932ec
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"@color/white"
/>
<corners
android:topLeftRadius=
"25dp"
android:topRightRadius=
"25dp"
/>
</shape>
\ No newline at end of file
app/src/main/res/drawable/progress_bar_appprocess.xml
0 → 100644
View file @
27a932ec
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<!-- 设置背景色 -->
<item
android:id=
"@android:id/background"
>
<shape>
<solid
android:color=
"#33FFFFFF"
/>
<corners
android:radius=
"4dp"
/>
</shape>
</item>
<!-- 设置进度条颜色 -->
<item
android:id=
"@android:id/progress"
>
<clip>
<shape>
<solid
android:color=
"@color/white"
/>
</shape>
</clip>
</item>
</layer-list>
\ No newline at end of file
app/src/main/res/layout/activity_app_process.xml
0 → 100644
View file @
27a932ec
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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:orientation=
"vertical"
tools:context=
".ui.activity.appprocess.AppProcessActivity"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"300dp"
android:background=
"#4EA082"
>
<LinearLayout
android:id=
"@+id/ll"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"40dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<FrameLayout
android:id=
"@+id/fl_fanhui"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"15dp"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:src=
"@mipmap/b_fanhui"
tools:ignore=
"ContentDescription,MissingPrefix"
/>
</FrameLayout>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:text=
"App Process"
android:textColor=
"@color/white"
android:textSize=
"19sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
</LinearLayout>
<TextView
android:id=
"@+id/tv_tip"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"22dp"
android:layout_marginTop=
"20dp"
android:text=
"Used Already"
android:textColor=
"@color/white"
android:textSize=
"16sp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/ll"
tools:ignore=
"HardcodedText"
/>
<TextView
android:id=
"@+id/tv_percent"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:textColor=
"@color/white"
android:textSize=
"50sp"
app:layout_constraintStart_toStartOf=
"@id/tv_tip"
app:layout_constraintTop_toBottomOf=
"@id/tv_tip"
tools:text=
"55.6"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"5.5dp"
android:text=
"%"
android:textColor=
"@color/white"
android:textSize=
"45sp"
app:layout_constraintBottom_toBottomOf=
"@id/tv_percent"
app:layout_constraintStart_toEndOf=
"@id/tv_percent"
app:layout_constraintTop_toTopOf=
"@id/tv_percent"
tools:ignore=
"HardcodedText"
/>
<ProgressBar
android:id=
"@+id/progress_bar"
style=
"@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width=
"0dp"
android:layout_height=
"15dp"
android:layout_marginHorizontal=
"22dp"
android:max=
"100"
android:progressDrawable=
"@drawable/progress_bar_appprocess"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_percent"
app:layout_constraintVertical_bias=
"0.3"
tools:progress=
"50"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"-20dp"
android:background=
"@drawable/bg_ffffff_tlf25"
android:orientation=
"vertical"
>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"25dp"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|start"
android:layout_marginStart=
"18dp"
android:text=
"Backend Application"
tools:ignore=
"HardcodedText"
/>
<TextView
android:id=
"@+id/tv_rate"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"18dp"
android:text=
"32/32"
android:textSize=
"16sp"
tools:ignore=
"HardcodedText"
/>
</FrameLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1px"
android:layout_marginTop=
"20dp"
android:background=
"#E5E6EB"
/>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"1"
>
<androidx.recyclerview.widget.RecyclerView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:listitem=
"@layout/item_app_process"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
/>
<ProgressBar
android:id=
"@+id/progress_bar_loading"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
/>
</FrameLayout>
<TextView
android:layout_width=
"338dp"
android:layout_height=
"50dp"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"10dp"
android:layout_marginBottom=
"25dp"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/item_app_process.xml
0 → 100644
View file @
27a932ec
<?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:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<androidx.cardview.widget.CardView
android:id=
"@+id/card"
android:layout_width=
"45dp"
android:layout_height=
"45dp"
android:layout_marginVertical=
"15dp"
android:layout_marginStart=
"26dp"
app:cardCornerRadius=
"10dp"
app:cardElevation=
"0dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/iv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:ignore=
"ContentDescription"
/>
</androidx.cardview.widget.CardView>
<TextView
android:id=
"@+id/tv_name"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"12dp"
android:textColor=
"@color/black"
android:textSize=
"17sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/tv_stop"
app:layout_constraintStart_toEndOf=
"@id/card"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/tv_stop"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"15dp"
android:text=
"Stop"
android:textColor=
"#0571ED"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"@id/card"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toEndOf=
"@id/tv_name"
app:layout_constraintTop_toTopOf=
"@id/card"
tools:ignore=
"HardcodedText"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment