[清扫车] fix: 修复因为没在主线程操作View导致的按钮样式问题;
This commit is contained in:
@@ -195,19 +195,21 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
|
||||
@Override
|
||||
public void onCmdSuccess() {
|
||||
if (isCloseAction) {
|
||||
mBtnCleanWorkOpenClose.setText("Open");
|
||||
mBtnCleanWorkOpenClose.setChecked(false);
|
||||
toggleCleanModeBtnsStatus(false);
|
||||
toggleCleanDirectionBtnsStatus(false);
|
||||
toggleCleanIntensityBtnsStatus(false);
|
||||
} else {
|
||||
mBtnCleanWorkOpenClose.setText("Close");
|
||||
mBtnCleanWorkOpenClose.setChecked(true);
|
||||
toggleCleanModeBtnsStatus(true);
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteSuccessToast();
|
||||
runOnUIThread(() -> {
|
||||
if (isCloseAction) {
|
||||
mBtnCleanWorkOpenClose.setText("Open");
|
||||
mBtnCleanWorkOpenClose.setChecked(false);
|
||||
toggleCleanModeBtnsStatus(false);
|
||||
toggleCleanDirectionBtnsStatus(false);
|
||||
toggleCleanIntensityBtnsStatus(false);
|
||||
} else {
|
||||
mBtnCleanWorkOpenClose.setText("Close");
|
||||
mBtnCleanWorkOpenClose.setChecked(true);
|
||||
toggleCleanModeBtnsStatus(true);
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteSuccessToast();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -217,15 +219,17 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
@Override
|
||||
public void onCmdTimeout() {
|
||||
//按钮样式恢复原样
|
||||
if (isCloseAction) {
|
||||
mBtnCleanWorkOpenClose.setText("Close");
|
||||
mBtnCleanWorkOpenClose.setChecked(true);
|
||||
} else {
|
||||
mBtnCleanWorkOpenClose.setText("Open");
|
||||
mBtnCleanWorkOpenClose.setChecked(false);
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteTimeoutToast();
|
||||
runOnUIThread(() -> {
|
||||
if (isCloseAction) {
|
||||
mBtnCleanWorkOpenClose.setText("Close");
|
||||
mBtnCleanWorkOpenClose.setChecked(true);
|
||||
} else {
|
||||
mBtnCleanWorkOpenClose.setText("Open");
|
||||
mBtnCleanWorkOpenClose.setChecked(false);
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteTimeoutToast();
|
||||
});
|
||||
}
|
||||
};
|
||||
if (isCloseAction) {
|
||||
@@ -320,23 +324,25 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
|
||||
@Override
|
||||
public void onCmdSuccess() {
|
||||
((CheckedTextView) currentClickView).setChecked(!isClickCurrentChoosedModeBtn);
|
||||
toggleCleanModeBtnsByChoosedViewId(currentClickView.getId(), isClickCurrentChoosedModeBtn);
|
||||
if (isClickCurrentChoosedModeBtn) {
|
||||
toggleCleanDirectionBtnsStatus(false);
|
||||
toggleCleanIntensityBtnsStatus(false);
|
||||
} else {
|
||||
// 如果是纯吸,没有设置清扫方向,同时自动设置作业强度为标准
|
||||
if (isPureAbsorptionClick) {
|
||||
runOnUIThread(() -> {
|
||||
((CheckedTextView) currentClickView).setChecked(!isClickCurrentChoosedModeBtn);
|
||||
toggleCleanModeBtnsByChoosedViewId(currentClickView.getId(), isClickCurrentChoosedModeBtn);
|
||||
if (isClickCurrentChoosedModeBtn) {
|
||||
toggleCleanDirectionBtnsStatus(false);
|
||||
setCleanIntensityStandard();
|
||||
} else {
|
||||
toggleCleanDirectionBtnsStatus(true);
|
||||
toggleCleanIntensityBtnsStatus(false);
|
||||
} else {
|
||||
// 如果是纯吸,没有设置清扫方向,同时自动设置作业强度为标准
|
||||
if (isPureAbsorptionClick) {
|
||||
toggleCleanDirectionBtnsStatus(false);
|
||||
setCleanIntensityStandard();
|
||||
} else {
|
||||
toggleCleanDirectionBtnsStatus(true);
|
||||
toggleCleanIntensityBtnsStatus(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteSuccessToast();
|
||||
hideLoadingMask();
|
||||
showCmdExecuteSuccessToast();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -345,9 +351,11 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
|
||||
@Override
|
||||
public void onCmdTimeout() {
|
||||
((CheckedTextView) currentClickView).setChecked(isClickCurrentChoosedModeBtn);
|
||||
hideLoadingMask();
|
||||
showCmdExecuteTimeoutToast();
|
||||
runOnUIThread(() -> {
|
||||
((CheckedTextView) currentClickView).setChecked(isClickCurrentChoosedModeBtn);
|
||||
hideLoadingMask();
|
||||
showCmdExecuteTimeoutToast();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -427,17 +435,19 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
|
||||
@Override
|
||||
public void onCmdSuccess() {
|
||||
((CheckedTextView) currentClickView).setChecked(!isClickCurrentChoosedDirectionBtn);
|
||||
toggleCleanDirectionBtnsByChoosedViewId(currentClickView.getId(), isClickCurrentChoosedDirectionBtn);
|
||||
if (isClickCurrentChoosedDirectionBtn) {
|
||||
toggleCleanIntensityBtnsStatus(false);
|
||||
} else {
|
||||
toggleCleanIntensityBtnsStatus(true);
|
||||
// 一并设置作业强度为标准
|
||||
setCleanIntensityStandard();
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteSuccessToast();
|
||||
runOnUIThread(() -> {
|
||||
((CheckedTextView) currentClickView).setChecked(!isClickCurrentChoosedDirectionBtn);
|
||||
toggleCleanDirectionBtnsByChoosedViewId(currentClickView.getId(), isClickCurrentChoosedDirectionBtn);
|
||||
if (isClickCurrentChoosedDirectionBtn) {
|
||||
toggleCleanIntensityBtnsStatus(false);
|
||||
} else {
|
||||
toggleCleanIntensityBtnsStatus(true);
|
||||
// 一并设置作业强度为标准
|
||||
setCleanIntensityStandard();
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteSuccessToast();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -446,9 +456,11 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
|
||||
@Override
|
||||
public void onCmdTimeout() {
|
||||
((CheckedTextView) currentClickView).setChecked(isClickCurrentChoosedDirectionBtn);
|
||||
hideLoadingMask();
|
||||
showCmdExecuteTimeoutToast();
|
||||
runOnUIThread(() -> {
|
||||
((CheckedTextView) currentClickView).setChecked(isClickCurrentChoosedDirectionBtn);
|
||||
hideLoadingMask();
|
||||
showCmdExecuteTimeoutToast();
|
||||
});
|
||||
}
|
||||
};
|
||||
if (isClickCurrentChoosedDirectionBtn) {
|
||||
@@ -500,14 +512,16 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
|
||||
@Override
|
||||
public void onCmdSuccess() {
|
||||
((CheckedTextView) currentClickView).setChecked(true);
|
||||
if (isStandardBtnClick) {
|
||||
setCleanIntensityStandard();
|
||||
} else {
|
||||
setCleanIntensityStrong();
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteSuccessToast();
|
||||
runOnUIThread(() -> {
|
||||
((CheckedTextView) currentClickView).setChecked(true);
|
||||
if (isStandardBtnClick) {
|
||||
setCleanIntensityStandard();
|
||||
} else {
|
||||
setCleanIntensityStrong();
|
||||
}
|
||||
hideLoadingMask();
|
||||
showCmdExecuteSuccessToast();
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -516,9 +530,11 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
|
||||
@Override
|
||||
public void onCmdTimeout() {
|
||||
((CheckedTextView) currentClickView).setChecked(false);
|
||||
hideLoadingMask();
|
||||
showCmdExecuteTimeoutToast();
|
||||
runOnUIThread(() -> {
|
||||
((CheckedTextView) currentClickView).setChecked(false);
|
||||
hideLoadingMask();
|
||||
showCmdExecuteTimeoutToast();
|
||||
});
|
||||
}
|
||||
};
|
||||
int cmdValue = cleanIntensityBtnAndCmdValueMap.get(currentClickView.getId());
|
||||
@@ -534,13 +550,11 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
* @param enable
|
||||
*/
|
||||
private void toggleCleanModeBtnsStatus(boolean enable) {
|
||||
runOnUIThread(() -> {
|
||||
for (Integer viewId : cleanModeBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
});
|
||||
for (Integer viewId : cleanModeBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -550,15 +564,13 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
* @param enable
|
||||
*/
|
||||
private void toggleCleanModeBtnsByChoosedViewId(int choosedBtnId, boolean enable) {
|
||||
runOnUIThread(() -> {
|
||||
for (Integer viewId : cleanModeBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
if (view.getId() != choosedBtnId) {
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
for (Integer viewId : cleanModeBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
if (view.getId() != choosedBtnId) {
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -567,13 +579,11 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
* @param enable
|
||||
*/
|
||||
private void toggleCleanDirectionBtnsStatus(boolean enable) {
|
||||
runOnUIThread(() -> {
|
||||
for (Integer viewId : cleanDirectionBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
});
|
||||
for (Integer viewId : cleanDirectionBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -583,15 +593,13 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
* @param enable
|
||||
*/
|
||||
private void toggleCleanDirectionBtnsByChoosedViewId(int choosedBtnId, boolean enable) {
|
||||
runOnUIThread(() -> {
|
||||
for (Integer viewId : cleanDirectionBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
if (view.getId() != choosedBtnId) {
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
for (Integer viewId : cleanDirectionBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
if (view.getId() != choosedBtnId) {
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -600,13 +608,11 @@ public class SweeperOperatePanelView extends LinearLayout {
|
||||
* @param enable
|
||||
*/
|
||||
private void toggleCleanIntensityBtnsStatus(boolean enable) {
|
||||
runOnUIThread(() -> {
|
||||
for (Integer viewId : cleanIntensityBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
});
|
||||
for (Integer viewId : cleanIntensityBtnViewIds) {
|
||||
CheckedTextView view = (CheckedTextView) findViewById(viewId);
|
||||
view.setEnabled(enable);
|
||||
view.setChecked(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user