package com.jasonrobinson.racer.ui.web; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; import android.widget.ProgressBar; import com.jasonrobinson.racer.R; import com.jasonrobinson.racer.ui.base.BaseActivity; import com.jasonrobinson.racer.ui.web.WebFragment.WebCallback; import com.metova.slim.annotation.Extra; import com.metova.slim.annotation.Layout; import butterknife.InjectView; @Layout(R.layout.web_activity) public class WebActivity extends BaseActivity implements WebCallback { public static final String EXTRA_URL = "url"; @Extra(EXTRA_URL) String mUrl; WebFragment mWebFragment; @InjectView(R.id.progress) ProgressBar mProgressBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle(R.string.forum_post); mWebFragment = (WebFragment) getSupportFragmentManager().findFragmentById(R.id.web_fragment); mWebFragment.loadUrl(mUrl); } @Override public void onBackPressed() { if (!mWebFragment.onBackPressed()) { super.onBackPressed(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.web_menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_browser: openInBrowser(mUrl); break; default: return super.onOptionsItemSelected(item); } return true; } @Override public void onProgressChanged(int progress) { mProgressBar.setAnimation(null); mProgressBar.setVisibility(View.VISIBLE); mProgressBar.setProgress(progress); if (mProgressBar.getProgress() == mProgressBar.getMax()) { Animation anim = AnimationUtils.loadAnimation(this, android.R.anim.fade_out); anim.setFillAfter(true); anim.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { // no-op } @Override public void onAnimationRepeat(Animation animation) { // no-op } @Override public void onAnimationEnd(Animation animation) { mProgressBar.setVisibility(View.GONE); } }); mProgressBar.startAnimation(anim); } } private void openInBrowser(String url) { if (!url.startsWith("http://") && !url.startsWith("https://")) { url = "http://" + url; } Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); startActivity(intent); } }