diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ed548b8..247f956 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,4 @@ - - + @@ -11,7 +10,9 @@ - + @@ -75,6 +76,36 @@ + + + + + + + + + + + + + + + mTitles = new ArrayList<>(); - private int[] mIconUnSelectIds = {R.drawable.home_home_off_ic,R.drawable.home_home_off_ic, R.drawable.home_me_off_ic}; - private int[] mIconSelectIds = {R.drawable.home_home_on_ic,R.drawable.home_home_on_ic, R.drawable.home_me_on_ic}; + private int[] mIconUnSelectIds = {R.drawable.home_home_off_ic, R.drawable.home_home_off_ic, R.drawable.home_me_off_ic}; + private int[] mIconSelectIds = {R.drawable.home_home_on_ic, R.drawable.home_home_on_ic, R.drawable.home_me_on_ic}; private ArrayList mFragments = new ArrayList<>(); private ArrayList mTabEntities = new ArrayList<>(); @@ -84,6 +87,18 @@ public final class HomeActivity extends AppActivity { } + @Override + protected boolean isStatusBarEnabled() { + return false; + } + + @NotNull + @Override + protected ImmersionBar createStatusBarConfig() { + return super.createStatusBarConfig() + .navigationBarColor(R.color.white); + } + @Override public void onBackPressed() { if (!DoubleClickHelper.isOnDoubleClick()) { diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/dto/CommonFuncDto.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/dto/CommonFuncDto.java new file mode 100644 index 0000000..4bf61c0 --- /dev/null +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/dto/CommonFuncDto.java @@ -0,0 +1,63 @@ +package com.yinhetairui.digitalagriculture.ui.dto; + +import java.io.Serializable; + +/** + * 创建日期:2025/4/21 + * 作者:November + * 描述:function公共实体类 + */ +public class CommonFuncDto implements Serializable { + + private int resId; + private String name; + private boolean isShow; + private int redCount; + + public CommonFuncDto() { + } + + public CommonFuncDto(int resId, String name) { + this.resId = resId; + this.name = name; + } + + public CommonFuncDto(int resId, String name, boolean isShow, int redCount) { + this.resId = resId; + this.name = name; + this.isShow = isShow; + this.redCount = redCount; + } + + public boolean isShow() { + return isShow; + } + + public void setShow(boolean show) { + isShow = show; + } + + public int getRedCount() { + return redCount; + } + + public void setRedCount(int redCount) { + this.redCount = redCount; + } + + public int getResId() { + return resId; + } + + public void setResId(int resId) { + this.resId = resId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/home/HomeFragment.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/home/HomeFragment.java index 2579538..e020c45 100644 --- a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/home/HomeFragment.java +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/home/HomeFragment.java @@ -1,17 +1,51 @@ package com.yinhetairui.digitalagriculture.ui.home; import android.os.Bundle; +import android.view.View; +import android.widget.RelativeLayout; +import androidx.annotation.NonNull; +import androidx.appcompat.widget.AppCompatImageView; +import androidx.appcompat.widget.AppCompatTextView; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.listener.OnItemClickListener; +import com.chad.library.adapter.base.viewholder.BaseViewHolder; +import com.flyco.tablayout.widget.MsgView; +import com.hjq.bar.TitleBar; import com.yinhetairui.digitalagriculture.R; -import com.yinhetairui.digitalagriculture.app.AppFragment; +import com.yinhetairui.digitalagriculture.app.TitleBarFragment; import com.yinhetairui.digitalagriculture.ui.HomeActivity; +import com.yinhetairui.digitalagriculture.ui.dto.CommonFuncDto; +import com.yinhetairui.digitalagriculture.ui.traceabilityManage.TraceabilityManageActivity; +import com.yinhetairui.digitalagriculture.widget.CircleImageView; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; /** * 创建日期:2022/11/4 * 作者:llb * 描述:首页 Fragment */ -public final class HomeFragment extends AppFragment { +public final class HomeFragment extends TitleBarFragment { + + private TitleBar title; + private CircleImageView ivAvatar; + private AppCompatTextView tvName; + private AppCompatTextView tvUnit; + private AppCompatTextView tvDepartment; + private RelativeLayout rlBacklog; + private AppCompatImageView ivMsg; + private MsgView mvBacklog; + private RecyclerView rvFunction; + + private BaseQuickAdapter mFunctionAdapter; + private List mFunctionList; public static HomeFragment newInstance() { Bundle args = new Bundle(); @@ -25,13 +59,55 @@ public final class HomeFragment extends AppFragment { return R.layout.fragment_home; } + @Override + public boolean isStatusBarEnabled() { + return !super.isStatusBarEnabled(); + } + @Override protected void initView() { + title = (TitleBar) findViewById(R.id.title); + ivAvatar = (CircleImageView) findViewById(R.id.iv_avatar); + tvName = (AppCompatTextView) findViewById(R.id.tv_name); + tvUnit = (AppCompatTextView) findViewById(R.id.tv_unit); + tvDepartment = (AppCompatTextView) findViewById(R.id.tv_department); + rlBacklog = (RelativeLayout) findViewById(R.id.rl_backlog); + ivMsg = (AppCompatImageView) findViewById(R.id.iv_msg); + mvBacklog = (MsgView) findViewById(R.id.mv_backlog); + rvFunction = (RecyclerView) findViewById(R.id.rv_function); } @Override protected void initData() { + mFunctionList = new ArrayList<>(); + mFunctionList.add(new CommonFuncDto(R.drawable.logo_big_ic, "溯源管理")); + mFunctionList.add(new CommonFuncDto(R.drawable.logo_big_ic, "土地管理")); + mFunctionList.add(new CommonFuncDto(R.drawable.logo_big_ic, "投入品管理")); + mFunctionList.add(new CommonFuncDto(R.drawable.logo_big_ic, "主体管理")); + mFunctionAdapter = new BaseQuickAdapter(R.layout.item_common_function, mFunctionList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, CommonFuncDto item) { + holder.setImageResource(R.id.iv_icon, item.getResId()); + holder.setText(R.id.tv_name, item.getName()); + } + }; + GridLayoutManager layoutManager = new GridLayoutManager(getActivity(), 4); + rvFunction.setLayoutManager(layoutManager); + rvFunction.setNestedScrollingEnabled(false); + rvFunction.setAdapter(mFunctionAdapter); + mFunctionAdapter.setList(mFunctionList); + + mFunctionAdapter.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(@NonNull @NotNull BaseQuickAdapter adapter, @NonNull @NotNull View view, int position) { + switch (position) { + case 0: + startActivity(TraceabilityManageActivity.class); + break; + } + } + }); } } \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/login/LoginActivity.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/login/LoginActivity.java index a2cfd0e..5434f81 100644 --- a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/login/LoginActivity.java +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/login/LoginActivity.java @@ -13,6 +13,7 @@ import com.hjq.shape.view.ShapeEditText; import com.yinhetairui.digitalagriculture.R; import com.yinhetairui.digitalagriculture.aop.SingleClick; import com.yinhetairui.digitalagriculture.app.AppActivity; +import com.yinhetairui.digitalagriculture.ui.HomeActivity; import com.yinhetairui.digitalagriculture.utils.CustomTextWatcher; /** @@ -97,7 +98,7 @@ public final class LoginActivity extends AppActivity { * 密码登录 */ private void login() { - toast("执行登录"); + startActivity(HomeActivity.class); } @NonNull diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/mine/MineFragment.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/mine/MineFragment.java index 279cf32..b520efe 100644 --- a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/mine/MineFragment.java +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/mine/MineFragment.java @@ -1,22 +1,33 @@ package com.yinhetairui.digitalagriculture.ui.mine; import android.view.View; +import android.widget.LinearLayout; +import androidx.appcompat.widget.AppCompatTextView; + +import com.hjq.bar.TitleBar; import com.yinhetairui.digitalagriculture.R; import com.yinhetairui.digitalagriculture.aop.SingleClick; -import com.yinhetairui.digitalagriculture.app.AppFragment; +import com.yinhetairui.digitalagriculture.app.TitleBarFragment; import com.yinhetairui.digitalagriculture.ui.HomeActivity; -import com.yinhetairui.digitalagriculture.uitools.activity.DialogActivity; -import com.hjq.shape.view.ShapeButton; +import com.yinhetairui.digitalagriculture.widget.CircleImageView; /** * 创建日期:2022/11/4 * 作者:llb * 描述:我的 Fragment */ -public final class MineFragment extends AppFragment { +public final class MineFragment extends TitleBarFragment { - private ShapeButton sbDialog; + private TitleBar title; + private CircleImageView ivAvatar; + private AppCompatTextView tvName; + private AppCompatTextView tvDepartment; + private AppCompatTextView tvIdentity; + private LinearLayout llBacklog; + private LinearLayout llUpdatePwd; + private LinearLayout llSetting; + private LinearLayout llQuit; public static MineFragment newInstance() { return new MineFragment(); @@ -27,12 +38,24 @@ public final class MineFragment extends AppFragment { return R.layout.fragment_mine; } + @Override + public boolean isStatusBarEnabled() { + return !super.isStatusBarEnabled(); + } + @Override protected void initView() { + title = (TitleBar) findViewById(R.id.title); + ivAvatar = (CircleImageView) findViewById(R.id.iv_avatar); + tvName = (AppCompatTextView) findViewById(R.id.tv_name); + tvDepartment = (AppCompatTextView) findViewById(R.id.tv_department); + tvIdentity = (AppCompatTextView) findViewById(R.id.tv_identity); + llBacklog = (LinearLayout) findViewById(R.id.ll_backlog); + llUpdatePwd = (LinearLayout) findViewById(R.id.ll_update_pwd); + llSetting = (LinearLayout) findViewById(R.id.ll_setting); + llQuit = (LinearLayout) findViewById(R.id.ll_quit); - sbDialog = (ShapeButton) findViewById(R.id.sb_dialog); - - setOnClickListener(sbDialog); + setOnClickListener(ivAvatar, llBacklog, llUpdatePwd, llSetting, llQuit); } @Override @@ -43,8 +66,17 @@ public final class MineFragment extends AppFragment { @SingleClick @Override public void onClick(View view) { - if (view == sbDialog){ - startActivity(DialogActivity.class); + if (view == ivAvatar) { + + } else if (view == llBacklog) { + + } else if (view == llUpdatePwd) { + + } else if (view == llSetting) { + + } else if (view == llQuit) { + } } + } \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/ApplicationReviewActivity.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/ApplicationReviewActivity.java new file mode 100644 index 0000000..b0ac8ab --- /dev/null +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/ApplicationReviewActivity.java @@ -0,0 +1,95 @@ +package com.yinhetairui.digitalagriculture.ui.traceabilityManage; + +import android.view.View; +import android.widget.EditText; + +import androidx.annotation.NonNull; +import androidx.appcompat.widget.AppCompatImageView; +import androidx.appcompat.widget.AppCompatTextView; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.listener.OnItemClickListener; +import com.chad.library.adapter.base.viewholder.BaseViewHolder; +import com.hjq.bar.TitleBar; +import com.hjq.shape.layout.ShapeLinearLayout; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; +import com.yinhetairui.digitalagriculture.R; +import com.yinhetairui.digitalagriculture.app.AppActivity; +import com.yinhetairui.digitalagriculture.widget.StatusLayout; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +/** + * 创建日期:2025/4/21 + * 作者:November + * 描述:检测申请审核 + */ +public final class ApplicationReviewActivity extends AppActivity { + + private TitleBar title; + private ShapeLinearLayout llTown; + private AppCompatTextView tvTown; + private ShapeLinearLayout llVillage; + private AppCompatTextView tvVillage; + private ShapeLinearLayout llStatus; + private AppCompatTextView tvStatus; + private EditText etSearch; + private AppCompatImageView ivSearch; + private StatusLayout statusLayout; + private SmartRefreshLayout refreshLayout; + private RecyclerView rvInstitution; + + private List mGoodsList; + private BaseQuickAdapter mGoodsAdapter; + + @Override + protected int getLayoutId() { + return R.layout.activity_application_review; + } + + @Override + protected void initView() { + title = (TitleBar) findViewById(R.id.title); + llTown = (ShapeLinearLayout) findViewById(R.id.ll_town); + tvTown = (AppCompatTextView) findViewById(R.id.tv_town); + llVillage = (ShapeLinearLayout) findViewById(R.id.ll_village); + tvVillage = (AppCompatTextView) findViewById(R.id.tv_village); + llStatus = (ShapeLinearLayout) findViewById(R.id.ll_status); + tvStatus = (AppCompatTextView) findViewById(R.id.tv_status); + etSearch = (EditText) findViewById(R.id.et_search); + ivSearch = (AppCompatImageView) findViewById(R.id.iv_search); + statusLayout = (StatusLayout) findViewById(R.id.statusLayout); + refreshLayout = (SmartRefreshLayout) findViewById(R.id.refreshLayout); + rvInstitution = (RecyclerView) findViewById(R.id.rv_institution); + } + + @Override + protected void initData() { + mGoodsList = new ArrayList<>(); + mGoodsList.add(""); + mGoodsList.add(""); + mGoodsList.add(""); + mGoodsList.add(""); + + mGoodsAdapter = new BaseQuickAdapter(R.layout.item_application_review_goods, mGoodsList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, String item) { + + } + }; + rvInstitution.setLayoutManager(new LinearLayoutManager(getContext())); + rvInstitution.setAdapter(mGoodsAdapter); + + mGoodsAdapter.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(@NonNull @NotNull BaseQuickAdapter adapter, @NonNull @NotNull View view, int position) { + startActivity(ReviewInfoActivity.class); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/DetectionInfoActivity.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/DetectionInfoActivity.java new file mode 100644 index 0000000..068af27 --- /dev/null +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/DetectionInfoActivity.java @@ -0,0 +1,27 @@ +package com.yinhetairui.digitalagriculture.ui.traceabilityManage; + +import com.yinhetairui.digitalagriculture.R; +import com.yinhetairui.digitalagriculture.app.AppActivity; + +/** + * 创建日期:2025/4/21 + * 作者:November + * 描述:检测信息填写 + */ +public final class DetectionInfoActivity extends AppActivity { + + @Override + protected int getLayoutId() { + return R.layout.copy_activity; + } + + @Override + protected void initView() { + + } + + @Override + protected void initData() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/ReviewInfoActivity.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/ReviewInfoActivity.java new file mode 100644 index 0000000..cd27f33 --- /dev/null +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/ReviewInfoActivity.java @@ -0,0 +1,27 @@ +package com.yinhetairui.digitalagriculture.ui.traceabilityManage; + +import com.yinhetairui.digitalagriculture.R; +import com.yinhetairui.digitalagriculture.app.AppActivity; + +/** + * 创建日期:2025/4/21 + * 作者:November + * 描述:审核信息 + */ +public final class ReviewInfoActivity extends AppActivity { + + @Override + protected int getLayoutId() { + return R.layout.activity_review_info; + } + + @Override + protected void initView() { + + } + + @Override + protected void initData() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/TraceabilityManageActivity.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/TraceabilityManageActivity.java new file mode 100644 index 0000000..180a7d4 --- /dev/null +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/TraceabilityManageActivity.java @@ -0,0 +1,113 @@ +package com.yinhetairui.digitalagriculture.ui.traceabilityManage; + +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.appcompat.widget.AppCompatTextView; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.listener.OnItemClickListener; +import com.chad.library.adapter.base.viewholder.BaseViewHolder; +import com.hjq.bar.TitleBar; +import com.yinhetairui.digitalagriculture.R; +import com.yinhetairui.digitalagriculture.app.AppActivity; +import com.yinhetairui.digitalagriculture.ui.dto.CommonFuncDto; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +/** + * 创建日期:2025/4/21 + * 作者:November + * 描述:溯源管理 + */ +public final class TraceabilityManageActivity extends AppActivity { + + private TitleBar title; + private RecyclerView rvManage; + private AppCompatTextView tvMore; + private RecyclerView rvInstitution; + + private List mManageList; + private BaseQuickAdapter mManageAdapter; + private List mInstitutionList; + private BaseQuickAdapter mInstitutionAdapter; + + @Override + protected int getLayoutId() { + return R.layout.activity_traceability_manage; + } + + @Override + protected void initView() { + title = (TitleBar) findViewById(R.id.title); + rvManage = (RecyclerView) findViewById(R.id.rv_manage); + tvMore = (AppCompatTextView) findViewById(R.id.tv_more); + rvInstitution = (RecyclerView) findViewById(R.id.rv_institution); + } + + @Override + protected void initData() { + mManageList = new ArrayList<>(); + mManageList.add(new CommonFuncDto(R.drawable.logo_big_ic, "检测审核")); + mManageList.add(new CommonFuncDto(R.drawable.logo_big_ic, "溯源检测")); + mManageList.add(new CommonFuncDto(R.drawable.logo_big_ic, "溯源报告")); + mManageList.add(new CommonFuncDto(R.drawable.logo_big_ic, "检测机构")); + mManageList.add(new CommonFuncDto(R.drawable.logo_big_ic, "溯源查询")); + + mInstitutionList = new ArrayList<>(); + mInstitutionList.add("耿马县农科所"); + mInstitutionList.add("临沧市农产品质量检测中心"); + + mManageAdapter = new BaseQuickAdapter(R.layout.item_common_function, mManageList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, CommonFuncDto item) { + holder.setImageResource(R.id.iv_icon, item.getResId()); + holder.setText(R.id.tv_name, item.getName()); + } + }; + GridLayoutManager layoutManager = new GridLayoutManager(getActivity(), 5); + rvManage.setLayoutManager(layoutManager); + rvManage.setNestedScrollingEnabled(false); + rvManage.setAdapter(mManageAdapter); + mManageAdapter.setList(mManageList); + + mManageAdapter.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(@NonNull @NotNull BaseQuickAdapter adapter, @NonNull @NotNull View view, int position) { + switch (position) { + case 0: //检测审核 + startActivity(ApplicationReviewActivity.class); + break; + case 1: //溯源检测 + startActivity(TraceabilityTestingActivity.class); + break; + case 2: //溯源报告 + + break; + case 3: //检测机构 + + break; + case 4: //溯源查询 + + break; + } + } + }); + + mInstitutionAdapter = new BaseQuickAdapter(R.layout.item_testing_organization, mInstitutionList) { + + @Override + protected void convert(@NotNull BaseViewHolder holder, String item) { + + } + }; + rvInstitution.setLayoutManager(new LinearLayoutManager(getContext())); + rvInstitution.setAdapter(mInstitutionAdapter); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/TraceabilityTestingActivity.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/TraceabilityTestingActivity.java new file mode 100644 index 0000000..22d905f --- /dev/null +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/traceabilityManage/TraceabilityTestingActivity.java @@ -0,0 +1,63 @@ +package com.yinhetairui.digitalagriculture.ui.traceabilityManage; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.viewholder.BaseViewHolder; +import com.hjq.bar.TitleBar; +import com.scwang.smart.refresh.layout.SmartRefreshLayout; +import com.yinhetairui.digitalagriculture.R; +import com.yinhetairui.digitalagriculture.app.AppActivity; +import com.yinhetairui.digitalagriculture.widget.StatusLayout; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +/** + * 创建日期:2025/4/21 + * 作者:November + * 描述:溯源检测 + */ +public final class TraceabilityTestingActivity extends AppActivity { + + private TitleBar title; + private StatusLayout statusLayout; + private SmartRefreshLayout refreshLayout; + private RecyclerView rvList; + + private List mList; + private BaseQuickAdapter mAdapter; + + @Override + protected int getLayoutId() { + return R.layout.activity_traceability_testing; + } + + @Override + protected void initView() { + title = (TitleBar) findViewById(R.id.title); + statusLayout = (StatusLayout) findViewById(R.id.statusLayout); + refreshLayout = (SmartRefreshLayout) findViewById(R.id.refreshLayout); + rvList = (RecyclerView) findViewById(R.id.rv_list); + } + + @Override + protected void initData() { + mList = new ArrayList<>(); + mList.add(""); + mList.add(""); + mList.add(""); + + mAdapter = new BaseQuickAdapter(R.layout.item_traceability_testing, mList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, String item) { + + } + }; + rvList.setLayoutManager(new LinearLayoutManager(getContext())); + rvList.setAdapter(mAdapter); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/workbenches/WorkbenchesFragment.java b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/workbenches/WorkbenchesFragment.java index 556c4de..42eb4a7 100644 --- a/app/src/main/java/com/yinhetairui/digitalagriculture/ui/workbenches/WorkbenchesFragment.java +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/ui/workbenches/WorkbenchesFragment.java @@ -1,15 +1,50 @@ package com.yinhetairui.digitalagriculture.ui.workbenches; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.viewholder.BaseViewHolder; +import com.hjq.bar.TitleBar; import com.yinhetairui.digitalagriculture.R; -import com.yinhetairui.digitalagriculture.app.AppFragment; +import com.yinhetairui.digitalagriculture.app.TitleBarFragment; +import com.yinhetairui.digitalagriculture.ui.dto.CommonFuncDto; import com.yinhetairui.digitalagriculture.uitools.activity.CopyActivity; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + /** * 创建日期:2025/4/18 * 作者:November * 描述:工作台 */ -public final class WorkbenchesFragment extends AppFragment { +public final class WorkbenchesFragment extends TitleBarFragment { + + private TitleBar title; + private RecyclerView rvLandResource; + private RecyclerView rvInputs; + private RecyclerView rvBusinessEntity; + private RecyclerView rvFullTraceability; + private RecyclerView rvIndustryMonitoring; + + /** 土地资源管理 */ + private List mLandResourceList; + private BaseQuickAdapter mLandResourceAdapter; + /** 投入品管理 */ + private List mInputsList; + private BaseQuickAdapter mInputsAdapter; + /** 生产经营主体管理 */ + private List mBusinessEntityList; + private BaseQuickAdapter mBusinessEntityAdapter; + /** 农场品全程追溯管理 */ + private List mFullTraceabilityList; + private BaseQuickAdapter mFullTraceabilityAdapter; + /** 农业昌平检测 */ + private List mIndustryMonitoringList; + private BaseQuickAdapter mIndustryMonitoringAdapter; public static WorkbenchesFragment newInstance() { return new WorkbenchesFragment(); @@ -21,12 +56,120 @@ public final class WorkbenchesFragment extends AppFragment { } @Override - protected void initView() { + public boolean isStatusBarEnabled() { + return !super.isStatusBarEnabled(); + } + @Override + protected void initView() { + title = (TitleBar) findViewById(R.id.title); + rvLandResource = (RecyclerView) findViewById(R.id.rv_land_resource); + rvInputs = (RecyclerView) findViewById(R.id.rv_inputs); + rvBusinessEntity = (RecyclerView) findViewById(R.id.rv_business_entity); + rvFullTraceability = (RecyclerView) findViewById(R.id.rv_full_traceability); + rvIndustryMonitoring = (RecyclerView) findViewById(R.id.rv_industry_monitoring); } @Override protected void initData() { + mLandResourceList = new ArrayList<>(); + mLandResourceList.add(new CommonFuncDto(R.drawable.logo_big_ic, "土地资源信息")); + mLandResourceList.add(new CommonFuncDto(R.drawable.logo_big_ic, "产权信息")); + mLandResourceList.add(new CommonFuncDto(R.drawable.logo_big_ic, "土地流转")); + mLandResourceList.add(new CommonFuncDto(R.drawable.logo_big_ic, "土地检查")); + mLandResourceList.add(new CommonFuncDto(R.drawable.logo_big_ic, "土地违规")); + mInputsList = new ArrayList<>(); + mInputsList.add(new CommonFuncDto(R.drawable.logo_big_ic, "基础信息管理")); + mInputsList.add(new CommonFuncDto(R.drawable.logo_big_ic, "生产经销商抽检")); + mInputsList.add(new CommonFuncDto(R.drawable.logo_big_ic, "使用监管")); + mInputsList.add(new CommonFuncDto(R.drawable.logo_big_ic, "农机租赁")); + mInputsList.add(new CommonFuncDto(R.drawable.logo_big_ic, "排行榜")); + mInputsList.add(new CommonFuncDto(R.drawable.logo_big_ic, "知识库")); + + mBusinessEntityList = new ArrayList<>(); + mBusinessEntityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "农企合作社")); + mBusinessEntityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "农资企业")); + mBusinessEntityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "生产加工企业")); + mBusinessEntityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "种源企业")); + mBusinessEntityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "农户管理")); + mBusinessEntityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "涉农金融监管")); + + mFullTraceabilityList = new ArrayList<>(); + mFullTraceabilityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "运营管理监督")); + mFullTraceabilityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "溯源管理")); + mFullTraceabilityList.add(new CommonFuncDto(R.drawable.logo_big_ic, "溯源查询")); + + mIndustryMonitoringList = new ArrayList<>(); + mIndustryMonitoringList.add(new CommonFuncDto(R.drawable.logo_big_ic, "田间监测")); + mIndustryMonitoringList.add(new CommonFuncDto(R.drawable.logo_big_ic, "水质监测")); + mIndustryMonitoringList.add(new CommonFuncDto(R.drawable.logo_big_ic, "病虫害检测")); + mIndustryMonitoringList.add(new CommonFuncDto(R.drawable.logo_big_ic, "环境监测")); + mIndustryMonitoringList.add(new CommonFuncDto(R.drawable.logo_big_ic, "产量预测")); + + mLandResourceAdapter = new BaseQuickAdapter(R.layout.item_common_function, mLandResourceList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, CommonFuncDto item) { + holder.setImageResource(R.id.iv_icon, item.getResId()); + holder.setText(R.id.tv_name, item.getName()); + } + }; + GridLayoutManager layoutManager1 = new GridLayoutManager(getActivity(), 3); + rvLandResource.setLayoutManager(layoutManager1); + rvLandResource.setNestedScrollingEnabled(false); + rvLandResource.setAdapter(mLandResourceAdapter); + mLandResourceAdapter.setList(mLandResourceList); + + mInputsAdapter = new BaseQuickAdapter(R.layout.item_common_function, mInputsList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, CommonFuncDto item) { + holder.setImageResource(R.id.iv_icon, item.getResId()); + holder.setText(R.id.tv_name, item.getName()); + } + }; + GridLayoutManager layoutManager2 = new GridLayoutManager(getActivity(), 3); + rvInputs.setLayoutManager(layoutManager2); + rvInputs.setNestedScrollingEnabled(false); + rvInputs.setAdapter(mInputsAdapter); + mInputsAdapter.setList(mInputsList); + + mBusinessEntityAdapter = new BaseQuickAdapter(R.layout.item_common_function, mBusinessEntityList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, CommonFuncDto item) { + holder.setImageResource(R.id.iv_icon, item.getResId()); + holder.setText(R.id.tv_name, item.getName()); + } + }; + GridLayoutManager layoutManager3 = new GridLayoutManager(getActivity(), 3); + rvBusinessEntity.setLayoutManager(layoutManager3); + rvBusinessEntity.setNestedScrollingEnabled(false); + rvBusinessEntity.setAdapter(mBusinessEntityAdapter); + mBusinessEntityAdapter.setList(mBusinessEntityList); + + mFullTraceabilityAdapter = new BaseQuickAdapter(R.layout.item_common_function, mFullTraceabilityList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, CommonFuncDto item) { + holder.setImageResource(R.id.iv_icon, item.getResId()); + holder.setText(R.id.tv_name, item.getName()); + } + }; + GridLayoutManager layoutManager4 = new GridLayoutManager(getActivity(), 3); + rvFullTraceability.setLayoutManager(layoutManager4); + rvFullTraceability.setNestedScrollingEnabled(false); + rvFullTraceability.setAdapter(mFullTraceabilityAdapter); + mFullTraceabilityAdapter.setList(mFullTraceabilityList); + + mIndustryMonitoringAdapter = new BaseQuickAdapter(R.layout.item_common_function, mIndustryMonitoringList) { + @Override + protected void convert(@NotNull BaseViewHolder holder, CommonFuncDto item) { + holder.setImageResource(R.id.iv_icon, item.getResId()); + holder.setText(R.id.tv_name, item.getName()); + } + }; + GridLayoutManager layoutManager5 = new GridLayoutManager(getActivity(), 3); + rvIndustryMonitoring.setLayoutManager(layoutManager5); + rvIndustryMonitoring.setNestedScrollingEnabled(false); + rvIndustryMonitoring.setAdapter(mIndustryMonitoringAdapter); + mIndustryMonitoringAdapter.setList(mIndustryMonitoringList); } } \ No newline at end of file diff --git a/app/src/main/java/com/yinhetairui/digitalagriculture/widget/CircleImageView.java b/app/src/main/java/com/yinhetairui/digitalagriculture/widget/CircleImageView.java new file mode 100644 index 0000000..72e5c26 --- /dev/null +++ b/app/src/main/java/com/yinhetairui/digitalagriculture/widget/CircleImageView.java @@ -0,0 +1,341 @@ +package com.yinhetairui.digitalagriculture.widget; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ColorFilter; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.RectF; +import android.graphics.Shader; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.ColorDrawable; +import android.graphics.drawable.Drawable; +import android.net.Uri; +import android.util.AttributeSet; + +import androidx.annotation.ColorInt; +import androidx.annotation.ColorRes; +import androidx.annotation.DrawableRes; +import androidx.appcompat.widget.AppCompatImageView; + +import com.yinhetairui.digitalagriculture.R; + +/** + * TODO 圆形图片 + * + * @Author ZhaoQY + * @Date 2020/3/23 0023 + */ +public class CircleImageView extends AppCompatImageView { + + private static final ScaleType SCALE_TYPE = ScaleType.CENTER_CROP; + + private static final Bitmap.Config BITMAP_CONFIG = Bitmap.Config.ARGB_8888; + private static final int COLORDRAWABLE_DIMENSION = 2; + + private static final int DEFAULT_BORDER_WIDTH = 0; + private static final int DEFAULT_BORDER_COLOR = Color.BLACK; + private static final int DEFAULT_FILL_COLOR = Color.TRANSPARENT; + private static final boolean DEFAULT_BORDER_OVERLAY = false; + + private final RectF mDrawableRect = new RectF(); + private final RectF mBorderRect = new RectF(); + + private final Matrix mShaderMatrix = new Matrix(); + private final Paint mBitmapPaint = new Paint(); + private final Paint mBorderPaint = new Paint(); + private final Paint mFillPaint = new Paint(); + + private int mBorderColor = DEFAULT_BORDER_COLOR; + private int mBorderWidth = DEFAULT_BORDER_WIDTH; + private int mFillColor = DEFAULT_FILL_COLOR; + + private Bitmap mBitmap; + private BitmapShader mBitmapShader; + private int mBitmapWidth; + private int mBitmapHeight; + + private float mDrawableRadius; + private float mBorderRadius; + + private ColorFilter mColorFilter; + + private boolean mReady; + private boolean mSetupPending; + private boolean mBorderOverlay; + + public CircleImageView(Context context) { + super(context); + + init(); + } + + public CircleImageView(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public CircleImageView(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CircleImageView, defStyle, 0); + + mBorderWidth = a.getDimensionPixelSize(R.styleable.CircleImageView_civ_border_width, DEFAULT_BORDER_WIDTH); + mBorderColor = a.getColor(R.styleable.CircleImageView_civ_border_color, DEFAULT_BORDER_COLOR); + mBorderOverlay = a.getBoolean(R.styleable.CircleImageView_civ_border_overlay, DEFAULT_BORDER_OVERLAY); + mFillColor = a.getColor(R.styleable.CircleImageView_civ_fill_color, DEFAULT_FILL_COLOR); + + a.recycle(); + + init(); + } + + private void init() { + super.setScaleType(SCALE_TYPE); + mReady = true; + + if (mSetupPending) { + setup(); + mSetupPending = false; + } + } + + @Override + public ScaleType getScaleType() { + return SCALE_TYPE; + } + + @Override + public void setScaleType(ScaleType scaleType) { + if (scaleType != SCALE_TYPE) { +// throw new IllegalArgumentException(String.format("ScaleType %s not supported.", scaleType)); + } + } + + @Override + public void setAdjustViewBounds(boolean adjustViewBounds) { + if (adjustViewBounds) { +// throw new IllegalArgumentException("adjustViewBounds not supported."); + } + } + + @Override + protected void onDraw(Canvas canvas) { + if (mBitmap == null) { + return; + } + + if (mFillColor != Color.TRANSPARENT) { + canvas.drawCircle(getWidth() / 2.0f, getHeight() / 2.0f, mDrawableRadius, mFillPaint); + } + canvas.drawCircle(getWidth() / 2.0f, getHeight() / 2.0f, mDrawableRadius, mBitmapPaint); + if (mBorderWidth != 0) { + canvas.drawCircle(getWidth() / 2.0f, getHeight() / 2.0f, mBorderRadius, mBorderPaint); + } + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + setup(); + } + + public int getBorderColor() { + return mBorderColor; + } + + public void setBorderColor(@ColorInt int borderColor) { + if (borderColor == mBorderColor) { + return; + } + + mBorderColor = borderColor; + mBorderPaint.setColor(mBorderColor); + invalidate(); + } + + public void setBorderColorResource(@ColorRes int borderColorRes) { + setBorderColor(getContext().getResources().getColor(borderColorRes)); + } + + public int getFillColor() { + return mFillColor; + } + + public void setFillColor(@ColorInt int fillColor) { + if (fillColor == mFillColor) { + return; + } + + mFillColor = fillColor; + mFillPaint.setColor(fillColor); + invalidate(); + } + + public void setFillColorResource(@ColorRes int fillColorRes) { + setFillColor(getContext().getResources().getColor(fillColorRes)); + } + + public int getBorderWidth() { + return mBorderWidth; + } + + public void setBorderWidth(int borderWidth) { + if (borderWidth == mBorderWidth) { + return; + } + + mBorderWidth = borderWidth; + setup(); + } + + public boolean isBorderOverlay() { + return mBorderOverlay; + } + + public void setBorderOverlay(boolean borderOverlay) { + if (borderOverlay == mBorderOverlay) { + return; + } + + mBorderOverlay = borderOverlay; + setup(); + } + + @Override + public void setImageBitmap(Bitmap bm) { + super.setImageBitmap(bm); + mBitmap = bm; + setup(); + } + + @Override + public void setImageDrawable(Drawable drawable) { + super.setImageDrawable(drawable); + mBitmap = getBitmapFromDrawable(drawable); + setup(); + } + + @Override + public void setImageResource(@DrawableRes int resId) { + super.setImageResource(resId); + mBitmap = getBitmapFromDrawable(getDrawable()); + setup(); + } + + @Override + public void setImageURI(Uri uri) { + super.setImageURI(uri); + mBitmap = uri != null ? getBitmapFromDrawable(getDrawable()) : null; + setup(); + } + + @Override + public void setColorFilter(ColorFilter cf) { + if (cf == mColorFilter) { + return; + } + + mColorFilter = cf; + mBitmapPaint.setColorFilter(mColorFilter); + invalidate(); + } + + private Bitmap getBitmapFromDrawable(Drawable drawable) { + if (drawable == null) { + return null; + } + + if (drawable instanceof BitmapDrawable) { + return ((BitmapDrawable) drawable).getBitmap(); + } + + try { + Bitmap bitmap; + + if (drawable instanceof ColorDrawable) { + bitmap = Bitmap.createBitmap(COLORDRAWABLE_DIMENSION, COLORDRAWABLE_DIMENSION, BITMAP_CONFIG); + } else { + bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), BITMAP_CONFIG); + } + + Canvas canvas = new Canvas(bitmap); + drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); + drawable.draw(canvas); + return bitmap; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + private void setup() { + if (!mReady) { + mSetupPending = true; + return; + } + + if (getWidth() == 0 && getHeight() == 0) { + return; + } + + if (mBitmap == null) { + invalidate(); + return; + } + + mBitmapShader = new BitmapShader(mBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); + + mBitmapPaint.setAntiAlias(true); + mBitmapPaint.setShader(mBitmapShader); + + mBorderPaint.setStyle(Paint.Style.STROKE); + mBorderPaint.setAntiAlias(true); + mBorderPaint.setColor(mBorderColor); + mBorderPaint.setStrokeWidth(mBorderWidth); + + mFillPaint.setStyle(Paint.Style.FILL); + mFillPaint.setAntiAlias(true); + mFillPaint.setColor(mFillColor); + + mBitmapHeight = mBitmap.getHeight(); + mBitmapWidth = mBitmap.getWidth(); + + mBorderRect.set(0, 0, getWidth(), getHeight()); + mBorderRadius = Math.min((mBorderRect.height() - mBorderWidth) / 2.0f, (mBorderRect.width() - mBorderWidth) / 2.0f); + + mDrawableRect.set(mBorderRect); + if (!mBorderOverlay) { + mDrawableRect.inset(mBorderWidth, mBorderWidth); + } + mDrawableRadius = Math.min(mDrawableRect.height() / 2.0f, mDrawableRect.width() / 2.0f); + + updateShaderMatrix(); + invalidate(); + } + + private void updateShaderMatrix() { + float scale; + float dx = 0; + float dy = 0; + + mShaderMatrix.set(null); + + if (mBitmapWidth * mDrawableRect.height() > mDrawableRect.width() * mBitmapHeight) { + scale = mDrawableRect.height() / (float) mBitmapHeight; + dx = (mDrawableRect.width() - mBitmapWidth * scale) * 0.5f; + } else { + scale = mDrawableRect.width() / (float) mBitmapWidth; + dy = (mDrawableRect.height() - mBitmapHeight * scale) * 0.5f; + } + + mShaderMatrix.setScale(scale, scale); + mShaderMatrix.postTranslate((int) (dx + 0.5f) + mDrawableRect.left, (int) (dy + 0.5f) + mDrawableRect.top); + + mBitmapShader.setLocalMatrix(mShaderMatrix); + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/icon_app_name.png b/app/src/main/res/drawable-xhdpi/icon_app_name.png index 359734b..fe4b769 100644 Binary files a/app/src/main/res/drawable-xhdpi/icon_app_name.png and b/app/src/main/res/drawable-xhdpi/icon_app_name.png differ diff --git a/app/src/main/res/drawable-xxhdpi/icon_app_name.png b/app/src/main/res/drawable-xxhdpi/icon_app_name.png index fc73824..f01cedc 100644 Binary files a/app/src/main/res/drawable-xxhdpi/icon_app_name.png and b/app/src/main/res/drawable-xxhdpi/icon_app_name.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/icon_app_name.png b/app/src/main/res/drawable-xxxhdpi/icon_app_name.png index 28747b4..ae8625f 100644 Binary files a/app/src/main/res/drawable-xxxhdpi/icon_app_name.png and b/app/src/main/res/drawable-xxxhdpi/icon_app_name.png differ diff --git a/app/src/main/res/layout/activity_application_review.xml b/app/src/main/res/layout/activity_application_review.xml new file mode 100644 index 0000000..2af3493 --- /dev/null +++ b/app/src/main/res/layout/activity_application_review.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_review_info.xml b/app/src/main/res/layout/activity_review_info.xml new file mode 100644 index 0000000..95c876a --- /dev/null +++ b/app/src/main/res/layout/activity_review_info.xml @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_traceability_manage.xml b/app/src/main/res/layout/activity_traceability_manage.xml new file mode 100644 index 0000000..333d150 --- /dev/null +++ b/app/src/main/res/layout/activity_traceability_manage.xml @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_traceability_testing.xml b/app/src/main/res/layout/activity_traceability_testing.xml new file mode 100644 index 0000000..0b291ec --- /dev/null +++ b/app/src/main/res/layout/activity_traceability_testing.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index d07bc70..43ba2e0 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -8,9 +8,147 @@ tools:context=".ui.home.HomeFragment"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_mine.xml b/app/src/main/res/layout/fragment_mine.xml index e96091a..e26fb90 100644 --- a/app/src/main/res/layout/fragment_mine.xml +++ b/app/src/main/res/layout/fragment_mine.xml @@ -4,25 +4,211 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/white" android:orientation="vertical" - tools:context="com.yinhetairui.digitalagriculture.ui.mine.MineFragment"> + tools:context=".ui.mine.MineFragment"> + app:title="个人中心" /> - + android:layout_height="wrap_content" + android:background="#193B60" + android:gravity="center_vertical" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dp_20" + android:paddingVertical="@dimen/dp_14"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_workbenches.xml b/app/src/main/res/layout/fragment_workbenches.xml index 4b4a5ee..13caa82 100644 --- a/app/src/main/res/layout/fragment_workbenches.xml +++ b/app/src/main/res/layout/fragment_workbenches.xml @@ -8,10 +8,184 @@ tools:context=".ui.workbenches.WorkbenchesFragment"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_application_review_goods.xml b/app/src/main/res/layout/item_application_review_goods.xml new file mode 100644 index 0000000..35f95ce --- /dev/null +++ b/app/src/main/res/layout/item_application_review_goods.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_common_function.xml b/app/src/main/res/layout/item_common_function.xml new file mode 100644 index 0000000..7ed40fe --- /dev/null +++ b/app/src/main/res/layout/item_common_function.xml @@ -0,0 +1,43 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_testing_organization.xml b/app/src/main/res/layout/item_testing_organization.xml new file mode 100644 index 0000000..b8c0642 --- /dev/null +++ b/app/src/main/res/layout/item_testing_organization.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_traceability_testing.xml b/app/src/main/res/layout/item_traceability_testing.xml new file mode 100644 index 0000000..2495c37 --- /dev/null +++ b/app/src/main/res/layout/item_traceability_testing.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/login_activity.xml b/app/src/main/res/layout/login_activity.xml index 64240cb..2cccda9 100644 --- a/app/src/main/res/layout/login_activity.xml +++ b/app/src/main/res/layout/login_activity.xml @@ -12,18 +12,11 @@ - - + app:srcCompat="@drawable/icon_app_name" /> + + + + + + + + \ 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 4858a28..3b99776 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,6 +7,7 @@ #F4F4F4 #000000 #333333 + #666666 #999999 #3685FE