diff --git a/app/build.gradle b/app/build.gradle index 769ab02..5360a63 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,7 +28,7 @@ android { testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true - buildConfigField "String", "BASE_URL", "\"http://10.190.183.37\"" + buildConfigField "String", "BASE_URL", "\"http://10.190.183.37:80\"" javaCompileOptions { annotationProcessorOptions { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 502ebf4..e39fc97 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,7 +34,7 @@ android:name="com.project.survey.App" android:allowBackup="false" android:extractNativeLibs="true" - android:icon="@mipmap/ic_launcher" + android:icon="@mipmap/icon_launcher" android:label="@string/app_name" android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true" diff --git a/app/src/main/java/com/project/survey/constants/Constants.kt b/app/src/main/java/com/project/survey/constants/Constants.kt index 5f93945..55966f9 100644 --- a/app/src/main/java/com/project/survey/constants/Constants.kt +++ b/app/src/main/java/com/project/survey/constants/Constants.kt @@ -7,7 +7,7 @@ object Constants { object SPConstants { const val TOKEN = "token" const val ACCOUNT = "account" - const val LOGIN = "login" //登录状态 + const val MOBILE_PHONE = "mobilePhone" } object EventConstants{ diff --git a/app/src/main/java/com/project/survey/logic/bean/LoginBean.kt b/app/src/main/java/com/project/survey/logic/bean/LoginBean.kt new file mode 100644 index 0000000..18e6cf9 --- /dev/null +++ b/app/src/main/java/com/project/survey/logic/bean/LoginBean.kt @@ -0,0 +1,6 @@ +package com.project.survey.logic.bean + +data class LoginBean( + val token: String, + val mobilePhone: String +) diff --git a/app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt b/app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt index 7683b18..c6796c2 100644 --- a/app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt +++ b/app/src/main/java/com/project/survey/logic/viewmodel/LoginViewModel.kt @@ -4,39 +4,48 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import com.project.survey.constants.EventConstants import com.project.survey.constants.SPConstants +import com.project.survey.logic.bean.LoginBean import com.project.survey.logic.event.Message import com.project.survey.network.RetrofitClient import com.project.survey.util.SPUtils -class LoginViewModel : BaseViewModel(){ +class LoginViewModel : BaseViewModel() { val api = RetrofitClient.createApiService() - val loginResponse: LiveData + val loginResponse: LiveData get() = _loginResponse - private val _loginResponse = MutableLiveData() + private val _loginResponse = MutableLiveData() /** * 登录 */ - fun login(account: String, password: String){ + fun login(account: String, password: String) { launch { - // TODO: -// val res = api.login(account, password) -// if (res.success){ -// _loginResponse.postValue(res.data) -// SPUtils.put(SPConstants.TOKEN, res.data) -// SPUtils.put(SPConstants.LOGIN, true) -// SPUtils.put(SPConstants.ACCOUNT, account) -// msgEvent.postValue(Message(EventConstants.LOGIN_STATUS)) -// } - - _loginResponse.postValue("res.data") - SPUtils.put(SPConstants.TOKEN, "res.data") - SPUtils.put(SPConstants.LOGIN, true) - SPUtils.put(SPConstants.ACCOUNT, account) - msgEvent.postValue(Message(EventConstants.LOGIN_STATUS)) + val res = api.login(account, password) + if (res.success) { + _loginResponse.postValue(res.data) + SPUtils.put(SPConstants.TOKEN, res.data.token) + SPUtils.put(SPConstants.ACCOUNT, account) + SPUtils.put(SPConstants.MOBILE_PHONE, res.data.mobilePhone) + msgEvent.postValue(Message(EventConstants.LOGIN_STATUS)) + } + +// _loginResponse.postValue("res.data") +// SPUtils.put(SPConstants.TOKEN, "res.data") +// SPUtils.put(SPConstants.LOGIN, true) +// SPUtils.put(SPConstants.ACCOUNT, account) +// msgEvent.postValue(Message(EventConstants.LOGIN_STATUS)) + } + } + + fun sendSMS(mobile: String) { + launch { + val res = api.sendSMS(mobile) + if (res.success) { + + } } } } \ No newline at end of file diff --git a/app/src/main/java/com/project/survey/network/Api.kt b/app/src/main/java/com/project/survey/network/Api.kt index b1c024f..8fc5c35 100644 --- a/app/src/main/java/com/project/survey/network/Api.kt +++ b/app/src/main/java/com/project/survey/network/Api.kt @@ -1,5 +1,6 @@ package com.project.survey.network +import com.project.survey.logic.bean.LoginBean import com.project.survey.model.ProjectBean import retrofit2.http.GET import retrofit2.http.Query @@ -9,11 +10,11 @@ interface Api { /** * 登录 */ - @GET("/je/project/login") + @GET("/je/personInfo/externalEntry") suspend fun login( @Query("account") account: String, @Query("password") password: String - ): HttpResult + ): HttpResult /** * 获取用户可访问的所有项目的信息 @@ -22,4 +23,12 @@ interface Api { suspend fun getAllProjectIDByAccount( @Query("account") account: String ): HttpResult> + + /** + * + */ + @GET("/Api/Mas/sendSms") + suspend fun sendSMS( + @Query("mobile") mobile: String + ): HttpResult } \ No newline at end of file diff --git a/app/src/main/java/com/project/survey/ui/home/MeFragment.kt b/app/src/main/java/com/project/survey/ui/home/MeFragment.kt index 3391c93..6264b09 100644 --- a/app/src/main/java/com/project/survey/ui/home/MeFragment.kt +++ b/app/src/main/java/com/project/survey/ui/home/MeFragment.kt @@ -25,33 +25,39 @@ class MeFragment : BaseBindingFragment() { private val viewModel: LoginViewModel by viewModels() - private val account by lazy { SPUtils.getString(SPConstants.ACCOUNT) } - - override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentMeBinding { - return FragmentMeBinding.inflate(inflater, container, false) - } + override fun getBinding(inflater: LayoutInflater, container: ViewGroup?): FragmentMeBinding = + FragmentMeBinding.inflate(inflater, container, false) override fun initView() { } override fun initData() { viewModel.msgEvent.observe(this) { - binding.tvLoginOrOut.text = - if (SPUtils.getBoolean(SPConstants.LOGIN) == true) getString(R.string.login_out) else getString( - R.string.login - ) - binding.tvName.text = - if (SPUtils.getBoolean(SPConstants.LOGIN) == true) account else "请登录" + updateUIByData() } - + updateUIByData() if (BuildConfig.DEBUG) { binding.tvVersion.text = BuildConfig.VERSION_NAME } } + private fun updateUIByData(){ + val token = SPUtils.getString(SPConstants.TOKEN) ?: "" + binding.tvLoginOrOut.text = + if (token.isBlank()) + getString(R.string.login) + else + getString(R.string.login_out) + binding.tvName.text = + if (token.isBlank()) "请登录" else SPUtils.getString(SPConstants.ACCOUNT) ?: "" + } + override fun initListener() { binding.tvLoginOrOut.setOnClickNoRepeatListener { - if (SPUtils.getBoolean(SPConstants.LOGIN) == true) { + if (SPUtils.getString(SPConstants.TOKEN).isNullOrBlank()) { + // 登录 + LoginActivity.start() + } else { // 退出登录 MaterialDialog.Builder(mContext) .title("确定退出吗?") @@ -59,14 +65,10 @@ class MeFragment : BaseBindingFragment() { .positiveText("退出") .onPositive { _, _ -> SPUtils.removeKey(SPConstants.TOKEN) - SPUtils.put(SPConstants.LOGIN, false) SPUtils.removeKey(SPConstants.ACCOUNT) viewModel.msgEvent.postValue(Message(EventConstants.LOGIN_STATUS)) } .show() - } else { - // 登录 - LoginActivity.start() } } binding.llSwitchProject.setOnClickNoRepeatListener { @@ -74,7 +76,7 @@ class MeFragment : BaseBindingFragment() { } // TODO: binding.llAbout.setOnClickNoRepeatListener { - SPUtils.put(SPConstants.LOGIN, false) +// viewModel.sendSMS("17379748209") } } } \ No newline at end of file diff --git a/app/src/main/res/layout/widget_section_item.xml b/app/src/main/res/layout/widget_section_item.xml index 00662c7..57a021e 100644 --- a/app/src/main/res/layout/widget_section_item.xml +++ b/app/src/main/res/layout/widget_section_item.xml @@ -13,7 +13,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - tools:src="@mipmap/ic_launcher" /> + tools:src="@mipmap/icon_launcher" /> - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml deleted file mode 100644 index 6f3b755..0000000 --- a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index c209e78..0000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp deleted file mode 100644 index b2dfe3d..0000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/icon_launcher.webp b/app/src/main/res/mipmap-hdpi/icon_launcher.webp new file mode 100644 index 0000000..40bd0cf Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/icon_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp deleted file mode 100644 index 4f0f1d6..0000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp deleted file mode 100644 index 62b611d..0000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/icon_launcher.webp b/app/src/main/res/mipmap-mdpi/icon_launcher.webp new file mode 100644 index 0000000..329f4a3 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/icon_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp deleted file mode 100644 index 948a307..0000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp deleted file mode 100644 index 1b9a695..0000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/icon_launcher.webp b/app/src/main/res/mipmap-xhdpi/icon_launcher.webp new file mode 100644 index 0000000..12e32ac Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/icon_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp deleted file mode 100644 index 28d4b77..0000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9287f50..0000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_launcher.webp b/app/src/main/res/mipmap-xxhdpi/icon_launcher.webp new file mode 100644 index 0000000..1189587 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index aa7d642..0000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9126ae3..0000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/icon_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/icon_launcher.webp new file mode 100644 index 0000000..89a097b Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/icon_launcher.webp differ