Example usage for android.text InputType TYPE_TEXT_FLAG_MULTI_LINE

List of usage examples for android.text InputType TYPE_TEXT_FLAG_MULTI_LINE

Introduction

In this page you can find the example usage for android.text InputType TYPE_TEXT_FLAG_MULTI_LINE.

Prototype

int TYPE_TEXT_FLAG_MULTI_LINE

To view the source code for android.text InputType TYPE_TEXT_FLAG_MULTI_LINE.

Click Source Link

Document

Flag for #TYPE_CLASS_TEXT : multiple lines of text can be entered into the field.

Usage

From source file:org.telegram.ui.ChangeChatNameActivity.java

@Override
public View createView(Context context) {
    actionBar.setBackButtonImage(R.drawable.ic_ab_back);
    actionBar.setAllowOverlayTitle(true);
    actionBar.setTitle(LocaleController.getString("EditName", R.string.EditName));
    actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() {
        @Override/*  www  .jav a  2  s . c om*/
        public void onItemClick(int id) {
            if (id == -1) {
                finishFragment();
            } else if (id == done_button) {
                if (firstNameField.getText().length() != 0) {
                    saveName();
                    finishFragment();
                }
            }
        }
    });

    ActionBarMenu menu = actionBar.createMenu();
    doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_done, AndroidUtilities.dp(56));

    TLRPC.Chat currentChat = MessagesController.getInstance().getChat(chat_id);

    LinearLayout linearLayout = new LinearLayout(context);
    fragmentView = linearLayout;
    fragmentView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT));
    ((LinearLayout) fragmentView).setOrientation(LinearLayout.VERTICAL);
    fragmentView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return true;
        }
    });

    firstNameField = new EditText(context);
    firstNameField.setText(currentChat.title);
    firstNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
    //firstNameField.setHintTextColor(0xff979797);
    firstNameField.setTextColor(ContextCompat.getColor(context, R.color.primary_text));
    firstNameField.setMaxLines(3);
    firstNameField.setPadding(0, 0, 0, 0);
    firstNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
    firstNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE
            | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
    firstNameField.setImeOptions(EditorInfo.IME_ACTION_DONE);
    firstNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
    AndroidUtilities.clearCursorDrawable(firstNameField);
    firstNameField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
            if (i == EditorInfo.IME_ACTION_DONE && doneButton != null) {
                doneButton.performClick();
                return true;
            }
            return false;
        }
    });

    linearLayout.addView(firstNameField,
            LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 36, 24, 24, 24, 0));

    if (chat_id > 0) {
        firstNameField.setHint(LocaleController.getString("GroupName", R.string.GroupName));
    } else {
        firstNameField.setHint(LocaleController.getString("EnterListName", R.string.EnterListName));
    }
    firstNameField.setSelection(firstNameField.length());

    return fragmentView;
}

From source file:com.anton.gavel.GavelMain.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_gavel_main);

    // set up edit text input style for complaints (multiline, capitalize sentences)
    EditText edit = (EditText) findViewById(R.id.complaint_body);
    edit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
            | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
    // set up cities spinner
    Spinner citiesSpinner = (Spinner) findViewById(R.id.cities_spinner);
    ArrayAdapter<CharSequence> citiesAdapter = ArrayAdapter.createFromResource(this, R.array.cities,
            android.R.layout.simple_spinner_item);
    citiesAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    citiesSpinner.setAdapter(citiesAdapter);

    // set up complaints map
    List<String> standardComplaints = this.getStandardComplaints();
    List<String> complaintSubmitValues = this.getComplaintSubmitValues();

    Iterator<String> standard = standardComplaints.iterator();
    Iterator<String> submit = complaintSubmitValues.iterator();
    complaintsMap = new HashMap<String, String>();
    //standard.next(); submit.next(); //skip the first item 'select a complaint'
    while (standard.hasNext() && submit.hasNext())
        complaintsMap.put(standard.next().toString(), submit.next().toString());

    // set up complaint spinner
    List<String> complaints_list = this.getStandardComplaints();
    complaintSpinner = (Spinner) findViewById(R.id.complaint_spinner);
    complaintsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item,
            complaints_list);/*  ww w  . j ava2s  . c  o  m*/
    complaintsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    complaintSpinner.setAdapter(complaintsAdapter);
    complaintSpinner.setOnItemSelectedListener(this);
    complaintSpinner.setOnItemLongClickListener(this);// this doesn't actually work yet bc not supported by API - events don't get fired

    //attach location listener to button
    findViewById(R.id.location_button).setOnClickListener(this);

    // make link in disclaimer clickable
    TextView disclaimer = (TextView) findViewById(R.id.disclaimer_textview);
    disclaimer.setMovementMethod(LinkMovementMethod.getInstance());

    // check &or load shared preferences to populate saved personal information
    mPersonalInfo = new PersonalInfo();
    SharedPreferences preferences = getPreferences(MODE_PRIVATE);
    mPersonalInfo.loadFromPreferences(preferences);

    // suppress keyboard
    this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    // set complaint location to multiline for large layouts
    if (findViewById(R.id.layout_large_land) != null || findViewById(R.id.layout_large) != null) {
        ((EditText) findViewById(R.id.complaint_address)).setInputType(InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
    }

}

