package com.example.yuekao.ui.activity;
import android.Manifest;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.example.yuekao.R;
import com.example.yuekao.data.LoginBean;
import com.example.yuekao.di.constract.LoginIContract;
import com.example.yuekao.di.presenter.LoginPresenter;
import com.google.gson.Gson;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
import java.util.Map;
public class MainActivity extends AppCompatActivity implements LoginIContract.IView {
@butterknife.BindView(R.id.image_touxiang)
ImageView imageTouxiang;
@butterknife.BindView(R.id.edit_name)
EditText editName;
@butterknife.BindView(R.id.edit_pass)
EditText editPass;
@butterknife.BindView(R.id.check_jizhu)
CheckBox checkJizhu;
@butterknife.BindView(R.id.btn_deng)
Button btnDeng;
@butterknife.BindView(R.id.btn_zhu)
Button btnZhu;
@butterknife.BindView(R.id.btn_anim)
Button btnAnim;
@butterknife.BindView(R.id.qq)
Button qq;
LoginPresenter loginPresenter;
private SharedPreferences sp;
private String userName;
private String password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
butterknife.ButterKnife.bind(this);
loginPresenter = new LoginPresenter();
loginPresenter.attachView(this);
if(Build.VERSION.SDK_INT>=23){
String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS,Manifest.permission.WRITE_APN_SETTINGS};
ActivityCompat.requestPermissions(this,mPermissionList,123);
}
//sp实现记住密码
sp = getSharedPreferences("login",MODE_PRIVATE);
checkJizhu.setChecked(sp.getBoolean("记住",false));
editName.setText(sp.getString("edit1",""));
editPass.setText(sp.getString("edit2",""));
Intent intent = getIntent();
if(intent.getBooleanExtra("so",false)){
String userName = intent.getStringExtra("userName");
String password = intent.getStringExtra("password");
editName.setText(userName);
editPass.setText(password);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
@butterknife.OnClick({R.id.check_jizhu, R.id.btn_deng, R.id.btn_zhu, R.id.qq,R.id.btn_anim})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.check_jizhu:
break;
case R.id.btn_deng:
userName = editName.getText().toString();
password = editPass.getText().toString();
loginPresenter.requestView(userName, password);
SharedPreferences.Editor editor = sp.edit();
if(checkJizhu.isChecked()){
editor.putBoolean("记住",checkJizhu.isChecked());
editor.putString("edit1",userName);
editor.putString("edit2",password);
}
editor.commit();
break;
case R.id.btn_zhu:
Toast.makeText(this, "注册功能暂未开启,请留意官网公告", Toast.LENGTH_SHORT).show();
break;
case R.id.qq:
UMShareAPI umShareAPI = UMShareAPI.get(this);
umShareAPI.getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, authListener);
break;
case R.id.btn_anim:
ObjectAnimator translationX = new ObjectAnimator().ofFloat(imageTouxiang,"translationX",0,200f);
ObjectAnimator translationY = new ObjectAnimator().ofFloat(imageTouxiang,"translationY",0,0);
AnimatorSet animatorSet = new AnimatorSet(); //组合动画
animatorSet.playTogether(translationX,translationY); //设置动画
animatorSet.setDuration(3000); //设置动画时间
animatorSet.start(); //启动
ObjectAnimator ra = ObjectAnimator.ofFloat(imageTouxiang,"rotation", 0f, 360f);
ra.setDuration(3000);
ra.start();
break;
}
}
UMAuthListener authListener = new UMAuthListener() {
/**
* @desc 授权开始的回调
* @param platform 平台名称
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
* @desc 授权成功的回调
* @param platform 平台名称
* @param action 行为序号,开发者用不上
* @param data 用户资料返回
*/
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show();
startActivity(new Intent(MainActivity.this,ShowActivity.class));
String s = data.get("iconurl");
Glide.with(MainActivity.this).load(s).into(imageTouxiang);
}
/**
* @desc 授权失败的回调
* @param platform 平台名称
* @param action 行为序号,开发者用不上
* @param t 错误原因
*/
@Override
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
Toast.makeText(MainActivity.this, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show();
}
/**
* @desc 授权取消的回调
* @param platform 平台名称
* @param action 行为序号,开发者用不上
*/
@Override
public void onCancel(SHARE_MEDIA platform, int action) {
Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show();
}
};
@Override
protected void onDestroy() {
super.onDestroy();
loginPresenter.desachView(this);
}
@Override
public void showData(final String responseData) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
LoginBean loginBean = gson.fromJson(responseData, LoginBean.class);
String status = loginBean.getStatus();
Toast.makeText(MainActivity.this, responseData, Toast.LENGTH_SHORT).show();
if(status.equals("0000")){
Toast.makeText(MainActivity.this, responseData, Toast.LENGTH_SHORT).show();
startActivity(new Intent(MainActivity.this,ShowActivity.class));
}
}
});
}
}