|
@@ -1,14 +1,16 @@
|
|
|
package com.swago.login
|
|
|
|
|
|
import android.Manifest
|
|
|
+import android.app.Activity
|
|
|
import android.content.Intent
|
|
|
+import android.view.View
|
|
|
import android.widget.Toast
|
|
|
import androidx.activity.viewModels
|
|
|
import com.alibaba.android.arouter.facade.annotation.Route
|
|
|
import com.alibaba.android.arouter.launcher.ARouter
|
|
|
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.GoogleSignInStatusCodes
|
|
|
+import com.google.android.gms.common.GoogleApiAvailability
|
|
|
import com.google.android.gms.common.api.ApiException
|
|
|
import com.google.android.gms.common.api.CommonStatusCodes
|
|
|
import com.permissionx.guolindev.PermissionX
|
|
@@ -29,6 +31,8 @@ import com.swago.login.databinding.ActivityLoginBinding
|
|
|
class LoginActivity : BaseXActivity<ActivityLoginBinding>() {
|
|
|
|
|
|
private val loginVm by viewModels<LoginVm>()
|
|
|
+ private var isAccountLogin = false
|
|
|
+
|
|
|
|
|
|
override fun loadData() {
|
|
|
|
|
@@ -43,47 +47,57 @@ class LoginActivity : BaseXActivity<ActivityLoginBinding>() {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
+
|
|
|
binding.clFaceBook.setOnClickListener(object : NoDoubleClickListener() {
|
|
|
override fun onClick() {
|
|
|
- PermissionX.init(this@LoginActivity)
|
|
|
- .permissions(
|
|
|
- Manifest.permission.CAMERA,
|
|
|
- Manifest.permission.RECORD_AUDIO,
|
|
|
- Manifest.permission.READ_EXTERNAL_STORAGE
|
|
|
- )
|
|
|
- .request { allGranted, grantedList, deniedList ->
|
|
|
- if (allGranted) {
|
|
|
- FBLogin.login(this@LoginActivity)
|
|
|
- } else {
|
|
|
- Toast.makeText(
|
|
|
- this@LoginActivity,
|
|
|
- "These permissions are denied: $deniedList",
|
|
|
- Toast.LENGTH_LONG
|
|
|
- ).show()
|
|
|
+ if (isInstall(this@LoginActivity,FACEBOOK)){
|
|
|
+ PermissionX.init(this@LoginActivity)
|
|
|
+ .permissions(
|
|
|
+ Manifest.permission.CAMERA,
|
|
|
+ Manifest.permission.RECORD_AUDIO,
|
|
|
+ Manifest.permission.READ_EXTERNAL_STORAGE
|
|
|
+ )
|
|
|
+ .request { allGranted, grantedList, deniedList ->
|
|
|
+ if (allGranted) {
|
|
|
+ FBLogin.login(this@LoginActivity)
|
|
|
+ } else {
|
|
|
+ Toast.makeText(
|
|
|
+ this@LoginActivity,
|
|
|
+ "These permissions are denied: $deniedList",
|
|
|
+ Toast.LENGTH_LONG
|
|
|
+ ).show()
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ }else{
|
|
|
+ Toast.makeText(AppContext.getContext(), AppContext.getContext().resources.getString(R.string.install_facebook), Toast.LENGTH_SHORT).show()
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
})
|
|
|
|
|
|
binding.clGoogle.setOnClickListener(object : NoDoubleClickListener() {
|
|
|
override fun onClick() {
|
|
|
- PermissionX.init(this@LoginActivity)
|
|
|
- .permissions(
|
|
|
- Manifest.permission.CAMERA,
|
|
|
- Manifest.permission.RECORD_AUDIO,
|
|
|
- Manifest.permission.READ_EXTERNAL_STORAGE
|
|
|
- )
|
|
|
- .request { allGranted, grantedList, deniedList ->
|
|
|
- if (allGranted) {
|
|
|
- GoogleLogin.login(this@LoginActivity)
|
|
|
- } else {
|
|
|
- Toast.makeText(
|
|
|
- this@LoginActivity,
|
|
|
- "These permissions are denied: $deniedList",
|
|
|
- Toast.LENGTH_LONG
|
|
|
- ).show()
|
|
|
+ if (isInstall(this@LoginActivity,GOOGLE)) {
|
|
|
+ PermissionX.init(this@LoginActivity)
|
|
|
+ .permissions(
|
|
|
+ Manifest.permission.CAMERA,
|
|
|
+ Manifest.permission.RECORD_AUDIO,
|
|
|
+ Manifest.permission.READ_EXTERNAL_STORAGE
|
|
|
+ )
|
|
|
+ .request { allGranted, grantedList, deniedList ->
|
|
|
+ if (allGranted) {
|
|
|
+ GoogleLogin.login(this@LoginActivity)
|
|
|
+ } else {
|
|
|
+ Toast.makeText(
|
|
|
+ this@LoginActivity,
|
|
|
+ "These permissions are denied: $deniedList",
|
|
|
+ Toast.LENGTH_LONG
|
|
|
+ ).show()
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ }else{
|
|
|
+ Toast.makeText(AppContext.getContext(), "", Toast.LENGTH_SHORT).show()
|
|
|
+ }
|
|
|
}
|
|
|
})
|
|
|
|
|
@@ -111,9 +125,33 @@ class LoginActivity : BaseXActivity<ActivityLoginBinding>() {
|
|
|
}
|
|
|
})
|
|
|
|
|
|
- binding.bt.setOnClickListener(object: NoDoubleClickListener() {
|
|
|
+ binding.tvAccountLogin.setOnClickListener(object: NoDoubleClickListener() {
|
|
|
override fun onClick() {
|
|
|
- loginVm.loginByAccount("app", "xx")
|
|
|
+ if (isAccountLogin){
|
|
|
+ binding.etAccount.visibility = View.GONE
|
|
|
+ binding.etSecret.visibility = View.GONE
|
|
|
+ binding.tvLogin.visibility = View.GONE
|
|
|
+ binding.clFaceBook.visibility = View.VISIBLE
|
|
|
+ binding.clGoogle.visibility = View.VISIBLE
|
|
|
+ binding.tvAccountLogin.text = AppContext.getContext().resources.getString(R.string.acccount_login)
|
|
|
+ }else{
|
|
|
+ binding.etAccount.visibility = View.VISIBLE
|
|
|
+ binding.etSecret.visibility = View.VISIBLE
|
|
|
+ binding.tvLogin.visibility = View.VISIBLE
|
|
|
+ binding.clFaceBook.visibility = View.GONE
|
|
|
+ binding.clGoogle.visibility = View.GONE
|
|
|
+ binding.tvAccountLogin.text = AppContext.getContext().resources.getString(R.string.facebook_google_login)
|
|
|
+
|
|
|
+ }
|
|
|
+ isAccountLogin = !isAccountLogin
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
+ binding.tvLogin.setOnClickListener(object:NoDoubleClickListener(){
|
|
|
+ override fun onClick() {
|
|
|
+ val account = binding.etAccount.text.toString()
|
|
|
+ val secret = binding.etSecret.text.toString()
|
|
|
+ loginVm.loginByAccount(account, secret)
|
|
|
}
|
|
|
})
|
|
|
}
|
|
@@ -162,4 +200,24 @@ class LoginActivity : BaseXActivity<ActivityLoginBinding>() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ val FACEBOOK = "com.facebook.katana"
|
|
|
+ val GOOGLE = "google"
|
|
|
+ fun isInstall(activity: Activity, platform:String):Boolean{
|
|
|
+ if (platform == GOOGLE){
|
|
|
+ val available = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(activity)
|
|
|
+ return available == 0
|
|
|
+ }
|
|
|
+ val packageManager = activity.packageManager
|
|
|
+ val info = packageManager.getInstalledPackages(0)
|
|
|
+ if (info.isEmpty()){
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ info.forEach {
|
|
|
+ if (platform == it.packageName){
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false
|
|
|
+ }
|
|
|
}
|