Search in sources :

Example 16 with SwipeRefreshLayout

use of android.support.v4.widget.SwipeRefreshLayout in project instructure-android by instructure.

the class RecyclerViewUtils method buildRecyclerView.

public static RecyclerView buildRecyclerView(View rootView, final Context context, final SyncRecyclerAdapter recyclerAdapter, final SyncPresenter presenter, int swipeToRefreshLayoutResId, int recyclerViewResId, int emptyViewResId, String emptyViewText) {
    EmptyInterface emptyInterface = (EmptyInterface) rootView.findViewById(emptyViewResId);
    RecyclerView recyclerView = (RecyclerView) rootView.findViewById(recyclerViewResId);
    emptyInterface.setTitleText(emptyViewText);
    emptyInterface.setNoConnectionText(context.getString(R.string.noConnection));
    LinearLayoutManager layoutManager = new LinearLayoutManager(context);
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.setAdapter(recyclerAdapter);
    final SwipeRefreshLayout swipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(swipeToRefreshLayoutResId);
    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

        @Override
        public void onRefresh() {
            if (!com.instructure.pandautils.utils.Utils.isNetworkAvailable(context)) {
                swipeRefreshLayout.setRefreshing(false);
            } else {
                presenter.refresh(true);
            }
        }
    });
    return recyclerView;
}
Also used : EmptyInterface(com.instructure.pandarecycler.interfaces.EmptyInterface) RecyclerView(android.support.v7.widget.RecyclerView) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) SwipeRefreshLayout(android.support.v4.widget.SwipeRefreshLayout) DefaultItemAnimator(android.support.v7.widget.DefaultItemAnimator)

Example 17 with SwipeRefreshLayout

use of android.support.v4.widget.SwipeRefreshLayout in project instructure-android by instructure.

the class RecyclerViewUtils method buildRecyclerView.

public static RecyclerView buildRecyclerView(View rootView, final Context context, final SyncExpandableRecyclerAdapter recyclerAdapter, final SyncExpandablePresenter presenter, int swipeToRefreshLayoutResId, int recyclerViewResId, int emptyViewResId, String emptyViewText) {
    EmptyInterface emptyInterface = (EmptyInterface) rootView.findViewById(emptyViewResId);
    RecyclerView recyclerView = (RecyclerView) rootView.findViewById(recyclerViewResId);
    emptyInterface.setTitleText(emptyViewText);
    emptyInterface.setNoConnectionText(context.getString(R.string.noConnection));
    LinearLayoutManager layoutManager = new LinearLayoutManager(context);
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.setAdapter(recyclerAdapter);
    final SwipeRefreshLayout swipeRefreshLayout = (SwipeRefreshLayout) rootView.findViewById(swipeToRefreshLayoutResId);
    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

        @Override
        public void onRefresh() {
            if (!com.instructure.pandautils.utils.Utils.isNetworkAvailable(context)) {
                swipeRefreshLayout.setRefreshing(false);
            } else {
                presenter.refresh(true);
            }
        }
    });
    return recyclerView;
}
Also used : EmptyInterface(com.instructure.pandarecycler.interfaces.EmptyInterface) RecyclerView(android.support.v7.widget.RecyclerView) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) SwipeRefreshLayout(android.support.v4.widget.SwipeRefreshLayout) DefaultItemAnimator(android.support.v7.widget.DefaultItemAnimator)

Example 18 with SwipeRefreshLayout

use of android.support.v4.widget.SwipeRefreshLayout in project keleFanfou by kelefun.

the class FavouriteStatusListFragment method initView.

