From 005503ac7a7a82c1758581787ccc98d9d8089ea4 Mon Sep 17 00:00:00 2001 From: HYL123698745 <1252347619@qq.com> Date: Tue, 6 Jul 2021 11:15:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A2=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhuangfei/timetable/TimetableView.java | 2 +- .../listener/OnSlideBuildAdapter.java | 16 +++-- .../zhuangfei/timetable/model/Schedule.java | 2 +- .../timetable/model/ScheduleColorPool.java | 12 +--- .../timetable/model/ScheduleConfig.java | 2 - .../timetable/model/ScheduleSupport.java | 8 +-- .../timetable/operater/SimpleOperater.java | 28 ++++---- .../zhuangfei/timetable/view/PerWeekView.java | 11 +--- build.gradle | 4 +- .../adapter/ChooseAdapter.java | 2 - .../adapter/NonViewAdapter.java | 6 +- .../custom/CustomOperater.java | 17 +++-- .../ohos_timetableview/dialog/DialogUtil.java | 11 ---- .../model/SubjectRepertory.java | 3 +- .../ohos_timetableview/slice/AttrSlice.java | 5 +- .../slice/BaseFuncSlice.java | 7 +- .../slice/CustomWidthSlice.java | 8 +-- .../ohos_timetableview/slice/ExtrasSlice.java | 5 +- .../slice/FlaglayoutSlice.java | 5 +- .../slice/LocalConfigSlice.java | 7 +- .../ohos_timetableview/slice/SimpleSlice.java | 12 ++-- .../spinner/MaterialSpinner.java | 24 ++----- .../ohos_timetableview/spinner/Utils.java | 7 +- .../ohos_timetableview/utils/LogUtils.java | 65 +++++++++++++++++++ .../views/ElasticScrollView.java | 6 +- 25 files changed, 155 insertions(+), 120 deletions(-) create mode 100644 entry/src/main/java/com/zhuangfei/ohos_timetableview/utils/LogUtils.java diff --git a/TimetableView/src/main/java/com/zhuangfei/timetable/TimetableView.java b/TimetableView/src/main/java/com/zhuangfei/timetable/TimetableView.java index e121c97..b752c84 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 1f01b41..c650e65 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 f71a21b..7617744 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 eac4a5a..42bf40a 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 4ba242e..ac21bed 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 31a7bf9..c301260 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 074baa7..723b33d 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 adcd5dc..1cd3fdc 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 6d84aa7..8d6324b 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 ea55f48..4121d9c 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 09e1270..8e604c1 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 6de8d33..2e99e21 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 169c9bb..e235de3 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 f8004d7..027ddfc 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 9fd4d05..18b32af 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 52dd713..2e854bc 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 6e0e621..e7f7e23 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 b2a9d2b..6c0033d 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 ac4f7eb..42c5fc9 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 627a57b..30601e2 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 8fc0c7e..afe0371 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 a7d22f2..f674b1a 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 39466c8..aca8b53 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 0000000..0945d26 --- /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 b2bd801..5e6d66f 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; -- Gitee