添加删除位置记录的确定对话框。
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#Created by .winboll/winboll_app_build.gradle
|
||||||
#Tue Mar 31 13:03:31 HKT 2026
|
#Tue Mar 31 05:22:41 GMT 2026
|
||||||
stageCount=15
|
stageCount=15
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=15.12
|
baseVersion=15.12
|
||||||
publishVersion=15.12.14
|
publishVersion=15.12.14
|
||||||
buildCount=0
|
buildCount=3
|
||||||
baseBetaVersion=15.12.15
|
baseBetaVersion=15.12.15
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import android.widget.Toast;
|
|||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
import cc.winboll.studio.libaes.dialogs.YesNoAlertDialog;
|
||||||
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
import cc.winboll.studio.libaes.interfaces.IWinBoLLActivity;
|
||||||
import cc.winboll.studio.libappbase.LogUtils;
|
import cc.winboll.studio.libappbase.LogUtils;
|
||||||
import cc.winboll.studio.libappbase.ToastUtils;
|
import cc.winboll.studio.libappbase.ToastUtils;
|
||||||
@@ -228,26 +229,37 @@ public class LocationActivity extends WinBoLLActivity implements IWinBoLLActivit
|
|||||||
// 3. 设置删除回调(删除时同步服务+本地缓存+Adapter)
|
// 3. 设置删除回调(删除时同步服务+本地缓存+Adapter)
|
||||||
mPositionAdapter.setOnDeleteClickListener(new PositionAdapter.OnDeleteClickListener() {
|
mPositionAdapter.setOnDeleteClickListener(new PositionAdapter.OnDeleteClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onDeleteClick(int position) {
|
public void onDeleteClick(final int position) {
|
||||||
// 安全校验(索引有效+服务绑定+缓存非空)
|
YesNoAlertDialog.show(LocationActivity.this, "删除位置提示", "是否删除位置?", new YesNoAlertDialog.OnDialogResultListener(){
|
||||||
if (position < 0 || position >= mLocalPosCache.size() || !isServiceBound.get() || mMainService == null) {
|
|
||||||
LogUtils.w(TAG, "删除位置失败:索引无效/服务未就绪(索引=" + position + ",缓存量=" + mLocalPosCache.size() + ")");
|
@Override
|
||||||
return;
|
public void onNo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onYes() {
|
||||||
|
// 安全校验(索引有效+服务绑定+缓存非空)
|
||||||
|
if (position < 0 || position >= mLocalPosCache.size() || !isServiceBound.get() || mMainService == null) {
|
||||||
|
LogUtils.w(TAG, "删除位置失败:索引无效/服务未就绪(索引=" + position + ",缓存量=" + mLocalPosCache.size() + ")");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
PositionModel deletePos = mLocalPosCache.get(position);
|
||||||
|
if (deletePos != null && !deletePos.getPositionId().isEmpty()) {
|
||||||
|
// 步骤1:调用服务删除(确保服务数据一致性)
|
||||||
|
mMainService.removePosition(deletePos.getPositionId());
|
||||||
|
// 步骤2:删除本地缓存(确保缓存与服务同步)
|
||||||
|
synchronized (mLocalPosCache) {
|
||||||
|
mLocalPosCache.remove(position);
|
||||||
|
}
|
||||||
|
// 步骤3:通知Adapter刷新(基于缓存操作,避免空数据)
|
||||||
|
mPositionAdapter.notifyItemRemoved(position);
|
||||||
|
showToast("删除位置成功:" + deletePos.getMemo());
|
||||||
|
LogUtils.d(TAG, "删除位置完成:ID=" + deletePos.getPositionId() + "(服务+缓存已同步)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
PositionModel deletePos = mLocalPosCache.get(position);
|
|
||||||
if (deletePos != null && !deletePos.getPositionId().isEmpty()) {
|
|
||||||
// 步骤1:调用服务删除(确保服务数据一致性)
|
|
||||||
mMainService.removePosition(deletePos.getPositionId());
|
|
||||||
// 步骤2:删除本地缓存(确保缓存与服务同步)
|
|
||||||
synchronized (mLocalPosCache) {
|
|
||||||
mLocalPosCache.remove(position);
|
|
||||||
}
|
|
||||||
// 步骤3:通知Adapter刷新(基于缓存操作,避免空数据)
|
|
||||||
mPositionAdapter.notifyItemRemoved(position);
|
|
||||||
showToast("删除位置成功:" + deletePos.getMemo());
|
|
||||||
LogUtils.d(TAG, "删除位置完成:ID=" + deletePos.getPositionId() + "(服务+缓存已同步)");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user