/**
* Wire
* Copyright (C) 2016 Wire Swiss GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.waz.zclient.pages.main.conversation.controller;
import android.support.annotation.IntDef;
import android.view.View;
import com.waz.api.IConversation;
import com.waz.api.Message;
import com.waz.api.OtrClient;
import com.waz.api.User;
import com.waz.zclient.pages.main.participants.dialog.DialogLaunchMode;
public interface IConversationScreenController {
@IntDef({CONVERSATION_LIST_SWIPE,
CONVERSATION_LIST_LONG_PRESS,
CONVERSATION_DETAILS,
USER_PROFILE_PARTICIPANTS,
USER_PROFILE_SEARCH})
@interface ConversationMenuRequester { }
int CONVERSATION_LIST_SWIPE = 0;
int CONVERSATION_LIST_LONG_PRESS = 1;
int CONVERSATION_DETAILS = 2;
int USER_PROFILE_PARTICIPANTS = 3;
int USER_PROFILE_SEARCH = 4;
void addConversationControllerObservers(ConversationScreenControllerObserver conversationScreenControllerObserver);
void removeConversationControllerObservers(ConversationScreenControllerObserver conversationScreenControllerObserver);
void showParticipants(View anchorView, boolean showDeviceTabIfSingle);
void hideParticipants(boolean backOrButtonPressed, boolean hideByConversationChange);
void editConversationName(boolean b);
void setShowDevicesTab(User user);
boolean shouldShowDevicesTab();
User getRequestedDeviceTabUser();
void setOffset(int offset);
boolean isShowingParticipant();
void resetToMessageStream();
void setParticipantHeaderHeight(int participantHeaderHeight);
void onScrollParticipantsList(int verticalOffset, boolean scrolledToBottom);
boolean isSingleConversation();
void setSingleConversation(boolean isSingleConversation);
void setMemberOfConversation(boolean isMemberOfConversation);
void addPeopleToConversation();
void showUser(User user);
void hideUser();
boolean isShowingUser();
void tearDown();
boolean isConversationStreamUiInitialized();
void setConversationStreamUiReady(boolean ready);
void setPopoverLaunchedMode(DialogLaunchMode launchedMode);
void showConversationMenu(@ConversationMenuRequester int requester, IConversation conversation, View anchorView);
DialogLaunchMode getPopoverLaunchMode();
void showOtrClient(OtrClient otrClient, User user);
void showCurrentOtrClient();
void hideOtrClient();
void setMessageBeingEdited(Message message);
boolean isMessageBeingEdited(Message message);
void showLikesList(Message message);
}