Search in sources :

Example 6 with NumberParseException

use of com.google.i18n.phonenumbers.NumberParseException in project actor-platform by actorapp.

the class ValidateCodeFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    authType = getArguments().getString("authType");
    isSign = getArguments().getBoolean(AUTH_TYPE_SIGN);
    keyboardHelper = new KeyboardHelper(getActivity());
    View v = inflater.inflate(R.layout.fragment_validate_code, container, false);
    v.setBackgroundColor(ActorSDK.sharedActor().style.getMainBackgroundColor());
    TextView buttonConfirm = (TextView) v.findViewById(R.id.button_confirm_sms_code_text);
    buttonConfirm.setTypeface(Fonts.medium());
    buttonConfirm.setTextColor(ActorSDK.sharedActor().style.getTextPrimaryInvColor());
    StateListDrawable states = SelectorFactory.get(ActorSDK.sharedActor().style.getMainColor(), getActivity());
    buttonConfirm.setBackgroundDrawable(states);
    ((TextView) v.findViewById(R.id.button_edit_phone)).setTypeface(Fonts.medium());
    ((TextView) v.findViewById(R.id.button_edit_phone)).setTextColor(ActorSDK.sharedActor().style.getMainColor());
    TextView sendHint = (TextView) v.findViewById(R.id.sendHint);
    sendHint.setTextColor(ActorSDK.sharedActor().style.getTextSecondaryColor());
    String authId = getArguments().getString("authId", "");
    if (authType.equals(AUTH_TYPE_PHONE)) {
        String phoneNumber = "+" + authId;
        try {
            Phonenumber.PhoneNumber number = PhoneNumberUtil.getInstance().parse(phoneNumber, null);
            phoneNumber = PhoneNumberUtil.getInstance().format(number, PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
        } catch (NumberParseException e) {
            e.printStackTrace();
        }
        sendHint.setText(Html.fromHtml(getString(R.string.auth_code_phone_hint).replace("{0}", "<b>" + phoneNumber + "</b>")));
    } else if (authType.equals(AUTH_TYPE_EMAIL)) {
        sendHint.setText(Html.fromHtml(getString(R.string.auth_code_email_hint).replace("{0}", "<b>" + authId + "</b>")));
    }
    codeEnterEditText = (EditText) v.findViewById(R.id.et_sms_code_enter);
    codeEnterEditText.setTextColor(ActorSDK.sharedActor().style.getTextPrimaryColor());
    codeEnterEditText.addTextChangedListener(new TextWatcher() {

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

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        //                if (s.length() == 6) {
        //                    sendCode();
        //                }
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });
    codeEnterEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {

        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_GO) {
                sendCode();
                return true;
            }
            return false;
        }
    });
    codeEnterEditText.setText(((AuthActivity) getActivity()).getCurrentCode());
    onClick(v, R.id.button_confirm_sms_code, new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            sendCode();
        }
    });
    Button editAuth = (Button) v.findViewById(R.id.button_edit_phone);
    if (authType.equals(AUTH_TYPE_EMAIL)) {
        editAuth.setText(getString(R.string.auth_code_wrong_email));
    }
    onClick(v, R.id.button_edit_phone, new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            new AlertDialog.Builder(getActivity()).setMessage(authType.equals(AUTH_TYPE_EMAIL) ? R.string.auth_code_email_change : R.string.auth_code_phone_change).setPositiveButton(R.string.auth_code_change_yes, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    if (isSign) {
                        startSignIn();
                    } else {
                        if (authType.equals(AUTH_TYPE_EMAIL)) {
                            switchToEmail();
                        } else if (authType.equals(AUTH_TYPE_PHONE)) {
                            switchToPhone();
                        }
                    }
                }
            }).setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                }
            }).show().setCanceledOnTouchOutside(true);
        }
    });
    v.findViewById(R.id.divider).setBackgroundColor(style.getDividerColor());
    return v;
}
Also used : DialogInterface(android.content.DialogInterface) StateListDrawable(android.graphics.drawable.StateListDrawable) TextView(android.widget.TextView) View(android.view.View) KeyEvent(android.view.KeyEvent) Button(android.widget.Button) NumberParseException(com.google.i18n.phonenumbers.NumberParseException) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) TextView(android.widget.TextView) KeyboardHelper(im.actor.sdk.util.KeyboardHelper) Phonenumber(com.google.i18n.phonenumbers.Phonenumber)

Example 7 with NumberParseException

use of com.google.i18n.phonenumbers.NumberParseException in project actor-platform by actorapp.

