app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceAbroadConditionRvAdapter.java
New file @@ -0,0 +1,123 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceAbroadConditionBinding; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Gss * @date 2023.04.08. 17:08 * @desc 成长经历(出国(境)情况) recyclerView 的 adapter */ public class GrowthExperienceAbroadConditionRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceAbroadConditionBinding, GrowthExperienceAbroadConditionRvAdapter.ViewHolder> { private GrowthExperienceActivityViewModel viewModel; public GrowthExperienceAbroadConditionRvAdapter(Context context) { super(context); } public GrowthExperienceAbroadConditionRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) { super(context); this.viewModel = viewModel; } @Override protected int getLayoutId() { return R.layout.item_growth_experience_abroad_condition; } @Override protected ViewHolder getViewHolder(ItemGrowthExperienceAbroadConditionBinding itemBind) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceAbroadConditionBinding>{ private boolean isExpended; public ViewHolder(ItemGrowthExperienceAbroadConditionBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceHolderConditionRvAdapter.java
New file @@ -0,0 +1,124 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceHolderConditionBinding; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Gss * @date 2023.04.08. 17:08 * @desc 成长经历(持有出入境证件情况) recyclerView 的 adapter */ public class GrowthExperienceHolderConditionRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceHolderConditionBinding, GrowthExperienceHolderConditionRvAdapter.ViewHolder> { private GrowthExperienceActivityViewModel viewModel; public GrowthExperienceHolderConditionRvAdapter(Context context) { super(context); } public GrowthExperienceHolderConditionRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) { super(context); this.viewModel = viewModel; } @Override protected int getLayoutId() { return R.layout.item_growth_experience_holder_condition; } @Override protected ViewHolder getViewHolder(ItemGrowthExperienceHolderConditionBinding itemBind) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceHolderConditionBinding>{ private boolean isExpended; public ViewHolder(ItemGrowthExperienceHolderConditionBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperiencePrimaryRvAdapter.java
New file @@ -0,0 +1,141 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.databinding.DataBindingUtil; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.databinding.ItemGrowthExperiencePrimaryBinding; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Gss * @date 2023.04.07. 21:31 * @desc 成长经历(主要学习及工作经历) recyclerView 的 adapter */ public class GrowthExperiencePrimaryRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperiencePrimaryBinding, GrowthExperiencePrimaryRvAdapter.ViewHolder> { private GrowthExperienceActivityViewModel viewModel; private List<GrowthExperienceBean> mDataList; public GrowthExperiencePrimaryRvAdapter(Context context,List<GrowthExperienceBean> dataList) { super(context); mDataList = dataList; } public GrowthExperiencePrimaryRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) { super(context); this.viewModel = viewModel; } public GrowthExperiencePrimaryRvAdapter(GrowthExperienceActivity growthExperienceActivity) { super(growthExperienceActivity); } public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { ItemGrowthExperiencePrimaryBinding itemBind = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()),getLayoutId(),parent,false); return new ViewHolder(itemBind); } @Override protected int getLayoutId() { return R.layout.item_growth_experience_primary; } @Override protected ViewHolder getViewHolder(ItemGrowthExperiencePrimaryBinding itemBind) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseViewHolder<ItemGrowthExperiencePrimaryBinding>{ private boolean isExpended; private ItemGrowthExperiencePrimaryBinding binding; public ViewHolder(ItemGrowthExperiencePrimaryBinding binding) { super(binding); binding=ItemGrowthExperiencePrimaryBinding.inflate(LayoutInflater.from(itemBind.getContext()),(ViewGroup) itemBind,false); } } } app/src/main/java/com/application/zhangshi_app_android/adapter/GrowthExperienceRelationshipRvAdapter.java
New file @@ -0,0 +1,124 @@ package com.application.zhangshi_app_android.adapter; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.animation.Animation; import android.view.animation.Transformation; import android.widget.FrameLayout; import com.android.app_base.base.adapter.BaseRVAdapter; import com.android.app_base.manager.AppManager; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.databinding.ItemGrowthExperienceRelationshipBinding; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivity; import com.application.zhangshi_app_android.ui.function.GrowthExperienceActivityViewModel; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Gss * @date 2023.04.08. 17:08 * @desc 成长经历(家庭成员及主要社会关系情况) recyclerView 的 adapter */ public class GrowthExperienceRelationshipRvAdapter extends BaseRVAdapter<GrowthExperienceBean, ItemGrowthExperienceRelationshipBinding, GrowthExperienceRelationshipRvAdapter.ViewHolder> { private GrowthExperienceActivityViewModel viewModel; public GrowthExperienceRelationshipRvAdapter(Context context) { super(context); } public GrowthExperienceRelationshipRvAdapter(Context context, GrowthExperienceActivityViewModel viewModel) { super(context); this.viewModel = viewModel; } @Override protected int getLayoutId() { return R.layout.item_growth_experience_relationship; } @Override protected ViewHolder getViewHolder(ItemGrowthExperienceRelationshipBinding itemBind) { return new ViewHolder(itemBind); } @Override protected void onBind(ViewHolder holder, int position) { holder.getBinding().setBean(mDataList.get(position)); if (position % 2 != 0){ holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_blue)); }else { holder.getBinding().cardView.setCardBackgroundColor(mContext.getColor(R.color.color_card_pink)); } holder.getBinding().layoutTitle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (holder.isExpended){ int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); int collapsedHeight = holder.getBinding().layoutTitle.getMeasuredHeight(); int distanceToCollapse = (int) (initialHeight - collapsedHeight); Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight - (distanceToCollapse * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = false; }else{ final int initialHeight = holder.getBinding().cardView.getMeasuredHeight(); holder.getBinding().cardView.measure(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); int targetHeight = holder.getBinding().cardView.getMeasuredHeight(); int distanceToExpand = targetHeight - initialHeight; Animation a = new Animation() { @Override protected void applyTransformation(float interpolatedTime, Transformation t) { if (interpolatedTime == 1){ } holder.getBinding().cardView.getLayoutParams().height = (int) (initialHeight + (distanceToExpand * interpolatedTime)); holder.getBinding().cardView.requestLayout(); } @Override public boolean willChangeBounds() { return true; } }; a.setDuration(500); holder.getBinding().cardView.startAnimation(a); holder.isExpended = true; } } }); holder.getBinding().layoutContent.setOnClickListener(v -> { AppManager.getAppManager().startActivity( new Intent(getRecyclerView().getContext(), GrowthExperienceActivity.class) .putExtra("bean",mDataList.get(position))); }); } public static class ViewHolder extends BaseViewHolder<ItemGrowthExperienceRelationshipBinding>{ private boolean isExpended; public ViewHolder(ItemGrowthExperienceRelationshipBinding binding) { super(binding); } } } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceBean.java
@@ -10,22 +10,32 @@ */ public class GrowthExperienceBean implements Serializable { private String idName; private String witness; private String usedName; private String gender; private String associate; private String nationality; private String ethnicGroup; private String marriageCondition; private String politicalStatus; private String contactNumber; private String idNumber; private String residenceNumber; private String reason; private String address; private String identity; private String duringTime; private String duringYear; private String relationship; private String School; private String passCheck; private String abroadZone; private List<String> url; public GrowthExperienceBean(String mDuringYear,String school,String name){ idName=name; School=school; duringYear=mDuringYear; } public String getAddress() { return address; } public void setAddress(String value) { this.address = value; } @@ -33,11 +43,17 @@ public void setIdName(String value) { this.idName = value; } public String getUsedName() { return usedName; } public void setUsedName(String value) { this.usedName = value; } public String getAssociate() { return associate; } public void setAssociate(String value) { this.associate = value; } public String getWitness() { return witness; } public void setWitness(String value) { this.witness = value; } public String getIdentity() { return identity; } public void setIdentity(String value) { this.identity = value; } public String getGender() { return gender; } public void setGender(String value) { this.gender = value; } public String getReason() { return reason; } public void setReason(String value) { this.reason = value; } public String getNationality() { return nationality; } public void setNationality(String value) { this.nationality = value; } @@ -55,9 +71,12 @@ public String getIdNumber() { return idNumber; } public void setIdNumber(String value) { this.idNumber = value; } public String getResidenceNumber() { return idNumber; } public void setResidenceNumber(String value) { this.idNumber = value; } public String getDuringTime() { return duringTime; } public void setDuringTime(String value) { this.duringTime = value; } public String getDuringYear() { return duringYear; } public void setDuringYear(String value) { this.duringYear = value; } public String getSchool() { return School; } public void setSchool(String value) { this.School = value; } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceRequestBean.java
@@ -11,6 +11,8 @@ private String idName; private String usedName; private String witness; private String gender; private String nationality; private String ethnicGroup; @@ -18,8 +20,13 @@ private String politicalStatus; private String contactNumber; private String idNumber; private String residenceNumber; private String associate; private String reason; private String address; private String duringTime; private String duringYear; private String identity; private String School; private String passCheck; private String abroadZone; @@ -38,10 +45,15 @@ public void setIdName(String value) { this.idName = value; } public String getWitness() { return witness; } public void setWitness(String value) { this.witness = value; } public String getGender() { return gender; } public void setGender(String value) { this.gender = value; } public String getReason() { return reason; } public void setReason(String value) { this.reason = value; } public String getAssociate() { return associate; } public void setAssociate(String value) { this.associate = value; } public String getNationality() { return nationality; } public void setNationality(String value) { this.nationality = value; } @@ -59,6 +71,10 @@ public String getIdNumber() { return idNumber; } public void setIdNumber(String value) { this.idNumber = value; } public String getResidenceNumber() { return idNumber; } public void setResidenceNumber(String value) { this.idNumber = value; } public String getIdentity() { return identity; } public void setIdentity(String value) { this.identity = value; } public int getPageNum() { return pageNum; @@ -78,6 +94,8 @@ } public String getDuringTime() { return duringTime; } public void setDuringTime(String value) { this.duringTime = value; } public String getDuringYear() { return duringYear; } public void setDuringYear(String value) { this.duringYear = value; } public String getSchool() { return School; } public void setSchool(String value) { this.School = value; } public String getPassCheck() { return passCheck; } app/src/main/java/com/application/zhangshi_app_android/bean/GrowthExperienceResponseBean.java
@@ -7,5 +7,19 @@ * @desc 获取成长经历的返回类 */ public class GrowthExperienceResponseBean { private List<GrowthExperienceBean> data; private long pageNum; private long pageSize; private long total; public List<GrowthExperienceBean> getData() { return data; } public void setData(List<GrowthExperienceBean> value) { this.data = value; } public long getPageNum() { return pageNum; } public void setPageNum(long value) { this.pageNum = value; } public long getPageSize() { return pageSize; } public void setPageSize(long value) { this.pageSize = value; } public long getTotal() { return total; } public void setTotal(long value) { this.total = value; } } app/src/main/java/com/application/zhangshi_app_android/data/DataRepository.java
@@ -9,6 +9,8 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; @@ -136,6 +138,12 @@ public Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap) { return mHttpDataSource.getHomeDevices(paramsMap); } /** * 获取成长经历 */ public Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap) { return mHttpDataSource.getGrowthExperience(paramsMap); } /** * @see LocalDataSourceImpl app/src/main/java/com/application/zhangshi_app_android/data/source/HttpDataSource.java
@@ -6,6 +6,7 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; @@ -71,4 +72,11 @@ * 获取家庭设备 */ Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap); /** * 获取成长经历 */ Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap); } app/src/main/java/com/application/zhangshi_app_android/data/source/http/ApiService.java
@@ -6,6 +6,7 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; @@ -91,4 +92,10 @@ */ @GET("")//TODO 获取家庭设备 Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(@QueryMap Map<String, Object> paramsMap); /** * 获取成长经历(主要学习及工作经历) */ @GET("/growthExperience") Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(@QueryMap Map<String, Object> paramsMap); } app/src/main/java/com/application/zhangshi_app_android/data/source/http/HttpDataSourceImpl.java
@@ -7,6 +7,7 @@ import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaRequestBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaResponseBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesResponseBean; import com.application.zhangshi_app_android.bean.LoginRequestBean; import com.application.zhangshi_app_android.bean.LoginResponseBean; @@ -125,4 +126,12 @@ public Observable<ResultData<HomeDevicesResponseBean>> getHomeDevices(Map<String, Object> paramsMap) { return apiService.getHomeDevices(paramsMap); } /** * 获取成长经历 */ @Override public Observable<ResultData<GrowthExperienceResponseBean>> getGrowthExperience(Map<String, Object> paramsMap) { return apiService.getGrowthExperience(paramsMap); } } app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivity.java
@@ -1,9 +1,24 @@ package com.application.zhangshi_app_android.ui.function; import android.graphics.drawable.ColorDrawable; import android.view.View; import android.view.ViewGroup; import android.widget.PopupWindow; import androidx.databinding.DataBindingUtil; import com.android.app_base.utils.ScreenSizeUtils; import com.android.app_base.widget.LinearItemDecoration; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.FamilyAssetsRvAdapter; import com.application.zhangshi_app_android.adapter.GrowthExperiencePrimaryRvAdapter; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.databinding.ActivityGrowthExperienceBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.List; /** * @author Gss @@ -11,6 +26,8 @@ * @desc 成长经历 GrowthExperienceActivity */ public class GrowthExperienceActivity extends DLBaseActivity<ActivityGrowthExperienceBinding,GrowthExperienceActivityViewModel> { private GrowthExperiencePrimaryRvAdapter adapter; @Override public int getLayoutId() { @@ -24,24 +41,68 @@ @Override public void initParam() { GrowthExperienceBean bean = new GrowthExperienceBean("name", "date", "content"); List<GrowthExperienceBean> dataList=new ArrayList<>(); dataList.add(new GrowthExperienceBean("2010-2016","**小学","张三")); dataList.add(new GrowthExperienceBean("2017-2020","**中学","李四")); adapter=new GrowthExperiencePrimaryRvAdapter(this,dataList); } @Override public void initView() { adapter = new GrowthExperiencePrimaryRvAdapter(this); LinearItemDecoration itemDecoration = new LinearItemDecoration(); itemDecoration.setBottomSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_12)); itemDecoration.setHorizontalSpace((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); itemDecoration.setFirstTop((int) getResources().getDimension(com.android.app_base.R.dimen.dp_20)); binding.rvPrimary.addItemDecoration(itemDecoration); binding.rvPrimary.setAdapter(adapter); binding.rvRelationship.addItemDecoration(itemDecoration); binding.rvRelationship.setAdapter(adapter); binding.rvCertificates.addItemDecoration(itemDecoration); binding.rvCertificates.setAdapter(adapter); binding.rvAbroad.addItemDecoration(itemDecoration); binding.rvAbroad.setAdapter(adapter); } @Override public void initData() { viewModel.getGrowthExperience(); } @Override public void initLiveDataObserve() { ActivityGrowthExperienceBinding binding1= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience); ActivityGrowthExperienceBinding binding2= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience); ActivityGrowthExperienceBinding binding3= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience); ActivityGrowthExperienceBinding binding4= DataBindingUtil.setContentView(this,R.layout.activity_growth_experience); viewModel.getDataListLiveData().observe(this, GrowthExperienceBeans -> { adapter.setData(GrowthExperienceBeans); }); } private PopupWindow initPopUpWindow(View view){ PopupWindow popupWindow = new PopupWindow(this); // 设置布局文件 popupWindow.setContentView(view); // 为了避免部分机型不显示,需要重新设置一下宽高 popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT); popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT); // 设置pop透明效果 popupWindow.setBackgroundDrawable(new ColorDrawable(0x0000)); // 设置pop出入动画 popupWindow.setAnimationStyle(com.android.app_base.R.style.pop_add); // 设置pop获取焦点,如果为false点击返回按钮会退出当前Activity,如果pop中有Editor的话,focusable必须要为true popupWindow.setFocusable(true); // 设置pop可点击,为false点击事件无效,默认为true popupWindow.setTouchable(true); // 设置点击pop外侧消失,默认为false;在focusable为true时点击外侧始终消失 popupWindow.setOutsideTouchable(false); return popupWindow; } } app/src/main/java/com/application/zhangshi_app_android/ui/function/GrowthExperienceActivityViewModel.java
@@ -8,16 +8,26 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModelProvider; import com.android.app_base.base.StateViewEnum; import com.android.app_base.http.ResultData; import com.android.app_base.manager.AppManager; import com.android.app_base.utils.RxUtils; import com.android.app_base.utils.ToastUtils; import com.android.app_base.base.viewmodel.BaseViewModel; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.bean.FamilyAssetsBean; import com.application.zhangshi_app_android.bean.FamilyAssetsResponseBean; import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean; import com.application.zhangshi_app_android.bean.GrowthExperienceBean; import com.application.zhangshi_app_android.bean.GrowthExperienceResponseBean; import com.application.zhangshi_app_android.bean.HomeDevicesBean; import com.application.zhangshi_app_android.data.DataRepository; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; import io.reactivex.Observer; @@ -28,6 +38,7 @@ * @desc 成长经历 viewModel */ public class GrowthExperienceActivityViewModel extends BaseViewModel<DataRepository> { private MutableLiveData<List<GrowthExperienceBean>> dataListLiveData;//数据 public GrowthExperienceActivityViewModel(@NonNull Application application) { super(application); @@ -36,5 +47,82 @@ protected DataRepository initModel() { return DataRepository.getInstance(); } public void getGrowthExperience(){ model.getGrowthExperience(new HashMap<>()) .compose(RxUtils.schedulersTransformer()) .subscribe(new Observer<ResultData<GrowthExperienceResponseBean>>() { @Override public void onSubscribe(Disposable d) { addSubscribe(d); } @Override public void onNext(ResultData<GrowthExperienceResponseBean> data) { if (data.getCode() == CODE_SUCCESS){ if (data.getData().getData().isEmpty()){ changeStateView(StateViewEnum.DATA_NULL); }else { changeStateView(StateViewEnum.HIDE); dataListLiveData.postValue(data.getData().getData()); } }else { messageLiveData.postValue(data.getMsg()); } } @Override public void onError(Throwable e) { messageLiveData.postValue(e.getMessage()); } @Override public void onComplete() { } }); } public MutableLiveData<List<GrowthExperienceBean>> getDataListLiveData() { if (dataListLiveData == null){ dataListLiveData = new MutableLiveData<>(); } return dataListLiveData; } public void setDataListLiveData(MutableLiveData<List<GrowthExperienceBean>> dataListLiveData) { this.dataListLiveData = dataListLiveData; } public void sortDataList(int type){ List<GrowthExperienceBean> list = dataListLiveData.getValue(); if (list == null || list.isEmpty()){ return; } list.sort(new Comparator<GrowthExperienceBean>() { @Override public int compare(GrowthExperienceBean o1, GrowthExperienceBean o2) { SimpleDateFormat format = new SimpleDateFormat("yyyy-yyyy", java.util.Locale.getDefault()); Date date1 = null; Date date2 = null; try { date1 = format.parse(o1.getDuringYear()); date2 = format.parse(o2.getDuringYear()); } catch (ParseException e) { throw new RuntimeException(e); } if (date1 != null && date2 != null) { if (type == 0){ return date2.compareTo(date1); }else { return date1.compareTo(date2); } } return 0; } }); dataListLiveData.postValue(list); } } app/src/main/res/layout/activity_growth_experience.xml
@@ -172,7 +172,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="@dimen/dp_20" android:text="名族" android:text="民族" android:textColor="#88000000" android:textSize="@dimen/sp_12" /> @@ -418,7 +418,7 @@ </LinearLayout> <androidx.recyclerview.widget.RecyclerView android:id="@+id/recyclerView" android:id="@+id/rv_primary" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_normal_background" @@ -465,7 +465,7 @@ android:background="@color/color_normal_background" android:layout_marginTop="16dp" tools:itemCount="3" tools:listitem="@layout/item_growth_experience_primary" /> tools:listitem="@layout/item_growth_experience_relationship" /> </LinearLayout> @@ -571,7 +571,7 @@ android:background="@color/color_normal_background" android:layout_marginTop="16dp" tools:itemCount="3" tools:listitem="@layout/item_growth_experience_primary" /> tools:listitem="@layout/item_growth_experience_holder_condition" /> </LinearLayout> @@ -615,7 +615,7 @@ android:layout_marginTop="16dp" app:layout_constraintTop_toBottomOf="@+id/layout_11" tools:itemCount="3" tools:listitem="@layout/item_growth_experience_primary" /> tools:listitem="@layout/item_growth_experience_abroad_condition" /> </LinearLayout> <TextView app/src/main/res/layout/item_growth_experience_abroad_condition.xml
File was renamed from app/src/main/res/layout/item_growth_experiece_abroad_condition.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable @@ -39,7 +40,9 @@ android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.abroadZone}" android:layout_weight="1" tools:text="香港" android:textStyle="bold" /> <TextView @@ -47,13 +50,16 @@ android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.duringTime}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" tools:text="2010.01-2020.01" /> </RelativeLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" @@ -76,7 +82,8 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="探亲" tools:text="探亲" android:text="@{bean.reason}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" app/src/main/res/layout/item_growth_experience_holder_condition.xml
@@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable @@ -38,7 +39,9 @@ android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.passCheck}" android:layout_weight="1" tools:text="护照" android:textStyle="bold" /> <TextView @@ -46,13 +49,16 @@ android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.duringTime}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" tools:text="2010.01-2020.01" /> </RelativeLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" @@ -99,8 +105,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:text="@{bean.residenceNumber}" android:textSize="@dimen/sp_12" android:textStyle="bold" tools:text="123456789012345" /> </LinearLayout> app/src/main/res/layout/item_growth_experience_primary.xml
@@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable @@ -38,7 +39,9 @@ android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.duringYear}" android:layout_weight="1" tools:text="2010-2016" android:textStyle="bold" /> <TextView @@ -46,13 +49,16 @@ android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.School}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" tools:text="**小学" /> </RelativeLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" @@ -75,6 +81,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{bean.witness}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" app/src/main/res/layout/item_growth_experience_relationship.xml
@@ -1,6 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"> <data> <variable @@ -38,7 +39,9 @@ android:layout_marginStart="24dp" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.relationship}" android:layout_weight="1" tools:text="夫妻" android:textStyle="bold" /> <TextView @@ -46,13 +49,16 @@ android:layout_height="wrap_content" android:textSize="@dimen/sp_16" android:textColor="@color/black" android:text="@{bean.associate}" android:textStyle="bold" android:layout_marginEnd="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" tools:text="张三" /> </RelativeLayout> <LinearLayout android:id="@+id/layout_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" @@ -75,7 +81,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="张氏公司" android:text="@{bean.School}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" @@ -98,7 +104,7 @@ <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="经理" android:text="@{bean.identity}" android:textColor="@color/black" android:textSize="@dimen/sp_12" android:textStyle="bold" @@ -122,6 +128,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:text="@{bean.politicalStatus}" android:textSize="@dimen/sp_12" android:textStyle="bold" />