package com.iwedia.gui.osd.curleffect;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Color;
import com.iwedia.gui.components.A4TVProgressBarPVR;
import com.iwedia.gui.osd.OSDGlobal;
import java.util.ArrayList;
/**
* Class for Updating Textures
*/
public class PageProvider implements CurlView.PageProvider, OSDGlobal {
/** Number of pages who can be seen. */
private final int NUMBER_OF_PAGES = 2;
private Activity mActivity = null;
private CreateBitmaps mCreateBitmaps = null;
private ArrayList<String> mStrValues = null;
private ArrayList<Boolean> mScrambledValues = null;
private ArrayList<Integer> mImageIds = null;
private Bitmap mFront = null;
private Bitmap mBack = null;
private static String mChannelIconPath = "";
private int mProgressValue = 0;
public PageProvider(Activity activity) {
this.mActivity = activity;
// Initialize Progress
mProgressValue = 0;
mCreateBitmaps = new CreateBitmaps();
}
public int getPageCount() {
return NUMBER_OF_PAGES;
}
public void updatePage(CurlPage page, int width, int height, int index,
int state) {
if (index == 0) {
mFront = null;
page.setColor(Color.TRANSPARENT, CurlPage.SIDE_FRONT);
page.setTexture(mFront, CurlPage.SIDE_FRONT);
mBack = mCreateBitmaps.makeEmptyCurlSideBackTexture(mActivity,
width, height);
page.setColor(Color.WHITE, CurlPage.SIDE_BACK);
page.setTexture(mBack, CurlPage.SIDE_BACK);
} else {
// Second Page
updateFrontSideOfSecondPage(page, width, height, state);
}
}
@Override
public void updateFrontSideOfFirstPage(CurlPage page, int width,
int height, int state) {
switch (state) {
case STATE_INFO: {
mFront = mCreateBitmaps.prepareInfoTexture(mActivity, width,
height);
break;
}
case STATE_CHANGE_CHANNEL: {
mFront = mCreateBitmaps.prepareChannelChangeTexture(mActivity,
width, height);
clearBackSideOfFirstPage(page, width, height);
break;
}
default: {
mFront = null;
break;
}
}
if (mFront != null) {
page.setColor(Color.WHITE, CurlPage.SIDE_FRONT);
} else {
page.setColor(Color.TRANSPARENT, CurlPage.SIDE_FRONT);
}
page.setTexture(mFront, CurlPage.SIDE_FRONT);
}
@Override
public void updateBackSideOfFirstPage(CurlPage page, int width, int height) {
mBack = mCreateBitmaps.makeCurlBackSideTexture(width, height,
mActivity, mImageIds, mChannelIconPath);
page.setColor(Color.WHITE, CurlPage.SIDE_BACK);
page.setTexture(mBack, CurlPage.SIDE_BACK);
}
@Override
public void clearBackSideOfFirstPage(CurlPage page, int width, int height) {
mBack = mCreateBitmaps.makeEmptyCurlSideBackTexture(mActivity, width,
height);
page.setColor(Color.WHITE, CurlPage.SIDE_BACK);
page.setTexture(mBack, CurlPage.SIDE_BACK);
}
@Override
public void updateFrontSideOfSecondPage(CurlPage page, int width,
int height, int state) {
switch (state) {
case STATE_CHANGE_CHANNEL: {
if (!A4TVProgressBarPVR.getControlProviderPVR().isFlagRecord()) {
mFront = mCreateBitmaps.makeTextureChannelChange(width,
height, mActivity, mStrValues);
}
break;
}
case STATE_CHANNEL_INFO: {
mFront = mCreateBitmaps
.makeTextureChannelInfo(width, height, mActivity,
mProgressValue, mStrValues, mScrambledValues);
break;
}
case STATE_INPUT_INFO: {
mFront = mCreateBitmaps.makeTextureInputs(width, height,
mActivity, mStrValues);
break;
}
case STATE_NUMEROUS_CHANGE_CHANNEL: {
if (!A4TVProgressBarPVR.getControlProviderPVR().isFlagRecord()) {
mFront = mCreateBitmaps.makeTextureNumChannelChange(width,
height, mActivity, mStrValues);
}
break;
}
case STATE_VOLUME: {
mFront = mCreateBitmaps.makeTextureVolume(width, height,
mActivity, mStrValues);
break;
}
case STATE_PVR: {
mFront = mCreateBitmaps
.makeTexturePVR(width, height, mActivity);
break;
}
case STATE_MULTIMEDIA_CONTROLLER: {
mFront = mCreateBitmaps.makeTextureMultimediaControl(width,
height, mActivity);
break;
}
case STATE_INFO: {
mFront = mCreateBitmaps.makeInfoTexture(mActivity, width,
height);
break;
}
case STATE_PICTURE_FORMAT: {
mFront = mCreateBitmaps.makeTexturePictureFormat(width, height,
mActivity, mStrValues);
break;
}
default: {
mFront = mCreateBitmaps.makeEmptyCurlSideBackTexture(mActivity,
width, height);
break;
}
}
page.setColor(Color.WHITE, CurlPage.SIDE_FRONT);
page.setTexture(mFront, CurlPage.SIDE_FRONT);
/** Don't Create BackSide Of Second Page */
page.setColor(Color.WHITE, CurlPage.SIDE_BACK);
page.setTexture(null, CurlPage.SIDE_BACK);
}
public ArrayList<String> getStrValues() {
return mStrValues;
}
public void setStrValues(ArrayList<String> strValues) {
this.mStrValues = strValues;
}
public void setScrambledValues(ArrayList<Boolean> scrambledValues) {
this.mScrambledValues = scrambledValues;
}
public ArrayList<Integer> getImageIds() {
return mImageIds;
}
public void setImageIds(ArrayList<Integer> imageIds) {
this.mImageIds = imageIds;
}
public void setChannelIconPath(String channelIconUri) {
mChannelIconPath = channelIconUri;
}
public void setProgressValue(int mProgressValue) {
this.mProgressValue = mProgressValue;
}
public CreateBitmaps getCreateBitmaps() {
return mCreateBitmaps;
}
}