@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_new_post, container, false); mPostText = (MultiAutoCompleteTextView) rootView.findViewById(R.id.postText); mUsersListAdapter = new UserCompletionAdapter(getActivity()); mPostText.setAdapter(mUsersListAdapter); mPostText.setTokenizer(new SymbolTokenizer('@')); mIsPrivate = (Switch) rootView.findViewById(R.id.isPrivate); mTagsListAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_dropdown_item_1line); mPostTags = (MultiAutoCompleteTextView) rootView.findViewById(R.id.postTags); mPostTags.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); mPostTags.setAdapter(mTagsListAdapter); mImagesPanel = (ImageUploadingPanel) rootView.findViewById(R.id.imagesPanel); setHasOptionsMenu(true); if (savedInstanceState == null) { Bundle args = getArguments(); if (args != null) { mPostId = args.getString(ARG_ID); mPostText.setText(args.getString(ARG_TEXT, "")); String[] tags = args.getStringArray(ARG_TAGS); mIsPrivate.setChecked(args.getBoolean(ARG_PRIVATE)); if (tags != null) { mPostTags.setText(TextUtils.join(", ", tags)); } ArrayList<Uri> images = args.getParcelableArrayList(ARG_IMAGES); if (images != null) for (Uri image : images) { mImagesPanel.addImage(image, mMime); } mMime = args.getString(ARG_MIME); } } if (mPostId == null) { mIsPrivate.setVisibility(View.VISIBLE); } else { mIsPrivate.setVisibility(View.GONE); } mProgressDialog = new MaterialDialog.Builder(getActivity()) .cancelable(false) .customView(R.layout.dialog_progress, false) .build(); TagsRequest request = new TagsRequest(PointConnectionManager.getInstance().loginResult.login); getSpiceManager() .getFromCacheAndLoadFromNetworkIfExpired( request, request.getCacheName(), DurationInMillis.ONE_DAY, mTagsRequestListener); UserSubscriptionsRequest request2 = new UserSubscriptionsRequest(PointConnectionManager.getInstance().loginResult.login); getSpiceManager() .getFromCacheAndLoadFromNetworkIfExpired( request2, request2.getCacheName(), DurationInMillis.ONE_DAY, mUsersRequestListener); return rootView; }
@Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.send) { if (!mImagesPanel.isUploadFinished()) { Toast.makeText(getActivity(), "Wait or check for errors!", Toast.LENGTH_SHORT).show(); return true; } final String text = mPostText.getText().toString(); final String[] tags = mPostTags.getText().toString().split("\\s*,\\s*"); StringBuilder sb = new StringBuilder(text); for (String l : mImagesPanel.getLinks()) { sb.append("\n").append(l); } mProgressDialog.show(); if (TextUtils.isEmpty(mPostId)) { if (mIsPrivate.isChecked()) PointConnectionManager.getInstance() .pointIm .createPrivatePost( sb.toString().trim(), tags, mIsPrivate.isChecked(), mNewPostCallback); else PointConnectionManager.getInstance() .pointIm .createPost(sb.toString().trim(), tags, mNewPostCallback); } else { PointConnectionManager.getInstance() .pointIm .editPost(mPostId, sb.toString().trim(), tags, mNewPostCallback); } return true; } else if (id == R.id.attach) { Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(i, RESULT_LOAD_IMAGE); } return super.onOptionsItemSelected(item); }