/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public interface MvpPresenter {
public void attachView(OfferDetailsView mvpView);
}
public interface OfferDetailsView {
public void showProgress();
public void hideProgress();
}
public interface OfferDetailsPresenter extends MvpPresenter {
public void downloadToAppDir(boolean isDownloadToAppCacheDir);
public void onClickScreen(boolean isVisibleTopContainer);
}
public interface OfferDetailsPdfMvp {
interface View extends OfferDetailsView
{ public void openLocalPdfFile
(File file,
int pageNumber
); }
interface Presenter extends OfferDetailsPresenter {
public void onPageScrolled(int page, int pageCount);
}
}
public static abstract class BaseOfferDetailsPresenter<T extends OfferDetailsView> implements MvpPresenter {
protected T view;
public T getView() {
return view;
}
}
public static class OfferDetailsPdfPresenterImpl extends BaseOfferDetailsPresenter<OfferDetailsPdfMvp.View> {
public OfferDetailsPdfPresenterImpl
(OfferDetailsPdfMvp.
View view
) {this.
view = view
; } public void attachView(OfferDetailsView mvpView) { }
public void viewIsReady() {
getView().showProgress();
// but here has cast
getView().openLocalPdfFile(null, 1);
}
public void downloadToAppDir(boolean isDownloadToAppCacheDir) {}
public void onClickScreen(boolean isVisibleTopContainer) {}
}
{
new OfferDetailsPdfPresenterImpl
(new OfferDetailsPdfMvp.
View(){ public void showProgress(){}
public void hideProgress(){}
public void openLocalPdfFile
(File file,
int pageNumber
) {} }).viewIsReady();
}
}