From source file:org.telegram.ui.ChangeUsernameActivity.java

@Override
public View createView(Context context) {
    actionBar.setBackButtonImage(R.drawable.ic_ab_back);
    actionBar.setAllowOverlayTitle(true);
    actionBar.setTitle(LocaleController.getString("Username", R.string.Username));
    actionBar.setActionBarMenuOnItemClick(new ActionBar.ActionBarMenuOnItemClick() {
        @Override/*  w  ww .j a  v a 2 s . c  om*/
        public void onItemClick(int id) {
            if (id == -1) {
                finishFragment();
            } else if (id == done_button) {
                saveName();
            }
        }
    });

    ActionBarMenu menu = actionBar.createMenu();
    doneButton = menu.addItemWithWidth(done_button, R.drawable.ic_done, AndroidUtilities.dp(56));

    TLRPC.User user = MessagesController.getInstance().getUser(UserConfig.getClientUserId());
    if (user == null) {
        user = UserConfig.getCurrentUser();
    }

    fragmentView = new LinearLayout(context);
    ((LinearLayout) fragmentView).setOrientation(LinearLayout.VERTICAL);
    fragmentView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return true;
        }
    });

    firstNameField = new EditText(context);
    firstNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
    //firstNameField.setHintTextColor(0xff979797);
    //firstNameField.setTextColor(0xff212121);
    firstNameField.setMaxLines(1);
    firstNameField.setLines(1);
    firstNameField.setPadding(0, 0, 0, 0);
    firstNameField.setSingleLine(true);
    firstNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
    firstNameField.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_MULTI_LINE
            | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
    firstNameField.setImeOptions(EditorInfo.IME_ACTION_DONE);
    firstNameField.setHint(LocaleController.getString("UsernamePlaceholder", R.string.UsernamePlaceholder));
    AndroidUtilities.clearCursorDrawable(firstNameField);
    firstNameField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
            if (i == EditorInfo.IME_ACTION_DONE && doneButton != null) {
                doneButton.performClick();
                return true;
            }
            return false;
        }
    });

    ((LinearLayout) fragmentView).addView(firstNameField,
            LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 36, 24, 24, 24, 0));

    if (user != null && user.username != null && user.username.length() > 0) {
        firstNameField.setText(user.username);
        firstNameField.setSelection(firstNameField.length());
    }

    checkTextView = new TextView(context);
    checkTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
    checkTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
    ((LinearLayout) fragmentView).addView(checkTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT,
            LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 24, 12, 24, 0));

    TextView helpTextView = new TextView(context);
    helpTextView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15);
    helpTextView.setTextColor(0xff6d6d72);
    helpTextView.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT);
    helpTextView.setText(
            AndroidUtilities.replaceTags(LocaleController.getString("UsernameHelp", R.string.UsernameHelp)));
    ((LinearLayout) fragmentView).addView(helpTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT,
            LayoutHelper.WRAP_CONTENT, LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT, 24, 10, 24, 0));

    firstNameField.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
            checkUserName(firstNameField.getText().toString(), false);
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });

    checkTextView.setVisibility(View.GONE);

    return fragmentView;
}

From source file:com.facebook.react.views.textinput.ReactTextInputManager.java

