/** * Shows the 'Reply to ...' editor. * * @param post */ private void showPostEditor(final Post post) { final EditText view = new EditText(this); view.setSingleLine(false); view.setLines(4); view.setMinLines(4); view.setMaxLines(4); new AlertDialog.Builder(this) .setTitle(post == null ? "New Post" : "Reply to @" + post.getAuthor()) .setView(view) .setMessage(post == null ? null : post.getText()) .setPositiveButton( "Post", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); final String id = (post != null) ? post.getId() : null; new AddPostTask(id, myStreamPostsAdapter, accessToken) .execute(view.getText().toString()); } }) .setNegativeButton( "Cancel", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .show(); }
public void switchToTextView(Context context, String blockname) { String blockLongText = getBlockLongText(blockname); if (blockname.equalsIgnoreCase("Hold To Edit")) { Toast.makeText(context, "Please Name The Block", Toast.LENGTH_LONG).show(); return; } // do something when the button is clicked // in onCreate or any event where your want the user to tempBlockName = blockname; AlertDialog.Builder alert = new AlertDialog.Builder(context); alert.setTitle("Block Information?"); alert.setMessage("Please Enter More Information For " + blockname); // Set an EditText view to get user input final EditText input = new EditText(context); input.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); input.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); input.setLines(10); input.setGravity(Gravity.TOP); input.setHorizontallyScrolling(false); input.setText(blockLongText); alert.setView(input); alert.setPositiveButton( "Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { String newtext = input.getText().toString(); setBlockLongText(tempBlockName, newtext); } }); alert.setNegativeButton( "Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) {} }); alert.show(); }
private void createNewContactObject(String type, View my_contact_view) { if (my_contact_view == null) { my_contact_view = fragment_mycontact.getView(); } if (my_contact_view == null) return; LinearLayout ll_data; List<String> list = new ArrayList<String>(); int it = android.text.InputType.TYPE_CLASS_TEXT; int hint = 0; // Typen setzen: List<Integer> list_number = new ArrayList<Integer>(); for (int i = 0; i < array_en_type.length; i++) { if (array_en_type[i].equals(type)) { list_number.add(i); } } for (int i = 0; i < list_number.size(); i++) { list.add((array_en_name[list_number.get(i)])); } final String[] spinnerArray = list.toArray(new String[list.size()]); // ----------- LinearLayout ll_telephone = (LinearLayout) my_contact_view.findViewById(R.id.mycontact_ll_data_telephone); LinearLayout ll_email = (LinearLayout) my_contact_view.findViewById(R.id.mycontact_ll_data_email); LinearLayout ll_other = (LinearLayout) my_contact_view.findViewById(R.id.mycontact_ll_data_other); // new row LinearLayout row = new LinearLayout(this); row.setOrientation(LinearLayout.HORIZONTAL); DisplayMetrics tmp_metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(tmp_metrics); int resolution_width = tmp_metrics.widthPixels; final boolean large_screen = (resolution_width >= 720); final EditText et = new EditText(this); LayoutParams lp_et; lp_et = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT, 1); if (type.equals("number")) { ll_data = ll_telephone; it = InputType.TYPE_CLASS_PHONE; hint = R.string.telephone; } else if (type.equals("email")) { ll_data = ll_email; it = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS; hint = R.string.email; } else { ll_data = ll_other; if (type.equals("address")) { et.setMinLines(1); et.setMaxLines(3); et.setLines(2); hint = R.string.address; it = InputType.TYPE_CLASS_TEXT | InputType .TYPE_TEXT_FLAG_MULTI_LINE; // android.text.InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS; lp_et = new LayoutParams(LayoutParams.WRAP_CONTENT, large_screen ? 130 : 90, 1); row.setLayoutParams( new LayoutParams(LayoutParams.MATCH_PARENT, (large_screen ? 130 : 90) + 20)); et.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION); // et.setGravity(Gravity.LEFT | Gravity.TOP ); } else if (type.equals("website")) { hint = R.string.website; it = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI; } } ((LinearLayout) ll_data.getParent()).setVisibility(LinearLayout.VISIBLE); et.setTextSize(large_screen ? 16 : 14); // EditText-Textgr��e et.setEms(10); et.setHint(hint); et.setInputType(it); lp_et.setMargins(0, 3, 0, 0); et.setLayoutParams(lp_et); Spinner spinner = new Spinner(this); LayoutParams lp_spinner = new LayoutParams( large_screen ? Functions.dpsToPx(this, 100) : Functions.dpsToPx(this, 80), /*300 : 200*/ LayoutParams.MATCH_PARENT); lp_spinner.setMargins(0, 3, 0, 0); MySpinnerArrayAdapter dataAdapter = new MySpinnerArrayAdapter(this, list, large_screen); dataAdapter.setDropDownViewResource( android.support.v7.appcompat.R.layout.support_simple_spinner_dropdown_item); spinner.setAdapter(dataAdapter); spinner.setLayoutParams(lp_spinner); spinner.setOnItemSelectedListener( new OnItemSelectedListener() { @Override public void onItemSelected( final AdapterView<?> adapterView, final View view, int arg2, long arg3) { final Spinner spinner = (Spinner) adapterView; MySpinnerArrayAdapter adapter = (MySpinnerArrayAdapter) spinner.getAdapter(); if (adapter .getItem(arg2) .toLowerCase(new Locale("en")) .equals(getString(R.string.en_custom).toLowerCase(new Locale("en")))) { LinearLayout ll = new LinearLayout(MainActivity.this); final EditText et = new EditText(MainActivity.this); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(0, 20, 0, 0); et.setTextColor(Color.BLACK); et.requestFocus(); // et.setHint(R.string.place); ll.addView(et, layoutParams); AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder .setView(ll) .setTitle(R.string.message_custom_en) .setPositiveButton( android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { String[] newItems = new String[spinnerArray.length + 1]; System.arraycopy(spinnerArray, 0, newItems, 0, spinnerArray.length); newItems[newItems.length - 1] = et.getText().toString(); MySpinnerArrayAdapter adapter = new MySpinnerArrayAdapter( getApplicationContext(), newItems, ((MySpinnerArrayAdapter) spinner.getAdapter()).getLargeScreen()); spinner.setAdapter(adapter); spinner.setSelection(newItems.length - 1); } }) .setNegativeButton( android.R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) {} }) .create() .show(); } } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); Button btn = new Button(this); btn.setText("x"); LayoutParams lp_btn = new LayoutParams(Functions.dpsToPx(this, 32), LayoutParams.WRAP_CONTENT); lp_btn.setMargins(-10, 0, -10, 0); btn.setLayoutParams(lp_btn); btn.setBackgroundColor(Color.TRANSPARENT); btn.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { if (((LinearLayout) v.getParent().getParent()).getChildCount() == 1) { ((LinearLayout) v.getParent().getParent().getParent()).setVisibility(View.GONE); } ((LinearLayout) v.getParent().getParent()).removeView((LinearLayout) v.getParent()); } }); row.addView(et); row.addView(spinner); row.addView(btn); row.setTag(type); ll_data.addView(row); }
private void initialize() { // Read parameters or previously saved state of this activity. Intent intent = getIntent(); if (intent.hasExtra(KEY_GROUP_ID)) { Bundle extras = intent.getExtras(); if (extras != null) { groupId = (String) extras.get(KEY_GROUP_ID); } } if (TextUtils.isEmpty(groupId)) { finish(); } if (intent.hasExtra("Edit_Tag")) { Bundle extras = intent.getExtras(); if (extras != null) { mEditType = (Integer) extras.get("Edit_Tag"); } } if (intent.hasExtra("Edit_Content")) { Bundle extras = intent.getExtras(); if (extras != null) { mEditContent = (String) extras.get("Edit_Content"); } } if (intent.hasExtra("voipAccount")) { Bundle extras = intent.getExtras(); if (extras != null) { voipAccount = (String) extras.get("voipAccount"); } } mInputEdit.setSingleLine(); switch (mEditType) { case GroupCardSetting.GROUP_CARD_NAME: msgContentCount = 64; setActivityTitle(R.string.str_group_card_name); break; case GroupCardSetting.GROUP_CARD_TELEPHONE: msgContentCount = 20; mInputEdit.setInputType(InputType.TYPE_CLASS_PHONE); setActivityTitle(R.string.str_group_card_telephone); break; case GroupCardSetting.GROUP_CARD_MAIL: msgContentCount = 30; mInputEdit.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); setActivityTitle(R.string.str_group_card_mail); break; case GroupCardSetting.GROUP_CARD_SIGNATURE: mInputEdit.setSingleLine(false); mInputEdit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE); mInputEdit.setLines(4); msgContentCount = 200; setActivityTitle(R.string.str_group_card_signature); break; default: break; } if (!TextUtils.isEmpty(mEditContent)) { mInputEdit.setText(mEditContent); mInputEdit.setSelection(mEditContent.length()); } mNumTip.setText(mEditContent.length() + "/" + msgContentCount); }
@Override protected Dialog onCreateDialog(int id, Bundle args) { // TODO Auto-generated method stub switch (id) { case DIALOG1_KEY: { ProgressDialog dialog = new ProgressDialog(this); dialog.setMessage("Loading.."); dialog.setIndeterminate(true); dialog.setCancelable(true); return dialog; } case DIALOG2_KEY: { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("첨부파일 목록"); View v = getLayoutInflater().inflate(R.layout.dialog_file_list, null); mLvFile = (ListView) v.findViewById(R.id.lvFile); mLvFile.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { KnouNoticeFileInfo attacheFileInfo = (KnouNoticeFileInfo) parent.getItemAtPosition(position); dismissDialog(DIALOG2_KEY); Bundle bundle = new Bundle(); bundle.putString("FILESRC", attacheFileInfo.href); bundle.putString("FILENAME", attacheFileInfo.fileName); showDialog(DIALOG5_KEY, bundle); } }); mLvFile.setAdapter(mCustomerArrayAdapter); builder.setView(v); builder.setNegativeButton( "닫기", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dismissDialog(DIALOG2_KEY); } }); return builder.create(); } case DIALOG3_KEY: { ProgressDialog dialog = new ProgressDialog(this); dialog.setMessage("File.. Download"); dialog.setIndeterminate(true); dialog.setCancelable(true); return dialog; } case DIALOG4_KEY: { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setCancelable(true); builder.setTitle("메모"); final EditText etMemo = new EditText(this); etMemo.setLayoutParams( new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); etMemo.setText(mKnouNoticeInfo.memo); etMemo.setGravity(Gravity.TOP); etMemo.setLines(10); builder.setView(etMemo); builder.setPositiveButton( "저장", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { mKnouNoticeInfo.memo = etMemo.getText().toString(); setChangeKnouNoticeInfo(mKnouNoticeInfo); if (mKnouNoticeInfo.memo != null) { if (!mKnouNoticeInfo.memo.trim().equals("")) { mBtnMemo.setText("메모(O)"); } else { mBtnMemo.setText("메모(X)"); } } else { mBtnMemo.setText("메모(X)"); } } }); builder.setNegativeButton( "닫기", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dismissDialog(DIALOG4_KEY); } }); return builder.create(); } case DIALOG5_KEY: { final String fileSrc = args.getString("FILESRC"); final String fileName = args.getString("FILENAME"); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setCancelable(true); builder.setTitle("파일 다운로드"); File fileHome = HelpF.getHomeFileLoc(); final File file = new File(fileHome.getAbsolutePath(), fileName); boolean bExistsFile = file.isFile(); String message = ""; if (!bExistsFile) { builder.setMessage("파일을 다운로드 하시겠습니까?"); message = "다운로드"; } else { builder.setMessage("파일이 존재합니다. 다운로드 하시겠습니까?"); message = "덮어쓰기"; } builder.setPositiveButton( message, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (HelpF.Wifi3gConnectivity(NoticeRead.this) == false) { HelpF.SSMessage(NoticeRead.this, "네트워크 연결 상태를 확인해 주세요."); return; } new FileDownLoadTask(fileSrc, fileName).execute(0); } }); if (bExistsFile) { builder.setNeutralButton( "열기", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (true) { HelpF.goIntentFileView(NoticeRead.this, file.getAbsolutePath()); } } }); } builder.setNegativeButton( "닫기", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dismissDialog(DIALOG5_KEY); } }); return builder.create(); } } return null; }
private View getView(int mId, cl.tdc.felipe.tdc.objects.Relevar.Item item) { String type = item.getType(); List<String> values = item.getValues(); LinearLayout contenido = new LinearLayout(this); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); contenido.setLayoutParams(params); params.setMargins(0, 6, 0, 0); contenido.setOrientation(LinearLayout.VERTICAL); contenido.setGravity(Gravity.CENTER_HORIZONTAL); String comment = ""; if (type.equals("SELECT")) { Spinner s = new Spinner(this); s.setBackgroundResource(R.drawable.spinner_bg); s.setLayoutParams( new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, values); s.setAdapter(adapter); String id = mId + item.getId() + item.getName() + values.toString(); s.setId(Funciones.str2int(id)); String Selected = reg.getString("SELECT" + s.getId()); s.setSelection(adapter.getPosition(Selected)); contenido.addView(s); item.setVista(s); comment = reg.getString("COMMENTSELECT" + s.getId()); } else if (type.equals("CHECK")) { LinearLayout checkboxLayout = new LinearLayout(this); checkboxLayout.setLayoutParams( new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); checkboxLayout.setOrientation(LinearLayout.VERTICAL); ArrayList<CheckBox> checkBoxes = new ArrayList<>(); int count = 0; while (count < values.size()) { LinearLayout dump = new LinearLayout(this); dump.setOrientation(LinearLayout.HORIZONTAL); dump.setGravity(Gravity.CENTER_HORIZONTAL); dump.setLayoutParams( new LinearLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); for (int p = 0; p < 3; p++) { if (count < values.size()) { String state = values.get(count); CheckBox cb = new CheckBox(this); String id = mId + item.getId() + item.getName() + values.get(count); cb.setId(Funciones.str2int(id)); cb.setChecked(reg.getBoolean("CHECK" + cb.getId())); cb.setText(state); checkBoxes.add(cb); dump.addView(cb); if (count == 0) comment = reg.getString("COMMENTCHECK" + cb.getId()); count++; vistas.add(cb); } } checkboxLayout.addView(dump); } makeOnlyOneCheckable(checkBoxes); item.setCheckBoxes(checkBoxes); contenido.addView(checkboxLayout); } else if (type.equals("NUM")) { EditText e = new EditText(this); e.setBackgroundResource(R.drawable.fondo_edittext); e.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); String id = mId + item.getId() + item.getName(); e.setId(Funciones.str2int(id)); e.setText(reg.getString("TEXT" + e.getId())); e.setLayoutParams(new LinearLayout.LayoutParams(100, ViewGroup.LayoutParams.WRAP_CONTENT)); e.setGravity(Gravity.CENTER_HORIZONTAL); vistas.add(e); item.setVista(e); contenido.addView(e); comment = reg.getString("COMMENTTEXT" + e.getId()); } else if (type.equals("VARCHAR")) { EditText e = new EditText(this); e.setBackgroundResource(R.drawable.fondo_edittext); e.setInputType(InputType.TYPE_CLASS_TEXT); e.setLines(2); e.setGravity(Gravity.LEFT | Gravity.TOP); String id = mId + item.getId() + item.getName(); e.setId(Funciones.str2int(id)); e.setText(reg.getString("TEXT" + e.getId())); vistas.add(e); item.setVista(e); contenido.addView(e); comment = reg.getString("COMMENTTEXT" + e.getId()); } if (!item.getName().equals("COMENTARIOS")) { EditText comentario = new EditText(this); comentario.setLayoutParams(params); comentario.setBackgroundResource(R.drawable.fondo_edittext); comentario.setLines(3); comentario.setText(comment); comentario.setHint("Observaciones"); item.setDescription(comentario); contenido.addView(comentario); } return contenido; }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 0) { if (resultCode == -1) { if (data != null) { if (data.hasExtra("data")) { imgTmp.setImage( Bitmap.createScaledBitmap( (Bitmap) data.getParcelableExtra("data"), 640, 480, true)); } } else { imgTmp.setImage( Bitmap.createScaledBitmap(BitmapFactory.decodeFile(name), 640, 480, true)); } final EditText desc = new EditText(this); desc.setLines(1); desc.setMaxLines(1); desc.setBackgroundResource(R.drawable.fondo_edittext); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(desc); builder.setIcon(R.drawable.ic_camera); builder.setTitle("¿Qué fotografió?"); builder.setPositiveButton("Guardar", null); builder.setNegativeButton( "Cancelar", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { imgTmp = null; dialogInterface.dismiss(); } }); builder.setCancelable(false); final AlertDialog alert = builder.create(); alert.setCanceledOnTouchOutside(false); alert.setCancelable(false); alert.show(); alert .getButton(DialogInterface.BUTTON_POSITIVE) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { if (desc.getText().toString().length() == 0) { Toast.makeText( getApplicationContext(), "Ingrese una descripción de lo fotografiado", Toast.LENGTH_LONG) .show(); return; } imgTmp.setComment(desc.getText().toString()); imgTmp.newNameRelevo(imgTmp.getIdSystem(), imgTmp.getComment()); imagenes.add(imgTmp); imgTmp = null; alert.dismiss(); } }); } } if (requestCode == idRelevo) { if (resultCode == Activity.RESULT_OK) { reg.clearPreferences(); ((Activity) context).finish(); } } }
@Override public View createView(LayoutInflater inflater) { if (fragmentView == null) { searching = false; searchWas = false; actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); if (isAlwaysShare) { actionBar.setTitle( LocaleController.getString("AlwaysShareWithTitle", R.string.AlwaysShareWithTitle)); } else if (isNeverShare) { actionBar.setTitle( LocaleController.getString("NeverShareWithTitle", R.string.NeverShareWithTitle)); } else { actionBar.setTitle( isBroadcast ? LocaleController.getString("NewBroadcastList", R.string.NewBroadcastList) : LocaleController.getString("NewGroup", R.string.NewGroup)); actionBar.setSubtitle( LocaleController.formatString( "MembersCount", R.string.MembersCount, selectedContacts.size(), maxCount)); } actionBar.setActionBarMenuOnItemClick( new ActionBar.ActionBarMenuOnItemClick() { @Override public void onItemClick(int id) { if (id == -1) { finishFragment(); } else if (id == done_button) { if (selectedContacts.isEmpty()) { return; } ArrayList<Integer> result = new ArrayList<>(); result.addAll(selectedContacts.keySet()); if (isAlwaysShare || isNeverShare) { if (delegate != null) { delegate.didSelectUsers(result); } finishFragment(); } else { Bundle args = new Bundle(); args.putIntegerArrayList("result", result); args.putBoolean("broadcast", isBroadcast); presentFragment(new GroupCreateFinalActivity(args)); } } } }); ActionBarMenu menu = actionBar.createMenu(); menu.addItemWithWidth(done_button, R.drawable.ic_done, AndroidUtilities.dp(56)); searchListViewAdapter = new ContactsSearchAdapter(getParentActivity(), null, false); searchListViewAdapter.setCheckedMap(selectedContacts); searchListViewAdapter.setUseUserCell(true); listViewAdapter = new ContactsAdapter(getParentActivity(), true, false, null); listViewAdapter.setCheckedMap(selectedContacts); fragmentView = new LinearLayout(getParentActivity()); LinearLayout linearLayout = (LinearLayout) fragmentView; linearLayout.setOrientation(LinearLayout.VERTICAL); FrameLayout frameLayout = new FrameLayout(getParentActivity()); linearLayout.addView(frameLayout); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) frameLayout.getLayoutParams(); layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; layoutParams.height = LinearLayout.LayoutParams.WRAP_CONTENT; layoutParams.gravity = Gravity.TOP; frameLayout.setLayoutParams(layoutParams); userSelectEditText = new EditText(getParentActivity()); userSelectEditText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16); userSelectEditText.setHintTextColor(0xff979797); userSelectEditText.setTextColor(0xff212121); userSelectEditText.setInputType( InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_FLAG_MULTI_LINE); userSelectEditText.setMinimumHeight(AndroidUtilities.dp(54)); userSelectEditText.setSingleLine(false); userSelectEditText.setLines(2); userSelectEditText.setMaxLines(2); userSelectEditText.setVerticalScrollBarEnabled(true); userSelectEditText.setHorizontalScrollBarEnabled(false); userSelectEditText.setPadding(0, 0, 0, 0); userSelectEditText.setImeOptions( EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); userSelectEditText.setGravity( (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL); AndroidUtilities.clearCursorDrawable(userSelectEditText); frameLayout.addView(userSelectEditText); FrameLayout.LayoutParams layoutParams1 = (FrameLayout.LayoutParams) userSelectEditText.getLayoutParams(); layoutParams1.width = FrameLayout.LayoutParams.MATCH_PARENT; layoutParams1.height = FrameLayout.LayoutParams.WRAP_CONTENT; layoutParams1.leftMargin = AndroidUtilities.dp(10); layoutParams1.rightMargin = AndroidUtilities.dp(10); layoutParams1.gravity = Gravity.TOP; userSelectEditText.setLayoutParams(layoutParams1); if (isAlwaysShare) { userSelectEditText.setHint( LocaleController.getString( "AlwaysShareWithPlaceholder", R.string.AlwaysShareWithPlaceholder)); } else if (isNeverShare) { userSelectEditText.setHint( LocaleController.getString( "NeverShareWithPlaceholder", R.string.NeverShareWithPlaceholder)); } else { userSelectEditText.setHint( LocaleController.getString("SendMessageTo", R.string.SendMessageTo)); } if (Build.VERSION.SDK_INT >= 11) { userSelectEditText.setTextIsSelectable(false); } userSelectEditText.addTextChangedListener( new TextWatcher() { @Override public void beforeTextChanged( CharSequence charSequence, int start, int count, int after) { if (!ignoreChange) { beforeChangeIndex = userSelectEditText.getSelectionStart(); changeString = new SpannableString(charSequence); } } @Override public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {} @Override public void afterTextChanged(Editable editable) { if (!ignoreChange) { boolean search = false; int afterChangeIndex = userSelectEditText.getSelectionEnd(); if (editable.toString().length() < changeString.toString().length()) { String deletedString = ""; try { deletedString = changeString.toString().substring(afterChangeIndex, beforeChangeIndex); } catch (Exception e) { FileLog.e("tmessages", e); } if (deletedString.length() > 0) { if (searching && searchWas) { search = true; } Spannable span = userSelectEditText.getText(); for (int a = 0; a < allSpans.size(); a++) { XImageSpan sp = allSpans.get(a); if (span.getSpanStart(sp) == -1) { allSpans.remove(sp); selectedContacts.remove(sp.uid); } } if (!isAlwaysShare && !isNeverShare) { actionBar.setSubtitle( LocaleController.formatString( "MembersCount", R.string.MembersCount, selectedContacts.size(), maxCount)); } listView.invalidateViews(); } else { search = true; } } else { search = true; } if (search) { String text = userSelectEditText.getText().toString().replace("<", ""); if (text.length() != 0) { searching = true; searchWas = true; if (listView != null) { listView.setAdapter(searchListViewAdapter); searchListViewAdapter.notifyDataSetChanged(); if (android.os.Build.VERSION.SDK_INT >= 11) { listView.setFastScrollAlwaysVisible(false); } listView.setFastScrollEnabled(false); listView.setVerticalScrollBarEnabled(true); } if (emptyTextView != null) { emptyTextView.setText( LocaleController.getString("NoResult", R.string.NoResult)); } searchListViewAdapter.searchDialogs(text); } else { searchListViewAdapter.searchDialogs(null); searching = false; searchWas = false; listView.setAdapter(listViewAdapter); listViewAdapter.notifyDataSetChanged(); if (android.os.Build.VERSION.SDK_INT >= 11) { listView.setFastScrollAlwaysVisible(true); } listView.setFastScrollEnabled(true); listView.setVerticalScrollBarEnabled(false); emptyTextView.setText( LocaleController.getString("NoContacts", R.string.NoContacts)); } } } } }); LinearLayout emptyTextLayout = new LinearLayout(getParentActivity()); emptyTextLayout.setVisibility(View.INVISIBLE); emptyTextLayout.setOrientation(LinearLayout.VERTICAL); linearLayout.addView(emptyTextLayout); layoutParams = (LinearLayout.LayoutParams) emptyTextLayout.getLayoutParams(); layoutParams.width = FrameLayout.LayoutParams.MATCH_PARENT; layoutParams.height = FrameLayout.LayoutParams.MATCH_PARENT; emptyTextLayout.setLayoutParams(layoutParams); emptyTextLayout.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return true; } }); emptyTextView = new TextView(getParentActivity()); emptyTextView.setTextColor(0xff808080); emptyTextView.setTextSize(20); emptyTextView.setGravity(Gravity.CENTER); emptyTextView.setText(LocaleController.getString("NoContacts", R.string.NoContacts)); emptyTextLayout.addView(emptyTextView); layoutParams = (LinearLayout.LayoutParams) emptyTextView.getLayoutParams(); layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; layoutParams.height = LinearLayout.LayoutParams.MATCH_PARENT; layoutParams.weight = 0.5f; emptyTextView.setLayoutParams(layoutParams); FrameLayout frameLayout2 = new FrameLayout(getParentActivity()); emptyTextLayout.addView(frameLayout2); layoutParams = (LinearLayout.LayoutParams) frameLayout2.getLayoutParams(); layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; layoutParams.height = LinearLayout.LayoutParams.MATCH_PARENT; layoutParams.weight = 0.5f; frameLayout2.setLayoutParams(layoutParams); listView = new LetterSectionsListView(getParentActivity()); listView.setEmptyView(emptyTextLayout); listView.setVerticalScrollBarEnabled(false); listView.setDivider(null); listView.setDividerHeight(0); listView.setFastScrollEnabled(true); listView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); listView.setAdapter(listViewAdapter); if (Build.VERSION.SDK_INT >= 11) { listView.setFastScrollAlwaysVisible(true); listView.setVerticalScrollbarPosition( LocaleController.isRTL ? ListView.SCROLLBAR_POSITION_LEFT : ListView.SCROLLBAR_POSITION_RIGHT); } linearLayout.addView(listView); layoutParams = (LinearLayout.LayoutParams) listView.getLayoutParams(); layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; layoutParams.height = LinearLayout.LayoutParams.MATCH_PARENT; listView.setLayoutParams(layoutParams); listView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { TLRPC.User user = null; if (searching && searchWas) { user = searchListViewAdapter.getItem(i); } else { int section = listViewAdapter.getSectionForPosition(i); int row = listViewAdapter.getPositionInSectionForPosition(i); if (row < 0 || section < 0) { return; } user = (TLRPC.User) listViewAdapter.getItem(section, row); } if (user == null) { return; } boolean check = true; if (selectedContacts.containsKey(user.id)) { check = false; try { XImageSpan span = selectedContacts.get(user.id); selectedContacts.remove(user.id); SpannableStringBuilder text = new SpannableStringBuilder(userSelectEditText.getText()); text.delete(text.getSpanStart(span), text.getSpanEnd(span)); allSpans.remove(span); ignoreChange = true; userSelectEditText.setText(text); userSelectEditText.setSelection(text.length()); ignoreChange = false; } catch (Exception e) { FileLog.e("tmessages", e); } } else { if (selectedContacts.size() == maxCount) { return; } ignoreChange = true; XImageSpan span = createAndPutChipForUser(user); span.uid = user.id; ignoreChange = false; } if (!isAlwaysShare && !isNeverShare) { actionBar.setSubtitle( LocaleController.formatString( "MembersCount", R.string.MembersCount, selectedContacts.size(), maxCount)); } if (searching || searchWas) { ignoreChange = true; SpannableStringBuilder ssb = new SpannableStringBuilder(""); for (ImageSpan sp : allSpans) { ssb.append("<<"); ssb.setSpan( sp, ssb.length() - 2, ssb.length(), SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE); } userSelectEditText.setText(ssb); userSelectEditText.setSelection(ssb.length()); ignoreChange = false; searchListViewAdapter.searchDialogs(null); searching = false; searchWas = false; listView.setAdapter(listViewAdapter); listViewAdapter.notifyDataSetChanged(); if (android.os.Build.VERSION.SDK_INT >= 11) { listView.setFastScrollAlwaysVisible(true); } listView.setFastScrollEnabled(true); listView.setVerticalScrollBarEnabled(false); emptyTextView.setText( LocaleController.getString("NoContacts", R.string.NoContacts)); } else { if (view instanceof UserCell) { ((UserCell) view).setChecked(check, true); } } } }); listView.setOnScrollListener( new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView absListView, int i) { if (i == SCROLL_STATE_TOUCH_SCROLL) { AndroidUtilities.hideKeyboard(userSelectEditText); } if (listViewAdapter != null) { listViewAdapter.setIsScrolling(i != SCROLL_STATE_IDLE); } } @Override public void onScroll( AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (absListView.isFastScrollEnabled()) { AndroidUtilities.clearDrawableAnimation(absListView); } } }); } else { ViewGroup parent = (ViewGroup) fragmentView.getParent(); if (parent != null) { parent.removeView(fragmentView); } } return fragmentView; }
@Override public View createView(Context context, LayoutInflater inflater) { actionBar.setBackButtonImage(R.drawable.ic_ab_back); actionBar.setAllowOverlayTitle(true); actionBar.setTitle(LocaleController.getString("EditName", R.string.EditName)); actionBar.setActionBarMenuOnItemClick( new ActionBar.ActionBarMenuOnItemClick() { @Override 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.User user = MessagesController.getInstance().getUser(UserConfig.getClientUserId()); if (user == null) { user = UserConfig.getCurrentUser(); } fragmentView = new LinearLayout(context); 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.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); firstNameField.setHintTextColor(0xff979797); firstNameField.setTextColor(0xff212121); firstNameField.setMaxLines(1); firstNameField.setLines(1); firstNameField.setSingleLine(true); firstNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); firstNameField.setInputType( InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); firstNameField.setImeOptions(EditorInfo.IME_ACTION_NEXT); firstNameField.setHint(LocaleController.getString("FirstName", R.string.FirstName)); AndroidUtilities.clearCursorDrawable(firstNameField); ((LinearLayout) fragmentView).addView(firstNameField); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) firstNameField.getLayoutParams(); layoutParams.topMargin = AndroidUtilities.dp(24); layoutParams.height = AndroidUtilities.dp(36); layoutParams.leftMargin = AndroidUtilities.dp(24); layoutParams.rightMargin = AndroidUtilities.dp(24); layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; firstNameField.setLayoutParams(layoutParams); firstNameField.setOnEditorActionListener( new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) { if (i == EditorInfo.IME_ACTION_NEXT) { lastNameField.requestFocus(); lastNameField.setSelection(lastNameField.length()); return true; } return false; } }); lastNameField = new EditText(context); lastNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18); lastNameField.setHintTextColor(0xff979797); lastNameField.setTextColor(0xff212121); lastNameField.setMaxLines(1); lastNameField.setLines(1); lastNameField.setSingleLine(true); lastNameField.setGravity(LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT); lastNameField.setInputType( InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); lastNameField.setImeOptions(EditorInfo.IME_ACTION_DONE); lastNameField.setHint(LocaleController.getString("LastName", R.string.LastName)); AndroidUtilities.clearCursorDrawable(lastNameField); ((LinearLayout) fragmentView).addView(lastNameField); layoutParams = (LinearLayout.LayoutParams) lastNameField.getLayoutParams(); layoutParams.topMargin = AndroidUtilities.dp(16); layoutParams.height = AndroidUtilities.dp(36); layoutParams.leftMargin = AndroidUtilities.dp(24); layoutParams.rightMargin = AndroidUtilities.dp(24); layoutParams.width = LinearLayout.LayoutParams.MATCH_PARENT; lastNameField.setLayoutParams(layoutParams); lastNameField.setOnEditorActionListener( new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) { if (i == EditorInfo.IME_ACTION_DONE) { doneButton.performClick(); return true; } return false; } }); if (user != null) { firstNameField.setText(user.first_name); firstNameField.setSelection(firstNameField.length()); lastNameField.setText(user.last_name); } return fragmentView; }