/**
* Copyright (c) 2012 Vinayak Solutions Private Limited
* See the file license.txt for copying permission.
*/
package com.vinsol.expensetracker.expenselisting.dialog;
import java.util.Calendar;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.vinsol.expensetracker.R;
import com.vinsol.expensetracker.entry.CameraEntry;
import com.vinsol.expensetracker.entry.FavoriteEntry;
import com.vinsol.expensetracker.entry.Text;
import com.vinsol.expensetracker.entry.Voice;
import com.vinsol.expensetracker.helpers.ConvertCursorToListString;
import com.vinsol.expensetracker.helpers.DatabaseAdapter;
import com.vinsol.expensetracker.helpers.DisplayDate;
import com.vinsol.expensetracker.models.Entry;
public class UnknownEntryDialog extends Dialog implements android.view.View.OnClickListener {
private Button deleteButton;
private Button textEntryButton;
private Button voiceEntryButton;
private Button cameraEntryButton;
private Button favoriteEntryButton;
private Button cancelButton;
private Bundle bundle;
private DatabaseAdapter mDatabaseAdapter;
private Entry mTempClickedList;
private TextView headerTextView;
private TextView locationTextView;
private Context context;
protected void onCreateDialog() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.unknown_entry_dialog);
textEntryButton = (Button) findViewById(R.id.home_text);
deleteButton = (Button) findViewById(R.id.unknown_entry_dialog_delete);
voiceEntryButton = (Button) findViewById(R.id.home_voice);
cameraEntryButton = (Button) findViewById(R.id.home_camera);
favoriteEntryButton = (Button) findViewById(R.id.home_favorite);
cancelButton = (Button) findViewById(R.id.unknown_entry_dialog_cancel);
headerTextView = (TextView) findViewById(R.id.unknown_entry_dialog_header_title);
locationTextView = (TextView) findViewById(R.id.unknown_entry_dialog_location);
bundle = new Bundle();
}
public UnknownEntryDialog(Entry toInsert,Context mContext, android.view.View.OnClickListener myClickListener) {
super(mContext);
context = mContext;
onCreateDialog();
textEntryButton.setOnClickListener(myClickListener);
deleteButton.setVisibility(View.GONE);
voiceEntryButton.setOnClickListener(myClickListener);
cameraEntryButton.setOnClickListener(myClickListener);
favoriteEntryButton.setOnClickListener(myClickListener);
cancelButton.setOnClickListener(myClickListener);
if(toInsert.location != null)
if(!toInsert.location.equals("")) {
locationTextView.setText(toInsert.location);
}
if(toInsert.timeInMillis != null) {
Calendar mCalendar = Calendar.getInstance();
mCalendar.setTimeInMillis(toInsert.timeInMillis);
headerTextView.setText(new DisplayDate(mCalendar).getDisplayDate());
}
show();
}
public UnknownEntryDialog(Context mContext,Entry _list,android.view.View.OnClickListener deleteClickListener) {
super(mContext);
context = mContext;
onCreateDialog();
textEntryButton.setOnClickListener(this);
deleteButton.setOnClickListener(deleteClickListener);
voiceEntryButton.setOnClickListener(this);
cameraEntryButton.setOnClickListener(this);
favoriteEntryButton.setOnClickListener(this);
cancelButton.setOnClickListener(this);
mDatabaseAdapter = new DatabaseAdapter(getContext());
mTempClickedList = _list;
if(mTempClickedList.location != null)
if(mTempClickedList.location != "") {
locationTextView.setText(mTempClickedList.location);
}
if(mTempClickedList.timeInMillis != null) {
Calendar mCalendar = Calendar.getInstance();
mCalendar.setTimeInMillis(mTempClickedList.timeInMillis);
headerTextView.setText(new DisplayDate(mCalendar).getDisplayDate());
}
show();
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.home_text:
Intent intentTextEntry = new Intent(getContext(), Text.class);
editDatabase(R.string.text);
bundle.putParcelable("mDisplayList", mTempClickedList);
intentTextEntry.putExtras(bundle);
getContext().startActivity(intentTextEntry);
dismiss();
break;
case R.id.unknown_entry_dialog_delete:
mDatabaseAdapter.open();
mDatabaseAdapter.deleteExpenseEntryByID(mTempClickedList.id);
mDatabaseAdapter.close();
dismiss();
break;
case R.id.home_voice:
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
Intent intentVoice = new Intent(getContext(), Voice.class);
editDatabase(R.string.voice);
bundle.putParcelable("mDisplayList", mTempClickedList);
intentVoice.putExtras(bundle);
getContext().startActivity(intentVoice);
dismiss();
} else {
Toast.makeText(getContext(), "sdcard not available", Toast.LENGTH_SHORT).show();
}
break;
case R.id.home_camera:
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
Intent intentCamera = new Intent(getContext(), CameraEntry.class);
editDatabase(R.string.camera);
bundle.putParcelable("mDisplayList", mTempClickedList);
intentCamera.putExtras(bundle);
getContext().startActivity(intentCamera);
dismiss();
} else {
Toast.makeText(getContext(), "sdcard not available", Toast.LENGTH_SHORT).show();
}
break;
case R.id.home_favorite:
if(new ConvertCursorToListString(getContext()).getFavoriteList().size() > 0) {
Intent intentFavorite = new Intent(getContext(), FavoriteEntry.class);
bundle.putParcelable("mDisplayList", mTempClickedList);
intentFavorite.putExtras(bundle);
getContext().startActivity(intentFavorite);
dismiss();
} else {
Toast.makeText(getContext(), "favorite list empty", Toast.LENGTH_LONG).show();
}
break;
case R.id.unknown_entry_dialog_cancel:
cancel();
break;
default:
break;
}
}
private void editDatabase(int type) {
Entry list = new Entry();
list.id = mTempClickedList.id;
list.type = getContext().getString(type);
list.syncBit = context.getString(R.string.syncbit_not_synced);
mDatabaseAdapter.open();
mDatabaseAdapter.editExpenseEntryById(list);
mDatabaseAdapter.close();
}
}