Search in sources :

Example 1 with ReminderView

use of org.thoughtcrime.securesms.components.reminder.ReminderView in project Signal-Android by WhisperSystems.

the class ConversationListFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle) {
    final View view = inflater.inflate(R.layout.conversation_list_fragment, container, false);
    reminderView = ViewUtil.findById(view, R.id.reminder);
    list = ViewUtil.findById(view, R.id.list);
    fab = ViewUtil.findById(view, R.id.fab);
    if (archive)
        fab.setVisibility(View.GONE);
    else
        fab.setVisibility(View.VISIBLE);
    reminderView.setOnDismissListener(new OnDismissListener() {

        @Override
        public void onDismiss() {
            updateReminders();
        }
    });
    list.setHasFixedSize(true);
    list.setLayoutManager(new LinearLayoutManager(getActivity()));
    list.setItemAnimator(new DeleteItemAnimator());
    new ItemTouchHelper(new ArchiveListenerCallback()).attachToRecyclerView(list);
    return view;
}
Also used : ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) OnDismissListener(org.thoughtcrime.securesms.components.reminder.ReminderView.OnDismissListener) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) View(android.view.View) ReminderView(org.thoughtcrime.securesms.components.reminder.ReminderView) RecyclerView(android.support.v7.widget.RecyclerView) DeleteItemAnimator(org.thoughtcrime.securesms.components.recyclerview.DeleteItemAnimator)

Example 2 with ReminderView

use of org.thoughtcrime.securesms.components.reminder.ReminderView in project Signal-Android by signalapp.

the class ConversationActivity method initializeViews.

private void initializeViews() {
    ActionBar supportActionBar = getSupportActionBar();
    if (supportActionBar == null)
        throw new AssertionError();
    titleView = (ConversationTitleView) supportActionBar.getCustomView();
    buttonToggle = ViewUtil.findById(this, R.id.button_toggle);
    sendButton = ViewUtil.findById(this, R.id.send_button);
    attachButton = ViewUtil.findById(this, R.id.attach_button);
    composeText = ViewUtil.findById(this, R.id.embedded_text_editor);
    charactersLeft = ViewUtil.findById(this, R.id.space_left);
    emojiDrawerStub = ViewUtil.findStubById(this, R.id.emoji_drawer_stub);
    unblockButton = ViewUtil.findById(this, R.id.unblock_button);
    makeDefaultSmsButton = ViewUtil.findById(this, R.id.make_default_sms_button);
    registerButton = ViewUtil.findById(this, R.id.register_button);
    composePanel = ViewUtil.findById(this, R.id.bottom_panel);
    container = ViewUtil.findById(this, R.id.layout_container);
    reminderView = ViewUtil.findStubById(this, R.id.reminder_stub);
    unverifiedBannerView = ViewUtil.findStubById(this, R.id.unverified_banner_stub);
    groupShareProfileView = ViewUtil.findStubById(this, R.id.group_share_profile_view_stub);
    quickAttachmentDrawer = ViewUtil.findById(this, R.id.quick_attachment_drawer);
    quickAttachmentToggle = ViewUtil.findById(this, R.id.quick_attachment_toggle);
    inputPanel = ViewUtil.findById(this, R.id.bottom_panel);
    ImageButton quickCameraToggle = ViewUtil.findById(this, R.id.quick_camera_toggle);
    View composeBubble = ViewUtil.findById(this, R.id.compose_bubble);
    container.addOnKeyboardShownListener(this);
    inputPanel.setListener(this);
    inputPanel.setMediaListener(this);
    int[] attributes = new int[] { R.attr.conversation_item_bubble_background };
    TypedArray colors = obtainStyledAttributes(attributes);
    int defaultColor = colors.getColor(0, Color.WHITE);
    composeBubble.getBackground().setColorFilter(defaultColor, PorterDuff.Mode.MULTIPLY);
    colors.recycle();
    attachmentTypeSelector = null;
    attachmentManager = new AttachmentManager(this, this);
    audioRecorder = new AudioRecorder(this);
    SendButtonListener sendButtonListener = new SendButtonListener();
    ComposeKeyPressedListener composeKeyPressedListener = new ComposeKeyPressedListener();
    composeText.setOnEditorActionListener(sendButtonListener);
    attachButton.setOnClickListener(new AttachButtonListener());
    attachButton.setOnLongClickListener(new AttachButtonLongClickListener());
    sendButton.setOnClickListener(sendButtonListener);
    sendButton.setEnabled(true);
    sendButton.addOnTransportChangedListener((newTransport, manuallySelected) -> {
        calculateCharactersRemaining();
        composeText.setTransport(newTransport);
        buttonToggle.getBackground().setColorFilter(newTransport.getBackgroundColor(), Mode.MULTIPLY);
        buttonToggle.getBackground().invalidateSelf();
        if (manuallySelected)
            recordSubscriptionIdPreference(newTransport.getSimSubscriptionId());
    });
    titleView.setOnClickListener(v -> handleConversationSettings());
    titleView.setOnLongClickListener(v -> handleDisplayQuickContact());
    titleView.setOnBackClickedListener(view -> super.onBackPressed());
    unblockButton.setOnClickListener(v -> handleUnblock());
    makeDefaultSmsButton.setOnClickListener(v -> handleMakeDefaultSms());
    registerButton.setOnClickListener(v -> handleRegisterForSignal());
    composeText.setOnKeyListener(composeKeyPressedListener);
    composeText.addTextChangedListener(composeKeyPressedListener);
    composeText.setOnEditorActionListener(sendButtonListener);
    composeText.setOnClickListener(composeKeyPressedListener);
    composeText.setOnFocusChangeListener(composeKeyPressedListener);
    if (QuickAttachmentDrawer.isDeviceSupported(this)) {
        quickAttachmentDrawer.setListener(this);
        quickCameraToggle.setOnClickListener(new QuickCameraToggleListener());
    } else {
        quickCameraToggle.setVisibility(View.GONE);
        quickCameraToggle.setEnabled(false);
    }
}
Also used : ReminderView(org.thoughtcrime.securesms.components.reminder.ReminderView) UnverifiedBannerView(org.thoughtcrime.securesms.components.identity.UnverifiedBannerView) View(android.view.View) TextView(android.widget.TextView) GroupShareProfileView(org.thoughtcrime.securesms.profiles.GroupShareProfileView) SuppressLint(android.annotation.SuppressLint) ImageButton(android.widget.ImageButton) TypedArray(android.content.res.TypedArray) AudioRecorder(org.thoughtcrime.securesms.audio.AudioRecorder) AttachmentManager(org.thoughtcrime.securesms.mms.AttachmentManager) ActionBar(android.support.v7.app.ActionBar)

