diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5fdaf66..6c30583 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Message; import android.util.Log; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; @@ -18,9 +19,11 @@ import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; +import com.casic.dcms.base.BaseApplication; import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; import com.casic.dcms.mvp.view.IPushRegisterView; @@ -55,6 +58,8 @@ NoScrollViewPager mainViewPager; @BindView(R.id.bottomNavigation) BottomNavigationView bottomNavigation; + @BindView(R.id.messageNumView) + TextView messageNumView; private MenuItem menuItem; private List pageList; @@ -82,6 +87,7 @@ weakReferenceHandler = new WeakReferenceHandler(this); uploadPositionPresenter = new UploadPositionPresenterImpl(this); registerPresenter = new PushRegisterPresenterImpl(this); + pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -94,6 +100,7 @@ } else { startService(new Intent(this, UploadLocationService.class)); } + updateMessageNumber(); } @Override @@ -189,7 +196,9 @@ mainActivity.registerPresenter.onReadyRetrofitRequest(clientId); break; case Constant.PUSH_CREATE_NOTIFICATION: - Log.d(TAG, "创建通知栏"); + //显示小红点 + mainActivity.updateMessageNumber(); + NoticeBean noticeBean = (NoticeBean) msg.obj; if (null == noticeBean) { return; @@ -202,8 +211,10 @@ CaseDetailActivity.class); notificationHelper.push(1, notification); break; + case Constant.MESSAGE_NUMBER: + mainActivity.updateMessageNumber(); + break; case Constant.UPLOAD_LOCATION: - Log.d(TAG, "位置上报"); AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); @@ -219,6 +230,22 @@ } } + private void updateMessageNumber() { + List list = BaseApplication.getDaoSession() + .queryBuilder(NoticeBean.class) + .where(NoticeBeanDao.Properties.IsRead.eq("1")) + .list(); + int size = list.size(); + if (size <= 0) { + messageNumView.setVisibility(View.GONE); + } else if (size > 9) { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText("9+"); + } else { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText(String.valueOf(size)); + } + } @Override public void obtainUploadPositionResult(ActionResultBean resultBean) { diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5fdaf66..6c30583 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Message; import android.util.Log; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; @@ -18,9 +19,11 @@ import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; +import com.casic.dcms.base.BaseApplication; import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; import com.casic.dcms.mvp.view.IPushRegisterView; @@ -55,6 +58,8 @@ NoScrollViewPager mainViewPager; @BindView(R.id.bottomNavigation) BottomNavigationView bottomNavigation; + @BindView(R.id.messageNumView) + TextView messageNumView; private MenuItem menuItem; private List pageList; @@ -82,6 +87,7 @@ weakReferenceHandler = new WeakReferenceHandler(this); uploadPositionPresenter = new UploadPositionPresenterImpl(this); registerPresenter = new PushRegisterPresenterImpl(this); + pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -94,6 +100,7 @@ } else { startService(new Intent(this, UploadLocationService.class)); } + updateMessageNumber(); } @Override @@ -189,7 +196,9 @@ mainActivity.registerPresenter.onReadyRetrofitRequest(clientId); break; case Constant.PUSH_CREATE_NOTIFICATION: - Log.d(TAG, "创建通知栏"); + //显示小红点 + mainActivity.updateMessageNumber(); + NoticeBean noticeBean = (NoticeBean) msg.obj; if (null == noticeBean) { return; @@ -202,8 +211,10 @@ CaseDetailActivity.class); notificationHelper.push(1, notification); break; + case Constant.MESSAGE_NUMBER: + mainActivity.updateMessageNumber(); + break; case Constant.UPLOAD_LOCATION: - Log.d(TAG, "位置上报"); AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); @@ -219,6 +230,22 @@ } } + private void updateMessageNumber() { + List list = BaseApplication.getDaoSession() + .queryBuilder(NoticeBean.class) + .where(NoticeBeanDao.Properties.IsRead.eq("1")) + .list(); + int size = list.size(); + if (size <= 0) { + messageNumView.setVisibility(View.GONE); + } else if (size > 9) { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText("9+"); + } else { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText(String.valueOf(size)); + } + } @Override public void obtainUploadPositionResult(ActionResultBean resultBean) { diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index a714dbc..2729958 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -8,6 +8,7 @@ import com.bin.david.form.core.SmartTable; import com.bin.david.form.core.TableConfig; import com.bin.david.form.data.style.FontStyle; +import com.bin.david.form.data.style.LineStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.EventSourceBean; @@ -92,10 +93,25 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { + for (int i = 0; i < dataBeanList.size() - 1; i++) { EventSourceBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getEventNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + String caseNum = dataBean.getCaseNum(); + //表格数据需要把0的加进去,饼图不需要 + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum))); + } + dataTableView.setData(excelDataBeans); + initTableConfig(); + } + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); } dataTableView.setData(excelDataBeans); initTableConfig(); @@ -115,21 +131,7 @@ config.setShowTableTitle(false);//不显示标题 config.setShowXSequence(false);//不显示横向ABC....序列 config.setShowYSequence(false);//不显示纵向123....序列 - config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); - } - - @Override - public void obtainHighEventResult(HighEventBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { - HighEventBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getCaseNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(eventNum))); - } - dataTableView.setData(excelDataBeans); - initTableConfig(); - } + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5fdaf66..6c30583 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Message; import android.util.Log; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; @@ -18,9 +19,11 @@ import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; +import com.casic.dcms.base.BaseApplication; import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; import com.casic.dcms.mvp.view.IPushRegisterView; @@ -55,6 +58,8 @@ NoScrollViewPager mainViewPager; @BindView(R.id.bottomNavigation) BottomNavigationView bottomNavigation; + @BindView(R.id.messageNumView) + TextView messageNumView; private MenuItem menuItem; private List pageList; @@ -82,6 +87,7 @@ weakReferenceHandler = new WeakReferenceHandler(this); uploadPositionPresenter = new UploadPositionPresenterImpl(this); registerPresenter = new PushRegisterPresenterImpl(this); + pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -94,6 +100,7 @@ } else { startService(new Intent(this, UploadLocationService.class)); } + updateMessageNumber(); } @Override @@ -189,7 +196,9 @@ mainActivity.registerPresenter.onReadyRetrofitRequest(clientId); break; case Constant.PUSH_CREATE_NOTIFICATION: - Log.d(TAG, "创建通知栏"); + //显示小红点 + mainActivity.updateMessageNumber(); + NoticeBean noticeBean = (NoticeBean) msg.obj; if (null == noticeBean) { return; @@ -202,8 +211,10 @@ CaseDetailActivity.class); notificationHelper.push(1, notification); break; + case Constant.MESSAGE_NUMBER: + mainActivity.updateMessageNumber(); + break; case Constant.UPLOAD_LOCATION: - Log.d(TAG, "位置上报"); AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); @@ -219,6 +230,22 @@ } } + private void updateMessageNumber() { + List list = BaseApplication.getDaoSession() + .queryBuilder(NoticeBean.class) + .where(NoticeBeanDao.Properties.IsRead.eq("1")) + .list(); + int size = list.size(); + if (size <= 0) { + messageNumView.setVisibility(View.GONE); + } else if (size > 9) { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText("9+"); + } else { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText(String.valueOf(size)); + } + } @Override public void obtainUploadPositionResult(ActionResultBean resultBean) { diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index a714dbc..2729958 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -8,6 +8,7 @@ import com.bin.david.form.core.SmartTable; import com.bin.david.form.core.TableConfig; import com.bin.david.form.data.style.FontStyle; +import com.bin.david.form.data.style.LineStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.EventSourceBean; @@ -92,10 +93,25 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { + for (int i = 0; i < dataBeanList.size() - 1; i++) { EventSourceBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getEventNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + String caseNum = dataBean.getCaseNum(); + //表格数据需要把0的加进去,饼图不需要 + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum))); + } + dataTableView.setData(excelDataBeans); + initTableConfig(); + } + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); } dataTableView.setData(excelDataBeans); initTableConfig(); @@ -115,21 +131,7 @@ config.setShowTableTitle(false);//不显示标题 config.setShowXSequence(false);//不显示横向ABC....序列 config.setShowYSequence(false);//不显示纵向123....序列 - config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); - } - - @Override - public void obtainHighEventResult(HighEventBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { - HighEventBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getCaseNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(eventNum))); - } - dataTableView.setData(excelDataBeans); - initTableConfig(); - } + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 4d84e64..f2dcb62 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -21,6 +21,7 @@ import com.casic.dcms.greendao.DaoSession; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.ui.CaseDetailActivity; +import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.igexin.sdk.message.GTTransmitMessage; @@ -78,7 +79,11 @@ QMUIRVItemSwipeAction swipeAction = new QMUIRVItemSwipeAction(true, new QMUIRVItemSwipeAction.Callback() { @Override public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = viewHolder.getAdapterPosition(); + viewHolder.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); } @@ -91,6 +96,9 @@ @Override public void onClickAction(QMUIRVItemSwipeAction swipeAction, RecyclerView.ViewHolder selected, QMUISwipeAction action) { super.onClickAction(swipeAction, selected, action); + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = selected.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); @@ -108,6 +116,9 @@ swipeViewAdapter.setOnItemClickListener(new SwipeViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + //点击之后之后,未读消息变为已读消息 NoticeBean noticeBean = noticeBeans.get(position); noticeBean.setIsRead("0"); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5fdaf66..6c30583 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Message; import android.util.Log; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; @@ -18,9 +19,11 @@ import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; +import com.casic.dcms.base.BaseApplication; import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; import com.casic.dcms.mvp.view.IPushRegisterView; @@ -55,6 +58,8 @@ NoScrollViewPager mainViewPager; @BindView(R.id.bottomNavigation) BottomNavigationView bottomNavigation; + @BindView(R.id.messageNumView) + TextView messageNumView; private MenuItem menuItem; private List pageList; @@ -82,6 +87,7 @@ weakReferenceHandler = new WeakReferenceHandler(this); uploadPositionPresenter = new UploadPositionPresenterImpl(this); registerPresenter = new PushRegisterPresenterImpl(this); + pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -94,6 +100,7 @@ } else { startService(new Intent(this, UploadLocationService.class)); } + updateMessageNumber(); } @Override @@ -189,7 +196,9 @@ mainActivity.registerPresenter.onReadyRetrofitRequest(clientId); break; case Constant.PUSH_CREATE_NOTIFICATION: - Log.d(TAG, "创建通知栏"); + //显示小红点 + mainActivity.updateMessageNumber(); + NoticeBean noticeBean = (NoticeBean) msg.obj; if (null == noticeBean) { return; @@ -202,8 +211,10 @@ CaseDetailActivity.class); notificationHelper.push(1, notification); break; + case Constant.MESSAGE_NUMBER: + mainActivity.updateMessageNumber(); + break; case Constant.UPLOAD_LOCATION: - Log.d(TAG, "位置上报"); AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); @@ -219,6 +230,22 @@ } } + private void updateMessageNumber() { + List list = BaseApplication.getDaoSession() + .queryBuilder(NoticeBean.class) + .where(NoticeBeanDao.Properties.IsRead.eq("1")) + .list(); + int size = list.size(); + if (size <= 0) { + messageNumView.setVisibility(View.GONE); + } else if (size > 9) { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText("9+"); + } else { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText(String.valueOf(size)); + } + } @Override public void obtainUploadPositionResult(ActionResultBean resultBean) { diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index a714dbc..2729958 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -8,6 +8,7 @@ import com.bin.david.form.core.SmartTable; import com.bin.david.form.core.TableConfig; import com.bin.david.form.data.style.FontStyle; +import com.bin.david.form.data.style.LineStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.EventSourceBean; @@ -92,10 +93,25 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { + for (int i = 0; i < dataBeanList.size() - 1; i++) { EventSourceBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getEventNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + String caseNum = dataBean.getCaseNum(); + //表格数据需要把0的加进去,饼图不需要 + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum))); + } + dataTableView.setData(excelDataBeans); + initTableConfig(); + } + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); } dataTableView.setData(excelDataBeans); initTableConfig(); @@ -115,21 +131,7 @@ config.setShowTableTitle(false);//不显示标题 config.setShowXSequence(false);//不显示横向ABC....序列 config.setShowYSequence(false);//不显示纵向123....序列 - config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); - } - - @Override - public void obtainHighEventResult(HighEventBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { - HighEventBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getCaseNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(eventNum))); - } - dataTableView.setData(excelDataBeans); - initTableConfig(); - } + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 4d84e64..f2dcb62 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -21,6 +21,7 @@ import com.casic.dcms.greendao.DaoSession; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.ui.CaseDetailActivity; +import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.igexin.sdk.message.GTTransmitMessage; @@ -78,7 +79,11 @@ QMUIRVItemSwipeAction swipeAction = new QMUIRVItemSwipeAction(true, new QMUIRVItemSwipeAction.Callback() { @Override public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = viewHolder.getAdapterPosition(); + viewHolder.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); } @@ -91,6 +96,9 @@ @Override public void onClickAction(QMUIRVItemSwipeAction swipeAction, RecyclerView.ViewHolder selected, QMUISwipeAction action) { super.onClickAction(swipeAction, selected, action); + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = selected.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); @@ -108,6 +116,9 @@ swipeViewAdapter.setOnItemClickListener(new SwipeViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + //点击之后之后,未读消息变为已读消息 NoticeBean noticeBean = noticeBeans.get(position); noticeBean.setIsRead("0"); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 2f7039d..740b722 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -92,10 +92,11 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (EventSourceBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getEventNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseSource())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource())); } } initPieChart(); @@ -106,10 +107,11 @@ public void obtainHighEventResult(HighEventBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (HighEventBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getCaseNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseType())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType())); } } initPieChart(); @@ -118,13 +120,14 @@ private void initPieChart() { pieChartView.setDragDecelerationFrictionCoef(0.95f); + pieChartView.setUsePercentValues(true);//百分比数字显示 + pieChartView.setDrawEntryLabels(false);//不显示分类标签 pieChartView.setDrawCenterText(false); pieChartView.getDescription().setEnabled(false); pieChartView.setRotationAngle(0); // enable rotation of the chart by touch pieChartView.setRotationEnabled(true); pieChartView.setHighlightPerTapEnabled(true); - pieChartView.setDrawEntryLabels(true); pieChartView.setDrawHoleEnabled(false); setChartData(); pieChartView.animateY(1000); @@ -148,14 +151,17 @@ dataSet.setSliceSpace(0f); dataSet.setSelectionShift(5f); dataSet.setColors(Constant.PIE_COLORS); - dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); - dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + //当数据太多时,将标签显示在饼图外 + if (entries.size() > 8) { + dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + } dataSet.setValueLineColor(Color.GREEN); dataSet.setValueLinePart1Length(0.6f); PieData data = new PieData(dataSet); - data.setValueFormatter(new PercentFormatter()); + data.setValueFormatter(new PercentFormatter(pieChartView));//坑:在构造PercentFormatter的时候,需要传pieChart 对象进来才能正常显示出百分号。 data.setValueTextSize(12f); - data.setValueTextColor(Color.BLUE); + data.setValueTextColor(Color.BLUE);//数据值颜色 pieChartView.setData(data); pieChartView.highlightValues(null); pieChartView.invalidate(); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5fdaf66..6c30583 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Message; import android.util.Log; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; @@ -18,9 +19,11 @@ import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; +import com.casic.dcms.base.BaseApplication; import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; import com.casic.dcms.mvp.view.IPushRegisterView; @@ -55,6 +58,8 @@ NoScrollViewPager mainViewPager; @BindView(R.id.bottomNavigation) BottomNavigationView bottomNavigation; + @BindView(R.id.messageNumView) + TextView messageNumView; private MenuItem menuItem; private List pageList; @@ -82,6 +87,7 @@ weakReferenceHandler = new WeakReferenceHandler(this); uploadPositionPresenter = new UploadPositionPresenterImpl(this); registerPresenter = new PushRegisterPresenterImpl(this); + pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -94,6 +100,7 @@ } else { startService(new Intent(this, UploadLocationService.class)); } + updateMessageNumber(); } @Override @@ -189,7 +196,9 @@ mainActivity.registerPresenter.onReadyRetrofitRequest(clientId); break; case Constant.PUSH_CREATE_NOTIFICATION: - Log.d(TAG, "创建通知栏"); + //显示小红点 + mainActivity.updateMessageNumber(); + NoticeBean noticeBean = (NoticeBean) msg.obj; if (null == noticeBean) { return; @@ -202,8 +211,10 @@ CaseDetailActivity.class); notificationHelper.push(1, notification); break; + case Constant.MESSAGE_NUMBER: + mainActivity.updateMessageNumber(); + break; case Constant.UPLOAD_LOCATION: - Log.d(TAG, "位置上报"); AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); @@ -219,6 +230,22 @@ } } + private void updateMessageNumber() { + List list = BaseApplication.getDaoSession() + .queryBuilder(NoticeBean.class) + .where(NoticeBeanDao.Properties.IsRead.eq("1")) + .list(); + int size = list.size(); + if (size <= 0) { + messageNumView.setVisibility(View.GONE); + } else if (size > 9) { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText("9+"); + } else { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText(String.valueOf(size)); + } + } @Override public void obtainUploadPositionResult(ActionResultBean resultBean) { diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index a714dbc..2729958 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -8,6 +8,7 @@ import com.bin.david.form.core.SmartTable; import com.bin.david.form.core.TableConfig; import com.bin.david.form.data.style.FontStyle; +import com.bin.david.form.data.style.LineStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.EventSourceBean; @@ -92,10 +93,25 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { + for (int i = 0; i < dataBeanList.size() - 1; i++) { EventSourceBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getEventNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + String caseNum = dataBean.getCaseNum(); + //表格数据需要把0的加进去,饼图不需要 + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum))); + } + dataTableView.setData(excelDataBeans); + initTableConfig(); + } + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); } dataTableView.setData(excelDataBeans); initTableConfig(); @@ -115,21 +131,7 @@ config.setShowTableTitle(false);//不显示标题 config.setShowXSequence(false);//不显示横向ABC....序列 config.setShowYSequence(false);//不显示纵向123....序列 - config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); - } - - @Override - public void obtainHighEventResult(HighEventBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { - HighEventBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getCaseNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(eventNum))); - } - dataTableView.setData(excelDataBeans); - initTableConfig(); - } + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 4d84e64..f2dcb62 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -21,6 +21,7 @@ import com.casic.dcms.greendao.DaoSession; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.ui.CaseDetailActivity; +import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.igexin.sdk.message.GTTransmitMessage; @@ -78,7 +79,11 @@ QMUIRVItemSwipeAction swipeAction = new QMUIRVItemSwipeAction(true, new QMUIRVItemSwipeAction.Callback() { @Override public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = viewHolder.getAdapterPosition(); + viewHolder.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); } @@ -91,6 +96,9 @@ @Override public void onClickAction(QMUIRVItemSwipeAction swipeAction, RecyclerView.ViewHolder selected, QMUISwipeAction action) { super.onClickAction(swipeAction, selected, action); + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = selected.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); @@ -108,6 +116,9 @@ swipeViewAdapter.setOnItemClickListener(new SwipeViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + //点击之后之后,未读消息变为已读消息 NoticeBean noticeBean = noticeBeans.get(position); noticeBean.setIsRead("0"); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 2f7039d..740b722 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -92,10 +92,11 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (EventSourceBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getEventNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseSource())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource())); } } initPieChart(); @@ -106,10 +107,11 @@ public void obtainHighEventResult(HighEventBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (HighEventBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getCaseNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseType())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType())); } } initPieChart(); @@ -118,13 +120,14 @@ private void initPieChart() { pieChartView.setDragDecelerationFrictionCoef(0.95f); + pieChartView.setUsePercentValues(true);//百分比数字显示 + pieChartView.setDrawEntryLabels(false);//不显示分类标签 pieChartView.setDrawCenterText(false); pieChartView.getDescription().setEnabled(false); pieChartView.setRotationAngle(0); // enable rotation of the chart by touch pieChartView.setRotationEnabled(true); pieChartView.setHighlightPerTapEnabled(true); - pieChartView.setDrawEntryLabels(true); pieChartView.setDrawHoleEnabled(false); setChartData(); pieChartView.animateY(1000); @@ -148,14 +151,17 @@ dataSet.setSliceSpace(0f); dataSet.setSelectionShift(5f); dataSet.setColors(Constant.PIE_COLORS); - dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); - dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + //当数据太多时,将标签显示在饼图外 + if (entries.size() > 8) { + dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + } dataSet.setValueLineColor(Color.GREEN); dataSet.setValueLinePart1Length(0.6f); PieData data = new PieData(dataSet); - data.setValueFormatter(new PercentFormatter()); + data.setValueFormatter(new PercentFormatter(pieChartView));//坑:在构造PercentFormatter的时候,需要传pieChart 对象进来才能正常显示出百分号。 data.setValueTextSize(12f); - data.setValueTextColor(Color.BLUE); + data.setValueTextColor(Color.BLUE);//数据值颜色 pieChartView.setData(data); pieChartView.highlightValues(null); pieChartView.invalidate(); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 036f762..b9ed8a8 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -57,6 +57,7 @@ public static final int CASE_OVERTIME_OK = 18; public static final int CASE_URGENT_OK = 19; public static final int UPLOAD_LOCATION = 20; + public static final int MESSAGE_NUMBER = 21; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5fdaf66..6c30583 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Message; import android.util.Log; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; @@ -18,9 +19,11 @@ import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; +import com.casic.dcms.base.BaseApplication; import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; import com.casic.dcms.mvp.view.IPushRegisterView; @@ -55,6 +58,8 @@ NoScrollViewPager mainViewPager; @BindView(R.id.bottomNavigation) BottomNavigationView bottomNavigation; + @BindView(R.id.messageNumView) + TextView messageNumView; private MenuItem menuItem; private List pageList; @@ -82,6 +87,7 @@ weakReferenceHandler = new WeakReferenceHandler(this); uploadPositionPresenter = new UploadPositionPresenterImpl(this); registerPresenter = new PushRegisterPresenterImpl(this); + pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -94,6 +100,7 @@ } else { startService(new Intent(this, UploadLocationService.class)); } + updateMessageNumber(); } @Override @@ -189,7 +196,9 @@ mainActivity.registerPresenter.onReadyRetrofitRequest(clientId); break; case Constant.PUSH_CREATE_NOTIFICATION: - Log.d(TAG, "创建通知栏"); + //显示小红点 + mainActivity.updateMessageNumber(); + NoticeBean noticeBean = (NoticeBean) msg.obj; if (null == noticeBean) { return; @@ -202,8 +211,10 @@ CaseDetailActivity.class); notificationHelper.push(1, notification); break; + case Constant.MESSAGE_NUMBER: + mainActivity.updateMessageNumber(); + break; case Constant.UPLOAD_LOCATION: - Log.d(TAG, "位置上报"); AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); @@ -219,6 +230,22 @@ } } + private void updateMessageNumber() { + List list = BaseApplication.getDaoSession() + .queryBuilder(NoticeBean.class) + .where(NoticeBeanDao.Properties.IsRead.eq("1")) + .list(); + int size = list.size(); + if (size <= 0) { + messageNumView.setVisibility(View.GONE); + } else if (size > 9) { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText("9+"); + } else { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText(String.valueOf(size)); + } + } @Override public void obtainUploadPositionResult(ActionResultBean resultBean) { diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index a714dbc..2729958 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -8,6 +8,7 @@ import com.bin.david.form.core.SmartTable; import com.bin.david.form.core.TableConfig; import com.bin.david.form.data.style.FontStyle; +import com.bin.david.form.data.style.LineStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.EventSourceBean; @@ -92,10 +93,25 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { + for (int i = 0; i < dataBeanList.size() - 1; i++) { EventSourceBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getEventNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + String caseNum = dataBean.getCaseNum(); + //表格数据需要把0的加进去,饼图不需要 + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum))); + } + dataTableView.setData(excelDataBeans); + initTableConfig(); + } + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); } dataTableView.setData(excelDataBeans); initTableConfig(); @@ -115,21 +131,7 @@ config.setShowTableTitle(false);//不显示标题 config.setShowXSequence(false);//不显示横向ABC....序列 config.setShowYSequence(false);//不显示纵向123....序列 - config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); - } - - @Override - public void obtainHighEventResult(HighEventBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { - HighEventBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getCaseNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(eventNum))); - } - dataTableView.setData(excelDataBeans); - initTableConfig(); - } + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 4d84e64..f2dcb62 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -21,6 +21,7 @@ import com.casic.dcms.greendao.DaoSession; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.ui.CaseDetailActivity; +import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.igexin.sdk.message.GTTransmitMessage; @@ -78,7 +79,11 @@ QMUIRVItemSwipeAction swipeAction = new QMUIRVItemSwipeAction(true, new QMUIRVItemSwipeAction.Callback() { @Override public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = viewHolder.getAdapterPosition(); + viewHolder.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); } @@ -91,6 +96,9 @@ @Override public void onClickAction(QMUIRVItemSwipeAction swipeAction, RecyclerView.ViewHolder selected, QMUISwipeAction action) { super.onClickAction(swipeAction, selected, action); + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = selected.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); @@ -108,6 +116,9 @@ swipeViewAdapter.setOnItemClickListener(new SwipeViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + //点击之后之后,未读消息变为已读消息 NoticeBean noticeBean = noticeBeans.get(position); noticeBean.setIsRead("0"); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 2f7039d..740b722 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -92,10 +92,11 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (EventSourceBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getEventNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseSource())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource())); } } initPieChart(); @@ -106,10 +107,11 @@ public void obtainHighEventResult(HighEventBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (HighEventBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getCaseNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseType())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType())); } } initPieChart(); @@ -118,13 +120,14 @@ private void initPieChart() { pieChartView.setDragDecelerationFrictionCoef(0.95f); + pieChartView.setUsePercentValues(true);//百分比数字显示 + pieChartView.setDrawEntryLabels(false);//不显示分类标签 pieChartView.setDrawCenterText(false); pieChartView.getDescription().setEnabled(false); pieChartView.setRotationAngle(0); // enable rotation of the chart by touch pieChartView.setRotationEnabled(true); pieChartView.setHighlightPerTapEnabled(true); - pieChartView.setDrawEntryLabels(true); pieChartView.setDrawHoleEnabled(false); setChartData(); pieChartView.animateY(1000); @@ -148,14 +151,17 @@ dataSet.setSliceSpace(0f); dataSet.setSelectionShift(5f); dataSet.setColors(Constant.PIE_COLORS); - dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); - dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + //当数据太多时,将标签显示在饼图外 + if (entries.size() > 8) { + dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + } dataSet.setValueLineColor(Color.GREEN); dataSet.setValueLinePart1Length(0.6f); PieData data = new PieData(dataSet); - data.setValueFormatter(new PercentFormatter()); + data.setValueFormatter(new PercentFormatter(pieChartView));//坑:在构造PercentFormatter的时候,需要传pieChart 对象进来才能正常显示出百分号。 data.setValueTextSize(12f); - data.setValueTextColor(Color.BLUE); + data.setValueTextColor(Color.BLUE);//数据值颜色 pieChartView.setData(data); pieChartView.highlightValues(null); pieChartView.invalidate(); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 036f762..b9ed8a8 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -57,6 +57,7 @@ public static final int CASE_OVERTIME_OK = 18; public static final int CASE_URGENT_OK = 19; public static final int UPLOAD_LOCATION = 20; + public static final int MESSAGE_NUMBER = 21; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java index 1b390a7..cac9edf 100644 --- a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java +++ b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java @@ -1,22 +1,21 @@ package com.casic.dcms.utils; -import android.annotation.SuppressLint; - import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Locale; /** * @author : Pengxh * @time : 2021/4/15 16:54 * @email : 290677893@qq.com **/ -@SuppressLint("SimpleDateFormat") public class TimeOrDateUtil { private static final String TAG = "TimeOrDateUtil"; - private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); - private static final SimpleDateFormat millsFormat = new SimpleDateFormat("mm:ss"); + private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); + private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss", Locale.CHINA); + private static final SimpleDateFormat minuteFormat = new SimpleDateFormat("HH:mm", Locale.CHINA); + private static final SimpleDateFormat secondsFormat = new SimpleDateFormat("mm:ss", Locale.CHINA); /** * 时间戳转完整日期时间 @@ -40,9 +39,16 @@ } /** + * 时间戳转时分 + */ + public static String minuteToTime(long millSeconds) { + return minuteFormat.format(new Date(millSeconds)); + } + + /** * 时间戳转分秒 */ public static String millsToTime(long millSeconds) { - return millsFormat.format(new Date(millSeconds)); + return secondsFormat.format(new Date(millSeconds)); } } diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5fdaf66..6c30583 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Message; import android.util.Log; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; @@ -18,9 +19,11 @@ import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; +import com.casic.dcms.base.BaseApplication; import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; import com.casic.dcms.mvp.view.IPushRegisterView; @@ -55,6 +58,8 @@ NoScrollViewPager mainViewPager; @BindView(R.id.bottomNavigation) BottomNavigationView bottomNavigation; + @BindView(R.id.messageNumView) + TextView messageNumView; private MenuItem menuItem; private List pageList; @@ -82,6 +87,7 @@ weakReferenceHandler = new WeakReferenceHandler(this); uploadPositionPresenter = new UploadPositionPresenterImpl(this); registerPresenter = new PushRegisterPresenterImpl(this); + pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -94,6 +100,7 @@ } else { startService(new Intent(this, UploadLocationService.class)); } + updateMessageNumber(); } @Override @@ -189,7 +196,9 @@ mainActivity.registerPresenter.onReadyRetrofitRequest(clientId); break; case Constant.PUSH_CREATE_NOTIFICATION: - Log.d(TAG, "创建通知栏"); + //显示小红点 + mainActivity.updateMessageNumber(); + NoticeBean noticeBean = (NoticeBean) msg.obj; if (null == noticeBean) { return; @@ -202,8 +211,10 @@ CaseDetailActivity.class); notificationHelper.push(1, notification); break; + case Constant.MESSAGE_NUMBER: + mainActivity.updateMessageNumber(); + break; case Constant.UPLOAD_LOCATION: - Log.d(TAG, "位置上报"); AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); @@ -219,6 +230,22 @@ } } + private void updateMessageNumber() { + List list = BaseApplication.getDaoSession() + .queryBuilder(NoticeBean.class) + .where(NoticeBeanDao.Properties.IsRead.eq("1")) + .list(); + int size = list.size(); + if (size <= 0) { + messageNumView.setVisibility(View.GONE); + } else if (size > 9) { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText("9+"); + } else { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText(String.valueOf(size)); + } + } @Override public void obtainUploadPositionResult(ActionResultBean resultBean) { diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index a714dbc..2729958 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -8,6 +8,7 @@ import com.bin.david.form.core.SmartTable; import com.bin.david.form.core.TableConfig; import com.bin.david.form.data.style.FontStyle; +import com.bin.david.form.data.style.LineStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.EventSourceBean; @@ -92,10 +93,25 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { + for (int i = 0; i < dataBeanList.size() - 1; i++) { EventSourceBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getEventNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + String caseNum = dataBean.getCaseNum(); + //表格数据需要把0的加进去,饼图不需要 + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum))); + } + dataTableView.setData(excelDataBeans); + initTableConfig(); + } + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); } dataTableView.setData(excelDataBeans); initTableConfig(); @@ -115,21 +131,7 @@ config.setShowTableTitle(false);//不显示标题 config.setShowXSequence(false);//不显示横向ABC....序列 config.setShowYSequence(false);//不显示纵向123....序列 - config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); - } - - @Override - public void obtainHighEventResult(HighEventBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { - HighEventBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getCaseNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(eventNum))); - } - dataTableView.setData(excelDataBeans); - initTableConfig(); - } + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 4d84e64..f2dcb62 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -21,6 +21,7 @@ import com.casic.dcms.greendao.DaoSession; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.ui.CaseDetailActivity; +import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.igexin.sdk.message.GTTransmitMessage; @@ -78,7 +79,11 @@ QMUIRVItemSwipeAction swipeAction = new QMUIRVItemSwipeAction(true, new QMUIRVItemSwipeAction.Callback() { @Override public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = viewHolder.getAdapterPosition(); + viewHolder.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); } @@ -91,6 +96,9 @@ @Override public void onClickAction(QMUIRVItemSwipeAction swipeAction, RecyclerView.ViewHolder selected, QMUISwipeAction action) { super.onClickAction(swipeAction, selected, action); + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = selected.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); @@ -108,6 +116,9 @@ swipeViewAdapter.setOnItemClickListener(new SwipeViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + //点击之后之后,未读消息变为已读消息 NoticeBean noticeBean = noticeBeans.get(position); noticeBean.setIsRead("0"); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 2f7039d..740b722 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -92,10 +92,11 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (EventSourceBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getEventNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseSource())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource())); } } initPieChart(); @@ -106,10 +107,11 @@ public void obtainHighEventResult(HighEventBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (HighEventBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getCaseNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseType())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType())); } } initPieChart(); @@ -118,13 +120,14 @@ private void initPieChart() { pieChartView.setDragDecelerationFrictionCoef(0.95f); + pieChartView.setUsePercentValues(true);//百分比数字显示 + pieChartView.setDrawEntryLabels(false);//不显示分类标签 pieChartView.setDrawCenterText(false); pieChartView.getDescription().setEnabled(false); pieChartView.setRotationAngle(0); // enable rotation of the chart by touch pieChartView.setRotationEnabled(true); pieChartView.setHighlightPerTapEnabled(true); - pieChartView.setDrawEntryLabels(true); pieChartView.setDrawHoleEnabled(false); setChartData(); pieChartView.animateY(1000); @@ -148,14 +151,17 @@ dataSet.setSliceSpace(0f); dataSet.setSelectionShift(5f); dataSet.setColors(Constant.PIE_COLORS); - dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); - dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + //当数据太多时,将标签显示在饼图外 + if (entries.size() > 8) { + dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + } dataSet.setValueLineColor(Color.GREEN); dataSet.setValueLinePart1Length(0.6f); PieData data = new PieData(dataSet); - data.setValueFormatter(new PercentFormatter()); + data.setValueFormatter(new PercentFormatter(pieChartView));//坑:在构造PercentFormatter的时候,需要传pieChart 对象进来才能正常显示出百分号。 data.setValueTextSize(12f); - data.setValueTextColor(Color.BLUE); + data.setValueTextColor(Color.BLUE);//数据值颜色 pieChartView.setData(data); pieChartView.highlightValues(null); pieChartView.invalidate(); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 036f762..b9ed8a8 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -57,6 +57,7 @@ public static final int CASE_OVERTIME_OK = 18; public static final int CASE_URGENT_OK = 19; public static final int UPLOAD_LOCATION = 20; + public static final int MESSAGE_NUMBER = 21; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java index 1b390a7..cac9edf 100644 --- a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java +++ b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java @@ -1,22 +1,21 @@ package com.casic.dcms.utils; -import android.annotation.SuppressLint; - import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Locale; /** * @author : Pengxh * @time : 2021/4/15 16:54 * @email : 290677893@qq.com **/ -@SuppressLint("SimpleDateFormat") public class TimeOrDateUtil { private static final String TAG = "TimeOrDateUtil"; - private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); - private static final SimpleDateFormat millsFormat = new SimpleDateFormat("mm:ss"); + private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); + private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss", Locale.CHINA); + private static final SimpleDateFormat minuteFormat = new SimpleDateFormat("HH:mm", Locale.CHINA); + private static final SimpleDateFormat secondsFormat = new SimpleDateFormat("mm:ss", Locale.CHINA); /** * 时间戳转完整日期时间 @@ -40,9 +39,16 @@ } /** + * 时间戳转时分 + */ + public static String minuteToTime(long millSeconds) { + return minuteFormat.format(new Date(millSeconds)); + } + + /** * 时间戳转分秒 */ public static String millsToTime(long millSeconds) { - return millsFormat.format(new Date(millSeconds)); + return secondsFormat.format(new Date(millSeconds)); } } diff --git a/app/src/main/java/com/casic/dcms/widgets/SignInDialog.java b/app/src/main/java/com/casic/dcms/widgets/SignInDialog.java index 1e43b87..ae61dd1 100644 --- a/app/src/main/java/com/casic/dcms/widgets/SignInDialog.java +++ b/app/src/main/java/com/casic/dcms/widgets/SignInDialog.java @@ -37,7 +37,7 @@ new Timer().schedule(new TimerTask() { @Override public void run() { - String systemTime = TimeOrDateUtil.millsToTime(System.currentTimeMillis()); + String systemTime = TimeOrDateUtil.minuteToTime(System.currentTimeMillis()); clockView.post(() -> clockView.setText(systemTime)); } }, 0, 1000); diff --git a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java index d610761..4af9584 100644 --- a/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/CaseUploadActivity.java @@ -197,7 +197,7 @@ @Override public void onUpdate(double db, long time) { recodeImageView.getDrawable().setLevel((int) (3000 + 6000 * db / 100)); - recodeTextView.setText(TimeOrDateUtil.timestampToTime(time)); + recodeTextView.setText(TimeOrDateUtil.millsToTime(time)); } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/MainActivity.java b/app/src/main/java/com/casic/dcms/ui/MainActivity.java index 5fdaf66..6c30583 100644 --- a/app/src/main/java/com/casic/dcms/ui/MainActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/MainActivity.java @@ -8,6 +8,7 @@ import android.os.Message; import android.util.Log; import android.view.MenuItem; +import android.view.View; import android.widget.TextView; import androidx.annotation.NonNull; @@ -18,9 +19,11 @@ import com.amap.api.location.AMapLocation; import com.casic.dcms.R; import com.casic.dcms.adapter.MainPageAdapter; +import com.casic.dcms.base.BaseApplication; import com.casic.dcms.base.DoubleClickExitActivity; import com.casic.dcms.bean.ActionResultBean; import com.casic.dcms.bean.NoticeBean; +import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.mvp.presenter.PushRegisterPresenterImpl; import com.casic.dcms.mvp.presenter.UploadPositionPresenterImpl; import com.casic.dcms.mvp.view.IPushRegisterView; @@ -55,6 +58,8 @@ NoScrollViewPager mainViewPager; @BindView(R.id.bottomNavigation) BottomNavigationView bottomNavigation; + @BindView(R.id.messageNumView) + TextView messageNumView; private MenuItem menuItem; private List pageList; @@ -82,6 +87,7 @@ weakReferenceHandler = new WeakReferenceHandler(this); uploadPositionPresenter = new UploadPositionPresenterImpl(this); registerPresenter = new PushRegisterPresenterImpl(this); + pageList = new ArrayList<>(); pageList.add(new HomePageFragment()); pageList.add(new PhonePageFragment()); @@ -94,6 +100,7 @@ } else { startService(new Intent(this, UploadLocationService.class)); } + updateMessageNumber(); } @Override @@ -189,7 +196,9 @@ mainActivity.registerPresenter.onReadyRetrofitRequest(clientId); break; case Constant.PUSH_CREATE_NOTIFICATION: - Log.d(TAG, "创建通知栏"); + //显示小红点 + mainActivity.updateMessageNumber(); + NoticeBean noticeBean = (NoticeBean) msg.obj; if (null == noticeBean) { return; @@ -202,8 +211,10 @@ CaseDetailActivity.class); notificationHelper.push(1, notification); break; + case Constant.MESSAGE_NUMBER: + mainActivity.updateMessageNumber(); + break; case Constant.UPLOAD_LOCATION: - Log.d(TAG, "位置上报"); AMapLocation aMapLocation = (AMapLocation) msg.obj; mainActivity.uploadPositionPresenter.onReadyRetrofitRequest(mainActivity.imei, String.valueOf(aMapLocation.getLatitude()), String.valueOf(aMapLocation.getLongitude())); @@ -219,6 +230,22 @@ } } + private void updateMessageNumber() { + List list = BaseApplication.getDaoSession() + .queryBuilder(NoticeBean.class) + .where(NoticeBeanDao.Properties.IsRead.eq("1")) + .list(); + int size = list.size(); + if (size <= 0) { + messageNumView.setVisibility(View.GONE); + } else if (size > 9) { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText("9+"); + } else { + messageNumView.setVisibility(View.VISIBLE); + messageNumView.setText(String.valueOf(size)); + } + } @Override public void obtainUploadPositionResult(ActionResultBean resultBean) { diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java index a714dbc..2729958 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/ExcelFragment.java @@ -8,6 +8,7 @@ import com.bin.david.form.core.SmartTable; import com.bin.david.form.core.TableConfig; import com.bin.david.form.data.style.FontStyle; +import com.bin.david.form.data.style.LineStyle; import com.casic.dcms.R; import com.casic.dcms.base.BaseFragment; import com.casic.dcms.bean.EventSourceBean; @@ -92,10 +93,25 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { + for (int i = 0; i < dataBeanList.size() - 1; i++) { EventSourceBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getEventNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(eventNum))); + String caseNum = dataBean.getCaseNum(); + //表格数据需要把0的加进去,饼图不需要 + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseSource(), Integer.parseInt(caseNum))); + } + dataTableView.setData(excelDataBeans); + initTableConfig(); + } + } + + @Override + public void obtainHighEventResult(HighEventBean resultBean) { + if (resultBean.isSuccess()) { + List dataBeanList = resultBean.getData(); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(caseNum))); } dataTableView.setData(excelDataBeans); initTableConfig(); @@ -115,21 +131,7 @@ config.setShowTableTitle(false);//不显示标题 config.setShowXSequence(false);//不显示横向ABC....序列 config.setShowYSequence(false);//不显示纵向123....序列 - config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context)); - } - - @Override - public void obtainHighEventResult(HighEventBean resultBean) { - if (resultBean.isSuccess()) { - List dataBeanList = resultBean.getData(); - for (int i = 1; i < dataBeanList.size(); i++) { - HighEventBean.DataBean dataBean = dataBeanList.get(i); - String eventNum = dataBean.getCaseNum(); - excelDataBeans.add(new ExcelDataBean(i, dataBean.getCaseType(), Integer.parseInt(eventNum))); - } - dataTableView.setData(excelDataBeans); - initTableConfig(); - } + config.setMinTableWidth(QMUIDisplayHelper.getScreenWidth(context));//不设置的话会就不会居中显示 } @Override diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java index 4d84e64..f2dcb62 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/NoticePageFragment.java @@ -21,6 +21,7 @@ import com.casic.dcms.greendao.DaoSession; import com.casic.dcms.greendao.NoticeBeanDao; import com.casic.dcms.ui.CaseDetailActivity; +import com.casic.dcms.ui.MainActivity; import com.casic.dcms.utils.Constant; import com.casic.dcms.utils.StringHelper; import com.igexin.sdk.message.GTTransmitMessage; @@ -78,7 +79,11 @@ QMUIRVItemSwipeAction swipeAction = new QMUIRVItemSwipeAction(true, new QMUIRVItemSwipeAction.Callback() { @Override public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = viewHolder.getAdapterPosition(); + viewHolder.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); } @@ -91,6 +96,9 @@ @Override public void onClickAction(QMUIRVItemSwipeAction swipeAction, RecyclerView.ViewHolder selected, QMUISwipeAction action) { super.onClickAction(swipeAction, selected, action); + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + int position = selected.getAdapterPosition(); daoSession.delete(noticeBeans.get(position)); swipeViewAdapter.remove(position); @@ -108,6 +116,9 @@ swipeViewAdapter.setOnItemClickListener(new SwipeViewAdapter.OnItemClickListener() { @Override public void onClick(int position) { + //更新小红点 + MainActivity.sendEmptyMessage(Constant.MESSAGE_NUMBER); + //点击之后之后,未读消息变为已读消息 NoticeBean noticeBean = noticeBeans.get(position); noticeBean.setIsRead("0"); diff --git a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java index 2f7039d..740b722 100644 --- a/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java +++ b/app/src/main/java/com/casic/dcms/ui/fragment/PieChartFragment.java @@ -92,10 +92,11 @@ public void obtainEventSourceResult(EventSourceBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (EventSourceBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getEventNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseSource())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + EventSourceBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseSource())); } } initPieChart(); @@ -106,10 +107,11 @@ public void obtainHighEventResult(HighEventBean resultBean) { if (resultBean.isSuccess()) { List dataBeanList = resultBean.getData(); - for (HighEventBean.DataBean dataBean : dataBeanList) { - float eventNum = Float.parseFloat(dataBean.getCaseNum()); - if (eventNum != 0) { - entries.add(new PieEntry(eventNum, dataBean.getCaseType())); + for (int i = 0; i < dataBeanList.size() - 1; i++) { + HighEventBean.DataBean dataBean = dataBeanList.get(i); + String caseNum = dataBean.getCaseNum(); + if (!caseNum.equals("0")) { + entries.add(new PieEntry(Float.parseFloat(caseNum), dataBean.getCaseType())); } } initPieChart(); @@ -118,13 +120,14 @@ private void initPieChart() { pieChartView.setDragDecelerationFrictionCoef(0.95f); + pieChartView.setUsePercentValues(true);//百分比数字显示 + pieChartView.setDrawEntryLabels(false);//不显示分类标签 pieChartView.setDrawCenterText(false); pieChartView.getDescription().setEnabled(false); pieChartView.setRotationAngle(0); // enable rotation of the chart by touch pieChartView.setRotationEnabled(true); pieChartView.setHighlightPerTapEnabled(true); - pieChartView.setDrawEntryLabels(true); pieChartView.setDrawHoleEnabled(false); setChartData(); pieChartView.animateY(1000); @@ -148,14 +151,17 @@ dataSet.setSliceSpace(0f); dataSet.setSelectionShift(5f); dataSet.setColors(Constant.PIE_COLORS); - dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); - dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + //当数据太多时,将标签显示在饼图外 + if (entries.size() > 8) { + dataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); + } dataSet.setValueLineColor(Color.GREEN); dataSet.setValueLinePart1Length(0.6f); PieData data = new PieData(dataSet); - data.setValueFormatter(new PercentFormatter()); + data.setValueFormatter(new PercentFormatter(pieChartView));//坑:在构造PercentFormatter的时候,需要传pieChart 对象进来才能正常显示出百分号。 data.setValueTextSize(12f); - data.setValueTextColor(Color.BLUE); + data.setValueTextColor(Color.BLUE);//数据值颜色 pieChartView.setData(data); pieChartView.highlightValues(null); pieChartView.invalidate(); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index 036f762..b9ed8a8 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -57,6 +57,7 @@ public static final int CASE_OVERTIME_OK = 18; public static final int CASE_URGENT_OK = 19; public static final int UPLOAD_LOCATION = 20; + public static final int MESSAGE_NUMBER = 21; public static final double DEFAULT_LNG = 116.06639658728571; public static final double DEFAULT_LAT = 27.759547805536418; diff --git a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java index 1b390a7..cac9edf 100644 --- a/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java +++ b/app/src/main/java/com/casic/dcms/utils/TimeOrDateUtil.java @@ -1,22 +1,21 @@ package com.casic.dcms.utils; -import android.annotation.SuppressLint; - import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Locale; /** * @author : Pengxh * @time : 2021/4/15 16:54 * @email : 290677893@qq.com **/ -@SuppressLint("SimpleDateFormat") public class TimeOrDateUtil { private static final String TAG = "TimeOrDateUtil"; - private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); - private static final SimpleDateFormat millsFormat = new SimpleDateFormat("mm:ss"); + private static final SimpleDateFormat allDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA); + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); + private static final SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss", Locale.CHINA); + private static final SimpleDateFormat minuteFormat = new SimpleDateFormat("HH:mm", Locale.CHINA); + private static final SimpleDateFormat secondsFormat = new SimpleDateFormat("mm:ss", Locale.CHINA); /** * 时间戳转完整日期时间 @@ -40,9 +39,16 @@ } /** + * 时间戳转时分 + */ + public static String minuteToTime(long millSeconds) { + return minuteFormat.format(new Date(millSeconds)); + } + + /** * 时间戳转分秒 */ public static String millsToTime(long millSeconds) { - return millsFormat.format(new Date(millSeconds)); + return secondsFormat.format(new Date(millSeconds)); } } diff --git a/app/src/main/java/com/casic/dcms/widgets/SignInDialog.java b/app/src/main/java/com/casic/dcms/widgets/SignInDialog.java index 1e43b87..ae61dd1 100644 --- a/app/src/main/java/com/casic/dcms/widgets/SignInDialog.java +++ b/app/src/main/java/com/casic/dcms/widgets/SignInDialog.java @@ -37,7 +37,7 @@ new Timer().schedule(new TimerTask() { @Override public void run() { - String systemTime = TimeOrDateUtil.millsToTime(System.currentTimeMillis()); + String systemTime = TimeOrDateUtil.minuteToTime(System.currentTimeMillis()); clockView.post(() -> clockView.setText(systemTime)); } }, 0, 1000); diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 8e25113..a467777 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,36 +1,83 @@ - + android:layout_height="match_parent"> - + android:layout_height="match_parent" + android:orientation="vertical"> - + + + + + + + + + + android:layout_height="wrap_content"> - + - - \ No newline at end of file + + + + + + + + + + + + + + +