/* @(#)ReviewSleepFragment.java
*
*========================================================================
* Copyright 2011 by Zeo Inc. All Rights Reserved
*========================================================================
*
* Date: $Date$
* Author: Jon Willis
* Author: Brandon Edens <brandon.edens@myzeo.com>
* Version: $Revision$
*/
package com.androsz.electricsleepbeta.app;
import static com.androsz.electricsleepbeta.util.IntentUtil.shareSleep;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RatingBar;
import android.widget.TextView;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.androsz.electricsleepbeta.R;
import com.androsz.electricsleepbeta.db.SleepSession;
import com.androsz.electricsleepbeta.widget.SleepChart;
/**
* Fragment used to review a sleep record.
*
* @author Jon Willis
* @author Brandon Edens
* @version $Revision$
*/
public class ReviewSleepFragment extends AnalyticFragment {
private static final String TAG = ReviewSleepFragment.class.getSimpleName();
/** Row ID of the sleep record to review. */
public static final String KEY_SLEEP_ID = "key_sleep_id";
private SleepSession mSleepRecord;
private SleepChart mSleepChart;
private RatingBar mMorningFeel;
private TextView mSleepEfficiency;
private TextView mTotalRecordingTime;
private TextView mTimesDisrupted;
private TextView mTimeToFallAsleep;
private TextView mNotes;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View root = inflater.inflate(R.layout.fragment_review_sleep,
container, false);
mSleepChart = (SleepChart) root.findViewById(R.id.sleep_movement_chart);
mMorningFeel = (RatingBar) root.findViewById(R.id.morning_feel);
mSleepEfficiency = (TextView) root.findViewById(R.id.sleep_efficiency);
mTotalRecordingTime = (TextView) root
.findViewById(R.id.total_recording_time);
mTimesDisrupted = (TextView) root.findViewById(R.id.times_disrupted);
mTimeToFallAsleep = (TextView) root
.findViewById(R.id.time_to_fall_asleep);
mNotes = (TextView) root.findViewById(R.id.notes);
if (mSleepRecord != null) {
setSleepRecord(mSleepRecord);
}
return root;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_review_sleep, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_share_sleep_record:
shareSleep(mSleepRecord, getActivity());
return true;
}
return super.onOptionsItemSelected(item);
}
public void setSleepRecord(SleepSession sleepRecord) {
if (sleepRecord == null) {
return;
}
Log.d(TAG, "Setting sleep record.");
mSleepChart.sync(sleepRecord);
mMorningFeel.setRating(sleepRecord.getRating());
mSleepEfficiency.setText(sleepRecord.getEfficiency());
mTotalRecordingTime.setText(sleepRecord
.getTotalRecordTime(getResources()));
mTimesDisrupted.setText(sleepRecord.getTimesDisrupted());
mTimeToFallAsleep.setText(sleepRecord
.getTimeToFallAsleepText(getResources()));
mNotes.setText(sleepRecord.getNotes());
mSleepRecord = sleepRecord;
}
}