@Override
public ReactEditText createViewInstance(ThemedReactContext context) {
    ReactEditText editText = new ReactEditText(context);
    int inputType = editText.getInputType();
    editText.setInputType(inputType & (~InputType.TYPE_TEXT_FLAG_MULTI_LINE));
    editText.setReturnKeyType("done");
    editText.setTextSize(TypedValue.COMPLEX_UNIT_PX,
            (int) Math.ceil(PixelUtil.toPixelFromSP(ViewDefaults.FONT_SIZE_SP)));
    return editText;
}

From source file:com.ruesga.rview.fragments.EditDialogFragment.java

@Override
public void buildDialog(AlertDialog.Builder builder, Bundle savedInstanceState) {
    String title = getArguments().getString(EXTRA_TITLE);
    String action = getArguments().getString(EXTRA_ACTION);
    if (TextUtils.isEmpty(action)) {
        action = getString(R.string.action_change);
    }/*from   w  w w .j av  a2  s  . c o m*/

    boolean allowSuggestions = getArguments().getBoolean(EXTRA_ALLOW_SUGGESTIONS, false);
    int inputType = InputType.TYPE_CLASS_TEXT | (mModel.isMultiLine ? InputType.TYPE_TEXT_FLAG_MULTI_LINE : 0)
            | (allowSuggestions ? 0 : InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

    LayoutInflater inflater = LayoutInflater.from(builder.getContext());
    mBinding = DataBindingUtil.inflate(inflater, R.layout.edit_dialog, null, true);
    mBinding.edit.setInputType(inputType);
    mBinding.edit.addTextChangedListener(mTextWatcher);
    mBinding.setModel(mModel);

    builder.setTitle(title).setView(mBinding.getRoot()).setNegativeButton(R.string.action_cancel, null)
            .setPositiveButton(action, (dialog, which) -> performEditChanged());
}

From source file:id.zelory.tanipedia.activity.JawabActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_jawab);
    Toolbar toolbar = (Toolbar) findViewById(R.id.anim_toolbar);
    setSupportActionBar(toolbar);/*from w w  w .ja  v  a2 s.com*/
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    CollapsingToolbarLayout collapsingToolbar = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
    collapsingToolbar.setTitle("Tanya Tani");

    soal = getIntent().getParcelableExtra("soal");
    try {
        idSoal = URLEncoder.encode(soal.getId(), "UTF-8");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    Animation animation = AnimationUtils.loadAnimation(this, R.anim.simple_grow);
    fabMargin = getResources().getDimensionPixelSize(R.dimen.fab_margin);

    recyclerView = (RecyclerView) findViewById(R.id.scrollableview);
    recyclerView.setHasFixedSize(true);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(linearLayoutManager);

    recyclerView.addOnScrollListener(new MyRecyclerScroll() {
        @Override
        public void show() {
            fab.animate().translationY(0).setInterpolator(new DecelerateInterpolator(2)).start();
        }

        @Override
        public void hide() {
            fab.animate().translationY(fab.getHeight() + fabMargin)
                    .setInterpolator(new AccelerateInterpolator(2)).start();
        }
    });

    fab = (FrameLayout) findViewById(R.id.myfab_main);
    fabBtn = (ImageButton) findViewById(R.id.myfab_main_btn);
    View fabShadow = findViewById(R.id.myfab_shadow);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        fabShadow.setVisibility(View.GONE);
        fabBtn.setBackground(getDrawable(R.drawable.ripple_accent));
    }

    fab.startAnimation(animation);

    fabBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new MaterialDialog.Builder(JawabActivity.this).title("TaniPedia").content("Kirim Jawaban")
                    .inputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_CLASS_TEXT)
                    .input("Ketik jawaban anda disini!", null, false, new MaterialDialog.InputCallback() {
                        @Override
                        public void onInput(MaterialDialog dialog, CharSequence input) {
                            try {
                                jawaban = URLEncoder.encode(input.toString(), "UTF-8");
                                new KirimJawaban().execute();
                            } catch (UnsupportedEncodingException e) {
                                Snackbar.make(fabBtn, "Terjadi kesalahan, silahkan coba lagi!",
                                        Snackbar.LENGTH_LONG).show();
                                e.printStackTrace();
                            }
                        }
                    }).positiveColorRes(R.color.primary_dark).positiveText("Kirim")
                    .cancelListener(new DialogInterface.OnCancelListener() {
                        @Override
                        public void onCancel(DialogInterface dialog) {

                        }
                    }).negativeColorRes(R.color.primary_dark).negativeText("Batal").show();
        }
    });

    fabButton = (FabButton) findViewById(R.id.determinate);
    fabButton.showProgress(true);
    new DownloadData().execute();
    fabButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            fabButton.showProgress(true);
            new DownloadData().execute();
        }
    });
}

