/* * Copyright (c) 2020 WildFireChat. All rights reserved. */ package cn.wildfire.chat.kit.channel; import android.app.Activity; import android.content.Intent; import android.text.Editable; import android.text.TextUtils; import android.view.MenuItem; import android.widget.ImageView; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; import com.afollestad.materialdialogs.MaterialDialog; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.google.android.material.textfield.TextInputEditText; import com.lqr.imagepicker.ImagePicker; import com.lqr.imagepicker.bean.ImageItem; import java.util.ArrayList; import butterknife.BindView; import butterknife.OnClick; import butterknife.OnTextChanged; import cn.wildfire.chat.kit.WfcBaseActivity; import cn.wildfire.chat.kit.common.OperateResult; import cn.wildfire.chat.kit.conversation.ConversationActivity; import cn.wildfire.chat.kit.R; import cn.wildfire.chat.kit.R2; import cn.wildfirechat.model.Conversation; public class CreateChannelActivity extends WfcBaseActivity { @Nullable @BindView(R2.id.portraitImageView) ImageView portraitImageView; @BindView(R2.id.channelNameTextInputEditText) TextInputEditText nameInputEditText; @BindView(R2.id.channelDescTextInputEditText) TextInputEditText descInputEditText; private static final int REQUEST_CODE_PICK_IMAGE = 100; private String portraitPath; @Override protected int contentLayout() { return R.layout.channel_create_fragment; } @OnTextChanged(value = R2.id.channelNameTextInputEditText, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED) void inputChannelName(Editable editable) { // if (!TextUtils.isEmpty(editable)) { // confirmButton.setEnabled(true); // } else { // confirmButton.setEnabled(false); // } } @OnTextChanged(value = R2.id.channelDescTextInputEditText, callback = OnTextChanged.Callback.AFTER_TEXT_CHANGED) void inputChannelDesc(Editable editable) { } @Override protected int menu() { return R.menu.channel_create; } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.confirm) { createChannel(); return true; } else { return super.onOptionsItemSelected(item); } } @OnClick(R2.id.portraitImageView) void portraitClick() { ImagePicker.picker().pick(this, REQUEST_CODE_PICK_IMAGE); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_CODE_PICK_IMAGE && resultCode == Activity.RESULT_OK && data != null) { ArrayList images = (ArrayList) data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS); if (images != null && images.size() > 0) { portraitPath = images.get(0).path; Glide.with(this).load(portraitPath).apply(new RequestOptions().placeholder(R.mipmap.avatar_def).centerCrop()).into(portraitImageView); } } else { super.onActivityResult(requestCode, resultCode, data); } } void createChannel() { ChannelViewModel channelViewModel = ViewModelProviders.of(this).get(ChannelViewModel.class); String channelName = nameInputEditText.getEditableText().toString().trim(); String desc = descInputEditText.getEditableText().toString().trim(); if (TextUtils.isEmpty(portraitPath)) { Toast.makeText(this, "请设置头像", Toast.LENGTH_SHORT).show(); return; } MaterialDialog dialog = new MaterialDialog.Builder(this) .content("创建频道中...") .progress(true, 10) .cancelable(false) .show(); channelViewModel.createChannel(null, channelName, portraitPath, desc, null).observe(this, new Observer>() { @Override public void onChanged(@Nullable OperateResult result) { dialog.dismiss(); if (result.isSuccess()) { Intent intent = ConversationActivity.buildConversationIntent(CreateChannelActivity.this, Conversation.ConversationType.Channel, result.getResult(), 0); startActivity(intent); finish(); } else { Toast.makeText(CreateChannelActivity.this, "create channel failed", Toast.LENGTH_SHORT).show(); } } }); } }