// Path: realm-browser/src/main/java/de/jonasrottmann/realmbrowser/basemvp/BaseInteractor.java
// @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
// public interface BaseInteractor {
// 
// }
// 
// Path: realm-browser/src/main/java/de/jonasrottmann/realmbrowser/basemvp/BasePresenter.java
// @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
// public interface BasePresenter<V extends BaseView> {
//     void attachView(V view);
// 
//     void detachView();
// }
// 
// Path: realm-browser/src/main/java/de/jonasrottmann/realmbrowser/basemvp/BaseView.java
// @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
// public interface BaseView<P extends BasePresenter> {
//     void attachPresenter(@Nullable P presenter);
// }


import android.content.Context;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RestrictTo;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Field;
import java.util.AbstractList;
import java.util.List;
import de.jonasrottmann.realmbrowser.basemvp.BaseInteractor;
import de.jonasrottmann.realmbrowser.basemvp.BasePresenter;
import de.jonasrottmann.realmbrowser.basemvp.BaseView;
import io.realm.DynamicRealm;
import io.realm.DynamicRealmObject;
import io.realm.RealmModel;
        void onInformationSelected();

        void onAboutSelected();

        void onRowSelected(@NonNull DynamicRealmObject realmObject);

        void showNewObjectActivity(@NonNull final Class<? extends RealmModel> modelClass);

        void showObjectActivity(@NonNull final Class<? extends RealmModel> modelClass);

        void showInformation(long numberOfRows);

        void updateWithRealmObjects(AbstractList<? extends DynamicRealmObject> objects);

        void updateWithFABVisibility(boolean visible);

        void updateWithTitle(@NonNull String title);

        void updateWithTextWrap(boolean wrapText);

        void updateWithFieldList(@NonNull List<Field> fields, Integer[] selectedFieldIndices);
    }

    interface Interactor extends BaseInteractor {
        void requestForContentUpdate(@NonNull Context context, @Nullable DynamicRealm dynamicRealm, @DisplayMode int displayMode);

        void onWrapTextOptionToggled(@NonNull Context context);

        void onNewObjectSelected();

// Path: realm-browser/src/main/java/de/jonasrottmann/realmbrowser/basemvp/BaseInteractor.java
// @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
// public interface BaseInteractor {
// 
// }
// 
// Path: realm-browser/src/main/java/de/jonasrottmann/realmbrowser/basemvp/BasePresenter.java
// @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
// public interface BasePresenter<V extends BaseView> {
//     void attachView(V view);
// 
//     void detachView();
// }
// 
// Path: realm-browser/src/main/java/de/jonasrottmann/realmbrowser/basemvp/BaseView.java
// @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
// public interface BaseView<P extends BasePresenter> {
//     void attachPresenter(@Nullable P presenter);
// }


// Path: realm-browser/src/main/java/de/jonasrottmann/realmbrowser/browser/BrowserContract.java
import android.content.Context;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RestrictTo;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.reflect.Field;
import java.util.AbstractList;
import java.util.List;
import de.jonasrottmann.realmbrowser.basemvp.BaseInteractor;
import de.jonasrottmann.realmbrowser.basemvp.BasePresenter;
import de.jonasrottmann.realmbrowser.basemvp.BaseView;
import io.realm.DynamicRealm;
import io.realm.DynamicRealmObject;
import io.realm.RealmModel;

        void onInformationSelected();

        void onAboutSelected();

        void onRowSelected(@NonNull DynamicRealmObject realmObject);

        void showNewObjectActivity(@NonNull final Class<? extends RealmModel> modelClass);

        void showObjectActivity(@NonNull final Class<? extends RealmModel> modelClass);

        void showInformation(long numberOfRows);

        void updateWithRealmObjects(AbstractList<? extends DynamicRealmObject> objects);

        void updateWithFABVisibility(boolean visible);

        void updateWithTitle(@NonNull String title);

        void updateWithTextWrap(boolean wrapText);

        void updateWithFieldList(@NonNull List<Field> fields, Integer[] selectedFieldIndices);
    }

    interface Interactor extends BaseInteractor {
        void requestForContentUpdate(@NonNull Context context, @Nullable DynamicRealm dynamicRealm, @DisplayMode int displayMode);

        void onWrapTextOptionToggled(@NonNull Context context);

        void onNewObjectSelected();

        void onInformationSelected();