Example 3 with ReminderView

use of org.thoughtcrime.securesms.components.reminder.ReminderView in project Signal-Android by signalapp.

the class ConversationListFragment method onCreateView.

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle bundle) {
    final View view = inflater.inflate(R.layout.conversation_list_fragment, container, false);
    reminderView = ViewUtil.findById(view, R.id.reminder);
    list = ViewUtil.findById(view, R.id.list);
    fab = ViewUtil.findById(view, R.id.fab);
    emptyState = ViewUtil.findById(view, R.id.empty_state);
    emptySearch = ViewUtil.findById(view, R.id.empty_search);
    if (archive)
        fab.setVisibility(View.GONE);
    else
        fab.setVisibility(View.VISIBLE);
    reminderView.setOnDismissListener(() -> updateReminders(true));
    list.setHasFixedSize(true);
    list.setLayoutManager(new LinearLayoutManager(getActivity()));
    list.setItemAnimator(new DeleteItemAnimator());
    list.addItemDecoration(new InsetDividerItemDecoration(getActivity()));
    new ItemTouchHelper(new ArchiveListenerCallback()).attachToRecyclerView(list);
    return view;
}
Also used : ItemTouchHelper(android.support.v7.widget.helper.ItemTouchHelper) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) View(android.view.View) TextView(android.widget.TextView) ReminderView(org.thoughtcrime.securesms.components.reminder.ReminderView) RecyclerView(android.support.v7.widget.RecyclerView) DeleteItemAnimator(org.thoughtcrime.securesms.components.recyclerview.DeleteItemAnimator)

Example 4 with ReminderView

use of org.thoughtcrime.securesms.components.reminder.ReminderView in project Signal-Android by WhisperSystems.

the class ConversationActivity method initializeViews.

