/**
* Copyright (C) 2013 HalZhang
*/
package com.halzhang.android.apps.startupnews.ui;
import com.halzhang.android.apps.startupnews.Constants.IntentAction;
import com.halzhang.android.apps.startupnews.MyApplication;
import com.halzhang.android.apps.startupnews.R;
import com.halzhang.android.apps.startupnews.SnApiComponent;
import com.halzhang.android.apps.startupnews.presenter.DaggerDiscussComponent;
import com.halzhang.android.apps.startupnews.presenter.DiscussPresenter;
import com.halzhang.android.apps.startupnews.presenter.DiscussPresenterModule;
import com.halzhang.android.apps.startupnews.ui.tablet.DiscussFragment;
import com.halzhang.android.startupnews.data.entity.SNNew;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import javax.inject.Inject;
/**
* StartupNews
* <p>
* 评论界面
* </p>
*
* @author <a href="http://weibo.com/halzhang">Hal</a>
* @version Mar 17, 2013
*/
public class DiscussActivity extends BaseFragmentActivity {
//private static final String LOG_TAG = DiscussActivity.class.getSimpleName();
public static final String ARG_DISCUSS_URL = "discuss_url";//required!
public static final String ARG_SNNEW = "snnew";//Optional
public static void start(Context context, String discussUrl, SNNew snNew) {
Intent starter = new Intent(context, DiscussActivity.class);
starter.putExtra(ARG_DISCUSS_URL, discussUrl);
starter.putExtra(ARG_SNNEW, snNew);
context.startActivity(starter);
}
@Inject
DiscussPresenter mDiscussPresenter;
private DiscussFragment mDiscussFragment;
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(android.content.Context context, Intent intent) {
final String action = intent.getAction();
if (IntentAction.ACTION_LOGIN.equals(action)) {
String user = intent.getStringExtra(IntentAction.EXTRA_LOGIN_USER);
if (!TextUtils.isEmpty(user)) {
mDiscussFragment.loadData();
}
}
}
;
};
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_discuss);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
SNNew snNew = (SNNew) getIntent().getSerializableExtra(ARG_SNNEW);
String mDiscussURL = getIntent().getStringExtra(ARG_DISCUSS_URL);
if (TextUtils.isEmpty(mDiscussURL)) {
finish();
}
mDiscussFragment = DiscussFragment.newInstance(mDiscussURL,snNew);
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, mDiscussFragment).commitAllowingStateLoss();
IntentFilter filter = new IntentFilter(IntentAction.ACTION_LOGIN);
registerReceiver(mReceiver, filter);
SnApiComponent snApiComponent = ((MyApplication) getApplication()).getSnApiComponent();
DaggerDiscussComponent.builder().snApiComponent(snApiComponent)
.discussPresenterModule(new DiscussPresenterModule(mDiscussFragment)).build().inject(this);
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onResume() {
super.onResume();
invalidateOptionsMenu();
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mReceiver);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}