package com.example.myapplication.model; import java.util.ArrayList; import java.util.List; // SharedDataManager.java public class SharedDataManager { private static SharedDataManager instance; private String imagePath ="-1"; private String token="-1"; private String user="-1"; private String audioPath="-1"; private String projectId="-1"; private String unit="-1"; private int blade=-1; private String partid="-1"; private String chooseImageSource="-1"; private String unitName="-1"; private boolean isRecording=false; private boolean isUploading=false; // 新增上传状态字段 private final List listeners = new ArrayList<>(); public interface DataChangeListener { void onImagePathChanged(String newPath); void onTokenChanged(String newToken); void onUserChanged(String newUser); void onAudioPathChanged(String newAudioPath); void onProjectIdChanged(String newProjectId); void onUnitChanged(String newUnit); void onBladeChanged(int newBlade); void onPartidChanged(String newPartid); void onChooseImageSourceChanged(String newChooseImageSource); void onUnitNameChanged(String newUnitName); void onIsRecordingChanged(boolean newisRecording); void onUploadingStatusChanged(boolean isUploading); // 新增上传状态变化回调 } private SharedDataManager() {} public static synchronized SharedDataManager getInstance() { if (instance == null) { instance = new SharedDataManager(); } return instance; } public boolean getIsRecording(){return isRecording;} public String getImagePath() {return imagePath;} public String getUser() { return user; } public String getAudioPath() { return audioPath; } public String getProjectId() { return projectId; } public String getUnit() { return unit; } public int getBlade() { return blade; } public String getPartid() { return partid; } public String getChooseImageSource() { return chooseImageSource; } public String getUnitName() { return unitName; } public String getToken() {return token;} public boolean getisUploading() { return isUploading; } public void setUploading(boolean uploading) { if (this.isUploading != uploading) { this.isUploading = uploading; notifyUploadingStatusChanged(uploading); } } public void setImagePath(String imagePath) { this.imagePath = imagePath; notifyImagePathChanged(imagePath); } public void setUser(String user) { this.user = user; notifyUserChanged(user); } public void setAudioPath(String audioPath) { this.audioPath = audioPath; notifyAudioPathChanged(audioPath); } public void setProjectId(String projectId) { this.projectId = projectId; notifyProjectIdChanged(projectId); } public void setUnit(String unit) { this.unit = unit; notifyUnitChanged(unit); } public void setBlade(int blade) { this.blade = blade; notifyBladeChanged(blade); } public void setPartid(String partid) { this.partid = partid; notifyPartidChanged(partid); } public void setChooseImageSource(String chooseImageSource) { this.chooseImageSource = chooseImageSource; notifyChooseImageSourceChanged(chooseImageSource); } public void setUnitName(String unitName) { this.unitName = unitName; notifyUnitNameChanged(unitName); } public void setToken(String token) { this.token = token; notifyTokenChanged(token); } public void setIsRecording(boolean isRecording) { this.isRecording =isRecording ; notifyIsRecordingChanged(isRecording); } public void addListener(DataChangeListener listener) { listeners.add(listener); } public void removeListener(DataChangeListener listener) { listeners.remove(listener); } private void notifyImagePathChanged(String newPath) { for (DataChangeListener listener : listeners) { listener.onImagePathChanged(newPath); } } private void notifyTokenChanged(String newToken) { for (DataChangeListener listener : listeners) { listener.onTokenChanged(newToken); } } private void notifyUserChanged(String newUser) { for (DataChangeListener listener : listeners) { listener.onUserChanged(newUser); } } private void notifyAudioPathChanged(String newAudioPath) { for (DataChangeListener listener : listeners) { listener.onAudioPathChanged(newAudioPath); } } private void notifyProjectIdChanged(String newProjectId) { for (DataChangeListener listener : listeners) { listener.onProjectIdChanged(newProjectId); } } private void notifyUnitChanged(String newUnit) { for (DataChangeListener listener : listeners) { listener.onUnitChanged(newUnit); } } private void notifyBladeChanged(int newBlade) { for (DataChangeListener listener : listeners) { listener.onBladeChanged(newBlade); } } private void notifyPartidChanged(String newPartid) { for (DataChangeListener listener : listeners) { listener.onPartidChanged(newPartid); } } private void notifyChooseImageSourceChanged(String newChooseImageSource) { for (DataChangeListener listener : listeners) { listener.onChooseImageSourceChanged(newChooseImageSource); } } private void notifyUnitNameChanged(String newUnitName) { for (DataChangeListener listener : listeners) { listener.onUnitNameChanged(newUnitName); } } private void notifyIsRecordingChanged(boolean newIsRecording) { for (DataChangeListener listener : listeners) { listener.onIsRecordingChanged(newIsRecording); } } private void notifyUploadingStatusChanged(boolean isUploading) { for (DataChangeListener listener : listeners) { listener.onUploadingStatusChanged(isUploading); } } }