the class BaseActorSettingsFragment method onCreateView.

@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    messenger().onUserVisible(myUid());
    View view = inflater.inflate(R.layout.fragment_settings, container, false);
    shp = getActivity().getSharedPreferences("wallpaper", Context.MODE_PRIVATE);
    baseColor = getResources().getColor(R.color.primary);
    final ActorStyle style = ActorSDK.sharedActor().style;
    final UserVM userModel = users().get(myUid());
    final TextView nameView = (TextView) view.findViewById(R.id.name);
    nameView.setShadowLayer(1, 1, 1, style.getDividerColor());
    nameView.setTextColor(style.getProfileTitleColor());
    bind(nameView, userModel.getName());
    view.findViewById(R.id.notifications).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(getActivity(), NotificationsActivity.class));
        }
    });
    view.findViewById(R.id.helpSettings).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(getActivity(), HelpActivity.class));
        }
    });
    final LinearLayout nickContainer = (LinearLayout) view.findViewById(R.id.nickContainer);
    final LinearLayout contactsContainer = (LinearLayout) view.findViewById(R.id.phoneContainer);
    final LinearLayout about = (LinearLayout) view.findViewById(R.id.about);
    // TODO: Move bindings to onResume
    bind(userModel.getNick(), new ValueChangedListener<String>() {

        @Override
        public void onChanged(final String val, Value<String> Value) {
            final View recordView = inflater.inflate(R.layout.contact_record, nickContainer, false);
            ImageView nickIcon = (ImageView) recordView.findViewById(R.id.recordIcon);
            Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_mention_24_dp));
            drawable.mutate();
            DrawableCompat.setTint(drawable, style.getSettingsIconColor());
            nickIcon.setImageDrawable(drawable);
            String value = (val != null && !val.isEmpty()) ? val : getString(R.string.nickname_empty);
            String title = getString(R.string.nickname);
            TextView nickValue = (TextView) recordView.findViewById(R.id.value);
            nickValue.setText(value);
            nickValue.setTextColor(style.getTextPrimaryColor());
            TextView nickTitle = (TextView) recordView.findViewById(R.id.title);
            nickTitle.setText(title);
            nickTitle.setTextColor(style.getTextSecondaryColor());
            nickContainer.removeAllViews();
            nickContainer.addView(recordView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(72)));
            recordView.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    getActivity().startActivity(Intents.editUserNick(getActivity()));
                }
            });
        }
    });
    final TextView aboutTitle = (TextView) about.findViewById(R.id.value);
    ImageView nickIcon = (ImageView) about.findViewById(R.id.recordIcon);
    Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_info_black_24dp));
    drawable.mutate();
    DrawableCompat.setTint(drawable, style.getSettingsIconColor());
    nickIcon.setImageDrawable(drawable);
    aboutTitle.setTextColor(style.getTextPrimaryColor());
    about.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            getActivity().startActivity(Intents.editUserAbout(getActivity()));
        }
    });
    bind(userModel.getAbout(), new ValueChangedListener<String>() {

        @Override
        public void onChanged(String val, Value<String> valueModel) {
            if (val != null && !val.isEmpty()) {
                aboutTitle.setTextColor(style.getTextPrimaryColor());
                aboutTitle.setText(val);
            } else {
                aboutTitle.setTextColor(style.getTextSecondaryColor());
                aboutTitle.setText(getString(R.string.edit_about_edittext_hint));
            }
        }
    });
    bind(userModel.getPhones(), new ValueChangedListener<ArrayListUserPhone>() {

        @Override
        public void onChanged(ArrayListUserPhone val, Value<ArrayListUserPhone> Value) {
            if (val.size() == 0) {
                noPhones = true;
            } else {
                contactsContainer.setVisibility(View.VISIBLE);
                for (int i = 0; i < val.size(); i++) {
                    final UserPhone record = val.get(i);
                    View recordView = inflater.inflate(R.layout.contact_record, contactsContainer, false);
                    ImageView tintImageView = (ImageView) recordView.findViewById(R.id.recordIcon);
                    if (i == 0) {
                        Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_phone_white_24dp));
                        drawable = drawable.mutate();
                        DrawableCompat.setTint(drawable, style.getSettingsIconColor());
                        tintImageView.setImageDrawable(drawable);
                    } else {
                        tintImageView.setVisibility(View.INVISIBLE);
                    }
                    View divider = recordView.findViewById(R.id.divider);
                    if (i == val.size() - 1 && (userModel.getEmails().get() == null || userModel.getEmails().get().isEmpty())) {
                        divider.setVisibility(View.GONE);
                    } else {
                        divider.setVisibility(View.VISIBLE);
                    }
                    divider.setBackgroundColor(style.getDividerColor());
                    String _phoneNumber;
                    try {
                        Phonenumber.PhoneNumber number = PhoneNumberUtil.getInstance().parse("+" + record.getPhone(), "us");
                        _phoneNumber = PhoneNumberUtil.getInstance().format(number, PhoneNumberUtil.PhoneNumberFormat.INTERNATIONAL);
                    } catch (NumberParseException e) {
                        e.printStackTrace();
                        _phoneNumber = "+" + record.getPhone();
                    }
                    final String phoneNumber = _phoneNumber;
                    TextView value = (TextView) recordView.findViewById(R.id.value);
                    value.setTextColor(style.getTextPrimaryColor());
                    value.setText(phoneNumber);
                    TextView title = (TextView) recordView.findViewById(R.id.title);
                    title.setTextColor(style.getTextSecondaryColor());
                    title.setText(record.getTitle().replace("Mobile phone", getString(R.string.settings_mobile_phone)));
                    contactsContainer.addView(recordView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(72)));
                    recordView.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View 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) }, new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    if (which == 0) {
                                        startActivity(new Intent(Intent.ACTION_DIAL).setData(Uri.parse("tel:+" + record.getPhone())));
                                    } else if (which == 1) {
                                        startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("sms:+" + record.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}", userModel.getName().get())));
                                    } else if (which == 3) {
                                        ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                                        ClipData clip = ClipData.newPlainText("Phone number", phoneNumber);
                                        clipboard.setPrimaryClip(clip);
                                        Toast.makeText(getActivity(), R.string.toast_phone_copied, Toast.LENGTH_SHORT).show();
                                    }
                                }
                            }).show().setCanceledOnTouchOutside(true);
                        }
                    });
                    recordView.setOnLongClickListener(new View.OnLongClickListener() {

                        @Override
                        public boolean onLongClick(View v) {
                            ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                            ClipData clip = ClipData.newPlainText("Phone number", "+" + record.getPhone());
                            clipboard.setPrimaryClip(clip);
                            Toast.makeText(getActivity(), R.string.toast_phone_copied, Toast.LENGTH_SHORT).show();
                            return true;
                        }
                    });
                }
            }
        }
    });
    bind(userModel.getEmails(), new ValueChangedListener<ArrayListUserEmail>() {

        @Override
        public void onChanged(ArrayListUserEmail val, Value<ArrayListUserEmail> Value) {
            if (val.size() == 0) {
                noEmails = true;
            } else {
                contactsContainer.setVisibility(View.VISIBLE);
                for (int i = 0; i < val.size(); i++) {
                    final UserEmail record = val.get(i);
                    View recordView = inflater.inflate(R.layout.contact_record, contactsContainer, false);
                    ImageView tintImageView = (ImageView) recordView.findViewById(R.id.recordIcon);
                    if (i == 0) {
                        Drawable drawable = DrawableCompat.wrap(getResources().getDrawable(R.drawable.ic_email_white_24dp));
                        drawable.mutate();
                        DrawableCompat.setTint(drawable, style.getSettingsIconColor());
                        tintImageView.setImageDrawable(drawable);
                    } else {
                        tintImageView.setVisibility(View.INVISIBLE);
                    }
                    View divider = recordView.findViewById(R.id.divider);
                    if (i != val.size() - 1) {
                        divider.setVisibility(View.VISIBLE);
                    } else {
                        divider.setVisibility(View.GONE);
                    }
                    divider.setBackgroundColor(style.getDividerColor());
                    final String email = record.getEmail();
                    TextView value = (TextView) recordView.findViewById(R.id.value);
                    value.setTextColor(style.getTextPrimaryColor());
                    value.setText(email);
                    TextView title = (TextView) recordView.findViewById(R.id.title);
                    title.setTextColor(style.getTextSecondaryColor());
                    title.setText(record.getTitle());
                    contactsContainer.addView(recordView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(72)));
                    recordView.setOnClickListener(new View.OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            new AlertDialog.Builder(getActivity()).setItems(new CharSequence[] { getString(R.string.email_menu_email).replace("{0}", email), getString(R.string.phone_menu_copy) }, new DialogInterface.OnClickListener() {

                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    if (which == 0) {
                                        startActivity(new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", record.getEmail(), null)));
                                    } else if (which == 1) {
                                        ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                                        ClipData clip = ClipData.newPlainText("Email", email);
                                        clipboard.setPrimaryClip(clip);
                                        Toast.makeText(getActivity(), R.string.toast_email_copied, Toast.LENGTH_SHORT).show();
                                    }
                                }
                            }).show().setCanceledOnTouchOutside(true);
                        }
                    });
                    recordView.setOnLongClickListener(new View.OnLongClickListener() {

                        @Override
                        public boolean onLongClick(View v) {
                            ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
                            ClipData clip = ClipData.newPlainText("Email", "+" + record.getEmail());
                            clipboard.setPrimaryClip(clip);
                            Toast.makeText(getActivity(), R.string.toast_email_copied, Toast.LENGTH_SHORT).show();
                            return true;
                        }
                    });
                }
            }
        }
    });
    view.findViewById(R.id.chatSettings).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(getActivity(), ChatSettingsActivity.class));
        }
    });
    view.findViewById(R.id.encryption).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ActorSDK.sharedActor().startSecuritySettingsActivity(getActivity());
        }
    });
    //        view.findViewById(R.id.encryption).setOnLongClickListener(new View.OnLongClickListener() {
    //            @Override
    //            public boolean onLongClick(View v) {
    //                if (AndroidLogProvider.isSendLogsEnabled()) {
    //                    AndroidLogProvider.setSendLogs(null);
    //                    Toast.makeText(getActivity(), "send logs off", Toast.LENGTH_LONG).show();
    //                } else {
    //
    //                    android.support.v7.app.AlertDialog.Builder builder = new android.support.v7.app.AlertDialog.Builder(getActivity());
    //                    builder.setTitle("Send logs integration url");
    //
    //                    LinearLayout ll = new LinearLayout(getActivity());
    //                    ll.setPadding(Screen.dp(20), 0, Screen.dp(20), 0);
    //
    //                    final EditText input = new EditText(getActivity());
    //                    ll.addView(input, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    //                    builder.setView(ll);
    //
    //                    builder.setPositiveButton(getString(R.string.dialog_ok), new DialogInterface.OnClickListener() {
    //                        @Override
    //                        public void onClick(DialogInterface dialog, int which) {
    //                            AndroidLogProvider.setSendLogs(input.getText().toString());
    //                            Toast.makeText(getActivity(), "send logs on", Toast.LENGTH_LONG).show();
    //
    //                        }
    //                    });
    //                    builder.setNegativeButton(R.string.dialog_cancel, new DialogInterface.OnClickListener() {
    //                        @Override
    //                        public void onClick(DialogInterface dialog, int which) {
    //                            dialog.cancel();
    //                        }
    //                    });
    //
    //                    builder.create().show();
    //
    //
    //                }
    //                return true;
    //            }
    //        });
    view.findViewById(R.id.blockedList).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(getActivity(), BlockedListActivity.class));
        }
    });
    //        view.findViewById(R.id.chatSettings).setOnLongClickListener(new View.OnLongClickListener() {
    //            @Override
    //            public boolean onLongClick(View v) {
    //                Toast.makeText(getActivity(), AndroidLogProvider.toggleWriteLogs() ? "write logs on" : "write logs off", Toast.LENGTH_LONG).show();
    //                return true;
    //            }
    //        });
    View askQuestion = view.findViewById(R.id.askQuestion);
    if (ActorSDK.sharedActor().getHelpPhone() == null || ActorSDK.sharedActor().getHelpPhone().isEmpty()) {
        askQuestion.setVisibility(View.GONE);
        view.findViewById(R.id.divider3).setVisibility(View.GONE);
    }
    askQuestion.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            execute(messenger().findUsers(ActorSDK.sharedActor().getHelpPhone()), R.string.progress_common, new CommandCallback<UserVM[]>() {

                @Override
                public void onResult(UserVM[] res) {
                    if (res.length >= 1) {
                        startActivity(Intents.openPrivateDialog(res[0].getId(), true, getActivity()));
                    }
                }

                @Override
                public void onError(Exception e) {
                }
            });
        }
    });
    //Twitter
    View twitterView = view.findViewById(R.id.twitter);
    if (ActorSDK.sharedActor().getTwitterAcc() == null || ActorSDK.sharedActor().getTwitterAcc().isEmpty()) {
        twitterView.setVisibility(View.GONE);
    }
    twitterView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://twitter.com/" + ActorSDK.sharedActor().getTwitterAcc()));
            startActivity(viewIntent);
        }
    });
    TextView twitterTitle = (TextView) view.findViewById(R.id.settings_twitter);
    twitterTitle.setTextColor(style.getSettingsTitleColor());
    TintImageView twitterIcon = (TintImageView) view.findViewById(R.id.settings_twitter_icon);
    twitterIcon.setTint(style.getSettingsIconColor());
    //Home page
    View homePageView = view.findViewById(R.id.home_page);
    if (ActorSDK.sharedActor().getHomePage() == null || ActorSDK.sharedActor().getHomePage().isEmpty()) {
        homePageView.setVisibility(View.GONE);
    }
    homePageView.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(ActorSDK.sharedActor().getHomePage()));
            startActivity(viewIntent);
        }
    });
    TextView homePageTitle = (TextView) view.findViewById(R.id.settings_home_page);
    homePageTitle.setTextColor(style.getSettingsTitleColor());
    TintImageView homePageIcon = (TintImageView) view.findViewById(R.id.settings_home_page_icon);
    homePageIcon.setTint(style.getSettingsIconColor());
    TextView profileHeaderText = (TextView) view.findViewById(R.id.profile_info_header_text);
    profileHeaderText.setTextColor(style.getSettingsCategoryTextColor());
    TextView settingsHeaderText = (TextView) view.findViewById(R.id.settings_header_text);
    settingsHeaderText.setTextColor(style.getSettingsCategoryTextColor());
    TextView aboutHeaderText = (TextView) view.findViewById(R.id.about_header_text);
    aboutHeaderText.setTextColor(style.getSettingsCategoryTextColor());
    TextView settingsNotificationsTitle = (TextView) view.findViewById(R.id.settings_notifications_title);
    settingsNotificationsTitle.setTextColor(style.getSettingsTitleColor());
    TextView settingsChatTitle = (TextView) view.findViewById(R.id.settings_chat_title);
    settingsChatTitle.setTextColor(style.getSettingsTitleColor());
    TextView securityTitle = (TextView) view.findViewById(R.id.settings_security_title);
    securityTitle.setTextColor(style.getSettingsTitleColor());
    TintImageView securityIcon = (TintImageView) view.findViewById(R.id.settings_security_icon);
    securityIcon.setTint(style.getSettingsIconColor());
    TextView blockedListTitle = (TextView) view.findViewById(R.id.settings_blocked_title);
    blockedListTitle.setTextColor(style.getSettingsTitleColor());
    TintImageView blockedListIcon = (TintImageView) view.findViewById(R.id.settings_blocked_icon);
    blockedListIcon.setTint(style.getSettingsIconColor());
    TextView helpTitle = (TextView) view.findViewById(R.id.settings_help_title);
    helpTitle.setTextColor(style.getSettingsTitleColor());
    TintImageView helpIcon = (TintImageView) view.findViewById(R.id.settings_help_icon);
    helpIcon.setTint(style.getSettingsIconColor());
    TextView askTitle = (TextView) view.findViewById(R.id.settings_ask_title);
    askTitle.setTextColor(style.getSettingsTitleColor());
    TintImageView askIcon = (TintImageView) view.findViewById(R.id.settings_ask_icon);
    askIcon.setTint(style.getSettingsIconColor());
    TintImageView notificationsSettingsIcon = (TintImageView) view.findViewById(R.id.settings_notification_icon);
    notificationsSettingsIcon.setTint(style.getSettingsIconColor());
    TintImageView chatSettingsIcon = (TintImageView) view.findViewById(R.id.settings_chat_icon);
    chatSettingsIcon.setTint(style.getSettingsIconColor());
    if (getBeforeNickSettingsView() != null) {
        FrameLayout beforeNick = (FrameLayout) view.findViewById(R.id.before_nick_container);
        beforeNick.addView(getBeforeNickSettingsView(), FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
    }
    if (getBeforeNickSettingsView() != null) {
        FrameLayout afterPhone = (FrameLayout) view.findViewById(R.id.after_phone_container);
        afterPhone.addView(getAfterPhoneSettingsView(), FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
    }
    if (getSettingsTopView() != null) {
        FrameLayout settingsTop = (FrameLayout) view.findViewById(R.id.settings_top_container);
        settingsTop.addView(getSettingsTopView(), FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
    }
    if (getSettingsBottomView() != null) {
        FrameLayout settingsBot = (FrameLayout) view.findViewById(R.id.settings_bottom_container);
        settingsBot.addView(getSettingsBottomView(), FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
    }
    if (getBeforeSettingsCategories() != null) {
        LinearLayout beforeSettings = (LinearLayout) view.findViewById(R.id.before_settings_container);
        addCategories(beforeSettings, getBeforeSettingsCategories(), inflater);
    }
    if (getAfterSettingsCategories() != null) {
        LinearLayout afterSettings = (LinearLayout) view.findViewById(R.id.after_settings_container);
        addCategories(afterSettings, getAfterSettingsCategories(), inflater);
    }
    view.findViewById(R.id.avatarContainer).setBackgroundColor(style.getToolBarColor());
    avatarView = (AvatarView) view.findViewById(R.id.avatar);
    avatarView.init(Screen.dp(96), 44);
    avatarView.bind(users().get(myUid()));
    //Wallpaper
    if (showWallpaperCategory()) {
        ((TextView) view.findViewById(R.id.settings_wallpaper_title)).setTextColor(style.getSettingsCategoryTextColor());
        RecyclerView wallpapers = (RecyclerView) view.findViewById(R.id.wallpapers_list);
        wallpaperAdapter = new HeaderViewRecyclerAdapter(new WallpapersAdapter());
        FrameLayout fl = new FrameLayout(getActivity());
        ImageView icon = new ImageView(getActivity());
        icon.setImageResource(R.drawable.ic_image_black_24dp);
        icon.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        icon.setColorFilter(ActorSDK.sharedActor().style.getSettingsIconColor(), PorterDuff.Mode.SRC_IN);
        fl.addView(icon, new FrameLayout.LayoutParams(Screen.dp(72), Screen.dp(85), Gravity.CENTER));
        fl.setLayoutParams(new ViewGroup.LayoutParams(Screen.dp(72), Screen.dp(85)));
        wallpaperAdapter.addHeaderView(fl);
        wallpapers.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false));
        wallpapers.setAdapter(wallpaperAdapter);
    } else {
        view.findViewById(R.id.wallpapers_list).setVisibility(View.GONE);
        view.findViewById(R.id.settings_wallpaper_title).setVisibility(View.GONE);
    }
    view.findViewById(R.id.avatar).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(ViewAvatarActivity.viewAvatar(myUid(), getActivity()));
        }
    });
    final ScrollView scrollView = ((ScrollView) view.findViewById(R.id.scrollContainer));
    scrollView.setBackgroundColor(style.getMainBackgroundColor());
    scrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {

        @Override
        public void onScrollChanged() {
            updateActionBar(scrollView.getScrollY());
        }
    });
    updateActionBar(scrollView.getScrollY());
    return view;
}
Also used : AlertDialog(android.app.AlertDialog) DialogInterface(android.content.DialogInterface) ArrayListUserEmail(im.actor.core.viewmodel.generics.ArrayListUserEmail) TintImageView(im.actor.sdk.view.TintImageView) UserEmail(im.actor.core.viewmodel.UserEmail) ArrayListUserEmail(im.actor.core.viewmodel.generics.ArrayListUserEmail) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) ArrayListUserPhone(im.actor.core.viewmodel.generics.ArrayListUserPhone) ActorStyle(im.actor.sdk.ActorStyle) UserPhone(im.actor.core.viewmodel.UserPhone) ArrayListUserPhone(im.actor.core.viewmodel.generics.ArrayListUserPhone) TextView(android.widget.TextView) ImageView(android.widget.ImageView) TintImageView(im.actor.sdk.view.TintImageView) CommandCallback(im.actor.core.viewmodel.CommandCallback) ViewTreeObserver(android.view.ViewTreeObserver) ClipboardManager(android.content.ClipboardManager) ViewGroup(android.view.ViewGroup) 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) TintImageView(im.actor.sdk.view.TintImageView) AvatarView(im.actor.sdk.view.avatar.AvatarView) RecyclerView(android.support.v7.widget.RecyclerView) ScrollView(android.widget.ScrollView) NumberParseException(com.google.i18n.phonenumbers.NumberParseException) UserVM(im.actor.core.viewmodel.UserVM) HeaderViewRecyclerAdapter(im.actor.sdk.view.adapters.HeaderViewRecyclerAdapter) ScrollView(android.widget.ScrollView) FrameLayout(android.widget.FrameLayout) NumberParseException(com.google.i18n.phonenumbers.NumberParseException) RecyclerView(android.support.v7.widget.RecyclerView) ClipData(android.content.ClipData) LinearLayout(android.widget.LinearLayout)

