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
fe134c80
Commit
fe134c80
authored
Dec 27, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...多语言
parent
543554ec
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
141 additions
and
36 deletions
+141
-36
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+21
-12
BaseActivity.kt
app/src/main/java/com/base/scanqr/base/BaseActivity.kt
+9
-5
ConstObject.kt
app/src/main/java/com/base/scanqr/bean/ConstObject.kt
+0
-9
EmailActivity.kt
app/src/main/java/com/base/scanqr/ui/email/EmailActivity.kt
+6
-0
EmailCodeActivity.kt
...c/main/java/com/base/scanqr/ui/email/EmailCodeActivity.kt
+7
-0
LanguageActivity.kt
...main/java/com/base/scanqr/ui/language/LanguageActivity.kt
+29
-2
MainActivity.kt
app/src/main/java/com/base/scanqr/ui/main/MainActivity.kt
+9
-5
ProductCodeActivity.kt
...in/java/com/base/scanqr/ui/product/ProductCodeActivity.kt
+5
-0
StartActivity.kt
app/src/main/java/com/base/scanqr/ui/start/StartActivity.kt
+3
-1
TextActivity.kt
app/src/main/java/com/base/scanqr/ui/text/TextActivity.kt
+6
-0
TextCodeActivity.kt
...src/main/java/com/base/scanqr/ui/text/TextCodeActivity.kt
+6
-0
WebsiteActivity.kt
...c/main/java/com/base/scanqr/ui/website/WebsiteActivity.kt
+5
-0
WebsiteCodeActivity.kt
...in/java/com/base/scanqr/ui/website/WebsiteCodeActivity.kt
+5
-0
WifiActivity.kt
app/src/main/java/com/base/scanqr/ui/wifi/WifiActivity.kt
+5
-0
WifiCodeActivity.kt
...src/main/java/com/base/scanqr/ui/wifi/WifiCodeActivity.kt
+7
-0
activity_website.xml
app/src/main/res/layout/activity_website.xml
+2
-2
strings.xml
app/src/main/res/values-zh-rCN/strings.xml
+15
-0
strings.xml
app/src/main/res/values/strings.xml
+1
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
fe134c80
...
...
@@ -25,18 +25,7 @@
android:supportsRtl=
"true"
android:theme=
"@style/Theme.ScanQR"
tools:targetApi=
"31"
>
<activity
android:name=
".ui.language.LanguageActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.product.ProductCodeActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.website.WebsiteCodeActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.website.WebsiteActivity"
android:exported=
"false"
/>
<activity
android:name=
".ui.start.StartActivity"
android:exported=
"true"
...
...
@@ -86,6 +75,26 @@
android:exported=
"false"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
android:name=
".ui.language.LanguageActivity"
android:exported=
"false"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
android:name=
".ui.product.ProductCodeActivity"
android:exported=
"false"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
android:name=
".ui.website.WebsiteCodeActivity"
android:exported=
"false"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
android:name=
".ui.website.WebsiteActivity"
android:exported=
"false"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<provider
android:name=
"androidx.core.content.FileProvider"
...
...
app/src/main/java/com/base/scanqr/base/BaseActivity.kt
View file @
fe134c80
package
com.base.scanqr.base
import
android.app.Activity
import
android.app.Dialog
import
android.content.Context
import
android.content.Intent
...
...
@@ -93,8 +92,11 @@ abstract class BaseActivity<VB : ViewBinding>(
super
.
attachBaseContext
(
MultiLanguages
.
attach
(
newBase
))
}
fun
changeLanguage
(
currentActivity
:
Activity
,
bundle
:
Bundle
=
Bundle
()):
Boolean
{
/**
* 使用时类的全局变量最好用可为空来定义,
* 避免重新创建activity,在onPause;onStop,onDestroy调用这些全局变量时空异常
*/
fun
changeLanguage
():
Boolean
{
val
spLanguage
=
Locale
(
appLanguageSp
,
appLanguageCountrySp
)
val
flag
=
currentLocale
!=
spLanguage
val
restart
=
MultiLanguages
.
setAppLanguage
(
this
,
spLanguage
)
...
...
@@ -123,8 +125,10 @@ abstract class BaseActivity<VB : ViewBinding>(
LogEx
.
logDebug
(
TAG
,
"changeLanguage recreate"
)
recreate
()
}
else
{
startActivity
(
Intent
(
this
,
currentActivity
::
class
.
java
).
apply
{
putExtras
(
bundle
)
startActivity
(
Intent
(
this
,
this
::
class
.
java
).
apply
{
val
bundle
=
intent
.
extras
LogEx
.
logDebug
(
TAG
,
"changeLanguage bundle is null=${bundle == null}"
)
putExtras
(
bundle
?:
Bundle
())
})
overridePendingTransition
(
R
.
anim
.
activity_alpha_in
,
R
.
anim
.
activity_alpha_out
)
finish
()
...
...
app/src/main/java/com/base/scanqr/bean/ConstObject.kt
View file @
fe134c80
...
...
@@ -41,13 +41,4 @@ object ConstObject {
field
=
value
AppPreferences
.
getInstance
().
put
(
"languageCountrySp"
,
value
,
true
)
}
var
noShowFriendsShareGuide
=
false
get
()
{
return
AppPreferences
.
getInstance
().
getBoolean
(
"noShowFriendsShareGuide"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"noShowFriendsShareGuide"
,
value
,
true
)
}
}
\ No newline at end of file
app/src/main/java/com/base/scanqr/ui/email/EmailActivity.kt
View file @
fe134c80
...
...
@@ -14,6 +14,12 @@ class EmailActivity : BaseActivity<ActivityEmailBinding>(ActivityEmailBinding::i
private
val
email
=
EmailUIBean
()
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
...
...
app/src/main/java/com/base/scanqr/ui/email/EmailCodeActivity.kt
View file @
fe134c80
...
...
@@ -26,6 +26,13 @@ class EmailCodeActivity : BaseActivity<ActivityEmailCodeBinding>(ActivityEmailCo
private
var
email
=
EmailUIBean
()
private
var
tempImage
:
String
=
""
private
var
content
:
String
=
""
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
...
...
app/src/main/java/com/base/scanqr/ui/language/LanguageActivity.kt
View file @
fe134c80
package
com.base.scanqr.ui.language
import
android.content.Intent
import
androidx.activity.addCallback
import
androidx.core.view.updatePadding
import
com.base.scanqr.base.BaseActivity
import
com.base.scanqr.bean.ConstObject.appLanguageCountrySp
import
com.base.scanqr.bean.ConstObject.appLanguageSp
import
com.base.scanqr.bean.LanguageBean
import
com.base.scanqr.databinding.ActivityLanguageBinding
import
com.base.scanqr.ui.main.MainActivity
import
com.base.scanqr.utils.BarUtils
import
com.base.scanqr.utils.LogEx
import
com.gyf.immersionbar.ktx.immersionBar
import
java.util.Locale
class
LanguageActivity
:
BaseActivity
<
ActivityLanguageBinding
>(
ActivityLanguageBinding
::
inflate
)
{
private
var
isGuide
:
Boolean
=
false
private
var
adapter
:
LanguageAdapter
?
=
null
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
isGuide
=
intent
.
extras
?.
getBoolean
(
"isGuide"
)
?:
isGuide
adapter
=
LanguageAdapter
{
}
...
...
@@ -27,10 +32,32 @@ class LanguageActivity : BaseActivity<ActivityLanguageBinding>(ActivityLanguageB
override
fun
initListener
()
{
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
finishToMainTop
()
}
binding
.
flQueren
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
}
binding
.
flQueren
.
setOnClickListener
{
val
selectLanguageBean
=
adapter
?.
items
?.
findLast
{
it
.
isSelect
}
selectLanguageBean
?:
return
@setOnClickListener
LogEx
.
logDebug
(
TAG
,
"selectLanguageBean=$selectLanguageBean"
)
appLanguageSp
=
selectLanguageBean
.
language
appLanguageCountrySp
=
selectLanguageBean
.
country
if
(
isGuide
)
{
startActivity
(
Intent
(
this
,
MainActivity
::
class
.
java
).
apply
{
// putExtra("isGuide", true)
})
}
finish
()
}
}
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
initData
()
}
...
...
app/src/main/java/com/base/scanqr/ui/main/MainActivity.kt
View file @
fe134c80
...
...
@@ -20,7 +20,7 @@ import com.gyf.immersionbar.ktx.immersionBar
class
MainActivity
:
BaseActivity
<
ActivityMainBinding
>(
ActivityMainBinding
::
inflate
)
{
private
lateinit
var
navController
:
NavController
private
var
navController
:
NavController
?
=
null
var
cameraUtils
:
CameraUtils
?
=
null
private
val
homeTabs
by
lazy
{
...
...
@@ -32,6 +32,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
)
}
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
changeLanguage
()
}
override
fun
initView
()
{
super
.
initView
()
...
...
@@ -79,19 +83,19 @@ class MainActivity : BaseActivity<ActivityMainBinding>(ActivityMainBinding::infl
private
fun
naviFragment
(
id
:
Int
)
{
when
(
id
)
{
0
->
{
navController
.
navigate
(
R
.
id
.
createFragment
)
navController
?
.
navigate
(
R
.
id
.
createFragment
)
}
1
->
{
navController
.
navigate
(
R
.
id
.
scanFragment
)
navController
?
.
navigate
(
R
.
id
.
scanFragment
)
}
2
->
{
navController
.
navigate
(
R
.
id
.
historyFragment
)
navController
?
.
navigate
(
R
.
id
.
historyFragment
)
}
3
->
{
navController
.
navigate
(
R
.
id
.
settingsFragment
)
navController
?
.
navigate
(
R
.
id
.
settingsFragment
)
}
}
}
...
...
app/src/main/java/com/base/scanqr/ui/product/ProductCodeActivity.kt
View file @
fe134c80
...
...
@@ -33,6 +33,11 @@ class ProductCodeActivity : BaseActivity<ActivityProductCodeBinding>(ActivityPro
private
var
productUIBean
=
ProductUIBean
()
private
var
tempImage
:
String
=
""
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
...
...
app/src/main/java/com/base/scanqr/ui/start/StartActivity.kt
View file @
fe134c80
...
...
@@ -7,6 +7,7 @@ import com.base.scanqr.base.BaseActivity
import
com.base.scanqr.bean.ConstObject
import
com.base.scanqr.bean.ConstObject.isFirstLauncher
import
com.base.scanqr.databinding.ActivityStartBinding
import
com.base.scanqr.ui.language.LanguageActivity
import
com.base.scanqr.ui.main.MainActivity
import
com.gyf.immersionbar.ktx.immersionBar
import
kotlinx.coroutines.Dispatchers
...
...
@@ -86,7 +87,8 @@ class StartActivity : BaseActivity<ActivityStartBinding>(ActivityStartBinding::i
}
private
fun
firstLauncherJump
()
{
startActivity
(
Intent
(
this
,
MainActivity
::
class
.
java
).
apply
{
startActivity
(
Intent
(
this
,
LanguageActivity
::
class
.
java
).
apply
{
putExtra
(
"isGuide"
,
true
)
})
finish
()
}
...
...
app/src/main/java/com/base/scanqr/ui/text/TextActivity.kt
View file @
fe134c80
...
...
@@ -13,6 +13,12 @@ import com.google.gson.Gson
class
TextActivity
:
BaseActivity
<
ActivityTextBinding
>(
ActivityTextBinding
::
inflate
)
{
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
...
...
app/src/main/java/com/base/scanqr/ui/text/TextCodeActivity.kt
View file @
fe134c80
...
...
@@ -30,6 +30,12 @@ class TextCodeActivity : BaseActivity<ActivityTextCodeBinding>(ActivityTextCodeB
private
var
textUIBean
=
TextUIBean
()
private
var
tempImage
:
String
=
""
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
...
...
app/src/main/java/com/base/scanqr/ui/website/WebsiteActivity.kt
View file @
fe134c80
...
...
@@ -17,6 +17,11 @@ class WebsiteActivity : BaseActivity<ActivityWebsiteBinding>(ActivityWebsiteBind
private
var
websiteUIBean
=
WebsiteUIBean
()
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
...
...
app/src/main/java/com/base/scanqr/ui/website/WebsiteCodeActivity.kt
View file @
fe134c80
...
...
@@ -26,6 +26,11 @@ class WebsiteCodeActivity : BaseActivity<ActivityWebsiteCodeBinding>(ActivityWeb
private
var
websiteUIBean
=
WebsiteUIBean
()
private
var
tempImage
:
String
=
""
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
...
...
app/src/main/java/com/base/scanqr/ui/wifi/WifiActivity.kt
View file @
fe134c80
...
...
@@ -36,6 +36,11 @@ class WifiActivity : BaseActivity<ActivityWifiBinding>(ActivityWifiBinding::infl
private
var
wifiScanFinish
:
Boolean
=
false
private
var
currentWifi
:
WifiUIBean
=
WifiUIBean
()
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
...
...
app/src/main/java/com/base/scanqr/ui/wifi/WifiCodeActivity.kt
View file @
fe134c80
...
...
@@ -27,6 +27,13 @@ class WifiCodeActivity : BaseActivity<ActivityWifiCodeBinding>(ActivityWifiCodeB
private
var
wifiBean
:
WifiUIBean
=
WifiUIBean
()
private
var
wifiContent
:
String
=
""
private
var
tempImage
:
String
=
""
override
fun
onResumeOneShoot
()
{
super
.
onResumeOneShoot
()
val
flag
=
changeLanguage
()
if
(
flag
)
return
}
override
fun
initView
()
{
super
.
initView
()
binding
.
clTop
.
updatePadding
(
top
=
BarUtils
.
getStatusBarHeight
())
...
...
app/src/main/res/layout/activity_website.xml
View file @
fe134c80
...
...
@@ -71,12 +71,11 @@
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_marginTop=
"18dp"
android:text=
"
Web
address"
android:text=
"
@string/web_
address"
android:textColor=
"#6473F8"
android:textSize=
"16sp"
/>
<EditText
android:text=
"http://"
android:id=
"@+id/edit"
android:layout_width=
"match_parent"
android:layout_height=
"52dp"
...
...
@@ -87,6 +86,7 @@
android:hint=
"http://"
android:inputType=
"textUri"
android:paddingHorizontal=
"14dp"
android:text=
"http://"
android:textColor=
"@color/black"
android:textColorHint=
"#999999"
/>
</LinearLayout>
...
...
app/src/main/res/values-zh-rCN/strings.xml
0 → 100644
View file @
fe134c80
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string
name=
"create"
>
创建
</string>
<string
name=
"scan"
>
扫描
</string>
<string
name=
"history"
>
历史
</string>
<string
name=
"settings"
>
设置
</string>
<string
name=
"password"
>
密码
</string>
<string
name=
"content"
>
内容
</string>
<string
name=
"subject"
>
副标题
</string>
<string
name=
"website"
>
网站
</string>
<string
name=
"text"
>
文本
</string>
<string
name=
"change_language"
>
改变语言
</string>
<string
name=
"send_feedback"
>
提交反馈
</string>
<string
name=
"privacy_policy"
>
隐私政策
</string>
</resources>
\ No newline at end of file
app/src/main/res/values/strings.xml
View file @
fe134c80
...
...
@@ -63,4 +63,5 @@
<string
name=
"version"
>
"Version "
</string>
<string
name=
"no_qrcode"
>
NO QRCode
</string>
<string
name=
"choose_language"
>
Choose language
</string>
<string
name=
"web_address"
>
Web address
</string>
</resources>
\ 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