package com.ywwxhz.processers; import android.content.res.Configuration; import android.content.res.TypedArray; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import com.ywwxhz.cnbetareader.R; import com.ywwxhz.data.BaseDataProvider; import com.ywwxhz.data.DataProviderCallback; /** * cnBetaReader * * Created by 远望の无限(ywwxhz) on 2014/11/2 20:10. */ public abstract class BaseProcesserImpl<E,DataProvider extends BaseDataProvider<E>> implements BaseProcesser<E,DataProvider>, DataProviderCallback<E> { protected AppCompatActivity mActivity; protected DataProvider provider; protected int colorPrimary; protected int colorPrimaryDark; protected int titleColor; protected int windowBackground; protected int colorAccent; protected onOptionMenuSelect menuCallBack; public interface onOptionMenuSelect{ boolean onMenuSelect(MenuItem item); } public BaseProcesserImpl(DataProvider provider) { this.provider = provider; provider.setCallback(this); } @Override public void setActivity(AppCompatActivity activity) { this.mActivity = activity; this.provider.setActivity(activity); TypedArray array = activity.obtainStyledAttributes(new int[]{R.attr.colorPrimary, R.attr.colorPrimaryDark,R.attr.titleColor,android.R.attr.windowBackground, R.attr.colorAccent }); colorPrimary = array.getColor(0,activity.getResources().getColor(R.color.toolbarColor)); colorPrimaryDark = array.getColor(1,activity.getResources().getColor(R.color.statusColor)); titleColor = array.getColor(2,activity.getResources().getColor(R.color.toolbarColor)); windowBackground = array.getColor(3, Color.WHITE); colorAccent = array.getColor(4,activity.getResources().getColor(R.color.toolbarColor)); array.recycle(); } @Override public AppCompatActivity getActivity() { return mActivity; } @Override public void setProvider(DataProvider provider) { this.provider = provider; provider.setCallback(this); } @Override public void onPause() { } @Override public void onDestroy() { } @Override public void onResume() { } @Override public void onConfigurationChanged(Configuration newConfig) { } @Override public void loadData(boolean startup) { } @Override public boolean onOptionsItemSelected(MenuItem item) { return menuCallBack != null && menuCallBack.onMenuSelect(item); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { } public void setMenuCallBack(onOptionMenuSelect menuCallBack) { this.menuCallBack = menuCallBack; } }