From source file:id.satusatudua.sigap.ui.fragment.SettingFragment.java

@OnClick(R.id.feedback)
public void onFeedbackClick() {
    EditText editText = new EditText(getActivity());
    editText.setHint("Feedback");
    editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
    AlertDialog alertDialog = new AlertDialog.Builder(getActivity()).setIcon(R.mipmap.ic_launcher)
            .setTitle("Kirim Feedback").setView(editText).setPositiveButton("Kirim", (dialog, which) -> {
                if (!editText.getText().toString().isEmpty()) {
                    sendFeedBack(editText.getText().toString());
                    KeyboardUtil.hideKeyboard(getActivity(), editText);
                    dialog.dismiss();/*  ww w . j  a  v a  2 s  . com*/
                }
            }).setNegativeButton("Batal", (dialog, which1) -> {
                dialog.dismiss();
            }).show();

    alertDialog.getButton(DialogInterface.BUTTON_POSITIVE)
            .setTextColor(ContextCompat.getColor(getActivity(), R.color.colorPrimary));
    alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE)
            .setTextColor(ContextCompat.getColor(getActivity(), R.color.primary_text));
    alertDialog.show();
}

From source file:org.thoughtcrime.securesms.scribbles.widget.MotionView.java

private void init(@NonNull Context context, @Nullable AttributeSet attrs) {
    // I fucking love Android
    setWillNotDraw(false);//from ww  w .  j a  v  a  2s  . co m

    selectedLayerPaint = new Paint();
    selectedLayerPaint.setAlpha((int) (255 * Constants.SELECTED_LAYER_ALPHA));
    selectedLayerPaint.setAntiAlias(true);

    this.editText = new EditText(context, attrs);
    ViewCompat.setAlpha(this.editText, 0);
    this.editText.setLayoutParams(new LayoutParams(1, 1, Gravity.TOP | Gravity.LEFT));
    this.editText.setClickable(false);
    this.editText.setBackgroundColor(Color.TRANSPARENT);
    this.editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 1);
    this.editText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
            | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
    this.addView(editText);
    this.editText.clearFocus();
    this.editText.addTextChangedListener(this);

    // init listeners
    this.scaleGestureDetector = new ScaleGestureDetector(context, new ScaleListener());
    this.rotateGestureDetector = new RotateGestureDetector(context, new RotateListener());
    this.moveGestureDetector = new MoveGestureDetector(context, new MoveListener());
    this.gestureDetectorCompat = new GestureDetectorCompat(context, new TapsListener());

    setOnTouchListener(onTouchListener);

    updateUI();
}

