Initial commit

This commit is contained in:
2025-05-13 19:24:51 +02:00
commit a950f49678
10604 changed files with 932663 additions and 0 deletions

View File

@@ -0,0 +1,471 @@
package com.ubt.jimu.course.view.fragment;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.UnderlineSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import com.ubt.jimu.JimuApplication;
import com.ubt.jimu.R;
import com.ubt.jimu.base.HelpActivity;
import com.ubt.jimu.base.cache.Cache;
import com.ubt.jimu.base.entities.Robot;
import com.ubt.jimu.base.http.ApiObserver;
import com.ubt.jimu.base.http.ApiResponse;
import com.ubt.jimu.blockly.command.JimuCourseCommand;
import com.ubt.jimu.course.repository.JimuCourseMission;
import com.ubt.jimu.course.repository.JimuCourseMissionRepository;
import com.ubt.jimu.course.repository.JimuCourseTask;
import com.ubt.jimu.course.repository.JimuModule;
import com.ubt.jimu.course.view.adapter.CourseMissionAdapter;
import com.ubt.jimu.pack.view.RobotSelectActivity;
import com.ubt.jimu.unity.bluetooth.ConnectionStatus;
import com.ubt.jimu.unity.bluetooth.UnityActivity;
import com.ubt.jimu.utils.DeviceUtils;
import com.ubt.jimu.widgets.JAlertDialog;
import com.ubtech.view.dialog.BigDialog$Builder;
import com.ubtech.view.dialog.SimpleDialog;
import com.ubtech.view.fragment.BaseFragment;
import com.ubtech.view.widget.ToastView;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
import java.util.Iterator;
import java.util.List;
/* loaded from: classes.dex */
public class JimuMissionListFragment extends BaseFragment implements CourseMissionAdapter.OnCourseMissionClickListener {
public static final String KEY_COURSE_TASK = "courseTask";
public static final String POSITION = "position";
public static int itemHeight;
public static int itemWidth;
protected ImageView imgMissingParts;
protected ImageView imgMissionDesc;
protected ImageView imgTaskLeftDesc;
private JimuCourseTask jimuCourseTask;
private JimuMissionInteractionListener listener;
protected LinearLayout llTaskLeft;
private Unbinder mBind;
private GridLayoutManager mGridLayoutManager;
protected JAlertDialog mJAlertDialog;
private SimpleDialog missingPartsDialog;
private CourseMissionAdapter missionAdapterAdapter;
private int position;
protected RecyclerView recyclerView;
protected TextView tvStars;
private CompositeDisposable disposables = new CompositeDisposable();
private boolean skiping = false;
public class GridItemDecoration extends RecyclerView.ItemDecoration {
private int leftRight;
protected Drawable mDivider = new ColorDrawable();
private int topBottom;
public GridItemDecoration(int i, int i2) {
this.topBottom = i;
this.leftRight = i2;
}
@Override // androidx.recyclerview.widget.RecyclerView.ItemDecoration
public void getItemOffsets(Rect rect, View view, RecyclerView recyclerView, RecyclerView.State state) {
GridLayoutManager gridLayoutManager = (GridLayoutManager) recyclerView.getLayoutManager();
GridLayoutManager.LayoutParams layoutParams = (GridLayoutManager.LayoutParams) view.getLayoutParams();
int e = recyclerView.e(view);
int f = layoutParams.f();
recyclerView.getChildCount();
int N = gridLayoutManager.N();
layoutParams.e();
if (gridLayoutManager.K() == 1) {
if (e + f <= N) {
rect.top = 0;
} else {
rect.top = this.topBottom;
}
}
}
}
public interface JimuMissionInteractionListener {
void shipJimuCourseTask(JimuCourseTask jimuCourseTask);
}
public interface MissionListCallback {
void connectRobot();
View getBlurView();
int getConnectState();
void onRobotChanged(Robot robot);
}
private void diffDevice() {
if (JimuApplication.l().i()) {
this.tvStars.setBackgroundResource(R.mipmap.task_star_count_pad);
this.imgMissionDesc.setImageResource(R.mipmap.course_task_logo_pad);
} else {
this.tvStars.setBackgroundResource(R.drawable.task_star_count);
this.imgMissionDesc.setImageResource(R.mipmap.course_task_logo);
}
}
private int getMaxStar() {
JimuCourseTask jimuCourseTask = this.jimuCourseTask;
if (jimuCourseTask == null || jimuCourseTask.getMissions() == null) {
return 0;
}
return this.jimuCourseTask.getMissions().size() * 3;
}
private String getSkipDescription(List<JimuModule> list) {
if (list == null || list.size() <= 0) {
return null;
}
StringBuilder sb = new StringBuilder();
String[] stringArray = getResources().getStringArray(R.array.module_list);
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getType() <= stringArray.length) {
sb.append(stringArray[r3.getType() - 1]);
if (i < list.size() - 1) {
sb.append(" & ");
}
}
}
return sb.toString();
}
private int getUserStar() {
JimuCourseTask jimuCourseTask = this.jimuCourseTask;
int i = 0;
if (jimuCourseTask != null && jimuCourseTask.getMissions() != null) {
Iterator<JimuCourseMission> it = this.jimuCourseTask.getMissions().iterator();
while (it.hasNext()) {
i += it.next().getStar();
}
}
return i;
}
private boolean isMissionInValid() {
JimuCourseTask jimuCourseTask = this.jimuCourseTask;
return jimuCourseTask == null || jimuCourseTask.getMissions() == null || this.jimuCourseTask.getMissions().size() == 0;
}
public static JimuMissionListFragment newInstance(int i) {
JimuMissionListFragment jimuMissionListFragment = new JimuMissionListFragment();
Bundle bundle = new Bundle();
bundle.putInt(POSITION, i);
jimuMissionListFragment.setArguments(bundle);
return jimuMissionListFragment;
}
/* JADX INFO: Access modifiers changed from: private */
public void resizeLeft() {
int height = this.llTaskLeft.getHeight();
ViewGroup.LayoutParams layoutParams = this.llTaskLeft.getLayoutParams();
layoutParams.height = height;
layoutParams.width = (height * 160) / 270;
this.llTaskLeft.setLayoutParams(layoutParams);
this.llTaskLeft.requestLayout();
}
/* JADX INFO: Access modifiers changed from: private */
public void selectRobot() {
if (getActivity() == null) {
return;
}
RobotSelectActivity.a(getActivity(), "", 0L, null, 7, 0);
}
private void showMissComponents(JimuCourseMission jimuCourseMission, List<JimuModule> list) {
if (isMissionInValid() || this.jimuCourseTask.getMissions().get(0).isLock()) {
return;
}
showSkipDialog(jimuCourseMission, getSkipDescription(list), false, R.string.btn_skip_mission);
}
private void showSkipDialog(final JimuCourseMission jimuCourseMission, String str, boolean z, int i) {
SpannableString spannableString = new SpannableString(str);
spannableString.setSpan(new UnderlineSpan(), 0, str.length(), 0);
BigDialog$Builder bigDialog$Builder = new BigDialog$Builder(getActivity());
bigDialog$Builder.a(true);
bigDialog$Builder.c(getString(R.string.missing_module_title));
bigDialog$Builder.a(getString(i));
bigDialog$Builder.b(getString(R.string.switch_robot));
bigDialog$Builder.a(spannableString, getResources().getColor(R.color.link_color));
bigDialog$Builder.c(R.mipmap.course_miss_parts_dialog_img);
bigDialog$Builder.a(new View.OnClickListener() { // from class: com.ubt.jimu.course.view.fragment.JimuMissionListFragment.4
@Override // android.view.View.OnClickListener
public void onClick(View view) {
HelpActivity.start(JimuMissionListFragment.this.getActivity(), "https://video.ubtrobot.com/jimu/product/h5/JimuTips/index.html?language=" + JimuApplication.l().g(), null, R.color.theme_background);
}
});
bigDialog$Builder.a(new DialogInterface.OnClickListener() { // from class: com.ubt.jimu.course.view.fragment.JimuMissionListFragment.3
@Override // android.content.DialogInterface.OnClickListener
public void onClick(DialogInterface dialogInterface, int i2) {
JimuCourseMission jimuCourseMission2 = jimuCourseMission;
JimuMissionListFragment.this.skipMission(Cache.getInstance().getUserId(), jimuCourseMission2 == null ? JimuMissionListFragment.this.jimuCourseTask.getId() : jimuCourseMission2.getId(), DeviceUtils.a(JimuApplication.l()), Cache.getInstance().getPackageId(), Cache.getInstance().getRobot().getModelId(), jimuCourseMission == null);
dialogInterface.dismiss();
}
});
bigDialog$Builder.b(new DialogInterface.OnClickListener() { // from class: com.ubt.jimu.course.view.fragment.JimuMissionListFragment.2
@Override // android.content.DialogInterface.OnClickListener
public void onClick(DialogInterface dialogInterface, int i2) {
dialogInterface.dismiss();
JimuMissionListFragment.this.selectRobot();
}
});
this.missingPartsDialog = bigDialog$Builder.a();
this.missingPartsDialog.show();
}
/* JADX INFO: Access modifiers changed from: private */
public void skipTask(JimuCourseTask jimuCourseTask) {
if (jimuCourseTask == null) {
return;
}
if (1 == jimuCourseTask.getIsSkip()) {
this.imgMissingParts.setVisibility(0);
} else {
this.imgMissingParts.setVisibility(8);
}
}
protected void hideLoading() {
JAlertDialog jAlertDialog = this.mJAlertDialog;
if (jAlertDialog != null) {
jAlertDialog.dismiss();
this.mJAlertDialog = null;
}
}
public void notifyDataChanged() {
CourseMissionAdapter courseMissionAdapter = this.missionAdapterAdapter;
if (courseMissionAdapter != null) {
courseMissionAdapter.notifyDataSetChanged();
}
TextView textView = this.tvStars;
if (textView != null) {
textView.setText(getUserStar() + "/" + getMaxStar());
}
}
@Override // com.ubtech.view.fragment.BaseFragment, androidx.fragment.app.Fragment
public void onAttach(Context context) {
super.onAttach(context);
}
@Override // com.ubtech.view.fragment.BaseFragment
public boolean onBackPressed() {
return super.onBackPressed();
}
@Override // com.ubt.jimu.course.view.adapter.CourseMissionAdapter.OnCourseMissionClickListener
public void onCourseMissionClick(JimuCourseMission jimuCourseMission) {
if (jimuCourseMission == null) {
return;
}
MissionListCallback missionListCallback = (MissionListCallback) getActivity();
if (missionListCallback.getConnectState() == ConnectionStatus.DIS_CONNECT.getStatus()) {
missionListCallback.connectRobot();
} else {
if ("1".equals(jimuCourseMission.getIsLock()) || showMissionComponents(jimuCourseMission)) {
return;
}
Cache.getInstance().setCourseMission(jimuCourseMission);
UnityActivity.startUnityActivity(getActivity(), Cache.getInstance().getRobot(), 1001, 1, UnityActivity.BLOCKLY_TYPE_COURSE);
}
}
@Override // com.ubtech.view.fragment.BaseFragment, androidx.fragment.app.Fragment
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
if (getArguments() != null) {
this.position = getArguments().getInt(POSITION);
}
}
@Override // com.ubtech.view.fragment.BaseFragment, androidx.fragment.app.Fragment
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(R.layout.fragment_mission_list_phone, viewGroup, false);
this.mBind = ButterKnife.a(this, inflate);
diffDevice();
this.tvStars.setText(getUserStar() + "/" + getMaxStar());
JimuCourseTask jimuCourseTask = this.jimuCourseTask;
if (jimuCourseTask == null) {
return inflate;
}
if (1 == jimuCourseTask.getIsSkip()) {
this.imgMissingParts.setVisibility(0);
} else {
this.imgMissingParts.setVisibility(8);
}
this.recyclerView.post(new Runnable() { // from class: com.ubt.jimu.course.view.fragment.JimuMissionListFragment.1
@Override // java.lang.Runnable
public void run() {
FragmentActivity activity = JimuMissionListFragment.this.getActivity();
if (activity == null) {
return;
}
JimuMissionListFragment.this.resizeLeft();
int dimensionPixelOffset = JimuMissionListFragment.this.getResources().getDimensionPixelOffset(R.dimen.course_task_mission_decoration);
JimuMissionListFragment.this.mGridLayoutManager = new GridLayoutManager(activity, 3);
JimuMissionListFragment jimuMissionListFragment = JimuMissionListFragment.this;
jimuMissionListFragment.recyclerView.setLayoutManager(jimuMissionListFragment.mGridLayoutManager);
JimuMissionListFragment jimuMissionListFragment2 = JimuMissionListFragment.this;
jimuMissionListFragment2.recyclerView.a(jimuMissionListFragment2.new GridItemDecoration(dimensionPixelOffset, dimensionPixelOffset));
int height = JimuMissionListFragment.this.recyclerView.getHeight();
int width = JimuMissionListFragment.this.recyclerView.getWidth();
if (JimuMissionListFragment.itemHeight < 50 || JimuMissionListFragment.itemWidth < 50) {
int i = dimensionPixelOffset * 2;
JimuMissionListFragment.itemHeight = (height - i) / 3;
JimuMissionListFragment.itemWidth = (width - i) / 3;
}
if (JimuMissionListFragment.itemHeight < JimuMissionListFragment.itemWidth) {
JimuMissionListFragment.itemWidth = JimuMissionListFragment.itemHeight;
}
int dimensionPixelSize = JimuMissionListFragment.this.getResources().getDimensionPixelSize(R.dimen.course_mission_star_right);
if ((JimuMissionListFragment.itemWidth + dimensionPixelSize) * 3 > width) {
JimuMissionListFragment.itemWidth = (width / 3) - dimensionPixelSize;
}
JimuMissionListFragment jimuMissionListFragment3 = JimuMissionListFragment.this;
jimuMissionListFragment3.missionAdapterAdapter = new CourseMissionAdapter(activity, jimuMissionListFragment3.jimuCourseTask.getMissions(), JimuMissionListFragment.itemWidth, JimuMissionListFragment.itemHeight);
JimuMissionListFragment.this.missionAdapterAdapter.setOnCourseMissionClickListener(JimuMissionListFragment.this);
JimuMissionListFragment jimuMissionListFragment4 = JimuMissionListFragment.this;
jimuMissionListFragment4.recyclerView.setAdapter(jimuMissionListFragment4.missionAdapterAdapter);
}
});
return inflate;
}
@Override // androidx.fragment.app.Fragment
public void onDestroy() {
this.disposables.dispose();
this.disposables.a();
super.onDestroy();
}
@Override // androidx.fragment.app.Fragment
public void onDestroyView() {
this.mBind.unbind();
super.onDestroyView();
}
@Override // androidx.fragment.app.Fragment
public void onDetach() {
super.onDetach();
}
public void onMissingPartsClick(View view) {
if (isMissionInValid() || this.jimuCourseTask.getMissions().get(0).isLock()) {
return;
}
showSkipDialog(null, getSkipDescription((JimuCourseMission) null), true, R.string.btn_skip_task);
}
public void setJimuCourseTask(JimuCourseTask jimuCourseTask) {
this.jimuCourseTask = jimuCourseTask;
}
public void setListener(JimuMissionInteractionListener jimuMissionInteractionListener) {
this.listener = jimuMissionInteractionListener;
}
protected void showLoading(String str) {
Activity activity = this.mActivity;
if (activity == null || activity.isFinishing() || this.mActivity.isDestroyed()) {
return;
}
if (this.mJAlertDialog == null) {
JAlertDialog.Builder builder = new JAlertDialog.Builder(this.mActivity);
builder.a(R.drawable.ic_loading);
builder.a(str);
builder.a(true);
this.mJAlertDialog = builder.a();
}
this.mJAlertDialog.show();
}
public boolean showMissionComponents(JimuCourseMission jimuCourseMission) {
List<JimuModule> missingComponents = jimuCourseMission.getMissingComponents(Cache.getInstance().getBoardInfo());
if (missingComponents == null || missingComponents.size() <= 0) {
return false;
}
showMissComponents(jimuCourseMission, missingComponents);
return true;
}
public void skipMission(String str, long j, String str2, long j2, long j3, final boolean z) {
if (this.skiping) {
return;
}
synchronized (this) {
if (this.skiping) {
return;
}
this.skiping = true;
JimuCourseMissionRepository.getInstance().skipMission(str, j, str2, j2, j3, new ApiObserver<ApiResponse<List<JimuCourseMission>>>(null) { // from class: com.ubt.jimu.course.view.fragment.JimuMissionListFragment.5
@Override // com.ubt.jimu.base.http.ApiObserver, io.reactivex.Observer
public void onComplete() {
JimuMissionListFragment.this.skiping = false;
JimuMissionListFragment.this.hideLoading();
}
@Override // com.ubt.jimu.base.http.ApiObserver, io.reactivex.Observer
public void onError(Throwable th) {
JimuMissionListFragment.this.skiping = false;
JimuMissionListFragment.this.hideLoading();
}
@Override // com.ubt.jimu.base.http.ApiObserver, io.reactivex.Observer
public void onSubscribe(Disposable disposable) {
JimuMissionListFragment.this.disposables.b(disposable);
JimuMissionListFragment.this.showLoading("");
}
@Override // com.ubt.jimu.base.http.ApiObserver, io.reactivex.Observer
public void onNext(ApiResponse<List<JimuCourseMission>> apiResponse) {
JimuMissionListFragment.this.skiping = false;
JimuCourseCommand.unLockMission(apiResponse.getModels());
JimuMissionListFragment.this.missionAdapterAdapter.notifyDataSetChanged();
if (z) {
if (JimuMissionListFragment.this.jimuCourseTask != null) {
JimuMissionListFragment.this.jimuCourseTask.setIsSkip(0);
}
JimuMissionListFragment jimuMissionListFragment = JimuMissionListFragment.this;
jimuMissionListFragment.skipTask(jimuMissionListFragment.jimuCourseTask);
}
if (JimuMissionListFragment.this.isAdded()) {
ToastView.a(JimuMissionListFragment.this.getContext(), JimuMissionListFragment.this.getString(R.string.skip_success), ToastView.Type.SUCCESS).a();
}
}
});
}
}
private String getSkipDescription(JimuCourseMission jimuCourseMission) {
String skipDescription = this.jimuCourseTask.getSkipDescription();
if (!TextUtils.isEmpty(skipDescription)) {
return skipDescription;
}
if (jimuCourseMission != null) {
return jimuCourseMission.getSkipDescription();
}
return null;
}
}