protected void initView(View view) {
    SwipeRefreshLayout mRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.line_swipe_refresh);
    // 禁用下拉刷新
    mRefreshLayout.setEnabled(false);
    mRecyclerView = (RecyclerView) view.findViewById(R.id.line_recycler);
    LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
    mRecyclerView.setLayoutManager(mLayoutManager);
    mAdapter = new StatusAdapter(getActivity(), data);
    mRecyclerView.setAdapter(mAdapter);
    Map<String, String> map = new ArrayMap<>();
    map.put("id", tuserId);
    map.put("page", "1");
    getUserTimeLineStatus(map);
    mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
        }

        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            if (newState == RecyclerView.SCROLL_STATE_IDLE && (mLayoutManager.findLastVisibleItemPosition() + 1 == mLayoutManager.getItemCount()) && !isLoadingMore) {
                isLoadingMore = true;
                if (data.size() > 0) {
                    Map<String, String> loadMoreParam = new ArrayMap<>();
                    loadMoreParam.put("max_id", data.get(data.size() - 1).getId());
                    loadMoreParam.put("count", "20");
                    loadMoreParam.put("id", tuserId);
                    loadMoreHomeLineStatus(loadMoreParam);
                }
            }
        }
    });
}
Also used : StatusAdapter(com.funstill.kelefun.adapter.StatusAdapter) ArrayMap(android.util.ArrayMap) RecyclerView(android.support.v7.widget.RecyclerView) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) SwipeRefreshLayout(android.support.v4.widget.SwipeRefreshLayout) Map(java.util.Map) ArrayMap(android.util.ArrayMap)

Example 19 with SwipeRefreshLayout

use of android.support.v4.widget.SwipeRefreshLayout in project keleFanfou by kelefun.

the class ImageListFragment method initView.

private void initView(View view) {
    SwipeRefreshLayout mRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.line_swipe_refresh);
    // 禁用下拉刷新
    mRefreshLayout.setEnabled(false);
    mRecyclerView = (RecyclerView) view.findViewById(R.id.line_recycler);
    StaggeredGridLayoutManager mLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
    mRecyclerView.setLayoutManager(mLayoutManager);
    mAdapter = new ImageAdapter(getActivity(), data);
    mRecyclerView.setAdapter(mAdapter);
    mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            lastPositions = mLayoutManager.findLastVisibleItemPositions(lastPositions);
            super.onScrolled(recyclerView, dx, dy);
        }

        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            if (lastPositions == null || lastPositions.length == 0) {
                return;
            }
            lastVisibleItemPosition = getMax(lastPositions);
            if (newState == RecyclerView.SCROLL_STATE_IDLE && (lastVisibleItemPosition + 1 >= mLayoutManager.getItemCount()) && !isLoadingMore) {
                if (data.size() > 0) {
                    Map<String, String> loadMoreParam = new ArrayMap<>();
                    loadMoreParam.put("max_id", data.get(data.size() - 1).getId());
                    loadMoreParam.put("count", "25");
                    loadMoreMentions(loadMoreParam);
                }
            }
        }
    });
}
Also used : ImageAdapter(com.funstill.kelefun.adapter.ImageAdapter) StaggeredGridLayoutManager(android.support.v7.widget.StaggeredGridLayoutManager) RecyclerView(android.support.v7.widget.RecyclerView) SwipeRefreshLayout(android.support.v4.widget.SwipeRefreshLayout) Map(java.util.Map) ArrayMap(android.util.ArrayMap)

Example 20 with SwipeRefreshLayout

use of android.support.v4.widget.SwipeRefreshLayout in project Applozic-Android-SDK by AppLozic.

