smartclient dialog

本文介绍了如何使用JavaScript创建IButton组件,通过点击事件实现数据选择与删除、更新栏位的操作,包括数据验证与反馈。
isc.IButton.create({
             	ID:"delete",
             	width:"120",
             	height:25,
             	title:"删  除",
             	click:function(){
	             	var focusNode = this;
	             	if((!BarcodeHead.getSelectedRecord())){
	             		isc.say('请选择要删除的记录');
	             	}else{
	             		isc.ask("确认删除吗?",focusNode.Mycallback); //对是否做出相应的处理 
	             	}
             	},
             	Mycallback: function(value){
             	console.log(value);
             		 if(value){
	             		BarcodeHead.removeSelectedData();
	             		isc.say('删除成功!');
             		}else if(value=="" || value == null){
             		}else{
             			isc.say('删除失败,请重新操作!');
             		} 
             	}
             }),
             isc.IButton.create({
                 ID: "updateClumn",
                 width:"120",
                 height:25,
                 title: " 更 新 栏 位",
                 click: function () {
                 var focusNode = this;
	                 if((!BarcodeHead.getSelectedRecord())){
	                 	isc.say('请选择要更新的栏位');
	                 }else{
	                 	isc.askForValue("请输入要修改的单号",focusNode.updateInfo);
	                 }
                 },
                 updateInfo:function(value){
	                 var Id = BarcodeHead.getSelectedRecords()[0].recId;
	                 var focusNode = this;
	                 RPCManager.sendRequest({
						paramsOnly:true,
						actionURL: "BarCode/UpdateBarcodeHead.action",
						params:{refId:value,recId:Id}, //以对象形式传参
						callback:function(data){focusNode.updateRefId(data);}
					 });
                 },
                 updateRefId:function(data){
	                 var msg=data.data.split(",")[0].split(":")[1];
	                 isc.say(msg);
                 }
             })


回调函数 : 对象的回调,参数的回调,格式不一样。AIP瞄了好久,没懂 -_-!


