Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
scanqrwhite2copy1
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
scanqrwhite2copy1
Commits
103d3dbe
Commit
103d3dbe
authored
Feb 20, 2025
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
d56ba35a
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
384 additions
and
3 deletions
+384
-3
AddressUIBean.kt
app/src/main/java/com/base/scanqrclear/bean/AddressUIBean.kt
+36
-0
FunctionUIBean.kt
...src/main/java/com/base/scanqrclear/bean/FunctionUIBean.kt
+1
-0
QrResultsActivity.kt
...rc/main/java/com/base/scanqrclear/qr/QrResultsActivity.kt
+51
-1
AddressDialog.kt
...n/java/com/base/scanqrclear/ui/addressqr/AddressDialog.kt
+83
-0
CreateFragment.kt
.../main/java/com/base/scanqrclear/ui/main/CreateFragment.kt
+8
-0
ScanFragment.kt
...rc/main/java/com/base/scanqrclear/ui/main/ScanFragment.kt
+23
-2
dialog_address.xml
app/src/main/res/layout/dialog_address.xml
+178
-0
strings.xml
app/src/main/res/values/strings.xml
+4
-0
No files found.
app/src/main/java/com/base/scanqrclear/bean/AddressUIBean.kt
0 → 100644
View file @
103d3dbe
package
com.base.scanqrclear.bean
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_ADDRESS
data class
AddressUIBean
(
val
longitude
:
String
,
val
latitude
:
String
,
)
:
ScanBean
(
KEY_ADDRESS
)
{
// 毛主席像:30.65889627699442, 104.0657291232703 google地图格式 latitude, longitude
// geo:104.065,30.658
companion
object
{
fun
isAddressQR
(
qrCodeValue
:
String
):
Boolean
{
return
qrCodeValue
.
startsWith
(
"geo:"
)
}
fun
createAddressUIBean
(
qrCodeValue
:
String
):
AddressUIBean
{
var
longitude
=
""
var
latitude
=
""
kotlin
.
runCatching
{
val
sub
=
qrCodeValue
.
subSequence
(
"geo:"
.
length
,
qrCodeValue
.
length
)
val
split
=
sub
.
split
(
","
)
longitude
=
split
[
0
]
latitude
=
split
[
1
]
}
return
AddressUIBean
(
longitude
,
latitude
)
}
fun
AddressUIBean
.
createAddressUIBeanQrString
():
String
{
return
"geo:$longitude,$latitude"
}
}
}
app/src/main/java/com/base/scanqrclear/bean/FunctionUIBean.kt
View file @
103d3dbe
...
@@ -31,5 +31,6 @@ class FunctionUIBean(
...
@@ -31,5 +31,6 @@ class FunctionUIBean(
const
val
KEY_X
=
"key_x"
const
val
KEY_X
=
"key_x"
const
val
KEY_SPOTIFY
=
"key_spotify"
const
val
KEY_SPOTIFY
=
"key_spotify"
const
val
KEY_PAYPAL
=
"key_paypal"
const
val
KEY_PAYPAL
=
"key_paypal"
const
val
KEY_ADDRESS
=
"key_address"
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/scanqrclear/qr/QrResultsActivity.kt
View file @
103d3dbe
...
@@ -13,8 +13,11 @@ import androidx.core.view.updatePadding
...
@@ -13,8 +13,11 @@ import androidx.core.view.updatePadding
import
com.base.scanqrclear.R
import
com.base.scanqrclear.R
import
com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.base.BaseActivity
import
com.base.scanqrclear.base.BaseActivity
import
com.base.scanqrclear.bean.AddressUIBean
import
com.base.scanqrclear.bean.AddressUIBean.Companion.createAddressUIBeanQrString
import
com.base.scanqrclear.bean.FacebookUIBean
import
com.base.scanqrclear.bean.FacebookUIBean
import
com.base.scanqrclear.bean.FacebookUIBean.Companion.createFacebookQrString
import
com.base.scanqrclear.bean.FacebookUIBean.Companion.createFacebookQrString
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_ADDRESS
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FACEBOOK
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FACEBOOK
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FOOD
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FOOD
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_INSTAGRAM
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_INSTAGRAM
...
@@ -145,6 +148,53 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
...
@@ -145,6 +148,53 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
generateQR
()
generateQR
()
}
}
KEY_ADDRESS
->
{
bean
=
Gson
().
fromJson
(
data
,
AddressUIBean
::
class
.
java
)
qrString
=
(
bean
as
AddressUIBean
).
createAddressUIBeanQrString
()
binding
.
ivQrIcon
.
setImageResource
(
R
.
mipmap
.
h_address
)
binding
.
tvQrTypeTitle
.
text
=
"Address"
val
ss
=
SpannableStringBuilder
(
"Longitude:${(bean as AddressUIBean).longitude}"
)
ss
.
setSpan
(
ForegroundColorSpan
(
Color
.
parseColor
(
"#666666"
)),
0
,
// 开始位置
"Longitude:"
.
length
,
// 结束位置
Spanned
.
SPAN_INCLUSIVE_INCLUSIVE
)
ss
.
setSpan
(
ForegroundColorSpan
(
Color
.
BLACK
),
// 设置颜色为黑色
"Longitude:"
.
length
,
// 开始位置
ss
.
length
,
// 结束位置
Spanned
.
SPAN_INCLUSIVE_INCLUSIVE
)
binding
.
tvQrContent
.
text
=
ss
binding
.
tvQrContent
.
append
(
"\n"
)
val
ss2
=
SpannableStringBuilder
(
"Latitude:${(bean as AddressUIBean).latitude}"
)
ss2
.
setSpan
(
ForegroundColorSpan
(
Color
.
parseColor
(
"#666666"
)),
0
,
// 开始位置
"Latitude:"
.
length
,
// 结束位置
Spanned
.
SPAN_INCLUSIVE_INCLUSIVE
)
ss2
.
setSpan
(
ForegroundColorSpan
(
Color
.
BLACK
),
// 设置颜色为黑色
"Latitude:"
.
length
,
// 开始位置
ss2
.
length
,
// 结束位置
Spanned
.
SPAN_INCLUSIVE_INCLUSIVE
)
binding
.
tvQrContent
.
append
(
ss2
)
generateQR
()
}
KEY_SPOTIFY
->
{
KEY_SPOTIFY
->
{
bean
=
Gson
().
fromJson
(
data
,
SpotifyUIBean
::
class
.
java
)
bean
=
Gson
().
fromJson
(
data
,
SpotifyUIBean
::
class
.
java
)
qrString
=
(
bean
as
SpotifyUIBean
).
createSpotifyQrString
()
qrString
=
(
bean
as
SpotifyUIBean
).
createSpotifyQrString
()
...
@@ -230,7 +280,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
...
@@ -230,7 +280,7 @@ class QrResultsActivity : BaseActivity<ActivityQrResultsBinding>(ActivityQrResul
private
fun
generateQR
()
{
private
fun
generateQR
()
{
Thread
{
Thread
{
LogEx
.
logDebug
(
TAG
,
"messageQrString=$qrString"
)
LogEx
.
logDebug
(
TAG
,
"messageQrString=$qrString"
)
val
bitmap
=
generateQRCode
(
qrString
,
735
,
735
,
2
)
val
bitmap
=
generateQRCode
(
qrString
,
735
,
735
,
0
)
runOnUiThread
{
runOnUiThread
{
binding
.
ivQr
.
setImageBitmap
(
bitmap
)
binding
.
ivQr
.
setImageBitmap
(
bitmap
)
val
file
=
File
(
cacheDir
,
System
.
currentTimeMillis
().
toString
()
+
".jpg"
)
val
file
=
File
(
cacheDir
,
System
.
currentTimeMillis
().
toString
()
+
".jpg"
)
...
...
app/src/main/java/com/base/scanqrclear/ui/addressqr/AddressDialog.kt
0 → 100644
View file @
103d3dbe
package
com.base.scanqrclear.ui.addressqr
import
android.app.Activity
import
android.app.AlertDialog
import
android.content.Intent
import
android.text.Editable
import
android.view.Gravity
import
android.view.LayoutInflater
import
androidx.constraintlayout.widget.ConstraintLayout
import
androidx.core.widget.addTextChangedListener
import
com.base.scanqrclear.R
import
com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.ads.AdsShowCallBack
import
com.base.scanqrclear.bean.AddressUIBean
import
com.base.scanqrclear.bean.AddressUIBean.Companion.createAddressUIBeanQrString
import
com.base.scanqrclear.databinding.DialogAddressBinding
import
com.base.scanqrclear.qr.QrStyleActivity
object
AddressDialog
{
fun
Activity
.
showAddressDialog
()
{
val
dialog
=
AlertDialog
.
Builder
(
this
).
create
()
val
binding
=
DialogAddressBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
dialog
.
setView
(
binding
.
root
)
dialog
.
setCanceledOnTouchOutside
(
false
)
dialog
.
show
()
val
params
=
dialog
.
window
?.
attributes
params
?.
width
=
ConstraintLayout
.
LayoutParams
.
MATCH_PARENT
// params?.height = resources.getDimensionPixelOffset(R.dimen.dp_400)
params
?.
gravity
=
Gravity
.
BOTTOM
// params?.y = 50
dialog
.
window
?.
attributes
=
params
dialog
.
window
?.
setBackgroundDrawableResource
(
android
.
R
.
color
.
transparent
)
AdsMgr
.
showNative
(
binding
.
flAd
,
R
.
layout
.
layout_admob_native_custom
)
binding
.
flClose
.
setOnClickListener
{
dialog
.
dismiss
()
}
binding
.
editLongitude
.
addTextChangedListener
{
s
:
Editable
?
->
binding
.
tvBtn
.
isEnabled
=
!
s
.
isNullOrEmpty
()
&&
!
binding
.
editLatitude
.
text
.
isNullOrEmpty
()
}
binding
.
editLatitude
.
addTextChangedListener
{
s
:
Editable
?
->
binding
.
tvBtn
.
isEnabled
=
!
s
.
isNullOrEmpty
()
&&
!
binding
.
editLongitude
.
text
.
isNullOrEmpty
()
}
val
jump
=
{
dialog
.
dismiss
()
val
longitude
=
binding
.
editLongitude
.
text
.
toString
()
val
latitude
=
binding
.
editLatitude
.
text
.
toString
()
val
bean
=
AddressUIBean
(
longitude
,
latitude
)
startActivity
(
Intent
(
this
,
QrStyleActivity
::
class
.
java
).
apply
{
putExtra
(
"qrString"
,
bean
.
createAddressUIBeanQrString
())
})
}
binding
.
tvBtn
.
setOnClickListener
{
AdsMgr
.
showInsert
(
this
,
false
,
object
:
AdsShowCallBack
()
{
override
fun
close
(
where
:
Int
)
{
jump
.
invoke
()
}
override
fun
failed
(
where
:
Int
)
{
jump
.
invoke
()
}
override
fun
googleFailed
(
where
:
Int
)
{
jump
.
invoke
()
}
})
}
}
}
\ No newline at end of file
app/src/main/java/com/base/scanqrclear/ui/main/CreateFragment.kt
View file @
103d3dbe
...
@@ -11,6 +11,7 @@ import com.base.scanqrclear.ads.AdsMgr
...
@@ -11,6 +11,7 @@ import com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.ads.AdsShowCallBack
import
com.base.scanqrclear.ads.AdsShowCallBack
import
com.base.scanqrclear.base.BaseFragment
import
com.base.scanqrclear.base.BaseFragment
import
com.base.scanqrclear.bean.FunctionUIBean
import
com.base.scanqrclear.bean.FunctionUIBean
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_ADDRESS
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_CONTACT
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_CONTACT
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_EMAIL
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_EMAIL
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_EVENT
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_EVENT
...
@@ -32,6 +33,7 @@ import com.base.scanqrclear.databinding.FragmentCreateBinding
...
@@ -32,6 +33,7 @@ import com.base.scanqrclear.databinding.FragmentCreateBinding
import
com.base.scanqrclear.luma.WeatherInterface
import
com.base.scanqrclear.luma.WeatherInterface
import
com.base.scanqrclear.luma.WeatherUtils
import
com.base.scanqrclear.luma.WeatherUtils
import
com.base.scanqrclear.qr.QrStyleActivity
import
com.base.scanqrclear.qr.QrStyleActivity
import
com.base.scanqrclear.ui.addressqr.AddressDialog.showAddressDialog
import
com.base.scanqrclear.ui.concatadapt.AdAdapter
import
com.base.scanqrclear.ui.concatadapt.AdAdapter
import
com.base.scanqrclear.ui.contact.ContractActivity
import
com.base.scanqrclear.ui.contact.ContractActivity
import
com.base.scanqrclear.ui.email.EmailActivity
import
com.base.scanqrclear.ui.email.EmailActivity
...
@@ -93,6 +95,7 @@ class CreateFragment : BaseFragment<FragmentCreateBinding>(FragmentCreateBinding
...
@@ -93,6 +95,7 @@ class CreateFragment : BaseFragment<FragmentCreateBinding>(FragmentCreateBinding
FunctionUIBean
(
KEY_X
,
R
.
mipmap
.
h_x
,
"X"
),
FunctionUIBean
(
KEY_X
,
R
.
mipmap
.
h_x
,
"X"
),
FunctionUIBean
(
KEY_SPOTIFY
,
R
.
mipmap
.
h_spotify
,
"Spotify"
),
FunctionUIBean
(
KEY_SPOTIFY
,
R
.
mipmap
.
h_spotify
,
"Spotify"
),
FunctionUIBean
(
KEY_PAYPAL
,
R
.
mipmap
.
h_paypal
,
"Paypal"
),
FunctionUIBean
(
KEY_PAYPAL
,
R
.
mipmap
.
h_paypal
,
"Paypal"
),
FunctionUIBean
(
KEY_ADDRESS
,
R
.
mipmap
.
h_address
,
resources
.
getString
(
R
.
string
.
address
)),
)
)
}
}
...
@@ -270,6 +273,11 @@ class CreateFragment : BaseFragment<FragmentCreateBinding>(FragmentCreateBinding
...
@@ -270,6 +273,11 @@ class CreateFragment : BaseFragment<FragmentCreateBinding>(FragmentCreateBinding
val
activity
=
requireActivity
()
as
MainActivity
?
val
activity
=
requireActivity
()
as
MainActivity
?
activity
?.
showYoutubeDialog
()
activity
?.
showYoutubeDialog
()
}
}
KEY_ADDRESS
->
{
val
activity
=
requireActivity
()
as
MainActivity
?
activity
?.
showAddressDialog
()
}
}
}
}
}
...
...
app/src/main/java/com/base/scanqrclear/ui/main/ScanFragment.kt
View file @
103d3dbe
...
@@ -14,6 +14,8 @@ import com.base.scanqrclear.R
...
@@ -14,6 +14,8 @@ import com.base.scanqrclear.R
import
com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.ads.AdsMgr
import
com.base.scanqrclear.ads.AdsShowCallBack
import
com.base.scanqrclear.ads.AdsShowCallBack
import
com.base.scanqrclear.base.BaseFragment
import
com.base.scanqrclear.base.BaseFragment
import
com.base.scanqrclear.bean.AddressUIBean.Companion.createAddressUIBean
import
com.base.scanqrclear.bean.AddressUIBean.Companion.isAddressQR
import
com.base.scanqrclear.bean.ContractUIBean.Companion.createContractBean
import
com.base.scanqrclear.bean.ContractUIBean.Companion.createContractBean
import
com.base.scanqrclear.bean.ContractUIBean.Companion.isContractQR
import
com.base.scanqrclear.bean.ContractUIBean.Companion.isContractQR
import
com.base.scanqrclear.bean.EmailUIBean.Companion.createEmailBean
import
com.base.scanqrclear.bean.EmailUIBean.Companion.createEmailBean
...
@@ -22,6 +24,7 @@ import com.base.scanqrclear.bean.EventUIBean.Companion.createEventBean
...
@@ -22,6 +24,7 @@ import com.base.scanqrclear.bean.EventUIBean.Companion.createEventBean
import
com.base.scanqrclear.bean.EventUIBean.Companion.isEventQR
import
com.base.scanqrclear.bean.EventUIBean.Companion.isEventQR
import
com.base.scanqrclear.bean.FacebookUIBean.Companion.createFaceBookUIBean
import
com.base.scanqrclear.bean.FacebookUIBean.Companion.createFaceBookUIBean
import
com.base.scanqrclear.bean.FacebookUIBean.Companion.isFacebookQR
import
com.base.scanqrclear.bean.FacebookUIBean.Companion.isFacebookQR
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_ADDRESS
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FACEBOOK
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FACEBOOK
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FOOD
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_FOOD
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_INSTAGRAM
import
com.base.scanqrclear.bean.FunctionUIBean.Companion.KEY_INSTAGRAM
...
@@ -354,12 +357,10 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
...
@@ -354,12 +357,10 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
override
fun
failed
(
where
:
Int
)
{
override
fun
failed
(
where
:
Int
)
{
jumpWebsiteCodeActivity
(
activity
,
qrCodeValue
)
jumpWebsiteCodeActivity
(
activity
,
qrCodeValue
)
}
}
override
fun
googleFailed
(
where
:
Int
)
{
override
fun
googleFailed
(
where
:
Int
)
{
jumpWebsiteCodeActivity
(
activity
,
qrCodeValue
)
jumpWebsiteCodeActivity
(
activity
,
qrCodeValue
)
}
}
})
})
return
return
...
@@ -458,6 +459,25 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
...
@@ -458,6 +459,25 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
return
return
}
}
if
(
isAddressQR
(
qrCodeValue
))
{
if
(
scanJump
.
get
())
return
scanJump
.
set
(
true
)
AdsMgr
.
showInsert
(
activity
,
true
,
object
:
AdsShowCallBack
()
{
override
fun
close
(
where
:
Int
)
{
jumpQrResultsActivity
(
activity
,
qrCodeValue
,
KEY_ADDRESS
)
}
override
fun
failed
(
where
:
Int
)
{
jumpQrResultsActivity
(
activity
,
qrCodeValue
,
KEY_ADDRESS
)
}
override
fun
googleFailed
(
where
:
Int
)
{
jumpQrResultsActivity
(
activity
,
qrCodeValue
,
KEY_ADDRESS
)
}
})
return
}
if
(
valueType
==
Barcode
.
TYPE_TEXT
)
{
if
(
valueType
==
Barcode
.
TYPE_TEXT
)
{
if
(
scanJump
.
get
())
return
if
(
scanJump
.
get
())
return
scanJump
.
set
(
true
)
scanJump
.
set
(
true
)
...
@@ -511,6 +531,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
...
@@ -511,6 +531,7 @@ class ScanFragment : BaseFragment<FragmentScanBinding>(FragmentScanBinding::infl
KEY_SPOTIFY
->
createSpotifyUIBean
(
qrCodeValue
)
KEY_SPOTIFY
->
createSpotifyUIBean
(
qrCodeValue
)
KEY_PAYPAL
->
createPaypalUIBean
(
qrCodeValue
)
KEY_PAYPAL
->
createPaypalUIBean
(
qrCodeValue
)
KEY_YOUTUBE
->
createYoutubeUIBean
(
qrCodeValue
)
KEY_YOUTUBE
->
createYoutubeUIBean
(
qrCodeValue
)
KEY_ADDRESS
->
createAddressUIBean
(
qrCodeValue
)
KEY_FOOD
->
otherScanBean
KEY_FOOD
->
otherScanBean
else
->
ScanBean
()
else
->
ScanBean
()
}
}
...
...
app/src/main/res/layout/dialog_address.xml
0 → 100644
View file @
103d3dbe
<?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"
android:background=
"@drawable/bg_f0f1f5_20"
>
<ImageView
android:id=
"@+id/iv"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margin=
"16dp"
android:src=
"@mipmap/h_address"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription,ImageContrastCheck"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:text=
"Address"
android:textColor=
"@color/black"
android:textSize=
"19sp"
app:layout_constraintBottom_toBottomOf=
"@id/iv"
app:layout_constraintStart_toEndOf=
"@id/iv"
app:layout_constraintTop_toTopOf=
"@id/iv"
tools:ignore=
"HardcodedText"
/>
<FrameLayout
android:id=
"@+id/flClose"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"10dp"
android:padding=
"10dp"
app:layout_constraintBottom_toBottomOf=
"@id/iv"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/iv"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/guanbi"
tools:ignore=
"ContentDescription,ImageContrastCheck"
/>
</FrameLayout>
<LinearLayout
android:id=
"@+id/llLongitude"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginStart=
"12dp"
android:layout_marginTop=
"14dp"
android:layout_marginEnd=
"16dp"
android:background=
"@drawable/bg_ffffff_5"
android:orientation=
"vertical"
app:layout_constraintTop_toBottomOf=
"@id/iv"
>
<TextView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"12dp"
android:text=
"@string/longitude"
android:textColor=
"@color/black"
android:textSize=
"19sp"
/>
<EditText
android:id=
"@+id/editLongitude"
android:layout_width=
"match_parent"
android:layout_height=
"52dp"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"12dp"
android:layout_marginBottom=
"12dp"
android:background=
"@drawable/bg_stroke_eae9ef_5"
android:gravity=
"center_vertical"
android:hint=
"@string/please_enter_longitude"
android:importantForAutofill=
"no"
android:paddingHorizontal=
"16dp"
android:singleLine=
"true"
android:textColor=
"@color/black"
android:textColorHint=
"#999999"
android:textSize=
"16sp"
tools:ignore=
"TextFields,TextContrastCheck,VisualLintTextFieldSize"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/llLatitude"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginStart=
"12dp"
android:layout_marginTop=
"14dp"
android:layout_marginEnd=
"16dp"
android:background=
"@drawable/bg_ffffff_5"
android:orientation=
"vertical"
app:layout_constraintTop_toBottomOf=
"@id/llLongitude"
>
<TextView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"12dp"
android:text=
"@string/latitude"
android:textColor=
"@color/black"
android:textSize=
"19sp"
/>
<EditText
android:id=
"@+id/editLatitude"
android:layout_width=
"match_parent"
android:layout_height=
"52dp"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"12dp"
android:layout_marginBottom=
"12dp"
android:background=
"@drawable/bg_stroke_eae9ef_5"
android:gravity=
"center_vertical"
android:hint=
"@string/please_enter_latitude"
android:importantForAutofill=
"no"
android:paddingHorizontal=
"16dp"
android:singleLine=
"true"
android:textColor=
"@color/black"
android:textColorHint=
"#999999"
android:textSize=
"16sp"
tools:ignore=
"TextFields,TextContrastCheck,VisualLintTextFieldSize"
/>
</LinearLayout>
<TextView
android:id=
"@+id/tvBtn"
android:layout_width=
"match_parent"
android:layout_height=
"45dp"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"22dp"
android:background=
"@drawable/bg_btn_enable"
android:enabled=
"false"
android:gravity=
"center"
android:text=
"@string/create"
android:textColor=
"@color/color_bdc1c9_ffffff"
android:textSize=
"18sp"
android:textStyle=
"bold"
app:layout_constraintTop_toBottomOf=
"@id/llLatitude"
/>
<com.base.scanqrclear.ads.NativeParentView
android:id=
"@+id/flAd"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"18dp"
android:background=
"@drawable/bg_ecf6ff_20"
android:minHeight=
"120dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tvBtn"
>
<io.supercharge.shimmerlayout.ShimmerLayout
android:id=
"@+id/shimmerLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginHorizontal=
"16dp"
app:shimmer_angle=
"25"
app:shimmer_animation_duration=
"2000"
app:shimmer_auto_start=
"true"
app:shimmer_color=
"#33ffffff"
app:shimmer_mask_width=
"0.2"
>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@mipmap/czhanweitu"
tools:ignore=
"ContentDescription,ImageContrastCheck"
/>
</io.supercharge.shimmerlayout.ShimmerLayout>
</com.base.scanqrclear.ads.NativeParentView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/values/strings.xml
View file @
103d3dbe
...
@@ -280,5 +280,9 @@
...
@@ -280,5 +280,9 @@
<string
name=
"see_more"
>
See More
</string>
<string
name=
"see_more"
>
See More
</string>
<string
name=
"please_enter_the_video_id"
>
Please enter the video ID
</string>
<string
name=
"please_enter_the_video_id"
>
Please enter the video ID
</string>
<string
name=
"please_enter_the_channel_id"
>
Please enter the channel ID
</string>
<string
name=
"please_enter_the_channel_id"
>
Please enter the channel ID
</string>
<string
name=
"longitude"
>
Longitude
</string>
<string
name=
"please_enter_longitude"
>
Please enter longitude
</string>
<string
name=
"latitude"
>
Latitude
</string>
<string
name=
"please_enter_latitude"
>
Please enter latitude
</string>
</resources>
</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