Search in sources :

Example 1 with ValueChangedListener

use of im.actor.runtime.mvvm.ValueChangedListener in project actor-platform by actorapp.

the class GroupAdminFragment method onCreateView.

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View res = inflater.inflate(R.layout.fragment_edit_admin, container, false);
    res.findViewById(R.id.rootContainer).setBackgroundColor(style.getBackyardBackgroundColor());
    // Group Type
    TextView groupTypeTitle = (TextView) res.findViewById(R.id.groupTypeTitle);
    TextView groupTypeValue = (TextView) res.findViewById(R.id.groupTypeValue);
    groupTypeTitle.setTextColor(style.getTextPrimaryColor());
    groupTypeValue.setTextColor(style.getListActionColor());
    if (groupVM.getGroupType() == GroupType.CHANNEL) {
        groupTypeTitle.setText(R.string.channel_type);
    } else {
        groupTypeTitle.setText(R.string.group_type);
    }
    bind(groupVM.getShortName(), new ValueChangedListener<String>() {

        @Override
        public void onChanged(String val, Value<String> valueModel) {
            if (val == null) {
                groupTypeValue.setText(groupVM.getGroupType() == GroupType.CHANNEL ? R.string.channel_type_private : R.string.group_type_private);
            } else {
                groupTypeValue.setText(groupVM.getGroupType() == GroupType.CHANNEL ? R.string.channel_type_pubic : R.string.group_type_pubic);
            }
        }
    });
    if (groupVM.getIsCanEditAdministration().get()) {
        res.findViewById(R.id.groupTypeContainer).setOnClickListener(v -> {
            startActivity(new Intent(getContext(), GroupTypeActivity.class).putExtra(Intents.EXTRA_GROUP_ID, groupVM.getId()));
        });
    }
    // Share History
    View shareContainer = res.findViewById(R.id.shareHistoryContainer);
    TextView shareHint = (TextView) res.findViewById(R.id.shareHistoryHint);
    shareHint.setTextColor(style.getTextSecondaryColor());
    TextView shareHistory = (TextView) res.findViewById(R.id.shareHistory);
    shareHistory.setTextColor(style.getTextPrimaryColor());
    TextView shareHistoryValue = (TextView) res.findViewById(R.id.shareHistoryValue);
    shareHistoryValue.setTextColor(style.getListActionColor());
    if (groupVM.getGroupType() == GroupType.GROUP && groupVM.getIsCanEditAdministration().get()) {
        bind(groupVM.getIsHistoryShared(), isShared -> {
            if (isShared) {
                shareHistoryValue.setVisibility(View.VISIBLE);
                shareHistory.setOnClickListener(null);
                shareHistory.setClickable(false);
            } else {
                shareHistoryValue.setVisibility(View.GONE);
                shareHistory.setOnClickListener(v -> {
                    execute(messenger().shareHistory(groupVM.getId()));
                });
            }
        });
    } else {
        // Hide for channels
        shareContainer.setVisibility(View.GONE);
        shareHint.setVisibility(View.GONE);
    }
    // Permissions
    TextView permissions = (TextView) res.findViewById(R.id.permissions);
    permissions.setTextColor(style.getTextPrimaryColor());
    TextView permissionsHint = (TextView) res.findViewById(R.id.permissionsHint);
    permissionsHint.setTextColor(style.getTextSecondaryColor());
    View permissionsDiv = res.findViewById(R.id.permissionsDiv);
    if (groupVM.getGroupType() == GroupType.CHANNEL) {
        permissionsHint.setText(R.string.channel_permissions_hint);
    } else {
        permissionsHint.setText(R.string.group_permissions_hint);
    }
    if (groupVM.getIsCanEditAdministration().get() && groupVM.getGroupType() == GroupType.GROUP) {
        permissions.setOnClickListener(v -> {
            startActivity(new Intent(getContext(), GroupPermissionsActivity.class).putExtra(Intents.EXTRA_GROUP_ID, groupVM.getId()));
        });
    } else {
        permissions.setVisibility(View.GONE);
        permissionsDiv.setVisibility(View.GONE);
        permissionsHint.setVisibility(View.GONE);
    }
    // Group Deletion
    View deleteContainer = res.findViewById(R.id.deleteContainer);
    TextView delete = (TextView) res.findViewById(R.id.delete);
    delete.setTextColor(style.getTextDangerColor());
    TextView deleteHint = (TextView) res.findViewById(R.id.deleteHint);
    deleteHint.setTextColor(style.getTextSecondaryColor());
    if (groupVM.getGroupType() == GroupType.CHANNEL) {
        delete.setText(R.string.channel_delete);
        deleteHint.setText(R.string.channel_delete_hint);
    } else {
        delete.setText(R.string.group_delete);
        deleteHint.setText(R.string.group_delete_hint);
    }
    bind(groupVM.getIsCanLeave(), groupVM.getIsCanDelete(), (canLeave, canDelete) -> {
        if (canLeave || canDelete) {
            deleteContainer.setVisibility(View.VISIBLE);
            delete.setOnClickListener(v -> {
                int alert_delete_title = groupVM.getGroupType() == GroupType.CHANNEL ? R.string.alert_delete_channel_title : R.string.alert_delete_group_title;
                int alert_leave_message = groupVM.getGroupType() == GroupType.CHANNEL ? R.string.alert_leave_channel_message : R.string.alert_leave_group_message;
                new AlertDialog.Builder(getActivity()).setMessage(getString(groupVM.getIsCanLeave().get() ? alert_leave_message : groupVM.getIsCanDelete().get() ? alert_delete_title : alert_leave_message, groupVM.getName().get())).setNegativeButton(R.string.dialog_cancel, null).setPositiveButton(R.string.alert_delete_group_yes, (d1, which1) -> {
                    if (groupVM.getIsCanLeave().get()) {
                        execute(messenger().leaveAndDeleteGroup(groupVM.getId()), R.string.progress_common).then(aVoid -> ActorSDK.returnToRoot(getActivity())).failure(e -> {
                            Toast.makeText(getActivity(), R.string.toast_unable_leave, Toast.LENGTH_LONG).show();
                        });
                    } else if (groupVM.getIsCanDelete().get()) {
                        execute(messenger().deleteGroup(groupVM.getId()), R.string.progress_common).then(aVoid -> ActorSDK.returnToRoot(getActivity())).failure(e -> {
                            Toast.makeText(getActivity(), R.string.toast_unable_delete_chat, Toast.LENGTH_LONG).show();
                        });
                    }
                }).show();
            });
        } else {
            deleteContainer.setVisibility(View.GONE);
            delete.setOnClickListener(null);
            delete.setClickable(false);
        }
    });
    return res;
}
Also used : BaseFragment(im.actor.sdk.controllers.BaseFragment) ActorSDK(im.actor.sdk.ActorSDK) Bundle(android.os.Bundle) LayoutInflater(android.view.LayoutInflater) ActorSDKMessenger.messenger(im.actor.sdk.util.ActorSDKMessenger.messenger) Intent(android.content.Intent) GroupVM(im.actor.core.viewmodel.GroupVM) ViewGroup(android.view.ViewGroup) R(im.actor.sdk.R) AlertDialog(android.support.v7.app.AlertDialog) TextView(android.widget.TextView) Toast(android.widget.Toast) View(android.view.View) Nullable(android.support.annotation.Nullable) ValueChangedListener(im.actor.runtime.mvvm.ValueChangedListener) Value(im.actor.runtime.mvvm.Value) GroupType(im.actor.core.entity.GroupType) Intents(im.actor.sdk.controllers.Intents) TextView(android.widget.TextView) Intent(android.content.Intent) TextView(android.widget.TextView) View(android.view.View) Nullable(android.support.annotation.Nullable)

