Skip to content

Commit

Permalink
Break note creation out into it's own module instead of inside the Ca…
Browse files Browse the repository at this point in the history
…pture module... this way we have a common place to modify and create new notes.
  • Loading branch information
matburt committed Nov 9, 2010
1 parent 9edd4d4 commit b8448e2
Show file tree
Hide file tree
Showing 2 changed files with 139 additions and 116 deletions.
122 changes: 6 additions & 116 deletions src/com/matburt/mobileorg/Capture.java
Expand Up @@ -2,7 +2,6 @@

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.content.Intent;
import android.content.SharedPreferences;
Expand All @@ -14,36 +13,22 @@
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.preference.PreferenceManager;
import java.io.OutputStreamWriter;
import java.io.BufferedWriter;
import java.io.StringWriter;
import java.io.FileWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.content.Context;

public class Capture extends Activity implements OnClickListener
{
private EditText orgEditDisplay;
private Button saveButton;
private SharedPreferences appSettings;
private MobileOrgDatabase appdb;
private boolean editMode = false;
private String id = null;
private CreateEditNote noteCreator = null;
public static final String LT = "MobileOrg";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.appSettings = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
this.appdb = new MobileOrgDatabase((Context)this);
setContentView(R.layout.simpleedittext);
this.noteCreator = new CreateEditNote(this);
this.saveButton = (Button)this.findViewById(R.id.captureSave);
this.orgEditDisplay = (EditText)this.findViewById(R.id.orgEditTxt);
this.saveButton.setOnClickListener(this);
Expand All @@ -52,62 +37,14 @@ public void onCreate(Bundle savedInstanceState) {

@Override
public void onDestroy() {
this.appdb.close();
super.onDestroy();
if (this.noteCreator != null) {
this.noteCreator.close();
}
}

public boolean onSave() {
String newNote = this.transformBuffer(this.orgEditDisplay.getText().toString());
String storageMode = this.appSettings.getString("storageMode", "");
BufferedWriter writer = new BufferedWriter(new StringWriter());

if (storageMode.equals("internal") || storageMode == null) {
FileOutputStream fs;
try {
fs = this.openFileOutput("mobileorg.org", MODE_APPEND);
writer = new BufferedWriter(new OutputStreamWriter(fs));
}
catch (java.io.FileNotFoundException e) {
Log.e(LT, "Caught FNFE trying to open mobileorg.org file");
}
catch (java.io.IOException e) {
Log.e(LT, "IO Exception initializing writer on file mobileorg.org");
}
}
else if (storageMode.equals("sdcard")) {
try {
File root = Environment.getExternalStorageDirectory();
File morgDir = new File(root, "mobileorg");
morgDir.mkdir();
if (morgDir.canWrite()){
File orgFileCard = new File(morgDir, "mobileorg.org");
FileWriter orgFWriter = new FileWriter(orgFileCard, true);
writer = new BufferedWriter(orgFWriter);
}
else {
Log.e(LT, "Write permission denied");
return false;
}
} catch (java.io.IOException e) {
Log.e(LT, "IO Exception initializing writer on sdcard file");
return false;
}
}
else {
Log.e(LT, "Unknown storage mechanism " + storageMode);
return false;
}

try {
writer.write(newNote);
this.appdb.addOrUpdateFile("mobileorg.org", "MobileOrg");
writer.flush();
writer.close();
}
catch (java.io.IOException e) {
Log.e(LT, "IO Exception trying to write file mobileorg.org");
return false;
}
this.noteCreator.writeNewNote(this.orgEditDisplay.getText().toString());
this.finish();
return true;
}
Expand All @@ -118,57 +55,10 @@ public void onClick(View v) {
}
}

public String transformBuffer(String givenText) {
if (this.editMode == false) {
return this.transformCreateBuffer(givenText);
}
else {
return this.transformEditBuffer(givenText);
}
}

public String transformEditBuffer(String givenText) {
return "";
}

// * first line of the note
// [2009-09-09 Wed 09:25]
// Rest of the note
public String transformCreateBuffer(String givenText) {
String xformed = "";
String[] bufferLines = givenText.split("\\n");
for (int idx = 0; idx < bufferLines.length; idx++) {
if (idx == 0) {
if (bufferLines[idx].length() > 0 &&
!bufferLines[idx].substring(0,1).equals("*")) {
Date date = new Date();
String DATE_FORMAT = "[yyyy-MM-dd EEE HH:mm]";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
xformed += "* " + bufferLines[idx] + "\n";
xformed += " " + sdf.format(date) + "\n";
}
else {
xformed = givenText;
break;
}
}
else {
xformed += " " + bufferLines[idx] + "\n";
}
}
return xformed + "\n\n";
}

public void populateDisplay() {
Intent txtIntent = getIntent();
String srcText = txtIntent.getStringExtra("txtValue");
this.id = txtIntent.getStringExtra("nodeId");
if (this.id == null) {
this.editMode = false;
}
else {
this.editMode = true;
}
this.orgEditDisplay.setText(srcText);
}
}
133 changes: 133 additions & 0 deletions src/com/matburt/mobileorg/CreateEditNote.java
@@ -0,0 +1,133 @@
package com.matburt.mobileorg;
import android.preference.PreferenceManager;
import android.content.Context;
import android.app.Activity;
import android.content.SharedPreferences;
import java.io.OutputStreamWriter;
import java.io.BufferedWriter;
import java.io.StringWriter;
import java.io.FileWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.util.Log;
import android.os.Environment;

