|
|
package com.yinhebairong.clasmanage.ui.jxt.activity.HD;
|
|
|
|
|
|
import android.Manifest;
|
|
|
import android.content.Intent;
|
|
|
import android.content.pm.PackageManager;
|
|
|
import android.graphics.Color;
|
|
|
import android.os.Build;
|
|
|
import android.text.Editable;
|
|
|
import android.text.TextWatcher;
|
|
|
import android.util.Log;
|
|
|
import android.view.View;
|
|
|
import android.widget.Button;
|
|
|
import android.widget.EditText;
|
|
|
import android.widget.ImageView;
|
|
|
import android.widget.LinearLayout;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
import androidx.annotation.RequiresApi;
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
import androidx.core.content.ContextCompat;
|
|
|
|
|
|
import com.bumptech.glide.Glide;
|
|
|
import com.donkingliang.imageselector.utils.ImageSelector;
|
|
|
import com.donkingliang.imageselector.utils.StringUtils;
|
|
|
import com.yinhebairong.clasmanage.Config;
|
|
|
import com.yinhebairong.clasmanage.R;
|
|
|
import com.yinhebairong.clasmanage.base.BaseActivity;
|
|
|
import com.yinhebairong.clasmanage.base.instant.Layout;
|
|
|
import com.yinhebairong.clasmanage.base.instant.TopNavigationBar;
|
|
|
import com.yinhebairong.clasmanage.base.instant.slideslip.SlideLip;
|
|
|
import com.yinhebairong.clasmanage.bean.AddMbBean;
|
|
|
import com.yinhebairong.clasmanage.entity.JxtImageEntity;
|
|
|
import com.yinhebairong.clasmanage.entity.PostFiel;
|
|
|
import com.yinhebairong.clasmanage.m.M;
|
|
|
import com.yinhebairong.clasmanage.network.ApiService;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
import butterknife.BindView;
|
|
|
import butterknife.ButterKnife;
|
|
|
import io.reactivex.Observer;
|
|
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
|
|
import io.reactivex.disposables.Disposable;
|
|
|
import io.reactivex.schedulers.Schedulers;
|
|
|
import okhttp3.MediaType;
|
|
|
import okhttp3.MultipartBody;
|
|
|
import okhttp3.RequestBody;
|
|
|
import retrofit2.Call;
|
|
|
import retrofit2.Callback;
|
|
|
import retrofit2.Response;
|
|
|
import retrofit2.Retrofit;
|
|
|
import retrofit2.converter.gson.GsonConverterFactory;
|
|
|
|
|
|
@SlideLip(slidelip = false) // 侧滑返回上一页 , 默认不开启 \
|
|
|
@TopNavigationBar(color = Color.TRANSPARENT, setBarBiack = 2) // 状态栏颜色 , 状态栏样式
|
|
|
@Layout(R.layout.activity_tjmb)
|
|
|
public class TjmbActivity extends BaseActivity {
|
|
|
|
|
|
@BindView(R.id.include_back)
|
|
|
ImageView includeBack;
|
|
|
@BindView(R.id.include_name)
|
|
|
TextView includeName;
|
|
|
@BindView(R.id.work_title)
|
|
|
EditText workTitle;
|
|
|
@BindView(R.id.content_ed)
|
|
|
EditText contentEd;
|
|
|
@BindView(R.id.tp_img)
|
|
|
ImageView tpImg;
|
|
|
@BindView(R.id.text_num)
|
|
|
TextView textNum;
|
|
|
@BindView(R.id.button_tj)
|
|
|
Button buttonTj;
|
|
|
@BindView(R.id.add_zy_but)
|
|
|
LinearLayout addZyBut;
|
|
|
List<JxtImageEntity> picAndVideo = new ArrayList<>(); // 视频和图片
|
|
|
private static final int REQUEST_CODE = 0x00000011; // 图片
|
|
|
private static final int PERMISSION_WRITE_EXTERNAL_REQUEST_CODE = 0x000;
|
|
|
@BindView(R.id.select_img)
|
|
|
ImageView selectImg;
|
|
|
String imgPath = "";
|
|
|
@Override
|
|
|
protected void initData() {
|
|
|
ButterKnife.bind(this);
|
|
|
includeName.setText("添加模板");
|
|
|
tpImg.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
int permission = ContextCompat.checkSelfPermission(TjmbActivity.this,
|
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
|
|
if (permission == PackageManager.PERMISSION_GRANTED) {
|
|
|
//预加载手机图片。加载图片前,请确保app有读取储存卡权限
|
|
|
ImageSelector.preload(TjmbActivity.this);
|
|
|
ImageSelector.builder()
|
|
|
.useCamera(true)
|
|
|
.setSingle(false)
|
|
|
.canPreview(true)
|
|
|
.setMaxSelectCount(1)
|
|
|
.start(TjmbActivity.this, REQUEST_CODE); // 打开相册
|
|
|
} else {
|
|
|
//没有权限,申请权限。
|
|
|
ActivityCompat.requestPermissions(TjmbActivity.this,
|
|
|
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_WRITE_EXTERNAL_REQUEST_CODE);
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
protected void setEvent() {
|
|
|
includeBack.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
finish();
|
|
|
}
|
|
|
});
|
|
|
contentEd.addTextChangedListener(new TextWatcher() {
|
|
|
@Override
|
|
|
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
|
|
textNum.setText(s.length() + "/1000");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void afterTextChanged(Editable s) {
|
|
|
if (s.length() > 1000) contentEd.setError("输入超长");
|
|
|
}
|
|
|
});
|
|
|
buttonTj.setOnClickListener(new View.OnClickListener() {
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
if (!StringUtils.isEmptyString(workTitle.getText().toString())){
|
|
|
Api().setTemplate(Config.Token,workTitle.getText().toString(),contentEd.getText().toString(),imgPath)
|
|
|
.subscribeOn(Schedulers.io())
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
|
|
.subscribe(new Observer<AddMbBean>() {
|
|
|
@Override
|
|
|
public void onSubscribe(Disposable d) {
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onNext(AddMbBean addMbBean) {
|
|
|
if (addMbBean.getCode()== M.success){
|
|
|
Toast.makeText(ctx, ""+addMbBean.getMsg(), Toast.LENGTH_SHORT).show();
|
|
|
finish();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onError(Throwable e) {
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onComplete() {
|
|
|
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
|
|
@Override
|
|
|
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
|
|
|
ArrayList<String> Imags = data.getStringArrayListExtra(ImageSelector.SELECT_RESULT);
|
|
|
selectImg.setVisibility(View.VISIBLE);
|
|
|
postFile(Imags.get(0));
|
|
|
}
|
|
|
}
|
|
|
private void postFile(String fielpath) {
|
|
|
// 上传文件
|
|
|
Retrofit sRetrofit = new Retrofit.Builder()
|
|
|
.baseUrl(Config.BASE_IP)
|
|
|
.addConverterFactory(GsonConverterFactory.create())
|
|
|
.build();
|
|
|
File file = new File(fielpath);
|
|
|
final RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
|
|
|
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestBody);
|
|
|
sRetrofit.create(ApiService.class)
|
|
|
.post_file(Config.Token, body)
|
|
|
.enqueue(new Callback<PostFiel>() {
|
|
|
@Override
|
|
|
public void onResponse(Call<PostFiel> call, Response<PostFiel> response) {
|
|
|
Glide.with(TjmbActivity.this).load(response.body().getData().getUrl()).into(selectImg);
|
|
|
imgPath = response.body().getData().getUrl();
|
|
|
}
|
|
|
@Override
|
|
|
public void onFailure(Call<PostFiel> call, Throwable t) {
|
|
|
Log.e("onFailure", t.getMessage().toString());
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
} |
...
|
...
|
|