diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/TimetableView.java b/TimetableView/src/main/java/com/zhuangfei/timetable/TimetableView.java index e121c97ac23d5515307a65f3aea87772e0b616c8..b752c84d3d68deb9e9aa5a706f6fb8a3d83a2584 100644 --- a/TimetableView/src/main/java/com/zhuangfei/timetable/TimetableView.java +++ b/TimetableView/src/main/java/com/zhuangfei/timetable/TimetableView.java @@ -783,7 +783,7 @@ public class TimetableView extends DirectionalLayout { */ public ScheduleColorPool colorPool() { if (colorPool == null) { - colorPool = new ScheduleColorPool(context); + colorPool = new ScheduleColorPool(); } return colorPool; } diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/listener/OnSlideBuildAdapter.java b/TimetableView/src/main/java/com/zhuangfei/timetable/listener/OnSlideBuildAdapter.java index 1f01b4159690b3759f5bd2a8b7f330588617c749..c650e654090b4e5a829e90500938edf100c4cd64 100644 --- a/TimetableView/src/main/java/com/zhuangfei/timetable/listener/OnSlideBuildAdapter.java +++ b/TimetableView/src/main/java/com/zhuangfei/timetable/listener/OnSlideBuildAdapter.java @@ -40,12 +40,16 @@ public class OnSlideBuildAdapter implements ISchedule.OnSlideBuildListener { /** * 设置时刻数组 * - * @param times + * @param time * * @return OnSlideBuildAdapter */ - public OnSlideBuildAdapter setTimes(String[] times) { - this.times = times; + public OnSlideBuildAdapter setTimes(String[] time) { + if (time != null) { + this.times = time.clone(); + } else { + this.times = null; + } return this; } @@ -60,7 +64,11 @@ public class OnSlideBuildAdapter implements ISchedule.OnSlideBuildListener { * @return String[] */ public String[] getTimes() { - return times; + if (times != null) { + return times.clone(); + } else { + return null; + } } diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/model/Schedule.java b/TimetableView/src/main/java/com/zhuangfei/timetable/model/Schedule.java index f71a21b3395327f6bc22b10c3e21a12ce75d38c4..7617744353877b1e42e58c924e663ec3f6c757f3 100644 --- a/TimetableView/src/main/java/com/zhuangfei/timetable/model/Schedule.java +++ b/TimetableView/src/main/java/com/zhuangfei/timetable/model/Schedule.java @@ -158,7 +158,7 @@ public class Schedule implements Serializable, Comparable { public int compareTo(Schedule o) { if (getStart() < o.getStart()) { return -1; - } else if (getStart() == o.getStart()) { + } else if (((Object)o.getStart()).equals(getStart())) { return 0; } else { return 1; diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleColorPool.java b/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleColorPool.java index eac4a5ab0164a70dbdfdfce2662d985eaa5892d2..42bf40afddca4a15c97ad715a69551e4e042e880 100644 --- a/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleColorPool.java +++ b/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleColorPool.java @@ -9,9 +9,6 @@ import java.util.*; * 颜色池,管理课程项可挑选的颜色 */ public class ScheduleColorPool { - - Context context; - /** * 课程不在本周时的背景色 */ @@ -25,8 +22,7 @@ public class ScheduleColorPool { */ private boolean ignoreUserlessColor = false; - public ScheduleColorPool(Context context) { - this.context = context; + public ScheduleColorPool() { setUselessColor(new RgbColor(240,240,240)); colorMap = new HashMap<>(); reset(); @@ -185,11 +181,7 @@ public class ScheduleColorPool { * @return int */ public int size() { - if (getPoolInstance() == null) { - return 0; - } else { - return getPoolInstance().size(); - } + return getPoolInstance().size(); } /** diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleConfig.java b/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleConfig.java index 4ba242e5510d594f871492f571911fd5ece7ab44..ac21bede4347a1f460cad145da6f74b7356a53b8 100644 --- a/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleConfig.java +++ b/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleConfig.java @@ -20,11 +20,9 @@ public class ScheduleConfig { private Preferences mConfigPreferences; private Map mConfigMap; - private Context context; private String configName = "default_schedule_config"; public ScheduleConfig(Context context) { - this.context = context; mConfigMap = new HashMap<>(); databaseHelper = new DatabaseHelper(context); diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleSupport.java b/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleSupport.java index 31a7bf9cbbaa42ad6b5bb361f56bca1648525488..c301260674f8e1e5dfb183bef7490a2f958125ab 100644 --- a/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleSupport.java +++ b/TimetableView/src/main/java/com/zhuangfei/timetable/model/ScheduleSupport.java @@ -117,10 +117,10 @@ public class ScheduleSupport { public static int timeTransfrom(String startTime) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { - long start = sdf.parse(startTime).getTime(); - long end = new Date().getTime(); - long seconds = (end - start) / 1000; - long day = seconds / (24 * 3600); + double start = sdf.parse(startTime).getTime(); + double end = new Date().getTime(); + double seconds = (end - start) / 1000; + double day = seconds / (24 * 3600); int week = (int) (Math.floor(day / 7) + 1); return week; } catch (ParseException e) { diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/operater/SimpleOperater.java b/TimetableView/src/main/java/com/zhuangfei/timetable/operater/SimpleOperater.java index 074baa7f0c13566d40edda75c8c954f952226bae..723b33df98cde25b66953692ee83d6db7191fab1 100644 --- a/TimetableView/src/main/java/com/zhuangfei/timetable/operater/SimpleOperater.java +++ b/TimetableView/src/main/java/com/zhuangfei/timetable/operater/SimpleOperater.java @@ -86,14 +86,14 @@ public class SimpleOperater extends AbsOperater { this.context = context; mView = view; inflater = LayoutScatter.getInstance(context); - Component parse = inflater.parse(ResourceTable.Layout_timetable_layout, mView, true); + inflater.parse(ResourceTable.Layout_timetable_layout, mView, true); containerLayout = (DirectionalLayout) mView.findComponentById(ResourceTable.Id_id_container); dateLayout = (DirectionalLayout) mView.findComponentById(ResourceTable.Id_id_datelayout); mView.monthWidthDp(MONTH_WIDTH); initAttr(attrs); scheduleConfig = new ScheduleConfig(context); - + } /** @@ -184,11 +184,11 @@ public class SimpleOperater extends AbsOperater { * newItemView * * @param originData 数据源 - * @param data 某一天的数据集合 - * @param subject 当前的课程数据 - * @param pre 上一个课程数据 - * @param i 构建的索引 - * @param curWeek 当前周 + * @param data 某一天的数据集合 + * @param subject 当前的课程数据 + * @param pre 上一个课程数据 + * @param i 构建的索引 + * @param curWeek 当前周 * @return View */ private Component newItemView(final List originData, final List data, @@ -377,11 +377,7 @@ public class SimpleOperater extends AbsOperater { * 判断点击的是第几节课,1:第1节 */ final int start; - if (mView.isShowWeekView()) { - start = (int) Math.ceil(y / (mView.itemHeight() + mView.marTop())); - } else { - start = (int) Math.ceil(y / (mView.itemHeight() + mView.marTop())); - } + start = (int) Math.ceil(y / (mView.itemHeight() + mView.marTop())); if (!checkPosition(day, start)) { mView.onSpaceItemClickListener().onSpaceItemClick(day, start); } @@ -587,13 +583,13 @@ public class SimpleOperater extends AbsOperater { * @return 宽度 */ protected float getPerWidth() { - float perWidth = 0; + double perWidth = 0; if (mView.isShowWeekends()) { - perWidth = (ScreenUtils.getDisplayWidth(context) - mView.monthWidth()) / 7; + perWidth = ((double) ScreenUtils.getDisplayWidth(context) - (double) mView.monthWidth()) / 7; } else { - perWidth = (ScreenUtils.getDisplayWidth(context) - mView.monthWidth()) / 5; + perWidth = ((double) ScreenUtils.getDisplayWidth(context) - (double) mView.monthWidth()) / 5; } - return perWidth; + return (float) perWidth; } /** diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/view/PerWeekView.java b/TimetableView/src/main/java/com/zhuangfei/timetable/view/PerWeekView.java index adcd5dc0143a42cbaacddc8c2d4ddf48692eb54a..1cd3fdcc900a708d2b6309696546222b4df2ca99 100644 --- a/TimetableView/src/main/java/com/zhuangfei/timetable/view/PerWeekView.java +++ b/TimetableView/src/main/java/com/zhuangfei/timetable/view/PerWeekView.java @@ -174,7 +174,7 @@ public class PerWeekView extends Component { * @return PerWeekView */ public PerWeekView setRadiusInPx(int radiusPx) { - this.radius = radius; + this.radius = radiusPx; return this; } @@ -189,15 +189,6 @@ public class PerWeekView extends Component { return this; } - /** - * 构造 - * * - * @param context - */ - public PerWeekView(Context context) { - this(context, null); - } - /** * 构造函数 * * diff --git a/build.gradle b/build.gradle index 6d84aa70c88e0c7efda1fd4564268fe1d713ab0e..8d6324b05b02acab23677c12f5f9591f19954132 100644 --- a/build.gradle +++ b/build.gradle @@ -19,8 +19,8 @@ buildscript { jcenter() } dependencies { - classpath 'com.huawei.ohos:hap:2.4.2.7' - classpath 'com.huawei.ohos:decctest:1.0.0.6' + classpath 'com.huawei.ohos:hap:2.4.5.0' + classpath 'com.huawei.ohos:decctest:1.2.4.1' } } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/adapter/ChooseAdapter.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/adapter/ChooseAdapter.java index ea55f484aff4597f837e1d1027224b0d39e57a33..4121d9c567084e574a63e5c624a21ac7fcaeed5e 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/adapter/ChooseAdapter.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/adapter/ChooseAdapter.java @@ -30,7 +30,6 @@ import java.util.ArrayList; */ public class ChooseAdapter extends BaseItemProvider { ArrayList datas; - Context context; LayoutScatter inflater; private CheckListen checkListen; @@ -41,7 +40,6 @@ public class ChooseAdapter extends BaseItemProvider { * @param data */ public ChooseAdapter(Context context, ArrayList data) { - this.context = context; this.datas = data; inflater = LayoutScatter.getInstance(context); } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/adapter/NonViewAdapter.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/adapter/NonViewAdapter.java index 09e12700afcf304f5d6b023dbf92b0c2ee1e6a4b..8e604c15704a31ec711b3fe9b7f0e7e60eefdb4c 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/adapter/NonViewAdapter.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/adapter/NonViewAdapter.java @@ -32,7 +32,6 @@ import java.util.List; */ public class NonViewAdapter extends BaseItemProvider { List schedules; - Context context; LayoutScatter inflater; /** @@ -42,7 +41,6 @@ public class NonViewAdapter extends BaseItemProvider { * @param schedules */ public NonViewAdapter(Context context, List schedules) { - this.context = context; this.schedules = schedules; inflater = LayoutScatter.getInstance(context); } @@ -77,7 +75,7 @@ public class NonViewAdapter extends BaseItemProvider { } Schedule schedule = (Schedule) getItem(i); - ScheduleColorPool colorPool = new ScheduleColorPool(context); + ScheduleColorPool colorPool = new ScheduleColorPool(); holder.nameTextView.setText(schedule.getName()); RgbColor colorAuto = colorPool.getColorAuto(schedule.getColorRandom()); ShapeElement shapeElement = new ShapeElement(); @@ -91,7 +89,7 @@ public class NonViewAdapter extends BaseItemProvider { * * @since 2021-03-29 */ - class ViewHolder { + static class ViewHolder { Text nameTextView; Text colorTextView; } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/custom/CustomOperater.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/custom/CustomOperater.java index 6de8d336d7fbac9ea653e72141ad4f8be47e7381..2e99e21749c297fc036047900debe5882f4554a2 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/custom/CustomOperater.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/custom/CustomOperater.java @@ -36,7 +36,7 @@ public class CustomOperater extends SimpleOperater { */ public CustomOperater() { weights = new float[7]; - for (int i = 0;i < weights.length;i++) { + for (int i = 0; i < weights.length; i++) { weights[i] = 1; } } @@ -47,10 +47,10 @@ public class CustomOperater extends SimpleOperater { if (weights == null) { return; } - for (int i = 0;i < panels.length;i++) { + for (int i = 0; i < panels.length; i++) { DirectionalLayout.LayoutConfig lp = new DirectionalLayout.LayoutConfig(0, DirectionalLayout.LayoutConfig.MATCH_PARENT, - DirectionalLayout.LayoutConfig.UNSPECIFIED_ALIGNMENT,weights[i]); + DirectionalLayout.LayoutConfig.UNSPECIFIED_ALIGNMENT, weights[i]); panels[i].setLayoutConfig(lp); } @@ -63,12 +63,17 @@ public class CustomOperater extends SimpleOperater { */ public void setWidthWeights(float[] weight) { if (weight == null || weight.length < 7) { - return; + this.weights = null; + } else { + this.weights = weight.clone(); } - this.weights = weight; } public float[] getWeights() { - return weights; + if (this.weights != null) { + return weights.clone(); + } else { + return null; + } } } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/dialog/DialogUtil.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/dialog/DialogUtil.java index 169c9bba4b8f2a653c366b3d55ab9cd8aa94f601..e235de3e9b1a2faae2fe0514764c999fe236a563 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/dialog/DialogUtil.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/dialog/DialogUtil.java @@ -29,17 +29,6 @@ import ohos.app.Context; * @since 2021-03-29 */ public class DialogUtil { - Context context; - - /** - * DialogUtil - * - * @param context - */ - public DialogUtil(Context context) { - this.context = context; - } - /** * 显示方法 * diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/model/SubjectRepertory.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/model/SubjectRepertory.java index f8004d7a39ee1d6b5ce8205f62bbf1fdc44d0da3..027ddfc68b64665a684586df17858d1fec8fb4a3 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/model/SubjectRepertory.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/model/SubjectRepertory.java @@ -2,6 +2,7 @@ package com.zhuangfei.ohos_timetableview.model; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONException; +import com.zhuangfei.ohos_timetableview.utils.LogUtils; import java.util.ArrayList; import java.util.List; @@ -84,7 +85,7 @@ public class SubjectRepertory { courses.add(new MySubject(term, name, room, teacher, getWeekList(weeks), start, step, day, -1, null)); } } catch (JSONException e) { - String exception = e.toString(); + LogUtils.error("JSONException:",e.toString()); } return courses; } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/AttrSlice.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/AttrSlice.java index 9fd4d05ff1f7529052addd34508c50e133f9cf9b..18b32af22170f3aefd66db4c278cddce9d7b40f0 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/AttrSlice.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/AttrSlice.java @@ -79,10 +79,11 @@ public class AttrSlice extends BaseAbilitySlice { * @param beans */ protected void display(List beans) { - String str = ""; + StringBuffer s = new StringBuffer(); for (Schedule bean : beans) { - str += bean.getName() + "、"; + s.append(bean.getName() + "、"); } + String str = s.toString(); ToastViewDialog.toast(AttrSlice.this, str); } } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/BaseFuncSlice.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/BaseFuncSlice.java index 52dd71330b81a4bb279f44fbf176733e2c5d6e21..2e854bc8d6040b739bfa2b12268952fb4186975d 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/BaseFuncSlice.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/BaseFuncSlice.java @@ -234,11 +234,12 @@ public class BaseFuncSlice extends BaseAbilitySlice implements Component.Clicked * @param beans */ protected void display(List beans) { - String str = ""; + StringBuffer s = new StringBuffer(); for (Schedule bean : beans) { - str += bean.getName() + "," + bean.getWeekList().toString() + "," - + bean.getStart() + "," + bean.getStep() + "\n"; + s.append(bean.getName() + "," + bean.getWeekList().toString() + "," + + bean.getStart() + "," + bean.getStep() + "\n"); } + String str = s.toString(); ToastViewDialog.toast(this, str); } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/CustomWidthSlice.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/CustomWidthSlice.java index 6e0e6214ab59b191a18418af64d323294d2bbb62..e7f7e23faeaf3a8db5969b666b9f07dcbc1f471f 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/CustomWidthSlice.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/CustomWidthSlice.java @@ -81,12 +81,12 @@ public class CustomWidthSlice extends BaseAbilitySlice { Component[] views = new Component[8]; views[0] = onBuildMonthLayout(scatter, (int) monthWidth, height); float[] weights = operater.getWeights(); - float sum = 0; + double sum = 0; for (int i = 0; i < weights.length; i++) { sum += weights[i]; } for (int i = 1; i < 8; i++) { - float rato = weights[i - 1] / sum; + double rato = weights[i - 1] / sum; views[i] = onBuildDayLayout(scatter, i, (int) (7 * perWidth * rato), height); } return views; @@ -102,12 +102,12 @@ public class CustomWidthSlice extends BaseAbilitySlice { return; } float[] weights = operater.getWeights(); - float sum = 0; + double sum = 0; for (int i = 0; i < weights.length; i++) { sum += weights[i]; } int newItemWidth = (int) (super.itemWidth * 7 * weights[day] / sum); - float newMarLeft = 0; + double newMarLeft = 0; for (int i = 0; i < day; i++) { newMarLeft += super.itemWidth * 7 * weights[i] / sum; } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/ExtrasSlice.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/ExtrasSlice.java index b2a9d2b1b3682b73158456fffd730ad3c43363fa..6c0033dfcb309c47a43171591d3bae0b06219863 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/ExtrasSlice.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/ExtrasSlice.java @@ -75,10 +75,11 @@ public class ExtrasSlice extends BaseAbilitySlice { * @param beans */ protected void display(List beans) { - String str = ""; + StringBuffer s = new StringBuffer(); for (Schedule bean : beans) { - str += "[" + bean.getName() + "]的id:" + bean.getExtras().get(MySubject.EXTRAS_ID) + "\n"; + s.append("[" + bean.getName() + "]的id:" + bean.getExtras().get(MySubject.EXTRAS_ID) + "\n"); } + String str = s.toString(); ToastViewDialog.toast(this, str); } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/FlaglayoutSlice.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/FlaglayoutSlice.java index ac4f7ebf04acbe2b99e2f0152d721d3382c0b488..42c5fc9001ecb1936ab7bb79ebb53e7f529b79c0 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/FlaglayoutSlice.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/FlaglayoutSlice.java @@ -126,10 +126,11 @@ public class FlaglayoutSlice extends BaseAbilitySlice { * @param beans */ protected void display(List beans) { - String str = ""; + StringBuffer s = new StringBuffer(); for (Schedule bean : beans) { - str += bean.getName() + "、"; + s.append(bean.getName() + "、"); } + String str = s.toString(); ToastViewDialog.toast(this, str); } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/LocalConfigSlice.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/LocalConfigSlice.java index 627a57bff090cc0b550f99d1433043ba481f94f7..30601e2877f6f26acecfba96b0eb6c8400581082 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/LocalConfigSlice.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/LocalConfigSlice.java @@ -162,11 +162,12 @@ public class LocalConfigSlice extends BaseAbilitySlice { private void exportLocalConfig() { Set set = mScheduleConfig.export(); configSet = set; - String content = ""; + StringBuffer content = new StringBuffer(); for (String s : set) { - content += s + "\n"; + content.append(s + "\n"); } - DialogUtil.show(this, "配置导出", content); + String str = content.toString(); + DialogUtil.show(this, "配置导出", str); } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/SimpleSlice.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/SimpleSlice.java index 8fc0c7e68faaa6f48d3a88002e51768d6286b5ac..afe03719c58c8bdd6dc3b6378731e879df871895 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/SimpleSlice.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/slice/SimpleSlice.java @@ -24,6 +24,7 @@ import com.zhuangfei.ohos_timetableview.dialog.ToastViewDialog; import com.zhuangfei.ohos_timetableview.model.MySubject; import com.zhuangfei.ohos_timetableview.model.SubjectRepertory; import com.zhuangfei.ohos_timetableview.spinner.MaterialSpinner; +import com.zhuangfei.ohos_timetableview.utils.LogUtils; import com.zhuangfei.timetable.TimetableView; import com.zhuangfei.timetable.listener.ISchedule; import com.zhuangfei.timetable.listener.IWeekView; @@ -326,11 +327,12 @@ public class SimpleSlice extends BaseAbilitySlice implements Component.ClickedLi * @param beans */ protected void display(List beans) { - String str = ""; + StringBuffer s = new StringBuffer(); for (Schedule bean : beans) { - str += bean.getName() + "," + bean.getWeekList().toString() + "," - + bean.getStart() + "," + bean.getStep() + "\n"; + s.append(bean.getName() + "," + bean.getWeekList().toString() + "," + + bean.getStart() + "," + bean.getStep() + "\n"); } + String str = s.toString(); ToastViewDialog.toast(this, str); } @@ -389,9 +391,9 @@ public class SimpleSlice extends BaseAbilitySlice implements Component.ClickedLi } } catch (MalformedURLException e) { - String ex = e.toString(); + LogUtils.error("MalformedURLException:",e.toString()); } catch (IOException e) { - String ex = e.toString(); + LogUtils.error("IOException:",e.toString()); } return pixelMap; } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/spinner/MaterialSpinner.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/spinner/MaterialSpinner.java index a7d22f2bd8faa40df3aadc140a7032194d945609..f674b1ae81325f988d48635fc828bcb585f36eed 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/spinner/MaterialSpinner.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/spinner/MaterialSpinner.java @@ -99,16 +99,6 @@ public class MaterialSpinner extends Text implements Component.TouchEventListene private String hintText; private com.zhuangfei.ohos_timetableview.spinner.MaterialSpinnerBaseAdapter mAdapter; - /** - * MaterialSpinner - * - * @param context - */ - public MaterialSpinner(Context context) { - super(context); - init(context, null); - } - /** * 构造方法 * @@ -486,8 +476,8 @@ public class MaterialSpinner extends Text implements Component.TouchEventListene setText(""); } if (shouldResetPopupHeight) { - popupWindow.setSize(getWidth(), adapterInternal.getCount() * ScreenUtils.pxToFp(mContext,36) + 10); - listView.setComponentSize(getWidth(), adapterInternal.getCount() * ScreenUtils.pxToFp(mContext,36) + 10); + popupWindow.setSize(getWidth(), adapterInternal.getCount() * ScreenUtils.pxToFp(mContext, 36) + 10); + listView.setComponentSize(getWidth(), adapterInternal.getCount() * ScreenUtils.pxToFp(mContext, 36) + 10); } } @@ -505,9 +495,9 @@ public class MaterialSpinner extends Text implements Component.TouchEventListene initPopupWindow(mContext); popupWindow.setSize(ScreenUtils.getDisplayWidth(mContext) / 5 * 2, - adapter.getCount() * ScreenUtils.pxToFp(mContext,36) + 10); + adapter.getCount() * ScreenUtils.pxToFp(mContext, 36) + 10); listView.setComponentSize(ScreenUtils.getDisplayWidth(mContext) / 5 * 2, - adapter.getCount() * ScreenUtils.pxToFp(mContext,36) + 10); + adapter.getCount() * ScreenUtils.pxToFp(mContext, 36) + 10); int[] locationOnScreen = this.getLocationOnScreen(); HiLog.info(LABEL, "locationOnScreen[1] = " + locationOnScreen[1] + ", " + spinnerWidth + ",locationOnScreen[1]" + locationOnScreen[1]); @@ -568,11 +558,7 @@ public class MaterialSpinner extends Text implements Component.TouchEventListene if (rtl) { setLayoutDirection(LayoutDirection.RTL); } - if (shouldRotateUp) { - arrowDrawable = com.zhuangfei.ohos_timetableview.spinner.Utils.getPixelMapElement(mContext, ResourceTable.Media_ic_more); - } else { - arrowDrawable = com.zhuangfei.ohos_timetableview.spinner.Utils.getPixelMapElement(mContext, ResourceTable.Media_ic_more); - } + arrowDrawable = com.zhuangfei.ohos_timetableview.spinner.Utils.getPixelMapElement(mContext, ResourceTable.Media_ic_more); /** * 旋转图片 动作 */ diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/spinner/Utils.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/spinner/Utils.java index 39466c85b5ae5388a3429134efdc9f06eabde8f4..aca8b53cd4204abdf1e23832c65bccf11c57aa28 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/spinner/Utils.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/spinner/Utils.java @@ -57,9 +57,10 @@ final class Utils { * @return lighter version of the specified color. */ static int lighter(int color, float factor) { - int red = (int) ((Integer.parseInt(red(color), 16) * (1 - factor) / 255 + factor) * 255); - int green = (int) ((Integer.parseInt(green(color), 16) / 255 + factor) * 255); - int blue = (int) ((Integer.parseInt(blue(color), 16) * (1 - factor) / 255 + factor) * 255); + double f = factor; + int red = (int) (((double)Integer.parseInt(red(color), 16) * (1 - f) / 255 + f) * 255); + int green = (int) (((double)Integer.parseInt(green(color), 16) / 255 + f) * 255); + int blue = (int) (((double)Integer.parseInt(blue(color), 16) * (1 - f) / 255 + f) * 255); return Color.argb(Color.alpha(color), red, green, blue); } diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/utils/LogUtils.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/utils/LogUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..0945d26d78a49b71ddf92a048dff148dfb3231cd --- /dev/null +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/utils/LogUtils.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2021 The Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package com.zhuangfei.ohos_timetableview.utils; + +import ohos.hiviewdfx.HiLog; +import ohos.hiviewdfx.HiLogLabel; + +/** + * LogUtils + * + * @since 2021-03-27 + */ +public class LogUtils { + private static final String TAG_LOG = "LogUtil"; + private static final HiLogLabel LABEL_LOG = new HiLogLabel(0, 0, LogUtils.TAG_LOG); + private static final String LOG_FORMAT = "%{public}s: %{public}s"; + private static final int NUM_123456 = 0x123456; + + private LogUtils() { + } + + /** + * Print info log + * + * @param tag log tag + * @param msg log message + */ + public static void info(String tag, String msg) { + HiLog.info(LABEL_LOG, LOG_FORMAT, tag, msg); + } + + /** + * Print error log + * + * @param tag log tag + * @param msg log message + */ + public static void error(String tag, String msg) { + HiLog.error(LABEL_LOG, LOG_FORMAT, tag, msg); + } + + /** + * I + * + * @param value + */ + public static void i(String value) { + HiLogLabel label = new HiLogLabel(HiLog.LOG_APP, NUM_123456, ""); + HiLog.error(label, "logutil" + value); + } +} diff --git a/entry/src/main/java/com/zhuangfei/ohos_timetableview/views/ElasticScrollView.java b/entry/src/main/java/com/zhuangfei/ohos_timetableview/views/ElasticScrollView.java index b2bd80177972324d89f6be8cf1a0a9a2459737d6..5e6d66ff94c3fbb407460f6eb44ba5ff8bfe8d9b 100644 --- a/entry/src/main/java/com/zhuangfei/ohos_timetableview/views/ElasticScrollView.java +++ b/entry/src/main/java/com/zhuangfei/ohos_timetableview/views/ElasticScrollView.java @@ -19,7 +19,7 @@ import ohos.multimodalinput.event.TouchEvent; */ public class ElasticScrollView extends ScrollView implements Component.TouchEventListener { private Component inner; - private float yy; + private double yy; private Rect normal = new Rect(); private boolean animationFinish = true; @@ -62,8 +62,8 @@ public class ElasticScrollView extends ScrollView implements Component.TouchEven } break; case TouchEvent.POINT_MOVE: - final float preY = yy == 0 ? point.getY() : yy; - float nowY = point.getY(); + final double preY = yy == 0 ? point.getY() : yy; + double nowY = point.getY(); int deltaY = (int) (preY - nowY); yy = nowY;