Q:

How to avoid casting? 

I add new global hight level interface:
    public interface MvpView {
    }

My hight level interface:
public interface OfferDetailsView extends MvpView {

   public void showProgress();
}

Another interface:
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);

    }
}

Another interface:
public interface OfferDetailsPresenter extends MvpPresenter {

    public void downloadToAppDir(boolean isDownloadToAppCacheDir);

    public void onClickScreen(boolean isVisibleTopContainer);
}

Another interface:
public interface MvpPresenter<V extends MvpView> {
    public void attachView(V mvpView);
}

Base abstract class:
public abstract class BaseOfferDetailsPresenter<T extends MvpView> implements MvpPresenter<T> {
    private T view;

     @Override
    public void attachView(T mvpView) {
        this.view = mvpView;
    }

   public T getView() {
         return view;
    }
}

And conrete class that extend from Base class:    
public class OfferDetailsPdfPresenterImpl extends BaseOfferDetailsPresenter<OfferDetailsPdfMvp. View> implements OfferDetailsPdfMvp. Presenter {    

    public void viewIsReady() {
      getView().showProgress(); //no cast
      getView().openLocalPdfFile(file, currentPageNumber); // no cast
    }

But I get compile error:
myproject\app\src\main\java\com\myproject\android\customer\presenter\OfferDetailsPdfPresenterImpl.java:35: error: MvpPresenter cannot be inherited with different arguments: <> and <com.myproject.android.customer.mvp. OfferDetailsPdfMvp. View>
    public class OfferDetailsPdfPresenterImpl extends BaseOfferDetailsPresenter<OfferDetailsPdfMvp. View> implements OfferDetailsPdfMvp. Presenter {

A:

To make what you want, you should change your OfferDetailsPresenter signature: 
public interface OfferDetailsPresenter<T extends MvpView> extends MvpPresenter<T> {

    void downloadToAppDir(boolean isDownloadToAppCacheDir);

    void onClickScreen(boolean isVisibleTopContainer);
}

Then, inside OfferDetailsPdfMvp you should change Presenter signature in the same manner:
public interface OfferDetailsPdfMvp {

    interface View extends OfferDetailsView  {

        public void openLocalPdfFile(File file, int pageNumber);

    }

    interface Presenter<T extends MvpView> extends OfferDetailsPresenter<T> {

        public void onPageScrolled(int page, int pageCount);

    }
}

And then populate desired View as you do with the BaseOfferDetailsPresenter<T extends MvpView>:
OfferDetailsPdfPresenterImpl extends BaseOfferDetailsPresenter<OfferDetailsPdfMvp. View> implements OfferDetailsPdfMvp. Presenter<OfferDetailsPdfMvp. View>

