|
|
@@ -11,6 +11,7 @@ import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
import android.widget.Checkable;
|
|
|
import android.widget.LinearLayout;
|
|
|
+import android.widget.Space;
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
@@ -68,7 +69,7 @@ public class SearchFilterDetailDialog extends DialogBase<ISearchFilterListener<S
|
|
|
*/
|
|
|
public void setFilterDetail(List<FilterTagBean> tagBeans, List<SearchFilterBean> selectedList, String title, boolean isMultiSelection, String filterType, String filterNo) {
|
|
|
this.tagBeans = tagBeans;
|
|
|
- if(null != selectedList) {
|
|
|
+ if (null != selectedList) {
|
|
|
this.selectedList = new ArrayList<>(selectedList); // 데이터를 복제해서 사용, 내부에서 배열을 변형(추가/삭제)한다. 외부로 전달은 배열 자체를 한다.
|
|
|
}
|
|
|
this.title = title;
|
|
|
@@ -173,6 +174,12 @@ public class SearchFilterDetailDialog extends DialogBase<ISearchFilterListener<S
|
|
|
});
|
|
|
container.addView(containerTotal);
|
|
|
}
|
|
|
+ else {
|
|
|
+ // 12dp top space
|
|
|
+ View space = new Space(getContext());
|
|
|
+ LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, ResourceUtil.dpToPx(12));
|
|
|
+ container.addView(space, layoutParams);
|
|
|
+ }
|
|
|
|
|
|
LinearLayout rowContainer = null;
|
|
|
TagBean tagBean;
|
|
|
@@ -183,7 +190,8 @@ public class SearchFilterDetailDialog extends DialogBase<ISearchFilterListener<S
|
|
|
rowContainer.setWeightSum(2);
|
|
|
rowContainer.setOrientation(LinearLayout.HORIZONTAL);
|
|
|
rowContainer.setGravity(Gravity.START);
|
|
|
- rowContainer.setPadding(ResourceUtil.dpToPx(25), ResourceUtil.dpToPx(3), ResourceUtil.dpToPx(25), ResourceUtil.dpToPx(3));
|
|
|
+ // 좌우 실제 마진은 25dp 이지만 체크박스가 좌우 3dp씩 패딩을 사용하기 때문에 22dp로 적용한다.
|
|
|
+ rowContainer.setPadding(ResourceUtil.dpToPx(22), ResourceUtil.dpToPx(3), ResourceUtil.dpToPx(22), ResourceUtil.dpToPx(3));
|
|
|
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
|
|
|
container.addView(rowContainer, layoutParams);
|
|
|
}
|
|
|
@@ -205,18 +213,19 @@ public class SearchFilterDetailDialog extends DialogBase<ISearchFilterListener<S
|
|
|
|
|
|
if (isMultiSelection) {
|
|
|
checkBoxAllDriver.addChildBox(checkBox);
|
|
|
+ final CheckBoxAllDriver checkBoxAllDriverFinal = checkBoxAllDriver;
|
|
|
+ checkBox.setOnClickListener(v -> {
|
|
|
+ checkBoxAllDriverFinal.check();
|
|
|
+ setSelectedList((Checkable) v);
|
|
|
+ });
|
|
|
+
|
|
|
+ // 전체 선택 확인
|
|
|
+ checkBoxAllDriver.check();
|
|
|
+
|
|
|
}
|
|
|
else {
|
|
|
selector.addChildBox(checkBox);
|
|
|
- }
|
|
|
-
|
|
|
- final CheckBoxAllDriver checkBoxAllDriverFinal = checkBoxAllDriver;
|
|
|
- checkBox.setOnClickListener(v -> {
|
|
|
- if (isMultiSelection) {
|
|
|
- checkBoxAllDriverFinal.check();
|
|
|
- setSelectedList((Checkable) v);
|
|
|
- }
|
|
|
- else {
|
|
|
+ checkBox.setOnClickListener(v -> {
|
|
|
if (selector.contains((Checkable) v)) {
|
|
|
// 셀렉터에 포함되있으면 셀렉터에서 처리
|
|
|
selector.check((Checkable) v);
|
|
|
@@ -224,12 +233,7 @@ public class SearchFilterDetailDialog extends DialogBase<ISearchFilterListener<S
|
|
|
else {
|
|
|
setSelectedList((Checkable) v);
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- // 전체 선택 확인
|
|
|
- if (isMultiSelection) {
|
|
|
- checkBoxAllDriverFinal.check();
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
// 선택 표시
|