View File

@@ -0,0 +1,52 @@
package com.ubt.jimu.course.view.fragment;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.Unbinder;
import butterknife.internal.DebouncingOnClickListener;
import butterknife.internal.Utils;
import com.ubt.jimu.R;
/* loaded from: classes.dex */
public class JimuMissionListFragment_ViewBinding implements Unbinder {
private JimuMissionListFragment target;
private View view7f090255;
public JimuMissionListFragment_ViewBinding(final JimuMissionListFragment jimuMissionListFragment, View view) {
this.target = jimuMissionListFragment;
jimuMissionListFragment.llTaskLeft = (LinearLayout) Utils.b(view, R.id.llTaskLeft, "field 'llTaskLeft'", LinearLayout.class);
jimuMissionListFragment.imgTaskLeftDesc = (ImageView) Utils.b(view, R.id.imgTaskLeftDesc, "field 'imgTaskLeftDesc'", ImageView.class);
jimuMissionListFragment.recyclerView = (RecyclerView) Utils.b(view, R.id.recycleView, "field 'recyclerView'", RecyclerView.class);
jimuMissionListFragment.imgMissionDesc = (ImageView) Utils.b(view, R.id.imgMissionDesc, "field 'imgMissionDesc'", ImageView.class);
jimuMissionListFragment.tvStars = (TextView) Utils.b(view, R.id.tvStars, "field 'tvStars'", TextView.class);
View a = Utils.a(view, R.id.imgMissingParts, "field 'imgMissingParts' and method 'onMissingPartsClick'");
jimuMissionListFragment.imgMissingParts = (ImageView) Utils.a(a, R.id.imgMissingParts, "field 'imgMissingParts'", ImageView.class);
this.view7f090255 = a;
a.setOnClickListener(new DebouncingOnClickListener() { // from class: com.ubt.jimu.course.view.fragment.JimuMissionListFragment_ViewBinding.1
@Override // butterknife.internal.DebouncingOnClickListener
public void doClick(View view2) {
jimuMissionListFragment.onMissingPartsClick(view2);
}
});
}
@Override // butterknife.Unbinder
public void unbind() {
JimuMissionListFragment jimuMissionListFragment = this.target;
if (jimuMissionListFragment == null) {
throw new IllegalStateException("Bindings already cleared.");
}
this.target = null;
jimuMissionListFragment.llTaskLeft = null;
jimuMissionListFragment.imgTaskLeftDesc = null;
jimuMissionListFragment.recyclerView = null;
jimuMissionListFragment.imgMissionDesc = null;
jimuMissionListFragment.tvStars = null;
jimuMissionListFragment.imgMissingParts = null;
this.view7f090255.setOnClickListener(null);
this.view7f090255 = null;
}
}