package pl.llp.aircasting.activity;
import pl.llp.aircasting.Intents;
import pl.llp.aircasting.R;
import pl.llp.aircasting.helper.MetadataHelper;
import pl.llp.aircasting.helper.SettingsHelper;
import pl.llp.aircasting.model.Session;
import pl.llp.aircasting.model.SessionManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import com.google.inject.Inject;
import roboguice.inject.InjectView;
public class SaveOrDiscardRestoredSessionActivity extends DialogActivity implements View.OnClickListener
{
@InjectView(R.id.save_button) Button saveButton;
@InjectView(R.id.discard_button) Button discardButton;
@InjectView(R.id.session_title) EditText sessionTitle;
@InjectView(R.id.session_tags) EditText sessionTags;
@InjectView(R.id.session_description) EditText sessionDescription;
@Inject SessionManager sessionManager;
@Inject SettingsHelper settingsHelper;
@Inject MetadataHelper metadataHelper;
@Inject ApplicationState state;
private long sessionId;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
sessionManager.pauseSession();
setContentView(R.layout.save_lost_session);
saveButton.setOnClickListener(this);
discardButton.setOnClickListener(this);
}
@Override
protected void onResume()
{
super.onResume();
if(!getIntent().hasExtra(Intents.SESSION_ID))
{
throw new RuntimeException("Should have arrived here with a session id");
}
sessionId = getIntent().getLongExtra(Intents.SESSION_ID, 0);
state.saving().markCurrentlySaving(sessionId);
}
@Override
public void onBackPressed()
{
sessionManager.discardSession(sessionId);
finish();
}
@Override
public void onClick(View view)
{
switch (view.getId())
{
case R.id.save_button:
{
fillSessionDetails(sessionId);
Session session = sessionManager.getSession();
if(session.isLocationless())
{
sessionManager.finishSession(sessionId);
}
else
{
Intents.contribute(this, sessionId);
}
break;
}
case R.id.discard_button:
{
sessionManager.discardSession(sessionId);
break;
}
}
finish();
}
private void fillSessionDetails(long sessionId)
{
String title = sessionTitle.getText().toString();
String tags = sessionTags.getText().toString();
String description = sessionDescription.getText().toString();
sessionManager.setTitleTagsDescription(sessionId, title, tags, description);
}
}