From c48d63dc3a5788c41504cc2e719c4491b2cfea12 Mon Sep 17 00:00:00 2001
From: Annnnnn <658117188@qq.com>
Date: Wed, 10 Nov 2021 17:59:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
# Conflicts:
# Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml
---
.../app/src/main/AndroidManifest.xml | 3 +-
.../Adapter/MessagePageFragmentAdapter.java | 34 ++++
.../Fragment/CommentFragment.java | 123 ++++++++++++++
.../Fragment/FansFragment.java | 123 ++++++++++++++
.../Fragment/IndexFragment.java | 2 +-
.../Fragment/MessageChannelFragment.java | 64 +++++++
.../Fragment/MessageFragment.java | 127 +++++++++-----
.../leudaemialikeme/Fragment/MyFragment.java | 18 +-
.../Fragment/NiceFragment.java | 116 +++++++++++++
.../Fragment/PrivateMsgFragment.java | 123 ++++++++++++++
.../app/src/main/res/drawable/img_helper.png | Bin 0 -> 609 bytes
.../src/main/res/drawable/img_reminding.png | Bin 0 -> 721 bytes
.../app/src/main/res/drawable/img_user.png | Bin 0 -> 1074 bytes
.../app/src/main/res/drawable/img_user1.png | Bin 0 -> 707 bytes
.../src/main/res/drawable/tab_selector.xml | 41 +++++
.../app/src/main/res/drawable/user1.png | Bin 0 -> 1197 bytes
.../app/src/main/res/drawable/user2.png | Bin 0 -> 1195 bytes
.../app/src/main/res/drawable/user3.png | Bin 0 -> 1172 bytes
.../src/main/res/layout/fragment_comment.xml | 99 +++++++++++
.../app/src/main/res/layout/fragment_fans.xml | 157 ++++++++++++++++++
.../layout/fragment_invitation_channel.xml | 4 +-
.../src/main/res/layout/fragment_message.xml | 94 ++++++++++-
.../res/layout/fragment_message_channel.xml | 16 ++
.../main/res/layout/fragment_private_msg2.xml | 93 +++++++++++
.../app/src/main/res/layout/tab_rb.xml | 12 ++
.../mipmap-anydpi-v26/channel_down_narrow.png | Bin 0 -> 423 bytes
.../main/res/mipmap-mdpi/img_read_already.png | Bin 0 -> 472 bytes
.../res/mipmap-xxhdpi/img_message_send.png | Bin 0 -> 828 bytes
.../app/src/main/res/values/colors.xml | 2 +
29 files changed, 1193 insertions(+), 58 deletions(-)
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Adapter/MessagePageFragmentAdapter.java
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/CommentFragment.java
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/FansFragment.java
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageChannelFragment.java
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/NiceFragment.java
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/PrivateMsgFragment.java
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_helper.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_reminding.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user1.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/drawable/tab_selector.xml
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/drawable/user1.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/drawable/user2.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/drawable/user3.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_comment.xml
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_fans.xml
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_message_channel.xml
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_private_msg2.xml
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/layout/tab_rb.xml
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/mipmap-anydpi-v26/channel_down_narrow.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/mipmap-mdpi/img_read_already.png
create mode 100644 Code/LeudaemiaLikeMe/app/src/main/res/mipmap-xxhdpi/img_message_send.png
diff --git a/Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml b/Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml
index e8312a5..aaa24f4 100644
--- a/Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml
+++ b/Code/LeudaemiaLikeMe/app/src/main/AndroidManifest.xml
@@ -9,7 +9,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.LeudaemiaLikeMe">
-
+
+
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Adapter/MessagePageFragmentAdapter.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Adapter/MessagePageFragmentAdapter.java
new file mode 100644
index 0000000..1836f05
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Adapter/MessagePageFragmentAdapter.java
@@ -0,0 +1,34 @@
+package com.example.leudaemialikeme.Adapter;
+
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentPagerAdapter;
+
+import com.example.leudaemialikeme.Fragment.MessageChannelFragment;
+
+public class MessagePageFragmentAdapter extends FragmentPagerAdapter {
+ private String[] channelList;
+ private FragmentManager fm;
+ public MessagePageFragmentAdapter(@NonNull FragmentManager fm, String[] channelList) {
+ super(fm);
+ this.channelList = channelList;
+ this.fm = fm;
+ }
+
+ @NonNull
+ @Override
+ public Fragment getItem(int position) {
+ String MessageCategoryTitle = channelList[position];
+
+ /* if(position == 0)
+ {return new PrivateMsgFragment();
+ }*/
+ return MessageChannelFragment.newInstance(MessageCategoryTitle);
+ }
+
+ @Override
+ public int getCount() {
+ return channelList.length;
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/CommentFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/CommentFragment.java
new file mode 100644
index 0000000..e4a2546
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/CommentFragment.java
@@ -0,0 +1,123 @@
+package com.example.leudaemialikeme.Fragment;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.fragment.app.Fragment;
+import androidx.viewpager.widget.ViewPager;
+
+import com.example.leudaemialikeme.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Activities that contain this fragment must implement the
+ * {@link PrivateMsgFragment.OnFragmentInteractionListener} interface
+ * to handle interaction events.
+ * Use the {@link PrivateMsgFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class CommentFragment extends Fragment implements ViewPager.OnPageChangeListener {
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ private View view;
+
+ private OnFragmentInteractionListener mListener;
+
+ public CommentFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment PrivateMsgFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ // return inflater.inflate(R.layout.fragment_private_msg2, container, false);
+ super.onCreate(savedInstanceState);
+ View view = inflater.inflate(R.layout.fragment_private_msg,container,false);
+ return view;
+ }
+
+ // TODO: Rename method, update argument and hook method into UI event
+ public void onButtonPressed(Uri uri) {
+ if (mListener != null) {
+ mListener.onFragmentInteraction(uri);
+ }
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ if (context instanceof OnFragmentInteractionListener) {
+ mListener = (OnFragmentInteractionListener) context;
+ } else {
+ throw new RuntimeException(context.toString()
+ + " must implement OnFragmentInteractionListener");
+ }
+ }
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+ mListener = null;
+ }
+
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+
+ /**
+ * This interface must be implemented by activities that contain this
+ * fragment to allow an interaction in this fragment to be communicated
+ * to the activity and potentially other fragments contained in that
+ * activity.
+ *
+ * See the Android Training lesson Communicating with Other Fragments for more information.
+ */
+ public interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ void onFragmentInteraction(Uri uri);
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/FansFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/FansFragment.java
new file mode 100644
index 0000000..88874cc
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/FansFragment.java
@@ -0,0 +1,123 @@
+package com.example.leudaemialikeme.Fragment;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.fragment.app.Fragment;
+import androidx.viewpager.widget.ViewPager;
+
+import com.example.leudaemialikeme.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Activities that contain this fragment must implement the
+ * {@link PrivateMsgFragment.OnFragmentInteractionListener} interface
+ * to handle interaction events.
+ * Use the {@link PrivateMsgFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class FansFragment extends Fragment implements ViewPager.OnPageChangeListener {
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ private View view;
+
+ private OnFragmentInteractionListener mListener;
+
+ public FansFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment PrivateMsgFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ // return inflater.inflate(R.layout.fragment_private_msg2, container, false);
+ super.onCreate(savedInstanceState);
+ View view = inflater.inflate(R.layout.fragment_fans,container,false);
+ return view;
+ }
+
+ // TODO: Rename method, update argument and hook method into UI event
+ public void onButtonPressed(Uri uri) {
+ if (mListener != null) {
+ mListener.onFragmentInteraction(uri);
+ }
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ if (context instanceof OnFragmentInteractionListener) {
+ mListener = (OnFragmentInteractionListener) context;
+ } else {
+ throw new RuntimeException(context.toString()
+ + " must implement OnFragmentInteractionListener");
+ }
+ }
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+ mListener = null;
+ }
+
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+
+ /**
+ * This interface must be implemented by activities that contain this
+ * fragment to allow an interaction in this fragment to be communicated
+ * to the activity and potentially other fragments contained in that
+ * activity.
+ *
+ * See the Android Training lesson Communicating with Other Fragments for more information.
+ */
+ public interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ void onFragmentInteraction(Uri uri);
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/IndexFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/IndexFragment.java
index db015c7..ec1a648 100644
--- a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/IndexFragment.java
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/IndexFragment.java
@@ -116,7 +116,7 @@ public class IndexFragment extends Fragment {
clockLinear.setOnClickListener(new View.OnClickListener(){
@Override
- public void onClick(View v) {
+ public void onClick(View view) {
Toast.makeText(view.getContext(),"x1233",Toast.LENGTH_SHORT).show();
}
});
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageChannelFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageChannelFragment.java
new file mode 100644
index 0000000..cef283a
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageChannelFragment.java
@@ -0,0 +1,64 @@
+package com.example.leudaemialikeme.Fragment;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import com.example.leudaemialikeme.R;
+
+public class MessageChannelFragment extends Fragment {
+ private static final String ARG_CATEGORY_TITLE = "category_title";
+ private String messageCategoryTitle = "Default";
+ private TextView mTitleField;
+
+ public MessageChannelFragment() {
+ // Required empty public constructor
+ }
+
+ public static MessageChannelFragment newInstance(String messageCategoryTitle) {
+ MessageChannelFragment fragment = new MessageChannelFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_CATEGORY_TITLE,messageCategoryTitle);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ try{
+ messageCategoryTitle = (String)getArguments().getString(ARG_CATEGORY_TITLE);
+ }catch (java.lang.NullPointerException e){
+ System.out.println("TesFragment getArg error!");
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View view;
+ if(messageCategoryTitle.equals(" 私信 "))
+ {
+ view = inflater.inflate(R.layout.fragment_private_msg,container,false);
+ }
+ else if(messageCategoryTitle.equals(" 评论 ")){
+ view = inflater.inflate(R.layout.fragment_comment,container,false);
+ }
+ else if(messageCategoryTitle.equals(" 粉丝 ")){
+ view = inflater.inflate(R.layout.fragment_fans,container,false);
+ }
+ else if(messageCategoryTitle.equals(" 赞 ")){
+ view = inflater.inflate(R.layout.fragment_nice,container,false);
+ }
+ else{
+ view = inflater.inflate(R.layout.fragment_message_channel, container, false);
+ mTitleField = (TextView) view.findViewById(R.id.messageCategoryTitle);
+ mTitleField.setText(messageCategoryTitle);
+ }
+ return view;
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageFragment.java
index ce5a8cf..bc4cb03 100644
--- a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageFragment.java
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/MessageFragment.java
@@ -1,65 +1,112 @@
package com.example.leudaemialikeme.Fragment;
import android.os.Bundle;
+import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.HorizontalScrollView;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.viewpager.widget.ViewPager;
+import com.example.leudaemialikeme.Adapter.MessagePageFragmentAdapter;
import com.example.leudaemialikeme.R;
-/**
- * A simple {@link Fragment} subclass.
- * Use the {@link MessageFragment#newInstance} factory method to
- * create an instance of this fragment.
- */
-public class MessageFragment extends Fragment {
- // TODO: Rename parameter arguments, choose names that match
- // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
- private static final String ARG_PARAM1 = "param1";
- private static final String ARG_PARAM2 = "param2";
-
- // TODO: Rename and change types of parameters
- private String mParam1;
- private String mParam2;
+public class MessageFragment extends Fragment implements ViewPager.OnPageChangeListener {
+ private static final String ARG_CHANNEL_LIST = "channel_list";
+ private View view=null; // 碎片的布局实例
+ private ViewPager viewPager; //内导航的碎片的容器
+ private RadioGroup rgChannel=null; // 内导航由单选按钮组构成
+ private HorizontalScrollView hvChannel=null; //单选按钮组可滚动动
+ private String[] channelList = {" 私信 "," 评论 ",
+ " 赞 "," 粉丝 "}; //默认的内导航栏目
+ private MessagePageFragmentAdapter adapter; //viewPager 的适配器
public MessageFragment() {
// Required empty public constructor
}
- /**
- * Use this factory method to create a new instance of
- * this fragment using the provided parameters.
- *
- * @param param1 Parameter 1.
- * @param param2 Parameter 2.
- * @return A new instance of fragment MessageFragment.
- */
- // TODO: Rename and change types and number of parameters
- public static MessageFragment newInstance(String param1, String param2) {
- MessageFragment fragment = new MessageFragment();
- Bundle args = new Bundle();
- args.putString(ARG_PARAM1, param1);
- args.putString(ARG_PARAM2, param2);
- fragment.setArguments(args);
- return fragment;
- }
@Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (getArguments() != null) {
- mParam1 = getArguments().getString(ARG_PARAM1);
- mParam2 = getArguments().getString(ARG_PARAM2);
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ if(view==null){
+ view=inflater.inflate(R.layout.fragment_message, container, false);
+ viewPager=(ViewPager)view.findViewById(R.id.vpNewsList0);
+ initViewPager(); //设置 ViewPager
+
+ rgChannel=(RadioGroup)view.findViewById(R.id.rgChannel0);
+ hvChannel=(HorizontalScrollView)view.findViewById(R.id.hvChannel0);
+ initTab(inflater);
+
+ rgChannel.setOnCheckedChangeListener(
+ new RadioGroup.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ viewPager.setCurrentItem(checkedId);
+ }
+ }
+ );
}
+ return view;
+ }
+
+ private void initTab(LayoutInflater inflater) {//初始化上面的
+ for(int i=0;i
+ * See the Android Training lesson Communicating with Other Fragments for more information.
+ */
+ public interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ void onFragmentInteraction(Uri uri);
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/PrivateMsgFragment.java b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/PrivateMsgFragment.java
new file mode 100644
index 0000000..dea6d06
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/java/com/example/leudaemialikeme/Fragment/PrivateMsgFragment.java
@@ -0,0 +1,123 @@
+package com.example.leudaemialikeme.Fragment;
+
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.fragment.app.Fragment;
+import androidx.viewpager.widget.ViewPager;
+
+import com.example.leudaemialikeme.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Activities that contain this fragment must implement the
+ * {@link PrivateMsgFragment.OnFragmentInteractionListener} interface
+ * to handle interaction events.
+ * Use the {@link PrivateMsgFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class PrivateMsgFragment extends Fragment implements ViewPager.OnPageChangeListener {
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ private View view;
+
+ private OnFragmentInteractionListener mListener;
+
+ public PrivateMsgFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment PrivateMsgFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ // return inflater.inflate(R.layout.fragment_private_msg2, container, false);
+ super.onCreate(savedInstanceState);
+ View view = inflater.inflate(R.layout.fragment_private_msg,container,false);
+ return view;
+ }
+
+ // TODO: Rename method, update argument and hook method into UI event
+ public void onButtonPressed(Uri uri) {
+ if (mListener != null) {
+ mListener.onFragmentInteraction(uri);
+ }
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ if (context instanceof OnFragmentInteractionListener) {
+ mListener = (OnFragmentInteractionListener) context;
+ } else {
+ throw new RuntimeException(context.toString()
+ + " must implement OnFragmentInteractionListener");
+ }
+ }
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+ mListener = null;
+ }
+
+ @Override
+ public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+ }
+
+ @Override
+ public void onPageSelected(int position) {
+
+ }
+
+ @Override
+ public void onPageScrollStateChanged(int state) {
+
+ }
+
+ /**
+ * This interface must be implemented by activities that contain this
+ * fragment to allow an interaction in this fragment to be communicated
+ * to the activity and potentially other fragments contained in that
+ * activity.
+ *
+ * See the Android Training lesson Communicating with Other Fragments for more information.
+ */
+ public interface OnFragmentInteractionListener {
+ // TODO: Update argument type and name
+ void onFragmentInteraction(Uri uri);
+ }
+}
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_helper.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_helper.png
new file mode 100644
index 0000000000000000000000000000000000000000..6d23a6c5759164270d7b1ade72ec5e8745c974f7
GIT binary patch
literal 609
zcmV-n0-pVeP)Px%8%ab#R9HvtS3PJHK@|SJ-6GK@A_hgU$n7P9yGuk4K@g3gU==GXn{?LELT<0{
z1aET|{?s=1US|_g!5>gWt}xzRak_h{6vY$@5)R4DlZ`o9&%1z`h4sK!&YSn%$2Z@+
zc|)XZOu0V(O#rowS0v#AvQw8K0ai&iJK){vp!Bjg-yaM#tU_HNwr=4*@!v?}oE==f
z7x(=Jpl*400L*P{SQNo4T_7|#1|>5f4gz@Yg#OXZ05kziiQtOc@{78~yYWj|?~o~Y
z0bqnslXh4Ry1rfpByu>RpSU>dR{k--8KFAi2IVLJ0Sq4l@3Q&vHgMYL7)^V*)c1BY
zCJKj@srHWo_a}pe&v6lJYoKQ39}+wnC2dP*N3M14YrH@;b7^dp=9g$qAdlQ|;Z&jk
z>e<3;h)k~+P}t)x`=8`|+DD+HvNKST&w7ao#aA00000NkvXXu0mjfQezUD
literal 0
HcmV?d00001
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_reminding.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_reminding.png
new file mode 100644
index 0000000000000000000000000000000000000000..7bf93f42ae09b3044d4919cc8476bdb8bfbbac8a
GIT binary patch
literal 721
zcmV;?0xtcDP)Px%i%CR5R9Hvtmdk4sQ543%a}z}nL{w;#nUM&t1fd%XEmRvfA}aVmS2fc?K~ek%
zbYWfSKOl;NGEVGD@c}C0#zqSU>ZTyL5-iRmEvSefh$i>QjE%-L&Wl13bC)ycobPwP
zxpU4XEb*cx*2ljMVA<+U-$7k-9;bCOwF9QDjtPOYzOa-yXK2n?8i+&yWl!6|5?h&g
zh=8G1K?Wv?X_5qm>UpOWwIlz%<*8*b4g+{YneTn2-nlP-%L@eu9c5GynE*cMinA_`cr(Uw)%O6_N@l}Q
z-5cou=KpmfR7!cLm;|8gsT0f?j_MJipP<=nx&U1V{$B?ySGfexi8w8|{TKb+lKHZ(
zxF-|$fz}y7z|oT8Tu;;oT=fV8*P>=Z$39?kVTGvGpMlX2U|N357L5%vpOOHWZwsr%
z^7;gTJ`kp4F1yX3nXm0NIs#apb{@>9{a{J7&&b>NlZZECO;6h^nD5O`(hGXtJ`)LG
z)s!M6J^eX-QAs1*p5wRV;F;j_3UVvI0>90
zU`=Zb10Px9Vpv|Mi)-YKs8d19RsC7-U%^^eRaczBq^_j`Fl}{M2>kIar9{!toWy4)
z6@b6X@!I-L4avdb$_T2APx&>`6pHR9HvtmS2ceRUF5^zdI?_f;9K8ZTU2{b7o9~C_|%=6x_gwpeX1er65`7
z-krh(3wmgMsjS#QoinZp{jrw^V`JF$6t88?Y^W%Sjjw+BY`?phw<%ICAkZ2__PLhRFRI8s^
zxNyw%YhVJ=Zys%HS~1aMvCqieVp
z&x*@)`6mK6C4VCmzZVIFRJ&!eaNBv4(%Mp;h?a_h{Z&_N>RO8?U~qg>#xmzwyXpI+05bUs+T`*3=r>i
z<{tq}Xjk<7Q&cg4liC$`H~!ltH3Y(z*?nS5^(}x^#9=Y;^1ICeqlk!63L;*xEbub%nbK?t=YSdlV@tFXs2<)Q6!W9=A+V+T9>5BKk83x#x>amj
zfSxx_bzSMY{%Ev~82F&-im027EL~PF664i)_F=d#7|2ID|FXopz}{2oLr7mvM-FLM
zY)v9a&uro7;>0UeSG+V=Od>$s3#G9^koEGk$RPq93f%0j*`iLV@)TRv<6wTU;j3NI
z_-@Hy1keJaA$EZQMW778nOWU6s0(6yQnkzhq>3(*t|YNiX+9yBH$?TdI!$
zM5R3lqEEs){75uqafaiWTjQ|sQ&_|0=ylZeAen@P`}AgUy5k;5OMg9q55@_Z#6>R~
zCr>h4#urxN3o5Y!PN}kkiM9cBM7!C(q{NN!rp7&?U2#vx6|kj$0N_Uf-mBeQzbQbx
zBZ%GsSZg=ubPSM|m7N4C0@SbF>|RpEp8x;=07*qoM6N<$f_5DSkpKVy
literal 0
HcmV?d00001
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user1.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/img_user1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e730c171988c77b9598f0d9c8f408733d37c82d
GIT binary patch
literal 707
zcmV;!0zCbRP)Px%eMv+?R9Hv7SBX&^K@4mnu!+Dp0z(AQ5nv*)i2#TIh`-)#{sqK>VudHUluTQvg2_gSP+#N}{yH;Kan|S~_|FJOKFQ
z&hC{4lKN~EGgD0{>M#D`CCQ5t3rzsr@IN>7sKT3zEYZCqxwi=b-@W)IxivFIt8Nh8
zXCdcirj8g`AXyBul>yOs?vW_34`vpF(pOI;xAnrz;$kJqP$z3-ECDbWOq|H@ACg0R
z#tgiX@O}VsM50^8r-BQz0&uFj$S`wMnh8|~eCk=DkTm&}4n>}(Ws;hljTQiL{!<%|
zBzFqVgZ}nh*R%i-)u9Db0JkJHfE2w_^C1)EJ;^v-6O}3eH?HEkiUv_IBBw|GCYL5n
zN)4>p<41d
zpJa-Dwy)i(Hlw$GA2Efc}Mb^tesy{haa{!dP!}ofr{C+&ya{zj7|D`y`37P}&
zveatF?}`B8`@h3xmueBf|42cx2Gj*Q!@|=|S7;SwJ=CbkFT$oQPC`FOH4DP%9nLS8
p+(WAFgV5vQkv;s^Q_|XH^a}fq0x;9{Aff;O002ovPDHLkV1g_hHT?hp
literal 0
HcmV?d00001
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/tab_selector.xml b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/tab_selector.xml
new file mode 100644
index 0000000..7da99e3
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/tab_selector.xml
@@ -0,0 +1,41 @@
+
+
+ -
+
+
-
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/user1.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/user1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a519b90fade01cf5c31fa61f202d47bf879a093f
GIT binary patch
literal 1197
zcmV;e1XBBnP)Px(XGugsR9HvNmVZoDWf;f5&pG$z1vG36kb$Ud2x;TTy%=7k4J3!OA|$yZ*H-+|
z)?gOSR;_I6AI<5qUAM}uTB9~nZyOS&4g>s!0RygpNznpLvJ9N@%PVltJx@F5j_U>P
z<=hlT=bv-l=Xu}n_wzpQdCz$X3w+T6`{Vx)u)QENT5yS<5nu#x9fbEGBLsw8F#o1h
zkV%Lj<_3l^LL_ei@G_Y9TC3~#XjNFV0%gx-e*~b^OXx0uAfLj_10V|Xzjk`glSxR3f%t$&^UDx?Q0LtJU`Pt>ncxk#&M!E^2
zDB#?MmYE)mo!08Q549?%xde(pS>DDyAlmIMmXw%)7mM=LP{q;j(BAp;R4*p0wYql4
z905G_HHcqO#8$>c!Mr{h#^kkAwC(LzaIw*j>wSN@>`11Wb2mA
zNL!bPuI_89?wa_O>fO72=3Em_)|^)WG&$ePk
z%reBqMyvXlyLvG)>OlGvkE`vL#^zyj%45Z3Dy*Cn0JREs+i7W0=q4>eC9fMFX(HoR
zb0B>Ks=%a>^wY@(CUL`T!pz*GUnH9;?&*QK2e|S>F+={sTi7)rL3~K(2?>N!aZS!A
zftUyU5_*eCT{WLF;}s<)jg3Rp>p`M0*`-atHYYVu^ZNo&jazM_926SjZA9aD#&yO5
z!+$ZqZveL2e&mTUGfPf&Ba<`%V!59(OC#n5fX~<#OH2CR6hl|%;Ni$PIBpy0pF#I8
z*(Cw83vviKC@fy$p}t-WU;ADdiQZ3HmQgJr&0XNEf8!vJ^_B4WO@lt;5a`h)Rg-&a
zK*PiC=O7&@K{C?(#4&S2inv&iNVlE6`vrJ9XH)Z!OPUUe6i!;)(c;s~XOJ)1wt-QhijLiY^mmmpq
zI)J(q;i-`OTcJzcr2Z-|)yZMG&5(q;pg%y|R&
zTH_f2jAk-f*82tE_M@vI3*FuwT!T$;4Y^;c>6aFO7;1vJbc!D!$nlh1^y{S7lnU^r
zZ%V-YvA2=)#+P8p_jc9-Al+iwY<%r~IGVbz!*>f@AM#5ROxdrNCze{5s8JLi0;FkKU^Ef&=^uPJfdyb^+9g00000
LNkvXXu0mjfYQj=}
literal 0
HcmV?d00001
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/user2.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/user2.png
new file mode 100644
index 0000000000000000000000000000000000000000..05bd9abd5882c07c43b8641274c17527ed9647a2
GIT binary patch
literal 1195
zcmV;c1XTNpP)Px(Wl2OqR9HvFmTgc}RT#&AX9>p^P)ra-C{4l<(qhqK#SD6p2x5Fmq8G`jFU?dc
zsgu)(qCQwn6ogJqV|_83cyXo}UZl(cGhTLZ1x=jDY-xO3qX-m`NbYIw-34}Y*}V(R
zcxLYGz2`j7|M@-7bMDxc1NHTr{m`#~A
zLdZ)Jv2iS*>;y4S3Q|=le?W8tm=iPBgV+hg_y|z1NV&~&tlFvvL>EAkDKlRP-f$HR
zyvacL3?mo1`Uo*j;mW|!=&}H-BG{&<8a@G>nV0Fw#??kIgdPB!+FySGRC_&p!YhEM
z(yPLcE?+?0yfD_LF63B;ov=_N?|$A)ckfkxv-i5N%FZTh^?YyeIx3JUT?JlRpGa!r
zZOoY&e4Xw$mS1`E(;wXC!cQ|H-Kcu2KrSCoKkOKZicNmW2~PEO7WQ3i(}$x4o$xnraGV^_i9
ze})MN3>cj{XtBNj`X_a}1BK|<^AD-30t
z7lYgbEFKjK4TB|SSp76y`Q0%cG7G-`0yfHP~iLx?7_
zARgx44vUt+LMPYhc4%*dKkd-o;wjb^QCRw+rv;AyGB0N-NRLX~y#l7q0HYCBt#N36
zR{?!}j{CL-xa@3=Ys3J8kfTG9S3&-A%{>@j=;kS0lFy$gNL?p(tm7
zX+8mN4uW;hgOp&YhhKj5>4M+_Qi&0T~}!Cs#6JO%{|WSTjMy<6sX%rinm2k$!negw&bMf7E%o(A|qI~
zGJ&d+(Tw!?yM8VG{uH|gkYDXf7i*q5peN{fHj@IFOyCjUe*vA_dNBDJ7>ob_002ov
JPDHLkV1jt)KNSD~
literal 0
HcmV?d00001
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/drawable/user3.png b/Code/LeudaemiaLikeMe/app/src/main/res/drawable/user3.png
new file mode 100644
index 0000000000000000000000000000000000000000..8dcac4bcfaf85f0355f1b04742fcec3b3a5430eb
GIT binary patch
literal 1172
zcmV;F1Z(?=P)Px(PDw;TR9HvFmTyd3RT##f(-tTM+Oaa)!C;-CFkuWj3~leGEIMN}gMkChnA61!
zf{ZO1Gr;)4&1e><#uyeRZqaRtQP&bS#P|urMrhYD*o?wNWWwB_rBtv(DE)U#Td5+Y
zy=7f?zTBML_dL(>r%3TU|iH)EyhT@3kvi5MWHLL(il}slH
zwh+Kd0e%os6M$6!QEPNv&xHp-#oPvvoU~f>$LN@OrCU^*D#7qALm>Uz8l5&JTmW_e
zJW;&BVV<<`+@c36ccS6bX6!85issf1WM)WVGEc!YG3E1&ayf-x==GLB5bTbCVN9YG
zf&_U^I)s8)*laeGmp%zi>qV3n6?mSR8Eer$FoN-kNp$z#fYoXPadETM`p*7)2T(DC
zoAWc%YAVZuWz_S2*S;g3Cn1olwc6|V3~;Kh`lcX`zpkX@DUa4qBU9knELbl~^~}u{
zE9PttBqexTL(QR&z>nlwK0g1gFc>kbBRINm_r?0^9gjJpyn0>wACVvuA|uTU;6C@6
zSu572NIdiU!zUnFCD0yfJi9q80Pf!Z=Kg29vvRXN1sH6!w0@6st(UfGbh`Fnv8*!S
z7AaM!UadV?{;qsudQ2eEk>3rb`nQ`dXtdgjVCJ4WVG}eT(^y;6QSnk?!Tj85bAY;>
z;PIn;GN;b8b-i+|VGCQ`kO17Gmp=cnMU}sy*q_0jv5D)_ZM)@c%|p(BZ|9fK{^p8~
zmx34R^Wsd8k8u@yl0q?GHURBae}K8aUZ)NlV4nkVSOH#CA9?)XhWi3w{qBW~I~Lid
zhh*!M0M2%RJ`6zYGo#eqb=((&0fcni8X5js68URq)H6*1yCAC!9Dk$!v~jfm#i}Rn
z67x(9XmmQnVkyLls~2q6I6elWaTsLw7l>kJ@JV|dO-{-Bs_LDi<$SFu>`k(DAtATo9s}??2xQ*A(l^J{4>I%Ef(4_Z6z>FaiAZJKwEDl%+p?JWp=Wq
zC|{~9*k5sf4Smp*2y!(SB`&qQsEci<&wRVA>K~`Jn53}K5IE0
m?-zj04#FLCUy3ah$iD%s`*ASpwkt#c0000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_fans.xml b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_fans.xml
new file mode 100644
index 0000000..ed0d37f
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_fans.xml
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_invitation_channel.xml b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_invitation_channel.xml
index 1f97fb2..aeca9a8 100644
--- a/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_invitation_channel.xml
+++ b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_invitation_channel.xml
@@ -11,7 +11,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
- android:textSize="30sp"
- android:text="@string/hello_blank_fragment" />
+ android:textSize="30sp">
+ />
\ No newline at end of file
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_message.xml b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_message.xml
index e78b6aa..c3f9b02 100644
--- a/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_message.xml
+++ b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_message.xml
@@ -1,14 +1,96 @@
-
-
-
+ android:layout_height="50dp"
+ android:orientation="horizontal">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_message_channel.xml b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_message_channel.xml
new file mode 100644
index 0000000..4684214
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_message_channel.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_private_msg2.xml b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_private_msg2.xml
new file mode 100644
index 0000000..0d290bb
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/res/layout/fragment_private_msg2.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/layout/tab_rb.xml b/Code/LeudaemiaLikeMe/app/src/main/res/layout/tab_rb.xml
new file mode 100644
index 0000000..964f02a
--- /dev/null
+++ b/Code/LeudaemiaLikeMe/app/src/main/res/layout/tab_rb.xml
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/Code/LeudaemiaLikeMe/app/src/main/res/mipmap-anydpi-v26/channel_down_narrow.png b/Code/LeudaemiaLikeMe/app/src/main/res/mipmap-anydpi-v26/channel_down_narrow.png
new file mode 100644
index 0000000000000000000000000000000000000000..c2ce19fa5f1930894578996d3a77fdd9e0ce9952
GIT binary patch
literal 423
zcmeAS@N?(olHy`uVBq!ia0vp^xlUVr}C(sR=B$;TgW)ZkKdiJZ2+{LJ&>^Pd^6l>Tj)lzQ`N5#xp!J@M|N
zuVuS7MXeQ4J-ul@bNk_kRePBVV#_s{7+KR>6P)Px$l1W5CR9Hvtm9a|0P!xv$8(MG?LC_Zv7Zt=wuyA`%I;yLqxClbAFW?eU#KA=b
zLGTF#r%n#dNlGma4i4%dE`pQ3fTeA&1X_@gv&G97ziRF
zCzw~S*XN{^&tdgK9q<#n-R>2D`J@n@=k1qDC99vu%xeIu04NMDvIRYe>7)Qb5oUhW
zTECg5xfPx%_DMuRR9HvtmQ6@hQ547j=e@BID%xZ%idMC$XcJM9^3EGym;^yd*cbLm3D%+(
z1yLGN)S@;9LG&Tm7iMiLOP!hXuqYxbq99rpK|!0KNWz(W;)=>Bla0>-Tg+X)ch5P$
z`@iR&a|jc>XoBOT2vAgDm;xfQ6TmhAivdh6aDx5-@CHB&GhZI`Jp>>k9snVtyQ
z;Cq1qrW4UtV@xFxt!3uW`X2%a!|Kf*9P
zuByjW^`P(j=b{j#QmF$(be4#Yc%FC4`bZ{|O?d&>%_33@;3j}ey}i8+)z#I%^8xAT
z=$KquT6%sUp|>&f^+CHa0SrJaBccbY`aYdb*9SrHb~K3Y?(RjgSnL9TS(!{`du3(i
zO26}+5LR#
zfQYOCa09^0SS(goUS2-*8uC`4v$M0Tq@?5p5xD?rnfXaR!Lwe>N&vS2d`+j*yMrKj
zop&WnBogyo*L?-Rl5b$
zh}o*z?l{gIRo!EZS(39C*mexyi>lgc)}^ZJMJxfXxGKzQ66;1N}cESyXw)YgZi0iwaD*0)GI}`JXVcTeEur0000#cdcdcd
#66c18c
#fff
+ #F1EEEE
+
\ No newline at end of file