private void initializeViews() {
    titleView = (ConversationTitleView) getSupportActionBar().getCustomView();
    buttonToggle = ViewUtil.findById(this, R.id.button_toggle);
    sendButton = ViewUtil.findById(this, R.id.send_button);
    attachButton = ViewUtil.findById(this, R.id.attach_button);
    composeText = ViewUtil.findById(this, R.id.embedded_text_editor);
    charactersLeft = ViewUtil.findById(this, R.id.space_left);
    emojiDrawerStub = ViewUtil.findStubById(this, R.id.emoji_drawer_stub);
    unblockButton = ViewUtil.findById(this, R.id.unblock_button);
    makeDefaultSmsButton = ViewUtil.findById(this, R.id.make_default_sms_button);
    composePanel = ViewUtil.findById(this, R.id.bottom_panel);
    container = ViewUtil.findById(this, R.id.layout_container);
    reminderView = ViewUtil.findStubById(this, R.id.reminder_stub);
    quickAttachmentDrawer = ViewUtil.findById(this, R.id.quick_attachment_drawer);
    quickAttachmentToggle = ViewUtil.findById(this, R.id.quick_attachment_toggle);
    inputPanel = ViewUtil.findById(this, R.id.bottom_panel);
    ImageButton quickCameraToggle = ViewUtil.findById(this, R.id.quick_camera_toggle);
    View composeBubble = ViewUtil.findById(this, R.id.compose_bubble);
    container.addOnKeyboardShownListener(this);
    inputPanel.setListener(this);
    inputPanel.setMediaListener(this);
    int[] attributes = new int[] { R.attr.conversation_item_bubble_background };
    TypedArray colors = obtainStyledAttributes(attributes);
    int defaultColor = colors.getColor(0, Color.WHITE);
    composeBubble.getBackground().setColorFilter(defaultColor, PorterDuff.Mode.MULTIPLY);
    colors.recycle();
    attachmentTypeSelector = null;
    attachmentManager = new AttachmentManager(this, this);
    audioRecorder = new AudioRecorder(this, masterSecret);
    SendButtonListener sendButtonListener = new SendButtonListener();
    ComposeKeyPressedListener composeKeyPressedListener = new ComposeKeyPressedListener();
    composeText.setOnEditorActionListener(sendButtonListener);
    attachButton.setOnClickListener(new AttachButtonListener());
    attachButton.setOnLongClickListener(new AttachButtonLongClickListener());
    sendButton.setOnClickListener(sendButtonListener);
    sendButton.setEnabled(true);
    sendButton.addOnTransportChangedListener(new OnTransportChangedListener() {

        @Override
        public void onChange(TransportOption newTransport, boolean manuallySelected) {
            calculateCharactersRemaining();
            composeText.setTransport(newTransport);
            buttonToggle.getBackground().setColorFilter(newTransport.getBackgroundColor(), Mode.MULTIPLY);
            buttonToggle.getBackground().invalidateSelf();
            if (manuallySelected)
                recordSubscriptionIdPreference(newTransport.getSimSubscriptionId());
        }
    });
    titleView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(ConversationActivity.this, RecipientPreferenceActivity.class);
            intent.putExtra(RecipientPreferenceActivity.RECIPIENTS_EXTRA, recipients.getIds());
            intent.putExtra(RecipientPreferenceActivity.CAN_HAVE_SAFETY_NUMBER_EXTRA, isSecureText && !isSelfConversation());
            startActivitySceneTransition(intent, titleView.findViewById(R.id.title), "recipient_name");
        }
    });
    unblockButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            handleUnblock();
        }
    });
    makeDefaultSmsButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            handleMakeDefaultSms();
        }
    });
    composeText.setOnKeyListener(composeKeyPressedListener);
    composeText.addTextChangedListener(composeKeyPressedListener);
    composeText.setOnEditorActionListener(sendButtonListener);
    composeText.setOnClickListener(composeKeyPressedListener);
    composeText.setOnFocusChangeListener(composeKeyPressedListener);
    if (QuickAttachmentDrawer.isDeviceSupported(this)) {
        quickAttachmentDrawer.setListener(this);
        quickCameraToggle.setOnClickListener(new QuickCameraToggleListener());
    } else {
        quickCameraToggle.setVisibility(View.GONE);
        quickCameraToggle.setEnabled(false);
    }
}
Also used : OnTransportChangedListener(org.thoughtcrime.securesms.TransportOptions.OnTransportChangedListener) Intent(android.content.Intent) ReminderView(org.thoughtcrime.securesms.components.reminder.ReminderView) View(android.view.View) TextView(android.widget.TextView) ImageButton(android.widget.ImageButton) TypedArray(android.content.res.TypedArray) AudioRecorder(org.thoughtcrime.securesms.audio.AudioRecorder) OnClickListener(android.view.View.OnClickListener) AttachmentManager(org.thoughtcrime.securesms.mms.AttachmentManager)

Aggregations

View (android.view.View)4 ReminderView (org.thoughtcrime.securesms.components.reminder.ReminderView)4 TextView (android.widget.TextView)3 TypedArray (android.content.res.TypedArray)2 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)2 RecyclerView (android.support.v7.widget.RecyclerView)2 ItemTouchHelper (android.support.v7.widget.helper.ItemTouchHelper)2 ImageButton (android.widget.ImageButton)2 AudioRecorder (org.thoughtcrime.securesms.audio.AudioRecorder)2 DeleteItemAnimator (org.thoughtcrime.securesms.components.recyclerview.DeleteItemAnimator)2 AttachmentManager (org.thoughtcrime.securesms.mms.AttachmentManager)2 SuppressLint (android.annotation.SuppressLint)1 Intent (android.content.Intent)1 ActionBar (android.support.v7.app.ActionBar)1 OnClickListener (android.view.View.OnClickListener)1 OnTransportChangedListener (org.thoughtcrime.securesms.TransportOptions.OnTransportChangedListener)1 UnverifiedBannerView (org.thoughtcrime.securesms.components.identity.UnverifiedBannerView)1 OnDismissListener (org.thoughtcrime.securesms.components.reminder.ReminderView.OnDismissListener)1 GroupShareProfileView (org.thoughtcrime.securesms.profiles.GroupShareProfileView)1