package com.yydcdut.note.views.login.impl;
import android.content.ComponentName;
import android.content.Intent;
import android.support.design.widget.Snackbar;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import com.evernote.client.android.EvernoteSession;
import com.yydcdut.note.BuildConfig;
import com.yydcdut.note.R;
import com.yydcdut.note.presenters.login.impl.LoginPresenterImpl;
import com.yydcdut.note.utils.AppCompat;
import com.yydcdut.note.views.BaseActivity;
import com.yydcdut.note.views.login.ILoginView;
import com.yydcdut.note.widget.CircleProgressBarLayout;
import com.yydcdut.note.widget.fab.OnSnackBarActionListener;
import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
/**
* Created by yuyidong on 15-3-25.
*/
public class LoginActivity extends BaseActivity implements ILoginView {
private static final String TAG = LoginActivity.class.getSimpleName();
@Inject
LoginPresenterImpl mLoginPresenter;
@BindView(R.id.layout_progress)
CircleProgressBarLayout mCircleProgressBar;
@Override
public boolean setStatusBar() {
return true;
}
@Override
public int setContentView() {
return R.layout.activity_login;
}
@Override
public void initUiAndListener() {
ButterKnife.bind(this);
mLoginPresenter.attachView(this);
initToolBarUI();
}
@Override
public void initInjector() {
mActivityComponent.inject(this);
mIPresenter = mLoginPresenter;
}
private int mClickTimes = 0;
private void initToolBarUI() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle(getResources().getString(R.string.app_login));
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp);
AppCompat.setElevation(toolbar, getResources().getDimension(R.dimen.ui_elevation));
if (BuildConfig.DEBUG) {
toolbar.setOnClickListener((v) -> {
mClickTimes++;
if (mClickTimes % 5 == 0) {
Intent intent = new Intent();
ComponentName componentName = new ComponentName("com.yydcdut.note", "com.yydcdut.note.test.TestUIActivity");
intent.setComponent(componentName);
startActivity(intent);
}
});
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
}
return true;
}
@OnClick(R.id.btn_login_qq)
public void clickQQ(View v) {
if (mLoginPresenter.checkInternet()) {
mLoginPresenter.loginQQ();
}
}
@OnClick(R.id.btn_login_evernote)
public void clickEvernote(View v) {
if (mLoginPresenter.checkInternet()) {
mLoginPresenter.loginEvernote();
}
}
@Override
public void showSnackBar(String message) {
Snackbar.make(findViewById(R.id.cl_login), message, Snackbar.LENGTH_SHORT).show();
}
@Override
public void showProgressBar() {
mCircleProgressBar.show();
}
@Override
public void hideProgressBar() {
mCircleProgressBar.hide();
}
@Override
public void finishActivityWithResult(int result) {
setResult(result, null);
finish();
}
@Override
public void showSnackBarWithAction(String message, String action, final OnSnackBarActionListener listener) {
Snackbar.make(findViewById(R.id.cl_login), message, Snackbar.LENGTH_SHORT)
.setAction(action, (v) -> {
if (listener != null) {
listener.onClick();
}
}).show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case EvernoteSession.REQUEST_CODE_LOGIN:
if (resultCode == RESULT_OK) {
// handle success
mLoginPresenter.onEvernoteLoginFinished(true);
} else {
// handle failure
mLoginPresenter.onEvernoteLoginFinished(false);
}
break;
default:
super.onActivityResult(requestCode, resultCode, data);
break;
}
}
}