diff --git a/.gitignore b/.gitignore index d935441..0d0349f 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,5 @@ /build /captures .externalNativeBuild -.cxx \ No newline at end of file +.cxx +/app/release \ No newline at end of file diff --git a/app/release/IndustrialOperation_app_v1.0_20250627155600.apk b/app/release/IndustrialOperation_app_v1.0_20250627155600.apk deleted file mode 100644 index 4ed420c..0000000 Binary files a/app/release/IndustrialOperation_app_v1.0_20250627155600.apk and /dev/null differ diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json deleted file mode 100644 index acdbcf8..0000000 --- a/app/release/output-metadata.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "version": 3, - "artifactType": { - "type": "APK", - "kind": "Directory" - }, - "applicationId": "com.tairui.industrial_operation", - "variantName": "release", - "elements": [ - { - "type": "SINGLE", - "filters": [], - "attributes": [], - "versionCode": 1, - "versionName": "1.0", - "outputFile": "IndustrialOperation_app_v1.0_20250627155600.apk" - } - ], - "elementType": "File" -} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 59c4660..d58fde7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -173,6 +173,11 @@ android:configChanges="orientation|screenSize|keyboardHidden" android:exported="false" android:screenOrientation="portrait" /> + { mFragments.add(new HomeFragment()); mTabEntities.add(new TabEntity("商城", R.mipmap.tabar_shopping_sel, R.mipmap.tabar_shopping_nor)); mTitles.add("商城"); - mFragments.add(new ShoppingFragment()); + mFragments.add(new MallFragment()); mTabEntities.add(new TabEntity("服务", R.mipmap.tabar_service_sel, R.mipmap.tabar_service_nor)); mTitles.add("服务"); mFragments.add(new ServiceFragment()); diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/SplashActivity.java b/app/src/main/java/com/tairui/industrial_operation/ui/SplashActivity.java index fd8a0a3..0e4189c 100644 --- a/app/src/main/java/com/tairui/industrial_operation/ui/SplashActivity.java +++ b/app/src/main/java/com/tairui/industrial_operation/ui/SplashActivity.java @@ -40,12 +40,9 @@ public class SplashActivity extends BaseActivity { } private void goMain() { - // KpLog.getInstance().doSaveEventLog(mContext, true); - //KpLog.getInstance().onAppStart(mContext); - if (null != binding.txtTimerSplash) { setGone(binding.txtTimerSplash, true); - countTimer = new CountTimer(3 * 1000, INTERVAL); + countTimer = new CountTimer(1 * 1000, INTERVAL); WeakReference weakTimerCountDowner = new WeakReference<>(countTimer); if (null != weakTimerCountDowner.get()) { weakTimerCountDowner.get().start(); diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/account/LoginActivity.java b/app/src/main/java/com/tairui/industrial_operation/ui/account/LoginActivity.java index b91f49c..0243b86 100644 --- a/app/src/main/java/com/tairui/industrial_operation/ui/account/LoginActivity.java +++ b/app/src/main/java/com/tairui/industrial_operation/ui/account/LoginActivity.java @@ -3,7 +3,6 @@ package com.tairui.industrial_operation.ui.account; import com.google.gson.JsonObject; import com.orhanobut.hawk.Hawk; import com.rxjava.rxlife.RxLife; -import com.tairui.industrial_operation.BuildConfig; import com.tairui.industrial_operation.base.BaseActivity; import com.tairui.industrial_operation.databinding.ActivityLoginBinding; import com.tairui.industrial_operation.entity.Api; @@ -27,10 +26,10 @@ public class LoginActivity extends BaseActivity { @Override protected void onFindView(Bundle savedInstanceState) { - if (BuildConfig.DEBUG) { - setText(binding.inputUserName, "admin"); - setText(binding.inputUserPass, "admin123"); - } +// if (BuildConfig.DEBUG) { +// setText(binding.inputUserName, "admin"); +// setText(binding.inputUserPass, "admin123"); +// } } @Override diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/brand/ApplyRecordsActivity.java b/app/src/main/java/com/tairui/industrial_operation/ui/brand/ApplyRecordsActivity.java new file mode 100644 index 0000000..bac217d --- /dev/null +++ b/app/src/main/java/com/tairui/industrial_operation/ui/brand/ApplyRecordsActivity.java @@ -0,0 +1,36 @@ +package com.tairui.industrial_operation.ui.brand; + +import com.gyf.immersionbar.ImmersionBar; +import com.tairui.industrial_operation.base.BaseActivity; +import com.tairui.industrial_operation.databinding.ActivityApplyRecordsBinding; +import com.tairui.industrial_operation.util.SingleClickListener; + +import android.view.View; + +public class ApplyRecordsActivity extends BaseActivity { + + @Override + protected Class getBindingClass() { + return ActivityApplyRecordsBinding.class; + } + + @Override + protected void initStatusBar() { + ImmersionBar.with(this).fitsSystemWindows(false).transparentStatusBar() + .statusBarDarkFont(true).init(); + } + + @Override + protected void onQueryArguments() { + } + + @Override + protected void onBindListener() { + binding.btnBack.setOnClickListener(new SingleClickListener() { + @Override + protected void onSingleClick(View v) { + finish(); + } + }); + } +} diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/brand/PublicBrandActivity.java b/app/src/main/java/com/tairui/industrial_operation/ui/brand/PublicBrandActivity.java index de42dad..6c3fc20 100644 --- a/app/src/main/java/com/tairui/industrial_operation/ui/brand/PublicBrandActivity.java +++ b/app/src/main/java/com/tairui/industrial_operation/ui/brand/PublicBrandActivity.java @@ -22,6 +22,12 @@ public class PublicBrandActivity extends BaseActivity { + + private MallAdapter adapter; + private int currentPageIndex = 1; + + @Override + protected Class getBindingClass() { + return FragmentMallBinding.class; + } + + @Override + protected void onFindView(View rootView) { + binding.refreshRecycler.setLayoutManager(new LinearLayoutManager(mContext)); + adapter = new MallAdapter(new ArrayList<>()); + binding.refreshRecycler.setAdapter(adapter); + } + + @Override + protected void onBindListener() { + binding.refreshRecycler.setRefreshRecyclerListener(new RefreshRecyclerView.RefreshRecyclerListener() { + @Override + public void onRefresh() { + currentPageIndex = 1; + requestData(false); + } + + @Override + public void onLoadmore() { + requestData(true); + } + + @Override + public void onBlankClick() { + binding.refreshRecycler.showLoading(); + currentPageIndex = 1; + requestData(false); + } + }); + adapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { + // Bundle bundle = new Bundle(); + // bundle.putSerializable("data", (Serializable) adapter.getItem(i)); + // IntentUtil.startActivity(mContext, LandInfoDetailActivity.class, bundle); + }); + } + + @Override + protected void onApplyData() { + binding.refreshRecycler.showLoading(); + currentPageIndex = 1; + requestData(false); + + } + + private void requestData(boolean loadmore) { + RxHttp.get(Api.HOME_GOODS_LIST).add("type", 1).add("current", currentPageIndex).add("size", Api.SIZE_PAGE) + .asResponse(HomeGoodsEntity.class).as(RxLife.asOnMain(this)).subscribe(data -> { + if (loadmore) { + binding.refreshRecycler.finishLoadMore(); + } + if (!ArrayUtil.isEmpty(data.getRecords())) { + if (loadmore) { + adapter.addGoodsData(data.getRecords()); + } else { + initData(data.getRecords()); + } + currentPageIndex += 1; + if (ArrayUtil.size(data.getRecords()) < Api.SIZE_PAGE) { + binding.refreshRecycler.setNoMoreData(true); + } else { + binding.refreshRecycler.setNoMoreData(false); + } + binding.refreshRecycler.showContent(); + } else { + binding.refreshRecycler.showError(); + binding.refreshRecycler.setNoMoreData(true); + } + }, (OnError) error -> { + binding.refreshRecycler.showError(); + binding.refreshRecycler.setNoMoreData(true); + showError(error.getErrorMsg()); + }); + } + + private void initData(List goodsList) { + List list = new ArrayList<>(); + BaseHolderEntity bannerItem = new BaseHolderEntity(); + bannerItem.setType(MallAdapter.TYPE_BANNER); + list.add(bannerItem); + + BaseHolderEntity funcItem = new BaseHolderEntity(); + funcItem.setType(MallAdapter.TYPE_FUNC); + List funcList = new ArrayList<>(); + BaseHolderEntity itemFunc = new BaseHolderEntity(); + itemFunc.setData("种子种苗"); + itemFunc.setSubData(R.mipmap.pic_mall_2); + funcList.add(itemFunc); + itemFunc = new BaseHolderEntity(); + itemFunc.setData("化肥"); + itemFunc.setSubData(R.mipmap.pic_mall_3); + funcList.add(itemFunc); + itemFunc = new BaseHolderEntity(); + itemFunc.setData("农药"); + itemFunc.setSubData(R.mipmap.pic_mall_4); + funcList.add(itemFunc); + itemFunc = new BaseHolderEntity(); + itemFunc.setData("泡沫"); + itemFunc.setSubData(R.mipmap.pic_mall_5); + funcList.add(itemFunc); + itemFunc = new BaseHolderEntity(); + itemFunc.setData("地膜"); + itemFunc.setSubData(R.mipmap.pic_mall_6); + funcList.add(itemFunc); + itemFunc = new BaseHolderEntity(); + itemFunc.setData("包装箱"); + itemFunc.setSubData(R.mipmap.pic_mall_7); + funcList.add(itemFunc); + itemFunc = new BaseHolderEntity(); + itemFunc.setData("蔬菜"); + itemFunc.setSubData(R.mipmap.pic_mall_8); + funcList.add(itemFunc); + itemFunc = new BaseHolderEntity(); + itemFunc.setData("中药材"); + itemFunc.setSubData(R.mipmap.pic_mall_9); + funcList.add(itemFunc); + itemFunc = new BaseHolderEntity(); + itemFunc.setData("水果"); + itemFunc.setSubData(R.mipmap.pic_mall_10); + funcList.add(itemFunc); + funcItem.setData(funcList); + list.add(funcItem); + + BaseHolderEntity goodsItem = new BaseHolderEntity(); + goodsItem.setType(MallAdapter.TYPE_GOODS); + goodsItem.setData(goodsList); + list.add(goodsItem); + + adapter.setNewData(list); + binding.refreshRecycler.showContent(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallAdapter.java b/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallAdapter.java new file mode 100644 index 0000000..a734948 --- /dev/null +++ b/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallAdapter.java @@ -0,0 +1,65 @@ +package com.tairui.industrial_operation.ui.mall.adapter; + +import java.util.List; + +import com.chad.library.adapter.base.BaseMultiItemQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.tairui.industrial_operation.R; +import com.tairui.industrial_operation.base.entity.BaseHolderEntity; +import com.tairui.industrial_operation.ui.home.adapter.HomeGoodsAdapter; +import com.tairui.industrial_operation.ui.home.entity.HomeGoodsEntity; +import com.tairui.industrial_operation.util.DensityUtils; +import com.tairui.industrial_operation.widget.GridSpacingItemDecoration; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +public class MallAdapter extends BaseMultiItemQuickAdapter { + + public static final int TYPE_BANNER = 1; + public static final int TYPE_FUNC = 2; + public static final int TYPE_GOODS = 3; + + private HomeGoodsAdapter goodsAdapter; + + public MallAdapter(List list) { + super(list); + addItemType(TYPE_BANNER, R.layout.item_mall_banner); + addItemType(TYPE_FUNC, R.layout.item_home_func); + addItemType(TYPE_GOODS, R.layout.item_home_goods); + } + + public void addGoodsData(List goods) { + if (goodsAdapter != null) { + goodsAdapter.addData(goods); + } + } + + @Override + protected void convert(@NonNull BaseViewHolder holder, BaseHolderEntity entity) { + switch (holder.getItemViewType()) { + case TYPE_FUNC: + RecyclerView funcRecycler = holder.getView(R.id.recycle_view); + funcRecycler.setLayoutManager(new GridLayoutManager(mContext, 5)); + MallFuncAdapter funcAdapter = new MallFuncAdapter(); + funcAdapter.setNewData((List) entity.getData()); + funcRecycler.setAdapter(funcAdapter); + funcAdapter.setOnItemClickListener((baseQuickAdapter, view, i) -> { + }); + break; + case TYPE_GOODS: + RecyclerView goodsRecycler = holder.getView(R.id.recycle_view); + goodsRecycler.setLayoutManager(new GridLayoutManager(mContext, 2)); + goodsRecycler.addItemDecoration(new GridSpacingItemDecoration(2, DensityUtils.dp2px(mContext, 12), true)); + goodsAdapter = new HomeGoodsAdapter(); + goodsAdapter.setNewData((List) entity.getData()); + goodsRecycler.setAdapter(goodsAdapter); + break; + default: + break; + } + } + +} + diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallFuncAdapter.java b/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallFuncAdapter.java new file mode 100644 index 0000000..2599ccd --- /dev/null +++ b/app/src/main/java/com/tairui/industrial_operation/ui/mall/adapter/MallFuncAdapter.java @@ -0,0 +1,21 @@ +package com.tairui.industrial_operation.ui.mall.adapter; + +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; +import com.tairui.industrial_operation.R; +import com.tairui.industrial_operation.base.entity.BaseHolderEntity; + +import androidx.annotation.NonNull; + +public class MallFuncAdapter extends BaseQuickAdapter { + + public MallFuncAdapter() { + super(R.layout.item_func); + } + + @Override + protected void convert(@NonNull BaseViewHolder holder, BaseHolderEntity entity) { + holder.setText(R.id.title, (String) entity.getData()); + holder.setImageResource(R.id.img, (int) entity.getSubData()); + } +} diff --git a/app/src/main/java/com/tairui/industrial_operation/ui/shopping/ShoppingFragment.java b/app/src/main/java/com/tairui/industrial_operation/ui/shopping/ShoppingFragment.java deleted file mode 100644 index 2057773..0000000 --- a/app/src/main/java/com/tairui/industrial_operation/ui/shopping/ShoppingFragment.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.tairui.industrial_operation.ui.shopping; - -import com.tairui.industrial_operation.base.BaseFragment; -import com.tairui.industrial_operation.databinding.FragmentShoppingBinding; - -import android.os.Bundle; -import android.view.View; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -public class ShoppingFragment extends BaseFragment { - - @Override - protected Class getBindingClass() { - return FragmentShoppingBinding.class; - } - - @Override - public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - - } -} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_gradient_mall.xml b/app/src/main/res/drawable/bg_gradient_mall.xml new file mode 100644 index 0000000..9eebc79 --- /dev/null +++ b/app/src/main/res/drawable/bg_gradient_mall.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_apply_records.xml b/app/src/main/res/layout/activity_apply_records.xml new file mode 100644 index 0000000..ece0dd3 --- /dev/null +++ b/app/src/main/res/layout/activity_apply_records.xml @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_public_brand.xml b/app/src/main/res/layout/activity_public_brand.xml index a5b7a8f..83712cc 100644 --- a/app/src/main/res/layout/activity_public_brand.xml +++ b/app/src/main/res/layout/activity_public_brand.xml @@ -177,6 +177,7 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_mall_banner.xml b/app/src/main/res/layout/item_mall_banner.xml new file mode 100644 index 0000000..efaa2fc --- /dev/null +++ b/app/src/main/res/layout/item_mall_banner.xml @@ -0,0 +1,15 @@ + + + + + + + diff --git a/app/src/main/res/mipmap-xxhdpi/ic_shopcart_white.png b/app/src/main/res/mipmap-xxhdpi/ic_shopcart_white.png new file mode 100644 index 0000000..91ea2f6 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_shopcart_white.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_1.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_1.png new file mode 100644 index 0000000..fca2dab Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_1.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_10.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_10.png new file mode 100644 index 0000000..a409c48 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_10.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_2.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_2.png new file mode 100644 index 0000000..987cd43 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_2.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_3.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_3.png new file mode 100644 index 0000000..9a89219 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_3.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_4.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_4.png new file mode 100644 index 0000000..e9e781a Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_4.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_5.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_5.png new file mode 100644 index 0000000..1cba319 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_5.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_6.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_6.png new file mode 100644 index 0000000..7b242ab Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_6.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_7.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_7.png new file mode 100644 index 0000000..9c5d79a Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_7.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_8.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_8.png new file mode 100644 index 0000000..4f36d04 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_8.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_9.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_9.png new file mode 100644 index 0000000..e14b016 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_9.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/pic_mall_bg.png b/app/src/main/res/mipmap-xxhdpi/pic_mall_bg.png new file mode 100644 index 0000000..d054fb3 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/pic_mall_bg.png differ