main class non Bms lib dependent;
Summary
class fileOutput {
public PApplet applet;
public FileWriter output;
float x, y, w, h;
public boolean save, onMouseUp, mdown, debug, append = true, appendFile, match,
append2, overWrite = true, overWriteOnce = true, writeOnce, writeFile, click,
getPermission = true, fileExists, reWrite;
public int counter=-1, counter2;
public File file, file2, file3;
public File[] SDcards ;
public String location, filePath, folderPath = "";
String text = "oioijsofoivnsoindv", absolutePath, ext, fileName, fileContent = "";
String androidDialogueTitle = "Would you like to overWrite",
dialogueB1Title = "",dialogueB2Title = "",dialogueBody;
Permission p;
Activity activity;
Context context;
TextView msg;
int msgId;
fileOutput() {
};
fileOutput(boolean a, PApplet applet) {
this.applet = applet;
p = new Permission(applet, "WRITE_EXTERNAL_STORAGE");
overWrite = true;
appendFile = true;
};
fileOutput(PApplet app) {
applet = app;
p = new Permission(applet, "WRITE_EXTERNAL_STORAGE");
//init();
};
//currently unused
fileOutput(String location, PApplet applet) {
this.applet = applet;
p = new Permission(applet, "WRITE_EXTERNAL_STORAGE");
setLocation(location);
init();
};
fileOutput(PApplet applet, String location) {
this.applet = applet;
p = new Permission(applet, "WRITE_EXTERNAL_STORAGE");
setLocation(location);
init();
};
void getAndroidInfo() {
activity = applet.getActivity();
context = activity.getApplicationContext();
absolutePath = new String(Environment.getExternalStorageDirectory().getAbsolutePath());
};
void init() {
x = 0;
y = 0;
w = applet.width;
h = applet.height;
String s1 = "Would you like to overWrite "+fileName+"."+ext+"?";
float dboxWidth = 120;
float tSize = 20;
applet.textSize(tSize);
float dw = applet.textWidth(s1)+100;
float dboxHeight = 150;
float dx = applet.width/2-dw/2;
float dy = applet.height/2-50/2;
};
void loadStrings() {
loadFile(context);
};
String loadFile(Context context) {
FileInputStream fis = null;
if (writeFile) {
try {
if (!reWrite)fis = new FileInputStream (new File(file2.getAbsolutePath()));
else fis = new FileInputStream (new File(file3.getAbsolutePath()));
InputStreamReader isr = new InputStreamReader(fis);
// READ STRING OF UNKNOWN LENGTH
StringBuilder sb = new StringBuilder();
char[] inputBuffer = new char[2048];
int l;
// FILL BUFFER WITH DATA
while ((l = isr.read(inputBuffer)) != -1) {
sb.append(inputBuffer, 0, l);
println("write data", inputBuffer, 0, l);
}
// CONVERT BYTES TO STRING
fileContent = sb.toString();
fis.close();
}
catch (Exception e) {
println("cannot fetch file", e);
}
finally {
if (fis != null) {
fis = null;
}
}
}
return fileContent;
};
void open() {
};
void close() {
try {
output.flush();
output.close();
}
catch(IOException e) {
}
};
void write(String s) {
if (!overWrite)checkLocation();
try {
output = new FileWriter(file2, append);
}
catch(IOException e) {
}
printWrite(s);
};
void writeLn(String s) {
if (!overWrite)checkLocation();
try {
output = new FileWriter(file2, append);
}
catch(IOException e) {
}
printWriteLn(s);
};
void write(String []s) {
if (!overWrite)checkLocation();
try {
output = new FileWriter(file2, append);
}
catch(IOException e) {
}
printWrite(s);
};
void writeLn(String []s) {
if (!overWrite)checkLocation();
try {
output = new FileWriter(file2, append);
}
catch(IOException e) {
}
printWriteLn(s);
};
void printWrite(String s) {
if (!overWrite)checkLocation();
try {
output.append(s);
}
catch(IOException e) {
}
};
void printWriteLn(String s) {
if (!overWrite)checkLocation();
try {
output.append(s);
output.append("\n");
}
catch(IOException e) {
}
};
void printWrite(String []s) {
if (!overWrite)checkLocation();
try {
for (int i=0; i<s.length; i++) {
output.append(s[i]);
}
}
catch(IOException e) {
}
};
void printWriteLn(String []s) {
if (!overWrite)checkLocation();
try {
for (int i=0; i<s.length; i++) {
output.append(s[i]);
output.append("\n");
}
}
catch(IOException e) {
}
};
void checkLocation() {
boolean k = false;
String s1 = "Would you like to overWrite "+fileName+counter+"."+ext+"?";
try {
//
file = new File(absolutePath, folderPath);
if (!file.exists()&&counter==-1) {
file.mkdirs();
file2 = new File(file, "/"+fileName+"."+ext);
androidDialogueTitle = file.getAbsolutePath();
PApplet.println("checking file1", file2);
if (file2.exists()) {
counter ++;
PApplet.println("File Exists");
//dbox.main.title.label = s1;
}
} else if (counter==-1) {
fileExists = true;
counter = 0;
k = true;
} else k = true;
if (overWrite&&writeOnce) {
k=false;
} else if (overWrite&&!writeOnce&&writeFile) {
writeOnce = true;
k = true;
}
boolean k1 = false;
if (writeFile)
while (k&&counter<100&&!k1) {
s1 = fileName+counter+"."+ext+"?";
try {
file2 = new File(absolutePath+"/"+folderPath+"/"+fileName+counter+"."+ext);
file3 = new File(absolutePath+"/"+folderPath+"/"+fileName+(counter)+"."+ext);
androidDialogueTitle = file3.getAbsolutePath();
if (file2.exists()) {
counter++;
} else {
PApplet.println("checking file2", file2);
//output = new FileWriter(file2, append);
k = false;
k1 = true;
break;
}
}
catch (Exception e) {
PApplet.println("Error while saving file: " + e);
}
}
if (k1||!writeFile) {
//PApplet.println("file",file);
//PApplet.println("Fname",folderName);
//PApplet.println("fileName",fileName);
//PApplet.println("counter",counter);
//PApplet.println("ext",ext);
if (file2==null&&counter<0)file2 = new File(file+"/"+fileName+"."+ext);
else if (file2==null)file2 = new File(file+"/"+fileName+"."+ext);
if (output==null) {
//img.save(file+"/"+fileName+counter+"."+ext);
if (writeFile)output = new FileWriter(file2, append);
PApplet.println("File saved successfully.");
//use write or append
}
}
if (reWrite) {
file2 = new File(file+"/"+fileName+counter+"."+ext);
output = new FileWriter(file2, append);
}
println("write file", folderPath, fileName, counter, ext);
if (reWrite)overWrite = true;
}
catch (IOException e) {
e.printStackTrace();
}
};
void listen() {
//if(writeFile&&dbox.main.getButton(0).click)checkLocation();
};
void setLocation(String s) {
if (getPermission)getAndroidInfo();
location = s;
folderPath = s.substring(0, s.lastIndexOf("/"));
fileName = s.replace(folderPath+"/", "");
getExt(fileName);
PApplet.println("Fname", folderPath);
PApplet.println("fileName", fileName);
PApplet.println("counter", counter);
PApplet.println("ext", ext);
checkLocation();
init();
}
void getExt(String location) {
int count = 0;
fileName = location.substring(0, location.indexOf("."));
ext = location.replace(fileName, "");
ext = ext.replace(".", "");
ext = ext.replace(fileName, "");
};
void dialogBox() {
msg = new TextView(activity);
msg.setBackgroundColor(Color.BLUE);
msg.setTextSize(32);
msg.setText(dialogueBody);
msg.setGravity(Gravity.CENTER_HORIZONTAL);
msg.setTextColor(Color.WHITE);
activity.runOnUiThread(new Runnable() {
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setView(msg);
androidDialogueTitle += " "+fileName+"."+ext+"?";
builder.setTitle(androidDialogueTitle);
builder.setPositiveButton(dialogueB1Title,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
writeFile = true;
overWrite = false;
reWrite = true;
}
}
);
builder.setNegativeButton(dialogueB2Title,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
writeFile = true;
overWrite = true;
//act.finish();
}
}
)
.show();
}
}
);
};
void setAndroidDialogue(String s1,String s2){
dialogueB1Title = s1;
dialogueB2Title = s2;
};
void setAndroidDialogue(String s1,String s2,String s3){
androidDialogueTitle = s1;
dialogueB1Title = s2;
dialogueB2Title = s3;
};
void setAndroidDialogueTitle(String s1){
androidDialogueTitle = s1;
};
void setDialogueColor(){
};
public boolean click() {
boolean k = false;
if (pos()&&applet.mousePressed&&!click) {
click = true;
k = false;
} else if (click&&!applet.mousePressed) {
k = true;
click = false;
}
return k;
};
public boolean pos(PVector mouse) {
return mouse.x>x&&mouse.x<x+w&&mouse.y>y&&mouse.y<y+h;
};
public boolean pos() {
return applet.mouseX>x&&applet.mouseX<x+w&&applet.mouseY>y&&applet.mouseY<y+h;
};
};
sketch file
Summary
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import android.app.Activity;
import android.content.Context;
import android.os.Environment;
import android.content.DialogInterface;
import android.graphics.Color;
import android.widget.TextView;
import android.view.Gravity;
import processing.core.PApplet;
import android.app.Activity;
import android.app.AlertDialog;
fileOutput f;
String s2 = "oifoifnowibf";
void settings() {
size(600, 600, P2D);
};
public void setup() {
f = new fileOutput(this);
f.setLocation("notes/test.txt");
f.setAndroidDialogue("No","Yessss");
};
public void draw() {
background(255);
if (f.fileContent!=null) {
fill(0);
text(f.counter, 20, 10);
text(f.fileContent, 20, 20);
} else {
fill(0);
text("no file", 20, 20);
}
};
void mousePressed() {
if (f.writeFile) {
f.writeLn(s2+hour()+":"+minute()+":"+second());
f.close();
f.loadStrings();
}
if(!f.writeFile)f.dialogBox();
};
Permission
Summary
public class Permission{
PApplet parent;
String p;
public Permission(PApplet pParent,String permissionName) {
p = permissionName;
parent = pParent;
parent.requestPermission("android.permission."+permissionName, "onPermissionResult", this);
println(permissionName);
};
public void onPermissionResult(boolean granted) {
if (!granted) {
PApplet.println("User did not grant",p," permission.",p,"is disabled.");
}
};
};