/**
AirCasting - Share your Air!
Copyright (C) 2011-2012 HabitatMap, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
You can contact the authors by email at <info@habitatmap.org>
*/
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 SaveSessionActivity 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.session_details);
saveButton.setOnClickListener(this);
discardButton.setOnClickListener(this);
if (settingsHelper.isContributingToCrowdMap()) {
discardButton.setVisibility(View.GONE);
}
}
@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.continueSession();
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 if (settingsHelper.isContributingToCrowdMap()) {
sessionManager.setContribute(sessionId, true);
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);
}
}