Search in sources :

Example 1 with ConversationAdapter

use of eu.siacs.conversations.ui.adapter.ConversationAdapter in project Conversations by siacs.

the class ShareWithActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getActionBar() != null) {
        getActionBar().setDisplayHomeAsUpEnabled(false);
        getActionBar().setHomeButtonEnabled(false);
    }
    setContentView(R.layout.share_with);
    setTitle(getString(R.string.title_activity_sharewith));
    mListView = (ListView) findViewById(R.id.choose_conversation_list);
    mAdapter = new ConversationAdapter(this, this.mConversations);
    mListView.setAdapter(mAdapter);
    mListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
            share(mConversations.get(position));
        }
    });
    this.share = new Share();
}
Also used : OnItemClickListener(android.widget.AdapterView.OnItemClickListener) ConversationAdapter(eu.siacs.conversations.ui.adapter.ConversationAdapter) View(android.view.View) AdapterView(android.widget.AdapterView) ListView(android.widget.ListView)

Example 2 with ConversationAdapter

use of eu.siacs.conversations.ui.adapter.ConversationAdapter in project Conversations by siacs.

the class ConversationActivity method onCreate.

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        mOpenConversation = savedInstanceState.getString(STATE_OPEN_CONVERSATION, null);
        mPanelOpen = savedInstanceState.getBoolean(STATE_PANEL_OPEN, true);
        int pos = savedInstanceState.getInt(STATE_FIRST_VISIBLE, -1);
        int offset = savedInstanceState.getInt(STATE_OFFSET_FROM_TOP, 1);
        if (pos >= 0 && offset <= 0) {
            Log.d(Config.LOGTAG, "retrieved scroll position from instanceState " + pos + ":" + offset);
            mScrollPosition = new Pair<>(pos, offset);
        } else {
            mScrollPosition = null;
        }
        String pending = savedInstanceState.getString(STATE_PENDING_URI, null);
        if (pending != null) {
            Log.d(Config.LOGTAG, "ConversationsActivity.onCreate() - restoring pending image uri");
            mPendingImageUris.clear();
            mPendingImageUris.add(Uri.parse(pending));
        }
    }
    setContentView(R.layout.fragment_conversations_overview);
    this.mConversationFragment = new ConversationFragment();
    FragmentTransaction transaction = getFragmentManager().beginTransaction();
    transaction.replace(R.id.selected_conversation, this.mConversationFragment, "conversation");
    transaction.commit();
    listView = (EnhancedListView) findViewById(R.id.list);
    this.listAdapter = new ConversationAdapter(this, conversationList);
    listView.setAdapter(this.listAdapter);
    final ActionBar actionBar = getActionBar();
    if (actionBar != null) {
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_TITLE);
    }
    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View clickedView, int position, long arg3) {
            if (getSelectedConversation() != conversationList.get(position)) {
                setSelectedConversation(conversationList.get(position));
                ConversationActivity.this.mConversationFragment.reInit(getSelectedConversation());
                conversationWasSelectedByKeyboard = false;
            }
            hideConversationsOverview();
            openConversation();
        }
    });
    listView.setDismissCallback(new EnhancedListView.OnDismissCallback() {

        @Override
        public EnhancedListView.Undoable onDismiss(final EnhancedListView enhancedListView, final int position) {
            final int index = listView.getFirstVisiblePosition();
            View v = listView.getChildAt(0);
            final int top = (v == null) ? 0 : (v.getTop() - listView.getPaddingTop());
            try {
                swipedConversation = listAdapter.getItem(position);
            } catch (IndexOutOfBoundsException e) {
                return null;
            }
            listAdapter.remove(swipedConversation);
            xmppConnectionService.markRead(swipedConversation);
            final boolean formerlySelected = (getSelectedConversation() == swipedConversation);
            if (position == 0 && listAdapter.getCount() == 0) {
                endConversation(swipedConversation, false, true);
                return null;
            } else if (formerlySelected) {
                setSelectedConversation(listAdapter.getItem(0));
                ConversationActivity.this.mConversationFragment.reInit(getSelectedConversation());
            }
            return new EnhancedListView.Undoable() {

                @Override
                public void undo() {
                    listAdapter.insert(swipedConversation, position);
                    if (formerlySelected) {
                        setSelectedConversation(swipedConversation);
                        ConversationActivity.this.mConversationFragment.reInit(getSelectedConversation());
                    }
                    swipedConversation = null;
                    listView.setSelectionFromTop(index + (listView.getChildCount() < position ? 1 : 0), top);
                }

                @Override
                public void discard() {
                    if (!swipedConversation.isRead() && swipedConversation.getMode() == Conversation.MODE_SINGLE) {
                        swipedConversation = null;
                        return;
                    }
                    endConversation(swipedConversation, false, false);
                    swipedConversation = null;
                }

                @Override
                public String getTitle() {
                    if (swipedConversation.getMode() == Conversation.MODE_MULTI) {
                        return getResources().getString(R.string.title_undo_swipe_out_muc);
                    } else {
                        return getResources().getString(R.string.title_undo_swipe_out_conversation);
                    }
                }
            };
        }
    });
    listView.enableSwipeToDismiss();
    listView.setSwipingLayout(R.id.swipeable_item);
    listView.setUndoStyle(EnhancedListView.UndoStyle.SINGLE_POPUP);
    listView.setUndoHideDelay(5000);
    listView.setRequireTouchBeforeDismiss(false);
    mContentView = findViewById(R.id.content_view_spl);
    if (mContentView == null) {
        mContentView = findViewById(R.id.content_view_ll);
    }
    if (mContentView instanceof SlidingPaneLayout) {
        SlidingPaneLayout mSlidingPaneLayout = (SlidingPaneLayout) mContentView;
        mSlidingPaneLayout.setShadowResource(R.drawable.es_slidingpane_shadow);
        mSlidingPaneLayout.setSliderFadeColor(0);
        mSlidingPaneLayout.setPanelSlideListener(new PanelSlideListener() {

            @Override
            public void onPanelOpened(View arg0) {
                mShouldPanelBeOpen.set(true);
                updateActionBarTitle();
                invalidateOptionsMenu();
                hideKeyboard();
                if (xmppConnectionServiceBound) {
                    xmppConnectionService.getNotificationService().setOpenConversation(null);
                }
                closeContextMenu();
            }

            @Override
            public void onPanelClosed(View arg0) {
                mShouldPanelBeOpen.set(false);
                listView.discardUndo();
                openConversation();
            }

            @Override
            public void onPanelSlide(View arg0, float arg1) {
            // TODO Auto-generated method stub
            }
        });
    }
}
Also used : OnItemClickListener(android.widget.AdapterView.OnItemClickListener) PanelSlideListener(android.support.v4.widget.SlidingPaneLayout.PanelSlideListener) ConversationAdapter(eu.siacs.conversations.ui.adapter.ConversationAdapter) SlidingPaneLayout(android.support.v4.widget.SlidingPaneLayout) View(android.view.View) AdapterView(android.widget.AdapterView) EnhancedListView(de.timroes.android.listview.EnhancedListView) SuppressLint(android.annotation.SuppressLint) FragmentTransaction(android.app.FragmentTransaction) EnhancedListView(de.timroes.android.listview.EnhancedListView) ActionBar(android.app.ActionBar)

Aggregations

View (android.view.View)2 AdapterView (android.widget.AdapterView)2 OnItemClickListener (android.widget.AdapterView.OnItemClickListener)2 ConversationAdapter (eu.siacs.conversations.ui.adapter.ConversationAdapter)2 SuppressLint (android.annotation.SuppressLint)1 ActionBar (android.app.ActionBar)1 FragmentTransaction (android.app.FragmentTransaction)1 SlidingPaneLayout (android.support.v4.widget.SlidingPaneLayout)1 PanelSlideListener (android.support.v4.widget.SlidingPaneLayout.PanelSlideListener)1 ListView (android.widget.ListView)1 EnhancedListView (de.timroes.android.listview.EnhancedListView)1