第二阶段冲刺第九天

Posted on 2019-06-13 20:33  咳咳你  阅读(193)  评论(0编辑  收藏  举报

1, 昨天的成就:

  a)       完成的任务:设置开学时间成功

  b)       所花时间:6h

  c)        还剩余1h

2, 遇到的困难:

a)     数据库可视化工具出了问题。

3, 今天的任务:试着写一下反馈功能。

package com.mnnyang.gzuclassschedule.mvp.home;

import android.Manifest;
import android.app.DatePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.Toolbar;
import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.DatePicker;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.mnnyang.gzuclassschedule.BaseFragment;
import com.mnnyang.gzuclassschedule.Html5Activity;
import com.mnnyang.gzuclassschedule.R;
import com.mnnyang.gzuclassschedule.app.AppUtils;
import com.mnnyang.gzuclassschedule.app.Cache;
import com.mnnyang.gzuclassschedule.app.Url;
import com.mnnyang.gzuclassschedule.app.app;
import com.mnnyang.gzuclassschedule.data.beanv2.CourseGroup;
import com.mnnyang.gzuclassschedule.data.beanv2.UserWrapper;
import com.mnnyang.gzuclassschedule.mvp.Search.SearchActivity;
import com.mnnyang.gzuclassschedule.mvp.about.AboutActivity;
import com.mnnyang.gzuclassschedule.mvp.add.AddActivity;
import com.mnnyang.gzuclassschedule.mvp.login.SignActivity;
import com.mnnyang.gzuclassschedule.mvp.mg.MgActivity;
import com.mnnyang.gzuclassschedule.mvp.school.SchoolActivity;
import com.mnnyang.gzuclassschedule.setting.SettingActivity;
import com.mnnyang.gzuclassschedule.utils.DialogHelper;
import com.mnnyang.gzuclassschedule.utils.DialogListener;
import com.mnnyang.gzuclassschedule.utils.Preferences;
import com.mnnyang.gzuclassschedule.utils.RequestPermission;
import com.mnnyang.gzuclassschedule.utils.ScreenUtils;
import com.mnnyang.gzuclassschedule.utils.event.SignEvent;
import com.yzq.zxinglibrary.android.CaptureActivity;
import com.yzq.zxinglibrary.common.Constant;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Objects;

import de.hdodenhof.circleimageview.CircleImageView;

import static android.app.Activity.RESULT_OK;