用户同意权限后没有dismiss ,加个背景圆角吧 好丑,再加点边距 package com.kmilesaway.golfbat.ui.home; import android.Manifest; import android.app.ActivityManager; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.location.LocationManager; import android.os.Handler; import android.os.Looper; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.TextView; import android.widget.Toast; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.amap.api.maps.MapsInitializer; import com.amap.api.services.core.ServiceSettings; import com.azhon.appupdate.config.UpdateConfiguration; import com.azhon.appupdate.listener.OnButtonClickListener; import com.azhon.appupdate.listener.OnDownloadListenerAdapter; import com.azhon.appupdate.manager.DownloadManager; import com.blankj.utilcode.util.LogUtils; import com.bumptech.glide.Glide; import com.chad.library.adapter.base.BaseQuickAdapter; import com.kmilesaway.golfbat.R; import com.kmilesaway.golfbat.adapter.ScheduleFragmentAdapter; import com.kmilesaway.golfbat.base.BaseApplication; import com.kmilesaway.golfbat.base.BaseMvpFragment; import com.kmilesaway.golfbat.bean.BagStorageBean; import com.kmilesaway.golfbat.bean.CutCaddieBean; import com.kmilesaway.golfbat.bean.HotUpdateBean; import com.kmilesaway.golfbat.bean.MsgWs; import com.kmilesaway.golfbat.bean.ScheduleServiceBean; import com.kmilesaway.golfbat.bean.UserBean; import com.kmilesaway.golfbat.bean.WsSetBean; import com.kmilesaway.golfbat.contract.ScheduleContract; import com.kmilesaway.golfbat.net.MainConstant; import com.kmilesaway.golfbat.presenter.SchedulePresenter; import com.kmilesaway.golfbat.service.BackService; import com.kmilesaway.golfbat.service.DaemonService; import com.kmilesaway.golfbat.ui.dialog.ServiceHintDialog; import com.kmilesaway.golfbat.ui.home.ballaffirm.BallAffirmActivity; import com.kmilesaway.golfbat.ui.home.balloffice.RangingScoringActivity; import com.kmilesaway.golfbat.ui.match.MatchSelectListActivity; import com.kmilesaway.golfbat.utils.AppUtils; import com.kmilesaway.golfbat.utils.DateUtils; import com.kmilesaway.golfbat.utils.EventBusUtils; import com.kmilesaway.golfbat.utils.EventCode; import com.kmilesaway.golfbat.utils.EventMessage; import com.kmilesaway.golfbat.utils.RegexUtils; import com.kmilesaway.golfbat.utils.SPUtils; import com.kmilesaway.golfbat.utils.ToastUtils; import com.kmilesaway.golfbat.utils.UiUtils; import com.kmilesaway.golfbat.weight.MyDialog; import com.kmilesaway.golfbat.weight.NavigationDialog; import com.kmilesaway.golfbat.weight.RoundImageView; import com.kmilesaway.golfbat.weight.SpacesItemDecoration; import com.kmilesaway.golfbat.weight.calender.GetDateBean; import com.kmilesaway.golfbat.weight.calender.MNCalendar; import com.kmilesaway.golfbat.weight.listener.OnCalendarChangeListener; import com.lxj.xpopup.XPopup; import com.permissionx.guolindev.PermissionX; import com.permissionx.guolindev.callback.ExplainReasonCallback; import com.permissionx.guolindev.callback.ForwardToSettingsCallback; import com.permissionx.guolindev.callback.RequestCallback; import com.permissionx.guolindev.request.ExplainScope; import com.permissionx.guolindev.request.ForwardScope; import com.scwang.smart.refresh.header.ClassicsHeader; import com.scwang.smart.refresh.layout.SmartRefreshLayout; import com.scwang.smart.refresh.layout.api.RefreshLayout; import com.scwang.smart.refresh.layout.listener.OnRefreshListener; import java.io.Serializable; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import butterknife.BindView; import butterknife.OnClick; /** * @author lisong * @date 2022/2/8. * GitHub: * Email: * Description:日程 */ public class ScheduleFragment extends BaseMvpFragment<SchedulePresenter> implements ScheduleContract.View, OnButtonClickListener { @BindView(R.id.rcy) RecyclerView rcy; @BindView(R.id.refreshLayout) SmartRefreshLayout refreshLayout; /*下线*/ @BindView(R.id.Offline) TextView Offline; /*上线*/ @BindView(R.id.goonline) TextView goonline; /*姓名*/ @BindView(R.id.name) TextView name; @BindView(R.id.roundimagview) RoundImageView roundimagview; /*工号*/ @BindView(R.id.jobnumber) TextView jobnumber; /*任务数量*/ @BindView(R.id.task_number) TextView taskNumber; @BindView(R.id.tvSchedulingPlan) TextView tvSchedulingPlan; private ScheduleFragmentAdapter adapter; private int status;// 1-上线 0-下线 private int userId; private DownloadManager manager; private boolean is_force_update; private int pos; private boolean isOnResume; private NavigationDialog timebottomSheetDialog; private List<GetDateBean.MonthBean> monthList = new ArrayList<>(); private String date, time; private MNCalendar mnCalendar; private List<ScheduleServiceBean> scheduleList = new ArrayList<>(); @Override protected int getLayoutId() { return R.layout.fragment_schedule; } @Override protected void initView(View view) { date = DateUtils.getSystemTimes(); time = DateUtils.dataY_M_D(date); ServiceSettings.updatePrivacyShow(getActivity(), true, true); ServiceSettings.updatePrivacyAgree(getActivity(), true); // EventBusUtils.post(new EventMessage<>(EventCode.EVENT_SOCKET, "refresh")); rcy.setLayoutManager(new LinearLayoutManager(getActivity())); adapter = new ScheduleFragmentAdapter(); View emptyView = LayoutInflater.from(getContext()).inflate(R.layout.no_data, null, false); adapter.setEmptyView(emptyView); rcy.setAdapter(adapter); rcy.addItemDecoration(new SpacesItemDecoration(UiUtils.dip2px(getActivity(), 6))); adapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { @Override public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { switch (view.getId()) { case R.id.entergame: permissionMain(position); // if (!isLocServiceEnable()) { // MyDialog dialog = new MyDialog(getActivity(), R.style.mdialog, // new MyDialog.OncloseListener() { // @Override // public void onClick(boolean confirm) { // if (confirm) { // Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); // startActivity(intent); // } // } // }).setTitle("提示").setContent("请开启定位服务").setNegativeButton("取消").setPositiveButton("开启"); // dialog.show(); // } else { // requestPermission(position); // } break; case R.id.bag_check: // ToastUtils.show(getActivity(),"功能暂未开放"); saveBag(position, 0, ScheduleFragment.this.adapter.getData().get(position).getAppointment_id()); break; case R.id.bag_check1: // ToastUtils.show(getActivity(),"功能暂未开放"); saveBag(position, 1, ScheduleFragment.this.adapter.getData().get(position).getAppointment_id()); break; case R.id.bag_check2: // ToastUtils.show(getActivity(),"功能暂未开放"); saveBag(position, 2, ScheduleFragment.this.adapter.getData().get(position).getAppointment_id()); break; case R.id.bag_check3: // ToastUtils.show(getActivity(),"功能暂未开放"); saveBag(position, 3, ScheduleFragment.this.adapter.getData().get(position).getAppointment_id()); break; case R.id.take_away: confirmGan(position, 0); break; case R.id.take_away1: confirmGan(position, 1); break; case R.id.take_away2: confirmGan(position, 2); break; case R.id.take_away3: confirmGan(position, 3); break; } } }); refreshLayout.setRefreshHeader(new ClassicsHeader(getActivity())); refreshLayout.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh(RefreshLayout refreshlayout) { mPresenter.scheduleService(); mPresenter.user(); refreshLayout.finishRefresh(1000); } }); } private void permissionMain(int position) { PermissionX.init(this) .permissions( Manifest.permission.ACCESS_NETWORK_STATE) .request((allGranted, grantedList, deniedList) -> { Log.e("Tag=======", "allGranted====="+allGranted); if (allGranted) { if (!isLocServiceEnable()) { MyDialog dialog = new MyDialog(getActivity(), R.style.mdialog, new MyDialog.OncloseListener() { @Override public void onClick(boolean confirm) { if (confirm) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(intent); } } }).setTitle("提示").setContent("请开启定位服务").setNegativeButton("取消").setPositiveButton("开启"); dialog.show(); } else { requestPermission(position); } // Toast.makeText(this, "所有申请的权限都已通过", Toast.LENGTH_SHORT).show(); } else { // Toast.makeText(this, "您拒绝了如下权限:$deniedList", Toast.LENGTH_SHORT).show(); // permissionMain(position); } }); } // 修改权限请求流程 private void requestPermission(int position) { // 先显示提示弹窗 showLocationPermissionHint(); // 立即请求系统权限 requestSystemLocationPermission(position); } // 修改系统权限请求方法 private void requestSystemLocationPermission(int position) { PermissionX.init(this).permissions(Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION) .onExplainRequestReason(new ExplainReasonCallback() { @Override public void onExplainReason(ExplainScope explainScope, List<String> list) { // 系统解释弹窗显示时,关闭我们的提示弹窗 if (locationPermissionPopup != null && locationPermissionPopup.isShowing()) { locationPermissionPopup.dismiss(); } explainScope.showRequestReasonDialog(list, "您已拒绝了定位权限,为了您更好的使用应用,请重新打开", "去开启", "取消"); } }).onForwardToSettings(new ForwardToSettingsCallback() { @Override public void onForwardToSettings(ForwardScope forwardScope, List<String> list) { forwardScope.showForwardToSettingsDialog(list, "您需要去应用程序设置当中手动开启定位权限", "去开启", "取消"); } }).request(new RequestCallback() { @Override public void onResult(boolean allGranted, List<String> list, List<String> list1) { // 权限请求完成,关闭提示弹窗 if (locationPermissionPopup != null && locationPermissionPopup.isShowing()) { locationPermissionPopup.dismiss(); } if (allGranted) { ArrayList<Integer> ids = new ArrayList<>(); for (ScheduleServiceBean.PersonDataBean item : scheduleList.get(position).getPerson_data()) { ids.add(item.getPerson_id()); } mPresenter.existTeeTime(scheduleList.get(position).getAppointment_id(), ids); } } }); } // 在onDestroy中清理资源 @Override public void onDestroy() { super.onDestroy(); if (locationPermissionPopup != null && locationPermissionPopup.isShowing()) { locationPermissionPopup.dismiss(); } locationPermissionPopup = null; } /** * 是否打开定位服务 * * @return */ private boolean isLocServiceEnable() { LocationManager locationManager = (LocationManager) BaseApplication.getApplication() .getSystemService(Context.LOCATION_SERVICE); boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); return gps || network; } private void saveBag(int position, int index, int appId) { ScheduleServiceBean.PersonDataBean personDataBean = adapter.getData().get(position).getPerson_data().get(index); if (personDataBean.getPerson_state() == 0) { ToastUtils.show(getActivity(), "请先确认球杆,再进行存包"); return; } if (personDataBean.getBag() != null) { if (TextUtils.equals(personDataBean.getBag(), "0") || TextUtils.equals(personDataBean.getBag(), "存包")) { showCheckDialog(personDataBean.getName(), personDataBean.getTel(), personDataBean.getPerson_id(), adapter.getData().get(position).getClient_id(), appId); } else { //展示取包提示框 showFetchingBag(personDataBean.getBag_num() + "", personDataBean.getPerson_id(), personDataBean.getName(), personDataBean.getTel(), appId); } } else { showCheckDialog(personDataBean.getName(), personDataBean.getTel(), personDataBean.getPerson_id(), adapter.getData().get(position).getClient_id(), appId); } } private void confirmGan(int position, int index) { try { int bagType = 0; startActivity(new Intent(getActivity(), BallAffirmActivity.class).putExtra("person_id", adapter.getData().get(position).getPerson_data().get(index).getPerson_id()) .putExtra("app_id", adapter.getData().get(position).getAppointment_id()) .putExtra("bagType", bagType) .putExtra("phone", adapter.getData().get(position).getPerson_data().get(index).getTel())); } catch (Exception e) { e.printStackTrace(); } } private void setRefreshDate() { refreshLayout.autoRefresh(); } @Override protected void loadNetData() { //进入到当前Fragment mPresenter = new SchedulePresenter(); mPresenter.attachView(this); mPresenter.user(); mPresenter.scheduleService(); // mPresenter.hotUpdate(); // mPresenter.getWsSetting(); } @Override public void onError(String errMessage, int errCode) { // super.onError(errMessage, errCode); if (errCode == 999) { new MyDialog(requireActivity(),false, R.style.mdialog, new MyDialog.OncloseListener() { @Override public void onClick(boolean confirm) { mPresenter.scheduleService(); } }).setTitle("提示").setContent("服务单信息已变更,请重新进入服务单").setPositiveButton("知道了").show(); } } @Override public void onSwitchStateSuccess(int errno) { if (status == 0) { ToastUtils.show(getActivity(), "下线成功"); EventBusUtils.post(new EventMessage<>(EventCode.EVENT_SERVICE_STOP, "refresh")); } else { ToastUtils.show(getActivity(), "上线成功"); //EventBusUtils.post(new EventMessage<>(EventCode.EVENT_SERVICE_START, "refresh")); } onLine(status); } @Override public void onScheduleServiceSuccess(List<ScheduleServiceBean> bean) { refreshLayout.finishRefresh(); scheduleList.clear(); if (bean != null) { scheduleList.addAll(bean); } adapter.setNewData(scheduleList); taskNumber.setText("今日日程(" + scheduleList.size() + ")"); } @Override public void onHistoryTripSuccess(List<ScheduleServiceBean> list) { } @Override public void onUserSuccess(UserBean bean) { LogUtils.d("ScheduleFragment.onUserSuccess: " + bean.getClient_id()); MainConstant.BESE_CLIENT_ID = bean.getClient_id() + ""; SPUtils.getInstance().put(MainConstant.CLIENT_ID, bean.getClient_id()); SPUtils.getInstance().put(MainConstant.ID, bean.getId()); SPUtils.getInstance().put(MainConstant.JOB_NUM, bean.getJob_num()); SPUtils.getInstance().put(MainConstant.CADDIE_HEAD_IMAGE, bean.getImage()); SPUtils.getInstance().put(MainConstant.CADDIE_NAME, bean.getCaddie_name()); SPUtils.getInstance().put(MainConstant.WHETHER_ONLINE, bean.getWhether_online()); Glide.with(getActivity()) .load(bean.getImage()) .placeholder(R.mipmap.user_logo) .error(R.mipmap.user_logo) .into(roundimagview); name.setText(bean.getCaddie_name()); jobnumber.setText(String.format("球童号: %s", bean.getCaddie_num())); userId = bean.getId(); status = bean.getWhether_online(); if (bean.getCaddie_name().startsWith("[车]") || bean.getCaddie_name().startsWith("[船]")) { SPUtils.getInstance().put(MainConstant.MAP, true); if (!isServiceWork(getActivity(), "com.kmilesaway.golfbat.service.DaemonService")) { getActivity().stopService(new Intent(getActivity(), DaemonService.class)); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { getActivity().startForegroundService(new Intent(getActivity(), DaemonService.class)); } else { getActivity().startService(new Intent(getActivity(), DaemonService.class)); } } } } @Override public void onHotUpdateSuccess(HotUpdateBean bean) { if (AppUtils.getVersionName(getActivity()).compareTo(bean.getVersion_name()) < 0) { startUpdate(bean); } } @Override public void onCutCaddieSuccess(CutCaddieBean bean) { SPUtils.getInstance().put(MainConstant.MAP, true); if (!isServiceWork(getActivity(), "com.kmilesaway.golfbat.service.DaemonService")) { getActivity().stopService(new Intent(getActivity(), DaemonService.class)); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { getActivity().startForegroundService(new Intent(getActivity(), DaemonService.class)); } else { getActivity().startService(new Intent(getActivity(), DaemonService.class)); } } MapsInitializer.updatePrivacyShow(getContext(), true, true); MapsInitializer.updatePrivacyAgree(getContext(), true); ScheduleServiceBean scheduleServiceBean = adapter.getData().get(pos); Intent intent = new Intent(getContext(), RangingScoringActivity.class); intent.putExtra("orderRef", scheduleServiceBean.getOrder_ref()); intent.putExtra("clientId", scheduleServiceBean.getClient_id()); String updatedAt = scheduleServiceBean.getUpdated_at(); String datePart = updatedAt; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// HH:mm:ss try { Date date = formatter.parse(updatedAt); SimpleDateFormat dateOnlyFormatter = new SimpleDateFormat("yyyy-MM-dd"); datePart = dateOnlyFormatter.format(date); datePart = datePart + " " + scheduleServiceBean.getOut_time(); } catch (ParseException ignored) { } intent.putExtra("play_time", datePart); intent.putExtra("group_num", scheduleServiceBean.getGroup_id()); intent.putExtra("app_id", scheduleServiceBean.getAppointment_id()); intent.putExtra("name", scheduleServiceBean.getClient_name()); intent.putExtra("state", bean.getStatus()); intent.putExtra("person_list", (Serializable) scheduleServiceBean.getPerson_data()); startActivity(intent); } @Override public void onBagStorageSuccess(BagStorageBean bean) { if (bean != null) { showNumDialog(bean.getStatus(), bean.getBag_num() + ""); } } @Override public void onWsSettingSuccess(WsSetBean bean) { SPUtils.getInstance().put("IP", bean.getWs_ip()); SPUtils.getInstance().put("Host", bean.getWs_port()); getActivity().stopService(new Intent(getActivity(), BackService.class)); if (!isServiceWork(getActivity(), "com.kmilesaway.golfbat.service.BackService")) { getActivity().startService(new Intent(getActivity(), BackService.class)); } } @Override public void getBallBagAwaySuccess(Object bean) { } @Override public void getLayoutPlanSuccess(List<String> data) { if (mnCalendar != null) { mnCalendar.addEventDates(data); } } @Override public void showSaveBagErrorDialog(String msg) { showNumDialog(2, msg); } @Override public void onFetchingBagSuccess() { setRefreshDate(); } @Override public void onExistTeeTimeSuccess() { SPUtils.getInstance().put(MainConstant.APPOINTMENT_ID, ScheduleFragment.this.adapter.getData().get(pos).getAppointment_id()); mPresenter.cutCaddie(ScheduleFragment.this.adapter.getData().get(pos).getAppointment_id()); } @Override public void onEndPersonBallByCaddySuccess() { } @Override public void onRestoreServiceSuccess() { } @Override public void onMsgWsSuccess(MsgWs bean) { } @OnClick({R.id.Offline, R.id.goonline, R.id.tvSchedulingPlan, R.id.tvMatchScoring}) public void onViewClicked(View view) { switch (view.getId()) { /*下线*/ case R.id.Offline: status = 0; //onLine(status); mPresenter.switchState(status, userId); break; /*上线*/ case R.id.goonline: status = 1; //onLine(status); mPresenter.switchState(status, userId); break; case R.id.tvMatchScoring: Intent intent = new Intent(getContext(), MatchSelectListActivity.class); startActivity(intent); break; case R.id.tvSchedulingPlan: // startActivity(new Intent(getContext(), ClickToPurchaseActivity.class)); if (timebottomSheetDialog != null) { timebottomSheetDialog.dismiss(); } timebottomSheetDialog = new NavigationDialog(getContext(), R.style.BottomDialog); //设置退出速度 timebottomSheetDialog.outDuration(100); timebottomSheetDialog.inDuration(100); //设置铺满 timebottomSheetDialog.heightParam(ViewGroup.LayoutParams.WRAP_CONTENT); //解析视图 View contentView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_mncalendar, null); /*日历*/ mnCalendar = contentView.findViewById(R.id.mnCalendar); mnCalendar.setOnCalendarChangeListener(new OnCalendarChangeListener() { @Override public void onPageChange(int year, int month) { mPresenter.getLayoutPlan(year, month); } }); mnCalendar.setCurrentPager(); monthList.clear(); GetDateBean.MonthBean monthBean = new GetDateBean.MonthBean(); monthBean.setDay(date); monthBean.setStatus(99); monthList.add(monthBean); try { mnCalendar.setEventDatas(monthList); } catch (ParseException e) { e.printStackTrace(); } timebottomSheetDialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { mnCalendar = null; } }); //设置视图 timebottomSheetDialog.setContentView(contentView); //百度 timebottomSheetDialog.show(); break; default: break; } } @Override protected boolean isRegisteredEventBus() { return true; } private void onLine(int status) { switch (status) { case 1: goonline.setBackgroundResource(R.drawable.translucent_6_328e8e); Offline.setBackground(null); goonline.setTextColor(getActivity().getResources().getColor(R.color.white)); Offline.setTextColor(getActivity().getResources().getColor(R.color.translucent_50_white)); break; case 0: Offline.setBackgroundResource(R.drawable.translucent_6_328e8e); goonline.setBackground(null); Offline.setTextColor(getActivity().getResources().getColor(R.color.white)); goonline.setTextColor(getActivity().getResources().getColor(R.color.translucent_50_white)); getActivity().stopService(new Intent(getActivity(), DaemonService.class)); break; } } @Override public void onButtonClick(int id) { } private void startUpdate(HotUpdateBean bean) { if (bean.getIs_force_update() == 0) { is_force_update = false; } else { is_force_update = true; } /* * 整个库允许配置的内容 * 非必选 */ UpdateConfiguration configuration = new UpdateConfiguration() //输出错误日志 .setEnableLog(true) //设置自定义的下载 //.setHttpManager() //下载完成自动跳动安装页面 .setJumpInstallPage(true) //设置对话框背景图片 (图片规范参照demo中的示例图) .setDialogImage(R.drawable.ic_dialog_default) // 设置按钮的颜色 .setDialogButtonColor(Color.parseColor("#1DBCA1")) //// 设置对话框强制更新时进度条和文字的颜色 // .setDialogProgressBarColor(Color.parseColor("#E743DA")) //设置按钮的文字颜色 .setDialogButtonTextColor(Color.WHITE) //设置是否显示通知栏进度 .setShowNotification(true) //设置是否提示后台下载toast .setShowBgdToast(true) //设置是否上报数据 .setUsePlatform(true) //设置强制更新 .setForcedUpgrade(is_force_update) //设置对话框按钮的点击监听 .setButtonClickListener(this) //设置下载过程的监听 .setOnDownloadListener(listenerAdapter); manager = DownloadManager.getInstance(getActivity()); manager.setApkName("golfbat.apk") .setApkUrl(bean.getUrl()) .setSmallIcon(R.mipmap.login_logo) .setShowNewerToast(true) .setConfiguration(configuration) .setApkVersionCode(2) .setApkVersionName(bean.getVersion_name()) .setApkSize(bean.getSize()) .setApkDescription(bean.getMsg()) // .setApkMD5("db18e57e01e5bb2408116c1689f25ca7") .download(); } private OnDownloadListenerAdapter listenerAdapter = new OnDownloadListenerAdapter() { /** * 下载中 * * @param max 总进度 * @param progress 当前进度 */ @Override public void downloading(int max, int progress) { int curr = (int) (progress / (double) max * 100.0); Log.d(">>>>>>>>>>>>>>>", "downloading: " + curr); } }; /** * @param mContext * @param serviceName 是包名+服务的类名(例如:net.loonggg.testbackstage.TestService) * @return true代表正在运行,false代表服务没有正在运行 */ public boolean isServiceWork(Context mContext, String serviceName) { boolean isWork = false; ActivityManager myAM = (ActivityManager) mContext .getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> myList = myAM.getRunningServices(40); if (myList.size() <= 0) { return false; } for (int i = 0; i < myList.size(); i++) { String mName = myList.get(i).service.getClassName().toString(); if (mName.equals(serviceName)) { isWork = true; break; } } return isWork; } //存包对应用户信息 private void showCheckDialog(String name, String phone, int person_id, int client_id, int appId) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.pop_bag_check, null, false); final AlertDialog dialog = new AlertDialog.Builder(getActivity(), R.style.mdialog).setView(view).create(); EditText tvName = view.findViewById(R.id.tv_name); EditText tvPhone = view.findViewById(R.id.tv_phone); tvName.setFocusable(false); tvName.setEnabled(false); if (!TextUtils.isEmpty(name)) { tvName.setText(name); tvName.setSelection(tvName.getText().length()); } if (!TextUtils.isEmpty(phone)) { tvPhone.setText(phone); tvPhone.setSelection(tvPhone.getText().length()); } TextView submit = view.findViewById(R.id.tv_commit); submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { HideKeyboard(v); if (tvPhone.getText().toString() == null || tvPhone.getText().toString().equals("")) { ToastUtils.show(getActivity(), "请输入手机号"); return; } if (!RegexUtils.isMobileExact(tvPhone.getText().toString().trim())) { ToastUtils.showShort("请输入正确的手机号"); return; } mPresenter.bagStorage(person_id, client_id, tvName.getText().toString().trim(), tvPhone.getText().toString().trim(), appId + ""); dialog.dismiss(); } }); dialog.setCanceledOnTouchOutside(true);// 设置点击屏幕Dialog不消失 dialog.setOnKeyListener(keylistener);//设置点击返回键Dialog不消失 dialog.show(); //此处设置位置窗体大小,我这里设置为了手机屏幕宽度的3/4 注意一定要在show方法调用后再写设置窗口大小的代码,否则不起效果会 dialog.getWindow().setLayout((UiUtils.getScreenWidth(getActivity()) / 4 * 3), LinearLayout.LayoutParams.WRAP_CONTENT); } private void showFetchingBag(String bag_num, int person_id, String person_name, String person_tel, int app_id) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.pop_bag_fetching, null, false); final AlertDialog dialog = new AlertDialog.Builder(getActivity(), R.style.mdialog).setView(view).create(); view.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); view.findViewById(R.id.submit).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mPresenter.fetchingBag(bag_num, person_id, person_name, person_tel, app_id); dialog.dismiss(); } }); dialog.setCanceledOnTouchOutside(true);// 设置点击屏幕Dialog不消失 dialog.setOnKeyListener(keylistener);//设置点击返回键Dialog不消失 dialog.show(); //此处设置位置窗体大小,我这里设置为了手机屏幕宽度的3/4 注意一定要在show方法调用后再写设置窗口大小的代码,否则不起效果会 dialog.getWindow().setLayout((UiUtils.getScreenWidth(getActivity()) / 4 * 3), LinearLayout.LayoutParams.WRAP_CONTENT); } //显示存包位置 private void showNumDialog(int status, String num) { View view = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_bag_check, null, false); final AlertDialog dialog = new AlertDialog.Builder(getActivity(), R.style.mdialog).setView(view).create(); TextView title = view.findViewById(R.id.tv_title); TextView tvNum = view.findViewById(R.id.tv_num); TextView tvContent = view.findViewById(R.id.tv_content); EventBusUtils.post(new EventMessage<>(EventCode.EVENT_SCHEDULE_REFRESH, "refresh")); if (status == 1) { title.setText("存包成功"); tvNum.setText(num); setRefreshDate(); } else if (status == 0) { title.setText("存包失败"); tvNum.setText(num); tvContent.setText("球包已放至指定位置"); } else if (status == 3) { title.setText("球包位置"); tvNum.setText(num); tvContent.setText("请您到指定位置取包"); } else if (status == 4) { title.setText("存包失败"); tvNum.setText(num); tvContent.setText("该手机号已有球包,请更换手机号进行存包"); } else { title.setText("存包失败"); tvNum.setVisibility(View.GONE); tvContent.setText(num); } TextView submit = view.findViewById(R.id.submit); submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.setCanceledOnTouchOutside(true);// 设置点击屏幕Dialog不消失 dialog.setOnKeyListener(keylistener);//设置点击返回键Dialog不消失 dialog.show(); //此处设置位置窗体大小,我这里设置为了手机屏幕宽度的3/4 注意一定要在show方法调用后再写设置窗口大小的代码,否则不起效果会 dialog.getWindow().setLayout((UiUtils.getScreenWidth(getActivity()) / 4 * 3), LinearLayout.LayoutParams.WRAP_CONTENT); } //取包 private void showTakeAwayDialog() { View view = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_take_away, null, false); final AlertDialog dialog = new AlertDialog.Builder(getActivity(), R.style.mdialog).setView(view).create(); TextView submit = view.findViewById(R.id.submit); submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); TextView cancel = view.findViewById(R.id.cancel); cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.setCanceledOnTouchOutside(true);// 设置点击屏幕Dialog不消失 dialog.setOnKeyListener(keylistener);//设置点击返回键Dialog不消失 dialog.show(); //此处设置位置窗体大小,我这里设置为了手机屏幕宽度的3/4 注意一定要在show方法调用后再写设置窗口大小的代码,否则不起效果会 dialog.getWindow().setLayout((UiUtils.getScreenWidth(getActivity()) / 4 * 3), LinearLayout.LayoutParams.WRAP_CONTENT); } DialogInterface.OnKeyListener keylistener = new DialogInterface.OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { return true; } else { return false; } } }; //隐藏虚拟键盘 public static void HideKeyboard(View v) { InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive()) { imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0); } } /** * 接收到分发的事件 * * @param event 事件 */ @Override protected void receiveEvent(EventMessage event) { switch (event.getCode()) { case EventCode.EVENT_SCHEDULE_REFRESH: mPresenter.scheduleService(); break; } } @Override public void onHiddenChanged(boolean hidden) { super.onHiddenChanged(hidden); Log.d("yanjin", "hidden = " + hidden); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isOnResume && isVisibleToUser) { refreshLayout.autoRefresh(); Log.d("yanjin", "isVisibleToUser = " + isVisibleToUser); } } @Override public void onResume() { super.onResume(); isOnResume = true; } public void onRestart() { refreshLayout.autoRefresh(); Log.d("yanjin", "onRestart = "); } // 在类顶部添加变量 private PopupWindow locationPermissionPopup; // 添加显示权限提示弹窗的方法 private void showLocationPermissionHint() { if (locationPermissionPopup != null && locationPermissionPopup.isShowing()) { locationPermissionPopup.dismiss(); } View popupView = LayoutInflater.from(getActivity()).inflate(R.layout.popup_location_permission_hint, null); locationPermissionPopup = new PopupWindow( popupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT ); // 设置PopupWindow属性 locationPermissionPopup.setFocusable(false); locationPermissionPopup.setOutsideTouchable(false); locationPermissionPopup.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); // 显示在顶部 View rootView = getActivity().getWindow().getDecorView(); locationPermissionPopup.showAtLocation(rootView, Gravity.TOP, 0, UiUtils.dip2px(getActivity(), 16)); } }
最新发布
09-23
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值