package com.realtrackandroid.views.activities;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import com.actionbarsherlock.view.MenuItem;
import com.realtrackandroid.R;
import com.realtrackandroid.backend.activities.ActivitiesDAO;
import com.realtrackandroid.models.activities.Activities;
import com.realtrackandroid.reminderalarms.NotificationService;
import com.realtrackandroid.views.help.FrameworkInfoDialog;
import com.realtrackandroid.views.help.GlossaryDialog;
import com.realtrackandroid.views.help.HelpDialog;
/*
* Presents an activity that lets you edit an EXISTING activities
* Reuses most of the code as well as the layout of AddActivitiesActivity
* Pressing the back key will exit the activity WITHOUT modding the activities
*/
public class EditActivitiesActivity extends AddActivitiesActivity {
private int id;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
id = getIntent().getExtras().getInt("activitiesid");
ActivitiesDAO aDao = new ActivitiesDAO(getApplicationContext());
a = aDao.getActivityWithId(id);
projectid = a.getProjectid();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// provide a back button on the actionbar
finish();
break;
case R.id.action_help:
HelpDialog helpDialog = new HelpDialog();
helpDialog.setStyle(DialogFragment.STYLE_NO_TITLE, 0);
helpDialog.show(getSupportFragmentManager(), "helpdialog");
break;
case R.id.action_framework:
FrameworkInfoDialog frameworkInfoDialog = new FrameworkInfoDialog();
frameworkInfoDialog.setStyle(DialogFragment.STYLE_NO_TITLE, 0);
frameworkInfoDialog.show(getSupportFragmentManager(), "frameworkinfodialog");
break;
case R.id.action_glossary:
GlossaryDialog glossaryDialog = new GlossaryDialog();
glossaryDialog.setStyle(DialogFragment.STYLE_NO_TITLE, 0);
glossaryDialog.show(getSupportFragmentManager(), "glossarydialog");
break;
case R.id.action_save:
updateActivity();
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
private void updateActivity() {
a = new Activities();
a.setProjectid(projectid);
a.setId(id);
if (!requiredFragment.setFields(a))
return;
optionalFragment.setFields(a);
ActivitiesDAO aDao = new ActivitiesDAO(getApplicationContext());
aDao.updateActivities(a);
remindersFragment.setFields(a, id);
finish();
}
// remove all the alarms associated with a reminder
public static void deleteAlarmsForReminder(Context context, int reminderid) {
Intent notifIntent = new Intent(context, NotificationService.class);
notifIntent.putExtra("reminderid", reminderid); // not necessary for alarmManager.cancel to
// match pending intents but leaving it here
// anyway
notifIntent.setAction(Intent.ACTION_VIEW); // unpredictable android crap again. without an
// action, the extras will NOT be sent!!
PendingIntent pendingIntent = PendingIntent.getService(context, reminderid, notifIntent,
PendingIntent.FLAG_UPDATE_CURRENT); // remember to distinguish between pendingintents
// using Reminders.id as the request code
pendingIntent.cancel();
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
}
@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(R.anim.animation_slideinleft, R.anim.animation_slideoutright);
finish();
}
}