From 7756d1d62c99510d18cb49f46c361e5a3fe12d82 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E4=B8=9C=E5=8D=87?= <2980466844@qq.com>
Date: Fri, 28 May 2021 11:30:30 +0800
Subject: [PATCH] =?UTF-8?q?!4=20=E5=8F=91=E7=8E=B0=20-=E4=BB=BB=E5=8A=A1?=
=?UTF-8?q?=E4=B8=93=E5=8C=BA=20=EF=BC=8C=E6=B4=BB=E5=8A=A8=E4=B8=93?=
=?UTF-8?q?=E5=8C=BA=20*=20=E5=AE=8C=E6=88=90=E5=8F=91=E7=8E=B0-=E4=BB=BB?=
=?UTF-8?q?=E5=8A=A1=E4=B8=93=E5=8C=BA=EF=BC=8C=E6=B4=BB=E5=8A=A8=E4=B8=93?=
=?UTF-8?q?=E5=8C=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 21 +-
...tFragment.java => FragmentManagement.java} | 26 +-
.../myapplication/activity/HomeActivity.java | 13 +-
.../myapplication/activity/LoginActivity.java | 4 +-
.../myapplication/activity/MainActivity.java | 3 +
.../myapplication/activity/WebActivity.java | 49 +++
.../adapter/EventPrefectureAdapter.java | 80 +++++
.../adapter/TaskPrefectureAdapter.java | 79 +++++
.../myapplication/base/BaseActivity.java | 22 +-
.../myapplication/base/BaseFragment.java | 28 +-
...ZoneBean.java => EventPrefectureBean.java} | 10 +-
.../myapplication/bean/TaskExplainBean.java | 144 ++++++++
.../bean/TaskSpecificationBean.java | 16 +-
.../bean/TaskSpecificationInfo.java | 5 -
.../fragment/CapacityEvaluationFragment.java | 8 +-
.../fragment/EventPrefectureFragment.java | 161 +++++++++
.../myapplication/fragment/FindFragment.java | 29 +-
.../fragment/RecordFragment.java | 28 --
.../fragment/RegisterFragment.java | 45 +--
.../fragment/TaskExplainFragment.java | 8 +-
.../fragment/TaskExplainFragment2.java | 4 +-
.../fragment/TaskPrefectureFragment.java | 121 ++++++-
.../myapplication/http/HttpInterface.java | 2 +
.../myapplication/util/CustomScrollView.java | 34 ++
.../main/res/drawable/ic_baseline_arrow.xml | 13 +-
.../res/drawable/ic_baseline_arrow_back.xml | 10 +
app/src/main/res/drawable/icon_arrow.xml | 5 +
.../res/drawable/icon_capacity_evaluation.png | Bin 0 -> 937 bytes
.../res/drawable/icon_event_prefecture.png | Bin 0 -> 8110 bytes
.../res/drawable/icon_task_prefecture.png | Bin 0 -> 10123 bytes
.../res/drawable/icon_task_specification.png | Bin 0 -> 847 bytes
app/src/main/res/layout/activity_web.xml | 51 +++
.../res/layout/event_prefecture_fragment.xml | 42 +++
.../main/res/layout/event_prefecture_item.xml | 40 +++
app/src/main/res/layout/find_fragment.xml | 318 +++++++++---------
.../res/layout/task_prefecture_fragment.xml | 13 +-
.../main/res/layout/task_prefecture_item.xml | 38 +++
app/src/main/res/values/strings.xml | 4 +-
app/src/main/res/values/styles.xml | 23 +-
39 files changed, 1189 insertions(+), 308 deletions(-)
rename app/src/main/java/com/example/myapplication/activity/{ManagementFragment.java => FragmentManagement.java} (88%)
create mode 100644 app/src/main/java/com/example/myapplication/activity/WebActivity.java
create mode 100644 app/src/main/java/com/example/myapplication/adapter/EventPrefectureAdapter.java
create mode 100644 app/src/main/java/com/example/myapplication/adapter/TaskPrefectureAdapter.java
rename app/src/main/java/com/example/myapplication/bean/{TaskZoneBean.java => EventPrefectureBean.java} (95%)
create mode 100644 app/src/main/java/com/example/myapplication/bean/TaskExplainBean.java
delete mode 100644 app/src/main/java/com/example/myapplication/bean/TaskSpecificationInfo.java
create mode 100644 app/src/main/java/com/example/myapplication/fragment/EventPrefectureFragment.java
create mode 100644 app/src/main/java/com/example/myapplication/util/CustomScrollView.java
create mode 100644 app/src/main/res/drawable/ic_baseline_arrow_back.xml
create mode 100644 app/src/main/res/drawable/icon_arrow.xml
create mode 100644 app/src/main/res/drawable/icon_capacity_evaluation.png
create mode 100644 app/src/main/res/drawable/icon_event_prefecture.png
create mode 100644 app/src/main/res/drawable/icon_task_prefecture.png
create mode 100644 app/src/main/res/drawable/icon_task_specification.png
create mode 100644 app/src/main/res/layout/activity_web.xml
create mode 100644 app/src/main/res/layout/event_prefecture_fragment.xml
create mode 100644 app/src/main/res/layout/event_prefecture_item.xml
create mode 100644 app/src/main/res/layout/task_prefecture_item.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3659ec9..bbdd103 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,22 +4,22 @@
+
-
-
-
-
-
-
-
-
+
@@ -27,7 +27,10 @@
-
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myapplication/activity/ManagementFragment.java b/app/src/main/java/com/example/myapplication/activity/FragmentManagement.java
similarity index 88%
rename from app/src/main/java/com/example/myapplication/activity/ManagementFragment.java
rename to app/src/main/java/com/example/myapplication/activity/FragmentManagement.java
index 6828a66..794065b 100644
--- a/app/src/main/java/com/example/myapplication/activity/ManagementFragment.java
+++ b/app/src/main/java/com/example/myapplication/activity/FragmentManagement.java
@@ -1,11 +1,14 @@
package com.example.myapplication.activity;
import android.content.Intent;
+import android.os.Bundle;
+import android.view.KeyEvent;
import com.example.myapplication.R;
import com.example.myapplication.base.BaseActivity;
import com.example.myapplication.fragment.CapacityEvaluationFragment;
import com.example.myapplication.fragment.CapacityEvaluationFragment2;
+import com.example.myapplication.fragment.EventPrefectureFragment;
import com.example.myapplication.fragment.FindFragment;
import com.example.myapplication.fragment.ForgetPawFragment;
import com.example.myapplication.fragment.MineFragment;
@@ -27,7 +30,7 @@ import androidx.fragment.app.FragmentTransaction;
* fragment 管理作用:
*/
-public class ManagementFragment extends BaseActivity {
+public class FragmentManagement extends BaseActivity {
private FragmentManager fragmentManager;
private int fourthly_tag;
private MineFragment mineFragment;//我的fragment
@@ -38,6 +41,7 @@ public class ManagementFragment extends BaseActivity {
private CapacityEvaluationFragment capacityEvaluationFragment;//发现-能力测评fragment
private TaskExplainFragment taskExplainFragment;//发现-任务说明的fragment
+ private EventPrefectureFragment eventPrefectureFragment;//发现-活动专区的fragment
private TaskExplainFragment2 taskExplainFragment2;//发现-任务说明2的fragment
private CapacityEvaluationFragment2 capacityEvaluationFragment2;//发现-能力测评2的fragment
@@ -46,6 +50,7 @@ public class ManagementFragment extends BaseActivity {
private ForgetPawFragment forgetPawFragment;//忘记密码fragment
+
@Override
protected int getLayout() {
return R.layout.management_fragment;
@@ -72,6 +77,7 @@ public class ManagementFragment extends BaseActivity {
fragmentTransaction.hide(recordFragment);
if (treasureFragment != null)
fragmentTransaction.hide(treasureFragment);
+ if (taskPrefectureFragment!=null)
if (taskPrefectureFragment != null)
fragmentTransaction.hide(taskPrefectureFragment);
@@ -89,6 +95,8 @@ public class ManagementFragment extends BaseActivity {
fragmentTransaction.hide(registerFragment);
if (forgetPawFragment != null)
fragmentTransaction.hide(forgetPawFragment);
+ if (eventPrefectureFragment != null)
+ fragmentTransaction.hide(eventPrefectureFragment);
}
@@ -163,6 +171,14 @@ public class ManagementFragment extends BaseActivity {
fragmentTransaction.show(taskExplainFragment);
}
break;
+ case 9:
+ if (eventPrefectureFragment == null) {
+ eventPrefectureFragment = new EventPrefectureFragment();
+ fragmentTransaction.add(R.id.frame_layout, eventPrefectureFragment);
+ } else {
+ fragmentTransaction.show(eventPrefectureFragment);
+ }
+ break;
case 10:
if (taskExplainFragment2 == null) {
taskExplainFragment2 = new TaskExplainFragment2();
@@ -221,6 +237,9 @@ public class ManagementFragment extends BaseActivity {
case 8:
taskExplainFragment.onActivityResult(requestCode, resultCode, data);
break;
+ case 9:
+ eventPrefectureFragment.onActivityResult(requestCode,resultCode,data);
+ break;
case 10:
taskExplainFragment2.onActivityResult(requestCode, resultCode, data);
break;
@@ -235,10 +254,9 @@ public class ManagementFragment extends BaseActivity {
}
private void setZtlTextColor() {
- ImmersionBar.with(this)
- .statusBarDarkFont(true, 0.2f) //原理:如果当前设备支持状态栏字体变色,会设置状态栏字体为黑色,如果当前设备不支持状态栏字体变色,会使当前状态栏加上透明度,否则不执行透明度
+ ImmersionBar.with(this).statusBarDarkFont(true, 0.2f)
+ //原理:如果当前设备支持状态栏字体变色,会设置状态栏字体为黑色,如果当前设备不支持状态栏字体变色,会使当前状态栏加上透明度,否则不执行透明度
.init();
-
}
}
diff --git a/app/src/main/java/com/example/myapplication/activity/HomeActivity.java b/app/src/main/java/com/example/myapplication/activity/HomeActivity.java
index f17c962..c51fce6 100644
--- a/app/src/main/java/com/example/myapplication/activity/HomeActivity.java
+++ b/app/src/main/java/com/example/myapplication/activity/HomeActivity.java
@@ -22,10 +22,13 @@ import com.google.android.material.tabs.TabLayout;
import com.gyf.immersionbar.ImmersionBar;
import java.util.ArrayList;
+/**
+ * 首页
+ */
public class HomeActivity extends BaseActivity{
private NoSlideViewPager mViewPager;
private TabLayout mTab;
- private final String[] name = {"寻宝", "记录", "发现", "我的"};
+ private final String[] names = {"寻宝", "记录", "发现", "我的"};
private final int[] pic = {R.mipmap.map_select,R.mipmap.task_select,R.mipmap.article_select,R.mipmap.mine_select};
private final int[] pic1 = {R.mipmap.map,R.mipmap.task,R.mipmap.article,R.mipmap.mine};
@@ -64,10 +67,10 @@ public class HomeActivity extends BaseActivity{
mViewPager.setCanScroll(true);
mViewPager.setNoScrollAnim(false);
mTab.setupWithViewPager(mViewPager);
- mTab.getTabAt(0).setText(name[0]).setIcon(pic[0]);
- mTab.getTabAt(1).setText(name[1]).setIcon(pic1[1]);
- mTab.getTabAt(2).setText(name[2]).setIcon(pic1[2]);
- mTab.getTabAt(3).setText(name[3]).setIcon(pic1[3]);
+ mTab.getTabAt(0).setText(names[0]).setIcon(pic[0]);
+ mTab.getTabAt(1).setText(names[1]).setIcon(pic1[1]);
+ mTab.getTabAt(2).setText(names[2]).setIcon(pic1[2]);
+ mTab.getTabAt(3).setText(names[3]).setIcon(pic1[3]);
mTab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
//禁止table layout效果
@Override
diff --git a/app/src/main/java/com/example/myapplication/activity/LoginActivity.java b/app/src/main/java/com/example/myapplication/activity/LoginActivity.java
index 4d3d326..5da6a38 100644
--- a/app/src/main/java/com/example/myapplication/activity/LoginActivity.java
+++ b/app/src/main/java/com/example/myapplication/activity/LoginActivity.java
@@ -46,12 +46,12 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_register:
- Intent register = new Intent(this, ManagementFragment.class);
+ Intent register = new Intent(this, FragmentManagement.class);
register.putExtra("tag", 5);
startActivity(register);
break;
case R.id.tv_forget_paw:
- Intent forgetPaw = new Intent(this, ManagementFragment.class);
+ Intent forgetPaw = new Intent(this, FragmentManagement.class);
forgetPaw.putExtra("tag", 6);
startActivity(forgetPaw);
break;
diff --git a/app/src/main/java/com/example/myapplication/activity/MainActivity.java b/app/src/main/java/com/example/myapplication/activity/MainActivity.java
index c5cfbf0..52d7aa8 100644
--- a/app/src/main/java/com/example/myapplication/activity/MainActivity.java
+++ b/app/src/main/java/com/example/myapplication/activity/MainActivity.java
@@ -10,6 +10,9 @@ import android.os.CountDownTimer;
import com.example.myapplication.R;
import com.example.myapplication.base.BaseActivity;
+/**
+ * 启动页
+ */
public class MainActivity extends BaseActivity {
@Override
diff --git a/app/src/main/java/com/example/myapplication/activity/WebActivity.java b/app/src/main/java/com/example/myapplication/activity/WebActivity.java
new file mode 100644
index 0000000..07f841b
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/activity/WebActivity.java
@@ -0,0 +1,49 @@
+package com.example.myapplication.activity;
+
+import android.view.View;
+import android.webkit.WebView;
+import android.widget.ImageView;
+
+import com.example.myapplication.R;
+import com.example.myapplication.base.BaseActivity;
+import com.gyf.immersionbar.ImmersionBar;
+
+/**
+ * 详情页
+ */
+public class WebActivity extends BaseActivity implements View.OnClickListener {
+
+ private ImageView ivIcon;
+ private WebView nWebView;
+
+ @Override
+ protected int getLayout() {
+ return R.layout.activity_web;
+ }
+
+ @Override
+ protected void initView() {
+ super.initView();
+ ImmersionBar.with(this)
+ .statusBarDarkFont(true, 0.2f)
+ //原理:如果当前设备支持状态栏字体变色,会设置状态栏字体为黑色,如果当前设备不支持状态栏字体变色,会使当前状态栏加上透明度,否则不执行透明度
+ .init();
+ nWebView = findViewById(R.id.news_webView);
+ ivIcon = findViewById(R.id.iv_icon);
+ ivIcon.setOnClickListener(this::onClick);
+ }
+
+ @Override
+ protected void initData() {
+ super.initData();
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()){
+ case R.id.iv_icon:
+ finish();
+ break;
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/myapplication/adapter/EventPrefectureAdapter.java b/app/src/main/java/com/example/myapplication/adapter/EventPrefectureAdapter.java
new file mode 100644
index 0000000..051e1fb
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/adapter/EventPrefectureAdapter.java
@@ -0,0 +1,80 @@
+package com.example.myapplication.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.myapplication.R;
+import com.example.myapplication.bean.EventPrefectureBean;
+import com.example.myapplication.bean.TaskExplainBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class EventPrefectureAdapter extends RecyclerView.Adapter {
+ private List dataBeans=new ArrayList<>();
+ private Context context;
+
+ public EventPrefectureAdapter(Context context) {
+ this.context = context;
+ }
+
+ public void setDataBeans(List dataBeans) {
+ this.dataBeans.addAll(dataBeans);
+ notifyDataSetChanged();
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View mView = LayoutInflater.from(context).inflate(R.layout.event_prefecture_item, parent, false);
+ return new ViewHolder(mView);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ EventPrefectureBean.BodyBean.DataBean dataBean = dataBeans.get(position);
+ holder.tvTitle.setText(dataBean.getTitle());
+ holder.tvDest.setText(dataBean.getSubtitle());
+ holder.tvTime.setText(dataBean.getCreatetime());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (clickItem!=null){
+ clickItem.item(dataBean.getId());
+ }
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataBeans.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+ TextView tvTitle;
+ TextView tvDest;
+ TextView tvTime;
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ tvTitle=itemView.findViewById(R.id.tv_title);
+ tvDest=itemView.findViewById(R.id.tv_dest);
+ tvTime=itemView.findViewById(R.id.tv_time);
+ }
+ }
+ clickItem clickItem;
+
+ public void setClickItem(EventPrefectureAdapter.clickItem clickItem) {
+ this.clickItem = clickItem;
+ }
+
+ public interface clickItem{
+ void item(int aInt);
+ }
+}
diff --git a/app/src/main/java/com/example/myapplication/adapter/TaskPrefectureAdapter.java b/app/src/main/java/com/example/myapplication/adapter/TaskPrefectureAdapter.java
new file mode 100644
index 0000000..686d534
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/adapter/TaskPrefectureAdapter.java
@@ -0,0 +1,79 @@
+package com.example.myapplication.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.example.myapplication.R;
+import com.example.myapplication.bean.TaskExplainBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TaskPrefectureAdapter extends RecyclerView.Adapter {
+ private List dataBeans=new ArrayList<>();
+ private Context context;
+
+ public TaskPrefectureAdapter(Context context) {
+ this.context = context;
+ }
+
+ public void setDataBeans(List dataBeans) {
+ this.dataBeans.addAll(dataBeans);
+ notifyDataSetChanged();
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View mView = LayoutInflater.from(context).inflate(R.layout.task_prefecture_item, parent, false);
+ return new ViewHolder(mView);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ TaskExplainBean.BodyBean.DataBean dataBean = dataBeans.get(position);
+ holder.tvTitle.setText(dataBean.getTitle());
+ holder.tvDest.setText(dataBean.getSubtitle());
+ holder.tvTime.setText(dataBean.getCreatetime());
+ holder.itemView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (clickItem!=null){
+ clickItem.item(dataBean.getId());
+ }
+ }
+ });
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataBeans.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+ TextView tvTitle;
+ TextView tvDest;
+ TextView tvTime;
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ tvTitle=itemView.findViewById(R.id.tv_title);
+ tvDest=itemView.findViewById(R.id.tv_dest);
+ tvTime=itemView.findViewById(R.id.tv_time);
+ }
+ }
+ clickItem clickItem;
+
+ public void setClickItem(TaskPrefectureAdapter.clickItem clickItem) {
+ this.clickItem = clickItem;
+ }
+
+ public interface clickItem{
+ void item(int aInt);
+ }
+}
diff --git a/app/src/main/java/com/example/myapplication/base/BaseActivity.java b/app/src/main/java/com/example/myapplication/base/BaseActivity.java
index 77bacd7..40ac940 100644
--- a/app/src/main/java/com/example/myapplication/base/BaseActivity.java
+++ b/app/src/main/java/com/example/myapplication/base/BaseActivity.java
@@ -1,9 +1,12 @@
package com.example.myapplication.base;
+import android.app.Activity;
+import android.app.Application;
import android.content.pm.ActivityInfo;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
+import android.util.DisplayMetrics;
import android.view.KeyEvent;
import android.widget.Toast;
@@ -28,15 +31,32 @@ public abstract class BaseActivity extends AppCompatActivity {
ImmersionBar.with(this).init();
Collector.addActivity(this);
setContentView(getLayout());
-
initMVP();
initView();
initData();
initListener();
}
+ private static void setCustomDensity(Application application, Activity activity) {
+ final DisplayMetrics appDisplayMetrics = application.getResources().getDisplayMetrics();
+ // 以设计DP为360为例,获得目标Density
+ final float targetDensity = (float) (appDisplayMetrics.widthPixels / 360.0);
+ final float targetScaledDensity = targetDensity * (appDisplayMetrics.scaledDensity / appDisplayMetrics.density);
+ final int targetDensityDpi = (int)(targetDensity * 160);
+ //设置application的Density
+ appDisplayMetrics.density = targetDensity;
+ appDisplayMetrics.scaledDensity = targetScaledDensity;
+ appDisplayMetrics.densityDpi = targetDensityDpi;
+ //设置activity的Density
+ final DisplayMetrics activityDisplayMetrics = activity.getResources().getDisplayMetrics();
+ activityDisplayMetrics.density = targetDensity;
+ activityDisplayMetrics.scaledDensity = targetScaledDensity;
+ activityDisplayMetrics.densityDpi = targetDensityDpi;
+ }
+
protected void toast(String mag){
Toast.makeText(UserApplication.getUserApplication(), mag, Toast.LENGTH_SHORT).show();
}
+
protected void initMVP() {
}
public void showLoadingDialog() {
diff --git a/app/src/main/java/com/example/myapplication/base/BaseFragment.java b/app/src/main/java/com/example/myapplication/base/BaseFragment.java
index b031b49..aa71384 100644
--- a/app/src/main/java/com/example/myapplication/base/BaseFragment.java
+++ b/app/src/main/java/com/example/myapplication/base/BaseFragment.java
@@ -8,6 +8,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
@@ -25,19 +26,21 @@ public abstract class BaseFragment extends Fragment {
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- mView = LayoutInflater.from(getActivity()).inflate(getLayout(), container, false);
- initMvp();
- initView();
- initData();
-
+ View mView= LayoutInflater.from(getActivity()).inflate(getLayout(), container, false);
return mView;
}
-
- protected void initMvp() {
-
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ initMvp();
+ initData();
+ initView();
}
+ protected T findViewById(@IdRes int id){
+ return getView().findViewById(id);
+ }
protected abstract int getLayout();
public void showLoadingDialog() {
alertDialog = new AlertDialog.Builder(getActivity()).create();
@@ -67,18 +70,15 @@ public abstract class BaseFragment extends Fragment {
alertDialog.dismiss();
}
}
- protected void initData() {
- }
+ protected void initMvp() { }
- protected void initView() {
+ protected void initData() { }
-
- }
+ protected void initView() { }
@Override
public void onDestroyView() {
super.onDestroyView();
-
}
}
diff --git a/app/src/main/java/com/example/myapplication/bean/TaskZoneBean.java b/app/src/main/java/com/example/myapplication/bean/EventPrefectureBean.java
similarity index 95%
rename from app/src/main/java/com/example/myapplication/bean/TaskZoneBean.java
rename to app/src/main/java/com/example/myapplication/bean/EventPrefectureBean.java
index 1311b7e..da7b7d2 100644
--- a/app/src/main/java/com/example/myapplication/bean/TaskZoneBean.java
+++ b/app/src/main/java/com/example/myapplication/bean/EventPrefectureBean.java
@@ -3,9 +3,9 @@ package com.example.myapplication.bean;
import java.util.List;
/**
- * 任务专区bean
+ * 活动专区
*/
-public class TaskZoneBean {
+public class EventPrefectureBean {
/**
* msg : 成功
* body : {"rownum":0,"data":[{"Subtitle":"说明0","createtime":"2021-05-26 15:33:51","src":"","id":0,"title":"标题0"},{"Subtitle":"说明1","createtime":"2021-05-26 15:33:51","src":"","id":1,"title":"标题1"},{"Subtitle":"说明2","createtime":"2021-05-26 15:33:51","src":"","id":2,"title":"标题2"},{"Subtitle":"说明3","createtime":"2021-05-26 15:33:51","src":"","id":3,"title":"标题3"},{"Subtitle":"说明4","createtime":"2021-05-26 15:33:51","src":"","id":4,"title":"标题4"},{"Subtitle":"说明5","createtime":"2021-05-26 15:33:51","src":"","id":5,"title":"标题5"},{"Subtitle":"说明6","createtime":"2021-05-26 15:33:51","src":"","id":6,"title":"标题6"},{"Subtitle":"说明7","createtime":"2021-05-26 15:33:51","src":"","id":7,"title":"标题7"},{"Subtitle":"说明8","createtime":"2021-05-26 15:33:51","src":"","id":8,"title":"标题8"},{"Subtitle":"说明9","createtime":"2021-05-26 15:33:51","src":"","id":9,"title":"标题9"}],"numFound":100,"rows":10}
@@ -51,7 +51,7 @@ public class TaskZoneBean {
private int rownum;
private int numFound;
private int rows;
- private List data;
+ private List data;
public int getRownum() {
return rownum;
@@ -77,11 +77,11 @@ public class TaskZoneBean {
this.rows = rows;
}
- public List getData() {
+ public List getData() {
return data;
}
- public void setData(List data) {
+ public void setData(List data) {
this.data = data;
}
diff --git a/app/src/main/java/com/example/myapplication/bean/TaskExplainBean.java b/app/src/main/java/com/example/myapplication/bean/TaskExplainBean.java
new file mode 100644
index 0000000..d485de0
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/bean/TaskExplainBean.java
@@ -0,0 +1,144 @@
+package com.example.myapplication.bean;
+
+import java.util.List;
+
+/**
+ * 任务说明点击
+ */
+public class TaskExplainBean {
+ /**
+ * msg : 成功
+ * body : {"rownum":0,"data":[{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":11,"title":"标题11"},{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":12,"title":"标题12"},{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":13,"title":"标题13"}],"numFound":100,"rows":10}
+ * status : 0
+ */
+
+ private String msg;
+ private BodyBean body;
+ private int status;
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public BodyBean getBody() {
+ return body;
+ }
+
+ public void setBody(BodyBean body) {
+ this.body = body;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public static class BodyBean {
+ /**
+ * rownum : 0
+ * data : [{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":11,"title":"标题11"},{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":12,"title":"标题12"},{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":13,"title":"标题13"}]
+ * numFound : 100
+ * rows : 10
+ */
+
+ private int rownum;
+ private int numFound;
+ private int rows;
+ private List data;
+
+ public int getRownum() {
+ return rownum;
+ }
+
+ public void setRownum(int rownum) {
+ this.rownum = rownum;
+ }
+
+ public int getNumFound() {
+ return numFound;
+ }
+
+ public void setNumFound(int numFound) {
+ this.numFound = numFound;
+ }
+
+ public int getRows() {
+ return rows;
+ }
+
+ public void setRows(int rows) {
+ this.rows = rows;
+ }
+
+ public List getData() {
+ return data;
+ }
+
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public static class DataBean {
+ /**
+ * Subtitle :
+ * createtime :
+ * src : http://10.130.23.166:8080/cbt/img/blue.png
+ * id : 11
+ * title : 标题11
+ */
+
+ private String Subtitle;
+ private String createtime;
+ private String src;
+ private int id;
+ private String title;
+
+ public String getSubtitle() {
+ return Subtitle;
+ }
+
+ public void setSubtitle(String Subtitle) {
+ this.Subtitle = Subtitle;
+ }
+
+ public String getCreatetime() {
+ return createtime;
+ }
+
+ public void setCreatetime(String createtime) {
+ this.createtime = createtime;
+ }
+
+ public String getSrc() {
+ return src;
+ }
+
+ public void setSrc(String src) {
+ this.src = src;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/myapplication/bean/TaskSpecificationBean.java b/app/src/main/java/com/example/myapplication/bean/TaskSpecificationBean.java
index be20859..f9b70cf 100644
--- a/app/src/main/java/com/example/myapplication/bean/TaskSpecificationBean.java
+++ b/app/src/main/java/com/example/myapplication/bean/TaskSpecificationBean.java
@@ -3,12 +3,12 @@ package com.example.myapplication.bean;
import java.util.List;
/**
- * 任务说明点击
+ * 任务专区bean
*/
public class TaskSpecificationBean {
/**
* msg : 成功
- * body : {"rownum":0,"data":[{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":11,"title":"标题11"},{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":12,"title":"标题12"},{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":13,"title":"标题13"}],"numFound":100,"rows":10}
+ * body : {"rownum":0,"data":[{"Subtitle":"说明0","createtime":"2021-05-26 15:33:51","src":"","id":0,"title":"标题0"},{"Subtitle":"说明1","createtime":"2021-05-26 15:33:51","src":"","id":1,"title":"标题1"},{"Subtitle":"说明2","createtime":"2021-05-26 15:33:51","src":"","id":2,"title":"标题2"},{"Subtitle":"说明3","createtime":"2021-05-26 15:33:51","src":"","id":3,"title":"标题3"},{"Subtitle":"说明4","createtime":"2021-05-26 15:33:51","src":"","id":4,"title":"标题4"},{"Subtitle":"说明5","createtime":"2021-05-26 15:33:51","src":"","id":5,"title":"标题5"},{"Subtitle":"说明6","createtime":"2021-05-26 15:33:51","src":"","id":6,"title":"标题6"},{"Subtitle":"说明7","createtime":"2021-05-26 15:33:51","src":"","id":7,"title":"标题7"},{"Subtitle":"说明8","createtime":"2021-05-26 15:33:51","src":"","id":8,"title":"标题8"},{"Subtitle":"说明9","createtime":"2021-05-26 15:33:51","src":"","id":9,"title":"标题9"}],"numFound":100,"rows":10}
* status : 0
*/
@@ -43,7 +43,7 @@ public class TaskSpecificationBean {
public static class BodyBean {
/**
* rownum : 0
- * data : [{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":11,"title":"标题11"},{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":12,"title":"标题12"},{"Subtitle":"","createtime":"","src":"http://10.130.23.166:8080/cbt/img/blue.png","id":13,"title":"标题13"}]
+ * data : [{"Subtitle":"说明0","createtime":"2021-05-26 15:33:51","src":"","id":0,"title":"标题0"},{"Subtitle":"说明1","createtime":"2021-05-26 15:33:51","src":"","id":1,"title":"标题1"},{"Subtitle":"说明2","createtime":"2021-05-26 15:33:51","src":"","id":2,"title":"标题2"},{"Subtitle":"说明3","createtime":"2021-05-26 15:33:51","src":"","id":3,"title":"标题3"},{"Subtitle":"说明4","createtime":"2021-05-26 15:33:51","src":"","id":4,"title":"标题4"},{"Subtitle":"说明5","createtime":"2021-05-26 15:33:51","src":"","id":5,"title":"标题5"},{"Subtitle":"说明6","createtime":"2021-05-26 15:33:51","src":"","id":6,"title":"标题6"},{"Subtitle":"说明7","createtime":"2021-05-26 15:33:51","src":"","id":7,"title":"标题7"},{"Subtitle":"说明8","createtime":"2021-05-26 15:33:51","src":"","id":8,"title":"标题8"},{"Subtitle":"说明9","createtime":"2021-05-26 15:33:51","src":"","id":9,"title":"标题9"}]
* numFound : 100
* rows : 10
*/
@@ -87,11 +87,11 @@ public class TaskSpecificationBean {
public static class DataBean {
/**
- * Subtitle :
- * createtime :
- * src : http://10.130.23.166:8080/cbt/img/blue.png
- * id : 11
- * title : 标题11
+ * Subtitle : 说明0
+ * createtime : 2021-05-26 15:33:51
+ * src :
+ * id : 0
+ * title : 标题0
*/
private String Subtitle;
diff --git a/app/src/main/java/com/example/myapplication/bean/TaskSpecificationInfo.java b/app/src/main/java/com/example/myapplication/bean/TaskSpecificationInfo.java
deleted file mode 100644
index bb82430..0000000
--- a/app/src/main/java/com/example/myapplication/bean/TaskSpecificationInfo.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.example.myapplication.bean;
-
-public class TaskSpecificationInfo {
-
-}
diff --git a/app/src/main/java/com/example/myapplication/fragment/CapacityEvaluationFragment.java b/app/src/main/java/com/example/myapplication/fragment/CapacityEvaluationFragment.java
index 67cbdbf..874458c 100644
--- a/app/src/main/java/com/example/myapplication/fragment/CapacityEvaluationFragment.java
+++ b/app/src/main/java/com/example/myapplication/fragment/CapacityEvaluationFragment.java
@@ -11,7 +11,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.example.myapplication.R;
import com.example.myapplication.activity.CapacityEvaluationAdapter;
-import com.example.myapplication.activity.ManagementFragment;
+import com.example.myapplication.activity.FragmentManagement;
import com.example.myapplication.base.BaseFragment;
import com.example.myapplication.bean.TaskExplainInfo;
import com.example.myapplication.http.Callback;
@@ -44,8 +44,8 @@ public class CapacityEvaluationFragment extends BaseFragment implements View.OnC
@Override
protected void initView() {
super.initView();
- ivEvaluationTaskFinish = mView.findViewById(R.id.iv_evaluation_task_finish);
- capacityEvaluationRecycler = mView.findViewById(R.id.capacity_evaluation_recycler);
+ ivEvaluationTaskFinish =findViewById(R.id.iv_evaluation_task_finish);
+ capacityEvaluationRecycler = findViewById(R.id.capacity_evaluation_recycler);
ivEvaluationTaskFinish.setOnClickListener(this::onClick);
capacityEvaluationRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
capacityEvaluationRecycler.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));
@@ -71,7 +71,7 @@ public class CapacityEvaluationFragment extends BaseFragment implements View.OnC
capacityEvaluationAdapter.setOnCapacityClick(new CapacityEvaluationAdapter.OnCapacityClick() {
@Override
public void onClick(int id) {
- Intent itemIntent = new Intent(getActivity(), ManagementFragment.class);
+ Intent itemIntent = new Intent(getActivity(), FragmentManagement.class);
itemIntent.putExtra("tag", 12);
startActivity(itemIntent);
//Toast.makeText(getContext(), "哈哈,成功了"+id, Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/com/example/myapplication/fragment/EventPrefectureFragment.java b/app/src/main/java/com/example/myapplication/fragment/EventPrefectureFragment.java
new file mode 100644
index 0000000..4e66df2
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/fragment/EventPrefectureFragment.java
@@ -0,0 +1,161 @@
+package com.example.myapplication.fragment;
+
+import android.content.Intent;
+import android.util.Log;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.Toast;
+
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
+import com.example.myapplication.R;
+import com.example.myapplication.activity.WebActivity;
+import com.example.myapplication.adapter.EventPrefectureAdapter;
+import com.example.myapplication.base.BaseFragment;
+import com.example.myapplication.bean.EventPrefectureBean;
+import com.example.myapplication.http.Callback;
+import com.example.myapplication.http.HttpInterface;
+import com.example.myapplication.http.OkGoBuilder;
+import com.jcodecraeer.xrecyclerview.ProgressStyle;
+import com.jcodecraeer.xrecyclerview.XRecyclerView;
+
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 发现-活动专区
+ */
+public class EventPrefectureFragment extends BaseFragment implements View.OnClickListener {
+
+ private ImageView ivEventTask;
+ private XRecyclerView eventRecycler;
+ private List taskExplainBean;
+ private EventPrefectureAdapter eventPrefectureAdapter;
+ private int page = 1;
+
+ @Override
+ protected int getLayout() {
+ return R.layout.event_prefecture_fragment;
+ }
+
+ @Override
+ protected void initData() {
+ super.initData();
+ taskExplainBean = new ArrayList<>();
+ initNetwork(true);
+ }
+
+ private void initNetwork(boolean b) {
+ OkGoBuilder.getInstance()
+ .Builder(getActivity())
+ .url(HttpInterface.listEvent)
+ .method(OkGoBuilder.GET)
+ .cls(EventPrefectureBean.class)
+ .json(new JSONObject())
+ .callback(new Callback() {
+ @Override
+ public void onSuccess(EventPrefectureBean eventPrefectureBean, int id) {
+ dismissLoadingDialog();
+ eventPrefectureAdapter.setDataBeans(eventPrefectureBean.getBody().getData());
+ Log.d("TAG", "onSuccess: " + eventPrefectureBean.getMsg() + "sssssssssssss");
+ //initEventPrefecture(eventPrefectureBean,b);
+ }
+
+ @Override
+ public void onError(Throwable e, int id) {
+ dismissLoadingDialog();
+ Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
+ Log.d("TAG", "onError: " + e.getMessage());
+ }
+ }).build();
+ }
+
+ private void initEventPrefecture(EventPrefectureBean eventPrefectureBean, boolean start) {
+ if (eventPrefectureBean.getStatus() == 0) {
+ if (start) {
+ if (taskExplainBean.size() > 0) {
+ taskExplainBean.clear();
+ }
+ if (eventPrefectureBean.getBody() == null) {
+ Toast.makeText(getActivity(), "没有相关数据", Toast.LENGTH_SHORT).show();
+ } else {
+ taskExplainBean.addAll(eventPrefectureBean.getBody().getData());
+ page++;
+ }
+ eventPrefectureAdapter.notifyDataSetChanged();
+ eventRecycler.refreshComplete();
+ } else {
+ if (eventPrefectureBean.getBody() == null) {
+ eventRecycler.setNoMore(true);
+ } else {
+ taskExplainBean.addAll(eventPrefectureBean.getBody().getData());
+ eventPrefectureAdapter.notifyDataSetChanged();
+ eventRecycler.loadMoreComplete();
+ page++;
+ }
+ }
+ } else if (eventPrefectureBean.getStatus() == 2) {
+ if (start) {
+ if (taskExplainBean.size() > 0) {
+ taskExplainBean.clear();
+ eventPrefectureAdapter.notifyDataSetChanged();
+ }
+ eventRecycler.refreshComplete();
+ } else {
+ eventRecycler.setNoMore(true);
+ }
+ Toast.makeText(getActivity(), eventPrefectureBean.getMsg(), Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(getActivity(), eventPrefectureBean.getMsg(), Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ protected void initView() {
+ super.initView();
+ ivEventTask = findViewById(R.id.iv_event_task);
+ ivEventTask.setOnClickListener(this::onClick);
+ eventRecycler = findViewById(R.id.event_recycler);
+ eventRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
+ eventRecycler.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL));
+ eventRecycler.setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader);
+ eventRecycler.setLoadingMoreProgressStyle(ProgressStyle.BallRotate);
+ //取消上拉加载,刷新功能。
+ eventRecycler.setPullRefreshEnabled(false);
+ eventRecycler.setLoadingMoreEnabled(false);
+ eventPrefectureAdapter = new EventPrefectureAdapter(getActivity());
+ eventRecycler.setAdapter(eventPrefectureAdapter);
+ eventRecycler.getDefaultFootView().setNoMoreHint("已全部加载完毕");
+ eventRecycler.setLoadingListener(new XRecyclerView.LoadingListener() {
+ @Override
+ public void onRefresh() {
+
+ }
+
+ @Override
+ public void onLoadMore() {
+
+ }
+ });
+ eventPrefectureAdapter.setClickItem(new EventPrefectureAdapter.clickItem() {
+ @Override
+ public void item(int aInt) {
+ Intent intent = new Intent(getContext(), WebActivity.class);
+ intent.putExtra("id",aInt);
+ startActivity(intent);
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.iv_event_task:
+ getActivity().finish();
+ break;
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/myapplication/fragment/FindFragment.java b/app/src/main/java/com/example/myapplication/fragment/FindFragment.java
index a41ebcf..c4f5c02 100644
--- a/app/src/main/java/com/example/myapplication/fragment/FindFragment.java
+++ b/app/src/main/java/com/example/myapplication/fragment/FindFragment.java
@@ -4,8 +4,9 @@ import android.content.Intent;
import android.view.View;
import android.widget.LinearLayout;
+
import com.example.myapplication.R;
-import com.example.myapplication.activity.ManagementFragment;
+import com.example.myapplication.activity.FragmentManagement;
import com.example.myapplication.base.BaseFragment;
@@ -13,13 +14,12 @@ import com.example.myapplication.base.BaseFragment;
* 发现的Fragment
* 2021-5-25
*/
-public class FindFragment extends BaseFragment implements View.OnClickListener {
+public class FindFragment extends BaseFragment implements View.OnClickListener{
private LinearLayout linear_task_prefecture;//任务专区
private LinearLayout linear_task_explain;//任务说明
- private LinearLayout linearRight;
private LinearLayout linearEnd;
- private LinearLayout linearTaskExplain;
+ private LinearLayout linear_event_prefecture;
@Override
protected int getLayout() {
@@ -29,13 +29,13 @@ public class FindFragment extends BaseFragment implements View.OnClickListener {
@Override
protected void initView() {
super.initView();
- linear_task_prefecture = mView.findViewById(R.id.linear_task_prefecture);
+ linear_event_prefecture = findViewById(R.id.linear_event_prefecture);
+ linear_event_prefecture.setOnClickListener(this::onClick);
+ linear_task_prefecture =findViewById(R.id.linear_task_prefecture);
linear_task_prefecture.setOnClickListener(this::onClick);
- linear_task_explain = mView.findViewById(R.id.linear_task_explain);
+ linear_task_explain =findViewById(R.id.linear_task_explain);
linear_task_explain.setOnClickListener(this::onClick);
- linearRight = mView.findViewById(R.id.linear_right);
- linearRight.setOnClickListener(this::onClick);
- linearEnd = mView.findViewById(R.id.linear_end);
+ linearEnd = findViewById(R.id.linear_end);
linearEnd.setOnClickListener(this::onClick);
}
@@ -49,17 +49,22 @@ public class FindFragment extends BaseFragment implements View.OnClickListener {
public void onClick(View v) {
switch (v.getId()) {
case R.id.linear_task_prefecture:
- Intent prefectureIntent = new Intent(getActivity(), ManagementFragment.class);
+ Intent prefectureIntent = new Intent(getActivity(), FragmentManagement.class);
prefectureIntent.putExtra("tag", 7);
startActivity(prefectureIntent);
break;
case R.id.linear_task_explain:
- Intent explainIntent = new Intent(getActivity(), ManagementFragment.class);
+ Intent explainIntent = new Intent(getActivity(), FragmentManagement.class);
explainIntent.putExtra("tag", 8);
startActivity(explainIntent);
break;
+ case R.id.linear_event_prefecture:
+ Intent eventIntent = new Intent(getActivity(), FragmentManagement.class);
+ eventIntent.putExtra("tag",9);
+ startActivity(eventIntent);
+ break;
case R.id.linear_end:
- Intent endIntent = new Intent(getActivity(), ManagementFragment.class);
+ Intent endIntent = new Intent(getActivity(), FragmentManagement.class);
endIntent.putExtra("tag", 11);
startActivity(endIntent);
break;
diff --git a/app/src/main/java/com/example/myapplication/fragment/RecordFragment.java b/app/src/main/java/com/example/myapplication/fragment/RecordFragment.java
index 08de20e..ea37ed3 100644
--- a/app/src/main/java/com/example/myapplication/fragment/RecordFragment.java
+++ b/app/src/main/java/com/example/myapplication/fragment/RecordFragment.java
@@ -1,18 +1,7 @@
package com.example.myapplication.fragment;
-import android.util.Log;
-import android.widget.Toast;
-
import com.example.myapplication.R;
import com.example.myapplication.base.BaseFragment;
-import com.example.myapplication.bean.ListBean;
-import com.example.myapplication.bean.TaskSpecificationBean;
-import com.example.myapplication.http.Callback;
-import com.example.myapplication.http.HttpInterface;
-import com.example.myapplication.http.OkGoBuilder;
-
-import org.json.JSONArray;
-import org.json.JSONObject;
/**
* 记录的Fragment
@@ -33,24 +22,7 @@ public class RecordFragment extends BaseFragment {
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
- OkGoBuilder.getInstance()
- .Builder(getActivity())
- .url(HttpInterface.listTask)
- .method(OkGoBuilder.GET)
- .cls(TaskSpecificationBean.class)
- .json(new JSONObject())
- .callback(new Callback() {
- @Override
- public void onSuccess(TaskSpecificationBean gl, int id) {
- Toast.makeText(getActivity(),gl.getMsg()+"sssssssssssssssssss", Toast.LENGTH_SHORT).show();
- }
- @Override
- public void onError(Throwable e, int id) {
- Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
- Log.d("TAG", "onError: "+e.getMessage());
- }
- }).build();
}
}
@Override
diff --git a/app/src/main/java/com/example/myapplication/fragment/RegisterFragment.java b/app/src/main/java/com/example/myapplication/fragment/RegisterFragment.java
index ba49487..a29b73e 100644
--- a/app/src/main/java/com/example/myapplication/fragment/RegisterFragment.java
+++ b/app/src/main/java/com/example/myapplication/fragment/RegisterFragment.java
@@ -4,7 +4,6 @@ import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
-import android.widget.Toast;
import com.example.myapplication.R;
import com.example.myapplication.base.BaseFragment;
@@ -12,7 +11,7 @@ import com.example.myapplication.base.BaseFragment;
/**
* 注册页面
*/
-public class RegisterFragment extends BaseFragment implements View.OnClickListener{
+public class RegisterFragment extends BaseFragment {
private EditText etRegisterPhone;
@@ -35,19 +34,22 @@ public class RegisterFragment extends BaseFragment implements View.OnClickListen
@Override
protected void initView() {
super.initView();
- ivFinish =mView.findViewById(R.id.iv_finish);
- etRegisterPhone = mView.findViewById(R.id.et_register_phone);
- etRegisterNote = mView.findViewById(R.id.et_register_note);
- registerGetNote = mView.findViewById(R.id.register_get_note);
- etRegisterReferrer = mView.findViewById(R.id.et_register_referrer);
- etRegisterPaw = mView.findViewById(R.id.et_register_paw);
- etRegisterConfirmPaw = mView.findViewById(R.id.et_register_confirm_paw);
- ivRegisterCheck = mView.findViewById(R.id.iv_register_check);
- haveGoLogin = mView.findViewById(R.id.have_go_login);
- tvRegister = mView.findViewById(R.id.tv_register);
-
- ivFinish.setOnClickListener(this::onClick);
- registerGetNote.setOnClickListener(this::onClick);
+ ivFinish =findViewById(R.id.iv_finish);
+ etRegisterPhone =findViewById(R.id.et_register_phone);
+ etRegisterNote = findViewById(R.id.et_register_note);
+ registerGetNote = findViewById(R.id.register_get_note);
+ etRegisterReferrer = findViewById(R.id.et_register_referrer);
+ etRegisterPaw =findViewById(R.id.et_register_paw);
+ etRegisterConfirmPaw = findViewById(R.id.et_register_confirm_paw);
+ ivRegisterCheck = findViewById(R.id.iv_register_check);
+ haveGoLogin = findViewById(R.id.have_go_login);
+ tvRegister =findViewById(R.id.tv_register);
+ ivFinish.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ getActivity().finish();
+ }
+ });
}
@@ -57,17 +59,4 @@ public class RegisterFragment extends BaseFragment implements View.OnClickListen
super.initData();
}
- @Override
- public void onClick(View v) {
- switch (v.getId()){
- case R.id.iv_finish:
- getActivity().finish();
- break;
- case R.id.register_get_note:
- Toast.makeText(getActivity(), "获取验证码", Toast.LENGTH_SHORT).show();
- break;
-
-
- }
- }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/myapplication/fragment/TaskExplainFragment.java b/app/src/main/java/com/example/myapplication/fragment/TaskExplainFragment.java
index 89114f9..3b2efa0 100644
--- a/app/src/main/java/com/example/myapplication/fragment/TaskExplainFragment.java
+++ b/app/src/main/java/com/example/myapplication/fragment/TaskExplainFragment.java
@@ -10,7 +10,7 @@ import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.example.myapplication.R;
-import com.example.myapplication.activity.ManagementFragment;
+import com.example.myapplication.activity.FragmentManagement;
import com.example.myapplication.activity.TaskExplainAdapter;
import com.example.myapplication.base.BaseFragment;
import com.example.myapplication.bean.TaskExplainInfo;
@@ -42,8 +42,8 @@ public class TaskExplainFragment extends BaseFragment implements View.OnClickLis
@Override
protected void initView() {
super.initView();
- ivFindTaskExplain = mView.findViewById(R.id.iv_find_task_explain);
- taskExplainRecycle = mView.findViewById(R.id.task_explain_recycler);
+ ivFindTaskExplain = findViewById(R.id.iv_find_task_explain);
+ taskExplainRecycle =findViewById(R.id.task_explain_recycler);
ivFindTaskExplain.setOnClickListener(this::onClick);
taskExplainRecycle.setLayoutManager(new LinearLayoutManager(getActivity()));
@@ -71,7 +71,7 @@ public class TaskExplainFragment extends BaseFragment implements View.OnClickLis
taskExplainAdapter.setOnItemClick(new TaskExplainAdapter.OnItemClick() {
@Override
public void onClick(int pos) {
- Intent itemIntent = new Intent(getActivity(), ManagementFragment.class);
+ Intent itemIntent = new Intent(getActivity(), FragmentManagement.class);
itemIntent.putExtra("tag", 10);
startActivity(itemIntent);
//Toast.makeText(getContext(), "你猜"+pos, Toast.LENGTH_SHORT).show();
diff --git a/app/src/main/java/com/example/myapplication/fragment/TaskExplainFragment2.java b/app/src/main/java/com/example/myapplication/fragment/TaskExplainFragment2.java
index 00a80aa..716f787 100644
--- a/app/src/main/java/com/example/myapplication/fragment/TaskExplainFragment2.java
+++ b/app/src/main/java/com/example/myapplication/fragment/TaskExplainFragment2.java
@@ -43,8 +43,8 @@ public class TaskExplainFragment2 extends BaseFragment implements View.OnClickLi
@Override
protected void initView() {
super.initView();
- ivTaskExplain2 = mView.findViewById(R.id.iv_task_explain2_finish);
- taskExplain2Recycler = mView.findViewById(R.id.task_explain2_recycler);
+ ivTaskExplain2 = findViewById(R.id.iv_task_explain2_finish);
+ taskExplain2Recycler = findViewById(R.id.task_explain2_recycler);
ivTaskExplain2.setOnClickListener(this::onClick);
taskExplain2Recycler.setLayoutManager(new LinearLayoutManager(getActivity()));
taskExplain2Recycler.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));
diff --git a/app/src/main/java/com/example/myapplication/fragment/TaskPrefectureFragment.java b/app/src/main/java/com/example/myapplication/fragment/TaskPrefectureFragment.java
index 2ce3836..1169857 100644
--- a/app/src/main/java/com/example/myapplication/fragment/TaskPrefectureFragment.java
+++ b/app/src/main/java/com/example/myapplication/fragment/TaskPrefectureFragment.java
@@ -1,12 +1,30 @@
package com.example.myapplication.fragment;
+import android.content.Intent;
+import android.util.Log;
import android.view.View;
import android.widget.ImageView;
+import android.widget.Toast;
+
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
import com.example.myapplication.R;
+import com.example.myapplication.activity.WebActivity;
+import com.example.myapplication.adapter.TaskPrefectureAdapter;
import com.example.myapplication.base.BaseFragment;
+import com.example.myapplication.bean.TaskExplainBean;
+import com.example.myapplication.http.Callback;
+import com.example.myapplication.http.HttpInterface;
+import com.example.myapplication.http.OkGoBuilder;
+import com.jcodecraeer.xrecyclerview.ProgressStyle;
import com.jcodecraeer.xrecyclerview.XRecyclerView;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
/**
* 发现-任务专区
*/
@@ -14,7 +32,9 @@ public class TaskPrefectureFragment extends BaseFragment implements View.OnClick
private ImageView mIvFindTask;
private XRecyclerView taskRecycler;
-
+ private List dataBeanList;
+ private TaskPrefectureAdapter taskPrefectureAdapter;
+ private int page=1;
@Override
protected int getLayout() {
return R.layout.task_prefecture_fragment;
@@ -23,14 +43,109 @@ public class TaskPrefectureFragment extends BaseFragment implements View.OnClick
@Override
protected void initView() {
super.initView();
- mIvFindTask = mView.findViewById(R.id.iv_find_task);
+ mIvFindTask = findViewById(R.id.iv_find_task);
mIvFindTask.setOnClickListener(this::onClick);
- taskRecycler = mView.findViewById(R.id.task_recycler);
+ taskRecycler = findViewById(R.id.task_recycler);
+ taskRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
+ taskRecycler.addItemDecoration(new DividerItemDecoration(getActivity(),DividerItemDecoration.VERTICAL));
+ taskRecycler.setRefreshProgressStyle(ProgressStyle.BallSpinFadeLoader);
+ taskRecycler.setLoadingMoreProgressStyle(ProgressStyle.BallRotate);
+ //取消上拉加载,刷新功能。
+ taskRecycler.setPullRefreshEnabled(false);
+ taskRecycler.setLoadingMoreEnabled(false);
+ taskPrefectureAdapter = new TaskPrefectureAdapter(getActivity());
+ taskRecycler.setAdapter(taskPrefectureAdapter);
+ taskRecycler.getDefaultFootView().setNoMoreHint("已全部加载完毕");
+ taskRecycler.setLoadingListener(new XRecyclerView.LoadingListener() {
+ @Override
+ public void onRefresh() {
+
+ }
+
+ @Override
+ public void onLoadMore() {
+
+ }
+ });
+ taskPrefectureAdapter.setClickItem(new TaskPrefectureAdapter.clickItem() {
+ @Override
+ public void item(int id) {
+ Intent intent = new Intent(getContext(), WebActivity.class);
+ intent.putExtra("id",id);
+ startActivity(intent);
+ }
+ });
}
@Override
protected void initData() {
super.initData();
+ dataBeanList=new ArrayList<>();
+ initNetwork(true);
+
+ }
+
+ private void initNetwork(boolean start) {
+ OkGoBuilder.getInstance()
+ .Builder(getActivity())
+ .url(HttpInterface.listTask)
+ .method(OkGoBuilder.GET)
+ .cls(TaskExplainBean.class)
+ .json(new JSONObject())
+ .callback(new Callback() {
+ @Override
+ public void onSuccess(TaskExplainBean taskSpecificationBean, int id) {
+ dismissLoadingDialog();
+ taskPrefectureAdapter.setDataBeans(taskSpecificationBean.getBody().getData());
+ Log.d("TAG", "onSuccess: "+taskSpecificationBean.getMsg()+"");
+ //initTaskSpecification(taskSpecificationBean,start);
+ }
+ @Override
+ public void onError(Throwable e, int id) {
+ dismissLoadingDialog();
+ Log.d("TAG", "onError: "+e.getMessage());
+ }
+ }).build();
+ }
+
+ private void initTaskSpecification(TaskExplainBean taskSpecificationBean, boolean start) {
+ if (taskSpecificationBean.getStatus()==0) {
+ if (start) {
+ if (dataBeanList.size() > 0) {
+ dataBeanList.clear();
+ }
+ if (taskSpecificationBean.getBody() == null) {
+ Toast.makeText(getActivity(), "没有相关数据", Toast.LENGTH_SHORT).show();
+ } else {
+ dataBeanList.addAll(taskSpecificationBean.getBody().getData());
+ page++;
+ }
+ taskPrefectureAdapter.notifyDataSetChanged();
+ taskRecycler.refreshComplete();
+ } else {
+ if (taskSpecificationBean.getBody() == null) {
+ taskRecycler.setNoMore(true);
+ } else {
+ dataBeanList.addAll(taskSpecificationBean.getBody().getData());
+ taskPrefectureAdapter.notifyDataSetChanged();
+ taskRecycler.loadMoreComplete();
+ page++;
+ }
+ }
+ } else if (taskSpecificationBean.getStatus() == 2) {
+ if (start) {
+ if (dataBeanList.size() > 0) {
+ dataBeanList.clear();
+ taskPrefectureAdapter.notifyDataSetChanged();
+ }
+ taskRecycler.refreshComplete();
+ }else {
+ taskRecycler.setNoMore(true);
+ }
+ Toast.makeText(getActivity(), taskSpecificationBean.getMsg(), Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(getActivity(), taskSpecificationBean.getMsg(), Toast.LENGTH_SHORT).show();
+ }
}
@Override
diff --git a/app/src/main/java/com/example/myapplication/http/HttpInterface.java b/app/src/main/java/com/example/myapplication/http/HttpInterface.java
index 3168124..c8277c3 100644
--- a/app/src/main/java/com/example/myapplication/http/HttpInterface.java
+++ b/app/src/main/java/com/example/myapplication/http/HttpInterface.java
@@ -4,5 +4,7 @@ public class HttpInterface {
//http://172.21.91.160:8000/api/user/list
public static final String IP = "http://172.21.91.160:8000/api/1/";
public static final String listTask = IP + "task/list";//任务专区,活动专区
+ public static final String listEvent = IP + "task/list";//任务专区,活动专区
+ public static final String listInfo = IP + "task/info";//任务说明
public static final String listTaskExplain = IP + "task/info";//任务说明
}
diff --git a/app/src/main/java/com/example/myapplication/util/CustomScrollView.java b/app/src/main/java/com/example/myapplication/util/CustomScrollView.java
new file mode 100644
index 0000000..4429107
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/util/CustomScrollView.java
@@ -0,0 +1,34 @@
+package com.example.myapplication.util;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.GestureDetector;
+import android.view.MotionEvent;
+import android.widget.ScrollView;
+
+public class CustomScrollView extends ScrollView {
+ private GestureDetector mGestureDetector;
+ OnTouchListener mGestureListener;
+
+ public CustomScrollView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ mGestureDetector = new GestureDetector(new YScrollDetector());
+ setFadingEdgeLength(0);
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
+ }
+
+ // 如果水平滑动返回false
+ class YScrollDetector extends GestureDetector.SimpleOnGestureListener {
+ @Override
+ public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
+ if(Math.abs(distanceY) > Math.abs(distanceX)) {
+ return true;
+ }
+ return false;
+ }
+ }
+}
diff --git a/app/src/main/res/drawable/ic_baseline_arrow.xml b/app/src/main/res/drawable/ic_baseline_arrow.xml
index f632160..fa122e1 100644
--- a/app/src/main/res/drawable/ic_baseline_arrow.xml
+++ b/app/src/main/res/drawable/ic_baseline_arrow.xml
@@ -1,10 +1,5 @@
-
-
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_arrow_back.xml b/app/src/main/res/drawable/ic_baseline_arrow_back.xml
new file mode 100644
index 0000000..f632160
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_arrow_back.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_arrow.xml b/app/src/main/res/drawable/icon_arrow.xml
new file mode 100644
index 0000000..01b2c76
--- /dev/null
+++ b/app/src/main/res/drawable/icon_arrow.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/icon_capacity_evaluation.png b/app/src/main/res/drawable/icon_capacity_evaluation.png
new file mode 100644
index 0000000000000000000000000000000000000000..eee0f4a5edbd19a81e02cb4ee47cabc34940a1d4
GIT binary patch
literal 937
zcmV;a16KTrP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D13pPaK~!i%?U~-^2@_K)m+WNAOPYRt2S^(t>|byixBeMMZEC7K=;mwrD{Yx3;y~?e4~$
zrCGjYPBKYmm}Q^`esp)+>ZV|+#jj8`tQ-MYMkr<_#!_J$7<Kze`XuB-ur6;KuC!$6%zRsbv%tO0`+P!;CGkPBKZR{%re;!?-@EC=Sp@LqwOIdJtw
z&l=a}wZ!~w8O(>_odbAyU=0}3`0`5EdY{6Z{@(mG^I^z`94o-Vv7!wavWQ&VtHXR4
z-gN+qeFBrlG2DK?Gk<;lWd9_8515Y&>XRx2z=;`a=;E4}@mjA5FTV`cg}WW^ykI^q
zs86a8AaysI!o$vw;G||gE~UFsjILHc4?wMcB7<80ObnHsN&r?wF06k^(y0W5uw@6i
ztdLw-|At37=Ryz`3>>twPMZQl2MerE!2l2*9u{>rdP{?Y<&a7PKsY6CIs}T}*bf&E
zMFoJcfx_ivW_1IfvTxofIsk+@frD0NS{InGp)v0&DFB4K0d8q^Uk&t!etmZvpOOO@
z!3Zm3%(f#0+M}P;!i};67{M1Ctk(UX*eA@BR{f`b(K-#VSSj@%M}`KaIrQ#W00000
LNkvXXu0mjf=OUoX
literal 0
HcmV?d00001
diff --git a/app/src/main/res/drawable/icon_event_prefecture.png b/app/src/main/res/drawable/icon_event_prefecture.png
new file mode 100644
index 0000000000000000000000000000000000000000..4534c108eeb9dbf74fd87ae458299b05e89a06e9
GIT binary patch
literal 8110
zcmcI}_d6V3(C;>^wl*TVSS3+H^xjq{I!O?siy&Hrh`PIk4M7BnPDr$f-uto$qIat<
zAv)2bU*G#a?>}=l<}S^PC^foSAdx%*>g2XQ;19O~Fh7005}9wbYESNBlKDLrJgc
zgT@2V>jCI(tf>Mh?q^-Qoh6h_?pF1xEd$9O_yrNVsFBFAM##AGK?DnZ3>$i
zT#7vN4~VOrPOSd!Iy!e2R>`X>lr9fB!t&XVazvU_1nm!<*a%c0j=QRK-dbJ?Vv-Z+2>NhdQ{dgC$gvWME~nEtBi@
zS&WdiJ*;UIzWn*7uI-xr#lMSB!N2Bj<9l~tTy(z!($h$Ij2eGXfenuBh9+xkn&=%-
zNy>ZZH#Xd%(F4@>xESSgcWFBQ#bvB+F3-_ki9!|F|e7rs-
zx_7IC+dB3q#kMm|J|9HekvHJ4-6%Z}f@R$iJCwcJUBB`d1B`DO{te_xSgK0_>sT(hiz1hvmwl-q6s|7vYgxby>
z*$T{vpw#6~o&86hz`Q{$Bf6Z
zd;z`bh&TE*&(s-+vAvA3<o(#QLpDb(lVw@?hS^d43x3Qw|8z9cG2%1Wcz-n-vH(P5m{lW{%mkfls
zJJKpjlJ;k4dQi6T)6*^0**nOYBP359xP>rzzu4mI@Ldbta4I-+cTua8-DI}|Ee@Gg
zC?>`lUnV^`m)@}+q%Gi|X5%OD7y@y^D&4Nb>>4Dn_16##EfLbZCd>LYHVYAt1qf?`
zfW0gj7B*9#3$B@&51%h~ZJ%#uR^heN&(VKKisk19GU)}9b$LohJdH4^Jucv;-{C~u
zu0Wf8Aj9P8atKU{gbAL>4P6CMistdE!s*s3elUJLvLBEj#zY7DYLC;*LcqYX7?jxt
z&J6--_uNSF1>#FgYl!1#7Q3lckP*+Gw09{eDtJ5s)@;T}=3xyxR*G*Mp5+6!6Q8~-
zNB$xxVgjnEZBMv@q_3QBwkcIF9CSsSmAA(>y6BmrP%QgdwsF>`pt(TMdOIevA`dQg;L*`?JblfnHu~|8x2V8dk4pKF1a+d{q
z#*Bxrcu?9=j!_@KSgg?PXUe5TG*ZCRNf3|akVTc~T4(i}7vHEVs>y@qZkVYWEe}7u
z5@vkV%8?t%l)^8&5?ebyBK`{?a@z}Ks1Wy#TX>R<3tnz^M0e5+g6lA1yKb84GTH5a
zk(N|2FcgMEz!PvuxGD&Ht}fF|YIFmuqWqLX&HFZ%WycjCeQed?_MLfm%Crd!Y5y5+
zhfIoODGu#{NRtI~#-Z{m?s*iaQ^7U-We}b=zuQE($?VOlgra_fu(~(ksWj%3|3E;T
z`eBX;h&$3PBAZig5^3lQN75A=?@K@rv(tFk
z3gLBgQml)*30F7@{9u~-{ldaxuU#P?DG($YeWxeEnMv<+^=+ao#s!)eJn7H-UOhI3
zH0)(hqK%TNOeOUrYZHl_@$>)}zed%%uicrcJ?B)soQXBdq<&jj
zyEEe%_Zes>zGoz!!b`!qwyE_Hxz|Ud*pL+bG4}xlJnDH*<)1yq>So5S^4Yf-{}FH7
z7t)M(c{>4+2^w{zr}7VATk`$c#%y3s@!gVoOzL)1n6+RXcH>i8SILfCtS3T+!1itH
z^_-5Pz4T69j3bJdhm<4U3)EQ_rtIu(_>JlP7e?Qv%^XfyD+nah_K6zFVR)#BykBbp
zM}Dx`=^tVAjcm*l5>9Ci#OB&?NxGOWEq1=h86SVOflD0cEv{DI8;@wJbvtylZ1^W%
z{PYz}>b^pRfznPVR*5^Sza`JCjWp+a+rf9aH|n5ce`2&!>d_R?Dhy2BwsVv{UFbI5~4YABOL3SLU`K`-Rb?}w*VvM3d
zNZQV;ssZ6ObZJGqTd|m~y2)Ms!X3+ru)NDZ9byq~J93-2X48h!h-#eFUp3Z$s#&l
z@mQ?9r5mDuXx@AB
zYFgc^KB?wj$a+-~B@e?oht8-3yv}SGW+q7zUfS?u~m-$kV41cI|f8i*RVOPE>II=prCT}LdkU$kS
zZMu=1?T-FwzSb6#AwY8vNj0TuJtnW94GSBZlgAzg1U#P}T?HtQ+yP?r?O<&)SU(t8=27J`nRlnh8e=6A%1v_D^uhtgflgV
zi<`Y_%B$=5^q9a>WkffXn$*}0s)%RF;tDHVuecd;bEc_kk4w>|8)VJAT}*a;Cdx$w
z)e#;U$Crv^B6ktca0^qbHrzxBf(|N|tUP5kar6yJ#M@vmHPRfJ!iSGrV>_xMnIFyq
zaj)I$!CziBq&TKY0&mn2HH!iuYobWHX%S!tfxXgpiYtNX_R4@U0qIGNvsS3E37~QO
z2ymphg^ejh)vh()GppUBoeOSJpV=y$|3p-rTS1kO&FRyS24LRsKA6bqN|3?xWV`74
zkU-i$(96xuom6YOnpV7@)rWPK?cbpc36zR9yL!Gc8T1a#SpOuv)Hai>B_s)nKx~TX
zTB`oTCpgcJD43Owr4GP|{8ir6D#5~98Mbx^ck?$S2Iq?ujc%b>8nyI^F*hA&b|-S*
zm%{JeV@&~u^%=AMcX?J>gVB@y>wl
zz(#T*`a{s-95f?ni+_9W#r$7E^oPs@i&Ax9n@@NF0D>!B=ZD>{doS$BKD$9z;}i7O
zw=mN2?ndf>Q`9;s^b&(=gRwO*g~w$GTPaRQ(kSh5ssVomt&0M!S-&6sE_xq~>I}KOoUe6X)RryWKWH=0I3Jdy-zKECUnJaV
zQ_izy%E|w+wj}o~KGf*IhuZ!kLy`nb6w~cMikm!s-Zmm+oxMfQr9BnZRq$`RTtT~c
z)c8|AC8E~%=MLU0$u(4r=ghM``z8eR26*)dg|JwzA}g(!Xy-bijvl7(?qm!Jvb{c8USI=LsSk2@MuI+s40
zzV$wBN9Aft|J?o1xrg~&1{#pe{pOC|XKpwLNQKS5XvNu}QV3(vyxxZCds-XBHviiN
zj596p2+1NzJ(3_EtXVxNE@cz@UG#|MSZ<62&RTTS3nQwwp9sXWG-^qm+B`kXzUYFb
z?2piOy-`$?2!+@Ybj-t^_blIbDq8WfhuC{eKqYrPIz1+8mZ~MT5^g>5+C3ztI&B9%
zo~@5}g!w*g=|6AD*eG;EJiq$-BO&Rp?x>e6Mczqv>e54#nxvAbRZ^n#5yu!!z{`iK
z0FU4#l`yntw1|}$qv|CT#^%EdzbmEyygnEnniT0tP%6y5JV4$O(9vCMV5&Fzn
z7nkXN^o|OrFY!7`G2FJ5ouQ*L?LPGZoV#A+?jNW!6GbQ9dUoH$mQ-cJx}Owl&im#&
zb*9Vj)-*bA$>&?je~M^^ycM|>g0f@tG`=4xx3(&tTRlj#9gYzpOJ~%5e%4!;veS~@
zS15z<3)xkUbn7swjDH?6Y-DM+Y1y^i{L<~4&^SZ;u5+fa(n{;j_WM=a1!lXjNaro-
zZC{DrpZ|*^2SF}^!#(%DH31_N3>9eAaPh6i7)iHG($)lJ3)Ux<#SfUPF1yRQ}D?1$}z#d9!Xy*72z&o0Ot
z|GHCr&*-+@s$g2YrQe5WO3Br0Zz5OYVMN`OP~BZv`s_I}9AE2m!gu}~EOgjW*{h#O
z4X;2p(%hFMuwUKU(uEm;I3LJ8=iKJHjx&n!LMc8g6*_`_+Fs)0(IV+9e1u#cmcfm8
zHu)39UU#dXYU^1$It_c*#N_iK=1#~EEq`R0w4;!WCGFzs%oNbdmD9NUDGK)2m%B|J_FSo}o+svv(;VqJgzG;w6^qZ%idyZaV&x+YrNYc2cND
z%P%N!?{ea(Nm~~BweG|A&X>cpgQbN3eBO)CPs3|6b5+}#jKUgJ8P}O{{j&_hlZu#9
zA#T>aw{Q2ihB_Zj-vHTFIyzWvi6MWL)&?7*p;2s)=J>q4`gpcAUn((VFKqAKEqh7F
zI7$3PE4XvpzDE!K^}a7hK(@B@{*H!O!2H{)3*PM1SVY}czTc)VacBtw!{K
zq=t*}Ue3pcp=)j-R4PsQlS{<+NvfZRTGREZ;@Z5yXzs^5LJ$Rp5q?M^6V~?nJqGmX
z;aJ@^R6ikp7F;e;6uD{IxCJ+5-?W&ASH1P!)GoiS5_DXhg~LEZ9YkWT@3^9isd(Q>
zJET43!kofyq2VSUe^xx>UE$N`6!;n&&(@Nx76u`nUKJctSa*6NiQgo>)%**T^vEDu
zOX2FZnZ*G@i>LcK=v3J^%zCVyX_o!Z1~Kjnf*?DrsQO)d_9{*94}cFfFDgt;2G5)e
zM`v`A(m|J|sa9ZJaDFU73(Plk4KjErzkKmMj6~l_+o4P1Q>Ku#>Xs
z$EVUs0S$tIule6rkx`K4p_5AF5Bbea?Tder5vRt}mqRb^
zTw4SG<*GL|4%w(~!V^1@jno?&O4Y*&3J~fQtuk^AFX{a2$5sU)`6aaQppyxs36>xK
zSK9RrJymb^jW<_eBwHh73ra!Pwz$y#?xx#Uue3XYXFI;toQ
zqB6UQnRAI&jlFFWl=?Y@&&Us-Mt&&G!VYqG*J5Qv)v8AX#psX8My?MbEhFbxY>W;b
zXrBqe1fB1*Hd@JP{o^g(7Iyz0^n3bg2BbJSL?!U>eg9R^af{bM$?O|MPxO-ef3NvJ
z9P=apkz*fh{5gH_i36cwp;0}i=*?zFk5!`aD#!K1_~~Yw#X-QiGJEeVDM9xymJJc0?<4lVTat87
z8IBX4QTEd+K-46bdj8ivS6c(yGi(6?Aey=zv
z_oc)mcdt^wO18kguWrEtiUxWEUa32-#$Ti_)nT`-!$ILV##t+n3blU*ebbdX{0AHP
zi`fb66({r|B9IPS@0ClKJ-B2ft}8=NC5X1DHxRGtAz
ziQks2Uiq8YCBrdsg9treN0)p}HMD=)m3
zC#`?UEdmx*XiT4`>jLjbL`~gvZVkWt>uUG#%
zr&vooJ%1%bw6~SEh*N3>}Zgc;)EK~vY|CYRD|lYMSP_^+n2;co{=FxnDeE0*3Fv2
zN70nnu(t_SB4z-&mJM%
zE&U6j(AzpO_qH}F3_$s4rJ;q10#0~>OL^K2C;*5#9~>;M`JiK1EnG;AFk^)VqWh^K
zsY=YJ;grxlYPS9POV%R}I}TgsTHkO^UC
zOQCjnmhjco@RKLQ_s0}G~<29am!#sx)x
z;x`7qRw4&A9CH$wW`s-mOqPlLX?g%;E>V^thHHYTxgFT`tEIsCq2Bc$wtl@>rxq=(
zar^~qNDnooj`QCJJM0UKgZct-cg#>YHxH#jIc^xF
zs`#3NK}++oP{4F0CRe8vf`QIy(D*dgfP%=Lx&(Q`0ZXXy%AsAV^5dZH5S0i_z)DJ&bx`
zs07b1G)Md^2ZkWA=!LVS{=v(Vh>Pze7~^N_(Lx2K!QeXftpek2I%kCLy$N=J`f;bLIO`uK3P0ClizD%ZC|g8SZ2t{N;Me^27g;8KAl%t!CDYx{
zA^d0~jley@WL-|?XinO9x+(T$jG`v5(D!uW29_GG<%xmA%@=VTzw6@Q!wqm{_ZzY7bj}B}?5)w8r!8JdAAFk`;`ZzK**p^7mWj%tS5ZZ!-{N6A2O%
zj;MTKH=v|bBhe8hENblV|4KZaSNHqOt{#F@WV5rIj>ja2?yr_%yNG+=Z+U=QI#b#I
zrDY7=scB)py4XNfe2Pl|s&K*hondL$6Z3%7cB*q2CxyS#W&PPnml33+e;WakMpoDDvjTCl+YUG9&BgSPwNs=V-0E
zEC0GzB>E9|FZA7(ySK)mHfe)g(wL71SfzQ~>?>HMPkyY`a_5>4H&{m>{YvxkNu$1K
zyXRo9E*Cid%o
z5ZES|EYU+!#R4T&erknrd1yrnjh4nrXLW(Y&a?z#`~PYQN<8uGS@>L1qIjRDE^WrW
znj#kRux3`HnhJiu8}%%j47x4kblV`3z7YU2#CU@xyPUZhTU1ACac^w+y)~NTFO@>i-`|P9y4yEJOIQHRC+F*>#T{
NpslX2R;*%!`9II}8qfd$
literal 0
HcmV?d00001
diff --git a/app/src/main/res/drawable/icon_task_prefecture.png b/app/src/main/res/drawable/icon_task_prefecture.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1b2fd403806ecc9ab64f54776e6840b68a8f8fb
GIT binary patch
literal 10123
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