package com.tresorit.zerokitsdk.activity;
import android.content.Intent;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.view.ViewTreeObserver;
import com.tresorit.zerokitsdk.R;
import com.tresorit.zerokitsdk.ZerokitApplication;
import com.tresorit.zerokitsdk.cache.ComponentControllerActivity;
import com.tresorit.zerokitsdk.component.DaggerSignInComponent;
import com.tresorit.zerokitsdk.component.SignInComponent;
import com.tresorit.zerokitsdk.databinding.ActivitySigninBinding;
import com.tresorit.zerokitsdk.message.LoginFinisedMessage;
import com.tresorit.zerokitsdk.message.ShowMessageMessage;
import com.tresorit.zerokitsdk.viewmodel.SignInViewModel;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import javax.inject.Inject;
import static com.tresorit.zerokitsdk.util.Util.dpToPx;
public class SignInActivity extends ComponentControllerActivity<SignInComponent> {
private static final int REQ_DEFAULT = 0;
@SuppressWarnings({"WeakerAccess", "CanBeFinal"})
@Inject
SignInViewModel viewModel;
@SuppressWarnings({"WeakerAccess", "CanBeFinal"})
@Inject
EventBus eventBus;
@SuppressWarnings("WeakerAccess")
ActivitySigninBinding binding;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getComponent().inject(this);
binding = DataBindingUtil.setContentView(this, R.layout.activity_signin);
binding.setViewmodel(viewModel);
binding.container.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
binding.bottomBar.post(new Runnable() {
@Override
public void run() {
binding.bottomBar.setVisibility(binding.container.getRootView().getHeight() - binding.container.getHeight() > dpToPx(SignInActivity.this, 200) ? View.GONE : View.VISIBLE);
}
});
}
});
}
@Override
protected SignInComponent onCreateNonConfigurationComponent() {
return DaggerSignInComponent.builder().applicationComponent(ZerokitApplication.get(this).component()).build();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQ_DEFAULT:
finish();
break;
}
}
@Override
protected void onStart() {
super.onStart();
eventBus.register(this);
}
@Override
protected void onStop() {
eventBus.unregister(this);
super.onStop();
}
@Subscribe
@SuppressWarnings("unused")
public void onEvent(ShowMessageMessage message) {
showMessage(message.getMessage());
}
@Subscribe
@SuppressWarnings("unused")
public void onEvent(@SuppressWarnings("UnusedParameters") LoginFinisedMessage message) {
startActivityForResult(new Intent(this, MainActivity.class), REQ_DEFAULT);
}
private void showMessage(String message) {
Snackbar.make(binding.container, message, Snackbar.LENGTH_LONG).show();
}
}