Commit fd11b76fdf9764a5578deebbb6491c9a22b7ccc3
Exists in
yxb_dev
and in
2 other branches
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<ReportBean> { |
| 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
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<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<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<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<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<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<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<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<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<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<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<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<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<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<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<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 | * 注意:需要添加权限<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> |
| 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 | * 注意:需要添加权限<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/> |
| 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 | } | ... | ... |
878 Bytes
1.04 KB
4.16 KB
| ... | ... | @@ -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" | ... | ... |
| ... | ... | @@ -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 | + <!--></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> | ... | ... |
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 | +} | ... | ... |