Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
Scan QR Code Barcode Reader
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
Scan QR Code Barcode Reader
Commits
c08a3ed7
Commit
c08a3ed7
authored
Dec 25, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
d22d552b
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
50 additions
and
25 deletions
+50
-25
ScanBean.kt
app/src/main/java/com/base/scanqr/bean/ScanBean.kt
+7
-1
EmailCodeActivity.kt
...c/main/java/com/base/scanqr/ui/email/EmailCodeActivity.kt
+4
-1
HistoryFragment.kt
app/src/main/java/com/base/scanqr/ui/main/HistoryFragment.kt
+14
-10
HistoryViewModel.kt
...src/main/java/com/base/scanqr/ui/main/HistoryViewModel.kt
+1
-1
ScanFragment.kt
app/src/main/java/com/base/scanqr/ui/main/ScanFragment.kt
+6
-1
TextActivity.kt
app/src/main/java/com/base/scanqr/ui/text/TextActivity.kt
+5
-1
TextCodeActivity.kt
...src/main/java/com/base/scanqr/ui/text/TextCodeActivity.kt
+9
-6
WifiCodeActivity.kt
...src/main/java/com/base/scanqr/ui/wifi/WifiCodeActivity.kt
+3
-1
QRCodeUtils.kt
app/src/main/java/com/base/scanqr/utils/QRCodeUtils.kt
+1
-3
No files found.
app/src/main/java/com/base/scanqr/bean/ScanBean.kt
View file @
c08a3ed7
...
...
@@ -5,5 +5,11 @@ open class ScanBean(
)
{
var
listContent
:
String
=
""
//用来排序用,这个内容用来展示列表名
var
createTime
=
System
.
currentTimeMillis
()
var
isCreateOrScan
:
Boolean
=
true
//create:true ; scan:false
var
createType
:
Int
=
CREATE_TYPE_USER
//0手动创建 1扫描创建 2用于浏览无需创建
companion
object
{
const
val
CREATE_TYPE_USER
=
0
const
val
CREATE_TYPE_SCAN
=
1
const
val
CREATE_TYPE_VIEW
=
2
}
}
\ No newline at end of file
app/src/main/java/com/base/scanqr/ui/email/EmailCodeActivity.kt
View file @
c08a3ed7
...
...
@@ -7,6 +7,7 @@ import com.base.scanqr.R
import
com.base.scanqr.base.BaseActivity
import
com.base.scanqr.bean.EmailUIBean
import
com.base.scanqr.bean.FunctionUIBean.Companion.KEY_EMAIL
import
com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_VIEW
import
com.base.scanqr.databinding.ActivityEmailCodeBinding
import
com.base.scanqr.ui.widget.InputNameDialog.showInputNameDialog
import
com.base.scanqr.utils.BarUtils
...
...
@@ -56,7 +57,9 @@ class EmailCodeActivity : BaseActivity<ActivityEmailCodeBinding>(ActivityEmailCo
tempImage
=
file
.
absolutePath
}
}
SpJsonUtils
.
addJsonBean
<
EmailUIBean
>(
KEY_EMAIL
,
email
)
if
(
email
.
createType
!=
CREATE_TYPE_VIEW
)
{
SpJsonUtils
.
addJsonBean
<
EmailUIBean
>(
KEY_EMAIL
,
email
)
}
}
}.
start
()
...
...
app/src/main/java/com/base/scanqr/ui/main/HistoryFragment.kt
View file @
c08a3ed7
...
...
@@ -10,6 +10,7 @@ import com.base.scanqr.R
import
com.base.scanqr.base.BaseFragment
import
com.base.scanqr.bean.FunctionUIBean
import
com.base.scanqr.bean.ScanBean
import
com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_VIEW
import
com.base.scanqr.databinding.FragmentHistoryBinding
import
com.base.scanqr.ui.email.EmailCodeActivity
import
com.base.scanqr.ui.text.TextCodeActivity
...
...
@@ -43,18 +44,20 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
binding
.
rv
.
adapter
=
adapter
adapter
?.
moreAction
=
{
view
,
bean
->
requireContext
().
showHistoryMoreDialog
(
view
,
detailAction
=
{
bean
.
createType
=
CREATE_TYPE_VIEW
jumpByScanBean
(
bean
)
},
removeAction
=
{
viewModel
.
removeBean
(
bean
)
if
(
tab
==
0
)
{
scanUI
()
}
else
{
createUI
()
}
else
{
scanUI
()
}
})
}
adapter
?.
itemClick
=
{
item
->
item
.
createType
=
CREATE_TYPE_VIEW
jumpByScanBean
(
item
)
}
}
...
...
@@ -97,17 +100,17 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
viewModel
.
removeList
(
tab
)
if
(
tab
==
0
)
{
scanUI
()
}
else
{
createUI
()
}
else
{
scanUI
()
}
}
}
if
(
tab
==
0
)
{
scanUI
()
}
else
{
createUI
()
}
else
{
scanUI
()
}
binding
.
llSort
.
setOnClickListener
{
requireContext
().
showSortByDialog
{
...
...
@@ -124,7 +127,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
private
fun
scanUI
()
{
tab
=
0
tab
=
1
binding
.
tvScan
.
background
=
ContextCompat
.
getDrawable
(
requireContext
(),
R
.
drawable
.
bg_6473f8_10
)
binding
.
tvScan
.
setTextColor
(
Color
.
parseColor
(
"#FFFFFF"
))
...
...
@@ -135,7 +138,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
}
private
fun
createUI
()
{
tab
=
1
tab
=
0
binding
.
tvCreate
.
background
=
ContextCompat
.
getDrawable
(
requireContext
(),
R
.
drawable
.
bg_6473f8_10
)
binding
.
tvCreate
.
setTextColor
(
Color
.
parseColor
(
"#FFFFFF"
))
...
...
@@ -147,7 +150,8 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
private
fun
changeRvData
(
isCreateOrScan
:
Boolean
)
{
val
uiRefresh
=
{
val
createList
=
viewModel
.
historyList
.
filter
{
it
.
isCreateOrScan
==
isCreateOrScan
}
val
qrState
=
if
(
isCreateOrScan
)
0
else
1
val
createList
=
viewModel
.
historyList
.
filter
{
it
.
createType
==
qrState
}
binding
.
llEmpty
.
isVisible
=
createList
.
isEmpty
()
adapter
?.
submitList
(
sortList
(
createList
))
}
...
...
@@ -190,7 +194,7 @@ class HistoryFragment : BaseFragment<FragmentHistoryBinding>(FragmentHistoryBind
companion
object
{
var
tab
:
Int
=
0
//
scan=0 create
=1
var
tab
:
Int
=
0
//
create=0 scan
=1
val
SORT_NAME
=
"sort_name"
val
SORT_TIME
=
"sort_time"
val
SORT_TYPE
=
"sort_type"
...
...
app/src/main/java/com/base/scanqr/ui/main/HistoryViewModel.kt
View file @
c08a3ed7
...
...
@@ -37,7 +37,7 @@ class HistoryViewModel() : ViewModel() {
}
fun
removeList
(
tab
:
Int
)
{
val
removeList
=
historyList
.
filter
{
i
f
(
tab
==
0
)
!
it
.
isCreateOrScan
else
it
.
isCreateOrScan
}
val
removeList
=
historyList
.
filter
{
i
t
.
createType
==
tab
}
removeList
.
forEach
{
removeBean
(
it
)
}
}
...
...
app/src/main/java/com/base/scanqr/ui/main/ScanFragment.kt
View file @
c08a3ed7
...
...
@@ -11,6 +11,8 @@ import androidx.camera.core.ImageCapture.FLASH_MODE_ON
import
androidx.lifecycle.lifecycleScope
import
com.base.scanqr.R
import
com.base.scanqr.base.BaseFragment
import
com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_SCAN
import
com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_USER
import
com.base.scanqr.bean.TextUIBean
import
com.base.scanqr.databinding.FragmentScanBinding
import
com.base.scanqr.qr.QRImageAnalyzer
...
...
@@ -34,6 +36,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
private
var
zoomPair
=
Pair
(
0f
,
100f
)
private
val
qrImageAnalyzer
=
QRImageAnalyzer
()
override
fun
initView
()
{
super
.
initView
()
}
...
...
@@ -113,6 +116,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
scanJump
.
set
(
true
)
activity
.
startActivity
(
Intent
(
activity
,
WifiCodeActivity
::
class
.
java
).
apply
{
val
bean
=
QRCodeUtils
.
createWifiBean
(
qrCodeValue
)
bean
.
createType
=
CREATE_TYPE_SCAN
putExtra
(
"data"
,
Gson
().
toJson
(
bean
))
})
return
...
...
@@ -123,6 +127,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
scanJump
.
set
(
true
)
activity
.
startActivity
(
Intent
(
activity
,
EmailCodeActivity
::
class
.
java
).
apply
{
val
bean
=
QRCodeUtils
.
createEmailBean
(
qrCodeValue
)
bean
.
createType
=
CREATE_TYPE_SCAN
putExtra
(
"data"
,
Gson
().
toJson
(
bean
))
})
return
...
...
@@ -134,7 +139,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
activity
.
startActivity
(
Intent
(
activity
,
TextCodeActivity
::
class
.
java
).
apply
{
val
bean
=
TextUIBean
()
bean
.
content
=
qrCodeValue
bean
.
isCreateOrScan
=
false
bean
.
createType
=
CREATE_TYPE_SCAN
putExtra
(
"data"
,
Gson
().
toJson
(
bean
))
})
return
...
...
app/src/main/java/com/base/scanqr/ui/text/TextActivity.kt
View file @
c08a3ed7
...
...
@@ -4,9 +4,11 @@ import android.content.Intent
import
androidx.activity.addCallback
import
androidx.core.view.updatePadding
import
com.base.scanqr.base.BaseActivity
import
com.base.scanqr.bean.TextUIBean
import
com.base.scanqr.databinding.ActivityTextBinding
import
com.base.scanqr.utils.BarUtils
import
com.base.scanqr.utils.ToastUtils.toast
import
com.google.gson.Gson
class
TextActivity
:
BaseActivity
<
ActivityTextBinding
>(
ActivityTextBinding
::
inflate
)
{
...
...
@@ -30,7 +32,9 @@ class TextActivity : BaseActivity<ActivityTextBinding>(ActivityTextBinding::infl
return
@setOnClickListener
}
startActivity
(
Intent
(
this
,
TextCodeActivity
::
class
.
java
).
apply
{
putExtra
(
"data"
,
binding
.
edit
.
text
.
toString
())
val
textUIBean
=
TextUIBean
()
textUIBean
.
content
=
binding
.
edit
.
text
.
toString
()
putExtra
(
"data"
,
Gson
().
toJson
(
textUIBean
))
})
}
}
...
...
app/src/main/java/com/base/scanqr/ui/text/TextCodeActivity.kt
View file @
c08a3ed7
...
...
@@ -18,6 +18,7 @@ import com.base.scanqr.utils.LogEx
import
com.base.scanqr.utils.QRCodeUtils.generateQRCode
import
com.base.scanqr.utils.SpJsonUtils
import
com.base.scanqr.utils.ToastUtils.toast
import
com.google.gson.Gson
import
java.io.File
class
TextCodeActivity
:
BaseActivity
<
ActivityTextCodeBinding
>(
ActivityTextCodeBinding
::
inflate
)
{
...
...
@@ -29,24 +30,26 @@ class TextCodeActivity : BaseActivity<ActivityTextCodeBinding>(ActivityTextCodeB
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
val
data
=
intent
.
extras
?.
getString
(
"data"
)
?:
""
textUIBean
.
content
=
data
binding
.
tvContent
.
text
=
data
val
data
=
intent
.
extras
?.
getString
(
"data"
)
data
?.
let
{
textUIBean
=
Gson
().
fromJson
(
data
,
TextUIBean
::
class
.
java
)
binding
.
tvContent
.
text
=
textUIBean
.
content
}
Thread
{
val
bitmap
=
generateQRCode
(
textUIBean
.
content
,
735
,
735
,
5
)
runOnUiThread
{
binding
.
ivQr
.
setImageBitmap
(
bitmap
)
val
file
=
File
(
cacheDir
,
System
.
currentTimeMillis
().
toString
()
+
".jpg"
)
bitmap
?.
let
{
textUIBean
.
content
=
data
val
flag
=
saveBitmapToFile
(
it
,
file
.
absolutePath
)
LogEx
.
logDebug
(
TAG
,
"flag=$flag tempImage=${file.absolutePath}"
)
if
(
flag
)
{
tempImage
=
file
.
absolutePath
}
}
SpJsonUtils
.
addJsonBean
<
ScanBean
>(
FunctionUIBean
.
KEY_TEXT
,
textUIBean
)
if
(
textUIBean
.
createType
!=
2
)
{
SpJsonUtils
.
addJsonBean
<
ScanBean
>(
FunctionUIBean
.
KEY_TEXT
,
textUIBean
)
}
}
}.
start
()
}
...
...
app/src/main/java/com/base/scanqr/ui/wifi/WifiCodeActivity.kt
View file @
c08a3ed7
...
...
@@ -80,7 +80,9 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB
tempImage
=
file
.
absolutePath
}
}
SpJsonUtils
.
addJsonBean
<
WifiUIBean
>(
FunctionUIBean
.
KEY_WIFI
,
wifiBean
)
if
(
wifiBean
.
createType
!=
2
)
{
SpJsonUtils
.
addJsonBean
<
WifiUIBean
>(
FunctionUIBean
.
KEY_WIFI
,
wifiBean
)
}
}
}.
start
()
...
...
app/src/main/java/com/base/scanqr/utils/QRCodeUtils.kt
View file @
c08a3ed7
...
...
@@ -3,6 +3,7 @@ package com.base.scanqr.utils
import
android.graphics.Bitmap
import
android.graphics.Color
import
com.base.scanqr.bean.EmailUIBean
import
com.base.scanqr.bean.ScanBean.Companion.CREATE_TYPE_SCAN
import
com.base.scanqr.bean.WifiUIBean
import
com.google.zxing.BarcodeFormat
import
com.google.zxing.EncodeHintType
...
...
@@ -92,7 +93,6 @@ object QRCodeUtils {
val
splitList
=
subString
.
split
(
";"
)
val
wifiUIBean
=
WifiUIBean
()
wifiUIBean
.
isCreateOrScan
=
false
val
ssidKV
=
splitList
.
find
{
it
.
startsWith
(
"S:"
)
}
?:
""
wifiUIBean
.
ssid
=
getPairKeyValue
(
ssidKV
).
second
...
...
@@ -134,8 +134,6 @@ object QRCodeUtils {
val
splitList
=
subString
.
split
(
";"
)
val
emailUIBean
=
EmailUIBean
()
emailUIBean
.
isCreateOrScan
=
false
val
addressKV
=
splitList
.
find
{
it
.
startsWith
(
"TO:"
)
}
?:
""
emailUIBean
.
address
=
getPairKeyValue
(
addressKV
).
second
...
...
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