谷歌登录

这个提交包含在:
徐勤民 2024-07-26 11:31:30 +08:00
父节点 fcca8a2fa0
当前提交 5ade899336
共有 5 个文件被更改,包括 142 次插入8 次删除

查看文件

@ -65,7 +65,12 @@ android {
} }
namespace 'com.xuqinmin.android.app' namespace 'com.xuqinmin.android.app'
} }
configurations.all {
resolutionStrategy {
force "androidx.lifecycle:lifecycle-viewmodel:2.5.1"
force "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1"
}
}
dependencies { dependencies {
implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"]) implementation fileTree(dir: "libs", include: ["*.jar", "*.aar"])
implementation project(path: ':core') implementation project(path: ':core')
@ -114,4 +119,8 @@ dependencies {
implementation("com.android.billingclient:billing:6.2.0") implementation("com.android.billingclient:billing:6.2.0")
// implementation("com.android.billingclient:billing-ktx:6.2.0") // implementation("com.android.billingclient:billing-ktx:6.2.0")
implementation("com.google.android.gms:play-services-base:18.5.0")
implementation("com.google.android.gms:play-services-auth:21.2.0")
} }

68
app/google-services.json 普通文件
查看文件

@ -0,0 +1,68 @@
{
"project_info": {
"project_number": "981878503916",
"project_id": "chatlive-6f73e",
"storage_bucket": "chatlive-6f73e.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:981878503916:android:4a1f95a93bc4a29202a8c9",
"android_client_info": {
"package_name": "com.chat.live"
}
},
"oauth_client": [
{
"client_id": "981878503916-k8qii5tcfvs8gph4lscrb5tr729ll6eh.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAQZFkQgBI_sJBKYAzxZrPlJFFvfymI2F4"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "981878503916-k8qii5tcfvs8gph4lscrb5tr729ll6eh.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
},
{
"client_info": {
"mobilesdk_app_id": "1:981878503916:android:27d5fec1614a6e0d02a8c9",
"android_client_info": {
"package_name": "com.chatlive.app"
}
},
"oauth_client": [
{
"client_id": "981878503916-k8qii5tcfvs8gph4lscrb5tr729ll6eh.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAQZFkQgBI_sJBKYAzxZrPlJFFvfymI2F4"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "981878503916-k8qii5tcfvs8gph4lscrb5tr729ll6eh.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}

查看文件

@ -5,4 +5,5 @@ const val SHARE_RISK_PURE = "share_risk_pure"
const val MCC = "mcc" const val MCC = "mcc"
const val DEVICE_ID = "deviceUuid" const val DEVICE_ID = "deviceUuid"
const val GOOGLE_ID = "googleId"
const val USER_INFO = "user_info" const val USER_INFO = "user_info"

查看文件

@ -1,17 +1,25 @@
package com.xuqinmin.android.app.ui package com.xuqinmin.android.app.ui
import android.R.attr
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.telephony.TelephonyManager import android.telephony.TelephonyManager
import android.util.Log
import androidx.activity.viewModels import androidx.activity.viewModels
import com.bigkoo.alertview.AlertView import com.bigkoo.alertview.AlertView
import com.google.android.gms.auth.api.signin.GoogleSignIn
import com.google.android.gms.auth.api.signin.GoogleSignInAccount
import com.google.android.gms.auth.api.signin.GoogleSignInClient
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
import com.google.android.gms.common.api.ApiException
import com.google.android.gms.tasks.Task
import com.xuqinmin.android.app.MyApplication import com.xuqinmin.android.app.MyApplication
import com.xuqinmin.android.app.R import com.xuqinmin.android.app.R
import com.xuqinmin.android.app.common.DEVICE_ID import com.xuqinmin.android.app.common.DEVICE_ID
import com.xuqinmin.android.app.common.GOOGLE_ID
import com.xuqinmin.android.app.common.MCC import com.xuqinmin.android.app.common.MCC
import com.xuqinmin.android.app.databinding.ActivityWelcomeBinding import com.xuqinmin.android.app.databinding.ActivityWelcomeBinding
import com.xuqinmin.android.app.model.DataLogin import com.xuqinmin.android.app.model.DataLogin
import com.xuqinmin.android.app.model.ModelHideIn
import com.xuqinmin.android.app.viewmodel.WelcomeVM import com.xuqinmin.android.app.viewmodel.WelcomeVM
import com.xuqm.base.common.AppManager import com.xuqm.base.common.AppManager
import com.xuqm.base.common.DeviceUuidFactory import com.xuqm.base.common.DeviceUuidFactory
@ -19,17 +27,17 @@ import com.xuqm.base.common.GsonImplHelp
import com.xuqm.base.common.SHARE_LOGIN_OBJ import com.xuqm.base.common.SHARE_LOGIN_OBJ
import com.xuqm.base.common.SHARE_UESR_ID import com.xuqm.base.common.SHARE_UESR_ID
import com.xuqm.base.common.SHARE_UESR_TOKEN import com.xuqm.base.common.SHARE_UESR_TOKEN
import com.xuqm.base.common.ToolsHelper
import com.xuqm.base.dialog.loading.LoadingDialog import com.xuqm.base.dialog.loading.LoadingDialog
import com.xuqm.base.extensions.Fonts import com.xuqm.base.extensions.Fonts
import com.xuqm.base.extensions.getIntForPreferences
import com.xuqm.base.extensions.getStringForPreferences import com.xuqm.base.extensions.getStringForPreferences
import com.xuqm.base.extensions.loge
import com.xuqm.base.extensions.putInt import com.xuqm.base.extensions.putInt
import com.xuqm.base.extensions.putString import com.xuqm.base.extensions.putString
import com.xuqm.base.extensions.setFont import com.xuqm.base.extensions.setFont
import com.xuqm.base.extensions.showMessage import com.xuqm.base.extensions.showMessage
import com.xuqm.base.ui.BaseActivity import com.xuqm.base.ui.BaseActivity
import com.xuqm.base.web.XWebViewHelper import com.xuqm.base.web.XWebViewHelper
import kotlin.random.Random
class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() { class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
@ -38,10 +46,18 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
override fun fullscreen(): Boolean = true override fun fullscreen(): Boolean = true
private val vm: WelcomeVM by viewModels() private val vm: WelcomeVM by viewModels()
private lateinit var mGoogleSignInClient: GoogleSignInClient
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
super.initView(savedInstanceState) super.initView(savedInstanceState)
AppManager.getInstance().logout() AppManager.getInstance().logout()
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build()
mGoogleSignInClient = GoogleSignIn.getClient(this, gso)
val account = GoogleSignIn.getLastSignedInAccount(this)
account?.loge()
binding.world1.setFont(mContext, Fonts.Bold) binding.world1.setFont(mContext, Fonts.Bold)
binding.world2.setFont(mContext, Fonts.Bold) binding.world2.setFont(mContext, Fonts.Bold)
binding.loginGuest.setFont(mContext, Fonts.Bold) binding.loginGuest.setFont(mContext, Fonts.Bold)
@ -71,6 +87,7 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
} }
binding.loginGuest.setOnClickListener { binding.loginGuest.setOnClickListener {
LoadingDialog.showDialog("") LoadingDialog.showDialog("")
putString(GOOGLE_ID,"")
vm.thirdLogin( vm.thirdLogin(
DataLogin( DataLogin(
getStringForPreferences(DEVICE_ID), getStringForPreferences(DEVICE_ID),
@ -80,9 +97,47 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
) )
} }
binding.loginGoogle.setOnClickListener { binding.loginGoogle.setOnClickListener {
val signInIntent = mGoogleSignInClient.signInIntent
startActivityForResult(signInIntent, 10010)
} }
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode === 10010) {
// The Task returned from this call is always completed, no need to attach
// a listener.
val task: Task<GoogleSignInAccount> =
GoogleSignIn.getSignedInAccountFromIntent(data)
handleSignInResult(task)
}
}
private fun handleSignInResult(completedTask: Task<GoogleSignInAccount>) {
try {
val account = completedTask.getResult(ApiException::class.java)
account.loge()
account.id?.let {
putString(GOOGLE_ID,it)
LoadingDialog.showDialog("")
vm.thirdLogin(
DataLogin(
getStringForPreferences(DEVICE_ID),
it,
2
)
)
}
// Signed in successfully, show authenticated UI.
// updateUI(account)
} catch (e: ApiException) {
// The ApiException status code indicates the detailed failure reason.
// Please refer to the GoogleSignInStatusCodes class reference for more information.
Log.w(TAG, "signInResult:failed code=" + e.statusCode)
// updateUI(null)
"Failed to obtain account information".showMessage()
}
}
override fun initData() { override fun initData() {
super.initData() super.initData()
val telManager = getSystemService(TELEPHONY_SERVICE) as TelephonyManager val telManager = getSystemService(TELEPHONY_SERVICE) as TelephonyManager
@ -134,11 +189,12 @@ class WelcomeActivity : BaseActivity<ActivityWelcomeBinding>() {
val stringForPreferences = getStringForPreferences(SHARE_LOGIN_OBJ) val stringForPreferences = getStringForPreferences(SHARE_LOGIN_OBJ)
if (stringForPreferences.isNotEmpty()) { if (stringForPreferences.isNotEmpty()) {
LoadingDialog.showDialog("") LoadingDialog.showDialog("")
val googleId = getStringForPreferences(GOOGLE_ID)
vm.thirdLogin( vm.thirdLogin(
DataLogin( DataLogin(
getStringForPreferences(DEVICE_ID), getStringForPreferences(DEVICE_ID),
getStringForPreferences(DEVICE_ID), if (ToolsHelper.isNull(googleId))getStringForPreferences(DEVICE_ID) else googleId,
0 if (ToolsHelper.isNull(googleId))0 else 2
) )
) )
} }

查看文件

@ -14,7 +14,7 @@ ext {
paging : '2.1.1', paging : '2.1.1',
room : '2.2.3', room : '2.2.3',
lifecycle : '2.2.0', lifecycle : '2.5.1',
retrofit : '2.4.0', retrofit : '2.4.0',
glide : '4.10.0', glide : '4.10.0',