From 8955b76dd0cb07a0499c6774edd7627f76758e50 Mon Sep 17 00:00:00 2001 From: niushuai233 Date: Tue, 5 Dec 2023 22:38:48 +0800 Subject: [PATCH] feat: :anchor: calendarview --- .../didicheck/base/activity/BaseActivity.java | 148 +++++++++ .../base/adapter/BaseRecyclerAdapter.java | 139 +++++++++ .../didicheck/base/fragment/BaseFragment.java | 52 ++++ .../base/fragment/FragmentAdapter.java | 95 ++++++ .../ui/group/GroupItemDecoration.java | 283 ++++++++++++++++++ .../ui/group/GroupRecyclerAdapter.java | 135 +++++++++ .../didicheck/ui/group/GroupRecyclerView.java | 92 ++++++ .../didicheck/ui/index/IndexMonthView.java | 91 ++++++ .../didicheck/ui/index/IndexWeekView.java | 103 +++++++ .../cc/niushuai/didicheck/ui/index/x.java | 4 + .../didicheck/ui/main/home/HomeFragment.java | 86 +++--- app/src/main/res/drawable-v21/bg_material.xml | 9 + app/src/main/res/drawable-v21/bg_ripple.xml | 3 + app/src/main/res/drawable/bg_material.xml | 13 + app/src/main/res/drawable/bg_ripple.xml | 3 + app/src/main/res/layout/fragment_home.xml | 168 ++++++++--- .../main/res/mipmap-xxxhdpi/ic_calendar.png | Bin 0 -> 4277 bytes app/src/main/res/mipmap-xxxhdpi/ic_clear.png | Bin 0 -> 1690 bytes .../res/mipmap-xxxhdpi/ic_colorful_logo.png | Bin 0 -> 8147 bytes app/src/main/res/mipmap-xxxhdpi/ic_custom.png | Bin 0 -> 6807 bytes .../main/res/mipmap-xxxhdpi/ic_flyme_logo.png | Bin 0 -> 3684 bytes app/src/main/res/mipmap-xxxhdpi/ic_full.png | Bin 0 -> 5068 bytes app/src/main/res/mipmap-xxxhdpi/ic_func.png | Bin 0 -> 6083 bytes .../main/res/mipmap-xxxhdpi/ic_increase.png | Bin 0 -> 832 bytes .../main/res/mipmap-xxxhdpi/ic_index_logo.png | Bin 0 -> 6284 bytes app/src/main/res/mipmap-xxxhdpi/ic_more.png | Bin 0 -> 2899 bytes app/src/main/res/mipmap-xxxhdpi/ic_multi.png | Bin 0 -> 5148 bytes .../main/res/mipmap-xxxhdpi/ic_progress.png | Bin 0 -> 13017 bytes app/src/main/res/mipmap-xxxhdpi/ic_range.png | Bin 0 -> 2469 bytes app/src/main/res/mipmap-xxxhdpi/ic_reduce.png | Bin 0 -> 853 bytes .../res/mipmap-xxxhdpi/ic_simple_logo.png | Bin 0 -> 7761 bytes app/src/main/res/mipmap-xxxhdpi/ic_single.png | Bin 0 -> 6513 bytes .../res/mipmap-xxxhdpi/ic_solar_system.png | Bin 0 -> 18170 bytes app/src/main/res/mipmap-xxxhdpi/ic_sun.png | Bin 0 -> 1061 bytes .../main/res/mipmap-xxxhdpi/ic_tab_logo.png | Bin 0 -> 11064 bytes app/src/main/res/values/attrs.xml | 15 + app/src/main/res/values/colors.xml | 8 + 37 files changed, 1368 insertions(+), 79 deletions(-) create mode 100644 app/src/main/java/cc/niushuai/didicheck/base/activity/BaseActivity.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/base/adapter/BaseRecyclerAdapter.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/base/fragment/BaseFragment.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/base/fragment/FragmentAdapter.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/ui/group/GroupItemDecoration.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/ui/group/GroupRecyclerAdapter.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/ui/group/GroupRecyclerView.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/ui/index/IndexMonthView.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/ui/index/IndexWeekView.java create mode 100644 app/src/main/java/cc/niushuai/didicheck/ui/index/x.java create mode 100644 app/src/main/res/drawable-v21/bg_material.xml create mode 100644 app/src/main/res/drawable-v21/bg_ripple.xml create mode 100644 app/src/main/res/drawable/bg_material.xml create mode 100644 app/src/main/res/drawable/bg_ripple.xml create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_calendar.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_clear.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_colorful_logo.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_custom.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_flyme_logo.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_full.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_func.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_increase.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_index_logo.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_more.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_multi.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_progress.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_range.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_reduce.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_simple_logo.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_single.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_solar_system.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_sun.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_tab_logo.png create mode 100644 app/src/main/res/values/attrs.xml diff --git a/app/src/main/java/cc/niushuai/didicheck/base/activity/BaseActivity.java b/app/src/main/java/cc/niushuai/didicheck/base/activity/BaseActivity.java new file mode 100644 index 0000000..52af317 --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/base/activity/BaseActivity.java @@ -0,0 +1,148 @@ +package cc.niushuai.didicheck.base.activity; + +import android.annotation.SuppressLint; +import android.os.Build; +import android.os.Bundle; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +/** + * 基类 + * Created by huanghaibin on 2017/11/16. + */ + +public abstract class BaseActivity extends AppCompatActivity { + + private static boolean isMiUi = false; + + protected void initWindow() { + + } + + protected abstract int getLayoutId(); + + protected abstract void initView(); + + protected abstract void initData(); + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + initWindow(); + setContentView(getLayoutId()); + initView(); + initData(); + } + + /** + * 设置小米黑色状态栏字体 + */ + @SuppressLint("PrivateApi") + private void setMIUIStatusBarDarkMode() { + if (isMiUi) { + Class clazz = getWindow().getClass(); + try { + int darkModeFlag; + Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams"); + Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE"); + darkModeFlag = field.getInt(layoutParams); + Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class); + extraFlagField.invoke(getWindow(), darkModeFlag, darkModeFlag); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + /* + * 静态域,获取系统版本是否基于MIUI + */ + + static { + try { + @SuppressLint("PrivateApi") Class sysClass = Class.forName("android.os.SystemProperties"); + Method getStringMethod = sysClass.getDeclaredMethod("get", String.class); + String version = (String) getStringMethod.invoke(sysClass, "ro.miui.ui.version.name"); + isMiUi = version.compareTo("V6") >= 0 && Build.VERSION.SDK_INT < 24; + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * 设置魅族手机状态栏图标颜色风格 + * 可以用来判断是否为Flyme用户 + * + * @param window 需要设置的窗口 + * @param dark 是否把状态栏字体及图标颜色设置为深色 + * @return boolean 成功执行返回true + */ + @SuppressWarnings("JavaReflectionMemberAccess") + public static boolean setMeiZuDarkMode(Window window, boolean dark) { + boolean result = false; + if (Build.VERSION.SDK_INT >= 24) { + return false; + } + if (window != null) { + try { + WindowManager.LayoutParams lp = window.getAttributes(); + Field darkFlag = WindowManager.LayoutParams.class + .getDeclaredField("MEIZU_FLAG_DARK_STATUS_BAR_ICON"); + Field meizuFlags = WindowManager.LayoutParams.class + .getDeclaredField("meizuFlags"); + darkFlag.setAccessible(true); + meizuFlags.setAccessible(true); + int bit = darkFlag.getInt(null); + int value = meizuFlags.getInt(lp); + if (dark) { + value |= bit; + } else { + value &= ~bit; + } + meizuFlags.setInt(lp, value); + window.setAttributes(lp); + result = true; + } catch (Exception e) { + e.printStackTrace(); + } + } + return result; + } + + @SuppressLint("InlinedApi") + private int getStatusBarLightMode() { + int result = 0; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (isMiUi) { + result = 1; + } else if (setMeiZuDarkMode(getWindow(), true)) { + result = 2; + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + result = 3; + } + } + return result; + } + + + @SuppressLint("InlinedApi") + protected void setStatusBarDarkMode() { + int type = getStatusBarLightMode(); + if (type == 1) { + setMIUIStatusBarDarkMode(); + } else if (type == 2) { + setMeiZuDarkMode(getWindow(), true); + } else if (type == 3) { + getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); + } + } +} diff --git a/app/src/main/java/cc/niushuai/didicheck/base/adapter/BaseRecyclerAdapter.java b/app/src/main/java/cc/niushuai/didicheck/base/adapter/BaseRecyclerAdapter.java new file mode 100644 index 0000000..607772c --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/base/adapter/BaseRecyclerAdapter.java @@ -0,0 +1,139 @@ +/* + * Copyright (C) 2016 huanghaibin_dev + * WebSite https://github.com/MiracleTimes-Dev + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package cc.niushuai.didicheck.base.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.ArrayList; +import java.util.List; + +/** + * 基本的适配器 + */ +@SuppressWarnings("unused") +public abstract class BaseRecyclerAdapter extends RecyclerView.Adapter { + + protected LayoutInflater mInflater; + protected List mItems; + private OnItemClickListener onItemClickListener; + private OnClickListener onClickListener; + + public BaseRecyclerAdapter(Context context) { + this.mItems = new ArrayList<>(); + mInflater = LayoutInflater.from(context); + onClickListener = new OnClickListener() { + @Override + public void onClick(int position, long itemId) { + if (onItemClickListener != null) + onItemClickListener.onItemClick(position, itemId); + } + }; + + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + final RecyclerView.ViewHolder holder = onCreateDefaultViewHolder(parent, viewType); + holder.itemView.setTag(holder); + holder.itemView.setOnClickListener(onClickListener); + return holder; + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + onBindViewHolder(holder, mItems.get(position), position); + } + + protected abstract RecyclerView.ViewHolder onCreateDefaultViewHolder(ViewGroup parent, int type); + + protected abstract void onBindViewHolder(RecyclerView.ViewHolder holder, T item, int position); + + @Override + public int getItemCount() { + return mItems.size(); + } + + void setOnItemClickListener(OnItemClickListener onItemClickListener) { + this.onItemClickListener = onItemClickListener; + } + + void addAll(List items) { + if (items != null && items.size() > 0) { + mItems.addAll(items); + notifyItemRangeInserted(mItems.size(), items.size()); + } + } + + final void addItem(T item) { + if (item != null) { + this.mItems.add(item); + notifyItemChanged(mItems.size()); + } + } + + final List getItems() { + return mItems; + } + + + final T getItem(int position) { + if (position < 0 || position >= mItems.size()) + return null; + return mItems.get(position); + } + + static abstract class OnClickListener implements View.OnClickListener { + @Override + public void onClick(View v) { + RecyclerView.ViewHolder holder = (RecyclerView.ViewHolder) v.getTag(); + onClick(holder.getAdapterPosition(), holder.getItemId()); + } + + public abstract void onClick(int position, long itemId); + } + + + interface OnItemClickListener { + void onItemClick(int position, long itemId); + } + + public final void removeItem(T item) { + if (this.mItems.contains(item)) { + int position = mItems.indexOf(item); + this.mItems.remove(item); + notifyItemRemoved(position); + } + } + + protected final void removeItem(int position) { + if (this.getItemCount() > position) { + this.mItems.remove(position); + notifyItemRemoved(position); + } + } + + protected final void clear(){ + mItems.clear(); + notifyDataSetChanged(); + } +} diff --git a/app/src/main/java/cc/niushuai/didicheck/base/fragment/BaseFragment.java b/app/src/main/java/cc/niushuai/didicheck/base/fragment/BaseFragment.java new file mode 100644 index 0000000..ee19825 --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/base/fragment/BaseFragment.java @@ -0,0 +1,52 @@ +package cc.niushuai.didicheck.base.fragment; + +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + + +public abstract class BaseFragment extends Fragment { + protected View mRootView; + protected LayoutInflater mInflater; + protected Context mContext; + + @Override + public void onAttach(Context context) { + mContext = context; + super.onAttach(context); + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + if (mRootView != null) { + ViewGroup parent = (ViewGroup) mRootView.getParent(); + if (parent != null) + parent.removeView(mRootView); + } else { + mRootView = inflater.inflate(getLayoutId(), container, false); + mInflater = inflater; + initView(); + initData(); + } + return mRootView; + } + + @Override + public void onDetach() { + mContext = null; + super.onDetach(); + } + + protected abstract int getLayoutId(); + + protected abstract void initView(); + + protected abstract void initData(); +} diff --git a/app/src/main/java/cc/niushuai/didicheck/base/fragment/FragmentAdapter.java b/app/src/main/java/cc/niushuai/didicheck/base/fragment/FragmentAdapter.java new file mode 100644 index 0000000..4bf74f1 --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/base/fragment/FragmentAdapter.java @@ -0,0 +1,95 @@ +package cc.niushuai.didicheck.base.fragment; + +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentPagerAdapter; +import androidx.fragment.app.FragmentTransaction; + +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings("unused") +public class FragmentAdapter extends FragmentPagerAdapter { + private List mFragment = new ArrayList<>(); + private final FragmentManager mFragmentManager; + private boolean mUpdateFlag; + private Fragment mCurFragment; + private String[] mTitles; + + public FragmentAdapter(FragmentManager fm) { + super(fm); + this.mFragmentManager = fm; + } + + public boolean isUpdateFlag() { + return mUpdateFlag; + } + + public void setUpdateFlag(boolean mUpdateFlag) { + this.mUpdateFlag = mUpdateFlag; + } + + @Override + public int getItemPosition(@NonNull Object object) { + return POSITION_NONE; + } + + + @NonNull + @Override + public Object instantiateItem(@NonNull ViewGroup container, int position) { + if (mUpdateFlag) { + Fragment fragment = (Fragment) super.instantiateItem(container, position); + String tag = fragment.getTag(); + FragmentTransaction transaction = mFragmentManager.beginTransaction(); + transaction.remove(fragment); + fragment = getItem(position); + if (!fragment.isAdded()) { + transaction.add(container.getId(), fragment, tag) + .attach(fragment) + .commitAllowingStateLoss(); + } + return fragment; + } + return super.instantiateItem(container, position); + } + + public void reset(List fragments) { + mFragment.clear(); + mFragment.addAll(fragments); + } + + @Override + public void setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) { + super.setPrimaryItem(container, position, object); + if (object instanceof Fragment) { + mCurFragment = (Fragment) object; + } + } + + public Fragment getCurFragment() { + return mCurFragment; + } + + public void reset(String[] titles) { + this.mTitles = titles; + } + + @Override + public Fragment getItem(int position) { + return mFragment.get(position); + } + + @Override + public int getCount() { + return mFragment.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + return mTitles[position]; + } +} diff --git a/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupItemDecoration.java b/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupItemDecoration.java new file mode 100644 index 0000000..11cf2c2 --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupItemDecoration.java @@ -0,0 +1,283 @@ +package cc.niushuai.didicheck.ui.group; + +import android.annotation.SuppressLint; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Rect; +import android.text.TextUtils; +import android.view.View; + +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import java.util.HashMap; +import java.util.Map; + +/** + * 分组浮动的ItemDecoration + * Created by haibin on 2017/5/15. + */ +@SuppressWarnings("all") +public class GroupItemDecoration extends RecyclerView.ItemDecoration { + protected int mGroupHeight; + protected int mGroutBackground; + protected Paint mBackgroundPaint; + protected Paint mTextPaint; + protected float mTextBaseLine; + protected int mPaddingLeft, mPaddingRight; + protected boolean isCenter; + protected boolean isHasHeader; + protected int mChildItemOffset; + @SuppressLint("UseSparseArrays") + protected Map mGroup = new HashMap<>(); + + public GroupItemDecoration() { + super(); + init(); + } + + private void init() { + mBackgroundPaint = new Paint(); + mBackgroundPaint.setColor(0xFFf5f7f8); + mBackgroundPaint.setStyle(Paint.Style.FILL); + mBackgroundPaint.setAntiAlias(true); + + mTextPaint = new Paint(); + mTextPaint.setColor(0xFF353535); + mTextPaint.setAntiAlias(true); + } + + /** + * 先于RecyclerView的Item onDraw调用 + * + * @param c RecyclerView canvas + * @param parent RecyclerView + * @param state stare + */ + @Override + public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { + super.onDraw(c, parent, state); + onDrawGroup(c, parent); + } + + /** + * 绘制分组Group + * + * @param c Canvas + * @param parent RecyclerView + */ + protected void onDrawGroup(Canvas c, RecyclerView parent) { + int paddingLeft = parent.getPaddingLeft(); + int right = parent.getWidth() - parent.getPaddingRight(); + int top, bottom; + int count = parent.getChildCount(); + for (int i = 0; i < parent.getChildCount(); i++) { + View child = parent.getChildAt(i); + final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); + int key = params.getViewLayoutPosition(); + if (mGroup.containsKey(key)) { + top = child.getTop() - params.topMargin - mGroupHeight; + bottom = top + mGroupHeight; + c.drawRect(paddingLeft, top, right, bottom, mBackgroundPaint); + String group = mGroup.get(params.getViewLayoutPosition()).toString(); + float x; + float y = top + mTextBaseLine; + if (isCenter) { + x = parent.getMeasuredWidth() / 2 - getTextX(group); + } else { + x = mPaddingLeft; + } + c.drawText(group, x, y, mTextPaint); + } + } + } + + /** + * 后于RecyclerView的Item onDraw调用 + * + * @param c RecyclerView canvas + * @param parent RecyclerView + * @param state stare + */ + @Override + public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { + super.onDrawOver(c, parent, state); + onDrawOverGroup(c, parent); + } + + /** + * 绘制悬浮组 + * + * @param c Canvas + * @param parent RecyclerView + */ + protected void onDrawOverGroup(Canvas c, RecyclerView parent) { + int firstVisiblePosition = ((LinearLayoutManager) parent.getLayoutManager()).findFirstVisibleItemPosition(); + if (firstVisiblePosition == RecyclerView.NO_POSITION) { + return; + } + Group group = getCroup(firstVisiblePosition); + if (group == null) + return; + String groupTitle = group.toString(); + if (TextUtils.isEmpty(groupTitle)) { + return; + } + boolean isRestore = false; + Group nextGroup = getCroup(firstVisiblePosition + 1); + if (nextGroup != null && !group.equals(nextGroup)) { + //说明是当前组最后一个元素,但不一定碰撞了 + View child = parent.findViewHolderForAdapterPosition(firstVisiblePosition).itemView; + if (child.getTop() + child.getMeasuredHeight() < mGroupHeight) { + //进一步检测碰撞 + c.save();//保存画布当前的状态 + isRestore = true; + c.translate(0, child.getTop() + child.getMeasuredHeight() - mGroupHeight); + } + } + int left = parent.getPaddingLeft(); + int right = parent.getWidth() - parent.getPaddingRight(); + int top = parent.getPaddingTop(); + int bottom = top + mGroupHeight; + c.drawRect(left, top, right, bottom, mBackgroundPaint); + float x; + float y = top + mTextBaseLine; + if (isCenter) { + x = parent.getMeasuredWidth() / 2 - getTextX(groupTitle); + } else { + x = mPaddingLeft; + } + c.drawText(groupTitle, x, y, mTextPaint); + if (isRestore) { + //还原画布为初始状态 + c.restore(); + } + } + + /** + * 设置item的上下左右偏移量 + * + * @param outRect rect + * @param view item + * @param parent RecyclerView + * @param state stare + */ + @Override + public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { + super.getItemOffsets(outRect, view, parent, state); + getItemOffsets(outRect, view, parent, parent.getChildViewHolder(view).getAdapterPosition()); + } + + /** + * 设置item的上下左右偏移量,不做任何处理就是默认状态 + * + * @param outRect outRect + * @param view view + * @param parent RecyclerView + * @param adapterPosition position + */ + protected void getItemOffsets(Rect outRect, View view, RecyclerView parent, int adapterPosition) { + if (mGroup.containsKey(adapterPosition)) { + outRect.set(0, mGroupHeight, 0, mGroup.containsKey(adapterPosition + 1) ? 0 : mChildItemOffset); + } else { + outRect.set(0, 0, 0, mGroup.containsKey(adapterPosition + 1) ? 0 : mChildItemOffset); + } + } + + /** + * 获得当前ViewPosition所在的组 + * + * @param position 当前View的position + * @return 当前ViewPosition所在的组 + */ + protected Group getCroup(int position) { + while (position >= 0) { + if (mGroup.containsKey(position)) { + return mGroup.get(position); + } + position--; + } + return null; + } + + /** + * 通知更新分组信息 + * + * @param adapter GroupRecyclerAdapter + */ + public void notifyDataSetChanged(GroupRecyclerAdapter adapter) { + mGroup.clear(); + if (adapter == null) return; + int key = 0; + for (int i = 0; i < adapter.getGroupCount(); i++) { + if (i == 0) { + mGroup.put(isHasHeader ? 1 : 0, adapter.getGroup(i)); + key += adapter.getChildCount(i) + (isHasHeader ? 1 : 0); + ; + } else { + mGroup.put(key, adapter.getGroup(i)); + key += adapter.getChildCount(i); + } + } + } + + public void setChildItemOffset(int childItemOffset){ + this.mChildItemOffset = childItemOffset; + } + + public void setBackground(int groupBackground) { + mBackgroundPaint.setColor(groupBackground); + } + + public void setTextColor(int textColor) { + mTextPaint.setColor(textColor); + } + + public void setTextSize(float textSize) { + mTextPaint.setTextSize(textSize); + Paint.FontMetrics metrics = mTextPaint.getFontMetrics(); + mTextBaseLine = mGroupHeight / 2 - metrics.descent + (metrics.bottom - metrics.top) / 2; + } + + public void setGroupHeight(int groupHeight) { + mGroupHeight = groupHeight; + Paint.FontMetrics metrics = mTextPaint.getFontMetrics(); + mTextBaseLine = mGroupHeight / 2 - metrics.descent + (metrics.bottom - metrics.top) / 2; + } + + public void setPadding(int mPaddingLeft, int mPaddingRight) { + this.mPaddingLeft = mPaddingLeft; + this.mPaddingRight = mPaddingRight; + } + + public void setCenter(boolean isCenter) { + this.isCenter = isCenter; + } + + public void setHasHeader(boolean hasHeader) { + isHasHeader = hasHeader; + } + + /** + * 获取文本的x坐标起点 + * + * @param str 文本 + * @return x + */ + protected float getTextX(String str) { + Rect bounds = new Rect(); + mTextPaint.getTextBounds(str, 0, str.length(), bounds); + return bounds.width() / 2; + } + + /** + * 获取文本的长度像素 + * @param str 文本 + * @return px + */ + protected float getTextLenghtPx(String str) { + Rect bounds = new Rect(); + mTextPaint.getTextBounds(str, 0, str.length(), bounds); + return bounds.width(); + } +} diff --git a/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupRecyclerAdapter.java b/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupRecyclerAdapter.java new file mode 100644 index 0000000..e8232b6 --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupRecyclerAdapter.java @@ -0,0 +1,135 @@ +package cc.niushuai.didicheck.ui.group; + +import android.content.Context; + + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; + +import cc.niushuai.didicheck.base.adapter.BaseRecyclerAdapter; + + +/** + * 分组的RecyclerAdapter + * Created by haibin on 2017/5/15. + */ +@SuppressWarnings("unused") +public abstract class GroupRecyclerAdapter extends BaseRecyclerAdapter { + private LinkedHashMap> mGroups; + private List mGroupTitles; + + public GroupRecyclerAdapter(Context context) { + super(context); + mGroups = new LinkedHashMap<>(); + mGroupTitles = new ArrayList<>(); + } + + /** + * 返回特定的标题 + */ + Parent getGroup(int groupPosition) { + return mGroupTitles.get(groupPosition); + } + + /** + * 获得分组的数量 + * + * @return 组的数量 + */ + int getGroupCount() { + return mGroupTitles.size(); + } + + /** + * 获取某一组的数量 + * + * @param groupPosition groupPosition + * @return 某一组的数量 + */ + int getChildCount(int groupPosition) { + if (mGroupTitles == null || mGroups.size() == 0) + return 0; + if (mGroups.get(mGroupTitles.get(groupPosition)) == null) + return 0; + return mGroups.get(mGroupTitles.get(groupPosition)).size(); + } + + /** + * 重置分组数据 + * + * @param groups groups + * @param titles titles + */ + protected void resetGroups(LinkedHashMap> groups, List titles) { + if (groups == null || titles == null) { + return; + } + mGroups.clear(); + mGroupTitles.clear(); + mGroups.putAll(groups); + mGroupTitles.addAll(titles); + mItems.clear(); + for (Parent key : mGroups.keySet()) { + mItems.addAll(mGroups.get(key)); + } + notifyDataSetChanged(); + } + + /** + * 清除分组数据 + */ + public final void clearGroup() { + mGroupTitles.clear(); + mGroups.clear(); + clear(); + } + + /** + * 从分组移除数据 + * + * @param position 下标 + * @return 分组是否为空,要移除分组 + */ + public boolean removeGroupItem(int position) { + int group = getGroupIndex(position); + removeGroupChildren(group); + int count = getChildCount(group); + removeItem(position); + if (count <= 0) { + mGroupTitles.remove(group); + return true; + } + return false; + } + + /** + * 获取所在分组 + * + * @param position 下标 + * @return 获取所在分组 + */ + private int getGroupIndex(int position) { + int count = 0; + if (position <= count) + return 0; + int i = 0; + for (Parent parent : mGroups.keySet()) { + count += mGroups.get(parent).size(); + if (position < count) { + return i; + } + i++; + } + return 0; + } + + private void removeGroupChildren(int groupPosition) { + if (groupPosition >= mGroupTitles.size()) + return; + List childList = mGroups.get(mGroupTitles.get(groupPosition)); + if (childList != null && childList.size() != 0) { + childList.remove(childList.size() - 1); + } + } +} diff --git a/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupRecyclerView.java b/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupRecyclerView.java new file mode 100644 index 0000000..36276a4 --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/ui/group/GroupRecyclerView.java @@ -0,0 +1,92 @@ +package cc.niushuai.didicheck.ui.group; + +import android.content.Context; +import android.content.res.TypedArray; +import android.util.AttributeSet; + +import androidx.annotation.Nullable; +import androidx.recyclerview.widget.RecyclerView; + +import cc.niushuai.didicheck.R; + + +/** + * 带分组浮动的RecyclerView + * Created by haibin on 2017/5/15. + */ +@SuppressWarnings("all") +public class GroupRecyclerView extends RecyclerView { + private GroupItemDecoration mItemDecoration; + private int mGroupHeight; + private int mGroutBackground, mTextColor; + private int mTextSize; + private int mPaddingLeft, mPaddingRight; + private boolean isCenter; + protected int mChildItemOffset; + private boolean isHasHeader; + private OnGroupChangeListener mListener; + + public GroupRecyclerView(Context context) { + super(context); + } + + public GroupRecyclerView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.GroupRecyclerView); + mTextSize = array.getDimensionPixelSize(R.styleable.GroupRecyclerView_group_text_size, 16); + mGroupHeight = (int) array.getDimension(R.styleable.GroupRecyclerView_group_height, 52); + mChildItemOffset = (int) array.getDimension(R.styleable.GroupRecyclerView_group_child_offset, 20); + mTextColor = array.getColor(R.styleable.GroupRecyclerView_group_text_color, 0xFFFFFFFF); + mGroutBackground = array.getColor(R.styleable.GroupRecyclerView_group_background, 0x80000000); + isCenter = array.getBoolean(R.styleable.GroupRecyclerView_group_center, false); + isHasHeader = array.getBoolean(R.styleable.GroupRecyclerView_group_has_header, true); + mPaddingLeft = (int) array.getDimension(R.styleable.GroupRecyclerView_group_padding_left, 16); + mPaddingRight = (int) array.getDimension(R.styleable.GroupRecyclerView_group_padding_right, 16); + array.recycle(); + } + + + @Override + public void setAdapter(Adapter adapter) { + if (adapter instanceof GroupRecyclerAdapter) { + super.setAdapter(adapter); + } else { + throw new IllegalStateException("Adapter must instanceof " + + "GroupRecyclerAdapter or extends GroupRecyclerAdapter"); + } + } + + @Override + public void addItemDecoration(ItemDecoration decor) { + if (decor instanceof GroupItemDecoration) + super.addItemDecoration(decor); + else + throw new IllegalStateException("ItemDecoration must instanceof " + + "GroupItemDecoration or extends GroupItemDecoration"); + mItemDecoration = (GroupItemDecoration) decor; + mItemDecoration.setTextSize(mTextSize); + mItemDecoration.setBackground(mGroutBackground); + mItemDecoration.setTextColor(mTextColor); + mItemDecoration.setGroupHeight(mGroupHeight); + mItemDecoration.setPadding(mPaddingLeft, mPaddingRight); + mItemDecoration.setCenter(isCenter); + mItemDecoration.setHasHeader(isHasHeader); + mItemDecoration.setChildItemOffset(mChildItemOffset); + //mItemDecoration.notifyDataSetChanged((GroupRecyclerAdapter) getAdapter()); + } + + public void notifyDataSetChanged() { + mItemDecoration.notifyDataSetChanged((GroupRecyclerAdapter) getAdapter()); + } + + public void setOnGroupChangeListener(OnGroupChangeListener listener) { + this.mListener = listener; + } + + /** + * 分组最上面改变通知 + */ + public interface OnGroupChangeListener { + void onGroupChange(int groupPosition, String group); + } +} diff --git a/app/src/main/java/cc/niushuai/didicheck/ui/index/IndexMonthView.java b/app/src/main/java/cc/niushuai/didicheck/ui/index/IndexMonthView.java new file mode 100644 index 0000000..a5ef64f --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/ui/index/IndexMonthView.java @@ -0,0 +1,91 @@ +package cc.niushuai.didicheck.ui.index; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; + +import com.haibin.calendarview.Calendar; +import com.haibin.calendarview.MonthView; + +/** + * 下标标记的日历控件 + * Created by huanghaibin on 2017/11/15. + */ + +public class IndexMonthView extends MonthView { + private Paint mSchemeBasicPaint = new Paint(); + private int mPadding; + private int mH, mW; + + public IndexMonthView(Context context) { + super(context); + + mSchemeBasicPaint.setAntiAlias(true); + mSchemeBasicPaint.setStyle(Paint.Style.FILL); + mSchemeBasicPaint.setTextAlign(Paint.Align.CENTER); + mSchemeBasicPaint.setColor(0xff333333); + mSchemeBasicPaint.setFakeBoldText(true); + mPadding = dipToPx(getContext(), 4); + mH = dipToPx(getContext(), 2); + mW = dipToPx(getContext(), 8); + } + + + @Override + protected boolean onDrawSelected(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme) { + mSelectedPaint.setStyle(Paint.Style.FILL); + canvas.drawRect(x + mPadding, y + mPadding, x + mItemWidth - mPadding, y + mItemHeight - mPadding, mSelectedPaint); + return true; + } + + /** + * onDrawSelected + * @param canvas canvas + * @param calendar 日历calendar + * @param x 日历Card x起点坐标 + * @param y 日历Card y起点坐标 + */ + @SuppressWarnings("IntegerDivisionInFloatingPointContext") + @Override + protected void onDrawScheme(Canvas canvas, Calendar calendar, int x, int y) { + mSchemeBasicPaint.setColor(calendar.getSchemeColor()); + canvas.drawRect(x + mItemWidth / 2 - mW / 2, + y + mItemHeight - mH * 2 - mPadding, + x + mItemWidth / 2 + mW / 2, + y + mItemHeight - mH - mPadding, mSchemeBasicPaint); + } + + @SuppressWarnings("IntegerDivisionInFloatingPointContext") + @Override + protected void onDrawText(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme, boolean isSelected) { + int cx = x + mItemWidth / 2; + int top = y - mItemHeight / 6; + if (hasScheme) { + canvas.drawText(String.valueOf(calendar.getDay()), cx, mTextBaseLine + top, + calendar.isCurrentDay() ? mCurDayTextPaint : + calendar.isCurrentMonth() ? mSchemeTextPaint : mOtherMonthTextPaint); + + canvas.drawText(calendar.getLunar(), cx, mTextBaseLine + y + mItemHeight / 10, + calendar.isCurrentDay() ? mCurDayLunarTextPaint : + mCurMonthLunarTextPaint); + + } else { + canvas.drawText(String.valueOf(calendar.getDay()), cx, mTextBaseLine + top, + calendar.isCurrentDay() ? mCurDayTextPaint : + calendar.isCurrentMonth() ? mCurMonthTextPaint : mOtherMonthTextPaint); + canvas.drawText(calendar.getLunar(), cx, mTextBaseLine + y + mItemHeight / 10, mCurMonthLunarTextPaint); + } + } + + /** + * dp转px + * + * @param context context + * @param dpValue dp + * @return px + */ + private static int dipToPx(Context context, float dpValue) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (dpValue * scale + 0.5f); + } +} diff --git a/app/src/main/java/cc/niushuai/didicheck/ui/index/IndexWeekView.java b/app/src/main/java/cc/niushuai/didicheck/ui/index/IndexWeekView.java new file mode 100644 index 0000000..c7a5206 --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/ui/index/IndexWeekView.java @@ -0,0 +1,103 @@ +package cc.niushuai.didicheck.ui.index; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; + +import com.haibin.calendarview.Calendar; +import com.haibin.calendarview.WeekView; + +/** + * 下标周视图 + * Created by huanghaibin on 2017/11/29. + */ + +public class IndexWeekView extends WeekView { + private Paint mSchemeBasicPaint = new Paint(); + private int mPadding; + private int mH, mW; + + public IndexWeekView(Context context) { + super(context); + mSchemeBasicPaint.setAntiAlias(true); + mSchemeBasicPaint.setStyle(Paint.Style.FILL); + mSchemeBasicPaint.setTextAlign(Paint.Align.CENTER); + mSchemeBasicPaint.setColor(0xff333333); + mSchemeBasicPaint.setFakeBoldText(true); + mPadding = dipToPx(getContext(), 4); + mH = dipToPx(getContext(), 2); + mW = dipToPx(getContext(), 8); + } + + @Override + protected void onPreviewHook() { + + } + + /** + * 如果这里和 onDrawScheme 是互斥的,则 return false, + * return true 会先绘制 onDrawSelected,再绘制onDrawSelected + * + * @param canvas canvas + * @param calendar 日历日历calendar + * @param x 日历Card x起点坐标 + * @param hasScheme hasScheme 非标记的日期 + */ + @Override + protected boolean onDrawSelected(Canvas canvas, Calendar calendar, int x, boolean hasScheme) { + mSelectedPaint.setStyle(Paint.Style.FILL); + canvas.drawRect(x + mPadding, mPadding, x + mItemWidth - mPadding, mItemHeight - mPadding, mSelectedPaint); + return true; + } + + /** + * 绘制下标标记 + * + * @param canvas canvas + * @param calendar 日历calendar + * @param x 日历Card x起点坐标 + */ + @SuppressWarnings("IntegerDivisionInFloatingPointContext") + @Override + protected void onDrawScheme(Canvas canvas, Calendar calendar, int x) { + mSchemeBasicPaint.setColor(calendar.getSchemeColor()); + canvas.drawRect(x + mItemWidth / 2 - mW / 2, + mItemHeight - mH * 2 - mPadding, + x + mItemWidth / 2 + mW / 2, + mItemHeight - mH - mPadding, mSchemeBasicPaint); + } + + @SuppressWarnings("IntegerDivisionInFloatingPointContext") + @Override + protected void onDrawText(Canvas canvas, Calendar calendar, int x, boolean hasScheme, boolean isSelected) { + int cx = x + mItemWidth / 2; + int top = -mItemHeight / 6; + if (hasScheme) { + canvas.drawText(String.valueOf(calendar.getDay()), cx, mTextBaseLine + top, + calendar.isCurrentDay() ? mCurDayTextPaint : + calendar.isCurrentMonth() ? mSchemeTextPaint : mCurMonthTextPaint); + canvas.drawText(calendar.getLunar(), cx, mTextBaseLine + mItemHeight / 10, + calendar.isCurrentDay() ? mCurDayLunarTextPaint : + mCurMonthLunarTextPaint); + } else { + canvas.drawText(String.valueOf(calendar.getDay()), cx, mTextBaseLine + top, + calendar.isCurrentDay() ? mCurDayTextPaint : + calendar.isCurrentMonth() ? mCurMonthTextPaint : mCurMonthTextPaint); + canvas.drawText(calendar.getLunar(), cx, mTextBaseLine + mItemHeight / 10, + calendar.isCurrentDay() ? mCurDayLunarTextPaint : + mCurMonthLunarTextPaint); + } + } + + /** + * dp转px + * + * @param context context + * @param dpValue dp + * @return px + */ + private static int dipToPx(Context context, float dpValue) { + final float scale = context.getResources().getDisplayMetrics().density; + return (int) (dpValue * scale + 0.5f); + } +} diff --git a/app/src/main/java/cc/niushuai/didicheck/ui/index/x.java b/app/src/main/java/cc/niushuai/didicheck/ui/index/x.java new file mode 100644 index 0000000..3edcdc0 --- /dev/null +++ b/app/src/main/java/cc/niushuai/didicheck/ui/index/x.java @@ -0,0 +1,4 @@ +package cc.niushuai.didicheck.ui.index; + +public class x { +} diff --git a/app/src/main/java/cc/niushuai/didicheck/ui/main/home/HomeFragment.java b/app/src/main/java/cc/niushuai/didicheck/ui/main/home/HomeFragment.java index c921e81..0f08cff 100644 --- a/app/src/main/java/cc/niushuai/didicheck/ui/main/home/HomeFragment.java +++ b/app/src/main/java/cc/niushuai/didicheck/ui/main/home/HomeFragment.java @@ -6,6 +6,7 @@ import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.LinearLayout; import android.widget.TextView; import androidx.annotation.NonNull; @@ -62,7 +63,7 @@ public class HomeFragment extends Fragment { Log.d("Home", "onCreateView"); fragmentHomeBinding = FragmentHomeBinding.inflate(inflater, container, false); - ConstraintLayout rootLayout = fragmentHomeBinding.getRoot(); + LinearLayout rootLayout = fragmentHomeBinding.getRoot(); initTextView(); @@ -79,38 +80,37 @@ public class HomeFragment extends Fragment { } private void initVerticalCalendarView() { - CalendarView homeMainCalendar = fragmentHomeBinding.homeMainCalendar; -// homeMainCalendar.setSchemeDate(); - homeMainCalendar.setOnCalendarSelectListener(new CalendarView.OnCalendarSelectListener() { - @Override - public void onCalendarOutOfRange(Calendar calendar) { - Log.d("onCalendarOutOfRange", "" + calendar.getTimeInMillis()); - } - - @Override - public void onCalendarSelect(Calendar calendar, boolean isClick) { - Log.d("onCalendarSelect", isClick + "---" + calendar.getTimeInMillis()); - String dateStr = StrUtil.format("{}-{}-{}", calendar.getYear(), calendar.getMonth(), calendar.getDay()); - homeViewModel.setSelectDate(DateUtil.parseDate(dateStr)); - - // 刷新数据 - refreshDataListByDate(dateStr); - } - }); +// CalendarView homeMainCalendar = fragmentHomeBinding.homeMainCalendar; +// homeMainCalendar.setOnCalendarSelectListener(new CalendarView.OnCalendarSelectListener() { +// @Override +// public void onCalendarOutOfRange(Calendar calendar) { +// Log.d("onCalendarOutOfRange", "" + calendar.getTimeInMillis()); +// } +// +// @Override +// public void onCalendarSelect(Calendar calendar, boolean isClick) { +// Log.d("onCalendarSelect", isClick + "---" + calendar.getTimeInMillis()); +// String dateStr = StrUtil.format("{}-{}-{}", calendar.getYear(), calendar.getMonth(), calendar.getDay()); +// homeViewModel.setSelectDate(DateUtil.parseDate(dateStr)); +// +// // 刷新数据 +// refreshDataListByDate(dateStr); +// } +// }); } private void initRecyleView() { - RecyclerView homeDataZoneRecyclerView = fragmentHomeBinding.homeDataZoneRecyclerView; - homeDataZoneRecyclerView.addItemDecoration(new DividerItemDecoration(this.getActivity(), DividerItemDecoration.VERTICAL)); - DefaultItemAnimator itemAnimator = new DefaultItemAnimator(); - itemAnimator.setAddDuration(1000); - itemAnimator.setRemoveDuration(1000); - homeDataZoneRecyclerView.setItemAnimator(itemAnimator); - - homeRecycleViewAdapter = new HomeRecycleViewAdapter(getActivity(), Collections.emptyList()); - fragmentHomeBinding.homeDataZoneRecyclerView.setAdapter(homeRecycleViewAdapter); - LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); - fragmentHomeBinding.homeDataZoneRecyclerView.setLayoutManager(layoutManager); +// RecyclerView homeDataZoneRecyclerView = fragmentHomeBinding.homeDataZoneRecyclerView; +// homeDataZoneRecyclerView.addItemDecoration(new DividerItemDecoration(this.getActivity(), DividerItemDecoration.VERTICAL)); +// DefaultItemAnimator itemAnimator = new DefaultItemAnimator(); +// itemAnimator.setAddDuration(1000); +// itemAnimator.setRemoveDuration(1000); +// homeDataZoneRecyclerView.setItemAnimator(itemAnimator); +// +// homeRecycleViewAdapter = new HomeRecycleViewAdapter(getActivity(), Collections.emptyList()); +// fragmentHomeBinding.homeDataZoneRecyclerView.setAdapter(homeRecycleViewAdapter); +// LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); +// fragmentHomeBinding.homeDataZoneRecyclerView.setLayoutManager(layoutManager); } private void initCalendarView() { @@ -130,13 +130,13 @@ public class HomeFragment extends Fragment { } private void initTextView() { - TextView homeTitleTextView = fragmentHomeBinding.homeTitleTextView; - homeTitleTextView.setGravity(Gravity.CENTER); - homeViewModel.getTitle().observe(getViewLifecycleOwner(), value -> homeTitleTextView.setText(value)); - homeTitleTextView.setText("未完待续..."); - - homeViewModel.getSelectDate().observe(getViewLifecycleOwner(), value -> homeTitleTextView.setText(DateUtil.formatDate(value))); - homeViewModel.setSelectDate(new Date()); +// TextView homeTitleTextView = fragmentHomeBinding.homeTitleTextView; +// homeTitleTextView.setGravity(Gravity.CENTER); +// homeViewModel.getTitle().observe(getViewLifecycleOwner(), value -> homeTitleTextView.setText(value)); +// homeTitleTextView.setText("未完待续..."); +// +// homeViewModel.getSelectDate().observe(getViewLifecycleOwner(), value -> homeTitleTextView.setText(DateUtil.formatDate(value))); +// homeViewModel.setSelectDate(new Date()); } @Override @@ -166,12 +166,12 @@ public class HomeFragment extends Fragment { @Override public void onNext(List checkRecords) { Log.d("onNext", "查询到 " + date + " 数据 " + checkRecords.size()); - RecyclerView recyclerView = fragmentHomeBinding.homeDataZoneRecyclerView; - int childCount = recyclerView.getChildCount(); - if (childCount > 0) { - recyclerView.removeAllViews(); - } - homeRecycleViewAdapter.resetRecordList(checkRecords); +// RecyclerView recyclerView = fragmentHomeBinding.homeDataZoneRecyclerView; +// int childCount = recyclerView.getChildCount(); +// if (childCount > 0) { +// recyclerView.removeAllViews(); +// } +// homeRecycleViewAdapter.resetRecordList(checkRecords); } @Override diff --git a/app/src/main/res/drawable-v21/bg_material.xml b/app/src/main/res/drawable-v21/bg_material.xml new file mode 100644 index 0000000..f324ec8 --- /dev/null +++ b/app/src/main/res/drawable-v21/bg_material.xml @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v21/bg_ripple.xml b/app/src/main/res/drawable-v21/bg_ripple.xml new file mode 100644 index 0000000..4dd3b12 --- /dev/null +++ b/app/src/main/res/drawable-v21/bg_ripple.xml @@ -0,0 +1,3 @@ + + diff --git a/app/src/main/res/drawable/bg_material.xml b/app/src/main/res/drawable/bg_material.xml new file mode 100644 index 0000000..20fd151 --- /dev/null +++ b/app/src/main/res/drawable/bg_material.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_ripple.xml b/app/src/main/res/drawable/bg_ripple.xml new file mode 100644 index 0000000..4dd3b12 --- /dev/null +++ b/app/src/main/res/drawable/bg_ripple.xml @@ -0,0 +1,3 @@ + + diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 2fdfba6..99ad7ef 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -1,50 +1,146 @@ - + android:background="#ffffff" + android:fitsSystemWindows="true" + android:orientation="vertical" + tools:context=".ui.main.home.HomeFragment" + tools:ignore="RtlHardcoded,HardcodedText,RtlSymmetry,SmallSp"> - - - + - + + + + + + - + - - + + + + + + + android:layout_height="match_parent" + android:background="#fff" + android:orientation="vertical" + app:calendar_content_view_id="@+id/recyclerView"> + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_calendar.png b/app/src/main/res/mipmap-xxxhdpi/ic_calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..48e7ea1ff6af18959181f65a86e91f75c6e6c2b7 GIT binary patch literal 4277 zcmd5=XHb*fwtj(tfFLo5fV8L)1Vj{-4hhl{0Ru=22%$+Y(gY-l6qTa%s&qt<5_*v! zVxb6#D1?&G6zQQTRYJS@?mc(zJ!ifj=jWMOd+k4Kp1syHd!D`4jyAlh%guR;6952i z6jIBWv48q&v9mEe(V`*;0KhnumWD|XbvZlOgKwBGGB-ATZYCHz!Y@?&_+h_P1-TUE zDu1J&6C6veL-9#o&!6J43`c9I-6xh{E%Sg ztPc9PQVffE^3MFB<+<2YsCCLYfg$Y+6Ej^7bivQVK~RnR{qwdkNj>?`bWDLJbJOu- zqkV1Ax1@3OiL;83a~j4eFD3PcFPJ{V9!%a8RT!*N7H-HT{MOsPVzAe!!2}_hDkM8~ zr$~nJO5A+v<>K;Zc#}3qm1_u1(R`_VOL+4K(_}<+L`XLunyZ0Xsn5d_kr5hQ)yOmn{u;h&$lBt$h zUhYvv64yGI@RnhTGNW%n+ZQb4+#x_EV5tuZiW)f2ZD0uSfOb^wT zP+Duc?AXbwyz3}tmCiLI`7 zo`N)*l+yK zU`g3b@`+NPU?~Iu5%ff?+|E^topNXz%+0uVCEj90w# zT|9D6|Jnpfc65t5Nphxe*EJ$PH=CpF6AxN+f)r3gtf{G)|MUB2ys$d%Px0>7@-Ag% zyjg6r$#0H#w81mPwojoF$>$Hs9EFHKexCQ0$6LkB)SKJ8<9Fg@r8W=CqBD_RAx zpOnS41fs6)N0HIA;7obXQ!CB*chVH(bR6JIBb1pDyKDDU?{Cb%IKm?;?3(I*_2-?P z-|hU^rXauQ@p)o?*>Q=r)tJ#2a18)M? zzRl+5<`w$|T}6V;n;@U2)meD~2{X}K zDwQgzV1L21>=472g|X~)4CGPfj0(slOPg1GZuN4y`A;B!&5ZoLprSzn@Z%p zPjuwDILZE|J11RWTf?30Vxfpv&jX2<**ISNa1}81qj6np-3aSLkby-gnM}s1;OQG2 zSDe4#T!+drvR|@Qwzt=3dqW66K0Iobk(GULv$6dN|6xbXOTF|1`f}qWVQV~aQsnSQ zq*&ZDMW3m=#E`)X%mvTpX7yh8NeTR5sj22)Qr1Qapy^cFw9wO6TMrLj$Hc^7F{^eh z@tZcYyA8woaN=C~?Iz!)EG0j}8DiwbhXDVRWrKKebk3LqZHO4}IZ|auetyk8r#iryMDjkBPuo#C%z%p34Y9UP) z&*yEZCn}qcB~djH8@nJ_0&7xX%ei;${cBuNVX2??ce~a-6tjjj&R|etU=IM*6mH_=2^SE5G>+x0j0g2M*x0Mx z$)g&Cmv498s*Clp^Sb74K3O{W1E3 zzJsZ{w$Q-zjh%)WXY4c8s!&lJgKrT4(s3q#CP*Mu*l>6sL5X12O$6mN!?eRd#*L~R zHgRc}TrEGq7BcxhDkUFu2zftEvh3fJH%qFXleD%>zYt8Qc!MTzecrgDSqAcl@2{DS`dlQBKd)Rpx7^BCW$ zuTD0`cw(zXMJ~pLGD96QH#h+;HsPoF5OoIlDn874D&y3loCG3-i9w< z%;ApS4A>z85Nm|!T> zq`d_oLWm`%nt|DRWNX5Y4ULE;RI)gqn6m#oS^}MO8@Dn4Em%n2BS<5h+-ZSjSFqS# zdm>I(nIFGE+h1?=pvc+mC>@eZZuLk>OBX*CgA-n}MGlxR{TyAOiOfy$L9GB-L+D5t z4QaQqYLAYXb)gBU)w_}_-VRxP8sCs$+9(NVZHPu zfE8Qr=?xai_{ElV3pzd1n=g4rlh!;8A`RmHCg>G~QHiH?Q&Ro!n4zG?oo&f45 z7nuy;h;Z2VA_G5SoRWLQY^Xe6X35U8sV5VdyMT`p)aR|rA*fERHP@~DjfC>kkTK&G zWf+~`LLa;N?7d4}5-??tz#SV%qwl>vD9HpxmfUPi#WSv({j@~rYhiHi$8tUXk6A^x z#w`zgG=@A#ilN7eHLT!t7D!j!(mo`zc}601OgA)dq)iwBfSA}rp#T#Y1O>tY5CR+u zu>XzyO9V3*&;XdBe`EiP@s9}h|2g1aF#nU${yWuw&i=1-|Hl4e;2-tpb?!mpKk?N+-c(Gjk+H@Bt4Zl4ec*kPys)~-Osi|N2Ys_zV7Z*iQ zHfV%Q#v87vLD^nazghifQpvMI?9nDSaTl%K${Gz_W}>Hi@H|oIO#VjUFNXEqFjMi^ zLe`pkMwfC3JO@5OagIxB4jmK(3?6yXX;7^$pZFX zYM+b@7VZ0)F~&brA9MpP$Wf(yS+34tCNRDkHS~~!_XgP($G`Byb8u)#G)Faf?N-Ng z^CI)2pzN)=kx?FBIDP&_B4f@ug5veQ(SEShDfVEmrg|ck_O)fL?X5~JU$tBG9-p+? zQ`L~IC5homY^zpxkS1eD<1R+$9^e?`R$mv{EAgq?TFc0Nkh}JhCp#;JLTQ=At@rAp zvlOeR)@FKk$v}=^#V)!xARr*Jth96}B{elx=KT2}B*|1>m^F!K!Nx-^%QEqV>y6r% zckh1^4yryeW=qLj4;`rjZ$a<%$(Z1l1dgS?K9-o3;XIb(eB>Se)$cZ7p+H$a`lb_3|lJ#mmbB8O^s3+FqRBj+;|xc=Rd dzRCLVh;Myd&mFAn6yrMrKxyC9s<>_&{$F74zLfv~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_clear.png b/app/src/main/res/mipmap-xxxhdpi/ic_clear.png new file mode 100644 index 0000000000000000000000000000000000000000..e8018eeba28f34d5a0903f3917c2f9be281533b7 GIT binary patch literal 1690 zcmV;L24(q)P)0$vx3ySuwjI-Sl}yE ze8tHZgd16w{hTDp`v7ooc6N66^z`(VuR(J9oNl*!Yjt&X9{_Fxz)!ti?;`;CmwF67 zAXE{Q<53JVW_Aied4v}X)DUJNPz?1Ec*8&m;W`A0p@LyfCYa_zni;4dbh0e_WwIt% zRNkU46EzW#X9fxgojlKf1b`0~38?&klo%WlkYd1wundAI%fylh$S`0+Xo4Ur3=I*G zV8DWaf#3?ma5%hka&mI+P+Hg=iiDtw;Sm6srU5{Kkmvbh0Qk0PXUg`*n7;;t!To-} z{~GI@A)LqFFOL4!s^d>JpSbH@bJ5)=R<)20GJu!a!eM(Xf%3HN@hUL1nA`f z3xe&KVwm%189D;nZA=J?VFrZl?d`QRO%zzqR4geWruM+80~M1_GX0$&iKz`z-SPY9wha7W-9 zf=CP!5VQe76b2~>+JYbggCqoPLb$}>@O8FYH|Bh8R7pe7HU#_mb-v(Q3qg4hH3o?Y zLV&;ugH!~eKwyDEGJ=pGkYTVpf4yGs!l}MY9V{I|Xb`9{?Azxnmcms%k9^XgRGAdqARA$2q8!W+{*+v2+YkBPi>8%osw4 z;0?hP2K#c2cd#xqIAn&9A$UhnPWeymzy^VI3~fSShd?rhwji)Y zAQeL!5ZEJ-h`~1mF$kn#@CiX20!bKrK@f{T3I-n##3PV^ff_)n|N{#`?eO6T}uiG(IY4)ers#%jm^zX`>yBUFp|wZO3}{yoSP*Qy z8)J};0QqVH4T0?!CWJ;9VnKj}0TlrSgk>=t42Q!zQp>@-^0Z``Ku16Y!4<>7#l^+F zqobpLLaXOK`s0X!1OX+4x)`EH;8-Te5Ku!{gh3HhQqF?RK#ITzgn1Yg!Hl{y2Lm|* zUl67-D1vJiA5{#K_bPaKU>5uG@!IuOmSta@pPzqye0==3kA)c5&**l$w^mkGJ}-*m zOJ8H~3c=T)^mE)Jpb*?+CbES>5IL>xgHj0YF%#KBA&8t-_dzKH_n3)np%6q)tNWl7 zf_uzFwonKnr`3H>3c)>QB3mc~k<;ovD23o2Gm$M6g2-ugACy9HkD1683PI$wx(`Yr kxW`On3xyzZTHOcrAL7@+&ihA<)Bpeg07*qoM6N<$f>Sie82|tP literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_colorful_logo.png b/app/src/main/res/mipmap-xxxhdpi/ic_colorful_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d3145154eaf1988b14406edaf0a0ac19bf7ca7dd GIT binary patch literal 8147 zcmV;^A1vUBP)@4I#zdb8%q?n)`aAKaS9jRVy_myw2@vy;>o@3^r=3hBEM>-biRkNLYhd*{ zul&j{!XBT116=}GIO)6PsmF)Nb2}J|K_o;5m9O`fb^I(cS?5c+1h8O^19$xQSEw)T z7A9P61UzPZN0i&Q8KKK*I$Q!+D5G6>WE_DY-OS)i0ZKIt8l&ASx1Vm9J_jjs31ER_ zcFU(89YXTWM0BNDa0Cv{m?*#YqFMUws@Ekz95c6D&NwzmxP^csfRasxqN2oG-oD0E z8#Yw#5+Dvq(<;nXLr2I!I)n%!%P z@v>KLKO^RLEpE^yKnxPZ^6_ciIP7{AC?O(m3`~w-f?x8Mb(|R=+t#(}62QdVFoU|} z>G=?ZI{_SHqN#CJGw?^Tto`h92PW76mjEUuynEHOvs4y-3(#pMnb4<}`Dw4*alSqw z=Z|&?U~rDP@!$cr*rTSl3&|psu3G1cL@+h(){HadBms&(Znd!#6Z+t0v#>LE&(E# ze%iWz7bgE2gyj*4$6SP%Z%vmwZjZTP8yIv6pfgF`x1WBD8d949Iz^{w{DyOInpb}9 zwfF(Bu4R`1I&u?`r%q)`+Cso#I>h2TlzF>X?y%gdRD6T7-?~eHFf-9zmiawZKz*3Q ztuu`IUa#D-!a9Jgg~TO582Jd4Wh{Y!IxBtH3Ilfk5K=>@rmjJ^u-oJ%;RYny+%WORv7+bt@dzP(zhyi$) z0KpmJ%QGGz&}DW{D>DbYhjvb;YyY;# z?!K6f-zC7l2>a#CJBVUp_q_5FGQkz^tAx%C9_a z^SK!l_z6#duCi&FEC?@}-j^pP>C}wy$KJAzqhn^y=7tiQ09q?T4$`XtzGCw{4#H>P z4zaBL7N_`QwjT*g0G6kubYa3vRxf1HI{`c#{OSbxwSVZ9OVsfRO8|d)#-jwvb5`Qr z!WX^yOh^I*$}?61r1k1?)a4ew>rZFG5um$l`k5-x3y~iI}cR2)vF9i6eU z=L{17?)#>>8)?Ir{P0_B-o064ZWtXuXNIRzb0fG#<6J`N-h{N>ZHA_%{VCP3Dfb;};3&5vUVpml8S`V=1mbVRg4vaGyY z_84_)97}+%^2{q3xIgL$Sy_Qw_84_`97}*edFGn{rbHbfiz;x-9*s$iBMH#GDszU) zc;1*0Syc-^>@DjkvMM^e;Bq7Z{Nu0lMX>XRDO-f>8moq8=m49+xU}&+-80GVu{$Oaf>U7$S&w67V5|J|V)# zAtCf$P5Nf7Y}ApL;|LHa&%6%6&mEbqeNIJE_INqZ^7SfdMF3w2;9Md-`=WRUGqr(u ztBRf{Yox7TI3>OgBtVAN#ysCC2|CyhePxf!l-V-`crIrkkAMl$#)ZKQrl;Y-S}{HJ z_CLr@I*@!01=W;7v3Ys zTA84lWyegtjw67-Jo9r~9bu#^yW^KVE>`AEPKA0qfnv4_#=yG-^@b{`rAe1N78vX} z0tCu4*#dDj1;Th`kIR*L=cwSuIQ{`VLjqQ;^)|h3N&rky>L>!RJatkRC4Ff^oGhV| zfZX)5_7S&s7kAFN4n%7JN{S~~?Hz%@cYPps-@J{iU!mqK0<1pekgnd;o$;IiX4xLA z?6J5rXFZ4(n`Jv9z0B=us(SImX`A1VNIphF<iXhOcW6?TS(CVrpizvd1DNr;0$< z+!DbEF!73Nsd;TogQdfmqX?k+9VpM}bxxz({h1u8?6FvxQwaz+>d1FohBB}zMeHej zfVNn!XORO5kok82UyVzq%`(b((<`?ha5DWe|JI+d2PTmL zznA$xN$%*@ektOaY2;6T1t9yL|I2(wm9NZ0H-JD%)5eERfPeWl^(frhum{@I6v zJ^v1Wnpt}!Gg?z5TKE8M>c6|i<8mAUv>^J+GoB^Tx$y|7kv5t6c2VxQb^pKr+%jUw zM%swCE@pl?McR`cuN9(E39x(7lH+>WvmA^Q349EI<3V&JGyX}$9|8D;K-(F3GpUbS zCN|Z49PeNb*!P!ZTuTD|(kgf&!NH83Uhpvk&;EIw=kfY?YcY1raZUqq(e@HSP`^{{ zZTU2kSVbdq5CM4Jyor9#r29Zvu1hiV8w@lO33XCK&3n3J4Ia!6_#(_It`W=I2bVdE z{c|q@Lp#LVkry*QqU7FlswTGnGnNh>Kmg8Ja)>`!cpgM2M+1TxuM+Wk0@a8OwQ+f7 z4agbmK(r(pKjJ3KX!pwPrw_GXtmHfa(89Q3ih*Hfd;pJnb}a7%2M|D6Shy9yc}Dum zjHdv#PTH0H7;UTWF;e$fx_W+^d15fcZ`F!0wsptCnfn?8?JhaR~>0w@a#=RtsJ2P`nNLZHWpP~&Z=eU`L(3X`uud8W1p zCGJaYdfX)7%Jj1K-yQJp@1K1h*rWY9CCc@BQ0$#iORZgIJG`F&xdja%$~D`drk@%A z(C!K;Az|%=O|>7GWmDT89U#wp1UlR-8^-D#xz|szf9};_+-IyUYincXwrZ*Q0+6|X zl!FB5Tv+%8As($n_)o;B@h0zCPxbYNZvds{`$ggUb+1{BjGIS%=tAD z{m}A07!8p5w^hDoQ~mBIfPZ%0;hdHhmzUN3F=K5PXA`s+=a14_sN;b?qvGi=&sasE z!S!^b^ctmy!GHB~=vySeHsV(9B4uuaRt#g5J)7w%sgj!3n1#8Y0LuJ=6XBu3moBr6 zg{_zQa|Rws61XP)iFJPtTW*Yjf$|KETscPQGExVF-}iWe-=28O>!W^0De9d26cMtG zv}-3_Dx=_GU(-4>F!vLnCwJM`dP)7883qi{`7RhW9<}e`^o@^fk5nJub!vK7SMswU znjWbRqve?SZGv#VSN`*uAApLLx!VAI+i3f?(kJkRRo-U9A7%Rqz_~?}{1mcwEiE&H z=nsHeBX$XoQERR46$1aA(+)?k=TAg9A>PSnaD$h7mXiEdU_2~EojIF{NNZ@7xECWp zseIbnv}Uc|!?0`rD$v5h-2l=I(`>Gy9)KSenAdq5*R|>~rICR8gv|hD=#evYEb|Rs zx#R9|bryBz)Dbzk*;jax(6&r;iC;{wr$1_Q)sSll0ScaniA|IYK|7KX=IsF0f#{)d zw_vcGF)=`>CQzPfxJFj|Pl2#_;%)7^dY2X}Id=o}lNe*Qq&a3@SM6&qFbdpI0^9}A z^+qXbft)YXP1(nu&pR8R!7M{KD1%gb3%giXIXW)fo z0hgrR+WwbF<5Hx|`zC?kiB#Tka?Cp+sNbv-H}8nnw?P7MUYu6^-p-1Xy|&z%NFl&^EHn z&w;pF3@VS%rqN6CcFP&ZGB{HOoxp?>i0P|Ld)tf?^9RIui9LA1dt1jFX8K;N%vk^k zjb_@goolXC5R;1+IM4&tL z$RxMXbHcuD64hlY^!0TG$IY-_v3^9~l1 zzfnz%y8FV8NPy0T1^J|XTuR`JnKui2_AC=O*GIk7W@H$PlsTmYVYQJuouG@s4^>Oe zx)*RpBmhGel-&0}Ai}Xu2u>6}{M!?v3)45&Smu<(y`AB_TFdbxqwvd-q9Mi^HNK{o z^*A?bTNEX?un2^xmYDPavGP~~zArY^)>{SRvd)|wfwbBQ_Zk`j2L7*FYC26%R7NEL z&zza0OgiR$_b$+1!^s3(D>l|yrW>;*55>?k^Gq5`#8<2pn;!^Q{g|EM{0j=MV1Wj^ z5{IkQspA+}@x)<0+q@$n?mRBs9iw9sfb;TF{K3?J0Ca@) z9E}^I3aO!XW!$U}Fmkjs)Wc zj+uYzYplC%ym7JkeR=2X*-Rb>ZDNc*Y7G9QT51k!kziZ`^xp;gQa=XKWiV(j#;Q6~ z+_?T(D_|;8=3YiX*e`!pz-%&x?Nw6KQRCSNivXOLH^CoFecyc-I4GPSi@l*!sCm65 z>Z!HmQ6fA>AiI>djyFG}`aPT#p|A+he-~I#a47`(->48dP?#C(eT}vGR&i~4*PKia z3EDRT$F)({8)L2GbhWSPxUuBICV=*J*q{6UJ0N^RFA%4X7gSv6eX`c@mK~AC?b5*f zuLMJ(jYRaVNOd?xj-eJ;OD)x-`4ct)GzFat3g?gjLn@q{65xJ6nBSHf>%uCWiKX98 zIZrH_m@)XhYN>hDjh(s(u=jl5l02&6Qh;t{A64d$&tw=l~sJT^A%ag-%6A=Nl zbHo(Sq_>FR?n5~+qV-Zk?f1eb4B&x})+D%4yJF7%Fhluk5$|K;gD0Myurr)$yild%1 zxjc|FOI49iOy37#VwCnQC(huTtEJ{UhXRX=0NOqwr7!g*BARMBZ{r4t@0J?sZivSG z`8Nel^{An>W;F0+#ybqG+)^nW^gKL(Igihpkggo^JpwHSk#=aJGxiuUUaj&q9k5Ul z6#=w>?VeZo)m{(YAVPXHNq3Aa^NUhr-Hb^5nfW80l$@rlCeW3U$m@||Ml*$IdF$Qc zm?r}*?Vfv-5aa@YE+OE*^w_ZCSdSq5=Y!sjpABG(ngE(2|APFBSP&e0h_jwVGGmvo zu~v6`$*fX;9`Bu1=A7`EjApJnF^U#Rr#6+tNIMN188`)=DPl1s&>XeLM*F|l_L*_GSeH^cZ`?E z^KR}wDk<3a1T3&;hnauWR_XiYc$kO(t}Uq|5L&DLTgMb%VFrktWrw8#~Vw1hfDa>c-8qc&t^T@yM~fC+7t2LjkLFiDjE9 zFh5o0YaTpq%CI}YKybPi<)0o>h37y>9WP)`{e8SPDp@Q2--fC-6OrW>4phduTPmed z+sKETv*pUXb5y8B#B`CBYLg4B%kZF_yme<30 zPim|^r~o6oRMECa%(XoJApkkV-xzHVkx_og4B?}$obyzbmV$Ya$?rv<1;hzQ)l+>a zCIsle3(Q+Q8A(ac+2x-v+Qc&RZ+wk)2dwF5l_)n7p)y+Cv6g4>hPDddl33X-LnK&;MDa z%AW{0Bc7O|w0%!&g%sBvzuFcIgw(~@yQF%I9)B3vO@te(#HJA&8^??Q{Un%Kl;%Gq z)CS-jJxemO4UzJ(N?oqU6V)n0^Q-$o- zHD2wH%aYd;&N(Edi;o5idut|Cd|d5o8nFNpkjUp7>ZX}Sg5rT8T=|2r7v+6PZ2_2OM86%-v>Zsmv(;O zh<|_Wt_{51Rv}rg?~xG+k1GKfAb)P*gP{I;R2yG>gVa!W_kaVlN&-s+QnhZ)&bfl3 zxAku7a*jiLJ&7v;27;+9EVv$^yX+WTX1wfctUX|rC%Z&>1_Vc~b{Vxv&T2Wf1Oc?5 z1Qslv6(X)D!X&E&X$(9)2=P>DW8Gi&|NHMgR-nEEIuF>$pHZQzDwgXlnz4i5mLY%^ ztlf*29M`LQ8i){P+mCpMSe+*|tUKVe#;nrLRRp><-pGu$uYzvbQXx9-lzK}MKua2D zT%PPdy88|guD5K@A!ZhUd~ajjhT#(}tEBToB68gM$_%=}IE}Q);9s>>_#D>`)3OBU zzZ+;L)AXgu0RI>i??MW#3p%=p)Qg8d_6$t4>{8{SeI3?}oO{;L#e83DrSDp6fH4k* zr3o3*JBcnAjv<(Yo4q&|_ar zY@2ArRs_)Eplz*YuttQd%w95O=B*S8T|L^r{?NQ+mv(AfI|jQAn3%J;sAgbMTZJ@c zr;E4%i_)m=2r%F;=jC|=y{Y+3vAx`Z+eGwxA=LL^`o>2_-99@~FlUu0 z*9!z&e#s7JLNjA`TczZ?+pz?WHTjJgY; zoglm^sMy8=wulY2V>XE$YocV8DsK@m;t@RIOfajD(R%5$RY>Ps9cLu?97%vk0uiaq ztkSM&0z$7uDsKllvpYn@GX^dJqKtlaiT@rD|0qf|mKJB#b9&pF^ma>wj1ZhlfCvNE zFVmPG^t*OClsksKO3nH?~$t zj$Pi>65tXb!fBXQ;=h83?~hR2@?y;Ryl;Yd%xGr~Ti$^%0lEYTGf=~aWtA$=6A;m1 zcoCY6tr+vQt(Cs}Vrw+^)?5Na5c3O5cOS2!?}G?L?IQASYnnI(GO2a}94Sth01-sa zsb!CYpat3d2Z?ZrPBB{yXV4GYDn!SwY>kuzmjF7Z=Im=Y zHJGk^P9U!iFW?Gtf#wMA%!*JixLtFxc zkzOa2Ju>r06cSEvy<3d92|ySjv&|5f0AZvmt3>&X2(~W_(Y824<+IH`{XLA3T4sn# zfN@gcl(I)=?j(WEjK`tZmYMA%0C5R0PIjD8_Q>7AP|~?i-<9s@_AQYR%_YDXQFBJw zBX=`VcH3&{g-9ld(`8%&j75M_|K$Mx&c2hto&4kF&LzMY5wdsLBXG38( zBLD6ZV3h3JyzFrY;F;Z8k=~KWlRF&WT>^{}rL2<9aw57doFH0i4DrSGUIunmlq^bMOU=EatSa(1hZFmo&lymMH}3h$}?(OE2U*Iwdnw3 zE&)bJVpgegCjl$%l3xbh)>a|@)Gm0fgwrL!NOyn|W9eV!T->%=+Gu^O z)#Yt z1y1#->g(1?Fn2%@idyd!-?R=UXCZM3FeIN=`2fb?4*}20whHeCXH7TjdE*jb=pA6C za+Ze?x3=KgiR=WdYORzitT$DhiO40uki2HCRAvz4`B&Qu!a& zNPih`u={)LBH$8Wgji>lD323iks)bdULO*ueCulIJwx=lN(_yFOMnr=dHzb}Fpr97 zBHj|s><7_7@FGDltDl;?!E&)af=Q*W($OQJc5aG6(j|uJ0(PF$t9&r5aGx3 z2fQEN4>MB<;P?rY)P?;*r zy?pJxbYz0-{`zg&18-$X719u`AxWApTBet{0d4WKiteK4vMA52Q~cQaUTfag&mw5! z0GW`SV?nCkD{0^&upx=eugqhP&#GltxLLw~u6ea--t*O~#@)`L$4^}kzNu9zy3M|8 z61#b!GF2Q`$2V(#SN$ISaD%1kh;V@D{|^xtn3*IUF8yhAFEP4+ot$d_J%DLA1H0E; zAx|_)G@@X`)E;JzCYKM(9!MhYYOpS%U2N>!;A6CtHRG82k+lp3ryVbt}RTU#b77(p$h{Dm^cV~{IJMD z8pn+klz`#5WIz6i=?Be-YoX6dbi$>>lglYF<0}$f5}%`Etup;&cGY?q7h!Tfng-tY z3WlQm0~7C}yEOlaPaocLOqU0c2p0tS-J@L%pJ9tXQdZd^&O*!9Ac%$XPA9}&c$faa zxrN&A%PTxy^UmqV2;*I2aSz_iV*ffWbyhb(19~EvjU^h0X(Xs8v=@)4>^%;8Uk9o# ze91OY-7ULub)obDxmNoi&o_KooVrf#GP*5x?z%fs7ehr>L)FC;D;Y7D zPChC3SfNK^5}er9bbz`)l^}cZNO>k@DT6Y+x~#NT!DlSa?G3XFmEWr%%ez+3aAdX2 z63^=qIzDYah>p@7_Wgqpdm3FD8#PTU)Z3cwPv~EmB3r(ohdTie?%P*%J(f%CJF>i{ zdyBhR@F|OQCuTnu(PCjAc#YoZOE5f)>%1)Er8kVgH2;+pM>qsXbKT+obz1qH6h$a< zc<2=+^j8$M@Ea>Cirz5ax3$#d!Eu6b(-Bo|T)v$v7b8qq?1Bu(j@6~af)pcV3J7&_ z{nCqzT-)7?ry@)lCV@R(NI@Sn6ys)Qc)Bo0qZP|+Z+jHTphg%!2(HqNv&#+ANDidW ztar&h98Yt)a-{SNk!j%Be=$#8N`0O#Jj$P;X3<^bVv(`03;4tfh@*4X`WRc>;nQ`G z4)V?DR872lJAt)f$Ngut)H;x1OBXm;oPh+=K`_lTR(fYUjJ^%66@MglUPYraiXU7n z|G0IM^7y)K#^c*HO+%%=)_yRmY$^s5*E%eyP^~kH)K@I!S{mU?ge8V0^Tia^_pN-j zs|3m%3N__YN1)({auF&*7bmfbU^U)v~Ggn}l8#xH9NL`<4o)4kma zG=mqE;JJY<7Yav^DXR`e@}n^s0w#3f%URjELn?0C53F(QxXY^7Y+Va^t`HQIk4+@< zh7w5g@?-HIsG?7S{y)%QO4w3)Kt8RK$V`O$A@KBTPX;f?`6^U_a0gV17iQ^KwKNWI!; zdT=C$?JDeu@n7Z2&gx7qj3(PVQ3FMi;MeVE5Y$(bq^f&3tMTJv0|xc8neeqJzFtx7 zk*GlInUR@G2LF2exIxLKMx%h>%BRI?f8=rcpZh^;vzEUd_gsL}lk4r$1-s3EH$z{F!0RKt zGZRc!$hSKpd&KPWpFI*_S@oq|(`vs^oSc}eTXcJ?dh)Da?A_WCoBaDai6-mJ!w(Z! zJ4x%yAdRa2x4wxFc5N-{NRVtjLPJafC0ED$!|LX=DnH|MI1}d+ zvP)6M_|NOgk@F7psENHt7@WAKWVDRb!icF6aGTGj<+<%cU~QVl@|%ng@Jy;bo%)fH z$@vTH93j4a6Qijmf-@+0F5Zs8qTxK_jGA`rrIXE$N`{BWohyu}U6Wg@%TI;TbLL*;7uj5Ll7cKxXG{-KSU5G8kA4N71it0R< zTs(|maXDDL6-2e=Kgsae|9aX{d0I9mG+u1m$bx2CI&qgy zL=-vn6Sx`^=Nkz6j0(dxp$74^vVXJ>*up##mW%Vi-@x#?;locDdg1>eX` zb37Ho$Vn`Pf`+e*!Vk@#+#}9u;RfW8nzGf+P#95#P~$*!wA+B-~LVp;Q|1u6k>VQ#UeqH zObNdT=+FV^rH~rNgvyebFmPovikbaMVtjs27Ix(_n<>`Q zu*z4Zc=_1q*k3L&VjD*4qfiYgTm?%rM`ZOq8gTX7n;(FvCAqTaYvloiR`umP#;gx` zz|}j+sLy$%pZ!-ymto}D36Ou`ZnzwKKLN_+fXum>2!A@yc`oOwbiHZE&Yf;nt63Pfa}c|qznfC0)WtC!>(3$!CH8uErwp|J*^AykZaspfb)vmSi?K0Bh`$hR zFR*t2wUX@2FWB9U-IEC4fBk-1$N3$yjhz+f`?{tY8uG1-+CI;*>m4^o5wcOo*WJDR zt};^9*^8&tV$N8F2H*B?Q$QbgWZs9eotZ99!!L%dP^{-$QTZmDXvDsu(?72gUF23X z;&q!8gx}A3YP(mPO>_wUBmUs-I_9wCDUmDL%B2G3v%x8tF)dUkWxE4*%a}#pV}Ybb z`;@kvFn3FH6l8Uc*68BCp_nd!+LU{`;6!0z-+9@A1?u$-&F2QsJZ?oufgBQxz`HlA zms4=ecyNJjQ+5~`?7`+F@Y1=S_IC&=pqCUx0G(-lZ|xOkLwIodJ9`#k*{!7{Aww<@ zkQvgW+-X8J?~X?r{m`BhqkD{RasR`1)@?MFzeC1XNCjF{e$A4Gpj;HdVHOgu!@&R( z`kV8xuxOOlNrm68IQgExOSkmu zK@Mc>nSY@-Dx&7Ht)+ib800ZCl{VUXk8A90(>$hDWypO`1Bj~mu7SdU!{`zS5Gy!{ z-ixFMcjqI$jXaANuOyC5hk~uDFokJIySapGdSx-_1hQ9!&;ZFz*X*uV8NbPTt8IE~ zLSkuC`=}m|lg)}MR~9en>n+F#6L87PGnoVJZ1n@M0dh2xr}5;>b1nlftr10_uW@1r zR3>APx}w4s-G{G?V{94|g+N!sxb-i11gUK;qSRM;+(C4`m;Je$7fjwS!G0om8@l|C ztlxUb&9aZhBzv&R2fpWTKk%dEcF<6>BwV5N+dqOr2@&v)qjM(!9bDu^tMCyQ943)` z(y4+e%y2=($XJqT`n`+Q)#U3_obPfrbE#@;HqUi{bj$d&Fwpi#X&r{2V|PT3JG)=p zCeo_t6CUvR(LS1bLpKgkiR55TsnD+>J}%1qZ0YNZnptTd7cZE5X)KNp=4Ho9ZEd5z)h&k?pyKz@lFz#S>l~5db=B;>QJ(1LdyG@NXC9Z0x3C-z;X^n z_h~UgWWppZKx9{6WXu*RSeGceg6bv;Q}g%z6|_h_PdyfcAbCUIsk20k7|3rbiVF81 zaQC)lbQ5P!3QHa3Z%AzJLRD1LbH2zJxn-ZT9_eyIkjZ0b3H)^`P+qI1J>?tCt0V%2 z=d$x3LmPv~jD!99_ax%JlsaX5zeQhO=ps&JCa^9r;@3kyLtpPL-IsrO;#!pcps7Md z3APEACN-VS6j&xFpr4^mh)+gl(h@$gc6dvt6-qvO;sJ)nqXCgQ+tQ@+cDj% zXV1zHET1ky&KEiNdQKujX}r_%d=~fc>k|7FuX+@w+IN$LPhMf(iB%qxmgn8WTP{J(s1ge+pY{a2m32p;VHvIMISZE%Kfm z_c-NUY{L(zHr);u@5yUZb%URF;cl7oDhniAm1Osj3nhgDO%Y&U;(5}6UY93S@gVct z?CXffwhal(Q|QHWjav2Bqm34kbLyJ4miRK1W0hoc0c))~rdWN64@n$tlK(6%S3xn; z94sdr^f6tE{x4p>sqPcu9!zTKk*V&4O7~#ae2`fTUVa|Q3?YG>nH_@pnavw^yjWYd9+8&@(OAhWR2yU+Ql3~ z^wZJPnH59bC3?8&0x&WyQ=^Fn9FtkUAutNlI}j=ATqca(lla*lke1|bnSa-0pY>x9 zCKlXwO%!AU-IfTVcQ;d+_`Ip3RvU_`$hDA;MkMKmI@FU?3%kkiIpR%+?aMXeCdB)& z_Tv*BU05P{ygb@2Js0Ld^e;dd2}%nYqWC+{+r*kD;zColo+{q zkgIKPUlthO@j;W$C+j9ktVwm3BNJ&QiVHOo zd2I~o*2NCbWDknpj?HrE?KoE9rsObcu+r45#?a2 z4;uTl(9qytqOlXNM>zV8lJ#%u56<#|T@8N5<;?R1!be^|dMkzC+3|CZ>?9gw(8h#!PRc;yLMgg#I&?6UvC0AE|$*o_|-w!!$uk z>1K2A6I4D9BI_9ZqBnWv^b2~0aP>>n?ZqP&g$K4$NJgyWmS<+OyE&_i`4~rNcOE1! zO>FYDl~a=(t0!8ZGv?E8yo*qw>9+^aoc)yCL8y(#_oxNh1yyGy_78tV#%2_zK|iRC zNcL%!o)x7J$?H|=K5X5SO;XRvmqc$+4!L#@7j?t>*ac-V5xiWf7vNH{<8aPplm>Bt z^@EF7jA5Xf#aeHqp)r5KF_vM%H}WMrbevz79Km(Jg_9QS4Q(>CZ`;M+uj|R5+7b zD}pQMvaPika}@X-<@vd|CMy^O-g3?$YL>agkDpk><}#vVai;KlDdbM>ldVjFnVOrH0Bu|q$gG$6a9Q+HGDpH{hN7IQr; zMcxZQ3UHn*y7!B#)W@dQ>#3K#=X~XhkDo0)O+}N)FcCO<6D~uO3a`<~)**yRY zD$IP`2!}h#vh>sGDRayiet^|wA7`6IdMo^RX()73OzE`2C!oAPOzR={jq~QZI37NE zYTh-9l8Gm+<q+Ut|%jz68z9bMw2picM2Jc^tMFu)d}|F8C_ zDZ7OE4Bh&N)$zQs_rQWAOWeju-{{v87}js|Ad*;7VY(7Hf)@OwZ=iZ2*fQp~1wtfD z8#%o5PL;swt2XHAMUTMNXdHdK2Ldc}O1+vc0vg_}M{eOG=Ddc?ukC~ZpK-$DSRb_7 zv>jBssX`^;uV}`ptrj_PtcUMq>(&@dp)aIW(y3)fE;lL7X!nf=bRJ9EB*D`ZasGJyBR?w7w?-~TavE%VFt%ZJ@7h* z+iP`f=&sJrfQhq^w8ybpM8i0ziM2BxPrH2RoTO%Zq^zEI!(n>&U@<4vaWr}@{Nmro z{Q0CRv&$c1dKZufUgT^$(JA5PnFpuy(14U^N=vsC-3S&@XyABj*mzuEYWkeY;Cnw@ zAe`-G`hlS8Bk>L1#!$bm_4;v}NE`4T1J1+jExcmtYCbBoh%WyOi65=!;__S!TAj(;ir$>tKYJxb@?rNahBgPT67RM+FOw8|6{deLG zm}%4xNG_1ZQPvCkvk6q1(CH-s62v5xU@Dd0EqepBJ=0wXaFKt}Lcq#U@TQ|q^B_hN zgraQ!!fFv;yRYd610C`Vchr*GS6f&r;jAdK(Yz`JRHK^>e42n21ab%=Q!eW=@^@wf zR2p)wDEGb?M0*U1TZVDk{M9}pw^fQ2W%X0W5XnL|89D}?;=!HJh&%e6;Ui8BeW`mUZRM4_cx*|8*X;gi>IocBR&m)|D6P(nAdP z9efE(yy%s8<*ik|ly5&|j646Lms)Kw3t*fs4yZ&xu01&OeV0=nD}A&-MpgW?^2cKn zhO^(8$A;n{=#;nQ|4gWgr0DDcgwsMS$Z<`6e;NzwGv*Utv7e_)dUnI`+ZXP6F+&Rf z!pfKriaUAVLR&A^I=e3M-!Vd&e#>Nnh{ey>jDN$UeF@yKg}Tw|F_oT7GT=gQovZo* z7}XK<&1kq?uLkY5rMkw@V;Sk2F>u>oMbO?(C7xo#=$bKO=7%4925)4ant1<-|2u^f bXMY=bIr05O{1N@X)Du8iUPG=<#ysSISyJ_! literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_flyme_logo.png b/app/src/main/res/mipmap-xxxhdpi/ic_flyme_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..607ddb93b4d0e52c3a5996874871e17d9e4da8d7 GIT binary patch literal 3684 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 TV|!>-I)MJwo0uwH`-uMm<5@M; literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_func.png b/app/src/main/res/mipmap-xxxhdpi/ic_func.png new file mode 100644 index 0000000000000000000000000000000000000000..be9e1a216e93eb1db8c269f103698212d221f634 GIT binary patch literal 6083 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 z�XfY+xi(7W=|X)gu)|iZ&T#Mub(!O)`$C|B2Eq%Rp(faH|cw7|9#J5nEI1+cc-%~Ne4d~k!l&&0Hmoz51e9Kn!UT`n0(s2F$ zTE;}cG<)~H4y7XSqci}d$X!7CjEGw;cLx5u4b#BJ=*CQR>Rsgh`kwDYep5Z(nZKQwW3j; z-*X{jg@o+MKZ0?0MksUCQE!=oHlqfFy3v`PU3RrXU7n2D7}2Zf@?4eReGWl}{Dh`-E6mv}VxFBkBCIRBfYohW4& zz>YLQbj=nLE_(P?BpP0yD??06YR((9bS0sFCfs!KQpN~M+oEOhx>XCldkJ?*{LVtc zA~M@4{!Jh?gfG8leW0wypUSd3{wkZYl9FGEOO;3Czc8X@q1Q_3cTB+`6HwPw)6nw& zrvY#71*f^XTuv@p@?}3VHT6gYA^AaHV)-CS05UX*scHkN$QZ(o(ZLp>K!ioGQ=;mQX0TRBog%Hm`5j_nNWT z_yBg-x`C{7zzRGb(%%pvH)z3a=h_YRgdpJlwS9>qbYDhgB))VElZQFPDV{L{3ZI63 zv6iy@`Y0*a6_JRg$NOei=h>tsOCJzhTl0i+nsyapaNu2r+TS)01@n2Ur*3e{PR*?J z&G|myQhGDAjHT$&Tw!lj9r{S&%Yqp)p$KTX{}km<1221(!%aW&UVF}Br)Ju&AVK=_ zb;!Mi#l_HXpNy)`lUFVL8&y*A5*mm+!ufEmUz!`)P`_*>-Lxt8JZBpXwMs+BGKTuq zcBxtnqx%j)gs-#fMw6Ie#4lDra>E_T0qG>@QrdgPn&SW%Kdh50r(*#s5 zL$G8HTA=Ls=*V??Zf?NQ&D#-;T5yvbjx;)dTqkkZ-ooLeBB3G+UddTj1}uESc&wVT z#a=e&=gD>7Z-0+>7 zosae4GNpnW*H)52ia>7<+-5RWNpSSh`jSL+JPHUN`T6tbhQ5>scBNX4DN1O*Q2X6S z$k;MwJFxQ608_+Cx)|R60AZGvz@UpO2B2aotBY*8j7!`CsAJq~{Cn)1hv_`8LOi84# zGlOnqO*j&;jNF?E-5bniwAeGG%L@9fsd(^pQ(3R&g(WwC6yCm@MklyYwlEHhi-x?; z`|a9NkYU5Y5TS-kzdG%@g) zcGs$~SI-s=F2e2J(nN%d`1)ASQFm;StZ2T^QLC%5H8xbZQd#;KSA-wBQoVZ{V>&-W y!j(4=pR4^L;hv0kmAbhYt3IDM_yi5U5MafnTphj?(M&1l0ZpV1qEy`?{Qm#}Np#Kt literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_increase.png b/app/src/main/res/mipmap-xxxhdpi/ic_increase.png new file mode 100644 index 0000000000000000000000000000000000000000..b32033c24514dadae678e40b7bb03633aeb4a25b GIT binary patch literal 832 zcmeAS@N?(olHy`uVBq!ia0vp^O(4v{1|++f1^zNHFtdBQIEGZjy}h+D_i=y#OMs!_ zm97N=f2SXaS!*$gQS?FNpB%gUN4*csx%t$%z%Ebx$M+h$`gh-dzdy8k-}%oqIyT|o zPXvA!*8g)rOtC#p@Zb3p;)?GB&bR10y*nj-Q2gQS2GYP&O1xZ;Z*eyyryYYgeHv73LpFy_(Y?RPFG3QpU6`;}w&hS0gM z^^*m!0Xd$Oa!z{xnLfwf=cIKuFg{+?&U>zW{Dys^pw1z4#_j|l^`N=0&C$bDxi0cd z=t4%`j1%QW3->3gTe~DWM4f_11F! literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_index_logo.png b/app/src/main/res/mipmap-xxxhdpi/ic_index_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fb59323c200eba227b087a9cc2386bfea4530304 GIT binary patch literal 6284 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 KwBBeqMEws&cROYP literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_more.png b/app/src/main/res/mipmap-xxxhdpi/ic_more.png new file mode 100644 index 0000000000000000000000000000000000000000..86b138eb099ae60423a3d0472a94d0316c616199 GIT binary patch literal 2899 zcmc(h`#02k7stONF*!}F?Lb{?uP4QMSLc%Kx-O+Z7}|^sP_YT1%+e%0|T2@B0k3q zINNc1xwWD|J9b#+MOLpPKFa$qFUg%$&!r#Ejnx9GmhepXerEIY6~;Fode52vKiLU+9Z z$2}RvG}%%2q2h;#lwl zE<}~PMv9vXB7lRFGA}30A;o-F@vU3CxSyEN8bw{eB7q(3hK7dZu9T4HmB*wd3_%dc z24dPoUMY78I{wNw}SaQ)ZPQrrSCSbns-0L=Jcf^ zM>;9|Fv+>pU3j(V=%ZQyI23je-JwlyjtC3Xuks&#|A%WSWc14F15N~-q;hs)IU%fA z{A7daCK^ye#3)|lrdf!#34?*bs}JSz4^-A4r0RiahX1b*1~Llc6nu7qmgqtgC?qrC z(31!&WXI2rGgc2ylzTTW`11;jHV@iW>;8NlnLXdWt^QDITgk0icub*0;VPVyN&mIW zI^*+kx`%^BQz*3eC4<($gsflXC8P;pFTauWgh}{jm?cWN9en$N ztAY9qV!tL~_UEX@=B6IPRH{)rWsJkfR8b4XOrt<*T)uX|Sa=#TfvD&IDGf<;>H09M z1nvxS?|h~Vrk6g>9Wlkp_f+SfB;o$o2lYVWAwo@OmXDfe2+gOT=F^E20RrVH@ zCXiRkIvT7i+1=#Dc98*DsvpHI)EOU_*ZDy~L3MrAjFAZJnm3zy@nXC4gIzP^U}d0% zuY40`S`#t`EysS#aPn_TGKZp%LMCEBRa}X^+UOz+CjqunIo8Fx49{^v_OxhBdwj`_ zlS=~D>;9kMtY)_c(PW`A78=Z(3z(Jnv4mRiututdvNQBSD&I!!vWG1{U~$R2Jlwi_ z!<)o)l?9U>B2jY$FTKo~ws~?v?d1~l`i6s19!LgN{(5o{Y5#t_uIsbG@GN6mmuu_H z(GzcGqoRjCEn_~a4olucAQVkp2&zzH*3}DcQR-!F~`~0*Hu5m(|o-J*jt6 zu|>pq0yy!+N2 zuQ>yse0y~EnirR4ydP~WpnrXR#dM-VNrU3z(*2Zhv~W!UIBqHG{q(mwG=+R7IAU?1 zO2peyO?X8&>X%TR#4#SddHsv(xn1<9tzyxLn4;FJ_REjUB(Spl14%=OEv{$ocIclW z#|{pF%OBGXmWq0`gL&6t70zF=e=~rAEMwC@gEMKcsFGqA+*RR4H!KEYOjVTtQXN_1! zi6K@n0NP&i*|HKXg!6v{eEF$DUiIr6Dnv&);(X-=pJ@eKCdtQ;oQ1t9J<2 zRDhYGM3JUTJ1U2E7!w}qfoT%hb7!Tvj0WPc#;5W@qMw$36h#h{`!X+V@W*WvtPu+O zrQ!%vDPGA5>9Sj2T*aEJeHj^H%5JUnHN1Nb4!1av=ym(Y%&|Oi>=C^=n8@B~EHz=l zxn!>Xc<73y&7~V@lcPkUzZOd5;KQ{R*Q>B!)67grcYS^RUt000BfP%81EkyUbmsqq zx@36Cnm`Jh)USMDWszvWlmZ2DI-N+6F!^Pf^4-#q3aRG_VR>3bJX~o*P)U`_HmLjw zY%}qn*T}2dLfx$&sFTXY2R$Js zpD92E+LATjkIpsSUdeC&#($zIi9+cvM46?yGi+BDLpAd*CN~bB^#S!ZSnX0cy7u4B zzeB7i{BN3DZT6zJ?|4ciji=xvi5tFi6W3StB;np1>~|^G-Xwj02w{6zW0~2OEF}AP z=Bps;8wibLJ)Mdfb582Fqwy4E!T#x8tr95_3V)8CzgXl!#?d2o&IhpVdPq0#&HCI0 t9kzo<5cRhliY{@2C~%bzDxhe76Tk;099}&YdU#7L12juJsFdOr`!AXpQDXoA literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_multi.png b/app/src/main/res/mipmap-xxxhdpi/ic_multi.png new file mode 100644 index 0000000000000000000000000000000000000000..1bfb6d4b99419312eae9bfab1828c855626a6783 GIT binary patch literal 5148 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_progress.png b/app/src/main/res/mipmap-xxxhdpi/ic_progress.png new file mode 100644 index 0000000000000000000000000000000000000000..7ce931d0fcc0644c7d3b496b9411d5b3b273bb70 GIT binary patch literal 13017 zcmV;~GA7N5P))OCBxc`68$JFWG0zO&Uv2m=mQ}$bLYJ0d*81DKvqYu zZi3ytncc00O%_?54jBC5@4@YmR_q>v-4cMvA}grD!2=_V+u>--M0Pl~!_W>zTMR&+ zKtmQ;K>?8N0$@aNJBr(KZY#JQjkW^YaDMgWp<6NgCGFB1wrUoRdq6#BSb=TDDaO^j&S@Dc&;iT1yVSPAss1b0K2sk)sgn$uR z7%}TY7Fiu?J>Wr&x){IV|0HeehTl05{mKF861P9EX6+wUvbLHFbivV6RLb6ivP#`_ey~u- zV!CF)(i{aNi!8qYBpe;Wxb_AJzw52VS2?hJQNa|Jl~P&HzRrPVW%!8Rh>GDfEDEDw z1Sn+r9U#0whlfwqQ2-I_E43V0F0h5=@0il>utko)7Bq-_6=qckP{?XG50(r8L>(Xi z5n7jDPg`g22<}(@H|oO$;fFHV^^Q2o$#XhclME zz0ebu6E%L2fPN96kR=%m!t7f-sW1eABOK8cNL_S+3=n>E^y~6DI`7CHLrU((=*hzo z{SpHTPrV38x;P-jK!7I<@=1hY*v9j%q7lD01_MC&UBf!QFJ}r*9yFzHNR1jjPy{Hr zMj_Uu3j#t2hEM?j_@u!I;7TTp1nxc2<_@xpb!EgTmS^OEL={_#tZ~8$`Qb%8U%FO;egSPkE9I~BYK*r$gGxe;TG$- zaBJ^jVbp-21BhUsx8#@HrJ6a#3?fVjC`$AkA_YJpAnAml5CXyt3=jYXvN801@|gpk z)-D+Higv|~`wXee51ZH9N-Q~dpQiGjJx>?xsh|r_RWgMatF89G)>s{%ayRgQ>o~en zZ!NwO>;OR;<(qe?jK}X$&6=zRkp^TT3GM16z-SH>c#TGM0x-utpqx8!r*8F}qvrIi z5=-tqXXyNwF3<(qR@Aa(XYmN^61k*E6)+_-- z^YN3b)r|eKx6SMBnjGF2rmyHktO=o90SFA-TJV}eJ`Pxv84<&&?V9D&&e8eXYpnJ! z2@rgf?^Q|CuK0MOhn(*3$P_6(21}?T0_iASKdR@PIdI^Io?Pvbksb zkDdDD%%v`Ef_u6McwSY1-X7JdGLdRZd(-3Wt= zM3?vh9AdzTgu;7^e0l?E!VxFT*^Vm4e$nZgB?mH4b;%FM%@iyScw=@Q-*OhDpes{u{3d{fM1>v3~t z5e(+R&K~3t21T06_a&C>*K-x)#tOu{(8EPQ;;q%N0%gp8-P&1|OyQwA)^Uj(yr8or zznrHFPGy7+AC8H4F%K63Nekd;Vl|dW4mF&yzDm$vvOK$ntas!rIFXpo)?}l{kjnLhW;U@>j^+yY4lZ0(Z`t$mc&Rv;vJ=G zv>Ho6Z}l76lpCs6|kM%xSOuS-WIYe$0f$1`sn09rgj}@b~35%s+zO znRsqnxy^E$L7PQ?4u2+r0HdjQtDMfSd`z=okq3|vP2vF@5j{a%^y`MzQ!g+D``RVY z#{r|9Dg5{_m9h6_!}7asSI=5ITh?b1W*PdSgWeMzdU*J0Zo@CujQsotBtH3VKz|N@ zt|tM7=yShXP8U?%6FX-P7Aqkj@t`*v-M8-;)7Mus_P<_?FaFK1o)xS8$CH-qQ%`9Y z{Q>HRu_4xRQ6Ov}0z@AK2rIG(76b+(0)Q5Mp?J4-zT2fY$F})GRoj~OoD*rKO&XgZTcr9!Hai1yWg(Zq%bGR2Dj4VY0W+hk*5C#(Gwsv zzu)C9#dCE2S)2U&>oD(DbXNn32snUzr*YK{oZdL>4{&h6xO{@jE_q(J?2Z}X{cb>B zC*E4bBaOgY3cd}e61exQ#YYE-jXx6(-Q@LDBnX1WaRHRS^-Bqr{l@y}Q6mvZR2WFY zIy*>ka5Tm@_UKnnM>QH(eXB1VKcBQ@l|HVyxp-dqfT@T^^+R4K-dY$DeNu~nqBWz< zJWZSxwjR|G0JOd<{X6E2XGexv640d;CrEJYl%ib>9E$yhwF@{s@K0ar4G1*ORKNSU zW`SdxEMc+;Ferhwhy_i%n@a_RnDYT|UacmFUm8gE8B^{;mzW*{iL5imNJPPL(3rBg z&g%HDPY1|Y9lz~2ta)Kbi2gc^N(q4>Z2ON7lM!|^_jUkgz>Gf#=7{?fn#IZJd($Bc zFYj!6qzO1~0)16SsPtsca{S$A9uTYjQmG~9Op#)85@_&B^+y`R>H!$S!7;uba@pYn zbUMSXX6;|xrnrQ8(PQmDf~}LrNY2uErH+_MlQ8!$F4}{ZY6-#Nba@`sr`%lQE6c&{lT_C6 zTViiaHh`F+7@cC!!_)!Ko&Wqjlds7T&!g1(^dshsqPMAan-7`SJ#@sJ{>%|e`m3Df zJ9L&VsHtL${>^c3Qq$7J*;4%TJC^k?%!^7GED-HNJrdmDcuT)#CI^l$ef7|`>sCHA zPR58?4So%9NEAL%c6!& z$xw`%{g7&Y#twb*J?~JNdn#GmzX(X29?47Fbt`gXfs77zJt720IQMCyc4(8QaGK*| zUj+QB7~7}!YUbp?3|UNT@K&R_Hkj?*ysXJ3fk3N9AT}XDGe|4Nqkv^^l;#3GZ~ZeB zW9RHKt$vWB8kI2E2^|q#vDTiuEdIG#F?1Z#ltHUU@ECv-94~8@P2djoxp&*xa;Kg< z7^msnid*AuT#M4o`=JA60Zlt+1VSTa(F|n-UL|_JS}d{Ah(JRLfa3%W_Y3;1SB#sr z&ycdEjLtg?4@@mv{Bu_V3-|pW9S_(+0zDEDEL5wTfL26qQOxRF&J^ygkKfRy?&kIJ z#aE7)*T0z=Ghs1u-}Xg^#|%8Ty9|URH!+Yz0{0mru?R46NHb{=aCBHkFoh!i@H6*H z2-OUJP&IGWeq-vxrF8CzTC4rru971ErYZG-7!Yp7;v;-3p@6m`LU%4a1kvZ{{HNPm zGtT|{Utc$^-a19rn-BW+L2(VSRx;rru!gxb*C*K1+z}ygc+l{GG4o(ifv~=-m{fj3x3s)g4t3}TV_i6%X8pzGaS~I9849oKp15PvoO&mte+`s|_|EAa}^G{G&``}Q{&Ky82 zqjQhVkL*7@Sg4kpOA{s^9yF#chMm9L68z(C!^=Aj$xrkQi5rc?crSDq@WCy?)Xvh| z*@wcRJ_-R?bm+pMkY(+4OY99daXRHhEo=Y2GqziWqv7@#S8o!bS^+26g}Ni^Ma|N2 z)lAXFwunbKZFQ$%^^*gDb_@bXPeEReFbz7GdcC$ZLb|&LYvTzl!s09l6o&i3UfZ;Z z1!tN3@&=%EE-_!h6xME1PMd)~uNL!ag$0Tg=_ZUAKM*~qXE|N?%0<}rvkkOrw<-Cl z0U;j2p#bjb&z&i8t)ls zED@MqakD7BfvWGO*lBZ0EZO@z6XmL5i@x5VoH7$TBe59m?$C>~3AK7byJ&0;YyaF^ zQx5a0-Y~9yt}loiBM}^3Z8bMu4hITvQMBlWrMZhI;dTAW+iE*Y$9wLqou%_mqadr8 zVDFGK(u7(~1@YQS#&)a?uG}k!%^7b^4exaW@>cZ{p;ZJN-UCI2E*di@Y~#0T7Og(d z6kLSQy)$T&7j(?jioKrN#F=~;Ae#H@&4&yiaz z8#wmt7?obg9rPc)>w{bHw?D>BTZ4&m-ksYi3-bfin(&m1kDKT@(_-0WTxAPZOH#vW zsmFB-*EHkN>eepS<4(n_zSWGq#=8$;zr5YB@<9qj4@bH~D9VGjlrqSy2|j;C!GnY| z-wXmtP^QqIq%!x0yBG-{7x8O!y@^}*lqLI57vqbscw;?IQ#ofR$Y@Bd5;gc~d!c%s?-fx@H+_yScz+0Rc0BA4Jm=03-4R$IG29+EeQG&fSQl(mYmafwJt%Zw^q0%GiS;;T z$+?@;9=~{#!Va5AgNA51?zJK=-M|D1@7;nfVB@peB`a!zEZTmK&aW6BN?+?wm#>@W z>S@k;RIx?pz2T!LsjSjz4K?Kn7^+qN+f1|E+V{V#O`KZ8+CTBadR%%=pLnZ? z^&rAL@Z%(IU1}gD9sy|fusP!{nD-PMErN=^d{TRJn&4s<~k zbpFMu4dayid3ck=dIUa5-1LZDF=@ph6V6h@)bl#bz4LyBnjApgTn}v&W`Ah2M6TPt> z)vWze0x*n2o~sT^K_<&5AZbi9f>et;U8Xa1-tk}==T;m$c^-BK+vLr16X)=@KTGF5 z>&+Y6Wmxs3Anu{@1$xQq5ReF|miB(lf*EyeaZu!H?bIc01`P>}CM>+*)g|rrFy;VO zSL;ROoUj4jQ87evM|5)$U%c#wdFkox3MEy29ri2My)iyf@41prISR+O12P z-t<~8Vq+bU;rks6V&TXP2DmbOCCA|Ko5D%2 zxEtbWZ(7tpqMly>8rt{t^hc0}tPU6K&dI%#!+Tjz(K)*U-imOS{G;mmurWw{TiA@- zEisv+S2b4qhh8Klew3mZITyKhdBplW%uiN_SrJ~JI<3fd?aJkx75OgEL2}r<{$-?x zDQ_=qcY38ynptNp{z@uR51G^Vj194jBjUW%g2c^=6va#&cFvM_B+#Sl7udoNK|`5^ zCwH$jA%=p3KT6En{b`#a@y;+1HW0W{+EqlHcSwxFv#n!ubxocl}o+;RIQDXe#0#o>p+Z&oO^lPgiA}e5*(4(b#QJ;8owYBKuKu=zL zLbGT+c5&l6q(^IS24`W^9m<&lDp=cTsb=#OoqKwktnWktz3T90!esf?qZKdf$YgDvE&>P#6xf$(t7=Igi2q}amsI{)_pvuU;0Pj3J$h8tWQ?(i1jU+ z858OPd59U_I4-TPVvA}6d~Dm_@?)=`h_#Y~bn; zPFMf3*PQa0faUO>tXACwidPLuQ){i#`?79U&V;!x2_E7fgkE)CnuVvHXgPX*G?3?r zylu{SSq{SbiFmSF7x>v{PF*g!K+0PDKU7-VTqvIar1R1&K4_?Zhf2RAkZIO2OXi!y zL#g4IC#%%}iLe4?%rWzNn`H6B6n(}0`)fRyE|R_5`Ds?84%uNyULME*IYsB5TqYlS zy$I83*-Q=uG0IXp`##A9DVCh`prLxO7ZK=PTZh~oH*-wAbwj}R@;yW6Ur3K0KU3i9 zZ52QwhXRB8tR??>FFjZTfP21uo7=096%@-&hir_UGK3TA{|eZaq)h(B;@BzkMb2u= zH^3MW4@K5nk{bn^QnrGo5p{6rK;@kO+9UiNGzn~7|6sZ zMqkC)&PjdIZN?S1dhlQof!@W0dUDJ#>sdPgjlhkj+djQlGkXq4XhWO_tTb1mzTJO(%^awzl)@M*+i zIap+M5l_}g!0JlqoPdpmaOeAnr*w<5K+}rXmH{$9VvxDcizxcs@P4p^wx<{fu^yct zAdQ|-m<@h{%KAg#T9D$OpV2ML22K05wa6b8kU!S34#~B}BVA1z#5zV0fOH*CRs;iL zV~dw-SOKt!-{Mq2k_eTmH{$LmSCx8rKOqFS&Od>3e}B701;+L5`c6qfH;}R zF)Dpsz$Pqm=leC|sw{L?@j*`h0*K@4pinaeNG}2qqC|yfZaETaC_LG5Yr?tvU7i9LgJ=z{~j`!(cFePRzuP6yav4ne69Y-%i0@JD++mA z<3J19yiEYYiI|_IzR__Z@nZ=e@7x<3_@V&i++DE^jh#WS>!}AA#kXWGbs`@Qx77dL5d}d^!W`UodBe3 z0|d7s5eOtP=$6(Xpcv2rHKAMFf(~x4%;>Sxy{HiUnhA-8y{@iBmZC2L1A~6I8NHSf zy|xa$7bOA*pAHq;Du7Ilh^K0;j{it~qiY)6yh4#q0Ma$B2tOrPhHhsC0!l0bOB}kr zHR!;?!)v)ScG?{2S>(3Qts%;B$a3^SU^62yYSCF#q1RNR_YjT18;OCVN9!n7L~m1# z)&5VZZ!}*%egW}f5r7Cl5{k|h50prBW6RO`h{kA`;qkbIH%o6PTJR4#ByKd)Ht`4? zS_Fs~^g431qtJVZK<_CG14s9k#Ff+gFbM*LE&5368@)GfMha-!ERF!AYlEZ*29!{A zAj2`xL||G)^QvLR3NIRkd|(Y#4F|3<8+uH5N21pW$2Jd&5VU!4bZZqr#zs=cN~W+v z>KlDQpZG^WBI#tggMNG=vxo`KR$1UPOTQA*5N4@*6FC6=6HCJ;Lqc%J*w zy@mH7$$uR+2wi>DDZnrVz5jhAO0Q^{oLW1ykto|cRa;X)w1@lrJlP#YnN>d^D}dC%fy5T+-*u(DYfkn_w)aoE$e%o z2QEkeLYCOMYYZR%dP1CMSbFQ4$YFI>37G?hJ$lR zG@Y#0p1H<4_Fekbi@a$gx=A&CC1?llsoSiFt(t}7su2o-88N$@1vI8V_hgHB%&+u^gh(caI67 zM}v0g#pdQwfU%GhRMr-$19U1``xlOwDGLB;9!FN|FJ$@inkD0FSo>!Zi}bGUGA2KY zT)gl?_G>S;Cha2+n$mM?t&Yo5MbnFhLku#d{V0HJ$8*dcq@j$NS-o!4cI^+Ul`};kr*(*TPDN{s;kk#az z?KZBSBbBMZGkJ{4JY)ho?NLJ9&tH^@bG4xqFZ<|yaU&GqJ*%&(&M$q|~Tf2-KZxY=c3k;TOtMux^a;ETu z?C5dRfGZwC5*Nu5(kuB^-I9?tR{LMQIA4D^z)?0GFmBv!Rw1NErF71-(g!6L|NgY5 zN$*qQ?j_)GbMGEBrKWn*`0X&2{u*!%Yw~LZy+s|eO}lu$R1*mINlVtDa952wp;=_P z(JScQEoTZ2dvW>x?>^Ps4B%dS)NaF?_z%&TBQpUQVH==NrDs|?E+<6|pWL1zimc$F zR}U!X4y=*|{xcAmV0uZr#6MazgOJ~yvgADPjVXM~wDxh}DyA3nQxlMMEqc|c zZ_DW1`@K3-#zZtZ%d$(Dx2oLqV@B#4^Ud%0Qs2N^!kBC?&R-|iM4<{=r zv1I?ro3m6#=Uo^aVjR;^^vWa6Vt__}$eezwH&)~vT~I$aV!#-|2O?IaYl`!zI~6l} zS2IP`UUYH43WI~FgGtYh_Kr58S(LlG zIATf9t+PsRj$XyuKEG8pH3>9i?{;{6P3X;vNt2IHIK$-amF||?@cU^??$JcWV3@$j z2X*kMC$S=3!+J#Cqng>ToGv&ZHNOw;W0uTA(`0=o0{8Z|9Tqxhf_&&LIAC5^RA+Tu z@}{`{&$^|#n6MIB5dx5|U_H$1QoKDs&+C`n1{&H*dFr6pt)tK%j?9?yPSuQ&6|C)o zH-W=aI_LPJh(V(SR)ho&yNdNt&*@W17as8@Fj&Uq)vkyh22;-6pCCFY8_=ZF>Q{GKbtG1K~V?y&#jg=_cM-KI590axrJpkiun(NAdB zHpWdGUCT(TA8u?_PZ!i#KwJVKfy1sst(@#*4H!aKvqkTDb7m@N+m|a9BW3|tX{}yx zxpt_AZ6emWtu3*vf6B`VqgS@;RyY6&9Cih2#WRoSGE2_G-UxHJ517-ogNEr*y#ke< z3&px>ZdgJ>Eo=YYD=Wej)B3=KPVbpbsdsNLzZ992~WwLXXW;oN%2*T?W8wOoqDU|>Tc8Ot;l)^ zUAqAlA`o-=s@6x2y0(%otds1rV~Z|@H>3*i=8}}-c0y`3UEWi3%96dw8@H}A1H+R4 zmwDj{(~AbT7K1l%538~eq+N7z~jQu@ttOx9C zuuY$Mj~YZ?3!2sx1*B#bwIZA2W{xRm3d*E>_-D0?^P6$k5r70gI3f#TC(#vj;Tsnv z_PT0p9c9TWPf`q<16*k(1`q@(NMB(Ka^Q=%N|qDPtyZ=0{YO6E9MeL^{#{F zwU6vKt-bFB!}7e$=ph^ClMf~fQ<4JyoHThj=&-AhIW$usCcY0)_hEse57HY9;*tggj#y+eWrACQ03--S z`CTzHt(?Bx=50XGIq#g#E;EDZkphj1SD*$J%fP7?Z%LvN+BFFI2J|6~2sm2wfn!9# z(bBN@ZUjJq362>cL0@Xgy4PEe6|@|cY|)o#^0A8%wGs;Rpwy_iK;s`)1UmT9$U?+n zTZulb0)1c}9K6Zwjy-&S_rP{{5fG8p!Qhw$daI99*|*fQ#Xoy%IchnLx}Bp|9P1c{ zQ7b+nF{mp~g&+yTfD(zQmmKXV3>e`UIC_WxA_Vu1MeurU)T?`n)f5(H2-x1A# zivXpa!Lbw!(4C~RH`ZG1|MeCekXoH%3jUH4Gl8d8eDK&4wd&Sc9wcrF@LRu!fI@W_ zSRWaBDDqpt1nTziN%7_edKQb(Gdbq@3Kf`M0uukz=*XMogS4fVoIi53>T7S(NHF*R z)y>N3>%tlWf_Q8!=&4mp544*AFx{H@J02VnPem{2b;_K*sfKlY#JdXN+`990{?3=w z%V&-S6d!r#MScYK5PJaPCiaKkz#TDBH-UKVNh+&YYW|%Vwc4&~}^boqcFpH89> z@oskN8>m||Cff;)eTFp?s+>Ob;@>@#>wb5_ob}*_m`T?n6Rbqe0Nk1okoX52@UTX0 zikWOJrE_oNZvLO!3XVfm+8*wA4#9K>U-}T;*{D@pUBt2%wJQfzv-XN83*LHC zee*2jc;b z^rlfqlm2LQZdGpdbxXrs@s3WfJG?dD&b0Ymh84r=toDCNebBX5$A5O{lCvWkZXX@u zuFX*{0+iM{SKI=>dkm`=)WQLqUbLJQ?n=h?SyAjn*cp)*<$S!OOX-f*0>s$_;uw{g z%-u}icv-Lf+d*^M-3!A84nz-HEfDZwM8LNi7;cm*S2mG3Y0fC}rUSdD#&7p&=466~ z^4UI^C|3!rf0zHR+-e6-nzOUKEy?8f8B5;bt-8fa#)MPx0?I|)!L8F8jaCB&{~)Eh zKo{=!1u#&C?th-rE&2lj2lQCM0w|-1C?^T40)Rvvp)yu^YeBGp(^ZZm|NRh^et&Ar z&}&5myeD^Xw=N6}oK88dMyhPArNo@=sA25y)%$=_IeS`JZJ)lNPrNl0gbv2QL9)49 z3y^133rEzlj?aAYWpKae`*TeGnTJ*LZ$dYe&>bxEK)bqi0Z@q1DX04uKA)E~OU9Se zwga_n@waUW{<&!m*7o@``Xw7F5ItPr&gH=oMZnPl#o~7Cc_!}-Uzv0GC(h@M>b5NwphFZ#~-1{%G#Xosn$00tS^1FvsHy5GW4k0*V1>hi+ zq#i`Nv)}Js(bI-=X8o_e{DPeBV7jp46>U;#O4P_f$kT<>u9hrHw;%^bcY(%m1BOF3 zjX7XiyMm*pRi1*g-d<2utnG^j;^yUGn!^(~NF7j1ZeDb&tDcNoaN`B0@Cz=%Mfi?bM`n4_k3>CijHJ&Uh={d^&t+ zM~OqCntscedQZJ|!xdk7RK%@{{reN<%&nW^rjEhHyb`l0ft=qZv>I-}ctAO0;AuG?Uo8%{UwGo?JooqFhA=hH`MEY3l|;R7ww*l-NE8b4T`(%hU}!4$p^Zz#Wg z$q*><&^?@Y@O6E1GRzj%0l5~qno2|f-vqIIS!3TMmaz;BR6eP^X}|&f+C}H-{9WD* z$&{LOSV7zV^^A7WM(*`ti~}}WfL=q3APyBN;;ka!@B$=w;|HfD;Z7#CSv`GrsU>G$ zt<`bapVow@VC8h-slBGPX|rX6Sm4SL@;1`jO~k9@i#mI^h8bJ6i{r~IdG>0i=#0NF z6Zjo)miNcwRMzp^ck76S#u^Wq3Ne8i!7OTyDFc$1q`qDPL}YgoOxnzeo5 z*DoI(fNIA6*?wcHZ748UFp%K6Lfs^ME}?i9ZmBM2w@c-**!grhUGO-pm+|)n!Z&t% zO~2}qn)c~JzM;P-=7J$%PhIIxzQ66QTGv^ zQqhRDakd7J>rcc;!NZC@&+P`voWc+w*9yez_&45@2w7x%+SeF;s zM4*u`1-;cvqXy^}MkVNB*{TJ^@F_52LCfyV{QgGku~0rl!_l1&{VT$Yufj}RPKa;o zAEJeG?gt_lt`$)#TyF^7xC9)2^vr~c=n`ncP24xYJ`gv15qF~<;SPx3#ApR;`*2ve zu@7+7EVML{*X;o7xEp@2KK1%@Ox{BrHF+1_^svDc#RFI*bHC+FKm`=KtU?&5TL#0 zpegOiDz@m~&Tix0@N{eO?*~k4pHu-wU*PJx;mLxy%}gnkSS1O6cDE^|KtSb$K+}W&bt#?u2uF>6l~^Bs8D`yb&*sH6`Plhk?!d63_rU{$r&Gez z8{(x35^aLht|mZ%U-(-2=fYF4565EUrIr?=;R+ zA2DsvIF{}LTlkWc8VmS-j$5*J0@tug{vkKLIdsogpk)ChprHbO+;I<@qQ)A3MQ;!p?~7GwhDI*^4+jv*nzn zpstCFlsnXAbbiH?nuVGDIhqDs5#r`XfOQi9M8Vz8k4b5;){qUm?s*_S*i;A*w^|zR z!>aC8&KzGx=kD>80ezk>_-MCj%@en&rmdPP>&1Je`XY_NQzxT{59tlR<|v9&IV3;(#ZLl_DF#a&)G))!s6u z@GnzBdyWFGiLPQ4%Tv6C*I;VQQNbeDY%jEXVxX{~&#x!IAV9&X7e4t)1;oe1c^Vbh zQd6@gjVRtQtx2kd=`bxutBbyUPQR=WxY}@PLCa|^ZoQ3xdrA&(EltQmn9=_mF;L(I zVz|a2!04ht!NojJzj&}HLCd4!TAL%qi)Z+|)o&Ws=5UteeNn;A{aFQD_|Yrcl^erc z?f;D;-m>OWPJ}5r3g8-jr$Samjs9QkvqbUG(W)#9~0+kR9s63M~wEwMu8~Z zgUXwyA2FvtT*>KzI>!DJ+?+=E;D9OZ$&GP0E>eK7mYS)x^qRQa8>f{D!R9}kFoT!? zg8-$~W8%a{#Yw5tz+JEkbYpAdKm;`isQX+Krtd#6OgFF}P!3Rl@IFWv(7-+M57#^0 zTk)FRJbWe@w!@nN1px+GqCjcwsJPZ19YdhpCgChdGHaf!fB|2VuIZRAh{kqH{kVL6 z0gy#jKspC-T@Zn786fUevWVVs(*?qY4V|ekFj-`^iRyGG+JG#wq&o)4B8x1t$RdlZ bpkDtED;+AFp~H%~00000NkvXXu0mjfYSRf2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_range.png b/app/src/main/res/mipmap-xxxhdpi/ic_range.png new file mode 100644 index 0000000000000000000000000000000000000000..f018e34bb7afd942dfb2b5ad642a415a5fd7f7fc GIT binary patch literal 2469 zcmaJ@X*3%M7Y!1Uv>~;$);8LXrPMOoSTaf?wn@gmbkHU`Z4lIMN)<^%7}e1hO)C_Q zB}GST7pkGPHI|~WGpJZ%o7!7+%>VCvKi+-6-nr-8bMHMb*}={l233Rt005Y+4c6&! zQ~w*V_#yrw2Hyt&AOW^mw9Bol%h_@Fly4}sHT5i24Nfdy)$}8uQG{p&Vl4*TFhKp{ z)IAZmr^Q_J4}W^0oTEAJF8H${T$fb-#L9BS_6V>TfqZpYRUb%UVV`r!sfGD$O-8%} z+9E64bft5g_uJO=C(gvgGVe`KU-#(T!IEjuc2v&ldIzVXqQaeeP%H+px#A$PD5(MN z?hZEh{b<9sw)|X5D{3d>BW23{Q~zfZxDeZZeLMrODHa0* zud4Spvp*`xgVs~9MmxwnJ)}dFW?eNiF56mE^-}3QO~&0^YpayoS2O!ve$bR4-3_*1eVF6SHWLj` zc6s1;BHelqQDsF?V`X0)%z|Jpt!^-H&G^AD1?rd9dJ8U@wy1J1DUP(q+;ee*@6EbyHyI)r`|dl^ zxx&#vu))c#lv$W`ge=hDgb$^6IZBHO+EYAcSzkkR%6ZbZ2dcU;^iO+IvYn|rS}!aZ z3BI$^rAa?|@lk4yO7KqIgXuNh=ROziyTEzMOc2III3a}J8O0-`BjsOvDwQ6!?s0(Q z8_DTrM`(EdowTHz{?@M&VSvf)BeS>h!i8j_;O_u<=nA*^*$<420|IjWfc&cOOPP>; zQWjVd$P>*|pHmTEb2J#1AHL`F;{BHqc?Fn-9MC{Qsqw;3XsqGW4yzuLfWCKac57ZC zI+eKS%JQe>Fj2tX%t+ZRi}gdPn1*FV>eMH9Q|)NCljd)eUVp4mm{N)L-r*izoMuGJ zEnw$6qy0_5^byC>2LdDe2K(tpHm1jTNdDUKFg4+RD!7El%JMOo$t7qL27h`TMWgnP zJ>Na87{~8jy}{LB*c$doVh%dniL>fmXR@p{z+I+)z(kQZz0&J)g*`wolA2l2g2ksJ z6Pu9F>oU?8|I=D22OQB6J}HoTU_mc3%L{NLMpJQl&e}HT~T3tH0X;2Jx-^rBw8TJ+kFsL-!qQKf=-7kKK72)3TKXz#W=C#(gM-I z5aNW7RQXzs#+rpL?`d%npUKg4{UJ};$^c5WsL9VIWZ->qIcs?v6vRmQ6K(#w}fu#5s~l^ol>6n^n^#6qv6O4 z>`*Ai$xwZ)hKdOAb()o>v2NPc27%B+y{t}6uNhCi$~o_Zq(^tO0( zt_X29BCPq27PvW4&D9QVvnZf_bA!`hzr0{l(+0XA+hqu_(o+{>kSaS%X2tV=5UHW( z7sJdlL)ThZl6iNOjNa~~5=vvjq-iTlg*}BDo0Sx1q1pgNfk1VIOV?Xcs^x$pGJ$Ch z@PMKGw@0DW_++Gw1{fLONE8R5-(r={$^w5D+)< zJd~G<05g2=(x}9i;~rxuJbo~U z%kOGs;?PNcjIt>xwJa;u_%RjUujkn!2lO;l3ey3p7J64FYJsb7A_ZPh48G<66WM$v z-M-DKH_6VB^lordLGc&Ax0NBz!f2^VCvIfw97xM6aV!4-YZY1%N#gTHls{>?bn!#fnZsdJ`NyuC+ELl`Dml%T3naX06X^fE|@hKj@F| zPk7LG9YxRk7s!d9Dgqd~;xgvuI^E$OAzRs<3(Hs1er1l>VF?E3J9r{8cS_te;v@ji z*hL72$ynG^$ zIE|Jhd}%y1@aT_-Th@?Td~H=?C~vQUQ0i5H0CUcZV))s4xvn!Uh}s6Xk$ra% zckDwyv=DLq^-3ysgGR*tQoz`GbYMO^2*o&;D42C%pk{C{a_lEAx9w#~XVSU#gO*{Dnl95VLW$PHb7t1iUK89rTmBczl{{3mqgULoRL$cO36 gAnx>RtHN@V#_MP0DSajBhwm4_*3u695<{f^3rc>ME&u=k literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_reduce.png b/app/src/main/res/mipmap-xxxhdpi/ic_reduce.png new file mode 100644 index 0000000000000000000000000000000000000000..134c36b86c11b69851e0775b7c4ffc748b096cc7 GIT binary patch literal 853 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 X`d9$Kkv+BS00000NkvXXu0mjf2xg>9 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_solar_system.png b/app/src/main/res/mipmap-xxxhdpi/ic_solar_system.png new file mode 100644 index 0000000000000000000000000000000000000000..cf612c2aeda438027e2c31c3c10dcd7aa9d3269a GIT binary patch literal 18170 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 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index f8c6127..1e3086a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,4 +7,12 @@ #FF018786 #FF000000 #FFFFFFFF + + #ffffff + #ffffff + #ffffff + + #e7e7e7 + #f2f2f2 + #009988 \ No newline at end of file