public class HomeFragment extends BaseFragment implements HomeContract.View,
        View.OnClickListener, Toolbar.OnMenuItemClickListener, CompoundButton.OnCheckedChangeListener {

    HomeContract.Presenter mPresenter;
    private int REQUEST_CODE_SCAN = 1;
    private View mViewShare;
    private DialogHelper mProgressDialog;
    private LinearLayout mLayoutUpload;
    private LinearLayout mLayoutOverwriteLocal;
    private LinearLayout mLayoutSetteamtime;
    private Toolbar mToolbar;
    private CircleImageView mCivAvator;
    private View mLayoutSetting;
    private View mLayoutCourseMg;
    private TextView mTvUsername;
    private View mViewAdd;

    //private View mLayoutAbout;
    private View mLayoutFeedback;

    private LinearLayout linearLayout;
    private Switch setQuite;
    private Switch setswitch_shake;
    private Context mContext;
    private LinearLayout SearchLesson;


    @Override
    public boolean isActive() {
        return isAdded();
    }

    @Override
    public void showMassage(String msg) {
        toast(msg);
    }

    @Override
    protected int getLayout() {
        return R.layout.fragment_home;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.mContext = getActivity();
        EventBus.getDefault().register(this);
    }

    @Override
    public void initView() {
        mToolbar = mRootView.findViewById(R.id.toolbar);
        mTvUsername = mRootView.findViewById(R.id.tv_username);
        mViewAdd = mRootView.findViewById(R.id.layout_add);
        mViewShare = mRootView.findViewById(R.id.layout_share);
        mLayoutSetting = mRootView.findViewById(R.id.layout_setting);
        mLayoutFeedback = mRootView.findViewById(R.id.layout_feedback);
        mLayoutCourseMg = mRootView.findViewById(R.id.layout_course_mg);
        mLayoutSetteamtime=mRootView.findViewById(R.id.set_startteamtime);
        //mLayoutAbout = mRootView.findViewById(R.id.layout_about);//获取关于
        mLayoutOverwriteLocal = mRootView.findViewById(R.id.layout_overwrite_local);
        mLayoutUpload = mRootView.findViewById(R.id.layout_upload);
        mCivAvator = mRootView.findViewById(R.id.profile_image);


        setQuite=mRootView.findViewById(R.id.switch_quiet);
        setswitch_shake=mRootView.findViewById(R.id.switch_shake);
        SearchLesson=mRootView.findViewById(R.id.SearchLesson);
        initToolbar();
    }

    private void initToolbar() {
        backToolbar(mToolbar);
        mToolbar.inflateMenu(R.menu.toolbar_home);
        mToolbar.setOnMenuItemClickListener(this);
    }

    @Override
    public void initData() {
        new HomePresenter(this).start();
        showCacheData();
    }

    @Override
    public void initListener() {
        mViewAdd.setOnClickListener(this);
        mViewShare.setOnClickListener(this);
        mLayoutOverwriteLocal.setOnClickListener(this);
        mLayoutUpload.setOnClickListener(this);
        mLayoutSetting.setOnClickListener(this);
        mLayoutFeedback.setOnClickListener(this);
        mLayoutSetteamtime.setOnClickListener(this);
        //mLayoutAbout.setOnClickListener(this);
        mLayoutCourseMg.setOnClickListener(this);
        Boolean quiet_status = Preferences.getBoolean("switch_quiet", false);
        setQuite.setChecked(quiet_status);
        setQuite.setOnCheckedChangeListener(this);
        setswitch_shake.setChecked(Preferences.getBoolean("switch_remind",false));
        setswitch_shake.setOnCheckedChangeListener(this);
        SearchLesson.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.layout_add:
                addSelectDialog();
                break;
            case R.id.layout_share:
                showShareDialog();
                break;

            case R.id.layout_overwrite_local:
                mPresenter.downCourse();
                break;
            case R.id.layout_upload:
                mPresenter.uploadCourse();
                break;
            case R.id.layout_setting:
                setting();
                break;
            case R.id.layout_course_mg:
                courseManage();
                break;
            case R.id.layout_feedback:
                feedbackDialog();
                break;
            case R.id.set_startteamtime:
                SetTiem();
                //showTimeDialog();
                break;
            case R.id.setQuite:
                onCheckedChanged(setQuite,setQuite.isChecked());
                break;
            case R.id.setShake:
                onCheckedChanged(setswitch_shake,setswitch_shake.isChecked());
                break;
            case R.id.SearchLesson:
                IntentSearch();
                break;
//            case R.id.layout_about:
//                about();
//                break;
            default:
                break;
        }
    }

    private void addSelectDialog() {

        new DialogHelper().buildBottomListDialog(activity, new String[]{"手动添加","导入分享"},
                new DialogListener() {
                    @Override
                    public void onItemClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        switch (which) {
                            case 0:
                                userAdd();
                                break;
//                            case 1:
//                                fangZhengAdd();
//                                break;
                            case 1:
                                scanQRCode();
                                break;
                            default:
                                break;
                        }
                    }
                }).show();
    }

    @Override
    public boolean onMenuItemClick(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_sign_out:
                signOut();
                break;
            case R.id.action_add:
                addSelectDialog();
                break;
        }
        return false;
    }

    private void fangZhengAdd() {
        startActivity(new Intent(activity, SchoolActivity.class));
    }

    private void userAdd() {
        startActivity(new Intent(activity, AddActivity.class));
    }

    private void courseManage() {
        startActivity(new Intent(activity, MgActivity.class));
    }

    private void setting() {
        startActivity(new Intent(activity, SettingActivity.class));
    }


    private void about() {
        startActivity(new Intent(activity, AboutActivity.class));
    }

    /**
     * 反馈弹窗
     */
    private void feedbackDialog() {
        new DialogHelper().buildBottomListDialog(activity, new String[]{"提交反馈", "QQ反馈"},
                new DialogListener() {
                    @Override
                    public void onItemClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        switch (which) {
                            case 0:
                                htmlFeedback();
                                break;
                            case 1:
                                qqFeedback();
                                break;
                        }
                    }
                }).show();
    }

    /**
     * QQ反馈
     */
    public void qqFeedback() {
        if (!QQIsAvailable()) {
            showMassage(getString(R.string.qq_not_installed));
            return;
        }
        String url1 = "mqqwpa://im/chat?chat_type=wpa&uin=" + getString(R.string.qq_number);
        Intent i1 = new Intent(Intent.ACTION_VIEW, Uri.parse(url1));
        i1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        i1.setAction(Intent.ACTION_VIEW);
        i1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (getContext() != null && getContext().getApplicationContext() != null) {
            getContext().getApplicationContext().startActivity(i1);
        }
    }

    /**
     * 检查是否安装QQ
     */
    private boolean QQIsAvailable() {
        final PackageManager mPackageManager = app.mContext.getPackageManager();
        List<PackageInfo> pinfo = mPackageManager.getInstalledPackages(0);
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
                String pn = pinfo.get(i).packageName;
                if (pn.equals("com.tencent.mobileqq")) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 权限回调
     */
    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                           @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        RequestPermission.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }

    /**
     * 显示缓存的信息
     */
    @Override
    public void showCacheData() {
        String email = Cache.instance().getEmail();
        if (!TextUtils.isEmpty(email)) {
            UserWrapper.User user = new UserWrapper.User();
            user.setEmail(email);
            signInPage(user);
        }
    }

    @Override
    public void showLoading(String msg) {
        mProgressDialog = new DialogHelper();
        //TODO 弹出不可取消
        mProgressDialog.showProgressDialog(getContext(), "稍后", msg, false);
    }

    @Override
    public void stopLoading() {
        mProgressDialog.hideProgressDialog();
    }