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
7d66088f
Commit
7d66088f
authored
Aug 28, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
6ee147a1
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
113 additions
and
69 deletions
+113
-69
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+3
-2
EventUtils.kt
app/src/main/java/com/base/browserwhite/help/EventUtils.kt
+7
-1
QRImageAnalyzer.kt
.../base/browserwhite/ui/activity/scanqrc/QRImageAnalyzer.kt
+12
-19
QrcResultActivity.kt
...ase/browserwhite/ui/activity/scanqrc/QrcResultActivity.kt
+21
-0
ScanQRCActivity.kt
.../base/browserwhite/ui/activity/scanqrc/ScanQRCActivity.kt
+45
-29
WebsiteAdapter.kt
...n/java/com/base/browserwhite/ui/adapter/WebsiteAdapter.kt
+1
-1
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+11
-3
LinkMatchUtils.kt
...c/main/java/com/base/browserwhite/utils/LinkMatchUtils.kt
+3
-14
activity_qrc_result.xml
app/src/main/res/layout/activity_qrc_result.xml
+10
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
7d66088f
...
@@ -15,7 +15,6 @@
...
@@ -15,7 +15,6 @@
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE_DATA_SYNC"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE_DATA_SYNC"
/>
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
<queries>
<queries>
<intent>
<intent>
<action
android:name=
"android.intent.action.MAIN"
/>
<action
android:name=
"android.intent.action.MAIN"
/>
...
@@ -25,7 +24,6 @@
...
@@ -25,7 +24,6 @@
</intent>
</intent>
</queries>
</queries>
<application
<application
android:name=
".MyApplication"
android:name=
".MyApplication"
android:allowBackup=
"true"
android:allowBackup=
"true"
...
@@ -39,6 +37,9 @@
...
@@ -39,6 +37,9 @@
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.scanqrc.QrcResultActivity"
android:exported=
"false"
/>
<activity
<activity
android:name=
".ui.activity.appprocess.AppProcessActivity"
android:name=
".ui.activity.appprocess.AppProcessActivity"
android:exported=
"false"
/>
android:exported=
"false"
/>
...
...
app/src/main/java/com/base/browserwhite/help/EventUtils.kt
View file @
7d66088f
...
@@ -2,6 +2,7 @@ package com.base.browserwhite.help
...
@@ -2,6 +2,7 @@ package com.base.browserwhite.help
import
android.os.Build
import
android.os.Build
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.BuildConfig
import
com.base.browserwhite.bean.ConstObject.ifAgreePrivacy
import
com.base.browserwhite.help.ReportUtils.doPost
import
com.base.browserwhite.help.ReportUtils.doPost
import
com.base.browserwhite.utils.AppPreferences
import
com.base.browserwhite.utils.AppPreferences
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.LogEx
...
@@ -17,6 +18,10 @@ object EventUtils {
...
@@ -17,6 +18,10 @@ object EventUtils {
isSingleEvent
:
Boolean
=
false
isSingleEvent
:
Boolean
=
false
)
{
)
{
if
(!
ifAgreePrivacy
)
{
return
}
if
(
isSingleEvent
)
{
if
(
isSingleEvent
)
{
val
stringSet
=
AppPreferences
.
getInstance
().
getStringSet
(
"singleEvent"
,
setOf
())
val
stringSet
=
AppPreferences
.
getInstance
().
getStringSet
(
"singleEvent"
,
setOf
())
if
(
stringSet
.
contains
(
key
))
{
if
(
stringSet
.
contains
(
key
))
{
...
@@ -48,7 +53,8 @@ object EventUtils {
...
@@ -48,7 +53,8 @@ object EventUtils {
.
put
(
"data"
,
s
)
.
put
(
"data"
,
s
)
.
put
(
"bp"
,
s2
)
.
put
(
"bp"
,
s2
)
.
toString
()
.
toString
()
LogEx
.
logDebug
(
TAG
,
"data=${AppPreferences.getInstance().getString("
uuid
", "")}"
)
LogEx
.
logDebug
(
TAG
,
"uuid=${AppPreferences.getInstance().getString("
uuid
", "")}"
)
LogEx
.
logDebug
(
TAG
,
"gid=${AppPreferences.getInstance().getString("
gid
", "")}"
)
paramJson
=
AESHelper
.
encrypt
(
data
)
paramJson
=
AESHelper
.
encrypt
(
data
)
}
catch
(
e
:
JSONException
)
{
}
catch
(
e
:
JSONException
)
{
paramJson
=
""
paramJson
=
""
...
...
app/src/main/java/com/base/browserwhite/ui/activity/scanqrc/QRImageAnalyzer.kt
View file @
7d66088f
...
@@ -2,18 +2,14 @@ package com.base.browserwhite.ui.activity.scanqrc
...
@@ -2,18 +2,14 @@ package com.base.browserwhite.ui.activity.scanqrc
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.content.Context
import
android.content.Context
import
android.content.Intent
import
android.graphics.Bitmap
import
android.graphics.Bitmap
import
android.widget.Toast
import
androidx.camera.core.ImageAnalysis
import
androidx.camera.core.ImageAnalysis
import
androidx.camera.core.ImageProxy
import
androidx.camera.core.ImageProxy
import
com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import
com.base.browserwhite.ui.fragment.HomeFragment.Companion.isMatchesUrl
import
com.base.browserwhite.utils.LogEx
import
com.base.browserwhite.utils.LogEx
import
com.google.mlkit.vision.barcode.BarcodeScannerOptions
import
com.google.mlkit.vision.barcode.BarcodeScannerOptions
import
com.google.mlkit.vision.barcode.BarcodeScanning
import
com.google.mlkit.vision.barcode.BarcodeScanning
import
com.google.mlkit.vision.barcode.common.Barcode
import
com.google.mlkit.vision.barcode.common.Barcode
import
com.google.mlkit.vision.barcode.common.Barcode.FORMAT_AZTEC
import
com.google.mlkit.vision.barcode.common.Barcode.FORMAT_CODABAR
import
com.google.mlkit.vision.common.InputImage
import
com.google.mlkit.vision.common.InputImage
...
@@ -22,7 +18,7 @@ class QRImageAnalyzer() : ImageAnalysis.Analyzer {
...
@@ -22,7 +18,7 @@ class QRImageAnalyzer() : ImageAnalysis.Analyzer {
private
val
TAG
=
"QRImageAnalyzer"
private
val
TAG
=
"QRImageAnalyzer"
var
action
:
((
qrCodeValue
:
String
)
->
Unit
)?
=
null
var
parseAction
:
((
qrCodeValue
:
String
,
valueType
:
Int
)
->
Unit
)?
=
null
//如需仅检测 Aztec 码和 QR 码
//如需仅检测 Aztec 码和 QR 码
private
val
options
=
BarcodeScannerOptions
.
Builder
().
setBarcodeFormats
(
private
val
options
=
BarcodeScannerOptions
.
Builder
().
setBarcodeFormats
(
...
@@ -55,25 +51,21 @@ class QRImageAnalyzer() : ImageAnalysis.Analyzer {
...
@@ -55,25 +51,21 @@ class QRImageAnalyzer() : ImageAnalysis.Analyzer {
}
}
}
}
private
fun
handleBarcodeList
(
barcodeList
:
List
<
Barcode
>)
{
private
fun
handleBarcodeList
(
barcodeList
:
List
<
Barcode
>,
)
{
if
(
barcodeList
.
size
==
1
)
{
if
(
barcodeList
.
size
==
1
)
{
val
barcode
=
barcodeList
[
0
]
val
barcode
=
barcodeList
[
0
]
val
valueType
=
barcode
.
valueType
val
valueType
=
barcode
.
valueType
LogEx
.
logDebug
(
TAG
,
"valueType=$valueType"
)
when
(
valueType
)
{
Barcode
.
FORMAT_QR_CODE
,
FORMAT_CODABAR
,
FORMAT_AZTEC
->
{
val
qrCodeValue
=
barcode
.
rawValue
?:
""
val
qrCodeValue
=
barcode
.
rawValue
?:
""
LogEx
.
logDebug
(
TAG
,
"qrCodeValue=${qrCodeValue}"
)
// Barcode.FORMAT_QR_CODE, FORMAT_CODABAR, FORMAT_AZTEC, TYPE_TEXT
if
(
isMatchesUrl
(
qrCodeValue
)
or
qrCodeValue
.
startsWith
(
"http"
)
or
qrCodeValue
.
startsWith
(
"https"
))
{
LogEx
.
logDebug
(
TAG
,
"valueType=$valueType"
)
action
?.
invoke
(
qrCodeValue
)
parseAction
?.
invoke
(
qrCodeValue
,
valueType
)
}
}
}
}
}
}
}
fun
processImage
(
bitmap
:
Bitmap
)
{
fun
processImage
(
context
:
Context
,
bitmap
:
Bitmap
)
{
val
image
=
InputImage
.
fromBitmap
(
bitmap
,
0
)
val
image
=
InputImage
.
fromBitmap
(
bitmap
,
0
)
val
barcodeScanner
=
BarcodeScanning
.
getClient
(
options
)
val
barcodeScanner
=
BarcodeScanning
.
getClient
(
options
)
...
@@ -83,7 +75,8 @@ class QRImageAnalyzer() : ImageAnalysis.Analyzer {
...
@@ -83,7 +75,8 @@ class QRImageAnalyzer() : ImageAnalysis.Analyzer {
}
}
.
addOnFailureListener
{
exception
->
.
addOnFailureListener
{
exception
->
// 处理失败情况
// 处理失败情况
LogEx
.
logDebug
(
TAG
,
"$exception"
)
// LogEx.logDebug(TAG,"$exception")
Toast
.
makeText
(
context
,
"Unable to parse QR code"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/scanqrc/QrcResultActivity.kt
0 → 100644
View file @
7d66088f
package
com.base.browserwhite.ui.activity.scanqrc
import
android.graphics.Color
import
androidx.core.view.updatePadding
import
com.base.browserwhite.databinding.ActivityQrcResultBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.utils.BarUtils
class
QrcResultActivity
:
BaseActivity
<
ActivityQrcResultBinding
>()
{
override
val
binding
:
ActivityQrcResultBinding
by
lazy
{
ActivityQrcResultBinding
.
inflate
(
layoutInflater
)
}
override
fun
initView
()
{
BarUtils
.
setStatusBarLightMode
(
this
,
true
)
BarUtils
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
)
binding
.
root
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/scanqrc/ScanQRCActivity.kt
View file @
7d66088f
...
@@ -3,14 +3,17 @@ package com.base.browserwhite.ui.activity.scanqrc
...
@@ -3,14 +3,17 @@ package com.base.browserwhite.ui.activity.scanqrc
import
android.Manifest
import
android.Manifest
import
android.content.Intent
import
android.content.Intent
import
android.content.pm.PackageManager
import
android.content.pm.PackageManager
import
android.graphics.BitmapFactory
import
android.graphics.Color
import
android.graphics.Color
import
android.hardware.camera2.CameraAccessException
import
android.hardware.camera2.CameraAccessException
import
android.hardware.camera2.CameraCharacteristics
import
android.hardware.camera2.CameraCharacteristics
import
android.hardware.camera2.CameraManager
import
android.hardware.camera2.CameraManager
import
android.net.Uri
import
androidx.activity.addCallback
import
androidx.activity.addCallback
import
androidx.camera.core.AspectRatio
import
androidx.camera.core.AspectRatio
import
androidx.camera.core.Camera
import
androidx.camera.core.Camera
import
androidx.camera.core.CameraSelector
import
androidx.camera.core.CameraSelector
import
androidx.camera.core.CameraX
import
androidx.camera.core.ImageAnalysis
import
androidx.camera.core.ImageAnalysis
import
androidx.camera.core.Preview
import
androidx.camera.core.Preview
import
androidx.camera.lifecycle.ProcessCameraProvider
import
androidx.camera.lifecycle.ProcessCameraProvider
...
@@ -19,7 +22,6 @@ import androidx.core.view.isVisible
...
@@ -19,7 +22,6 @@ import androidx.core.view.isVisible
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
com.base.browserwhite.databinding.ActivityScanQrcBinding
import
com.base.browserwhite.databinding.ActivityScanQrcBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import
com.base.browserwhite.ui.views.DialogViews.showGerPermission
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.LogEx
import
com.base.browserwhite.utils.LogEx
...
@@ -101,7 +103,22 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
...
@@ -101,7 +103,22 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
}
}
binding
.
ivShoudian
.
isSelected
=
!
binding
.
ivShoudian
.
isSelected
binding
.
ivShoudian
.
isSelected
=
!
binding
.
ivShoudian
.
isSelected
}
}
binding
.
ivPhoto
.
setOnClickListener
{
}
binding
.
ivPhoto
.
setOnClickListener
{
val
safIntent
=
Intent
(
Intent
.
ACTION_OPEN_DOCUMENT
)
safIntent
.
addCategory
(
Intent
.
CATEGORY_OPENABLE
)
safIntent
.
setType
(
"image/*"
)
launcher
.
launch
(
safIntent
)
{
LogEx
.
logDebug
(
TAG
,
"${it.resultCode}"
)
val
dataIntent
=
it
.
data
if
(
it
.
resultCode
==
RESULT_OK
&&
dataIntent
!=
null
)
{
val
uri
:
Uri
=
dataIntent
.
data
?:
Uri
.
EMPTY
val
bitmap
=
BitmapFactory
.
decodeStream
(
contentResolver
.
openInputStream
(
uri
))
qrImageAnalyzer
.
processImage
(
this
@ScanQRCActivity
,
bitmap
)
}
}
}
}
}
private
fun
initCamera
()
{
private
fun
initCamera
()
{
...
@@ -138,13 +155,8 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
...
@@ -138,13 +155,8 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
//构建图片捕捉类
//构建图片捕捉类
// imageCapture = buildImageCapture(aspectRation, rotation)
// imageCapture = buildImageCapture(aspectRation, rotation)
qrImageAnalyzer
=
QRImageAnalyzer
()
qrImageAnalyzer
=
QRImageAnalyzer
()
qrImageAnalyzer
.
action
=
{
qrCodeValue
->
qrImageAnalyzer
.
parseAction
=
{
qrCodeValue
,
valueType
->
binding
.
root
.
post
{
// startActivity(Intent(this))
startActivity
(
Intent
(
this
@ScanQRCActivity
,
WebBrowserActivity
::
class
.
java
).
apply
{
putExtra
(
"url"
,
qrCodeValue
)
})
finish
()
}
}
}
//构建图片分析器
//构建图片分析器
...
@@ -208,6 +220,8 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
...
@@ -208,6 +220,8 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
override
fun
onDestroy
()
{
override
fun
onDestroy
()
{
super
.
onDestroy
()
super
.
onDestroy
()
cameraExecutor
.
shutdown
()
cameraExecutor
.
shutdown
()
imageAnalyzer
?.
clearAnalyzer
()
cameraProvider
?.
unbindAll
()
}
}
companion
object
{
companion
object
{
...
@@ -218,31 +232,33 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
...
@@ -218,31 +232,33 @@ class ScanQRCActivity : BaseActivity<ActivityScanQrcBinding>() {
private
fun
openFlash
()
{
private
fun
openFlash
()
{
val
cameraManager
=
getSystemService
(
CAMERA_SERVICE
)
as
CameraManager
// val cameraManager = getSystemService(CAMERA_SERVICE) as CameraManager
cameraManager
.
setTorchMode
(
getBackCameraId
(),
true
)
// cameraManager.setTorchMode(getBackCameraId(), true)
camera
?.
cameraControl
?.
enableTorch
(
true
)
}
}
private
fun
closeFlash
()
{
private
fun
closeFlash
()
{
val
cameraManager
=
getSystemService
(
CAMERA_SERVICE
)
as
CameraManager
// val cameraManager = getSystemService(CAMERA_SERVICE) as CameraManager
cameraManager
.
setTorchMode
(
getBackCameraId
(),
false
)
// cameraManager.setTorchMode(getBackCameraId(), false)
}
camera
?.
cameraControl
?.
enableTorch
(
false
)
}
private
fun
getBackCameraId
():
String
{
var
cameraId
:
String
?
=
null
// private fun getBackCameraId(): String {
try
{
// var cameraId: String? = null
val
cameraManager
=
getSystemService
(
CAMERA_SERVICE
)
as
CameraManager
// try {
for
(
id
in
cameraManager
.
cameraIdList
)
{
// val cameraManager = getSystemService(CAMERA_SERVICE) as CameraManager
val
characteristics
:
CameraCharacteristics
=
cameraManager
.
getCameraCharacteristics
(
id
)
// for (id in cameraManager.cameraIdList) {
if
(
characteristics
.
get
(
CameraCharacteristics
.
LENS_FACING
)
==
CameraCharacteristics
.
LENS_FACING_BACK
)
{
// val characteristics: CameraCharacteristics = cameraManager.getCameraCharacteristics(id)
cameraId
=
id
// if (characteristics.get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_BACK) {
break
// cameraId = id
}
// break
}
// }
}
catch
(
e
:
CameraAccessException
)
{
// }
e
.
printStackTrace
()
// } catch (e: CameraAccessException) {
}
// e.printStackTrace()
return
cameraId
?:
""
// }
}
// return cameraId ?: ""
// }
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/adapter/WebsiteAdapter.kt
View file @
7d66088f
...
@@ -61,7 +61,7 @@ class WebsiteAdapter(val uiType: Int = 0, val click: (bean: WebSiteBean) -> Unit
...
@@ -61,7 +61,7 @@ class WebsiteAdapter(val uiType: Int = 0, val click: (bean: WebSiteBean) -> Unit
binding
.
ivIcon
.
visibility
=
View
.
VISIBLE
binding
.
ivIcon
.
visibility
=
View
.
VISIBLE
binding
.
ivAdd
.
visibility
=
View
.
GONE
binding
.
ivAdd
.
visibility
=
View
.
GONE
val
bordIconName
=
arrayOf
(
"Ebay"
,
"Bing"
,
"Wikipedia"
,
"Pinterest"
,
"NBC News"
,
"Shopee"
,
"Drugs"
)
val
bordIconName
=
arrayOf
(
"Ebay"
,
"Bing"
,
"Wikipedia"
,
"Pinterest"
,
"NBC News"
,
"Shopee"
,
"Drugs"
)
LogEx
.
logDebug
(
TAG
,
bean
.
name
)
//
LogEx.logDebug(TAG, bean.name)
if
(
bordIconName
.
contains
(
bean
.
name
))
{
if
(
bordIconName
.
contains
(
bean
.
name
))
{
binding
.
ivIcon
.
borderColor
=
ContextCompat
.
getColor
(
context
,
R
.
color
.
color_cbcdd7
)
binding
.
ivIcon
.
borderColor
=
ContextCompat
.
getColor
(
context
,
R
.
color
.
color_cbcdd7
)
binding
.
ivIcon
.
borderWidth
=
1
binding
.
ivIcon
.
borderWidth
=
1
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
7d66088f
...
@@ -3,6 +3,7 @@ package com.base.browserwhite.ui.fragment
...
@@ -3,6 +3,7 @@ package com.base.browserwhite.ui.fragment
import
android.content.ClipData
import
android.content.ClipData
import
android.content.ClipboardManager
import
android.content.ClipboardManager
import
android.content.Intent
import
android.content.Intent
import
android.text.TextUtils
import
android.view.KeyEvent
import
android.view.KeyEvent
import
android.view.inputmethod.EditorInfo.IME_ACTION_DONE
import
android.view.inputmethod.EditorInfo.IME_ACTION_DONE
import
android.widget.TextView
import
android.widget.TextView
...
@@ -272,8 +273,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -272,8 +273,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
override
fun
onEditorAction
(
v
:
TextView
?,
actionId
:
Int
,
event
:
KeyEvent
?):
Boolean
{
override
fun
onEditorAction
(
v
:
TextView
?,
actionId
:
Int
,
event
:
KeyEvent
?):
Boolean
{
if
(
actionId
==
IME_ACTION_DONE
)
{
if
(
actionId
==
IME_ACTION_DONE
)
{
val
content
=
v
?.
text
.
toString
()
val
content
=
v
?.
text
.
toString
()
if
(
TextUtils
.
isEmpty
(
content
))
{
LinkMatchUtils
.
handleInput
(
requireContext
(),
Toast
.
makeText
(
context
,
"input something please"
,
Toast
.
LENGTH_SHORT
).
show
()
return
true
}
LinkMatchUtils
.
handleInput
(
content
,
content
,
loadUrl
=
{
url
->
loadUrl
=
{
url
->
requireActivity
().
startActivity
(
Intent
(
requireContext
(),
WebBrowserActivity
::
class
.
java
).
apply
{
requireActivity
().
startActivity
(
Intent
(
requireContext
(),
WebBrowserActivity
::
class
.
java
).
apply
{
...
@@ -282,7 +286,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -282,7 +286,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
})
})
},
},
performSearch
=
{
url
->
performSearch
=
{
url
->
searchAction
.
invoke
(
url
)
val
searchUrl
=
searchAction
.
invoke
(
url
)
requireActivity
().
startActivity
(
Intent
(
requireContext
(),
WebBrowserActivity
::
class
.
java
).
apply
{
putExtra
(
"searchEngine"
,
searchEngine
)
putExtra
(
"url"
,
searchUrl
)
})
})
})
return
true
;
// 返回true表示事件已处理
return
true
;
// 返回true表示事件已处理
...
...
app/src/main/java/com/base/browserwhite/utils/LinkMatchUtils.kt
View file @
7d66088f
package
com.base.browserwhite.utils
package
com.base.browserwhite.utils
import
android.content.Context
import
android.text.TextUtils
import
android.widget.Toast
object
LinkMatchUtils
{
object
LinkMatchUtils
{
fun
handleInput
(
fun
handleInput
(
context
:
Context
,
input
:
String
,
input
:
String
,
loadUrl
:
(
url
:
String
)
->
Unit
,
loadUrl
:
(
url
:
String
)
->
Unit
,
performSearch
:
(
search
:
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
<=
' '
}
val
tempInput
=
input
.
trim
{
it
<=
' '
}
// 检查输入是否看起来像是一个网址
// 检查输入是否看起来像是一个网址
if
(
isLikelyUrl
(
tempInput
))
{
if
(
isLikelyUrl
(
tempInput
))
{
// 补齐协议并加载网址
// 补齐协议并加载网址
val
formattedUrl
=
addProtocolIfNeeded
(
tempInput
)
val
formattedUrl
=
addProtocolIfNeeded
(
tempInput
)
loadUrl
(
formattedUrl
)
;
loadUrl
(
formattedUrl
)
}
else
{
}
else
{
// 作为搜索关键词处理
// 作为搜索关键词处理
performSearch
(
input
)
;
performSearch
(
input
)
}
}
}
}
...
...
app/src/main/res/layout/activity_qrc_result.xml
0 → 100644
View file @
7d66088f
<?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"
tools:context=
".ui.activity.scanqrc.QrcResultActivity"
>
</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