优化浇水流程,以及中英文遗漏点

This commit is contained in:
fengjignqi
2026-06-26 10:12:45 +08:00
parent 5e920037f5
commit 73d5003655
19 changed files with 81 additions and 331 deletions

View File

@@ -30,12 +30,21 @@ public class CustomTypeFilterPopupView extends PartShadowPopupView implements Vi
private boolean mSelManual = false; private boolean mSelManual = false;
//是否选择了自动排程 //是否选择了自动排程
private boolean mSelAuto = false; private boolean mSelAuto = false;
private int mFilterType = -1;
public CustomTypeFilterPopupView(@NonNull Context context, OnClickListener listener) { public CustomTypeFilterPopupView(@NonNull Context context, OnClickListener listener) {
super(context); super(context);
this.mContext = context; this.mContext = context;
this.listener = listener; this.listener = listener;
} }
public CustomTypeFilterPopupView(@NonNull Context context, OnClickListener listener, int filterType) {
super(context);
this.mContext = context;
this.listener = listener;
this.mFilterType = filterType;
}
public interface OnClickListener{ public interface OnClickListener{
void callBack(boolean mSelManual,boolean mSelAuto); void callBack(boolean mSelManual,boolean mSelAuto);
} }
@@ -59,7 +68,18 @@ public class CustomTypeFilterPopupView extends PartShadowPopupView implements Vi
tvAuto.setOnClickListener(this); tvAuto.setOnClickListener(this);
tvReset.setOnClickListener(this); tvReset.setOnClickListener(this);
tvFinish.setOnClickListener(this); tvFinish.setOnClickListener(this);
tvManual.setSelected(false); // 根据filterType设置初始选中状态
if (mFilterType == 0) {
// 排程
mSelAuto = true;
tvAuto.setTextColor(mContext.getColor(R.color.white));
tvAuto.setSelected(true);
} else if (mFilterType == 1) {
// 手动
mSelManual = true;
tvManual.setTextColor(mContext.getColor(R.color.white));
tvManual.setSelected(true);
}
} }

View File

@@ -99,8 +99,11 @@ public class TabHistoryFragment extends BaseFragment<TabHistoryFragmentLayoutBin
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
switch (view.getId()){ switch (view.getId()){
case R.id.img_delete: case R.id.img_delete:
showDialogtext(null, false, false, "提示", showDialogtext(null, false, false,
"确定删除该记录", "取消", "删除", getString(R.string.tip_text),
getString(R.string.confirm_delete_record),
getString(R.string.cancel_text),
getString(R.string.confirm_text),
new OnDialogClick() { new OnDialogClick() {
@Override @Override
public void onCancelClick() { public void onCancelClick() {
@@ -189,7 +192,7 @@ public class TabHistoryFragment extends BaseFragment<TabHistoryFragmentLayoutBin
} }
getWaterHistoryList(); getWaterHistoryList();
} }
})); }, mFilterType));
typePopupView.show(); typePopupView.show();
break; break;

View File

@@ -34,7 +34,9 @@ public class WateringHistoryAdapter extends BaseQuickAdapter<WateringRecord, Bas
helper.setText(R.id.tv_plan_duration,mContext.getString(R.string.device_work_times_title) helper.setText(R.id.tv_plan_duration,mContext.getString(R.string.device_work_times_title)
+ ":" + item.getDurationMin() + "min"); + ":" + item.getDurationMin() + "min");
helper.setText(R.id.tv_plan_type,mContext.getString(R.string.tab_filter_type) helper.setText(R.id.tv_plan_type,mContext.getString(R.string.tab_filter_type)
+ ":" + item.getTriggerType()); + ":" + (item.getTriggerType().equals("0") ?
mContext.getString(R.string.history_filter_auto) :
mContext.getString(R.string.history_filter_manual)));
helper.addOnClickListener(R.id.img_delete); helper.addOnClickListener(R.id.img_delete);
} }
} }