public class CreateEditNote
{
private SharedPreferences appSettings;
private MobileOrgDatabase appdb;
private Activity appactivity;
public static final String LT = "MobileOrg";

CreateEditNote(Activity parentActivity) {
this.appactivity = parentActivity;
this.appSettings = PreferenceManager.getDefaultSharedPreferences(
parentActivity.getBaseContext());
this.appdb = new MobileOrgDatabase((Context)parentActivity);
}

public void close() {
this.appdb.close();
}

public void writeNewNote(String message) {
String newNote = this.transformBuffer(message);
this.writeNote(newNote);
}

public boolean writeNote(String message) {
String storageMode = this.appSettings.getString("storageMode", "");
BufferedWriter writer = new BufferedWriter(new StringWriter());

if (storageMode.equals("internal") || storageMode == null) {
FileOutputStream fs;
try {
fs = this.appactivity.openFileOutput("mobileorg.org", Context.MODE_APPEND);
writer = new BufferedWriter(new OutputStreamWriter(fs));
}
catch (java.io.FileNotFoundException e) {
Log.e(LT, "Caught FNFE trying to open mobileorg.org file");
}
catch (java.io.IOException e) {
Log.e(LT, "IO Exception initializing writer on file mobileorg.org");
}
}
else if (storageMode.equals("sdcard")) {
try {
File root = Environment.getExternalStorageDirectory();
File morgDir = new File(root, "mobileorg");
morgDir.mkdir();
if (morgDir.canWrite()){
File orgFileCard = new File(morgDir, "mobileorg.org");
FileWriter orgFWriter = new FileWriter(orgFileCard, true);
writer = new BufferedWriter(orgFWriter);
}
else {
Log.e(LT, "Write permission denied");
return false;
}
} catch (java.io.IOException e) {
Log.e(LT, "IO Exception initializing writer on sdcard file");
return false;
}
}
else {
Log.e(LT, "Unknown storage mechanism " + storageMode);
return false;
}

try {
writer.write(message);
this.appdb.addOrUpdateFile("mobileorg.org", "MobileOrg");
writer.flush();
writer.close();
}
catch (java.io.IOException e) {
Log.e(LT, "IO Exception trying to write file mobileorg.org");
return false;
}
return true;
}

public String transformBuffer(String givenText) {
return this.transformCreateBuffer(givenText);
}

public String transformEditBuffer(String givenText) {
return "";
}

// * first line of the note
// [2009-09-09 Wed 09:25]
// Rest of the note
public String transformCreateBuffer(String givenText) {
String xformed = "";
String[] bufferLines = givenText.split("\\n");
for (int idx = 0; idx < bufferLines.length; idx++) {
if (idx == 0) {
if (bufferLines[idx].length() > 0 &&
!bufferLines[idx].substring(0,1).equals("*")) {
Date date = new Date();
String DATE_FORMAT = "[yyyy-MM-dd EEE HH:mm]";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
xformed += "* " + bufferLines[idx] + "\n";
xformed += " " + sdf.format(date) + "\n";
}
else {
xformed = givenText;
break;
}
}
else {
xformed += " " + bufferLines[idx] + "\n";
}
}
return xformed + "\n\n";
}
}

0 comments on commit b8448e2

Please sign in to comment.