package org.geogebra.cloud;
import java.util.ArrayList;
import java.util.HashMap;
import org.geogebra.common.main.App;
import org.geogebra.common.main.MaterialsManager;
import org.geogebra.common.move.ggtapi.models.JSONParserGGT;
import org.geogebra.common.move.ggtapi.models.Material;
import org.geogebra.common.move.ggtapi.models.Material.Provider;
import org.geogebra.common.move.ggtapi.models.SyncEvent;
public class TestMaterialsManager extends MaterialsManager {
private HashMap<String, String> stockStore = new HashMap<String, String>();
private App app;
public TestMaterialsManager(App app) {
this.app = app;
}
public void openMaterial(Material material) {
// TODO Auto-generated method stub
}
public void delete(Material material, boolean permanent,
Runnable onSuccess) {
// TODO Auto-generated method stub
}
public void uploadUsersMaterials(ArrayList<SyncEvent> events) {
System.out.println("" + stockStore.size());
if (this.stockStore == null || this.stockStore.size() <= 0) {
return;
}
ArrayList<String> keys = new ArrayList<String>();
for (String key : stockStore.keySet()) {
keys.add(key);
}
setNotSyncedFileCount(keys.size(), events);
for (int i = 0; i < keys.size(); i++) {
final String key = keys.get(i);
System.out.println("" + key);
if (key.startsWith(FILE_PREFIX)) {
final Material mat = JSONParserGGT
.parseMaterial(this.stockStore.get(key));
if (getApp().getLoginOperation().owns(mat)) {
sync(mat, events);
} else {
ignoreNotSyncedFile(events);
}
} else {
ignoreNotSyncedFile(events);
}
}
}
public void getUsersMaterials() {
// TODO Auto-generated method stub
}
public void search(String query) {
// TODO Auto-generated method stub
}
@Override
public void rename(String newTitle, Material mat) {
rename(newTitle, mat, null);
}
public void rename(String newTitle, Material mat, Runnable callback) {
// TODO Auto-generated method stub
}
public void setFileProvider(Provider google) {
// TODO Auto-generated method stub
}
public Provider getFileProvider() {
// TODO Auto-generated method stub
return null;
}
public void autoSave(int counter) {
// TODO Auto-generated method stub
}
public String getAutosaveJSON() {
// TODO Auto-generated method stub
return null;
}
public void restoreAutoSavedFile(String json) {
// TODO Auto-generated method stub
}
public void deleteAutoSavedFile() {
// TODO Auto-generated method stub
}
public boolean save(App app) {
// TODO Auto-generated method stub
return false;
}
public void saveLoggedOut(App app) {
// TODO Auto-generated method stub
}
public boolean shouldKeep(int i) {
// TODO Auto-generated method stub
return false;
}
public void export(App app) {
// TODO Auto-generated method stub
}
public void exportImage(String url, String string, String extension) {
// TODO Auto-generated method stub
}
public boolean hasBase64(Material material) {
// TODO Auto-generated method stub
return false;
}
public void nativeShare(String s, String string) {
// TODO Auto-generated method stub
}
public void showExportAsPictureDialog(String url, String filename,
App app) {
// TODO Auto-generated method stub
}
public void refreshAutosaveTimestamp() {
// TODO Auto-generated method stub
}
@Override
protected void updateFile(String title, long modified, Material material) {
// TODO Auto-generated method stub
}
@Override
protected void showTooltip(Material mat) {
// TODO Auto-generated method stub
}
@Override
protected App getApp() {
return app;
}
@Override
protected void refreshMaterial(Material newMat) {
// TODO Auto-generated method stub
}
@Override
protected void setTubeID(String localKey, Material newMat) {
// TODO Auto-generated method stub
}
protected void insertFile(Material material) {
String key = MaterialsManager.createKeyString(this.createID(),
material.getTitle());
this.stockStore.put(key, material.toJson().toString());
}
int createID() {
int nextFreeID = 1;
for (String key : stockStore.keySet()) {
if (key.startsWith(MaterialsManager.FILE_PREFIX)) {
int fileID = MaterialsManager.getIDFromKey(key);
if (fileID >= nextFreeID) {
nextFreeID = MaterialsManager.getIDFromKey(key) + 1;
}
}
}
return nextFreeID;
}
public void open(String url, String name, String features){
// TODO: implement this?
}
public void open(String url){
// TODO: implement this?
}
}