package it.angrydroids.epub3reader; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import android.app.DialogFragment; import android.content.Context; public class Notes extends DialogFragment implements View.OnClickListener { EditText editor; Button bt_notes, add_notes,discard_notes; String fileName = FileChooser.book_name + "notes.txt"; String combined,temp_discard; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.notes, null); getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); try { File mediaStorageDir; // folder name mediaStorageDir = new File( Environment.getExternalStorageDirectory(), "/Notes/"); if (!mediaStorageDir.exists()) { if (!mediaStorageDir.mkdirs()) { Log.d("App", "failed to create directory"); } } if (!fileExists(getActivity().getApplicationContext(), fileName)) { // OutputStreamWriter out = new // OutputStreamWriter(getActivity().openFileOutput(Environment.getExternalStorageDirectory()+ // "/Notes/"+ fileName, 0)); FileOutputStream stream = new FileOutputStream(new File( Environment.getExternalStorageDirectory() + "/Notes/" + fileName)); } File sdcard = Environment.getExternalStorageDirectory(); File file = new File(sdcard, "/Notes/" + fileName); StringBuilder text = new StringBuilder(); BufferedReader br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { text.append(line); text.append('\n'); temp_discard=text.toString(); } br.close(); String full_note = text.toString(); editor = (EditText) view.findViewById(R.id.notes_edittxt); editor.setText(full_note); } catch (Exception e) { e.printStackTrace(); } bt_notes = (Button) view.findViewById(R.id.notes_done); add_notes = (Button) view.findViewById(R.id.notes_add_to); discard_notes = (Button) view.findViewById(R.id.notes_discard); discard_notes.bringToFront(); bt_notes.setOnClickListener(this); add_notes.setOnClickListener(this); discard_notes.setOnClickListener(this); setCancelable(false); return view; } public void writeFile(String fileName, EditText v) throws IOException { FileOutputStream stream = new FileOutputStream(new File( Environment.getExternalStorageDirectory() + "/Notes/" + fileName)); try { stream.write(v.getText().toString().getBytes()); } catch (Exception e) { } finally { stream.close(); } } @Override public void onClick(View v) { // TODO Auto-generated method stub switch(v.getId()) { case R.id.notes_add_to: combined=editor.getText().toString()+"\n"+BookView.selectedText; editor.setText(combined); break; case R.id.notes_discard: editor.setText(temp_discard); dismiss(); break; case R.id.notes_done: dismiss(); try { writeFile(fileName, editor); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; } } public boolean fileExists(Context context, String filename) { File file = new File(Environment.getExternalStorageDirectory(), "/Notes/" + filename); if (file == null || !file.exists()) { return false; } return true; } }