package fr.ydelouis.selfoss.activity; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.support.v4.view.ViewPager; import android.util.TypedValue; import android.view.View; import android.view.Window; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; import org.androidannotations.annotations.AfterInject; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Bean; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Extra; import org.androidannotations.annotations.OptionsItem; import org.androidannotations.annotations.ViewById; import fr.ydelouis.selfoss.R; import fr.ydelouis.selfoss.adapter.ArticlePagerAdapter; import fr.ydelouis.selfoss.entity.Article; import fr.ydelouis.selfoss.entity.Filter; import fr.ydelouis.selfoss.fragment.ArticleFragment; import fr.ydelouis.selfoss.util.SelfossImageLoader; @EActivity(R.layout.activity_article) public class ArticleActivity extends Activity implements ViewPager.OnPageChangeListener, ArticleFragment.ScrollListener, ImageLoadingListener { @Extra protected Article article; @Extra protected Filter filter; @Bean protected SelfossImageLoader util; @Bean protected ArticlePagerAdapter adapter; @Bean protected SelfossImageLoader imageLoader; @ViewById protected ViewPager pager; private Drawable actionBarBackground; @AfterInject protected void init() { getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY); actionBarBackground = getResources().getDrawable(R.drawable.ab_solid_selfoss); actionBarBackground.setAlpha(0); getActionBar().setBackgroundDrawable(actionBarBackground); } @AfterViews protected void initViews() { getActionBar().setDisplayHomeAsUpEnabled(true); adapter.setFilter(filter); adapter.setArticle(article); adapter.setScrollListener(this); setArticle(article); pager.setAdapter(adapter); pager.setOnPageChangeListener(this); pager.setCurrentItem(adapter.getPosition(article)); } private void setArticle(Article article) { setTitle(article.getSourceTitle()); if (article.hasIcon()) { imageLoader.displayFavicon(article, this); } else { getActionBar().setIcon(R.drawable.ic_selfoss); } } @Override @OptionsItem(android.R.id.home) public void finish() { super.finish(); } @Override public void onPageSelected(int position) { setArticle(adapter.getArticle(position)); getActionBar().show(); } @Override public void onPageScrollStateChanged(int state) {} @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {} @Override public void onScroll(int delta, float percentage) { actionBarBackground.setAlpha((int)(255 * percentage)); } @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, 48, getResources().getDisplayMetrics()); Bitmap scaledBitmap = Bitmap.createScaledBitmap(loadedImage, size, size, true); getActionBar().setIcon(new BitmapDrawable(getResources(), scaledBitmap)); } @Override public void onLoadingCancelled(String imageUri, View view) { } @Override public void onLoadingStarted(String imageUri, View view) { } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { } }