package mil.nga.dice.report;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import mil.nga.dice.R;
public class NoteActivity extends AppCompatActivity {
private Report mReport;
private File notesDirectory = ReportManager.getInstance().getNotesDir();
@Override
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
setContentView(R.layout.activity_note);
Bundle bundle = getIntent().getExtras();
mReport = bundle.getParcelable("report");
String noteText = readNote();
TextView textView = (TextView)findViewById(R.id.noteTextArea);
textView.setText(noteText);
setTitle(mReport.getTitle() + " note");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
saveNote();
finish();
return true;
case R.id.save_note:
saveNote();
return true;
case R.id.cancel_note:
cancelNote();
return true;
}
return super.onOptionsItemSelected(item);
}
private void saveNote() {
// TODO Auto-generated method stub
TextView textView = (TextView)findViewById(R.id.noteTextArea);
File note = ReportManager.getInstance().noteFileForReport(mReport);
try {
note.createNewFile();
FileOutputStream fOut = new FileOutputStream(note);
fOut.write(textView.getText().toString().getBytes());
fOut.flush();
fOut.close();
Toast.makeText(getBaseContext(), R.string.note_saved, Toast.LENGTH_SHORT).show();
}
catch (IOException e) {
Toast.makeText(getBaseContext(), R.string.note_save_error, Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
finish();
}
private void cancelNote() {
finish();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_note, menu);
return true;
}
private String readNote() {
File note = ReportManager.getInstance().noteFileForReport(mReport);
if (!note.exists()) {
return "";
}
try {
BufferedReader noteReader = new BufferedReader(new InputStreamReader(new FileInputStream(note)));
String line = "";
StringBuilder stringBuilder = new StringBuilder();
while ((line = noteReader.readLine()) != null) {
stringBuilder.append(line).append("\n");
}
noteReader.close();
return stringBuilder.toString();
}
catch (Exception e) {
Toast.makeText(getBaseContext(), R.string.note_load_error, Toast.LENGTH_SHORT).show();
}
return "";
}
}