直播举报--消息中心点击后再次提供证据界面开发

This commit is contained in:
老皮
2024-09-27 16:14:10 +08:00
parent ee8f744ed2
commit 69b868f535
12 changed files with 529 additions and 10 deletions

View File

@@ -0,0 +1,248 @@
package com.yunbao.live.activity;
import android.graphics.Color;
import android.text.Editable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.style.ForegroundColorSpan;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.ImageResultCallback;
import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
import java.io.File;
import java.util.Locale;
public class ReportSecondActivity extends AbsActivity implements View.OnClickListener {
private TextView info_textView;
private EditText edit;
private TextView btn_report;
private ImageView image_1,image_2,image_3,cancel_1,cancel_2,cancel_3;
private ProcessImageUtil mImageUtil;
private int photoIndex;
private File mFile1, mFile2, mFile3;
private int uploadImageCount;
private String inputText;
@Override
protected int getLayoutId() {
return R.layout.activity_report_second;
}
@Override
protected void main() {
super.main();
info_textView = findViewById(R.id.info_textView);
edit = findViewById(R.id.edit);
btn_report = findViewById(R.id.btn_report);
image_1 = findViewById(R.id.image_1);
image_2 = findViewById(R.id.image_2);
image_3 = findViewById(R.id.image_3);
cancel_1 = findViewById(R.id.cancel_1);
cancel_2 = findViewById(R.id.cancel_2);
cancel_3 = findViewById(R.id.cancel_3);
imageUtilInit();
btn_report.setOnClickListener(this);
image_1.setOnClickListener(this);
image_1 .setOnClickListener(this);
image_2 .setOnClickListener(this);
image_3 .setOnClickListener(this);
cancel_1.setOnClickListener(this);
cancel_2.setOnClickListener(this);
edit.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) {
}
@Override
public void afterTextChanged(Editable s) {
inputText = s.toString();
setButtonStatus();
}
});
}
private void setButtonStatus(){
if ((inputText != null && !inputText.isEmpty()) || uploadImageCount > 0) {
btn_report.setEnabled(true);
btn_report.setBackground(getResources().getDrawable(R.drawable.border_yellow));
} else {
btn_report.setEnabled(false);
btn_report.setBackgroundResource(R.drawable.border_hui);
}
}
private void setInfoText(String userName) {
/*
* ○ CH您舉報的用戶【用戶暱稱】我們已對其進行重點觀察並進一步判定若發現違規將立刻處理感謝您的監督~
如您有任何信息證明補充,可點擊進入詳情,再次進行提交,感謝您對淨化平台環境做出的貢獻!
○ ENThe user 【用戶暱稱】 you reported has been under our close observation and further judgment. If any violation is found, it will be dealt with immediately. Thank you for your supervision.
If you have any supplementary information or proof, you can click to enter the details and submit again. Thank you for your contribution to purifying the platform environment.
* */
StringBuilder stringBuilder = new StringBuilder();
Locale locale = getResources().getConfiguration().locale;
String language = locale.getLanguage();
int startIndex = 0;
int endIndex = 0;
if (TextUtils.equals(language, "zh")) {
stringBuilder.append("您舉報的用戶【");
startIndex = stringBuilder.toString().length();
stringBuilder.append(userName);
endIndex = stringBuilder.toString().length();
stringBuilder .append("】,我們已對其進行重點觀察,並進一步判定,若發現違規將立刻處理,感謝您的監督~\n如您有任何信息證明補充可點擊進入詳情再次進行提交感謝您對淨化平台環境做出的貢獻");
} else {
stringBuilder.append("The user 【");
startIndex = stringBuilder.toString().length();
stringBuilder .append(userName);
endIndex = stringBuilder.toString().length();
stringBuilder.append("】 you reported has been under our close observation and further judgment. If any violation is found, it will be dealt with immediately. Thank you for your supervision.\nIf you have any supplementary information or proof, you can click to enter the details and submit again. Thank you for your contribution to purifying the platform environment.");
}
SpannableString spannableString = new SpannableString(stringBuilder.toString());
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF870F")), startIndex, endIndex, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
info_textView.setText(spannableString);
}
@Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.btn_report) {
reportSecond();
} else if (id == R.id.image_1) {
photoIndex = 0;
mImageUtil.getImageByAlbum();
} else if (id == R.id.image_2) {
photoIndex = 1;
mImageUtil.getImageByAlbum();
} else if (id == R.id.image_3) {
photoIndex = 2;
mImageUtil.getImageByAlbum();
} else if (id == R.id.cancel_1) {
uploadImageCount--;
mFile1 = null;
cancel_1.setVisibility(View.GONE);
ImgLoader.display(mContext, R.mipmap.upload_image, image_1);
setButtonStatus();
} else if (id == R.id.cancel_2) {
uploadImageCount--;
mFile2 = null;
cancel_2.setVisibility(View.GONE);
ImgLoader.display(mContext, R.mipmap.upload_image, image_2);
setButtonStatus();
} else if (id == R.id.cancel_3) {
uploadImageCount--;
mFile3 = null;
cancel_3.setVisibility(View.GONE);
ImgLoader.display(mContext, R.mipmap.upload_image, image_3);
setButtonStatus();
}
}
private void reportSecond() {
/*
*
* if (mIntoIndex == 0) {
LiveHttpUtil.setReport(mToUid, bean.getName(),text, file1, file2, file3, mVideoId, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
ToastUtil.show(mContext.getString(R.string.video_report_tip_4));
onBackPressed();
} else {
ToastUtil.show(msg);
}
}
});
} else {
CommonHttpUtil.setCommunityReport(community_type, comment_id, mToUid, text, file1, file2, file3, bean.getId(), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
ToastUtil.show(mContext.getString(R.string.video_report_tip_4));
onBackPressed();
} else {
ToastUtil.show(msg);
}
}
});
}
* */
finish();
}
private void imageUtilInit() {
mImageUtil = new ProcessImageUtil((LiveReportActivity)mContext);
mImageUtil.setImageResultCallback(new ImageResultCallback() {
@Override
public void beforeCamera() {
}
@Override
public void onSuccess(File file) {
if (file != null) {
if (photoIndex == 0) {
mFile1 = file;
ImgLoader.display(mContext, file, image_1);
cancel_1.setVisibility(View.VISIBLE);
uploadImageCount++;
}
else if (photoIndex == 1){
mFile2 = file;
ImgLoader.display(mContext, file, image_2);
cancel_2.setVisibility(View.VISIBLE);
uploadImageCount++;
}
else if (photoIndex == 2){
mFile3 = file;
ImgLoader.display(mContext, file, image_3);
cancel_3.setVisibility(View.VISIBLE);
uploadImageCount++;
}
setButtonStatus();
}
}
@Override
public void onFailure() {
}
});
}
}

