version:1.0.1

fix:
update:基本跳转对接完成
This commit is contained in:
2025-12-02 10:44:51 +08:00
parent 3001c33bc6
commit a82d7a3744
32 changed files with 1619 additions and 196 deletions

View File

@@ -3,14 +3,31 @@ package com.xwad.os.fragment.read;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.viewpager.widget.ViewPager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.tencent.mmkv.MMKV;
import com.xwad.os.R;
import com.xwad.os.base.mvvm.fragment.BaseMvvmFragment;
import com.xwad.os.bean.jxw.YdbgBean;
import com.xwad.os.config.CommonConfig;
import com.xwad.os.databinding.FragmentReadBinding;
import com.tencent.mmkv.MMKV;
import com.xwad.os.jxw.fragment.BookFragment;
import com.xwad.os.jxw.fragment.BookListFragment;
import com.xwad.os.view.jxw.view.VerticalProgressBar;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
@@ -22,6 +39,12 @@ public class ReadFragment extends BaseMvvmFragment<ReadViewModel, FragmentReadBi
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private MyAdapter adapter;
private List<Fragment> mFragment = new ArrayList();
int progressBarMax = 0;
private List<YdbgBean> ydbgBeanLists;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
@@ -72,6 +95,37 @@ public class ReadFragment extends BaseMvvmFragment<ReadViewModel, FragmentReadBi
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
mViewDataBinding.subjectViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrollStateChanged(int i) {
}
@Override
public void onPageScrolled(int i, float f, int i2) {
}
@Override
public void onPageSelected(int i) {
if (i == 0) {
mViewDataBinding.tvTitle.setText("最近阅读");
} else {
mViewDataBinding.tvTitle.setText("我的书架");
}
mViewDataBinding.indicator.setCurrentPosition(i);
}
});
mFragment.add(new BookFragment());
mFragment.add(new BookListFragment());
adapter = new MyAdapter(getChildFragmentManager());
mViewDataBinding.subjectViewPager.setAdapter(adapter);
mViewDataBinding.indicator.setCellCount(2);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext());
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mViewDataBinding.rvChart.setLayoutManager(linearLayoutManager);
getydbg();
}
@@ -88,7 +142,7 @@ public class ReadFragment extends BaseMvvmFragment<ReadViewModel, FragmentReadBi
@Override
public void fetchData() {
getydbg();
}
@Override
@@ -103,10 +157,119 @@ public class ReadFragment extends BaseMvvmFragment<ReadViewModel, FragmentReadBi
}
private void getydbg() {
// try {
// JSONObject jSONObject = new JSONObject();
// jSONObject.put("oprateType", 1);
// OkhtttpUtils.getInstance().doPost(getActivity(), Constant.GW_URL + "/report/api/report/learn/libraryDetail", jSONObject, true, new OkhtttpUtils.OkCallback() {
// @Override
// public void onFailure(Exception exc) {
// }
//
// @Override
// public void onResponse(String str) {
// try {
// JSONObject jSONObject2 = new JSONObject(str);
// if ("0".equals(jSONObject2.getString("code"))) {
// JSONObject jSONObject3 = new JSONObject(jSONObject2.optString("data"));
// Type type = new TypeToken<Collection<YdbgBean>>() {
// }.getType();
// ydbgBeanLists = (List) new Gson().fromJson(jSONObject3.optString("detailList"), type);
// initBarChart();
// }
// } catch (Exception e) {
// e.getMessage();
// }
// }
// });
// } catch (Exception unused) {
// }
}
public void initBarChart() {
mViewDataBinding.rlNodata.setVisibility(8);
mViewDataBinding.rvChart.setVisibility(0);
int readTime = (ydbgBeanLists.get(0).getReadTime() / 1000) / 60;
for (int i = 1; i < ydbgBeanLists.size(); i++) {
if ((ydbgBeanLists.get(i).getReadTime() / 1000) / 60 > readTime) {
readTime = (ydbgBeanLists.get(i).getReadTime() / 1000) / 60;
}
}
if (readTime <= 10) {
progressBarMax = 10;
} else if (readTime <= 100) {
progressBarMax = 100;
} else if (readTime <= 300) {
progressBarMax = 300;
} else if (readTime <= 500) {
progressBarMax = 500;
} else if (readTime <= 700) {
progressBarMax = 700;
} else if (readTime <= 1000) {
progressBarMax = 1000;
} else if (readTime <= 1440) {
progressBarMax = 1440;
}
mViewDataBinding.rvChart.setAdapter(new ChartAdapter(ydbgBeanLists));
}
class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int i) {
return mFragment.get(i);
}
@Override
public int getCount() {
return mFragment.size();
}
@Override
public long getItemId(int i) {
return mFragment.get(i).hashCode();
}
}
public class ChartAdapter extends BaseQuickAdapter<YdbgBean, BaseViewHolder> {
public ChartAdapter(List<YdbgBean> list) {
super(R.layout.item_chart, list);
}
@Override
public void convert(BaseViewHolder baseViewHolder, YdbgBean ydbgBean) {
VerticalProgressBar verticalProgressBar = baseViewHolder.getView(R.id.battery_pb);
verticalProgressBar.setMaxProgress(progressBarMax);
verticalProgressBar.setProgress((ydbgBean.getReadTime() / 1000) / 60);
String hexWithAlpha = String.format("#%08X", -11485776);
Log.e(TAG, "convert: " + hexWithAlpha);
verticalProgressBar.setProgressColor(-11485776);
((TextView) baseViewHolder.getView(R.id.tv_data)).setText(getWeekOfDate(ydbgBean.getDate()));
}
}
public String getWeekOfDate(String str) {
try {
String[] strArr = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
Date parse = new SimpleDateFormat("yyyy-MM-dd").parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(parse);
int i = calendar.get(Calendar.DAY_OF_WEEK) - 1;
if (i < 0) {
i = 0;
}
return strArr[i];
} catch (Exception unused) {
return str.split("-")[1] + "." + str.split("-")[2];
}
}
public class BtnClick {
public void openPrecisionHome(View view) {
public void x(View view) {
}
}