package net.cavdar.android.droidtranslate.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.EditText;
import net.cavdar.android.droidtranslate.R;
import net.cavdar.android.droidtranslate.domain.Languages;
import net.cavdar.android.droidtranslate.helper.FileUtil;
import net.cavdar.android.droidtranslate.translate.TranslateHandler;
import net.cavdar.android.droidtranslate.translate.TranslateHelper;
import net.cavdar.android.droidtranslate.translate.TranslateTask;
/**
* User: accavdar
* Date: 19/12/13
*/
public class MainActivity extends Activity implements TranslateHandler {
private static final String TAG = MainActivity.class.getSimpleName();
private final String PHOTO_TAKEN = "photo_taken";
protected Button button;
protected EditText ocred;
protected EditText translated;
protected boolean isPhotoTaken = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ocred = (EditText) findViewById(R.id.ocred);
translated = (EditText) findViewById(R.id.translated);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putBoolean(PHOTO_TAKEN, isPhotoTaken);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
Log.i(TAG, "onRestoreInstanceState()");
if (savedInstanceState.getBoolean(PHOTO_TAKEN)) {
onPhotoTaken();
}
}
@Override
public void handleTranslation(String translatedText) {
translated.setText(translatedText);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
protected void startCameraActivity() {
final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, FileUtil.getOutputFileUri());
startActivityForResult(intent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, "resultCode: " + resultCode);
if (resultCode == -1) {
onPhotoTaken();
} else {
Log.v(TAG, "User cancelled");
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
startActivity(new Intent(this, SettingsActivity.class));
return true;
case R.id.action_photo:
startCameraActivity();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
protected void onPhotoTaken() {
isPhotoTaken = true;
String text = FileUtil.processBitmap(FileUtil.createBitmap());
if (text.length() != 0) {
ocred.setText(text);
String url = TranslateHelper.createUrl(Languages.EN, Languages.TR, text);
new TranslateTask(this, this).execute(url);
} else {
ocred.setText("Error: Text recognition failed!");
translated.setText("Hata: Karakter tanıması başarısız!");
}
}
}