package com.application.zhangshi_app_android.ui.function; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import androidx.recyclerview.widget.GridLayoutManager; import com.application.zhangshi_app_android.BR; import com.application.zhangshi_app_android.R; import com.application.zhangshi_app_android.adapter.ImageRvAdapter; import com.application.zhangshi_app_android.bean.FamilyAssetsBean; import com.application.zhangshi_app_android.bean.HomeDevicesBean; import com.application.zhangshi_app_android.databinding.ActivityHomeDevicesDetailBinding; import com.application.zhangshi_app_android.ui.DLBaseActivity; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * @author Ljj * @date 2023.04.04. 15:19 * @desc */ public class HomeDevicesDetailActivity extends DLBaseActivity { private ImageRvAdapter adapter; @Override public int getLayoutId() { return R.layout.activity_home_devices_detail; } @Override public int getVariableId() { return BR.viewModel; } @Override public void initParam() { if (getIntent().hasExtra("bean")){ viewModel.getBeanLiveData().setValue((HomeDevicesBean) getIntent().getSerializableExtra("bean")); } } @Override public void initView() { adapter = new ImageRvAdapter(this); GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3); binding.rvImage.setLayoutManager(gridLayoutManager); binding.rvImage.setNestedScrollingEnabled(false); setIsEdited(false); } @Override public void initData() { } @Override public void initLiveDataObserve() { viewModel.getBeanLiveData().observe(this,bean -> { if (bean!=null){ if (getTitleBar() != null){ getTitleBar().setTitle(bean.getName()); } String url = bean.getUrl(); if (url == null||url.isEmpty()){ return; } List list; if (url.contains(",")){ String[] split = url.split(","); list = new ArrayList<>(Arrays.asList(split)); }else { list = new ArrayList<>(); list.add(url); } adapter.setData(list); } }); } public void setIsEdited(boolean isEdited){ disableAllEditText(getContentView(),isEdited); adapter.setIsEdited(isEdited); } public void disableAllEditText(ViewGroup viewGroup, boolean isEdited) { for (int i = 0; i < viewGroup.getChildCount(); i++) { View child = viewGroup.getChildAt(i); if (child instanceof ViewGroup) { disableAllEditText((ViewGroup) child,isEdited); } else if (child instanceof EditText) { child.setEnabled(isEdited); child.setFocusable(isEdited); child.setFocusableInTouchMode(isEdited); if (!isEdited){ child.clearFocus(); } } } } }