package org.qii.weiciyuan.ui.browser; import org.qii.weiciyuan.R; import org.qii.weiciyuan.dao.shorturl.ShareShortUrlCountDao; import org.qii.weiciyuan.support.error.WeiboException; import org.qii.weiciyuan.support.lib.CheatSheet; import org.qii.weiciyuan.support.lib.MyAsyncTask; import org.qii.weiciyuan.support.utils.GlobalContext; import org.qii.weiciyuan.ui.interfaces.AbstractAppActivity; import org.qii.weiciyuan.ui.main.MainTimeLineActivity; import android.app.ActionBar; import android.content.Intent; import android.os.Bundle; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.widget.Button; /** * User: qii * Date: 13-2-19 */ public class BrowserWebActivity extends AbstractAppActivity { private Button shareCountBtn; private int shareCountInt; private String url; @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("shareCountInt", shareCountInt); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String action = getIntent().getAction(); if (Intent.ACTION_VIEW.equalsIgnoreCase(action)) { url = getIntent().getData().toString(); } else { url = getIntent().getStringExtra("url"); } getActionBar().setDisplayShowHomeEnabled(false); getActionBar().setDisplayShowTitleEnabled(true); getActionBar().setDisplayHomeAsUpEnabled(false); View title = getLayoutInflater().inflate(R.layout.browserwebactivity_title_layout, null); shareCountBtn = (Button) title.findViewById(R.id.share_count); CheatSheet.setup(BrowserWebActivity.this, shareCountBtn, R.string.share_sum); shareCountBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = BrowserShareTimeLineActivity.newIntent(url); startActivity(intent); } }); getActionBar().setCustomView(title, new ActionBar.LayoutParams(Gravity.RIGHT)); getActionBar().setDisplayShowCustomEnabled(true); getActionBar().setTitle(url); if (savedInstanceState == null) { getFragmentManager().beginTransaction() .replace(android.R.id.content, new BrowserWebFragment(url)).commit(); new ShareCountTask().executeOnExecutor(MyAsyncTask.THREAD_POOL_EXECUTOR); } else { shareCountInt = savedInstanceState.getInt("shareCountInt"); shareCountBtn.setText(String.valueOf(shareCountInt)); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: Intent intent = MainTimeLineActivity.newIntent(); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); return true; } return super.onOptionsItemSelected(item); } private class ShareCountTask extends MyAsyncTask<Void, Integer, Integer> { @Override protected Integer doInBackground(Void... params) { int result = 0; try { result = new ShareShortUrlCountDao(GlobalContext.getInstance().getSpecialToken(), url).getCount(); } catch (WeiboException e) { } return result; } @Override protected void onPostExecute(Integer result) { super.onPostExecute(result); if (result == null) { return; } if (shareCountBtn == null) { return; } shareCountInt = result; shareCountBtn.setText(String.valueOf(shareCountInt)); } } }