package com.jparkie.aizoban.presenters;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import com.jparkie.aizoban.controllers.events.SelectPageEvent;
import com.jparkie.aizoban.views.SelectPageView;
import com.jparkie.aizoban.views.fragments.SelectPageFragment;
import de.greenrobot.event.EventBus;
public class SelectPagePresenterImpl implements SelectPagePresenter {
public static final String TAG = SelectPagePresenterImpl.class.getSimpleName();
private static final String CURRENT_PAGE_PARCELABLE_KEY = TAG + ":" + "CurrentPageParcelableKey";
private static final String PAGE_SIZE_PARCELABLE_KEY = TAG + ":" + "PageSizeParcelableKey";
private SelectPageView mSelectPageView;
private int mCurrentPage;
private int mPageSize;
private ArrayAdapter<Integer> mPagesAdapter;
public SelectPagePresenterImpl(SelectPageView selectPageView) {
mSelectPageView = selectPageView;
}
@Override
public void handleInitialArguments(Bundle arguments) {
if (arguments != null) {
if (arguments.containsKey(SelectPageFragment.CURRENT_PAGE_ARGUMENT_KEY) && arguments.containsKey(SelectPageFragment.PAGE_SIZE_ARGUMENT_KEY)) {
mCurrentPage = arguments.getInt(SelectPageFragment.CURRENT_PAGE_ARGUMENT_KEY, 0);
mPageSize = arguments.getInt(SelectPageFragment.PAGE_SIZE_ARGUMENT_KEY, 0);
arguments.remove(SelectPageFragment.CURRENT_PAGE_ARGUMENT_KEY);
arguments.remove(SelectPageFragment.PAGE_SIZE_ARGUMENT_KEY);
}
}
}
@Override
public void initializeViews() {
Integer[] pagesArray = new Integer[mPageSize];
for (int index = 0; index < mPageSize; index++) {
pagesArray[index] = index + 1;
}
mPagesAdapter = new ArrayAdapter<Integer>(mSelectPageView.getContext(), android.R.layout.simple_spinner_dropdown_item, pagesArray);
mSelectPageView.initializeSpinner(mPagesAdapter);
mSelectPageView.setSpinnerPageNumber(mCurrentPage);
}
@Override
public void saveState(Bundle outState) {
outState.putInt(CURRENT_PAGE_PARCELABLE_KEY, mCurrentPage);
outState.putInt(PAGE_SIZE_PARCELABLE_KEY, mPageSize);
}
@Override
public void restoreState(Bundle savedState) {
if (savedState.containsKey(CURRENT_PAGE_PARCELABLE_KEY) && savedState.containsKey(PAGE_SIZE_PARCELABLE_KEY)) {
mCurrentPage = savedState.getInt(CURRENT_PAGE_PARCELABLE_KEY, 0);
mPageSize = savedState.getInt(PAGE_SIZE_PARCELABLE_KEY, 0);
savedState.remove(CURRENT_PAGE_PARCELABLE_KEY);
savedState.remove(PAGE_SIZE_PARCELABLE_KEY);
}
}
@Override
public void onItemSelected(int pageNumber) {
if (pageNumber >= 0 && pageNumber < mPageSize) {
mCurrentPage = pageNumber;
}
}
@Override
public void onOkButtonClick() {
EventBus.getDefault().post(new SelectPageEvent(mCurrentPage));
}
@Override
public void onCancelButtonClick() {
// Do Nothing.
}
}