package com.hipipal.texteditor;
import static fr.xgouchet.androidlib.ui.Toaster.showToast;
import java.io.File;
import com.hipipal.texteditor.common.Constants;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import fr.xgouchet.androidlib.ui.activity.BrowsingActivity;
public class TedSaveAsActivity extends BrowsingActivity implements Constants, OnClickListener {
/**
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Setup content view
setContentView(R.layout.layout_save_as);
// buttons
findViewById(R.id.buttonCancel).setOnClickListener(this);
findViewById(R.id.buttonOk).setOnClickListener(this);
((Button) findViewById(R.id.buttonOk)).setText(R.string.ui_save);
// widgets
mFileName = (EditText) findViewById(R.id.editFileName);
// drawables
mWriteable = getResources().getDrawable(R.drawable.folder_rw);
mLocked = getResources().getDrawable(R.drawable.folder_r);
}
/**
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
if (v.getId() == R.id.buttonCancel) {
setResult(RESULT_CANCELED);
finish();
} else if (v.getId() == R.id.buttonOk) {
if (setSaveResult())
finish();
}
}
/**
* @see fr.xgouchet.androidlib.ui.activity.BrowserActivity#onFileClick(java.io.File)
*/
@Override
protected void onFileClick(File file) {
if (file.canWrite())
mFileName.setText(file.getName());
}
/**
* @see fr.xgouchet.androidlib.ui.activity.BrowserActivity#onFolderClick(java.io.File)
*/
@Override
protected boolean onFolderClick(File folder) {
return true;
}
/**
* @see fr.xgouchet.androidlib.ui.activity.BrowsingActivity#onFolderViewFilled()
*/
@Override
protected void onFolderViewFilled() {
}
/**
* Sets the result data when the user presses save
*
* @return if the result is OK (if not, it means the user must change its
* selection / input)
*/
@SuppressWarnings("deprecation")
protected boolean setSaveResult() {
Intent result;
String fileName;
if ((mCurrentFolder == null) || (!mCurrentFolder.exists())) {
showToast(this, R.string.toast_folder_doesnt_exist, true);
return false;
}
if (!mCurrentFolder.canWrite()) {
showToast(this, R.string.toast_folder_cant_write, true);
return false;
}
fileName = mFileName.getText().toString();
if (fileName.length() == 0) {
showToast(this, R.string.toast_filename_empty, true);
return false;
}
result = new Intent();
result.putExtra("path", mCurrentFolder.getAbsolutePath() + File.separator + fileName);
setResult(RESULT_OK, result);
return true;
}
/** the edit text input */
protected EditText mFileName;
/** */
protected Drawable mWriteable;
/** */
protected Drawable mLocked;
}