AndroidApp/SharedDataManager.java

200 lines
6.4 KiB
Java

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<DataChangeListener> 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);
}
}
}