View File

@@ -1,290 +0,0 @@
package com.ckkj.water.mine;
import static android.app.Activity.RESULT_OK;
import android.Manifest;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.sdk.android.oss.ClientException;
import com.alibaba.sdk.android.oss.ServiceException;
import com.ckkj.water.base.entity.MineUserInfoBean;
import com.esafirm.imagepicker.features.ImagePicker;
import com.esafirm.imagepicker.model.Image;
import com.ckkj.water.AppConfig;
import com.ckkj.water.EventMessage;
import com.ckkj.water.R;
import com.ckkj.water.base.BaseFragment;
import com.ckkj.water.base.inter.UploadCallback;
import com.ckkj.water.databinding.MineFragmentBinding;
import com.ckkj.water.login.LoginActivity;
import com.ckkj.water.mine.mvp.MineContract;
import com.ckkj.water.mine.mvp.MineImpl;
import com.ckkj.water.mine.mvp.MinePresenter;
import com.ckkj.water.network.BaseBean;
import com.ckkj.water.utils.LubanCompressUtil;
import com.ckkj.water.utils.PreviewFileUtil;
import com.ckkj.water.utils.click.ClickUtil;
import com.ckkj.water.utils.dataUtil.FileUtil;
import com.ckkj.water.utils.manager.WaterUserInfoManager;
import com.ckkj.water.utils.oss.OssUploadHelper;
import com.ckkj.water.utils.show.ToastUtil;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.interfaces.OnSelectListener;
import com.yalantis.ucrop.UCrop;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import de.greenrobot.event.EventBus;
import pub.devrel.easypermissions.EasyPermissions;
/**
* @author fengxiaoyang 新分支
* @date 2025/7/7
* @description TODO: 描述该类的作用
*/
public class MineFragment extends BaseFragment<MineFragmentBinding, MinePresenter>
implements MineContract.MineView {
@Override
public void initData(Bundle state) {
viewBinding.includedTitle.imgBack.setVisibility(View.GONE);
viewBinding.includedTitle.imgSetting.setVisibility(View.VISIBLE);
ClickUtil.addClickPart(viewBinding.includedTitle.imgSetting, 50);
ClickUtil.addClickPart(viewBinding.imgEdit, 50);
viewBinding.includedTitle.tvTitle.setText("个人中心");
}
@Override
protected void onResumeInitData() {
super.onResumeInitData();
if (AppConfig.USER_LOGIN) {
// mPresenter.getUserinfo();
} else {
viewBinding.tvDefaulBirthtime.setVisibility(View.VISIBLE);
viewBinding.tvDefaulStar.setVisibility(View.VISIBLE);
viewBinding.tvUserBirthTime.setVisibility(View.GONE);
viewBinding.tvUserStar.setVisibility(View.GONE);
}
}
@Override
public MinePresenter createPresenter() {
return new MinePresenter(new MineImpl());
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.img_user_head:
if (!AppConfig.USER_LOGIN) {
goTo(mContext, LoginActivity.class, null);
return;
}
new XPopup.Builder(mContext).asBottomList(
getString(R.string.avatar),
new String[]{
getString(R.string.upload_avatar),
getString(R.string.view_full_image)}, new OnSelectListener() {
@Override
public void onSelect(int position, String text) {
switch (position) {
case 0:
String readPermission = Manifest.permission.READ_EXTERNAL_STORAGE;
if (!hasRecordPermission(readPermission)) {
// 没有权限只在ACTION_DOWN时去申请+
getPermissionRequst(readPermission,
getString(R.string.request_camera_storage_permission),
getString(R.string.avatar_permission_tips),
REQUEST_CODE_100);
return;
} else {
imagePicker(1, REQUEST_CODE_100, MineFragment.this);
}
break;
case 1:
// String suffix = FileUtil.getFileSuffixWithQuestion(WaterUserInfoManager.getInstance().getUserInfo().getAvatar());
// PreviewFileUtil.previewFiles(mContext, suffix, WaterUserInfoManager.getInstance().getUserInfo().getAvatar());
break;
}
}
}).show();
break;
case R.id.img_setting:
goTo(mContext, SettingsActivity.class, null);
break;
case R.id.img_edit://编辑出生日期
if (!AppConfig.USER_LOGIN) {
goTo(mContext, LoginActivity.class, null);
return;
}
// 发送EventBus消息让MainActivity切换到FateFragment
EventBus.getDefault().post(new EventMessage(EventMessage.SWITCH_TO_FATE_FRAGMENT));
break;
case R.id.linear_tobe_vip:
case R.id.lienar_share_be_vip:
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case 100://头像
List<Image> images = ImagePicker.getImages(data);
Uri sourceUri = Uri.fromFile(new File(images.get(0).getPath()));
Uri destinationUri = Uri.fromFile(new File(mContext.getCacheDir(), "cropped_image.jpg"));
UCrop.of(sourceUri, destinationUri)
.withAspectRatio(1, 1) // 设置裁剪框比例1:1 为正方形
.withMaxResultSize(1000, 1000) // 设置裁剪后的最大图片尺寸
.start(requireContext(), this);
break;
case UCrop.REQUEST_CROP:
showLoadingDialog();
Uri resultUri = UCrop.getOutput(data);
String filePath = resultUri.getPath();
if (!TextUtils.isEmpty(filePath)) {
getCompressFile(new File(filePath));
}
break;
}
}
}
private void getCompressFile(File file) {
LubanCompressUtil.getInstance().getCompressFile(mContext, file, new LubanCompressUtil.CompressCallback() {
@Override
public void success(File file) {
if (file != null) {
if (file.exists()) {
long fileSizeInBytes = file.length(); // 获取文件大小(字节)
long fileSizeInMB = fileSizeInBytes / (1024 * 1024); // 转换为MB
String fileName = file.getName();
if (fileSizeInMB > 5) {
hideDialogLoading();
ToastUtil.showShort(mContext, "文件大小超出5M");
return;
}
if (!fileName.toLowerCase().endsWith(".png") &&
!fileName.toLowerCase().endsWith(".jpg") &&
!fileName.toLowerCase().endsWith(".jpeg")) {
ToastUtil.showShort(mContext, "文件格式不正确");
hideDialogLoading();
return;
}
List<String> filePath = new ArrayList<>();
filePath.add(file.getPath());
OssUploadHelper helper = new OssUploadHelper(mContext);
helper.upload(AppConfig.UPLOAD_TYPE_200, fileName, filePath, new UploadCallback() {
@Override
public void onSuccess(List<String> urls) {
mContext.runOnUiThread(new Runnable() {
@Override
public void run() {
if (!TextUtils.isEmpty(urls.get(0))) {
// mPresenter.updateUserAvatar(urls.get(0));
}
}
});
}
@Override
public void onFailure(ClientException clientException, ServiceException serviceException) {
}
});
} else {
ToastUtil.showShort(mContext, "文件不存在");
}
}
}
@Override
public void fail(String failMsg) {
}
});
}
@Override
public void onNetChange(int netModel) {
}
@Override
public void showError(String message) {
hideDialogLoading();
ToastUtil.showShort(mContext, message);
}
@Override
public void logOut(BaseBean bean) {
}
@Override
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
}
@Override
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
hidePermissionDialog();
if (requestCode == REQUEST_CODE_100) {
imagePicker(1, REQUEST_CODE_100, this);
}
}
@Override
public void getUserInfoSuccess(MineUserInfoBean bean) {
}
@Override
public void updateUserInfoSuccess(BaseBean bean) {
}
@Override
public void updateUserPasswordSuccess(BaseBean bean) {
}
@Override
public void logOutSuccess(BaseBean bean) {
}
}

