Commit b7cdb36d authored by wanglei's avatar wanglei

...

parent 18e3155e
......@@ -102,6 +102,7 @@ dependencies {
implementation("io.supercharge:shimmerlayout:2.1.0")
implementation("com.github.Kunzisoft:Android-SwitchDateTimePicker:2.1")
implementation("com.github.zhpanvip:viewpagerindicator:1.2.3")
implementation("com.github.angcyo.DslTablayout:TabLayout:3.6.5")
//机器学习二维码扫描
......
......@@ -40,6 +40,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.ScanQR"
tools:targetApi="31">
<activity
android:name=".ui.insqr.InsActivity"
android:exported="false" />
<activity
android:name=".ui.whatsappqr.AreaCodeActivity"
android:exported="false" />
......
package com.base.scanqrclear.bean
import com.base.scanqrclear.bean.WhatsappUIBean.Companion.createWhatsappQrString
data class FacebookUIBean(
val url: String? = null,
val id: String? = null
) {
companion object {
// fb://profile/www.baidu.con
fun FacebookUIBean.createFacebookUrlQrString(): String {
return "fb://profile/$url"
}
// fb://profile/123456
fun FacebookUIBean.createFacebookIdQrString(): String {
return "fb://profile/$id"
}
}
}
\ No newline at end of file
package com.base.scanqrclear.ui.facebookqr
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.FacebookUIBean
import com.base.scanqrclear.bean.FacebookUIBean.Companion.createFacebookIdQrString
import com.base.scanqrclear.bean.FacebookUIBean.Companion.createFacebookUrlQrString
import com.base.scanqrclear.bean.WhatsappUIBean
import com.base.scanqrclear.bean.WhatsappUIBean.Companion.createWhatsappQrString
import com.base.scanqrclear.databinding.DialogFacebookBinding
import com.base.scanqrclear.qr.QrStyleActivity
import com.base.scanqrclear.ui.whatsappqr.WhatsappDialog.showWhatsappDialog
object FacebookDialog {
fun Activity.showFacebookDialog() {
val dialog = AlertDialog.Builder(this).create()
val binding = DialogFacebookBinding.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)
var isUrlOrId: Boolean = true
binding.dslTabLayout.configTabLayoutConfig {
onSelectIndexChange = { fromIndex, selectIndexList, reselect, fromUser ->
val selectIndex = selectIndexList[0]
if (selectIndex == 0) {
isUrlOrId = true
binding.editContent.hint = getString(R.string.please_enter_the_url)
} else {
isUrlOrId = false
binding.editContent.hint = getString(R.string.please_enter_your_id)
}
}
}
binding.flClose.setOnClickListener {
dialog.dismiss()
}
binding.editContent.addTextChangedListener { s: Editable? ->
binding.tvBtn.isEnabled = !s.isNullOrEmpty()
}
val jump = {
dialog.dismiss()
val content = binding.editContent.text.toString()
val bean = if (isUrlOrId) FacebookUIBean(url = content) else FacebookUIBean(id = content)
startActivity(Intent(this, QrStyleActivity::class.java).apply {
putExtra("qrString", if (isUrlOrId) bean.createFacebookUrlQrString() else bean.createFacebookIdQrString())
})
}
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
......@@ -35,11 +35,13 @@ import com.base.scanqrclear.ui.concatadapt.AdAdapter
import com.base.scanqrclear.ui.contact.ContractActivity
import com.base.scanqrclear.ui.email.EmailActivity
import com.base.scanqrclear.ui.event.EventActivity
import com.base.scanqrclear.ui.facebookqr.FacebookDialog.showFacebookDialog
import com.base.scanqrclear.ui.message.MessageActivity
import com.base.scanqrclear.ui.spotifyqr.SpotifyDialog.showSpotifyDialog
import com.base.scanqrclear.ui.telephone.TelephoneActivity
import com.base.scanqrclear.ui.text.TextActivity
import com.base.scanqrclear.ui.website.WebsiteActivity
import com.base.scanqrclear.ui.widget.WhatsappDialog.showWhatsappDialog
import com.base.scanqrclear.ui.whatsappqr.WhatsappDialog.showWhatsappDialog
import com.base.scanqrclear.ui.widget.guideview.Component
import com.base.scanqrclear.ui.widget.guideview.GuideBuilder
import com.base.scanqrclear.ui.widget.guideview.LottieComponent
......@@ -224,8 +226,22 @@ class CreateFragment : BaseFragment<FragmentCreateBinding>(FragmentCreateBinding
KEY_WHATSAPP -> {
val activity = requireActivity() as MainActivity?
activity ?: return
activity.showWhatsappDialog(activity.launcher)
activity?.showWhatsappDialog(activity.launcher)
}
KEY_FACEBOOK -> {
val activity = requireActivity() as MainActivity?
activity?.showFacebookDialog()
}
KEY_INSTAGRAM->{
val activity = requireActivity() as MainActivity?
activity?.showFacebookDialog()
}
KEY_SPOTIFY -> {
val activity = requireActivity() as MainActivity?
activity?.showSpotifyDialog()
}
}
}
......
package com.base.scanqrclear.ui.spotifyqr
import android.app.Activity
import android.app.AlertDialog
import android.view.Gravity
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.base.scanqrclear.R
import com.base.scanqrclear.ads.AdsMgr
import com.base.scanqrclear.databinding.DialogSpotifyBinding
object SpotifyDialog {
fun Activity.showSpotifyDialog() {
val dialog = AlertDialog.Builder(this).create()
val binding = DialogSpotifyBinding.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()
}
}
}
\ No newline at end of file
package com.base.scanqrclear.ui.whatsappqr
import android.content.Intent
import android.text.Editable
import androidx.core.app.ActivityOptionsCompat
import androidx.core.widget.addTextChangedListener
import com.base.scanqrclear.R
import com.base.scanqrclear.base.BaseActivity
import com.base.scanqrclear.bean.AreaCodeBean
import com.base.scanqrclear.databinding.ActivityAreaCodeBinding
import com.base.scanqrclear.ui.widget.WhatsappDialog.showWhatsappDialog
import kotlin.random.Random
class AreaCodeActivity : BaseActivity<ActivityAreaCodeBinding>(ActivityAreaCodeBinding::inflate) {
......
package com.base.scanqrclear.ui.widget
package com.base.scanqrclear.ui.whatsappqr
import android.annotation.SuppressLint
import android.app.Activity
import android.app.AlertDialog
import android.content.Context
import android.content.Intent
import android.text.Editable
import android.view.Gravity
......@@ -18,8 +17,8 @@ import com.base.scanqrclear.bean.WhatsappUIBean
import com.base.scanqrclear.bean.WhatsappUIBean.Companion.createWhatsappQrString
import com.base.scanqrclear.databinding.DialogWhastsppBinding
import com.base.scanqrclear.qr.QrStyleActivity
import com.base.scanqrclear.ui.whatsappqr.AreaCodeActivity
import com.base.scanqrclear.utils.ActivityLauncher
import com.base.scanqrclear.utils.AppPreferences
import com.base.scanqrclear.utils.LogEx
......@@ -49,11 +48,15 @@ object WhatsappDialog {
AdsMgr.showNative(binding.flAd, R.layout.layout_admob_native_custom)
binding.flClose.setOnClickListener {
dialog.dismiss()
}
binding.editNumber.addTextChangedListener { s: Editable? ->
binding.tvBtn.isEnabled = !s.isNullOrEmpty()
}
var code = 1
var code = AppPreferences.getInstance().getInt("areaCode", 1)
binding.tvAreaCode.setOnClickListener {
val intent = Intent(this@showWhatsappDialog, AreaCodeActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NO_HISTORY
......@@ -68,6 +71,7 @@ object WhatsappDialog {
LogEx.logDebug(TAG, "code=${result.resultCode}")
code = result.resultCode
binding.tvAreaCode.text = "+${code}"
AppPreferences.getInstance().putInt("areaCode", code)
}
}
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#E3E6FF" />
<corners android:radius="90dp" />
</shape>
\ No newline at end of file
<?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_facebook"
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="Facebook"
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>
<com.angcyo.tablayout.DslTabLayout
android:id="@+id/dslTabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginTop="18dp"
android:layout_marginRight="10dp"
android:minHeight="50dp"
app:layout_constraintTop_toBottomOf="@id/iv"
app:tab_border_radius_size="90dp"
app:tab_border_solid_color="#E3E6FF"
app:tab_deselect_color="@color/black"
app:tab_draw_border="true"
app:tab_indicator_drawable="@drawable/bg_6473f8_90"
app:tab_indicator_enable_flow="false"
app:tab_indicator_style="STYLE_CENTER"
app:tab_item_is_equ_width="true"
tools:tab_default_index="0">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="URI"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="ID"
android:textSize="18sp"
tools:ignore="HardcodedText" />
</com.angcyo.tablayout.DslTabLayout>
<LinearLayout
android:id="@+id/llContent"
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/dslTabLayout">
<TextView
android:id="@+id/tvTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="12dp"
android:text="@string/content"
android:textColor="@color/black"
android:textSize="19sp" />
<EditText
android:id="@+id/editContent"
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_the_url"
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/llContent" />
<com.base.scanqrclear.ads.NativeParentView
android:id="@+id/flAd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="18dp"
android:layout_marginBottom="8dp"
android:background="@drawable/bg_ecf6ff_20"
android:minHeight="133dp"
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
<?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_spotify"
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="Spotify"
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/llName"
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/singer_name"
android:textColor="@color/black"
android:textSize="19sp" />
<EditText
android:id="@+id/editName"
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_the_singer_s_name"
android:importantForAutofill="no"
android:paddingHorizontal="16dp"
android:singleLine="true"
android:textColor="#999999"
android:textSize="16sp"
tools:ignore="TextFields,TextContrastCheck,VisualLintTextFieldSize" />
</LinearLayout>
<LinearLayout
android:id="@+id/llSong"
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/llName">
<TextView
android:id="@+id/tvTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="12dp"
android:text="@string/song"
android:textColor="@color/black"
android:textSize="19sp" />
<EditText
android:id="@+id/editNumber"
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_the_song_name"
android:importantForAutofill="no"
android:paddingHorizontal="16dp"
android:singleLine="true"
android:textColor="#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/llSong" />
<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="133dp"
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
......@@ -265,5 +265,11 @@
<string name="regenerate">Regenerate</string>
<string name="please_enter_your_phone_number">Please enter your phone number</string>
<string name="search">Search</string>
<string name="please_enter_the_url">Please enter the URL</string>
<string name="singer_name">Singer Name</string>
<string name="please_enter_the_singer_s_name">Please enter the singer\'s name</string>
<string name="song">Song</string>
<string name="please_enter_the_song_name">Please enter the song name</string>
<string name="please_enter_your_id">Please enter your ID</string>
</resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment