/*
* Copyright (C) 2009 Virgil Dobjanschi, Jeff Sharkey, Filip Maelbrancke
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package no.java.schedule.activities.fullscreen;
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.TextView;
import no.java.schedule.R;
import no.java.schedule.activities.adapters.StarredSessionListener;
import no.java.schedule.activities.adapters.beans.Session;
import no.java.schedule.provider.SessionsContract.BlocksColumns;
import no.java.schedule.provider.SessionsContract.SessionsColumns;
import no.java.schedule.provider.SessionsContract.TracksColumns;
import no.java.schedule.util.AppUtil;
import no.java.schedule.util.StringUtils;
/**
* Session details activity
*/
public class SessionDetailsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.session_details_view);
// Set the title
((TextView)findViewById(R.id.title_text)).setText(R.string.session_details_title);
Uri uri = getIntent().getData();
Cursor cursor = getContentResolver().query( uri, null, null, null, null);
if (cursor != null) {
if (cursor.moveToFirst()) { //TODO refactor this into buildAll - its the same code
int sti = cursor.getColumnIndexOrThrow(SessionsColumns.TITLE);
int spni = cursor.getColumnIndexOrThrow(SessionsColumns.SPEAKER_NAMES);
int ri = cursor.getColumnIndexOrThrow(SessionsColumns.ROOM);
int tri = cursor.getColumnIndexOrThrow(TracksColumns.TRACK);
int ctri = cursor.getColumnIndexOrThrow(TracksColumns.COLOR);
int ai = cursor.getColumnIndexOrThrow(SessionsColumns.ABSTRACT);
int ati = cursor.getColumnIndexOrThrow(SessionsColumns.STARRED);
int btsi = cursor.getColumnIndexOrThrow(BlocksColumns.TIME_START);
int btei = cursor.getColumnIndexOrThrow(BlocksColumns.TIME_END);
int mi = cursor.getColumnIndexOrThrow(SessionsColumns.WEB_LINK_ALT);
int typeIndex = cursor.getColumnIndexOrThrow(SessionsColumns.TYPE);
((TextView)findViewById(R.id.session_abstract)).setText(Html.fromHtml(cursor.getString(ai)));
final Session session = new Session(this,
Integer.parseInt(uri.getLastPathSegment()),
cursor.getLong(btsi), cursor.getLong(btei),
cursor.getString(sti), cursor.getString(spni), cursor.getString(ri), cursor
.getString(tri), cursor.getInt(ctri),
cursor.getInt(ati) == 1,cursor.getString(typeIndex));
((TextView)findViewById(R.id.session_title)).setText(session.getTitle());
CompoundButton sessionStar = (CompoundButton)findViewById(R.id.session_star);
sessionStar.setChecked(session.isStarred());
sessionStar.setTag(session);
sessionStar.setOnClickListener(new StarredSessionListener(this));
((TextView)findViewById(R.id.session_speakers)).setText(session.getSpeakers());
TextView sessionTrack = ((TextView)findViewById(R.id.session_track));
sessionTrack.setText(session.getTrack());
sessionTrack.setTextColor( session.getColor());
String startClause = StringUtils.getTimeAsString( this, StringUtils.DAY_HOUR_TIME, session.getStartTime());
String endClause = StringUtils.getTimeAsString( this, StringUtils.HOUR_MIN_TIME, session.getEndTime());
String time = getString(R.string.block_time, startClause, endClause);
((TextView)findViewById(R.id.session_time)).setText( time);
Button roomBtn = ((Button)findViewById(R.id.session_room));
roomBtn.setText(session.getRoom());
roomBtn.setOnClickListener(new View.OnClickListener() {
//TODO Create room map for Oslo Spektrum
public void onClick(View v) {
// room 1 and 2 are on the floor level, the others on the first level
String roomNumber = session.getRoom();
if ((roomNumber.equalsIgnoreCase("room 1")) || (roomNumber.equalsIgnoreCase("room 2"))) {
AppUtil.showLevel(SessionDetailsActivity.this, 1);
} else {
AppUtil.showLevel(SessionDetailsActivity.this, 2);
}
}
});
if( cursor.getString( mi) != null)
{
((TextView)findViewById(R.id.session_moderation)).setText( getString( R.string.session_details_moderation, cursor.getString( mi)));
}
else
{
findViewById(R.id.session_moderation_layout).setVisibility(View.GONE);
}
cursor.close();
} else {
cursor.close();
finish();
return;
}
} else {
finish();
return;
}
}
}