the class MobiComConversationFragment method onCreateView.

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    final View list = inflater.inflate(R.layout.mobicom_message_list, container, false);
    recyclerView = (RecyclerView) list.findViewById(R.id.messageList);
    linearLayoutManager = new LinearLayoutManager(getActivity());
    recyclerView.setLayoutManager(linearLayoutManager);
    recyclerView.setHasFixedSize(true);
    recyclerViewPositionHelper = new RecyclerViewPositionHelper(recyclerView, linearLayoutManager);
    ((ConversationActivity) getActivity()).setChildFragmentLayoutBGToTransparent();
    // listView.setDivider(null);
    messageList = new ArrayList<Message>();
    multimediaPopupGrid = (GridView) list.findViewById(R.id.mobicom_multimedia_options1);
    getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
    toolbar = (Toolbar) getActivity().findViewById(R.id.my_toolbar);
    toolbar.setClickable(true);
    mainEditTextLinearLayout = (LinearLayout) list.findViewById(R.id.main_edit_text_linear_layout);
    individualMessageSendLayout = (LinearLayout) list.findViewById(R.id.individual_message_send_layout);
    slideImageView = (ImageView) list.findViewById(R.id.slide_image_view);
    sendButton = (ImageButton) individualMessageSendLayout.findViewById(R.id.conversation_send);
    recordButton = (ImageButton) individualMessageSendLayout.findViewById(R.id.record_button);
    mainEditTextLinearLayout = (LinearLayout) list.findViewById(R.id.main_edit_text_linear_layout);
    audioRecordFrameLayout = (FrameLayout) list.findViewById(R.id.audio_record_frame_layout);
    messageTemplateView = (RecyclerView) list.findViewById(R.id.mobicomMessageTemplateView);
    Configuration config = getResources().getConfiguration();
    recordButtonWeakReference = new WeakReference<ImageButton>(recordButton);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        if (config.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
            sendButton.setScaleX(-1);
            mainEditTextLinearLayout.setBackgroundResource(R.drawable.applozic_chat_left_icon);
            audioRecordFrameLayout.setBackgroundResource(R.drawable.applozic_chat_left_icon);
            slideImageView.setImageResource(R.drawable.slide_arrow_right);
        }
    }
    extendedSendingOptionLayout = (LinearLayout) list.findViewById(R.id.extended_sending_option_layout);
    attachmentLayout = (RelativeLayout) list.findViewById(R.id.attachment_layout);
    isTyping = (TextView) list.findViewById(R.id.isTyping);
    contextFrameLayout = (FrameLayout) list.findViewById(R.id.contextFrameLayout);
    contextSpinner = (Spinner) list.findViewById(R.id.spinner_show);
    slideTextLinearlayout = (LinearLayout) list.findViewById(R.id.slide_LinearLayout);
    errorEditTextView = (EditText) list.findViewById(R.id.error_edit_text_view);
    audioRecordIconImageView = (ImageView) list.findViewById(R.id.audio_record_icon_image_view);
    recordTimeTextView = (TextView) list.findViewById(R.id.recording_time_text_view);
    mDetector = new GestureDetectorCompat(getContext(), this);
    adapterView = new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long l) {
            if (conversations != null && conversations.size() > 0) {
                Conversation conversation = conversations.get(pos);
                BroadcastService.currentConversationId = conversation.getId();
                if (onSelected) {
                    currentConversationId = conversation.getId();
                    if (messageList != null) {
                        messageList.clear();
                    }
                    downloadConversation = new DownloadConversation(recyclerView, true, 1, 0, 0, contact, channel, conversation.getId());
                    downloadConversation.execute();
                }
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    };
    mediaUploadProgressBar = (ProgressBar) attachmentLayout.findViewById(R.id.media_upload_progress_bar);
    emoticonsFrameLayout = (FrameLayout) list.findViewById(R.id.emojicons_frame_layout);
    emoticonsBtn = (ImageButton) list.findViewById(R.id.emoticons_btn);
    if (emojiIconHandler == null && emoticonsBtn != null) {
        emoticonsBtn.setVisibility(View.GONE);
    }
    replayRelativeLayout = (RelativeLayout) list.findViewById(R.id.reply_message_layout);
    messageTextView = (TextView) list.findViewById(R.id.messageTextView);
    galleryImageView = (ImageView) list.findViewById(R.id.imageViewForPhoto);
    nameTextView = (TextView) list.findViewById(R.id.replyNameTextView);
    attachReplyCancelLayout = (ImageButton) list.findViewById(R.id.imageCancel);
    imageViewRLayout = (RelativeLayout) list.findViewById(R.id.imageViewRLayout);
    imageViewForAttachmentType = (ImageView) list.findViewById(R.id.imageViewForAttachmentType);
    spinnerLayout = inflater.inflate(R.layout.mobicom_message_list_header_footer, null);
    infoBroadcast = (TextView) spinnerLayout.findViewById(R.id.info_broadcast);
    spinnerLayout.setVisibility(View.GONE);
    emptyTextView = (TextView) list.findViewById(R.id.noConversations);
    emptyTextView.setTextColor(Color.parseColor(alCustomizationSettings.getNoConversationLabelTextColor().trim()));
    emoticonsBtn.setOnClickListener(this);
    // listView.addHeaderView(spinnerLayout);
    sentIcon = getResources().getDrawable(R.drawable.applozic_ic_action_message_sent);
    deliveredIcon = getResources().getDrawable(R.drawable.applozic_ic_action_message_delivered);
    // listView.setLongClickable(true);
    recordButton.setVisibility(alCustomizationSettings.isRecordButton() && (contact != null || channel != null && !Channel.GroupType.OPEN.getValue().equals(channel.getType())) ? View.VISIBLE : View.GONE);
    sendButton.setVisibility(alCustomizationSettings.isRecordButton() && (contact != null || channel != null && !Channel.GroupType.OPEN.getValue().equals(channel.getType())) ? View.GONE : View.VISIBLE);
    GradientDrawable bgShape = (GradientDrawable) sendButton.getBackground();
    bgShape.setColor(Color.parseColor(alCustomizationSettings.getSendButtonBackgroundColor().trim()));
    GradientDrawable bgShapeRecordButton = (GradientDrawable) recordButton.getBackground();
    bgShapeRecordButton.setColor(Color.parseColor(alCustomizationSettings.getSendButtonBackgroundColor().trim()));
    attachButton = (ImageButton) individualMessageSendLayout.findViewById(R.id.attach_button);
    sendType = (Spinner) extendedSendingOptionLayout.findViewById(R.id.sendTypeSpinner);
    messageEditText = (EditText) individualMessageSendLayout.findViewById(R.id.conversation_message);
    messageEditText.setTextColor(Color.parseColor(alCustomizationSettings.getMessageEditTextTextColor()));
    messageEditText.setHintTextColor(Color.parseColor(alCustomizationSettings.getMessageEditTextHintTextColor()));
    userNotAbleToChatLayout = (LinearLayout) list.findViewById(R.id.user_not_able_to_chat_layout);
    userNotAbleToChatTextView = (TextView) userNotAbleToChatLayout.findViewById(R.id.user_not_able_to_chat_textView);
    userNotAbleToChatTextView.setTextColor(Color.parseColor(alCustomizationSettings.getUserNotAbleToChatTextColor()));
    if (channel != null && channel.isDeleted()) {
        userNotAbleToChatTextView.setText(R.string.group_has_been_deleted_text);
    }
    bottomlayoutTextView = (TextView) list.findViewById(R.id.user_not_able_to_chat_textView);
    if (!TextUtils.isEmpty(defaultText)) {
        messageEditText.setText(defaultText);
        defaultText = "";
    }
    scheduleOption = (Button) extendedSendingOptionLayout.findViewById(R.id.scheduleOption);
    mediaContainer = (ImageView) attachmentLayout.findViewById(R.id.media_container);
    attachedFile = (TextView) attachmentLayout.findViewById(R.id.attached_file);
    ImageView closeAttachmentLayout = (ImageView) attachmentLayout.findViewById(R.id.close_attachment_layout);
    swipeLayout = (SwipeRefreshLayout) list.findViewById(R.id.swipe_container);
    swipeLayout.setColorScheme(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light);
    // listView.setMessageEditText(messageEditText);
    ArrayAdapter<CharSequence> sendTypeAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.send_type_options, R.layout.mobiframework_custom_spinner);
    sendTypeAdapter.setDropDownViewResource(R.layout.mobiframework_custom_spinner);
    sendType.setAdapter(sendTypeAdapter);
    t = new CountDownTimer(Long.MAX_VALUE, 1000) {

        @Override
        public void onTick(long millisUntilFinished) {
            count++;
            seconds = count;
            if (seconds == 60) {
                minutes++;
                count = 0;
                seconds = 0;
            }
            if (minutes == 60) {
                minutes = 0;
                count = 0;
            }
            if (count % 2 == 0) {
                audioRecordIconImageView.setVisibility(VISIBLE);
                audioRecordIconImageView.setImageResource(R.drawable.applozic_audio_record);
            } else {
                audioRecordIconImageView.setVisibility(View.INVISIBLE);
            }
            recordTimeTextView.setText(String.format("%02d:%02d", minutes, seconds));
        }

        @Override
        public void onFinish() {
            count = 0;
        }
    };
    recordButton.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            mDetector.onTouchEvent(motionEvent);
            if (motionEvent.getAction() == MotionEvent.ACTION_UP && longPress) {
                isToastVisible = true;
                errorEditTextView.setVisibility(View.GONE);
                errorEditTextView.requestFocus();
                errorEditTextView.setError(null);
                startedDraggingX = -1;
                audioRecordFrameLayout.setVisibility(View.GONE);
                mainEditTextLinearLayout.setVisibility(View.VISIBLE);
                applozicAudioRecordManager.sendAudio();
                t.cancel();
                longPress = false;
                messageEditText.requestFocus();
                seconds = 0;
                minutes = 0;
                count = 0;
            } else if (motionEvent.getAction() == MotionEvent.ACTION_MOVE) {
                float x = motionEvent.getX();
                if (x < -distCanMove) {
                    count = 0;
                    t.cancel();
                    audioRecordIconImageView.setImageResource(R.drawable.applozic_audio_delete);
                    recordTimeTextView.setVisibility(View.GONE);
                    applozicAudioRecordManager.cancelAudio();
                    messageEditText.requestFocus();
                }
                x = x + ApplozicAudioRecordAnimation.getX(recordButton);
                FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) slideTextLinearlayout.getLayoutParams();
                if (startedDraggingX != -1) {
                    float dist = (x - startedDraggingX);
                    params.leftMargin = dp(30) + (int) dist;
                    slideTextLinearlayout.setLayoutParams(params);
                    float alpha = 1.0f + dist / distCanMove;
                    if (alpha > 1) {
                        alpha = 1;
                    } else if (alpha < 0) {
                        alpha = 0;
                    }
                    ApplozicAudioRecordAnimation.setAlpha(slideTextLinearlayout, alpha);
                }
                if (x <= ApplozicAudioRecordAnimation.getX(slideTextLinearlayout) + slideTextLinearlayout.getWidth() + dp(30)) {
                    if (startedDraggingX == -1) {
                        startedDraggingX = x;
                        distCanMove = (audioRecordFrameLayout.getMeasuredWidth() - slideTextLinearlayout.getMeasuredWidth() - dp(48)) / 2.0f;
                        if (distCanMove <= 0) {
                            distCanMove = dp(80);
                        } else if (distCanMove > dp(80)) {
                            distCanMove = dp(80);
                        }
                    }
                }
                if (params.leftMargin > dp(30)) {
                    params.leftMargin = dp(30);
                    slideTextLinearlayout.setLayoutParams(params);
                    ApplozicAudioRecordAnimation.setAlpha(slideTextLinearlayout, 1);
                    startedDraggingX = -1;
                }
            }
            view.onTouchEvent(motionEvent);
            return true;
        }
    });
    scheduleOption.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ConversationScheduler conversationScheduler = new ConversationScheduler();
            conversationScheduler.setScheduleOption(scheduleOption);
            conversationScheduler.setScheduledTimeHolder(scheduledTimeHolder);
            conversationScheduler.setCancelable(false);
            conversationScheduler.show(getActivity().getSupportFragmentManager(), "conversationScheduler");
        }
    });
    messageEditText.addTextChangedListener(new TextWatcher() {

        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before, int count) {
        // EmojiconHandler.addEmojis(getActivity(), messageEditText.getText(), Utils.dpToPx(30));
        // TODO: write code to emoticons .....
        }

        public void afterTextChanged(Editable s) {
            try {
                if (!TextUtils.isEmpty(s.toString()) && s.toString().trim().length() > 0 && !typingStarted) {
                    // Log.i(TAG, "typing started event...");
                    typingStarted = true;
                    handleSendAndRecordButtonView(true);
                    if (contact != null || channel != null && !Channel.GroupType.OPEN.getValue().equals(channel.getType()) || contact != null) {
                        Intent intent = new Intent(getActivity(), ApplozicMqttIntentService.class);
                        intent.putExtra(ApplozicMqttIntentService.CHANNEL, channel);
                        intent.putExtra(ApplozicMqttIntentService.CONTACT, contact);
                        intent.putExtra(ApplozicMqttIntentService.TYPING, typingStarted);
                        ApplozicMqttIntentService.enqueueWork(getActivity(), intent);
                    }
                } else if (s.toString().trim().length() == 0 && typingStarted) {
                    // Log.i(TAG, "typing stopped event...");
                    typingStarted = false;
                    handleSendAndRecordButtonView(false);
                    if (contact != null || channel != null && !Channel.GroupType.OPEN.getValue().equals(channel.getType()) || contact != null) {
                        Intent intent = new Intent(getActivity(), ApplozicMqttIntentService.class);
                        intent.putExtra(ApplozicMqttIntentService.CHANNEL, channel);
                        intent.putExtra(ApplozicMqttIntentService.CONTACT, contact);
                        intent.putExtra(ApplozicMqttIntentService.TYPING, typingStarted);
                        ApplozicMqttIntentService.enqueueWork(getActivity(), intent);
                    }
                }
            } catch (Exception e) {
            }
        // sendButton.setVisibility((s == null || s.toString().trim().length() == 0) && TextUtils.isEmpty(filePath) ? View.GONE : View.VISIBLE);
        // attachButton.setVisibility(s == null || s.toString().trim().length() == 0 ? View.VISIBLE : View.GONE);
        }
    });
    messageEditText.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            emoticonsFrameLayout.setVisibility(View.GONE);
        }
    });
    if (channel != null && Channel.GroupType.OPEN.getValue().equals(channel.getType())) {
        attachButton.setVisibility(View.GONE);
        messageEditText.setPadding(20, 0, 0, 0);
    }
    attachReplyCancelLayout.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            messageMetaData = null;
            replayRelativeLayout.setVisibility(View.GONE);
        }
    });
    messageEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                if (typingStarted) {
                    if (contact != null || channel != null && !Channel.GroupType.OPEN.getValue().equals(channel.getType()) || contact != null) {
                        Intent intent = new Intent(getActivity(), ApplozicMqttIntentService.class);
                        intent.putExtra(ApplozicMqttIntentService.CHANNEL, channel);
                        intent.putExtra(ApplozicMqttIntentService.CONTACT, contact);
                        intent.putExtra(ApplozicMqttIntentService.TYPING, typingStarted);
                        ApplozicMqttIntentService.enqueueWork(getActivity(), intent);
                    }
                }
                emoticonsFrameLayout.setVisibility(View.GONE);
                multimediaPopupGrid.setVisibility(View.GONE);
            }
        }
    });
    messageEditText.setOnKeyListener(new View.OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                Utils.toggleSoftKeyBoard(getActivity(), true);
                return true;
            }
            return false;
        }
    });
    recordButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if (!isToastVisible && !typingStarted) {
                vibrate();
                errorEditTextView.requestFocus();
                errorEditTextView.setError(getResources().getString(R.string.hold_to_record_release_to_send));
                isToastVisible = true;
                new CountDownTimer(3000, 1000) {

                    @Override
                    public void onTick(long millisUntilFinished) {
                    }

                    @Override
                    public void onFinish() {
                        errorEditTextView.setError(null);
                        messageEditText.requestFocus();
                        isToastVisible = false;
                    }
                }.start();
            } else {
                errorEditTextView.setError(null);
                isToastVisible = false;
            }
            emoticonsFrameLayout.setVisibility(View.GONE);
            sendMessage();
            handleSendAndRecordButtonView(false);
            errorEditTextView.setVisibility(View.VISIBLE);
        }
    });
    sendButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            emoticonsFrameLayout.setVisibility(View.GONE);
            sendMessage();
            if (contact != null && !contact.isBlocked() || channel != null) {
                handleSendAndRecordButtonView(false);
            }
        }
    });
    closeAttachmentLayout.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            filePath = null;
            if (previewThumbnail != null) {
                previewThumbnail.recycle();
            }
            attachmentLayout.setVisibility(View.GONE);
        }
    });
    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            if (recyclerDetailConversationAdapter != null) {
                recyclerDetailConversationAdapter.contactImageLoader.setPauseWork(newState == RecyclerView.SCROLL_STATE_DRAGGING);
            }
        }

        @Override
        public void onScrolled(final RecyclerView recyclerView, int dx, int dy) {
            // super.onScrolled(recyclerView, dx, dy);
            if (loadMore) {
                int topRowVerticalPosition = (recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();
                swipeLayout.setEnabled(topRowVerticalPosition >= 0);
            }
        }
    });
    toolbar.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (channel != null) {
                if (channel.isDeleted()) {
                    return;
                }
                if (alCustomizationSettings.isGroupInfoScreenVisible() && !Channel.GroupType.GROUPOFTWO.getValue().equals(channel.getType()) && !Channel.GroupType.OPEN.getValue().equals(channel.getType())) {
                    Intent channelInfo = new Intent(getActivity(), ChannelInfoActivity.class);
                    channelInfo.putExtra(ChannelInfoActivity.CHANNEL_KEY, channel.getKey());
                    startActivity(channelInfo);
                } else if (Channel.GroupType.GROUPOFTWO.getValue().equals(channel.getType()) && alCustomizationSettings.isUserProfileFragment()) {
                    UserProfileFragment userProfileFragment = (UserProfileFragment) UIService.getFragmentByTag(getActivity(), ConversationUIService.USER_PROFILE_FRAMENT);
                    if (userProfileFragment == null) {
                        String userId = ChannelService.getInstance(getActivity()).getGroupOfTwoReceiverUserId(channel.getKey());
                        if (!TextUtils.isEmpty(userId)) {
                            Contact newcContact = appContactService.getContactById(userId);
                            userProfileFragment = new UserProfileFragment();
                            Bundle bundle = new Bundle();
                            bundle.putSerializable(ConversationUIService.CONTACT, newcContact);
                            userProfileFragment.setArguments(bundle);
                            ConversationActivity.addFragment(getActivity(), userProfileFragment, ConversationUIService.USER_PROFILE_FRAMENT);
                        }
                    }
                }
            } else {
                if (alCustomizationSettings.isUserProfileFragment()) {
                    UserProfileFragment userProfileFragment = (UserProfileFragment) UIService.getFragmentByTag(getActivity(), ConversationUIService.USER_PROFILE_FRAMENT);
                    if (userProfileFragment == null) {
                        userProfileFragment = new UserProfileFragment();
                        Bundle bundle = new Bundle();
                        bundle.putSerializable(ConversationUIService.CONTACT, contact);
                        userProfileFragment.setArguments(bundle);
                        ConversationActivity.addFragment(getActivity(), userProfileFragment, ConversationUIService.USER_PROFILE_FRAMENT);
                    }
                }
            }
        }
    });
    recyclerView.setLongClickable(true);
    // Adding fragment for emoticons...
    // //Fragment emojiFragment = new EmojiconsFragment(this, this);
    // Fragment emojiFragment = new EmojiconsFragment();
    // FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
    // transaction.add(R.id.emojicons_frame_layout, emojiFragment).commit();
    messageTemplate = alCustomizationSettings.getMessageTemplate();
    if (messageTemplate != null && messageTemplate.isEnabled()) {
        templateAdapter = new MobicomMessageTemplateAdapter(messageTemplate);
        MobicomMessageTemplateAdapter.MessageTemplateDataListener listener = new MobicomMessageTemplateAdapter.MessageTemplateDataListener() {

            @Override
            public void onItemSelected(String message) {
                final Message lastMessage = !messageList.isEmpty() ? messageList.get(messageList.size() - 1) : null;
                if ((messageTemplate.getTextMessageList() != null && !messageTemplate.getTextMessageList().getMessageList().isEmpty() && messageTemplate.getTextMessageList().isSendMessageOnClick() && "text".equals(getMessageType(lastMessage))) || (messageTemplate.getImageMessageList() != null && !messageTemplate.getImageMessageList().getMessageList().isEmpty() && messageTemplate.getImageMessageList().isSendMessageOnClick() && "image".equals(getMessageType(lastMessage))) || (messageTemplate.getVideoMessageList() != null && !messageTemplate.getVideoMessageList().getMessageList().isEmpty() && messageTemplate.getVideoMessageList().isSendMessageOnClick() && "video".equals(getMessageType(lastMessage))) || (messageTemplate.getLocationMessageList() != null && !messageTemplate.getLocationMessageList().getMessageList().isEmpty() && messageTemplate.getLocationMessageList().isSendMessageOnClick() && "location".equals(getMessageType(lastMessage))) || (messageTemplate.getContactMessageList() != null && !messageTemplate.getContactMessageList().getMessageList().isEmpty() && messageTemplate.getContactMessageList().isSendMessageOnClick() && "contact".equals(getMessageType(lastMessage))) || (messageTemplate.getAudioMessageList() != null && !messageTemplate.getAudioMessageList().getMessageList().isEmpty() && messageTemplate.getAudioMessageList().isSendMessageOnClick() && "audio".equals(getMessageType(lastMessage))) || messageTemplate.getSendMessageOnClick()) {
                    sendMessage(message);
                }
                if (messageTemplate.getHideOnSend()) {
                    AlMessageMetadataUpdateTask.MessageMetadataListener listener1 = new AlMessageMetadataUpdateTask.MessageMetadataListener() {

                        @Override
                        public void onSuccess(Context context, String message) {
                            templateAdapter.setMessageList(new HashMap<String, String>());
                            templateAdapter.notifyDataSetChanged();
                        }

                        @Override
                        public void onFailure(Context context, String error) {
                        }
                    };
                    if (lastMessage != null) {
                        Map<String, String> metadata = lastMessage.getMetadata();
                        metadata.put("isDoneWithClicking", "true");
                        lastMessage.setMetadata(metadata);
                        new AlMessageMetadataUpdateTask(getContext(), lastMessage.getKeyString(), lastMessage.getMetadata(), listener1).execute();
                    }
                }
                final Intent intent = new Intent();
                intent.setAction("com.applozic.mobicomkit.TemplateMessage");
                intent.putExtra("templateMessage", message);
                intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
                getActivity().sendBroadcast(intent);
            }
        };
        templateAdapter.setOnItemSelected(listener);
        LinearLayoutManager horizontalLayoutManagaer = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
        messageTemplateView.setLayoutManager(horizontalLayoutManagaer);
        messageTemplateView.setAdapter(templateAdapter);
    }
    createTemplateMessages();
    return list;
}
Also used : Configuration(android.content.res.Configuration) ViewConfiguration(android.view.ViewConfiguration) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) AlMessageMetadataUpdateTask(com.applozic.mobicomkit.uiwidgets.async.AlMessageMetadataUpdateTask) ChannelInfoActivity(com.applozic.mobicomkit.uiwidgets.conversation.activity.ChannelInfoActivity) ImageView(android.widget.ImageView) ConversationActivity(com.applozic.mobicomkit.uiwidgets.conversation.activity.ConversationActivity) ApplozicMqttIntentService(com.applozic.mobicomkit.api.conversation.ApplozicMqttIntentService) GradientDrawable(android.graphics.drawable.GradientDrawable) AdapterView(android.widget.AdapterView) Message(com.applozic.mobicomkit.api.conversation.Message) Conversation(com.applozic.mobicommons.people.channel.Conversation) KeyEvent(android.view.KeyEvent) ImageButton(android.widget.ImageButton) RecyclerViewPositionHelper(com.applozic.mobicomkit.uiwidgets.conversation.activity.RecyclerViewPositionHelper) ConversationScheduler(com.applozic.mobicomkit.uiwidgets.schedule.ConversationScheduler) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) Context(android.content.Context) Bundle(android.os.Bundle) CountDownTimer(android.os.CountDownTimer) UserProfileFragment(com.applozic.mobicomkit.uiwidgets.people.fragment.UserProfileFragment) Intent(android.content.Intent) ImageView(android.widget.ImageView) RecyclerView(android.support.v7.widget.RecyclerView) GridView(android.widget.GridView) View(android.view.View) ApplozicDocumentView(com.applozic.mobicomkit.uiwidgets.attachmentview.ApplozicDocumentView) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) AttachmentView(com.applozic.mobicomkit.api.attachment.AttachmentView) GestureDetectorCompat(android.support.v4.view.GestureDetectorCompat) Collections.disjoint(java.util.Collections.disjoint) MotionEvent(android.view.MotionEvent) Contact(com.applozic.mobicommons.people.contact.Contact) FrameLayout(android.widget.FrameLayout) RecyclerView(android.support.v7.widget.RecyclerView) MobicomMessageTemplateAdapter(com.applozic.mobicomkit.uiwidgets.conversation.adapter.MobicomMessageTemplateAdapter)

Aggregations

SwipeRefreshLayout (android.support.v4.widget.SwipeRefreshLayout)102 View (android.view.View)55 RecyclerView (android.support.v7.widget.RecyclerView)43 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)41 TextView (android.widget.TextView)29 Bundle (android.os.Bundle)21 Intent (android.content.Intent)17 Handler (android.os.Handler)17 DefaultItemAnimator (android.support.v7.widget.DefaultItemAnimator)16 AdapterView (android.widget.AdapterView)15 ListView (android.widget.ListView)15 ArrayList (java.util.ArrayList)13 ImageView (android.widget.ImageView)10 ViewGroup (android.view.ViewGroup)9 Context (android.content.Context)8 LayoutInflater (android.view.LayoutInflater)8 GridLayoutManager (android.support.v7.widget.GridLayoutManager)7 PandaRecyclerView (com.instructure.pandarecycler.PandaRecyclerView)7 SearchView (android.support.v7.widget.SearchView)6 Toolbar (android.support.v7.widget.Toolbar)6