Commit fd11b76fdf9764a5578deebbb6491c9a22b7ccc3

Authored by 姚旭斌
2 parents 8b4376c1 0cbb0554

Merge branch 'developer' into yxb_dev

Showing 29 changed files with 771 additions and 287 deletions   Show diff stats
app/build.gradle
... ... @@ -16,8 +16,8 @@ android {
16 16 applicationId "com.shunzhi.parent"
17 17 minSdkVersion 16
18 18 targetSdkVersion 26
19   - versionCode 1
20   - versionName "1.0"
  19 + versionCode 102
  20 + versionName "1.0.2"
21 21 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
22 22 javaCompileOptions {
23 23 annotationProcessorOptions {
... ... @@ -52,15 +52,16 @@ task fileCheckTask() {
52 52 //此方法执行以后会删除所有的version.sql文件,不能主动添加sql语句
53 53 //如果已经定义、实现的注解不能满足更新要求,请自己添加sql语句,并且将下面删除文件的语句注释
54 54 //注意 注释以后不要打开(写这个task是为了试验)
55   -// doLast {
56   -// File file = new File(rootDir.getAbsolutePath() + "\\app\\src\\main\\assets\\migrations")
57   -// File[] files = file.listFiles()
58   -// for (int i = 0; i < files.length; i++) {
59   -// File file1 = files[i]
60   -// println("delete : "+file1.getAbsolutePath())
61   -// file1.delete()
62   -// }
63   -// }
  55 + /*doLast {
  56 + File file = new File(rootDir.getAbsolutePath() + "\\app\\src\\main\\assets\\migrations")
  57 + File[] files = file.listFiles()
  58 + if (null != files)
  59 + for (int i = 0; i < files.length; i++) {
  60 + File file1 = files[i]
  61 + println("delete : " + file1.getAbsolutePath())
  62 + file1.delete()
  63 + }
  64 + }*/
64 65 }
65 66  
66 67 afterEvaluate {
... ...
app/libs/processor.jar
No preview for this file type
app/src/main/AndroidManifest.xml
... ... @@ -117,6 +117,17 @@
117 117 android:name="com.amap.api.v2.apikey"
118 118 android:value="1d130afb822d8a1019e6592cbaf10bcc" />
119 119  
  120 +
  121 + <provider
  122 + android:authorities="com.shunzhi.parent.fileprovider"
  123 + android:name="android.support.v4.content.FileProvider"
  124 + android:grantUriPermissions="true"
  125 + android:exported="false">
  126 + <meta-data
  127 + android:name="android.support.FILE_PROVIDER_PATHS"
  128 + android:resource="@xml/filepaths"/>
  129 + </provider>
  130 +
120 131 <activity
121 132 android:name=".ui.activity.StartActivity"
122 133 android:launchMode="singleInstance"
... ...
app/src/main/java/com/shunzhi/parent/AppConfig.java
... ... @@ -38,15 +38,15 @@ public class AppConfig {
38 38 public static String APP_IS_START = "app_is_start";
39 39  
40 40 //http://campus.myjxt.com/
41   - public static String BASE_URL="http://60.190.202.57:1000/";
42   - public static String BASE_URL_ORDER="http://60.190.202.57:8101/";
43   - public static String BASE_URL_FILE="http://60.190.202.57:8196";
  41 +// public static String BASE_URL="http://60.190.202.57:1000/";
  42 +// public static String BASE_URL_ORDER="http://60.190.202.57:8101/";
  43 +// public static String BASE_URL_FILE="http://60.190.202.57:8196";
44 44  
45 45  
46 46 //正式
47   -// public static String BASE_URL="http://campus.myjxt.com/";
48   -// public static String BASE_URL_ORDER="http://parent.myjxt.com/";
49   -// public static String BASE_URL_FILE="http://manage.myjxt.com";
  47 + public static String BASE_URL="http://campus.myjxt.com/";
  48 + public static String BASE_URL_ORDER="http://parent.myjxt.com/";
  49 + public static String BASE_URL_FILE="http://manage.myjxt.com";
50 50 // public static final String url_version = BASE_URL + "api/Common/AppVersion?appType=3";
51 51  
52 52  
... ...
app/src/main/java/com/shunzhi/parent/adapter/ReportAdapter.java
... ... @@ -3,6 +3,8 @@ package com.shunzhi.parent.adapter;
3 3  
4 4 import android.content.Context;
5 5 import android.content.Intent;
  6 +import android.support.v7.widget.LinearLayoutManager;
  7 +import android.support.v7.widget.RecyclerView;
6 8 import android.view.LayoutInflater;
7 9 import android.view.View;
8 10 import android.view.ViewGroup;
... ... @@ -13,6 +15,7 @@ import com.share.mvpsdk.base.adapter.BaseRecyclerViewHolder;
13 15 import com.shunzhi.parent.R;
14 16 import com.shunzhi.parent.bean.ReportBean;
15 17 import com.shunzhi.parent.ui.activity.report.ReportDetialActivity;
  18 +import com.shunzhi.parent.views.CustomLinearLayoutManager;
16 19  
17 20 /**
18 21 * Created by Administrator on 2018/3/9 0009.
... ... @@ -28,6 +31,14 @@ public class ReportAdapter extends BaseRecyclerViewAdapter&lt;ReportBean&gt; {
28 31  
29 32  
30 33 @Override
  34 + public void onAttachedToRecyclerView(RecyclerView recyclerView) {
  35 + super.onAttachedToRecyclerView(recyclerView);
  36 + recyclerView.setLayoutManager(new CustomLinearLayoutManager(context,
  37 + LinearLayoutManager.VERTICAL, false));
  38 + recyclerView.setHasFixedSize(true);
  39 + }
  40 +
  41 + @Override
31 42 public BaseRecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
32 43 View view = LayoutInflater.from(context).inflate(R.layout.item_report_deyu, parent,false);
33 44 return new MyViewHolder(view);
... ...
app/src/main/java/com/shunzhi/parent/manager/UpdateManager.java
... ... @@ -148,7 +148,7 @@ public class UpdateManager {
148 148 Timber.d("66666%s","currentVersion="+currentVersion+"serviceCode="+serviceCode+"versionCode="+versionCode);
149 149 if ((serviceCode > versionCode) && ischeckingForUpdate && !isChechingInterrupted) {
150 150 showNoticeDialog(currentVersion, version.content, isChechingInterrupted);
151   - } else if (!(serviceCode > versionCode) && shouldInterruptDialogShow && !isChechingInterrupted) {
  151 + } else if (!(serviceCode > versionCode) && !isChechingInterrupted) {
152 152 Toast.makeText(mContext, "已经是最新版本啦!", Toast.LENGTH_SHORT).show();
153 153 mContext = null;
154 154 }
... ...
app/src/main/java/com/shunzhi/parent/popu/ShaiXuanPop.java
... ... @@ -57,7 +57,7 @@ public class ShaiXuanPop extends PopupWindow {
57 57 tvSubmit.setOnClickListener(new View.OnClickListener() {
58 58 @Override
59 59 public void onClick(View view) {
60   -
  60 + dismiss();
61 61 }
62 62 });
63 63  
... ...
app/src/main/java/com/shunzhi/parent/ui/MainActivity.java
... ... @@ -26,7 +26,7 @@ public class MainActivity extends BaseCompatActivity implements PermissionUtils.
26 26  
27 27 BottomNavigationView bottom_navigationView;
28 28  
29   - CePingFragment cePingFragment = null;
  29 +// CePingFragment cePingFragment = null;
30 30  
31 31 ConsultFragment consultFragment = null;
32 32  
... ... @@ -36,7 +36,7 @@ public class MainActivity extends BaseCompatActivity implements PermissionUtils.
36 36  
37 37 Fragment[] fragments = null;
38 38  
39   - private int CEPING_INDEX = 0, CONSULT_INDEX = 1, REPORT_INDEX = 2, MINE_INDEX = 3;
  39 + private int CEPING_INDEX = 0, CONSULT_INDEX = 0, REPORT_INDEX = 1, MINE_INDEX = 2;
40 40  
41 41 FragmentTransaction fragmentTransaction = null;
42 42  
... ... @@ -54,10 +54,11 @@ public class MainActivity extends BaseCompatActivity implements PermissionUtils.
54 54 @Override
55 55 public boolean onNavigationItemSelected(@NonNull MenuItem item) {
56 56 switch (item.getItemId()) {
57   - case R.id.menu_item_index://测评页面
58   - showFragment(CEPING_INDEX);
59   - break;
  57 +// case R.id.menu_item_index://测评页面
  58 +// showFragment(CEPING_INDEX);
  59 +// break;
60 60 case R.id.menu_item_consult://咨询频道
  61 +// showFragment(CONSULT_INDEX);
61 62 showFragment(CONSULT_INDEX);
62 63 break;
63 64 case R.id.menu_item_report://报告
... ... @@ -75,23 +76,24 @@ public class MainActivity extends BaseCompatActivity implements PermissionUtils.
75 76 }
76 77  
77 78 private void initFragments() {
78   - fragments = new Fragment[4];
79   - cePingFragment = new CePingFragment();
  79 + fragments = new Fragment[3];
  80 +// cePingFragment = new CePingFragment();
80 81 consultFragment = new ConsultFragment();
81 82 reportFragment = new ReportFragment();
82 83 mineFragment = new MineFragment();
83   - fragments[CEPING_INDEX] = cePingFragment;
  84 +// fragments[CEPING_INDEX] = cePingFragment;
84 85 fragments[CONSULT_INDEX] = consultFragment;
85 86 fragments[REPORT_INDEX] = reportFragment;
86 87 fragments[MINE_INDEX] = mineFragment;
87 88  
88 89 fragmentTransaction = getSupportFragmentManager().beginTransaction();
89   - fragmentTransaction.add(R.id.frame, cePingFragment)
  90 + fragmentTransaction
  91 +// .add(R.id.frame, cePingFragment)
90 92 .add(R.id.frame, consultFragment)
91 93 .add(R.id.frame, reportFragment)
92 94 .add(R.id.frame, mineFragment)
93   - .show(cePingFragment)
94   - .hide(consultFragment)
  95 +// .show(cePingFragment)
  96 + .show(consultFragment)
95 97 .hide(reportFragment)
96 98 .hide(mineFragment)
97 99 .commit();
... ... @@ -103,8 +105,8 @@ public class MainActivity extends BaseCompatActivity implements PermissionUtils.
103 105 if (index == i) fragmentTransaction.show(fragments[index]);
104 106 else fragmentTransaction.hide(fragments[i]);
105 107 }
106   - if (index==CONSULT_INDEX)consultFragment.refresh();
107   - else if (index==CEPING_INDEX)cePingFragment.refresh();
  108 + if (index == CONSULT_INDEX) consultFragment.refresh();
  109 +// else if (index == CEPING_INDEX) cePingFragment.refresh();
108 110 fragmentTransaction.commit();
109 111 }
110 112  
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/ConsultFragment.java
... ... @@ -41,6 +41,7 @@ import java.util.List;
41 41 import cn.jzvd.JZVideoPlayerStandard;
42 42 import me.leefeng.citypicker.CityPicker;
43 43 import me.leefeng.citypicker.CityPickerListener;
  44 +import timber.log.Timber;
44 45  
45 46 public class ConsultFragment extends BaseMVPCompatFragment<ConsultContract.ConsultPresenter, ConsultContract.IConsultModel> implements View.OnClickListener
46 47 , ConsultContract.IConsultView, CityPickerListener {
... ... @@ -54,6 +55,7 @@ public class ConsultFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consu
54 55 MyConsultAdapter contextAdapter;
55 56  
56 57 List<String> imgesUrl = new ArrayList<>();
  58 + List<String> imgWebUrl=new ArrayList<>();//跳转的连接
57 59 List<String> describeList = new ArrayList<>();
58 60 List<GuangGaoBean> guanggaoList = new ArrayList<>();
59 61 List<ChannelContextBean> contextList = new ArrayList<>();
... ... @@ -148,7 +150,7 @@ public class ConsultFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consu
148 150 xBanner.setOnItemClickListener(new XBanner.OnItemClickListener() {
149 151 @Override
150 152 public void onItemClick(XBanner banner, int position) {
151   - WebViewActivity.getInstance(getContext(), imgesUrl.get(position), -1);
  153 + WebViewActivity.getInstance(getContext(), imgWebUrl.get(position), -1);
152 154 }
153 155 });
154 156 }
... ... @@ -234,6 +236,7 @@ public class ConsultFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consu
234 236 for (int i = 0; i < guangGaoBeanList.size(); i++) {
235 237 imgesUrl.add(AppConfig.BASE_URL_FILE + guangGaoBeanList.get(i).fileSrc);
236 238 describeList.add(guangGaoBeanList.get(i).describe);
  239 + imgWebUrl.add(guangGaoBeanList.get(i).url);
237 240 }
238 241 initBanners();
239 242 }
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/MineFragment.java
... ... @@ -175,7 +175,7 @@ public class MineFragment extends BaseMVPCompatFragment&lt;LoginAndRegisterContract
175 175  
176 176 break;
177 177 case R.id.layout_update:
178   - UpdateManager.getInstance().setContext(getContext()).isUpdate(true);
  178 + UpdateManager.getInstance().setContext(getContext()).isUpdate(false);
179 179 break;
180 180 default:
181 181 break;
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/ReportFragment.java
... ... @@ -2,8 +2,15 @@ package com.shunzhi.parent.ui.fragment;
2 2  
3 3  
4 4 import android.os.Bundle;
  5 +import android.os.Handler;
  6 +import android.os.Message;
5 7 import android.support.annotation.NonNull;
6 8 import android.support.annotation.Nullable;
  9 +import android.support.design.widget.TabLayout;
  10 +import android.support.v4.app.Fragment;
  11 +import android.support.v4.app.FragmentManager;
  12 +import android.support.v4.app.FragmentPagerAdapter;
  13 +import android.support.v4.view.ViewPager;
7 14 import android.support.v7.widget.LinearLayoutManager;
8 15 import android.support.v7.widget.RecyclerView;
9 16 import android.view.View;
... ... @@ -13,39 +20,33 @@ import com.amy.monthweek.materialcalendarview.MonthWeekMaterialCalendarView;
13 20 import com.prolificinteractive.materialcalendarview.CalendarDay;
14 21 import com.prolificinteractive.materialcalendarview.MaterialCalendarView;
15 22 import com.share.mvpsdk.base.BasePresenter;
  23 +import com.share.mvpsdk.base.fragment.BaseCompatFragment;
16 24 import com.share.mvpsdk.base.fragment.BaseMVPCompatFragment;
  25 +import com.share.mvpsdk.utils.ToastUtils;
17 26 import com.shunzhi.parent.R;
18 27 import com.shunzhi.parent.adapter.ReportAdapter;
19 28 import com.shunzhi.parent.bean.ReportBean;
20 29 import com.shunzhi.parent.contract.report.ReportContract;
21 30 import com.shunzhi.parent.popu.ShaiXuanPop;
22 31 import com.shunzhi.parent.presenter.report.ReportPresenter;
  32 +import com.shunzhi.parent.ui.fragment.report.ChengZhangFragment;
23 33 import com.shunzhi.parent.views.CustomLinearLayoutManager;
24 34  
25 35 import java.util.List;
26 36  
27   -public class ReportFragment extends BaseMVPCompatFragment<ReportContract.ReportPresenter, ReportContract.IReportModel>
28   - implements ReportContract.IReportView ,View.OnClickListener{
  37 +public class ReportFragment extends BaseCompatFragment implements View.OnClickListener {
  38 + ViewPager viewPager;
29 39  
30   - RecyclerView recyclerView;
31   - ReportAdapter reportAdapter;
  40 + TextView tvDate, tvShaiXuan, tvNoData;
32 41  
33   - MonthWeekMaterialCalendarView monthWeekMaterialCalendarView = null;
  42 + MyFragmentAdapter myFragmentAdapter = null;
34 43  
35   - private CalendarDay selectedDate;
  44 + TabLayout tabLayout;
36 45  
37   - MaterialCalendarView calendarView_month_mode;
38   -
39   - TextView tvDate,tvShaiXuan,tvNoData;
  46 + ChengZhangFragment chengZhangFragment1 = null, chengZhangFragment2 = null;//成长、报告页面
40 47  
41 48 ShaiXuanPop shaiXuanPop=null;
42 49  
43   - @NonNull
44   - @Override
45   - public BasePresenter initPresenter() {
46   - return new ReportPresenter();
47   - }
48   -
49 50 @Override
50 51 public int getLayoutId() {
51 52 return R.layout.fragment_report;
... ... @@ -53,84 +54,88 @@ public class ReportFragment extends BaseMVPCompatFragment&lt;ReportContract.ReportP
53 54  
54 55 @Override
55 56 public void initUI(View view, @Nullable Bundle savedInstanceState) {
56   - recyclerView = view.findViewById(R.id.recycle_report);
57   - calendarView_month_mode = view.findViewById(R.id.calendarView_month_mode);
  57 + viewPager = view.findViewById(R.id.viewPager);
58 58 tvDate = view.findViewById(R.id.tvDate);
59   - tvShaiXuan=view.findViewById(R.id.tvShaiXuan);
60   - tvNoData=view.findViewById(R.id.tvNoData);
61   -
62   - LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
63   - layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
64   - recyclerView.setLayoutManager(new CustomLinearLayoutManager(getActivity(),
65   - LinearLayoutManager.VERTICAL, false));
66   - recyclerView.setHasFixedSize(true);
67   - monthWeekMaterialCalendarView = view.findViewById(R.id.slidelayout);
68   - initCalendarView();
69   - initReportList();
  59 + tvShaiXuan = view.findViewById(R.id.tvShaiXuan);
  60 + tvNoData = view.findViewById(R.id.tvNoData);
  61 + tabLayout = view.findViewById(R.id.tabLayout);
70 62  
71   - }
  63 + tvShaiXuan.setOnClickListener(this);
72 64  
73   - private void initCalendarView() {
  65 + myFragmentAdapter = new MyFragmentAdapter(getChildFragmentManager());
74 66  
75   - selectedDate = CalendarDay.today();
76   - showDate();
77   - monthWeekMaterialCalendarView.setMode(MonthWeekMaterialCalendarView.Mode.WEEK);
78   - monthWeekMaterialCalendarView.setCurrentDate(selectedDate);
79   - monthWeekMaterialCalendarView.setSelectedDate(selectedDate);
80   - monthWeekMaterialCalendarView.state().edit().setSlideModeChangeListener(new MonthWeekMaterialCalendarView.SlideModeChangeListener() {
  67 + viewPager.setAdapter(myFragmentAdapter);
  68 + tabLayout.setupWithViewPager(viewPager);
  69 + tabLayout.removeAllTabs();
  70 + tabLayout.addTab(tabLayout.newTab().setText("成长"));
  71 + tabLayout.addTab(tabLayout.newTab().setText("报告"));
  72 + viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
81 73 @Override
82   - public void modeChange(MonthWeekMaterialCalendarView.Mode mode) {
  74 + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
83 75  
84 76 }
85   - }).setSlideDateSelectedlistener(new MonthWeekMaterialCalendarView.SlideDateSelectedlistener() {
86   - @Override
87   - public void onDateSelected(@NonNull MaterialCalendarView widget, @NonNull CalendarDay date, boolean selected) {
88   - selectedDate = date;
89   - showDate();
90 77  
91   - }
92   - }).setSlideOnMonthChangedListener(new MonthWeekMaterialCalendarView.SlideOnMonthChangedListener() {
93 78 @Override
94   - public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) {
95   - selectedDate = date;
96   - showDate();
  79 + public void onPageSelected(int position) {
  80 + if (position==0)tvShaiXuan.setVisibility(View.GONE);
  81 + else tvShaiXuan.setVisibility(View.VISIBLE);
97 82 }
98   - }).commit();
99 83  
100   - }
  84 + @Override
  85 + public void onPageScrollStateChanged(int state) {
101 86  
102   - private void showDate() {
103   -// tvDate.setText(selectedDate.getYear() + "年" + (selectedDate.getMonth() + 1) + "月");
104   - }
  87 + }
  88 + });
105 89  
106   - private void initReportList() {
107   - mPresenter.reportResult();
108   - tvShaiXuan.setOnClickListener(this);
109 90 }
110 91  
111 92 @Override
112   - public void UpdateList(List<ReportBean> list) {
113   - reportAdapter = new ReportAdapter(getActivity());
114   - reportAdapter.addAll(list);
115   - recyclerView.setAdapter(reportAdapter);
  93 + public void onClick(View view) {
  94 + switch (view.getId()){
  95 + case R.id.tvShaiXuan:
  96 + if (null == shaiXuanPop) shaiXuanPop = new ShaiXuanPop(getActivity());
  97 + chengZhangFragment2.showShaixuan(handler);
  98 + break;
  99 + }
116 100 }
117 101  
118   - @Override
119   - public void showReports(List<String> stringList) {
120   - if (null!=shaiXuanPop){
121   - if (stringList.size()>0)tvNoData.setVisibility(View.GONE);
122   - shaiXuanPop.setDatas(stringList);
  102 + Handler handler=new Handler(){
  103 + @Override
  104 + public void handleMessage(Message msg) {
  105 + super.handleMessage(msg);
  106 + shaiXuanPop.setDatas((List<String>) msg.obj);
123 107 shaiXuanPop.show(tvShaiXuan);
124 108 }
125   - }
  109 + };
126 110  
127 111 @Override
128   - public void onClick(View view) {
129   - switch (view.getId()){
130   - case R.id.tvShaiXuan:
131   - if (null==shaiXuanPop)shaiXuanPop=new ShaiXuanPop(getActivity());
132   - mPresenter.getReports();
133   - break;
  112 + public void onDestroy() {
  113 + super.onDestroy();
  114 + if (handler!=null)handler=null;
  115 + }
  116 +
  117 + private class MyFragmentAdapter extends FragmentPagerAdapter {
  118 +
  119 + public MyFragmentAdapter(FragmentManager fm) {
  120 + super(fm);
  121 + }
  122 +
  123 + @Override
  124 + public Fragment getItem(int position) {
  125 + if (position == 0) {
  126 + chengZhangFragment1 = ChengZhangFragment.newInstance(ChengZhangFragment.TYPE_CHENGZHANG);
  127 + return chengZhangFragment1;
  128 + } else if (position == 1) {
  129 + chengZhangFragment2 = ChengZhangFragment.newInstance(ChengZhangFragment.TYPE_REPORT);
  130 + return chengZhangFragment2;
  131 + }
  132 + return null;
  133 + }
  134 +
  135 + @Override
  136 + public int getCount() {
  137 + return 2;
134 138 }
135 139 }
  140 +
136 141 }
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/StartFragment.java
1 1 package com.shunzhi.parent.ui.fragment;
2 2  
  3 +import android.media.MediaMetadataRetriever;
3 4 import android.os.Bundle;
4 5 import android.os.CountDownTimer;
5 6 import android.support.annotation.NonNull;
... ... @@ -12,6 +13,7 @@ import android.widget.TextView;
12 13  
13 14 import com.share.mvpsdk.base.BasePresenter;
14 15 import com.share.mvpsdk.base.fragment.BaseMVPCompatFragment;
  16 +import com.share.mvpsdk.view.MyVieoView;
15 17 import com.shunzhi.parent.AppConfig;
16 18 import com.shunzhi.parent.R;
17 19 import com.shunzhi.parent.bean.GuangGaoBean;
... ... @@ -28,6 +30,7 @@ import java.util.ArrayList;
28 30 import java.util.List;
29 31  
30 32 import cn.jzvd.JZVideoPlayerStandard;
  33 +import timber.log.Timber;
31 34  
32 35 public class StartFragment extends BaseMVPCompatFragment<ConsultContract.ConsultPresenter, ConsultContract.IConsultModel>
33 36 implements ConsultContract.IConsultView {
... ... @@ -38,13 +41,15 @@ public class StartFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consult
38 41  
39 42 boolean isQidong = false;
40 43  
41   - JZVideoPlayerStandard jiecaoVideo;
  44 +// JZVideoPlayerStandard jiecaoVideo;
42 45  
  46 + MyVieoView myVideoView = null;
43 47  
44   - CountDownTimer countDownTimer=new CountDownTimer(5*1000,1000) {
  48 +
  49 + CountDownTimer countDownTimer = new CountDownTimer(5 * 1000, 1000) {
45 50 @Override
46 51 public void onTick(long l) {
47   - tvJump.setText("跳转"+l/1000+"s");
  52 + tvJump.setText("跳转" + l / 1000 + "s");
48 53 }
49 54  
50 55 @Override
... ... @@ -64,21 +69,13 @@ public class StartFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consult
64 69  
65 70 xBanner = view.findViewById(R.id.xBanner);
66 71 tvJump = view.findViewById(R.id.tvJump);
67   - jiecaoVideo = view.findViewById(R.id.jiecaoVideo);
68   - jiecaoVideo.tinyBackImageView.setVisibility(View.GONE);
69   - jiecaoVideo.backButton.setVisibility(View.GONE);
70   - jiecaoVideo.replayTextView.setVisibility(View.GONE);
71   - jiecaoVideo.batteryLevel.setVisibility(View.GONE);
72   - jiecaoVideo.thumbImageView.setVisibility(View.GONE);
73   - jiecaoVideo.loadingProgressBar.setVisibility(View.GONE);
74   - countDownTimer.start();
  72 + myVideoView = view.findViewById(R.id.myVideoView);
75 73 isQidong = TextUtils.isEmpty(AppConfig.getAppConfig(getContext()).get(AppConfig.APP_IS_START));
76   -
77   - if (isQidong)mPresenter.getBanners("0", "");
  74 + if (isQidong) mPresenter.getBanners("0", "");
78 75 else mPresenter.getBanners("1", "");
79 76 showVideos();
80 77  
81   - tvJump=view.findViewById(R.id.tvJump);
  78 + tvJump = view.findViewById(R.id.tvJump);
82 79  
83 80 tvJump.setOnClickListener(new View.OnClickListener() {
84 81 @Override
... ... @@ -90,17 +87,12 @@ public class StartFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consult
90 87  
91 88 }
92 89  
93   - private void showVideos(){
  90 + private void showVideos() {
94 91 if (isQidong) {
95   - jiecaoVideo.setVisibility(View.VISIBLE);
96 92 xBanner.setVisibility(View.GONE);
97   -// mPresenter.getBanners("0", AppContext.getInstance().district==""?"余杭区":AppContext.getInstance().district);
98 93 mPresenter.getBanners("0", "");
99 94 } else {
100   - jiecaoVideo.setVisibility(View.GONE);
101 95 xBanner.setVisibility(View.VISIBLE);
102   -// mPresenter.getBanners("1", "");
103   -// mPresenter.getBanners("1", AppContext.getInstance().district==""?"余杭区":AppContext.getInstance().district);
104 96 }
105 97 }
106 98  
... ... @@ -129,12 +121,15 @@ public class StartFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consult
129 121 public void showContext(List<ChannelContextBean> list) {
130 122  
131 123 }
132   - List<String> imgUrl = new ArrayList<>();
  124 +
  125 + List<String> imgUrl = new ArrayList<>();
133 126 List<String> describeList = new ArrayList<>();
  127 +
134 128 private void initBannes(List<GuangGaoBean> guangGaoBeanList) {
135 129 try {
136 130 imgUrl = new ArrayList<>();
137 131 describeList = new ArrayList<>();
  132 +// Timber.d("66666%s","guangGaoBeanList="+guangGaoBeanList);
138 133 if (isQidong) {
139 134 AppConfig.getAppConfig(getContext()).set(AppConfig.APP_IS_START, "1");
140 135 String fileUrl = "", describe = "";
... ... @@ -144,16 +139,17 @@ public class StartFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consult
144 139 describe = guangGaoBeanList.get(i).describe;
145 140 imgUrl.add(fileUrl);
146 141 describeList.add(describe);
147   - }else {
  142 + } else {
148 143 imgUrl.add(AppConfig.BASE_URL_FILE + guangGaoBeanList.get(i).fileSrc);
149 144 describeList.add(guangGaoBeanList.get(i).describe);
150 145 }
151 146 }
152   - if (!TextUtils.isEmpty(fileUrl)){
153   - jiecaoVideo.setUp(fileUrl, JZVideoPlayerStandard.SCREEN_WINDOW_NORMAL, describe);
154   - jiecaoVideo.startVideo();
155   - }else {
156   - isQidong=false;
  147 + if (!TextUtils.isEmpty(fileUrl)) {
  148 + myVideoView.setVideoPath(fileUrl);
  149 + myVideoView.start();
  150 + myVideoView.requestFocus();
  151 + } else {
  152 + isQidong = false;
157 153 startNewActivity(StartActivity.class);
158 154 // showVideos();
159 155 // showBanners();
... ... @@ -166,13 +162,14 @@ public class StartFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consult
166 162 }
167 163 showBanners();
168 164 }
169   -
  165 + countDownTimer.start();
170 166 } catch (Exception e) {
171 167 e.printStackTrace();
  168 + countDownTimer.start();
172 169 }
173 170 }
174 171  
175   - private void showBanners(){
  172 + private void showBanners() {
176 173 xBanner.setData(imgUrl, describeList);
177 174 xBanner.stopAutoPlay();
178 175 xBanner.setmAutoPalyTime(10000);
... ... @@ -188,6 +185,6 @@ public class StartFragment extends BaseMVPCompatFragment&lt;ConsultContract.Consult
188 185 @Override
189 186 public void onDestroy() {
190 187 super.onDestroy();
191   - if (null!=countDownTimer)countDownTimer.cancel();
  188 + if (null != countDownTimer) countDownTimer.cancel();
192 189 }
193 190 }
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/consult/ConsultOneLevelFragment.java
... ... @@ -6,6 +6,7 @@ import android.support.annotation.Nullable;
6 6 import android.support.v7.widget.LinearLayoutManager;
7 7 import android.support.v7.widget.RecyclerView;
8 8 import android.text.TextUtils;
  9 +import android.util.Log;
9 10 import android.view.LayoutInflater;
10 11 import android.view.View;
11 12 import android.view.ViewGroup;
... ... @@ -130,7 +131,6 @@ public class ConsultOneLevelFragment extends BaseMVPCompatFragment&lt;ConsultOneCon
130 131 }
131 132  
132 133 private void initRecyclerView(List<GuangGaoBean> guangGaoBeanList) {
133   -
134 134 if (null == myGrallyAdapter) myGrallyAdapter = new MyGrallyAdapter();
135 135 myGrallyAdapter.addAll(guangGaoBeanList);
136 136 recyclerViewGrally.setAdapter(myGrallyAdapter);
... ... @@ -150,7 +150,6 @@ public class ConsultOneLevelFragment extends BaseMVPCompatFragment&lt;ConsultOneCon
150 150  
151 151 @Override
152 152 public void showConsultContent(List<ChannelContextBean> list) {
153   -// Log.d("66666", "ChannelContextBean=" + list);
154 153 if (null != list) {
155 154 myConsultBeanList.addAll(list);
156 155 if (myConsultAdapter == null) {
... ... @@ -216,8 +215,8 @@ public class ConsultOneLevelFragment extends BaseMVPCompatFragment&lt;ConsultOneCon
216 215 tv_grally_title = itemView.findViewById(R.id.tv_grally_title);
217 216 frame_root = itemView.findViewById(R.id.frame_root);
218 217 FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(-1, -1);
219   -// params.width = DisplayUtils.getScreenWidthPixels(getActivity()) - 100;
220   -// params.setMargins(10, 0, 10, 0);
  218 + params.width = DisplayUtils.getScreenWidthPixels(getActivity()) - 100;
  219 + params.setMargins(10, 0, 10, 0);
221 220 frame_root.setLayoutParams(params);
222 221 }
223 222  
... ...
app/src/main/java/com/shunzhi/parent/ui/fragment/report/ChengZhangFragment.java 0 → 100644
... ... @@ -0,0 +1,172 @@
  1 +package com.shunzhi.parent.ui.fragment.report;
  2 +
  3 +import android.os.Bundle;
  4 +import android.os.Handler;
  5 +import android.os.Message;
  6 +import android.support.annotation.NonNull;
  7 +import android.support.annotation.Nullable;
  8 +import android.support.v7.widget.RecyclerView;
  9 +import android.view.View;
  10 +import android.widget.LinearLayout;
  11 +
  12 +import com.amy.monthweek.materialcalendarview.MonthWeekMaterialCalendarView;
  13 +import com.prolificinteractive.materialcalendarview.CalendarDay;
  14 +import com.prolificinteractive.materialcalendarview.MaterialCalendarView;
  15 +import com.share.mvpsdk.base.BasePresenter;
  16 +import com.share.mvpsdk.base.fragment.BaseMVPCompatFragment;
  17 +import com.shunzhi.parent.R;
  18 +import com.shunzhi.parent.adapter.ReportAdapter;
  19 +import com.shunzhi.parent.bean.ReportBean;
  20 +import com.shunzhi.parent.contract.report.ReportContract;
  21 +import com.shunzhi.parent.popu.ShaiXuanPop;
  22 +import com.shunzhi.parent.presenter.report.ReportPresenter;
  23 +
  24 +import java.util.List;
  25 +
  26 +/**
  27 + */
  28 +public class ChengZhangFragment extends BaseMVPCompatFragment<ReportContract.ReportPresenter, ReportContract.IReportModel>
  29 + implements ReportContract.IReportView, View.OnClickListener {
  30 +
  31 + public static String TYPE_CHENGZHANG = "chengzhang", TYPE_REPORT = "report";
  32 +
  33 + public static ChengZhangFragment newInstance(String type) {
  34 + Bundle bundle = new Bundle();
  35 + bundle.putString("type", type);
  36 + ChengZhangFragment chengZhangFragment = new ChengZhangFragment();
  37 + chengZhangFragment.setArguments(bundle);
  38 + return chengZhangFragment;
  39 + }
  40 +
  41 + RecyclerView recyclerView;
  42 +
  43 + ReportAdapter reportAdapter;
  44 +
  45 + MonthWeekMaterialCalendarView monthWeekMaterialCalendarView = null;
  46 +
  47 + private CalendarDay selectedDate;
  48 +
  49 + MaterialCalendarView calendarView_month_mode;
  50 +
  51 + private String type = "";
  52 +
  53 + LinearLayout layout_chengzhang, layout_report, layout_kaoqin, layout_buka, layout_qingjia;
  54 +
  55 + @Override
  56 + public int getLayoutId() {
  57 + return R.layout.fragment_cheng_zhang;
  58 + }
  59 +
  60 + @Override
  61 + public void initUI(View view, @Nullable Bundle savedInstanceState) {
  62 +
  63 + layout_report = view.findViewById(R.id.layout_report);
  64 + recyclerView = view.findViewById(R.id.recycle_report);
  65 + layout_kaoqin = view.findViewById(R.id.layout_kaoqin);
  66 + layout_buka = view.findViewById(R.id.layout_buka);
  67 + layout_qingjia = view.findViewById(R.id.layout_qingjia);
  68 + calendarView_month_mode = view.findViewById(R.id.calendarView_month_mode);
  69 + monthWeekMaterialCalendarView = view.findViewById(R.id.slidelayout);
  70 + layout_chengzhang = view.findViewById(R.id.layout_chengzhang);
  71 +
  72 + layout_kaoqin.setOnClickListener(this);
  73 + layout_buka.setOnClickListener(this);
  74 + layout_qingjia.setOnClickListener(this);
  75 +
  76 + type = getArguments().getString("type");
  77 + if (type.equals(TYPE_CHENGZHANG)) {
  78 + layout_chengzhang.setVisibility(View.VISIBLE);
  79 + layout_report.setVisibility(View.GONE);
  80 +
  81 + } else {
  82 +
  83 + layout_chengzhang.setVisibility(View.GONE);
  84 + layout_report.setVisibility(View.VISIBLE);
  85 +
  86 + initCalendarView();
  87 + initReportList();
  88 +
  89 + }
  90 + }
  91 +
  92 + private void initCalendarView() {
  93 +
  94 + showDate();
  95 + selectedDate = CalendarDay.today();
  96 + monthWeekMaterialCalendarView.setMode(MonthWeekMaterialCalendarView.Mode.WEEK);
  97 + monthWeekMaterialCalendarView.setCurrentDate(selectedDate);
  98 + monthWeekMaterialCalendarView.setSelectedDate(selectedDate);
  99 + monthWeekMaterialCalendarView.state().edit().setSlideModeChangeListener(new MonthWeekMaterialCalendarView.SlideModeChangeListener() {
  100 + @Override
  101 + public void modeChange(MonthWeekMaterialCalendarView.Mode mode) {
  102 +
  103 + }
  104 + }).setSlideDateSelectedlistener(new MonthWeekMaterialCalendarView.SlideDateSelectedlistener() {
  105 + @Override
  106 + public void onDateSelected(@NonNull MaterialCalendarView widget, @NonNull CalendarDay date, boolean selected) {
  107 + selectedDate = date;
  108 + showDate();
  109 +
  110 + }
  111 + }).setSlideOnMonthChangedListener(new MonthWeekMaterialCalendarView.SlideOnMonthChangedListener() {
  112 + @Override
  113 + public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) {
  114 + selectedDate = date;
  115 + showDate();
  116 + }
  117 + }).commit();
  118 +
  119 + }
  120 +
  121 + private void showDate() {
  122 +// tvDate.setText(selectedDate.getYear() + "年" + (selectedDate.getMonth() + 1) + "月");
  123 + }
  124 +
  125 + private void initReportList() {
  126 + mPresenter.reportResult();
  127 + }
  128 +
  129 + @Override
  130 + public void UpdateList(List<ReportBean> list) {
  131 + reportAdapter = new ReportAdapter(getActivity());
  132 + reportAdapter.addAll(list);
  133 + recyclerView.setAdapter(reportAdapter);
  134 + }
  135 +
  136 + @Override
  137 + public void showReports(List<String> stringList) {
  138 + if (null != handler) {
  139 + Message message = handler.obtainMessage();
  140 + message.obj = stringList;
  141 + handler.sendMessage(message);
  142 + }
  143 + }
  144 +
  145 + @Override
  146 + public void onClick(View view) {
  147 + switch (view.getId()) {
  148 + case R.id.layout_kaoqin:
  149 +
  150 + break;
  151 + case R.id.layout_buka:
  152 +
  153 + break;
  154 + case R.id.layout_qingjia:
  155 +
  156 + break;
  157 + }
  158 + }
  159 +
  160 + @NonNull
  161 + @Override
  162 + public BasePresenter initPresenter() {
  163 + return new ReportPresenter();
  164 + }
  165 +
  166 + Handler handler = null;
  167 +
  168 + public void showShaixuan(Handler handler) {
  169 + this.handler = handler;
  170 + mPresenter.getReports();
  171 + }
  172 +}
... ...
app/src/main/java/com/shunzhi/parent/util/SystemHelper.java
... ... @@ -23,6 +23,7 @@ import android.net.NetworkInfo.State;
23 23 import android.net.Uri;
24 24 import android.os.Build;
25 25 import android.support.v4.app.ActivityCompat;
  26 +import android.support.v4.content.FileProvider;
26 27 import android.telephony.TelephonyManager;
27 28 import android.util.DisplayMetrics;
28 29 import android.view.Window;
... ... @@ -41,6 +42,7 @@ import timber.log.Timber;
41 42  
42 43 /**
43 44 * 获取系统信息的工具类
  45 + *
44 46 * @author hjgang
45 47 */
46 48 public class SystemHelper {
... ... @@ -50,6 +52,7 @@ public class SystemHelper {
50 52 /**
51 53 * 创建本应用的桌面快捷方式<br/>
52 54 * 注意:需要添加权限&lt;uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/&gt;
  55 + *
53 56 * @param
54 57 */
55 58 public static void createShortcut(Context context, Class<?> clazz) {
... ... @@ -74,6 +77,7 @@ public class SystemHelper {
74 77  
75 78 /**
76 79 * 字符串转换成date
  80 + *
77 81 * @param time
78 82 * @return
79 83 */
... ... @@ -92,6 +96,7 @@ public class SystemHelper {
92 96  
93 97 /**
94 98 * 将字符串转为 时间戳
  99 + *
95 100 * @param time
96 101 * @return
97 102 */
... ... @@ -111,7 +116,7 @@ public class SystemHelper {
111 116 /**
112 117 * 将时间戳转为 字符串
113 118 * yyyy-MM-dd HH:mm
114   - * */
  119 + */
115 120 public static String getTimeStr(String time) {
116 121  
117 122 String newtime = null;
... ... @@ -125,7 +130,7 @@ public class SystemHelper {
125 130 /**
126 131 * 将时间戳转为 字符串
127 132 * yyyy-MM-dd
128   - * */
  133 + */
129 134 public static String getTimeStr3(String time) {
130 135 String newtime = null;
131 136 SimpleDateFormat sdfDateFormat = new SimpleDateFormat("yyyy-MM-dd");
... ... @@ -177,11 +182,11 @@ public class SystemHelper {
177 182 }
178 183  
179 184 /**
180   - * @author LuoB.
181 185 * @param oldTime 较小的时间
182 186 * @param newTime 较大的时间 (如果为空 默认当前时间 ,表示和当前时间相比)
183 187 * @return -1 :同一天. 0:昨天 . 1 :至少是前天.
184 188 * @throws ParseException 转换异常
  189 + * @author LuoB.
185 190 */
186 191 public static int isYeaterday(Date oldTime, Date newTime) throws ParseException {
187 192 if (newTime == null) {
... ... @@ -204,6 +209,7 @@ public class SystemHelper {
204 209 /**
205 210 * 检查是否已经创建了桌面快捷方式<br/>
206 211 * 注意:需要添加权限&lt;uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/&gt;
  212 + *
207 213 * @param context
208 214 * @return
209 215 */
... ... @@ -336,6 +342,7 @@ public class SystemHelper {
336 342  
337 343 /**
338 344 * 返回当前程序版本代码,如:1
  345 + *
339 346 * @param context
340 347 * @return 当前程序版本代码
341 348 */
... ... @@ -347,7 +354,7 @@ public class SystemHelper {
347 354 versionCode = pi.versionCode;
348 355  
349 356 } catch (Exception e) {
350   - Timber.d("66666%s" ,e.toString()+ "");
  357 + Timber.d("66666%s", e.toString() + "");
351 358 }
352 359 return versionCode;
353 360 }
... ... @@ -375,13 +382,20 @@ public class SystemHelper {
375 382 * 安装指定的APK文件,主要用于本应用程序的更新
376 383 *
377 384 * @param context
378   - * @param apk
379   - * apk文件的全路径名
  385 + * @param apk apk文件的全路径名
380 386 */
381 387 public static void installAPK(Context context, String apk) {
382 388 Intent intent = new Intent(Intent.ACTION_VIEW);
383 389 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
384   - intent.setDataAndType(Uri.fromFile(new File(apk)), "application/vnd.android.package-archive");
  390 + Uri data;
  391 +
  392 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
  393 + data = FileProvider.getUriForFile(context, "com.shunzhi.parent.fileprovider", new File(apk));
  394 +// 给目标应用一个临时授权
  395 + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
  396 + } else data = Uri.fromFile(new File(apk));
  397 +
  398 + intent.setDataAndType(data, "application/vnd.android.package-archive");
385 399 context.startActivity(intent);
386 400 android.os.Process.killProcess(android.os.Process.myPid());
387 401 }
... ...
app/src/main/res/drawable-hdpi/kaoqin.png 0 → 100644

878 Bytes

app/src/main/res/drawable-xhdpi/kaoqin.png 0 → 100644

1.04 KB

app/src/main/res/drwable-xxhdpi/kaoqin.png 0 → 100644

4.16 KB

app/src/main/res/layout/fragment_cheng_zhang.xml 0 → 100644
... ... @@ -0,0 +1,125 @@
  1 +<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2 + xmlns:tools="http://schemas.android.com/tools"
  3 + android:layout_width="match_parent"
  4 + android:layout_height="match_parent"
  5 + android:background="@color/white"
  6 + tools:context="com.shunzhi.parent.ui.fragment.report.ChengZhangFragment">
  7 +
  8 + <include layout="@layout/layout_chengzhang"/>
  9 +
  10 + <LinearLayout
  11 + android:layout_margin="@dimen/size_dp_10"
  12 + android:id="@+id/layout_report"
  13 + android:layout_width="match_parent"
  14 + android:layout_height="match_parent"
  15 + android:orientation="vertical">
  16 +
  17 + <!--<include layout="@layout/layout_week" /> android:layout_below="@+id/linearlayout"-->
  18 +
  19 + <com.amy.monthweek.materialcalendarview.MonthWeekMaterialCalendarView xmlns:app="http://schemas.android.com/apk/res-auto"
  20 + android:id="@+id/slidelayout"
  21 + android:layout_width="match_parent"
  22 + android:layout_height="match_parent">
  23 +
  24 + <com.prolificinteractive.materialcalendarview.MaterialCalendarView
  25 + android:id="@+id/calendarView_month_mode"
  26 + android:layout_width="match_parent"
  27 + android:layout_height="wrap_content"
  28 + android:background="@color/white"
  29 + app:mcv_calendarMode="month"
  30 + app:mcv_dateTextAppearance="@style/TextAppearance.MaterialCalendarWidget.Date"
  31 + app:mcv_selectionColor="@color/huodong_blue"
  32 + app:mcv_showOtherDates="defaults|other_months"
  33 + app:mcv_showWeekView="false" />
  34 +
  35 + <com.prolificinteractive.materialcalendarview.MaterialCalendarView
  36 + android:id="@+id/calendarView_week_mode"
  37 + android:layout_width="match_parent"
  38 + android:layout_height="wrap_content"
  39 + android:background="@android:color/white"
  40 + android:visibility="invisible"
  41 + app:mcv_calendarMode="week"
  42 + app:mcv_dateTextAppearance="@style/TextAppearance.MaterialCalendarWidget.Date"
  43 + app:mcv_selectionColor="@color/huodong_blue"
  44 + app:mcv_showTopBar="false"
  45 + app:mcv_showWeekView="false" />
  46 +
  47 + <android.support.v7.widget.RecyclerView
  48 + android:id="@+id/recycle_report"
  49 + android:layout_width="match_parent"
  50 + android:layout_height="match_parent"
  51 + android:background="@color/bgColor"
  52 + >
  53 +
  54 + </android.support.v7.widget.RecyclerView>
  55 +
  56 + <LinearLayout
  57 + android:id="@+id/weekview_top"
  58 + android:layout_width="match_parent"
  59 + android:layout_height="44dp"
  60 + android:background="@color/white"
  61 + android:orientation="horizontal">
  62 +
  63 + <TextView
  64 + android:layout_width="0dp"
  65 + android:layout_height="match_parent"
  66 + android:layout_weight="1"
  67 + android:gravity="center"
  68 + android:text="周日"
  69 + android:textSize="@dimen/textSize16" />
  70 +
  71 + <TextView
  72 + android:layout_width="0dp"
  73 + android:layout_height="match_parent"
  74 + android:layout_weight="1"
  75 + android:gravity="center"
  76 + android:text="周一"
  77 + android:textSize="@dimen/textSize16" />
  78 +
  79 + <TextView
  80 + android:layout_width="0dp"
  81 + android:layout_height="match_parent"
  82 + android:layout_weight="1"
  83 + android:gravity="center"
  84 + android:text="周二"
  85 + android:textSize="@dimen/textSize16" />
  86 +
  87 + <TextView
  88 + android:layout_width="0dp"
  89 + android:layout_height="match_parent"
  90 + android:layout_weight="1"
  91 + android:gravity="center"
  92 + android:text="周三"
  93 + android:textSize="@dimen/textSize16" />
  94 +
  95 + <TextView
  96 + android:layout_width="0dp"
  97 + android:layout_height="match_parent"
  98 + android:layout_weight="1"
  99 + android:gravity="center"
  100 + android:text="周四"
  101 + android:textSize="@dimen/textSize16" />
  102 +
  103 + <TextView
  104 + android:layout_width="0dp"
  105 + android:layout_height="match_parent"
  106 + android:layout_weight="1"
  107 + android:gravity="center"
  108 + android:text="周五"
  109 + android:textSize="@dimen/textSize16" />
  110 +
  111 + <TextView
  112 + android:layout_width="0dp"
  113 + android:layout_height="match_parent"
  114 + android:layout_weight="1"
  115 + android:gravity="center"
  116 + android:text="周六"
  117 + android:textSize="@dimen/textSize16" />
  118 +
  119 + </LinearLayout>
  120 +
  121 + </com.amy.monthweek.materialcalendarview.MonthWeekMaterialCalendarView>
  122 +
  123 + </LinearLayout>
  124 +
  125 +</FrameLayout>
... ...
app/src/main/res/layout/fragment_consult_one_level.xml
... ... @@ -10,6 +10,7 @@
10 10 android:id="@+id/recyclerViewGrally"
11 11 android:layout_width="match_parent"
12 12 android:layout_height="180dp"
  13 + android:background="@color/bgColor"
13 14 ></android.support.v7.widget.RecyclerView>
14 15  
15 16 <include layout="@layout/layout_textandimgshow"/>
... ...
app/src/main/res/layout/fragment_report.xml
... ... @@ -2,11 +2,12 @@
2 2 xmlns:tools="http://schemas.android.com/tools"
3 3 android:layout_width="match_parent"
4 4 android:layout_height="match_parent"
  5 + xmlns:app="http://schemas.android.com/apk/res-auto"
5 6 android:background="@color/bgColor"
6 7 android:orientation="vertical"
7 8 tools:context="com.shunzhi.parent.ui.fragment.ReportFragment">
8 9  
9   - <LinearLayout
  10 + <FrameLayout
10 11 android:id="@+id/top_layout"
11 12 android:layout_width="match_parent"
12 13 android:layout_height="?android:actionBarSize"
... ... @@ -26,6 +27,7 @@
26 27 android:textSize="@dimen/textSize16" />
27 28  
28 29 <TextView
  30 + android:visibility="gone"
29 31 android:id="@+id/tvDate"
30 32 android:layout_width="wrap_content"
31 33 android:layout_height="wrap_content"
... ... @@ -36,22 +38,38 @@
36 38 android:textColor="@color/white"
37 39 android:textSize="@dimen/textSize18" />
38 40  
  41 + <android.support.design.widget.TabLayout
  42 + android:layout_width="wrap_content"
  43 + android:layout_gravity="center"
  44 + app:tabIndicatorColor="@color/white"
  45 + app:tabSelectedTextColor="@color/white"
  46 + app:tabTextColor="@color/textColor"
  47 + app:tabMaxWidth="@dimen/size_dp_60"
  48 + android:layout_height="wrap_content"
  49 + android:id="@+id/tabLayout"
  50 + app:tabIndicatorHeight="@dimen/size_dp_3"
  51 + app:tabMode="scrollable"
  52 + app:tabGravity="fill"
  53 + app:tabTextAppearance="@style/TextView_Wrap_16"
  54 + ></android.support.design.widget.TabLayout>
  55 +
39 56 <TextView
40 57 android:id="@+id/tvShaiXuan"
  58 + android:visibility="gone"
41 59 android:layout_width="wrap_content"
42 60 android:layout_height="wrap_content"
43   - android:layout_gravity="center_vertical"
  61 + android:layout_gravity="center_vertical|right"
44 62 android:drawableRight="@drawable/screen"
45 63 android:text="筛选"
46 64 android:textColor="@color/white"
47 65 android:textSize="@dimen/textSize16" />
48   - </LinearLayout>
  66 + </FrameLayout>
49 67  
50 68 <RelativeLayout
51 69 android:layout_width="match_parent"
52 70 android:layout_height="match_parent"
53 71 android:background="@color/white"
54   - android:visibility="gone"
  72 + android:visibility="visible"
55 73  
56 74 >
57 75  
... ... @@ -66,118 +84,12 @@
66 84 android:textSize="@dimen/size_dp_16" />
67 85 </RelativeLayout>
68 86  
69   - <LinearLayout
  87 + <android.support.v4.view.ViewPager
  88 + android:visibility="visible"
70 89 android:layout_width="match_parent"
71 90 android:layout_height="match_parent"
72   - android:orientation="vertical">
73   -
74   - <!--<include layout="@layout/layout_week" /> android:layout_below="@+id/linearlayout"-->
75   -
76   - <com.amy.monthweek.materialcalendarview.MonthWeekMaterialCalendarView xmlns:app="http://schemas.android.com/apk/res-auto"
77   - android:id="@+id/slidelayout"
78   - android:layout_width="match_parent"
79   - android:layout_height="match_parent">
80   -
81   - <com.prolificinteractive.materialcalendarview.MaterialCalendarView
82   - android:id="@+id/calendarView_month_mode"
83   - android:layout_width="match_parent"
84   - android:layout_height="wrap_content"
85   - android:background="@color/white"
86   - app:mcv_calendarMode="month"
87   - app:mcv_dateTextAppearance="@style/TextAppearance.MaterialCalendarWidget.Date"
88   - app:mcv_selectionColor="@color/huodong_blue"
89   - app:mcv_showOtherDates="defaults|other_months"
90   - app:mcv_showWeekView="false" />
91   -
92   - <com.prolificinteractive.materialcalendarview.MaterialCalendarView
93   - android:id="@+id/calendarView_week_mode"
94   - android:layout_width="match_parent"
95   - android:layout_height="wrap_content"
96   - android:background="@android:color/white"
97   - android:visibility="invisible"
98   - app:mcv_calendarMode="week"
99   - app:mcv_dateTextAppearance="@style/TextAppearance.MaterialCalendarWidget.Date"
100   - app:mcv_selectionColor="@color/huodong_blue"
101   - app:mcv_showTopBar="false"
102   - app:mcv_showWeekView="false" />
103   -
104   -
105   - <android.support.v7.widget.RecyclerView
106   - android:id="@+id/recycle_report"
107   - android:layout_width="match_parent"
108   - android:layout_height="match_parent"
109   - android:background="@color/bgColor"
110   - android:padding="@dimen/size_dp_10">
111   -
112   - </android.support.v7.widget.RecyclerView>
113   -
114   - <LinearLayout
115   - android:id="@+id/weekview_top"
116   - android:layout_width="match_parent"
117   - android:layout_height="44dp"
118   - android:background="@color/white"
119   - android:orientation="horizontal">
120   -
121   - <TextView
122   - android:layout_width="0dp"
123   - android:layout_height="match_parent"
124   - android:layout_weight="1"
125   - android:gravity="center"
126   - android:text="周日"
127   - android:textSize="@dimen/textSize16" />
128   -
129   - <TextView
130   - android:layout_width="0dp"
131   - android:layout_height="match_parent"
132   - android:layout_weight="1"
133   - android:gravity="center"
134   - android:text="周一"
135   - android:textSize="@dimen/textSize16" />
136   -
137   - <TextView
138   - android:layout_width="0dp"
139   - android:layout_height="match_parent"
140   - android:layout_weight="1"
141   - android:gravity="center"
142   - android:text="周二"
143   - android:textSize="@dimen/textSize16" />
144   -
145   - <TextView
146   - android:layout_width="0dp"
147   - android:layout_height="match_parent"
148   - android:layout_weight="1"
149   - android:gravity="center"
150   - android:text="周三"
151   - android:textSize="@dimen/textSize16" />
152   -
153   - <TextView
154   - android:layout_width="0dp"
155   - android:layout_height="match_parent"
156   - android:layout_weight="1"
157   - android:gravity="center"
158   - android:text="周四"
159   - android:textSize="@dimen/textSize16" />
160   -
161   - <TextView
162   - android:layout_width="0dp"
163   - android:layout_height="match_parent"
164   - android:layout_weight="1"
165   - android:gravity="center"
166   - android:text="周五"
167   - android:textSize="@dimen/textSize16" />
168   -
169   - <TextView
170   - android:layout_width="0dp"
171   - android:layout_height="match_parent"
172   - android:layout_weight="1"
173   - android:gravity="center"
174   - android:text="周六"
175   - android:textSize="@dimen/textSize16" />
176   -
177   - </LinearLayout>
178   -
179   - </com.amy.monthweek.materialcalendarview.MonthWeekMaterialCalendarView>
  91 + android:id="@+id/viewPager"
  92 + ></android.support.v4.view.ViewPager>
180 93  
181   - </LinearLayout>
182 94  
183 95 </LinearLayout>
... ...
app/src/main/res/layout/fragment_start.xml
1 1 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2 + xmlns:app="http://schemas.android.com/apk/res-auto"
2 3 xmlns:tools="http://schemas.android.com/tools"
3 4 android:layout_width="match_parent"
4 5 android:layout_height="match_parent"
5 6 android:background="@color/bgColor"
6   - xmlns:app="http://schemas.android.com/apk/res-auto"
7 7 tools:context="com.shunzhi.parent.ui.fragment.StartFragment">
8 8  
9   - <com.stx.xhb.xbanner.XBanner
  9 + <LinearLayout
10 10 android:layout_width="match_parent"
11 11 android:layout_height="match_parent"
12   - android:id="@+id/xBanner"
13   - ></com.stx.xhb.xbanner.XBanner>
  12 + android:orientation="vertical">
14 13  
15   - <cn.jzvd.JZVideoPlayerStandard
16   - android:id="@+id/jiecaoVideo"
17   - android:visibility="gone"
18   - android:layout_width="match_parent"
19   - android:layout_height="match_parent"></cn.jzvd.JZVideoPlayerStandard>
  14 + <com.stx.xhb.xbanner.XBanner
  15 + android:id="@+id/xBanner"
  16 + android:layout_width="match_parent"
  17 + android:layout_height="match_parent"></com.stx.xhb.xbanner.XBanner>
  18 +
  19 + <com.share.mvpsdk.view.MyVieoView
  20 + android:id="@+id/myVideoView"
  21 + android:layout_width="match_parent"
  22 + android:layout_height="match_parent"
  23 + android:visibility="visible" />
  24 + </LinearLayout>
20 25  
21 26 <TextView
22 27 android:id="@+id/tvJump"
23 28 android:layout_width="@dimen/size_dp_50"
24 29 android:layout_height="@dimen/size_dp_50"
25   - android:text="跳过"
26   - android:gravity="center"
27   - android:textColor="@color/white"
28   - android:textSize="@dimen/size_dp_12"
29 30 android:layout_gravity="right"
30 31 android:layout_margin="@dimen/size_dp_10"
31 32 android:background="@drawable/shape_xueqing_radius25"
32   - />
  33 + android:gravity="center"
  34 + android:text="跳过"
  35 + android:textColor="@color/white"
  36 + android:textSize="@dimen/size_dp_12" />
33 37 </FrameLayout>
... ...
app/src/main/res/layout/item_grally.xml
... ... @@ -2,9 +2,8 @@
2 2 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 3 android:layout_width="wrap_content"
4 4 android:layout_height="match_parent"
5   - android:layout_margin="@dimen/size_dp_10"
6 5 android:id="@+id/frame_root"
7   - android:background="@color/txt_black">
  6 + android:background="@color/white">
8 7  
9 8  
10 9 <ImageView
... ... @@ -22,8 +21,8 @@
22 21 android:paddingBottom="@dimen/size_dp_3"
23 22 android:paddingLeft="@dimen/size_dp_10"
24 23 android:paddingTop="@dimen/size_dp_3"
25   - android:text="撒飞洒发发"
26   - android:textColor="@color/white"
  24 + android:text=""
  25 + android:textColor="@color/textColor"
27 26 android:textSize="@dimen/textSize16" />
28 27  
29 28 </FrameLayout>
30 29 \ No newline at end of file
... ...
app/src/main/res/layout/item_report_deyu.xml
1 1 <?xml version="1.0" encoding="utf-8"?>
2 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 3 android:layout_width="match_parent"
4   - android:layout_height="wrap_content">
  4 + android:layout_height="wrap_content"
  5 + android:background="@color/bgColor">
5 6  
6 7 <LinearLayout
7 8 android:layout_width="match_parent"
... ...
app/src/main/res/layout/layout_chengzhang.xml 0 → 100644
... ... @@ -0,0 +1,108 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:id="@+id/layout_chengzhang"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent"
  6 + android:background="@color/white"
  7 + android:layout_margin="@dimen/size_dp_10"
  8 + android:orientation="vertical">
  9 +
  10 + <TextView
  11 + android:layout_width="wrap_content"
  12 + android:layout_height="wrap_content"
  13 + android:layout_gravity="center_horizontal"
  14 + android:layout_marginTop="@dimen/size_dp_10"
  15 + android:text="智能校卫"
  16 + android:textColor="@color/textColor"
  17 + android:textSize="@dimen/size_dp_16" />
  18 +
  19 +
  20 + <LinearLayout
  21 + android:id="@+id/layout_kaoqin"
  22 + android:layout_width="match_parent"
  23 + android:layout_height="?android:actionBarSize"
  24 + android:layout_marginLeft="@dimen/size_dp_10"
  25 + android:layout_marginRight="@dimen/size_dp_10"
  26 + android:layout_marginTop="@dimen/size_dp_10"
  27 + android:background="@drawable/shape_corner_bg"
  28 + android:orientation="horizontal">
  29 +
  30 + <ImageView
  31 + android:layout_width="wrap_content"
  32 + android:layout_height="match_parent"
  33 + android:layout_gravity="center_vertical"
  34 + android:layout_margin="@dimen/size_dp_5"
  35 + android:scaleType="fitCenter"
  36 + android:src="@drawable/kaoqin" />
  37 +
  38 + <TextView
  39 + android:layout_width="wrap_content"
  40 + android:layout_height="wrap_content"
  41 + android:layout_gravity="center_vertical"
  42 + android:layout_marginLeft="@dimen/size_dp_15"
  43 + android:text="考勤"
  44 + android:textColor="@color/textColor"
  45 + android:textSize="@dimen/size_dp_16" />
  46 +
  47 + </LinearLayout>
  48 +
  49 +
  50 + <LinearLayout
  51 + android:id="@+id/layout_buka"
  52 + android:layout_width="match_parent"
  53 + android:layout_height="?android:actionBarSize"
  54 + android:layout_marginLeft="@dimen/size_dp_10"
  55 + android:layout_marginRight="@dimen/size_dp_10"
  56 + android:layout_marginTop="@dimen/size_dp_10"
  57 + android:background="@drawable/shape_corner_bg"
  58 + android:orientation="horizontal">
  59 +
  60 + <ImageView
  61 + android:layout_width="wrap_content"
  62 + android:layout_height="wrap_content"
  63 + android:layout_gravity="center_vertical"
  64 + android:layout_margin="@dimen/size_dp_5"
  65 + android:scaleType="fitXY"
  66 + android:src="@drawable/kaoqin" />
  67 +
  68 + <TextView
  69 + android:layout_width="wrap_content"
  70 + android:layout_height="wrap_content"
  71 + android:layout_gravity="center_vertical"
  72 + android:layout_marginLeft="@dimen/size_dp_15"
  73 + android:text="补卡"
  74 + android:textColor="@color/textColor"
  75 + android:textSize="@dimen/size_dp_16" />
  76 +
  77 + </LinearLayout>
  78 +
  79 + <LinearLayout
  80 + android:id="@+id/layout_qingjia"
  81 + android:layout_width="match_parent"
  82 + android:layout_height="?android:actionBarSize"
  83 + android:layout_marginLeft="@dimen/size_dp_10"
  84 + android:layout_marginRight="@dimen/size_dp_10"
  85 + android:layout_marginTop="@dimen/size_dp_10"
  86 + android:background="@drawable/shape_corner_bg"
  87 + android:orientation="horizontal">
  88 +
  89 + <ImageView
  90 + android:layout_width="wrap_content"
  91 + android:layout_height="wrap_content"
  92 + android:layout_gravity="center_vertical"
  93 + android:layout_margin="@dimen/size_dp_5"
  94 + android:scaleType="fitXY"
  95 + android:src="@drawable/kaoqin" />
  96 +
  97 + <TextView
  98 + android:layout_width="wrap_content"
  99 + android:layout_height="wrap_content"
  100 + android:layout_gravity="center_vertical"
  101 + android:layout_marginLeft="@dimen/size_dp_15"
  102 + android:text="请假"
  103 + android:textColor="@color/textColor"
  104 + android:textSize="@dimen/size_dp_16" />
  105 +
  106 + </LinearLayout>
  107 +
  108 +</LinearLayout>
0 109 \ No newline at end of file
... ...
app/src/main/res/menu/bottom_navigationview.xml
1 1 <?xml version="1.0" encoding="utf-8"?>
2 2 <menu xmlns:android="http://schemas.android.com/apk/res/android">
3 3  
4   - <item android:id="@+id/menu_item_index"
5   - android:icon="@drawable/selector_ceping"
6   - android:title="慧测慧练"
7   - ></item>
  4 + <!--<item android:id="@+id/menu_item_index"-->
  5 + <!--android:icon="@drawable/selector_ceping"-->
  6 + <!--android:title="慧测慧练"-->
  7 + <!--&gt;</item>-->
8 8  
9 9  
10 10 <item android:id="@+id/menu_item_consult"
11 11 android:icon="@drawable/selector_consult"
12   - android:title="资讯频道"
  12 + android:title="资讯"
13 13 ></item>
14 14  
15 15  
16 16 <item android:id="@+id/menu_item_report"
17 17 android:icon="@drawable/selector_report"
18   - android:title="报告"
  18 + android:title="成长"
19 19 ></item>
20 20  
21 21  
22 22 <item android:id="@+id/menu_item_mine"
23 23 android:icon="@drawable/selector_ceping"
24   - android:title="个人中心"
  24 + android:title="我的"
25 25 ></item>
26 26  
27 27 </menu>
28 28 \ No newline at end of file
... ...
app/src/main/res/values/strings.xml
... ... @@ -5,6 +5,6 @@
5 5 <string name="hello_blank_fragment">Hello blank fragment</string>
6 6  
7 7 <string name="ceping">慧测慧练</string>
8   - <string name="consult_huati">咨询话题</string>
  8 + <string name="consult_huati">热门资讯</string>
9 9 <string name="order_detail">订单详情</string>
10 10 </resources>
... ...
app/src/main/res/xml/filepaths.xml 0 → 100644
... ... @@ -0,0 +1,4 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<path>
  3 + <external-path path="download/" name="files_path"/>
  4 +</path>
0 5 \ No newline at end of file
... ...
mvpsdk/src/main/java/com/share/mvpsdk/view/MyVieoView.java 0 → 100644
... ... @@ -0,0 +1,115 @@
  1 +package com.share.mvpsdk.view;
  2 +
  3 +import android.content.Context;
  4 +import android.media.MediaMetadataRetriever;
  5 +import android.media.MediaPlayer;
  6 +import android.net.Uri;
  7 +import android.text.TextUtils;
  8 +import android.util.AttributeSet;
  9 +import android.util.Log;
  10 +import android.widget.MediaController;
  11 +import android.widget.VideoView;
  12 +
  13 +/**
  14 + * Created by ToaHanDong on 2018/4/10.
  15 + */
  16 +
  17 +public class MyVieoView extends VideoView {
  18 +
  19 + private Context mContext = null;
  20 +
  21 + //最终的视频资源宽度
  22 + private int mVideoWidth = 480;
  23 +
  24 + //最终视频资源高度
  25 + private int mVideoHeight = 480;
  26 +
  27 + //视频资源原始宽度
  28 + private int videoRealW = 1;
  29 +
  30 + //视频资源原始高度
  31 + private int videoRealH = 1;
  32 +
  33 + private String url = "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4";
  34 +
  35 + public MyVieoView(Context context) {
  36 + super(context);
  37 + mContext = context;
  38 + }
  39 +
  40 + public MyVieoView(Context context, AttributeSet attrs) {
  41 + super(context, attrs);
  42 + mContext = context;
  43 + }
  44 +
  45 + public MyVieoView(Context context, AttributeSet attrs, int defStyleAttr) {
  46 + super(context, attrs, defStyleAttr);
  47 + mContext = context;
  48 + }
  49 +
  50 + public void setVideoPath(String urlPath) {
  51 +
  52 +// if (TextUtils.isEmpty(urlPath)) urlPath = url;
  53 + setVideoURI(Uri.parse(urlPath));
  54 + //创建视频播放时的控制器,这个控制器可以自定义。此处是默认的实现
  55 + setMediaController(null);
  56 + //请求焦点
  57 + requestFocus();
  58 + //设置播放监听
  59 + setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
  60 + @Override
  61 + public void onPrepared(MediaPlayer mediaPlayer) {
  62 + // optional need Vitamio 4.0
  63 + //设置重放速度
  64 +// mediaPlayer.setPlaybackSpeed(1.0f);
  65 + }
  66 + });
  67 + //加载结束后开始播放,这行代码可以控制视频的播放。
  68 + start();
  69 +
  70 + }
  71 +
  72 +
  73 + @Override
  74 + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
  75 + int width = getDefaultSize(0, widthMeasureSpec);
  76 + int height = getDefaultSize(0, heightMeasureSpec);
  77 + if (height > width) {
  78 + //竖屏
  79 + if (videoRealH > videoRealW) {
  80 + //如果视频资源是竖屏
  81 + //占满屏幕
  82 + mVideoHeight = height;
  83 + mVideoWidth = width;
  84 + } else {
  85 + //如果视频资源是横屏
  86 + //宽度占满,高度保存比例
  87 + mVideoWidth = width;
  88 + float r = videoRealH / (float) videoRealW;
  89 +// mVideoHeight = (int) (mVideoWidth * r);
  90 + mVideoHeight=height;
  91 + }
  92 + } else {
  93 + //横屏
  94 + if (videoRealH > videoRealW) {
  95 + //如果视频资源是竖屏
  96 + //宽度占满,高度保存比例
  97 + mVideoHeight = height;
  98 + float r = videoRealW / (float) videoRealH;
  99 + mVideoWidth = (int) (mVideoHeight * r);
  100 + } else {
  101 + //如果视频资源是横屏
  102 + //占满屏幕
  103 + mVideoHeight = height;
  104 + mVideoWidth = width;
  105 + }
  106 + }
  107 + setMeasuredDimension(mVideoWidth, mVideoHeight);
  108 +// if (videoRealH == videoRealW && videoRealH == 1) {
  109 +// //没能获取到视频真实的宽高,自适应就可以了,什么也不用做
  110 +// super.onMeasure(widthMeasureSpec, heightMeasureSpec);
  111 +// } else {
  112 +// setMeasuredDimension(mVideoWidth, mVideoHeight);
  113 +// }
  114 + }
  115 +}
... ...