/** 清除状态</br> */ @Override public void clearState() { mEditText.setText(""); mEditText.mAtMap.clear(); mEditText.mTopicMap.clear(); mImageSelectedAdapter.getDataSource().clear(); mTopicButton.setChecked(false); // mPhotoButton.setChecked(false); }
/** * Add the picture to the photo gallery. Must be called on all camera images or they will * disappear once taken. */ protected void onTakedPhoto(int requestCode) { if (requestCode != TakePhotoPresenter.REQUEST_IMAGE_CAPTURE) { return; } String imgUri = mTakePhotoPresenter.updateImageToMediaLibrary(); List<String> selectedList = mImageSelectedAdapter.getDataSource(); // 更新媒体库 selectedList.remove(Constants.ADD_IMAGE_PATH_SAMPLE); if (selectedList.size() < 9) { selectedList.add(imgUri); appendAddImageIfLessThanNine(selectedList); } else { ToastMsg.showShortMsgByResName("umeng_comm_image_overflow"); } mImageSelectedAdapter.notifyDataSetChanged(); }
private void onPickedImages(int requestCode, Intent data) { if (requestCode == Constants.PICK_IMAGE_REQ_CODE) { // selected image if (data != null && data.getExtras() != null) { mImageSelectedAdapter.getDataSource().clear(); // 获取选中的图片 List<String> selectedList = ImagePickerManager.getInstance().getCurrentSDK().parsePickedImageList(data); updateImageList(selectedList); } } }
@Override public void restoreFeedItem(FeedItem feedItem) { mEditText.setText(feedItem.text); mLocationTv.setText(feedItem.locationAddr); mImageSelectedAdapter.getDataSource().clear(); int count = feedItem.imageUrls.size(); for (int i = 0; i < count; i++) { // 图片 mImageSelectedAdapter.getDataSource().add(feedItem.imageUrls.get(i).originImageUrl); } // 图片 if (mImageSelectedAdapter.getDataSource().size() < 9) { mImageSelectedAdapter.getDataSource().add(0, Constants.ADD_IMAGE_PATH_SAMPLE); } mImageSelectedAdapter.notifyDataSetChanged(); // 好友 mSelectFriends.addAll(feedItem.atFriends); // 话题 mSelecteTopics.addAll(feedItem.topics); FeedViewRender.parseTopicsAndFriends(mEditText, feedItem); // 设置光标位置 mEditText.setSelection(mEditText.getText().length()); }
/** 准备feed数据</br> */ protected FeedItem prepareFeed() { FeedItem mNewFeed = new FeedItem(); mNewFeed.text = mEditText.getText().toString().trim(); mNewFeed.locationAddr = getLocationAddr(); mNewFeed.location = mLocation; // 移除添加图标 mImageSelectedAdapter.getDataSource().remove(Constants.ADD_IMAGE_PATH_SAMPLE); for (String url : mImageSelectedAdapter.getDataSource()) { // 图片地址 mNewFeed.imageUrls.add(new ImageItem("", "", url)); } // 话题 mNewFeed.topics.addAll(mSelecteTopics); // @好友 mNewFeed.atFriends.addAll(mSelectFriends); // 发表的用户 mNewFeed.creator = CommConfig.getConfig().loginedUser; mNewFeed.type = mNewFeed.creator.permisson == Permisson.ADMIN ? 1 : 0; Log.d(TAG, " @@@ my new Feed = " + mNewFeed); return mNewFeed; }
/** * 已选择图片显示的Adapter * * @param listener 删除某张图片的回调 */ private void initSelectedImageAdapter() { mImageSelectedAdapter = new ImageSelectedAdapter(PostFeedActivity.this); mImageSelectedAdapter.getDataSource().add(0, Constants.ADD_IMAGE_PATH_SAMPLE); // 设置选择item时得背景为透明 mGridView.setSelector(new ColorDrawable(Color.TRANSPARENT)); mGridView.setAdapter(mImageSelectedAdapter); mGridView.setOnItemClickListener( new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String clickImageUrl = mImageSelectedAdapter.getItem(position); boolean isAddImage = Constants.ADD_IMAGE_PATH_SAMPLE.equals(clickImageUrl); if (isAddImage) { // 如果触发的是添加图片事件,则显示选择图片的Fragment pickImages(); } } }); }
@Override public void canNotPostFeed() { if (mImageSelectedAdapter.getCount() < 9) { mImageSelectedAdapter.addToFirst(Constants.ADD_IMAGE_PATH_SAMPLE); } }
private void updateImageList(List<String> selectedList) { appendAddImageIfLessThanNine(selectedList); mImageSelectedAdapter.updateListViewData(selectedList); }
private void pickImages() { ImagePickerManager.getInstance() .getCurrentSDK() .jumpToPickImagesPage(this, (ArrayList<String>) mImageSelectedAdapter.getDataSource()); }