Example 8 with NumberParseException

use of com.google.i18n.phonenumbers.NumberParseException in project actor-platform by actorapp.

the class AndroidPhoneBook method loadPhoneBook.

public static ArrayList<PhoneBookContact> loadPhoneBook(Context context, String isoCountry) {
    if (DISABLE_PHONE_BOOK) {
        return new ArrayList<>();
    }
    Log.d(TAG, "Loading phone book");
    long start = SystemClock.uptimeMillis();
    HashSet<Long> addedPhones = new HashSet<>();
    HashSet<String> addedEmails = new HashSet<>();
    ArrayList<PhoneBookContact> records = new ArrayList<>();
    HashMap<Long, PhoneBookContact> recordsMap = new HashMap<>();
    ContentResolver cr = context.getContentResolver();
    if (cr == null) {
        return new ArrayList<>();
    }
    //Check have permission for this
    if (ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_CONTACTS) != PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
        Log.d("Permissions", "contacts - no permission :c");
        return new ArrayList<>();
    }
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME }, null, null, ContactsContract.Contacts.SORT_KEY_PRIMARY);
    if (cur == null) {
        return new ArrayList<>();
    }
    int idIndex = cur.getColumnIndex(ContactsContract.Contacts._ID);
    int nameIndex = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
    int index = 0;
    while (cur.moveToNext()) {
        if (index++ == READ_ITEM_DELAY_BATCH) {
            if (READ_ITEM_DELAY > 0) {
                try {
                    Thread.sleep(READ_ITEM_DELAY);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        long id = cur.getLong(idIndex);
        String name = cur.getString(nameIndex);
        if (name == null || name.trim().length() == 0)
            continue;
        PhoneBookContact record = new PhoneBookContact(id, name.trim(), new ArrayList<>(), new ArrayList<>());
        records.add(record);
        recordsMap.put(id, record);
    }
    cur.close();
    cur = null;
    // Loading phones
    cur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] { ContactsContract.CommonDataKinds.Phone._ID, ContactsContract.CommonDataKinds.Phone.CONTACT_ID, ContactsContract.CommonDataKinds.Phone.NUMBER }, null, null, ContactsContract.CommonDataKinds.Phone._ID + " desc");
    if (cur == null) {
        return new ArrayList<>();
    }
    final int idContactIndex = cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID);
    final int idPhoneIndex = cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID);
    final int idNumberIndex = cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
    while (cur.moveToNext()) {
        if (index++ == READ_ITEM_DELAY_BATCH) {
            if (READ_ITEM_DELAY > 0) {
                try {
                    Thread.sleep(READ_ITEM_DELAY);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        long contactId = cur.getLong(idContactIndex);
        long phoneId = cur.getLong(idPhoneIndex);
        String rawPhone = cur.getString(idNumberIndex);
        PhoneBookContact record = recordsMap.get(contactId);
        if (record == null || rawPhone == null) {
            continue;
        }
        if (PHONE_UTIL == null) {
            synchronized (initSync) {
                if (PHONE_UTIL == null) {
                    PHONE_UTIL = PhoneNumberUtil.getInstance();
                }
            }
        }
        try {
            final Phonenumber.PhoneNumber phonenumber = PHONE_UTIL.parse(rawPhone, isoCountry);
            rawPhone = phonenumber.getCountryCode() + "" + phonenumber.getNationalNumber();
        } catch (final NumberParseException e) {
            rawPhone = rawPhone.replaceAll("[^\\d]", "");
        }
        long phone = -1;
        try {
            phone = Long.parseLong(rawPhone);
        } catch (Exception e) {
            // Logger.d(TAG, "Can't parse number", e);
            continue;
        }
        if (addedPhones.contains(phone)) {
            continue;
        }
        addedPhones.add(phone);
        record.getPhones().add(new PhoneBookPhone(phoneId, phone));
    }
    cur.close();
    cur = null;
    // Loading emails
    cur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, new String[] { ContactsContract.CommonDataKinds.Email._ID, ContactsContract.CommonDataKinds.Email.CONTACT_ID, ContactsContract.CommonDataKinds.Email.ADDRESS }, null, null, ContactsContract.CommonDataKinds.Email._ID + " desc");
    if (cur == null) {
        return new ArrayList<PhoneBookContact>();
    }
    final int idEmailContactIndex = cur.getColumnIndex(ContactsContract.CommonDataKinds.Email.CONTACT_ID);
    final int idEmailIdIndex = cur.getColumnIndex(ContactsContract.CommonDataKinds.Email._ID);
    final int idEmailIndex = cur.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS);
    while (cur.moveToNext()) {
        if (index++ == READ_ITEM_DELAY_BATCH) {
            if (READ_ITEM_DELAY > 0) {
                try {
                    Thread.sleep(READ_ITEM_DELAY);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
        long contactId = cur.getLong(idEmailContactIndex);
        long emailId = cur.getLong(idEmailIdIndex);
        String rawEmail = cur.getString(idEmailIndex);
        PhoneBookContact record = recordsMap.get(contactId);
        if (record == null) {
            continue;
        }
        if (rawEmail == null) {
            continue;
        }
        rawEmail = rawEmail.toLowerCase();
        if (addedEmails.contains(rawEmail)) {
            continue;
        }
        addedEmails.add(rawEmail);
        record.getEmails().add(new PhoneBookEmail(emailId, rawEmail));
    }
    cur.close();
    // Filtering records without contacts
    ArrayList<PhoneBookContact> res = new ArrayList<>();
    for (PhoneBookContact rec : records) {
        if (rec.getPhones().size() > 0 || rec.getEmails().size() > 0) {
            res.add(rec);
        }
    }
    Log.d(TAG, "Phone book loaded in " + (SystemClock.uptimeMillis() - start) + " ms in " + (index) + " iterations");
    return res;
}
Also used : PhoneBookContact(im.actor.core.entity.PhoneBookContact) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Cursor(android.database.Cursor) NumberParseException(com.google.i18n.phonenumbers.NumberParseException) ContentResolver(android.content.ContentResolver) PhoneBookPhone(im.actor.core.entity.PhoneBookPhone) NumberParseException(com.google.i18n.phonenumbers.NumberParseException) PhoneBookEmail(im.actor.core.entity.PhoneBookEmail) Phonenumber(com.google.i18n.phonenumbers.Phonenumber) HashSet(java.util.HashSet)

Example 9 with NumberParseException

use of com.google.i18n.phonenumbers.NumberParseException in project qksms by moezbhatti.

the class PhoneNumberUtils method formatNumberToE164.

/**
     * Format the given phoneNumber to the E.164 representation.
     * <p>
     * The given phone number must have an area code and could have a country
     * code.
     * <p>
     * The defaultCountryIso is used to validate the given number and generate
     * the E.164 phone number if the given number doesn't have a country code.
     *
     * @param phoneNumber
     *            the phone number to format
     * @param defaultCountryIso
     *            the ISO 3166-1 two letters country code
     * @return the E.164 representation, or null if the given phone number is
     *         not valid.
     *
     */
@SuppressLint("Override")
public static String formatNumberToE164(String phoneNumber, String defaultCountryIso) {
    PhoneNumberUtil util = PhoneNumberUtil.getInstance();
    String result = null;
    try {
        Phonenumber.PhoneNumber pn = util.parse(phoneNumber, defaultCountryIso);
        if (util.isValidNumber(pn)) {
            result = util.format(pn, PhoneNumberUtil.PhoneNumberFormat.E164);
        }
    } catch (NumberParseException e) {
    }
    return result;
}
Also used : PhoneNumberUtil(com.google.i18n.phonenumbers.PhoneNumberUtil) NumberParseException(com.google.i18n.phonenumbers.NumberParseException) Phonenumber(com.google.i18n.phonenumbers.Phonenumber) SuppressLint(android.annotation.SuppressLint)

Aggregations

NumberParseException (com.google.i18n.phonenumbers.NumberParseException)9 Phonenumber (com.google.i18n.phonenumbers.Phonenumber)8 PhoneNumberUtil (com.google.i18n.phonenumbers.PhoneNumberUtil)6 View (android.view.View)4 TextView (android.widget.TextView)4 ViewGroup (android.view.ViewGroup)3 UserPhone (im.actor.core.viewmodel.UserPhone)3 UserVM (im.actor.core.viewmodel.UserVM)3 SuppressLint (android.annotation.SuppressLint)2 Activity (android.app.Activity)2 AlertDialog (android.app.AlertDialog)2 ClipData (android.content.ClipData)2 ClipboardManager (android.content.ClipboardManager)2 Context (android.content.Context)2 DialogInterface (android.content.DialogInterface)2 Intent (android.content.Intent)2 ColorDrawable (android.graphics.drawable.ColorDrawable)2 Drawable (android.graphics.drawable.Drawable)2 ActorSDK (im.actor.sdk.ActorSDK)2 R (im.actor.sdk.R)2