From source file:com.ryan.ryanreader.activities.PostSubmitActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {

    PrefsUtility.applyTheme(this);

    super.onCreate(savedInstanceState);

    final LinearLayout layout = (LinearLayout) getLayoutInflater().inflate(R.layout.post_submit);

    typeSpinner = (Spinner) layout.findViewById(R.id.post_submit_type);
    usernameSpinner = (Spinner) layout.findViewById(R.id.post_submit_username);
    subredditEdit = (EditText) layout.findViewById(R.id.post_submit_subreddit);
    titleEdit = (EditText) layout.findViewById(R.id.post_submit_title);
    textEdit = (EditText) layout.findViewById(R.id.post_submit_body);

    if (getIntent() != null && getIntent().hasExtra("subreddit")) {
        final String subreddit = getIntent().getStringExtra("subreddit");
        if (subreddit != null && subreddit.length() > 0 && !subreddit.equals("all")
                && subreddit.matches("\\w+")) {
            subredditEdit.setText(subreddit);
        }//from w  w w  . j a  v a  2s .co  m

    } else if (savedInstanceState != null && savedInstanceState.containsKey("post_title")) {
        titleEdit.setText(savedInstanceState.getString("post_title"));
        textEdit.setText(savedInstanceState.getString("post_body"));
        subredditEdit.setText(savedInstanceState.getString("subreddit"));
        typeSpinner.setSelection(savedInstanceState.getInt("post_type"));
    }

    final ArrayList<RedditAccount> accounts = RedditAccountManager.getInstance(this).getAccounts();
    final ArrayList<String> usernames = new ArrayList<String>();

    for (RedditAccount account : accounts) {
        if (!account.isAnonymous()) {
            usernames.add(account.username);
        }
    }

    if (usernames.size() == 0) {
        General.quickToast(this, R.string.error_toast_notloggedin);
        finish();
    }

    usernameSpinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, usernames));
    typeSpinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, postTypes));

    // TODO remove the duplicate code here
    if (typeSpinner.getSelectedItem().equals("Link")) {
        textEdit.setHint("URL"); // TODO string
        textEdit.setInputType(android.text.InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
        textEdit.setSingleLine(true);
    } else {
        textEdit.setHint("Self Text"); // TODO string
        textEdit.setInputType(android.text.InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
        textEdit.setSingleLine(false);
    }

    typeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            if (typeSpinner.getSelectedItem().equals("Link")) {
                textEdit.setHint("URL"); // TODO string
                textEdit.setInputType(
                        android.text.InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
                textEdit.setSingleLine(true);
            } else {
                textEdit.setHint("Self Text"); // TODO string
                textEdit.setInputType(android.text.InputType.TYPE_CLASS_TEXT
                        | InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
                textEdit.setSingleLine(false);
            }
        }

        public void onNothingSelected(AdapterView<?> parent) {
        }
    });

    final ScrollView sv = new ScrollView(this);
    sv.addView(layout);
    setContentView(sv);
}

From source file:examples.baku.io.permissions.examples.ComposeActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_compose);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle("Compose");
    setSupportActionBar(toolbar);//from  www .j a v  a 2  s  .  c o m
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    toolbar.setTitle("Compose");

    mFab = (FloatingActionButton) findViewById(R.id.fab);

    mTo = (PermissionedTextLayout) findViewById(R.id.composeTo);

    mFrom = (PermissionedTextLayout) findViewById(R.id.composeFrom);

    mSubject = (PermissionedTextLayout) findViewById(R.id.composeSubject);

    mMessage = (PermissionedTextLayout) findViewById(R.id.composeMessage);
    mMessage.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);

    mAttachmentView = (RelativeLayout) findViewById(R.id.composeAttachment);
    mAttachmentText = (TextView) findViewById(R.id.composeAttachmentText);
    mAttachmentIcon = (ImageView) findViewById(R.id.composeAttachmentIcon);
    mAttachmentIcon.setImageDrawable(new IconDrawable(this, MaterialIcons.md_attach_file).actionBarSize());
    mAttachmentCast = (ImageView) findViewById(R.id.composeAttachmentCast);
    mAttachmentCast.setImageDrawable(new IconDrawable(this, MaterialIcons.md_cast).actionBarSize());
    mAttachmentCast.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mPublicBlessing != null) {
                int current = mPublicBlessing.getPermissions(mPath + "/attachment");
                if ((current & PermissionManager.FLAG_READ) == PermissionManager.FLAG_READ) {
                    mPublicBlessing.setPermissions(mPath + "/attachment",
                            current & ~PermissionManager.FLAG_READ);
                    mAttachmentCast.setImageDrawable(
                            new IconDrawable(ComposeActivity.this, MaterialIcons.md_cast).actionBarSize());
                } else {
                    mPublicBlessing.setPermissions(mPath + "/attachment",
                            current | PermissionManager.FLAG_READ);
                    mAttachmentCast
                            .setImageDrawable(new IconDrawable(ComposeActivity.this, MaterialIcons.md_cancel)
                                    .color(Color.RED).actionBarSize());
                }
            }
        }
    });
    mAttachmentCast.setVisibility(View.GONE);

    setGroup("Inbox"); //default
    setAttachment(null, mAttachmentPermission);

    getContactsPermission();

    bindService(new Intent(this, PermissionService.class), this, Service.BIND_AUTO_CREATE);
}