View File

@@ -7,6 +7,8 @@ import android.graphics.drawable.Drawable;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -19,6 +21,7 @@ import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.ImageResultCallback;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveReportActivity;
import com.yunbao.live.bean.LiveReportBean;
@@ -304,6 +307,12 @@ public class LiveReportAdapter extends RecyclerView.Adapter {
void submit() {
String text = mEditText.getText().toString().trim();
if (TextUtils.isEmpty(text)) {
ToastUtil.show(R.string.video_report_tip_5);
return;
}
if (mActionListener != null) {
// mActionListener.onReportClick(mCurVideoReportBean, text);
mActionListener.onReportClick(mCurVideoReportBean, text,mFile1,mFile2,mFile3);

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<corners android:radius="60dp" />
<solid android:color="#716A6A" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#f7f7f7" />
<corners android:radius="10dp" />
</shape>

View File

@@ -0,0 +1,209 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@color/white"
android:layout_height="match_parent">
<TextView
android:id="@+id/titleView"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:gravity="center"
android:text="@string/report_second_1"
android:textColor="@color/textColor"
android:textSize="18sp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:textStyle="bold" />
<ImageView
android:id="@+id/btn_back"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="9dp"
android:src="@mipmap/icon_back"
app:layout_constraintTop_toTopOf="@id/titleView"
app:layout_constraintBottom_toBottomOf="@id/titleView"
app:layout_constraintStart_toStartOf="parent"
/>
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:text="@string/report_second_2"
android:textColor="#ff333333"
android:layout_marginTop="30dp"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/titleView" />
<TextView
android:id="@+id/textView8"
android:layout_width="8dp"
android:layout_height="15dp"
android:text="*"
android:textColor="#ffff870f"
android:textSize="15sp"
app:layout_constraintBottom_toBottomOf="@+id/textView5"
app:layout_constraintStart_toEndOf="@+id/textView5"
app:layout_constraintTop_toTopOf="@+id/textView5" />
<androidx.cardview.widget.CardView
android:id="@+id/cardView"
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_marginTop="11dp"
android:layout_marginEnd="15dp"
app:cardBackgroundColor="#F7F7F7"
app:cardCornerRadius="10dp"
app:cardElevation="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/textView5"
app:layout_constraintTop_toBottomOf="@+id/textView5">
<TextView
android:id="@+id/info_textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="您舉報的用戶【用戶暱稱】,我們已對其進行重點觀察,並進一步判定,若發現違規將立刻處理,感謝您的監督~"
android:textColor="#ff777777"
android:textSize="11sp" />
</androidx.cardview.widget.CardView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/report_second_3"
android:textColor="#ff333333"
android:textSize="15sp"
android:id="@+id/textView10"
android:layout_marginTop="19dp"
app:layout_constraintStart_toStartOf="@+id/textView5"
app:layout_constraintTop_toBottomOf="@+id/cardView" />
<ImageView
android:layout_width="98dp"
android:layout_height="98dp"
android:id="@+id/image_1"
app:layout_constraintStart_toStartOf="@id/textView5"
app:layout_constraintEnd_toStartOf="@id/image_2"
app:layout_constraintTop_toBottomOf="@id/textView10"
android:src="@mipmap/upload_image"
android:layout_marginTop="15dp"
/>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/cancel_upload"
app:layout_constraintCircle="@+id/image_1"
app:layout_constraintCircleAngle="45"
app:layout_constraintCircleRadius="60dp"
android:id="@+id/cancel_1"
android:visibility="gone"
tools:ignore="MissingConstraints" />
<ImageView
android:layout_width="98dp"
android:layout_height="98dp"
android:id="@+id/image_2"
app:layout_constraintStart_toEndOf="@id/image_1"
app:layout_constraintEnd_toStartOf="@id/image_3"
app:layout_constraintTop_toTopOf="@id/image_1"
android:src="@mipmap/upload_image"
/>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/cancel_upload"
app:layout_constraintCircle="@+id/image_2"
app:layout_constraintCircleAngle="45"
app:layout_constraintCircleRadius="60dp"
android:id="@+id/cancel_2"
android:visibility="gone"
tools:ignore="MissingConstraints" />
<ImageView
android:layout_width="98dp"
android:layout_height="98dp"
android:id="@+id/image_3"
app:layout_constraintStart_toEndOf="@id/image_2"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="15dp"
app:layout_constraintTop_toTopOf="@id/image_1"
android:src="@mipmap/upload_image"
/>
<ImageView
android:layout_width="20dp"
android:layout_height="20dp"
android:src="@mipmap/cancel_upload"
app:layout_constraintCircle="@+id/image_3"
app:layout_constraintCircleAngle="45"
app:layout_constraintCircleRadius="60dp"
android:id="@+id/cancel_3"
android:visibility="gone"
tools:ignore="MissingConstraints" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/report_second_4"
android:textColor="#333333"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="@id/textView5"
app:layout_constraintTop_toBottomOf="@id/image_1"
android:layout_marginTop="20dp"
android:id="@+id/textView6"
/>
<EditText
android:id="@+id/edit"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:background="@drawable/edit_background_f7"
android:gravity="top"
android:hint="@string/report_second_5"
android:maxLength="200"
android:minHeight="60dp"
android:padding="10dp"
android:textColor="@color/textColor"
android:textSize="11sp"
app:layout_constraintEnd_toEndOf="@+id/cardView"
app:layout_constraintStart_toStartOf="@+id/textView6"
app:layout_constraintTop_toBottomOf="@id/textView6" />
<TextView
android:id="@+id/btn_report"
android:layout_width="150dp"
android:layout_height="48dp"
android:background="@drawable/border_hui"
android:gravity="center"
android:text="@string/video_report_submit"
android:textColor="@color/white"
android:textSize="16sp"
android:clickable="false"
android:layout_marginTop="50dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/edit"
app:layout_constraintTop_toBottomOf="@+id/edit" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,11 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="46dp"
android:gravity="center_vertical"
android:paddingLeft="15dp"
android:text="@string/video_report_tip_1"
android:textColor="@color/gray1"
android:textSize="13sp"
/>
xmlns:app="http://schemas.android.com/apk/res-auto">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="*"
android:textColor="@color/red"
android:textSize="20sp"
android:gravity="center"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="10dp"
android:id="@+id/tmp_view"
app:layout_constraintBaseline_toBaselineOf="@id/tv_report_tip"
/>
<TextView
app:layout_constraintStart_toEndOf="@id/tmp_view"
app:layout_constraintEnd_toEndOf="parent"
android:layout_width="0dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:paddingLeft="2dp"
android:text="@string/video_report_tip_1"
android:textColor="@color/gray1"
android:textSize="13sp"
android:id="@+id/tv_report_tip"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -145,4 +145,10 @@
<string name="prank_im_immediately_go">立即前往</string>
<string name="live_room_sud_hint_join">加入</string>
<string name="live_dialog_top_guardian_tasks">守護任務</string>
<string name="report_second_1">舉報結果通知</string>
<string name="report_second_2">通知</string>
<string name="report_second_3">上傳圖片</string>
<string name="report_second_4">舉報內容補充</string>
<string name="report_second_5">若您有其它補充信息,請在說明框中描述~</string>
</resources>

View File

@@ -148,4 +148,10 @@
<string name="prank_im_immediately_go">Go now</string>
<string name="live_room_sud_hint_join">Join</string>
<string name="live_dialog_top_guardian_tasks">Guard tasks</string>
<string name="report_second_1">Notification of report result</string>
<string name="report_second_2">Notification</string>
<string name="report_second_3">Upload pictures</string>
<string name="report_second_4">Report content supplement</string>
<string name="report_second_5">If you have additional information, please describe it in the description box</string>
</resources>