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();
}