package in.co.praveenkumar.mdroid.fragment;
import in.co.praveenkumar.R;
import in.co.praveenkumar.mdroid.helper.ApplicationClass;
import in.co.praveenkumar.mdroid.helper.FormValidate;
import in.co.praveenkumar.mdroid.helper.Param;
import in.co.praveenkumar.mdroid.task.LoginTask;
import in.co.praveenkumar.mdroid.view.LoginStatusViewHolder;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class ParanoidLoginFragment extends Fragment {
EditText tokenET;
EditText murlET;
LoginStatusViewHolder progressViews = new LoginStatusViewHolder();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.frag_login_paranoid,
container, false);
setUpWidgets(rootView);
progressViews.loginButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// Send a tracker event
((ApplicationClass) getActivity().getApplication())
.sendEvent(Param.GA_EVENT_CAT_LOGIN,
Param.GA_EVENT_LOGIN_PARANOID);
doParanoidLogin();
}
});
progressViews.retryButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
tokenET.setEnabled(true);
murlET.setEnabled(true);
progressViews.loginButton.setEnabled(true);
progressViews.statusLayout.setVisibility(LinearLayout.GONE);
progressViews.loginButton.setText("Login");
}
});
// Demo setup
RelativeLayout demoButton = (RelativeLayout) rootView
.findViewById(R.id.login_demo);
demoButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
tokenET.setText("cdcd27cb862d03c3616bed2262ee5c8e");
murlET.setText("http://moodle.praveenkumar.co.in");
// Send a tracker event
((ApplicationClass) getActivity().getApplication()).sendEvent(
Param.GA_EVENT_CAT_LOGIN,
Param.GA_EVENT_LOGIN_DEMO_PARANOID);
}
});
// Help button setup
RelativeLayout helpButton = (RelativeLayout) rootView
.findViewById(R.id.login_help);
helpButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Send a tracker event
((ApplicationClass) getActivity().getApplication()).sendEvent(
Param.GA_EVENT_CAT_LOGIN,
Param.GA_EVENT_LOGIN_PARANOID_HELP);
Intent browserIntent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("http://mdroid.praveenkumar.co.in/#!faq.md#What_is_Paranoid_login?"));
startActivity(browserIntent);
}
});
return rootView;
}
private void setUpWidgets(View rootView) {
tokenET = (EditText) rootView.findViewById(R.id.login_paranoid_token);
murlET = (EditText) rootView.findViewById(R.id.login_paranoid_url);
progressViews.loginButton = (Button) rootView
.findViewById(R.id.login_paranoid_login);
// Progress views
progressViews.statusLayout = (RelativeLayout) rootView
.findViewById(R.id.login_progress_layout);
progressViews.progressTitle = (TextView) rootView
.findViewById(R.id.login_progress_title);
progressViews.progressBar = (ProgressBar) rootView
.findViewById(R.id.login_progress_progressbar);
progressViews.progressText = (TextView) rootView
.findViewById(R.id.login_progress_message);
progressViews.retryButton = (Button) rootView
.findViewById(R.id.login_progress_retry);
}
private void doParanoidLogin() {
String token = tokenET.getText().toString();
String mUrl = murlET.getText().toString();
FormValidate fv = new FormValidate();
if (!fv.valid(token, mUrl)) {
tokenET.setError(fv.getTokenError(token));
murlET.setError(fv.getUrlError(mUrl));
return;
}
new LoginTask(token, mUrl, progressViews, getActivity()).execute("");
}
}