diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..3bb3e28 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..3bb3e28 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_push_setting.xml b/app/src/main/res/drawable/ic_push_setting.xml new file mode 100644 index 0000000..969fc02 --- /dev/null +++ b/app/src/main/res/drawable/ic_push_setting.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..3bb3e28 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_push_setting.xml b/app/src/main/res/drawable/ic_push_setting.xml new file mode 100644 index 0000000..969fc02 --- /dev/null +++ b/app/src/main/res/drawable/ic_push_setting.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml new file mode 100644 index 0000000..2e9758d --- /dev/null +++ b/app/src/main/res/drawable/ic_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..3bb3e28 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_push_setting.xml b/app/src/main/res/drawable/ic_push_setting.xml new file mode 100644 index 0000000..969fc02 --- /dev/null +++ b/app/src/main/res/drawable/ic_push_setting.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml new file mode 100644 index 0000000..2e9758d --- /dev/null +++ b/app/src/main/res/drawable/ic_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_update.xml b/app/src/main/res/drawable/ic_update.xml new file mode 100644 index 0000000..c87c2ac --- /dev/null +++ b/app/src/main/res/drawable/ic_update.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..3bb3e28 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_push_setting.xml b/app/src/main/res/drawable/ic_push_setting.xml new file mode 100644 index 0000000..969fc02 --- /dev/null +++ b/app/src/main/res/drawable/ic_push_setting.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml new file mode 100644 index 0000000..2e9758d --- /dev/null +++ b/app/src/main/res/drawable/ic_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_update.xml b/app/src/main/res/drawable/ic_update.xml new file mode 100644 index 0000000..c87c2ac --- /dev/null +++ b/app/src/main/res/drawable/ic_update.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index 77d9ef6..c8d6d99 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -1,6 +1,245 @@ - + android:layout_height="match_parent" + android:background="@color/mainBackground" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..3bb3e28 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_push_setting.xml b/app/src/main/res/drawable/ic_push_setting.xml new file mode 100644 index 0000000..969fc02 --- /dev/null +++ b/app/src/main/res/drawable/ic_push_setting.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml new file mode 100644 index 0000000..2e9758d --- /dev/null +++ b/app/src/main/res/drawable/ic_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_update.xml b/app/src/main/res/drawable/ic_update.xml new file mode 100644 index 0000000..c87c2ac --- /dev/null +++ b/app/src/main/res/drawable/ic_update.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index 77d9ef6..c8d6d99 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -1,6 +1,245 @@ - + android:layout_height="match_parent" + android:background="@color/mainBackground" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_sample.xml b/app/src/main/res/layout/fragment_sample.xml index 77d9ef6..41d2ef1 100644 --- a/app/src/main/res/layout/fragment_sample.xml +++ b/app/src/main/res/layout/fragment_sample.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..3bb3e28 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_push_setting.xml b/app/src/main/res/drawable/ic_push_setting.xml new file mode 100644 index 0000000..969fc02 --- /dev/null +++ b/app/src/main/res/drawable/ic_push_setting.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml new file mode 100644 index 0000000..2e9758d --- /dev/null +++ b/app/src/main/res/drawable/ic_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_update.xml b/app/src/main/res/drawable/ic_update.xml new file mode 100644 index 0000000..c87c2ac --- /dev/null +++ b/app/src/main/res/drawable/ic_update.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index 77d9ef6..c8d6d99 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -1,6 +1,245 @@ - + android:layout_height="match_parent" + android:background="@color/mainBackground" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_sample.xml b/app/src/main/res/layout/fragment_sample.xml index 77d9ef6..41d2ef1 100644 --- a/app/src/main/res/layout/fragment_sample.xml +++ b/app/src/main/res/layout/fragment_sample.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index d188f0d..f7261b9 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -10,7 +10,8 @@ #3d7eff #803d7eff - #333333 + #555555 + #F7F7FA #E6E6E6 #E4E4E4 \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index 8d51c4a..fbd0cf1 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,11 +1,26 @@ package com.casic.xz.meterage.fragment +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R +import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment +import com.pengxh.kt.lite.utils.SaveKeyValues +import kotlinx.android.synthetic.main.fragment_mine.* -class MinePageFragment : KotlinBaseFragment(){ +class MinePageFragment : KotlinBaseFragment() { + override fun initData() { + val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] + userViewModel.getUserInfo(SaveKeyValues.getValue(LocaleConstant.ACCOUNT, "") as String) + userViewModel.userInfoResult.observe(this, { + if (it.code == 200) { + val data = it.data + userNameView.text = data.name + userUnitView.text = data.deptName + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java new file mode 100644 index 0000000..e68ab5b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/UserInfoModel.java @@ -0,0 +1,262 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class UserInfoModel { + + private int code; + private DataModel data; + private String message; + private boolean success; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static class DataModel { + private String account; + private String appId; + private String attr1; + private String avatar; + private String bizData; + private List dataScope; + private String deptId; + private String deptName; + private List devices; + private String id; + private String ipAddr; + private boolean isAppLogin; + private String name; + private String phone; + private List resourceUrls; + private List roleIds; + private List roleNames; + private List roleTips; + private String scopeType; + private String syncId; + private String syncName; + private String sysData; + private String tenantId; + private String userUniqueId; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAppId() { + return appId; + } + + public void setAppId(String appId) { + this.appId = appId; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAvatar() { + return avatar; + } + + public void setAvatar(String avatar) { + this.avatar = avatar; + } + + public String getBizData() { + return bizData; + } + + public void setBizData(String bizData) { + this.bizData = bizData; + } + + public List getDataScope() { + return dataScope; + } + + public void setDataScope(List dataScope) { + this.dataScope = dataScope; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public List getDevices() { + return devices; + } + + public void setDevices(List devices) { + this.devices = devices; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getIpAddr() { + return ipAddr; + } + + public void setIpAddr(String ipAddr) { + this.ipAddr = ipAddr; + } + + public boolean isIsAppLogin() { + return isAppLogin; + } + + public void setIsAppLogin(boolean isAppLogin) { + this.isAppLogin = isAppLogin; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public List getResourceUrls() { + return resourceUrls; + } + + public void setResourceUrls(List resourceUrls) { + this.resourceUrls = resourceUrls; + } + + public List getRoleIds() { + return roleIds; + } + + public void setRoleIds(List roleIds) { + this.roleIds = roleIds; + } + + public List getRoleNames() { + return roleNames; + } + + public void setRoleNames(List roleNames) { + this.roleNames = roleNames; + } + + public List getRoleTips() { + return roleTips; + } + + public void setRoleTips(List roleTips) { + this.roleTips = roleTips; + } + + public String getScopeType() { + return scopeType; + } + + public void setScopeType(String scopeType) { + this.scopeType = scopeType; + } + + public String getSyncId() { + return syncId; + } + + public void setSyncId(String syncId) { + this.syncId = syncId; + } + + public String getSyncName() { + return syncName; + } + + public void setSyncName(String syncName) { + this.syncName = syncName; + } + + public String getSysData() { + return sysData; + } + + public void setSysData(String sysData) { + this.sysData = sysData; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getUserUniqueId() { + return userUniqueId; + } + + public void setUserUniqueId(String userUniqueId) { + this.userUniqueId = userUniqueId; + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index f40401a..b762c4a 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -1,9 +1,7 @@ package com.casic.xz.meterage.utils.retrofit import okhttp3.RequestBody -import retrofit2.http.Body -import retrofit2.http.GET -import retrofit2.http.POST +import retrofit2.http.* interface RetrofitService { /** @@ -17,4 +15,13 @@ */ @POST("/sys/user/login") suspend fun login(@Body requestBody: RequestBody): String + + /** + * 获取用户信息 + */ + @GET("/sys/user/info") + suspend fun getUserInfo( + @Header("token") token: String, + @Query("account") account: String + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index c6e74be..702e6bc 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -1,5 +1,6 @@ package com.casic.xz.meterage.utils.retrofit +import com.casic.xz.meterage.utils.AuthenticationHelper import com.casic.xz.meterage.utils.LocaleConstant import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -36,4 +37,11 @@ ) return api.login(requestBody) } + + /** + * 获取用户信息 + */ + suspend fun getUserInfo(account: String): String { + return api.getUserInfo(AuthenticationHelper.token!!, account) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt index a9dc9b7..209b011 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/MainActivity.kt @@ -3,14 +3,12 @@ import android.view.KeyEvent import android.view.MenuItem import androidx.fragment.app.Fragment -import androidx.lifecycle.ViewModelProvider import androidx.viewpager.widget.ViewPager import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.ViewPagerAdapter import com.casic.xz.meterage.fragment.HomePageFragment import com.casic.xz.meterage.fragment.MinePageFragment import com.casic.xz.meterage.fragment.SamplePageFragment -import com.casic.xz.meterage.vm.UserViewModel import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.convertColor @@ -31,8 +29,6 @@ } override fun initData() { - val userViewModel = ViewModelProvider(this)[UserViewModel::class.java] - bottomNavigation.itemIconTintList = null bottomNavigation.setOnNavigationItemSelectedListener { menuItem -> when (menuItem.itemId) { @@ -86,8 +82,8 @@ } override fun setupTopBarLayout() { - ImmersionBar.with(this).statusBarDarkFont(false).init() - ImmerseStatusBarUtil.setColor(this, R.color.themeColor.convertColor(this)) + ImmersionBar.with(this).statusBarDarkFont(true).init() + ImmerseStatusBarUtil.setColor(this, R.color.mainBackground.convertColor(this)) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { diff --git a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt index 9d2a152..8af3351 100644 --- a/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt +++ b/app/src/main/java/com/casic/xz/meterage/vm/UserViewModel.kt @@ -5,6 +5,7 @@ import com.casic.xz.meterage.extensions.separateResponseCode import com.casic.xz.meterage.extensions.toErrorMessage import com.casic.xz.meterage.model.LoginResultModel +import com.casic.xz.meterage.model.UserInfoModel import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -19,7 +20,7 @@ // val registerResult = MutableLiveData() val loginResult = MutableLiveData() -// val userDetailResult = MutableLiveData() + val userInfoResult = MutableLiveData() // val outResultModel = MutableLiveData() // fun register( @@ -67,18 +68,18 @@ it.printStackTrace() }) -// fun obtainUserDetail(account: String) = launch({ -// val response = RetrofitServiceManager.obtainUserDetail(account) -// val responseCode = response.separateResponseCode() -// if (responseCode == 200) { -// userDetailResult.value = gson.fromJson( -// response, object : TypeToken() {}.type -// ) -// } -// }, { -// it.printStackTrace() -// }) -// + fun getUserInfo(account: String) = launch({ + val response = RetrofitServiceManager.getUserInfo(account) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + userInfoResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) + // fun updateUserInfo(userData: UserDetailModel.DataModel) = launch({ // loadState.value = LoadState.Loading // val response = RetrofitServiceManager.updateUserInfo(userData) diff --git a/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml new file mode 100644 index 0000000..f00d59c --- /dev/null +++ b/app/src/main/res/drawable/bg_solid_layout_white_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml new file mode 100644 index 0000000..48946d7 --- /dev/null +++ b/app/src/main/res/drawable/ic_about.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_account.xml b/app/src/main/res/drawable/ic_account.xml new file mode 100644 index 0000000..32980a2 --- /dev/null +++ b/app/src/main/res/drawable/ic_account.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_back.xml b/app/src/main/res/drawable/ic_back.xml new file mode 100644 index 0000000..8416a07 --- /dev/null +++ b/app/src/main/res/drawable/ic_back.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_collection.xml b/app/src/main/res/drawable/ic_collection.xml new file mode 100644 index 0000000..ed59c61 --- /dev/null +++ b/app/src/main/res/drawable/ic_collection.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..3835c32 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_message.xml b/app/src/main/res/drawable/ic_message.xml new file mode 100644 index 0000000..9585787 --- /dev/null +++ b/app/src/main/res/drawable/ic_message.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..3bb3e28 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_push_setting.xml b/app/src/main/res/drawable/ic_push_setting.xml new file mode 100644 index 0000000..969fc02 --- /dev/null +++ b/app/src/main/res/drawable/ic_push_setting.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_right.xml b/app/src/main/res/drawable/ic_right.xml new file mode 100644 index 0000000..2e9758d --- /dev/null +++ b/app/src/main/res/drawable/ic_right.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_update.xml b/app/src/main/res/drawable/ic_update.xml new file mode 100644 index 0000000..c87c2ac --- /dev/null +++ b/app/src/main/res/drawable/ic_update.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index 77d9ef6..c8d6d99 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -1,6 +1,245 @@ - + android:layout_height="match_parent" + android:background="@color/mainBackground" + android:orientation="vertical"> - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_sample.xml b/app/src/main/res/layout/fragment_sample.xml index 77d9ef6..41d2ef1 100644 --- a/app/src/main/res/layout/fragment_sample.xml +++ b/app/src/main/res/layout/fragment_sample.xml @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index d188f0d..f7261b9 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -10,7 +10,8 @@ #3d7eff #803d7eff - #333333 + #555555 + #F7F7FA #E6E6E6 #E4E4E4 \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 81efe0e..4d44df6 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -8,4 +8,39 @@ @dimen/sp_16 @drawable/button_main_selector + + + + + + + + + + + + \ No newline at end of file