View File

@@ -9,9 +9,6 @@ import com.ckkj.water.index.entity.WaterDeviceEntity;
import com.ckkj.water.login.entity.LoginEntity; import com.ckkj.water.login.entity.LoginEntity;
import com.ckkj.water.main.entity.CheckVersionEntity; import com.ckkj.water.main.entity.CheckVersionEntity;
import com.ckkj.water.plan.entity.WaterPlanWeekEntity; import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
import com.ckkj.water.plate.entity.BaziResultBean;
import com.ckkj.water.plate.entity.BaziSaveSuccessEntity;
import com.ckkj.water.plate.entity.PaipanHistoryEntity;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -148,20 +145,6 @@ public interface Request {
Observable<BaseBean<CheckVersionEntity>> getVersionCheck(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map); Observable<BaseBean<CheckVersionEntity>> getVersionCheck(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
//保存排盘结果
@POST("mobile/paiPan")
Observable<BaseBean<BaziSaveSuccessEntity>> startPaipan(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//AI解析排盘结果
@POST("mobile/paiPan/ai")
Observable<BaseBean> aiParesBaziResult(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
//开始排盘
@POST("https://api.yuanfenju.com/index.php/v1/Bazi/jingpan")
Observable<BaseYfjApiBean<BaziResultBean>> startPaipanByYfj(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);
//获取运势历史列表
@GET("mobile/paiPan/records")
Observable<BaseBean<PaipanHistoryEntity>> getPaipanHistoryList(@HeaderMap Map<String, String> headMap);
//删除历史记录 //删除历史记录
@POST("mobile/paiPan/record") @POST("mobile/paiPan/record")
Observable<BaseBean> deletePaipanRecordById(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map); Observable<BaseBean> deletePaipanRecordById(@HeaderMap Map<String, String> headMap, @QueryMap Map<String, Object> map);

View File

@@ -55,8 +55,11 @@ public class PlanBoundDeviceFragment extends BaseFragment<PlanBoundDeviceLayoutB
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
switch (view.getId()){ switch (view.getId()){
case R.id.img_delete: case R.id.img_delete:
showDialogtext(null, false, false, "提示", showDialogtext(null, false, false,
"确定解绑该设备?", "取消", "解绑", getString(R.string.tip_text),
getString(R.string.confirm_unbind_device),
getString(R.string.cancel_text),
getString(R.string.confirm_text),
new OnDialogClick() { new OnDialogClick() {
@Override @Override
public void onCancelClick() { public void onCancelClick() {

View File

@@ -117,8 +117,11 @@ public class PlanDetailActivity extends BaseActivity<WaterPlanDetailLayoutBindin
case R.id.btn_delete://删除 case R.id.btn_delete://删除
showDialogtext(null, false, false, true, showDialogtext(null, false, false, true,
getString(R.string.tip_text), getString(R.string.delete_plan_tip), getString(R.string.tip_text),
getString(R.string.cancel_text), getString(R.string.confirm_text), new BaseFragment.OnDialogClick() { getString(R.string.delete_plan_tip),
getString(R.string.cancel_text),
getString(R.string.confirm_text),
new BaseFragment.OnDialogClick() {
@Override @Override
public void onCancelClick() { public void onCancelClick() {
} }
@@ -243,7 +246,7 @@ public class PlanDetailActivity extends BaseActivity<WaterPlanDetailLayoutBindin
hideDialogLoading(); hideDialogLoading();
mDetailEntity.setStatus(status); mDetailEntity.setStatus(status);
if(status.equals("1")){ if(status.equals("1")){
showCenterTipDialog(R.mipmap.icon_dialog_success,"任务已开启"); showCenterTipDialog(R.mipmap.icon_dialog_success,getString(R.string.task_started));
viewBinding.switchButton.setChecked(true); viewBinding.switchButton.setChecked(true);
}else{ }else{
viewBinding.switchButton.setChecked(false); viewBinding.switchButton.setChecked(false);

View File

@@ -1,6 +1,7 @@
package com.ckkj.water.plan.adapter; package com.ckkj.water.plan.adapter;
import android.content.Context; import android.content.Context;
import android.view.View;
import android.widget.CheckBox; import android.widget.CheckBox;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@@ -24,8 +25,19 @@ public class WaterPlanListAdapter extends BaseQuickAdapter<WaterPlanWeekEntity,
@Override @Override
protected void convert(BaseViewHolder helper, WaterPlanWeekEntity item) { protected void convert(BaseViewHolder helper, WaterPlanWeekEntity item) {
View viewStatus = helper.getView(R.id.view_status_dot);
helper.setText(R.id.tv_device_name, item.getName()); helper.setText(R.id.tv_device_name, item.getName());
helper.setText(R.id.tv_device_serial, item.getId()); helper.setText(R.id.tv_device_serial, item.getId());
helper.setText(R.id.tv_device_status, item.getStatus().equals("0") ?
mContext.getString(R.string.closed) :
mContext.getString(R.string.device_status_working));
if(item.getStatus().equals("0")){
helper.setTextColor(R.id.tv_device_status,mContext.getResources().getColor(R.color.color_999999));
viewStatus.setBackground(mContext.getResources().getDrawable(R.drawable.shape_status_dot_999999));
}else{
helper.setTextColor(R.id.tv_device_status,mContext.getResources().getColor(R.color.color_24B326));
viewStatus.setBackground(mContext.getResources().getDrawable(R.drawable.shape_status_dot_green));
}
} }

View File

@@ -12,7 +12,7 @@
android:layout_marginHorizontal="@dimen/dp_5" android:layout_marginHorizontal="@dimen/dp_5"
android:layout_marginVertical="@dimen/dp_6" android:layout_marginVertical="@dimen/dp_6"
app:cardCornerRadius="16dp" app:cardCornerRadius="16dp"
app:cardElevation="@dimen/dp_5"> app:cardElevation="@dimen/dp_2">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -96,7 +96,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:clipToPadding="false" android:clipToPadding="false"
android:paddingHorizontal="@dimen/dp_15" android:paddingHorizontal="@dimen/dp_15"
tools:itemCount="3" tools:itemCount="5"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/index_device_list_item" /> tools:listitem="@layout/index_device_list_item" />

View File

@@ -22,7 +22,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_10" android:layout_margin="@dimen/dp_10"
android:text="已经到底了" android:text="@string/no_more_data"
android:textColor="@color/color_zhu" android:textColor="@color/color_zhu"
android:textSize="@dimen/sp_12" /> android:textSize="@dimen/sp_12" />

View File

@@ -44,7 +44,7 @@
android:textStyle="bold" android:textStyle="bold"
android:textSize="16sp" android:textSize="16sp"
android:textColor="@color/textPrimaryColor" android:textColor="@color/textPrimaryColor"
android:text="昵称"/> android:text=""/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -64,7 +64,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="16sp" android:textSize="16sp"
android:textColor="@color/textPrimaryColor" android:textColor="@color/textPrimaryColor"
android:text="13988886666"/> android:text=""/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

View File

@@ -8,9 +8,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_10"
android:layout_marginVertical="@dimen/dp_5" android:layout_marginVertical="@dimen/dp_6"
app:cardCornerRadius="10dp" app:cardCornerRadius="10dp"
app:cardElevation="4dp"> app:cardElevation="@dimen/dp_2">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -8,9 +8,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_10"
android:layout_marginVertical="@dimen/dp_5" android:layout_marginVertical="@dimen/dp_6"
app:cardCornerRadius="10dp" app:cardCornerRadius="10dp"
app:cardElevation="4dp"> app:cardElevation="@dimen/dp_2">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -42,7 +42,7 @@
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:text="已关联" android:text="@string/associated"
android:textColor="@color/color_zhu" android:textColor="@color/color_zhu"
android:textSize="14sp" /> android:textSize="14sp" />
</RelativeLayout> </RelativeLayout>

View File

@@ -8,9 +8,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_10"
android:layout_marginVertical="@dimen/dp_5" android:layout_marginVertical="@dimen/dp_6"
app:cardCornerRadius="10dp" app:cardCornerRadius="10dp"
app:cardElevation="4dp"> app:cardElevation="@dimen/dp_2">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -8,9 +8,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginHorizontal="@dimen/dp_10"
android:layout_marginVertical="@dimen/dp_5" android:layout_marginVertical="@dimen/dp_6"
app:cardCornerRadius="10dp" app:cardCornerRadius="10dp"
app:cardElevation="4dp"> app:cardElevation="@dimen/dp_2">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -103,6 +103,9 @@
<string name="select_watering_duration">Select watering duration</string> <string name="select_watering_duration">Select watering duration</string>
<string name="start_watering">Start Watering</string> <string name="start_watering">Start Watering</string>
<string name="device_status_offline">Off line</string> <string name="device_status_offline">Off line</string>
<string name="closed">Closed</string>
<string name="end_watering">Stop Watering</string>
<string name="device_offline_tip">Device is offline</string>
<!-- Schedule --> <!-- Schedule -->
@@ -133,6 +136,8 @@
<string name="button_edit">Edit</string> <string name="button_edit">Edit</string>
<string name="plan_detail_title">Schedule Details</string> <string name="plan_detail_title">Schedule Details</string>
<string name="btn_manual_refresh">Refresh</string> <string name="btn_manual_refresh">Refresh</string>
<string name="task_started">Task Started</string>
<string name="associated">Associated</string>
<!-- History --> <!-- History -->
<string name="history_title">History</string> <string name="history_title">History</string>
@@ -256,6 +261,9 @@
<string name="device_not_connected_retry">Device is not connected, please try again</string> <string name="device_not_connected_retry">Device is not connected, please try again</string>
<string name="scan_failed">Scan failed: %1$s</string> <string name="scan_failed">Scan failed: %1$s</string>
<string name="confirm_unbind_device">Unbind Device</string>
<string name="confirm_delete_record">Delete Record</string>
<string name="no_more_data">No more data</string>
<!-- End --> <!-- End -->

View File

@@ -89,6 +89,7 @@
<string name="device_info_firmware_version">固件版本</string> <string name="device_info_firmware_version">固件版本</string>
<string name="device_status_working">工作中</string> <string name="device_status_working">工作中</string>
<string name="device_status_not_working">待机中</string> <string name="device_status_not_working">待机中</string>
<string name="closed">已关闭</string>
<string name="device_status_offline">离线</string> <string name="device_status_offline">离线</string>
<string name="select_watering_duration">请选择浇水时长</string> <string name="select_watering_duration">请选择浇水时长</string>
<string name="start_watering">开启浇水</string> <string name="start_watering">开启浇水</string>
@@ -126,6 +127,8 @@
<string name="button_edit">编辑</string> <string name="button_edit">编辑</string>
<string name="plan_detail_title">排程详情</string> <string name="plan_detail_title">排程详情</string>
<string name="btn_manual_refresh">手动刷新</string> <string name="btn_manual_refresh">手动刷新</string>
<string name="task_started">任务已开启</string>
<string name="associated">已关联</string>
<!--历史--> <!--历史-->
@@ -242,6 +245,9 @@
<string name="device_not_connected_retry">设备未连接,请稍后重试</string> <string name="device_not_connected_retry">设备未连接,请稍后重试</string>
<string name="scan_failed">扫描失败: %1$s</string> <string name="scan_failed">扫描失败: %1$s</string>
<string name="confirm_unbind_device">确定解绑该设备</string>
<string name="confirm_delete_record">确定删除该记录</string>
<string name="no_more_data">已经到底了</string>
<!--结束--> <!--结束-->