Example 2 with ValueChangedListener

use of im.actor.runtime.mvvm.ValueChangedListener in project actor-platform by actorapp.

the class ProfileFragment method onCreateView.

@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    uid = getArguments().getInt(EXTRA_UID);
    final UserVM user = users().get(uid);
    ArrayList<UserPhone> phones = user.getPhones().get();
    ArrayList<UserEmail> emails = user.getEmails().get();
    String about = user.getAbout().get();
    final String userName = user.getNick().get();
    final View res = inflater.inflate(R.layout.fragment_profile, container, false);
    // 
    // Style Background
    // 
    res.findViewById(R.id.container).setBackgroundColor(style.getMainBackgroundColor());
    res.findViewById(R.id.avatarContainer).setBackgroundColor(style.getToolBarColor());
    // 
    // User Avatar
    // 
    avatarView = (AvatarView) res.findViewById(R.id.avatar);
    avatarView.init(Screen.dp(48), 22);
    avatarView.bind(user.getAvatar().get(), user.getName().get(), user.getId());
    avatarView.setOnClickListener(v -> {
        startActivity(ViewAvatarActivity.viewAvatar(user.getId(), getActivity()));
    });
    // 
    // User Name
    // 
    TextView nameText = (TextView) res.findViewById(R.id.name);
    nameText.setTextColor(style.getProfileTitleColor());
    bind(nameText, user.getName());
    // 
    // User Last Seen
    // 
    TextView lastSeen = (TextView) res.findViewById(R.id.lastSeen);
    lastSeen.setTextColor(style.getProfileSubtitleColor());
    bind(lastSeen, user);
    // 
    // Fab
    // 
    FloatingActionButton fab = (FloatingActionButton) res.findViewById(R.id.fab);
    fab.setBackgroundTintList(new ColorStateList(new int[][] { new int[] { android.R.attr.state_pressed }, StateSet.WILD_CARD }, new int[] { ActorSDK.sharedActor().style.getFabPressedColor(), ActorSDK.sharedActor().style.getFabColor() }));
    fab.setRippleColor(ActorSDK.sharedActor().style.getFabPressedColor());
    fab.setOnClickListener(v -> startActivity(new Intent(getActivity(), ComposeActivity.class)));
    // 
    // Remove Contact
    // 
    final View removeContact = res.findViewById(R.id.addContact);
    final TextView addContactTitle = (TextView) removeContact.findViewById(R.id.addContactTitle);
    addContactTitle.setText(getString(R.string.profile_contacts_added));
    addContactTitle.setTextColor(style.getTextPrimaryColor());
    removeContact.setOnClickListener(v -> {
        execute(ActorSDK.sharedActor().getMessenger().removeContact(user.getId()));
    });
    bind(user.isContact(), (isContact, valueModel) -> {
        if (isContact) {
            removeContact.setVisibility(View.VISIBLE);
            // fab
            fab.setImageResource(R.drawable.ic_message_white_24dp);
            fab.setOnClickListener(view -> startActivity(Intents.openPrivateDialog(user.getId(), true, getActivity())));
        } else {
            removeContact.setVisibility(View.GONE);
            // fab
            fab.setImageResource(R.drawable.ic_person_add_white_24dp);
            fab.setOnClickListener(view -> execute(ActorSDK.sharedActor().getMessenger().addContact(user.getId())));
        }
    });
    // 
    // New Message
    // 
    View newMessageView = res.findViewById(R.id.newMessage);
    ImageView newMessageIcon = (ImageView) newMessageView.findViewById(R.id.newMessageIcon);
    TextView newMessageTitle = (TextView) newMessageView.findViewById(R.id.newMessageText);
    {
        Drawable drawable = getResources().getDrawable(R.drawable.ic_chat_black_24dp);
        drawable.mutate().setColorFilter(style.getSettingsIconColor(), PorterDuff.Mode.SRC_IN);
        newMessageIcon.setImageDrawable(drawable);
        newMessageTitle.setTextColor(style.getTextPrimaryColor());
    }
    newMessageView.setOnClickListener(v -> {
        startActivity(Intents.openPrivateDialog(user.getId(), true, getActivity()));
    });
    // 
    // Voice Call
    // 
    View voiceCallDivider = res.findViewById(R.id.voiceCallDivider);
    View voiceCallView = res.findViewById(R.id.voiceCall);
    if (ActorSDK.sharedActor().isCallsEnabled() && !user.isBot()) {
        ImageView voiceViewIcon = (ImageView) voiceCallView.findViewById(R.id.actionIcon);
        TextView voiceViewTitle = (TextView) voiceCallView.findViewById(R.id.actionText);
        Drawable drawable = getResources().getDrawable(R.drawable.ic_phone_white_24dp);
        drawable.mutate().setColorFilter(style.getSettingsIconColor(), PorterDuff.Mode.SRC_IN);
        voiceViewIcon.setImageDrawable(drawable);
        voiceViewTitle.setTextColor(style.getTextPrimaryColor());
        voiceCallView.setOnClickListener(v -> {
            execute(ActorSDK.sharedActor().getMessenger().doCall(user.getId()));
        });
    } else {
        voiceCallView.setVisibility(View.GONE);
        voiceCallDivider.setVisibility(View.GONE);
    }
    // 
    // Video Call
    // 
    View videoCallDivider = res.findViewById(R.id.videoCallDivider);
    View videoCallView = res.findViewById(R.id.videoCall);
    if (ActorSDK.sharedActor().isCallsEnabled() && !user.isBot()) {
        ImageView voiceViewIcon = (ImageView) videoCallView.findViewById(R.id.videoCallIcon);
        TextView voiceViewTitle = (TextView) videoCallView.findViewById(R.id.videoCallText);
        Drawable drawable = getResources().getDrawable(R.drawable.ic_videocam_white_24dp);
        drawable.mutate().setColorFilter(style.getSettingsIconColor(), PorterDuff.Mode.SRC_IN);
        voiceViewIcon.setImageDrawable(drawable);
        voiceViewTitle.setTextColor(style.getTextPrimaryColor());
        videoCallView.setOnClickListener(v -> {
            execute(ActorSDK.sharedActor().getMessenger().doVideoCall(user.getId()));
        });
    } else {
        videoCallView.setVisibility(View.GONE);
        videoCallDivider.setVisibility(View.GONE);
    }
    // 
    // Contact Information
    // 
    final LinearLayout contactsContainer = (LinearLayout) res.findViewById(R.id.contactsContainer);
    String aboutString = user.getAbout().get();
    boolean isFirstContact = aboutString == null || aboutString.isEmpty();
    // 
    // About
    // 
    bind(user.getAbout(), new ValueChangedListener<String>() {

        private View userAboutRecord;

        @Override
        public void onChanged(final String newUserAbout, Value<String> valueModel) {
            if (newUserAbout != null && newUserAbout.length() > 0) {
                if (userAboutRecord == null) {
                    userAboutRecord = buildRecordBig(newUserAbout, R.drawable.ic_info_outline_black_24dp, true, false, inflater, contactsContainer);
                } else {
                    ((TextView) userAboutRecord.findViewById(R.id.value)).setText(newUserAbout);
                }
                if (recordFieldWithIcon != null) {
                    recordFieldWithIcon.findViewById(R.id.recordIcon).setVisibility(View.INVISIBLE);
                }
            }
        }
    });
    if (!ActorSDK.sharedActor().isOnClientPrivacyEnabled() || user.isInPhoneBook().get()) {
        for (int i = 0; i < phones.size(); i++) {
            final UserPhone userPhone = phones.get(i);
            // Formatting Phone Number
            String _phoneNumber;
            try {
                Phonenumber.PhoneNumber number = PhoneNumberUtil.getInstance().parse("+" + userPhone.getPhone(), "us");
                _phoneNumber = PhoneNumberUtil.getInstance().format(number, PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
            } catch (NumberParseException e) {
                e.printStackTrace();
                _phoneNumber = "+" + userPhone.getPhone();
            }
            final String phoneNumber = _phoneNumber;
            String phoneTitle = userPhone.getTitle();
            // Trying to localize this
            if (phoneTitle.toLowerCase().equals("mobile phone")) {
                phoneTitle = getString(R.string.settings_mobile_phone);
            }
            View view = buildRecord(phoneTitle, phoneNumber, R.drawable.ic_import_contacts_black_24dp, isFirstContact, false, inflater, contactsContainer);
            if (isFirstContact) {
                recordFieldWithIcon = view;
            }
            view.setOnClickListener(v -> {
                new AlertDialog.Builder(getActivity()).setItems(new CharSequence[] { getString(R.string.phone_menu_call).replace("{0}", phoneNumber), getString(R.string.phone_menu_sms).replace("{0}", phoneNumber), getString(R.string.phone_menu_share).replace("{0}", phoneNumber), getString(R.string.phone_menu_copy) }, (dialog, which) -> {
                    if (which == 0) {
                        startActivity(new Intent(Intent.ACTION_DIAL).setData(Uri.parse("tel:+" + userPhone.getPhone())));
                    } else if (which == 1) {
                        startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("sms:+" + userPhone.getPhone())));
                    } else if (which == 2) {
                        startActivity(new Intent(Intent.ACTION_SEND).setType("text/plain").putExtra(Intent.EXTRA_TEXT, getString(R.string.settings_share_text).replace("{0}", phoneNumber).replace("{1}", user.getName().get())));
                    } else if (which == 3) {
                        ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                        ClipData clip = ClipData.newPlainText("Phone number", phoneNumber);
                        clipboard.setPrimaryClip(clip);
                        Snackbar.make(res, R.string.toast_phone_copied, Snackbar.LENGTH_SHORT).show();
                    }
                }).show().setCanceledOnTouchOutside(true);
            });
            view.setOnLongClickListener(v -> {
                ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData clip = ClipData.newPlainText("Phone number", "+" + userPhone.getPhone());
                clipboard.setPrimaryClip(clip);
                Snackbar.make(res, R.string.toast_phone_copied, Snackbar.LENGTH_SHORT).show();
                return true;
            });
            isFirstContact = false;
        }
        for (int i = 0; i < emails.size(); i++) {
            final UserEmail userEmail = emails.get(i);
            View view = buildRecord(userEmail.getTitle(), userEmail.getEmail(), R.drawable.ic_import_contacts_black_24dp, isFirstContact, false, inflater, contactsContainer);
            if (isFirstContact) {
                recordFieldWithIcon = view;
            }
            view.setOnClickListener(v -> {
                new AlertDialog.Builder(getActivity()).setItems(new CharSequence[] { getString(R.string.email_menu_email).replace("{0}", userEmail.getEmail()), getString(R.string.phone_menu_copy) }, (dialog, which) -> {
                    if (which == 0) {
                        startActivity(new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", userEmail.getEmail(), null)));
                    } else if (which == 1) {
                        ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                        ClipData clip = ClipData.newPlainText("Email", userEmail.getEmail());
                        clipboard.setPrimaryClip(clip);
                        Snackbar.make(res, R.string.toast_email_copied, Snackbar.LENGTH_SHORT).show();
                    }
                }).show().setCanceledOnTouchOutside(true);
            });
            view.setOnLongClickListener(v -> {
                ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                ClipData clip = ClipData.newPlainText("Email", "+" + userEmail.getEmail());
                clipboard.setPrimaryClip(clip);
                Snackbar.make(res, R.string.toast_email_copied, Snackbar.LENGTH_SHORT).show();
                return true;
            });
            isFirstContact = false;
        }
    }
    // 
    // Username
    // 
    final boolean finalIsFirstContact = isFirstContact;
    bind(user.getNick(), new ValueChangedListener<String>() {

        private View userNameRecord;

        @Override
        public void onChanged(final String newUserName, Value<String> valueModel) {
            if (newUserName != null && newUserName.length() > 0) {
                if (userNameRecord == null) {
                    userNameRecord = buildRecord(getString(R.string.nickname), "@" + newUserName, R.drawable.ic_import_contacts_black_24dp, finalIsFirstContact, false, inflater, contactsContainer);
                } else {
                    ((TextView) userNameRecord.findViewById(R.id.value)).setText(newUserName);
                }
                userNameRecord.setOnLongClickListener(v -> {
                    ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                    ClipData clip = ClipData.newPlainText("Username", newUserName);
                    clipboard.setPrimaryClip(clip);
                    Snackbar.make(res, R.string.toast_nickname_copied, Snackbar.LENGTH_SHORT).show();
                    return true;
                });
                if (finalIsFirstContact) {
                    recordFieldWithIcon = userNameRecord;
                }
            }
        }
    });
    // 
    // Settings
    // 
    {
        // 
        // Notifications
        // 
        View notificationContainer = res.findViewById(R.id.notificationsCont);
        View notificationPickerContainer = res.findViewById(R.id.notificationsPickerCont);
        ((TextView) notificationContainer.findViewById(R.id.settings_notifications_title)).setTextColor(style.getTextPrimaryColor());
        final SwitchCompat notificationEnable = (SwitchCompat) res.findViewById(R.id.enableNotifications);
        Peer peer = Peer.user(user.getId());
        notificationEnable.setChecked(messenger().isNotificationsEnabled(peer));
        if (messenger().isNotificationsEnabled(peer)) {
            ViewUtils.showView(notificationPickerContainer, false);
        } else {
            ViewUtils.goneView(notificationPickerContainer, false);
        }
        notificationEnable.setOnCheckedChangeListener((buttonView, isChecked) -> {
            messenger().changeNotificationsEnabled(Peer.user(user.getId()), isChecked);
            if (isChecked) {
                ViewUtils.showView(notificationPickerContainer, false);
            } else {
                ViewUtils.goneView(notificationPickerContainer, false);
            }
        });
        notificationContainer.setOnClickListener(v -> notificationEnable.setChecked(!notificationEnable.isChecked()));
        ImageView iconView = (ImageView) res.findViewById(R.id.settings_notification_icon);
        Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_list_black_24dp));
        drawable.mutate();
        DrawableCompat.setTint(drawable, style.getSettingsIconColor());
        iconView.setImageDrawable(drawable);
        ((TextView) notificationPickerContainer.findViewById(R.id.settings_notifications_picker_title)).setTextColor(style.getTextPrimaryColor());
        notificationPickerContainer.setOnClickListener(view -> {
            Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
            Uri currentSound = null;
            String defaultPath = null;
            Uri defaultUri = Settings.System.DEFAULT_NOTIFICATION_URI;
            if (defaultUri != null) {
                defaultPath = defaultUri.getPath();
            }
            String path = messenger().getPreferences().getString("userNotificationSound_" + uid);
            if (path == null) {
                path = defaultPath;
            }
            if (path != null && !path.equals("none")) {
                if (path.equals(defaultPath)) {
                    currentSound = defaultUri;
                } else {
                    currentSound = Uri.parse(path);
                }
            }
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currentSound);
            startActivityForResult(intent, SOUND_PICKER_REQUEST_CODE);
        });
        // 
        // Block
        // 
        View blockContainer = res.findViewById(R.id.blockCont);
        final TextView blockTitle = (TextView) blockContainer.findViewById(R.id.settings_block_title);
        blockTitle.setTextColor(style.getTextPrimaryColor());
        bind(user.getIsBlocked(), (val, valueModel) -> {
            blockTitle.setText(val ? R.string.profile_settings_unblock : R.string.profile_settings_block);
        });
        blockContainer.setOnClickListener(v -> {
            if (!user.getIsBlocked().get()) {
                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setMessage(getString(R.string.profile_settings_block_confirm).replace("{user}", user.getName().get())).setPositiveButton(R.string.dialog_yes, (dialog, which) -> {
                    execute(messenger().blockUser(user.getId()));
                    dialog.dismiss();
                }).setNegativeButton(R.string.dialog_cancel, (dialog, which) -> {
                    dialog.dismiss();
                }).show();
            } else {
                execute(messenger().unblockUser(user.getId()));
            }
        });
        ImageView blockIconView = (ImageView) res.findViewById(R.id.settings_block_icon);
        Drawable blockDrawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_block_white_24dp));
        drawable.mutate();
        DrawableCompat.setTint(blockDrawable, style.getSettingsIconColor());
        blockIconView.setImageDrawable(blockDrawable);
    }
    // 
    // Scroll Coordinate
    // 
    final ScrollView scrollView = ((ScrollView) res.findViewById(R.id.scrollContainer));
    scrollView.getViewTreeObserver().addOnScrollChangedListener(() -> updateBar(scrollView.getScrollY()));
    updateBar(scrollView.getScrollY());
    return res;
}
Also used : AlertDialog(android.support.v7.app.AlertDialog) BaseFragment(im.actor.sdk.controllers.BaseFragment) LinearLayout(android.widget.LinearLayout) Bundle(android.os.Bundle) ViewAvatarActivity(im.actor.sdk.controllers.fragment.preview.ViewAvatarActivity) DrawableCompat(android.support.v4.graphics.drawable.DrawableCompat) ActorSDKMessenger.messenger(im.actor.sdk.util.ActorSDKMessenger.messenger) Uri(android.net.Uri) ImageView(android.widget.ImageView) ColorDrawable(android.graphics.drawable.ColorDrawable) Drawable(android.graphics.drawable.Drawable) Screen(im.actor.sdk.util.Screen) ColorStateList(android.content.res.ColorStateList) PhoneNumberUtil(com.google.i18n.phonenumbers.PhoneNumberUtil) ClipboardManager(android.content.ClipboardManager) View(android.view.View) Intents(im.actor.sdk.controllers.Intents) FloatingActionButton(android.support.design.widget.FloatingActionButton) UserPhone(im.actor.core.viewmodel.UserPhone) SwitchCompat(android.support.v7.widget.SwitchCompat) PorterDuff(android.graphics.PorterDuff) AppCompatActivity(android.support.v7.app.AppCompatActivity) ViewGroup(android.view.ViewGroup) StateSet(android.util.StateSet) TextView(android.widget.TextView) UserEmail(im.actor.core.viewmodel.UserEmail) Peer(im.actor.core.entity.Peer) Snackbar(android.support.design.widget.Snackbar) ValueChangedListener(im.actor.runtime.mvvm.ValueChangedListener) Context(android.content.Context) Intent(android.content.Intent) MenuItem(android.view.MenuItem) ArrayList(java.util.ArrayList) ClipData(android.content.ClipData) ViewUtils(im.actor.sdk.util.ViewUtils) MenuInflater(android.view.MenuInflater) Menu(android.view.Menu) AvatarView(im.actor.sdk.view.avatar.AvatarView) Settings(android.provider.Settings) ActionBar(android.support.v7.app.ActionBar) ActorSDK(im.actor.sdk.ActorSDK) ComposeActivity(im.actor.sdk.controllers.compose.ComposeActivity) LayoutInflater(android.view.LayoutInflater) ActorSDKMessenger.users(im.actor.sdk.util.ActorSDKMessenger.users) Color(android.graphics.Color) UserVM(im.actor.core.viewmodel.UserVM) R(im.actor.sdk.R) AlertDialog(android.support.v7.app.AlertDialog) ScrollView(android.widget.ScrollView) RingtoneManager(android.media.RingtoneManager) NumberParseException(com.google.i18n.phonenumbers.NumberParseException) Activity(android.app.Activity) Phonenumber(com.google.i18n.phonenumbers.Phonenumber) Value(im.actor.runtime.mvvm.Value) ColorStateList(android.content.res.ColorStateList) UserEmail(im.actor.core.viewmodel.UserEmail) Uri(android.net.Uri) UserPhone(im.actor.core.viewmodel.UserPhone) FloatingActionButton(android.support.design.widget.FloatingActionButton) TextView(android.widget.TextView) ImageView(android.widget.ImageView) ClipboardManager(android.content.ClipboardManager) Peer(im.actor.core.entity.Peer) ColorDrawable(android.graphics.drawable.ColorDrawable) Drawable(android.graphics.drawable.Drawable) Intent(android.content.Intent) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) AvatarView(im.actor.sdk.view.avatar.AvatarView) ScrollView(android.widget.ScrollView) UserVM(im.actor.core.viewmodel.UserVM) ScrollView(android.widget.ScrollView) NumberParseException(com.google.i18n.phonenumbers.NumberParseException) ClipData(android.content.ClipData) LinearLayout(android.widget.LinearLayout) Phonenumber(com.google.i18n.phonenumbers.Phonenumber) SwitchCompat(android.support.v7.widget.SwitchCompat)

Aggregations

Intent (android.content.Intent)2 Bundle (android.os.Bundle)2 AlertDialog (android.support.v7.app.AlertDialog)2 LayoutInflater (android.view.LayoutInflater)2 View (android.view.View)2 ViewGroup (android.view.ViewGroup)2 TextView (android.widget.TextView)2 Value (im.actor.runtime.mvvm.Value)2 ValueChangedListener (im.actor.runtime.mvvm.ValueChangedListener)2 ActorSDK (im.actor.sdk.ActorSDK)2 R (im.actor.sdk.R)2 BaseFragment (im.actor.sdk.controllers.BaseFragment)2 Intents (im.actor.sdk.controllers.Intents)2 ActorSDKMessenger.messenger (im.actor.sdk.util.ActorSDKMessenger.messenger)2 Activity (android.app.Activity)1 ClipData (android.content.ClipData)1 ClipboardManager (android.content.ClipboardManager)1 Context (android.content.Context)1 ColorStateList (android.content.res.ColorStateList)1 Color (android.graphics.Color)1