package com.ecollege.android; import roboguice.inject.InjectExtra; import android.os.Bundle; import android.text.Html; import com.ecollege.android.view.helpers.ResponseCountViewHelper; import com.ecollege.api.model.DiscussionTopic; import com.ecollege.api.model.UserDiscussionTopic; import com.ecollege.api.services.discussions.FetchDiscussionTopicById; public class UserTopicActivity extends UserDiscussionActivity { public static final int VIEW_TOPIC_REQUEST = 0; public static final String TOPIC_ID_EXTRA = "TOPIC_ID_EXTRA"; public static final String USER_TOPIC_EXTRA = "USER_TOPIC_EXTRA"; @InjectExtra(value=USER_TOPIC_EXTRA,optional=true) protected UserDiscussionTopic userTopic; @InjectExtra(value=TOPIC_ID_EXTRA,optional=true) protected Long topicId; @Override protected UserDiscussionTopic getUserTopic() { return userTopic; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.discussion); setupView(); if (userTopic == null) { lastSavedInstanceState = savedInstanceState; buildService(new FetchDiscussionTopicById(getApp().getCurrentUser().getId(), topicId)).execute(); } else { populateView(savedInstanceState); } } public void onServiceCallSuccess(FetchDiscussionTopicById service) { userTopic = service.getResult(); populateView(lastSavedInstanceState); } protected void populateView(Bundle savedInstanceState) { DiscussionTopic topic = userTopic.getTopic(); responseCount = userTopic.getChildResponseCounts(); styledDescriptionHtml = Html.fromHtml(topic.getDescription()); headerViewHolder.parentTitleText.setText(Html.fromHtml(topic.getTitle())); String htmlSafeTitle = Html.fromHtml(topic.getTitle()).toString(); headerViewHolder.userTopicTitleText.setText(htmlSafeTitle); ResponseCountViewHelper responseCountViewHelper = new ResponseCountViewHelper( UserTopicActivity.this, headerViewHolder.topicIcon, headerViewHolder.unreadResponseCountText, headerViewHolder.totalResponseCountText, headerViewHolder.userResponseCountText ); responseCountViewHelper.setResponseCount(responseCount); refreshDescriptionView(); fetchResponses(false); restorePostIfSaved(savedInstanceState); } }