Skip to content

Instantly share code, notes, and snippets.

@chnouman
Created October 17, 2017 09:53

Revisions

  1. chnouman created this gist Oct 17, 2017.
    413 changes: 413 additions & 0 deletions DialogCustom.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,413 @@
    package com.dixeam.millionarequotes.dialogBoxes;



    import android.annotation.SuppressLint;
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.app.DialogFragment;
    import android.app.ProgressDialog;
    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.graphics.PorterDuff;
    import android.graphics.drawable.Drawable;
    import android.os.Build;
    import android.os.Bundle;
    import android.support.v4.content.ContextCompat;

    import android.support.v7.widget.AppCompatButton;

    import android.text.TextUtils;
    import android.util.Log;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.Toast;

    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.StringRequest;
    import com.android.volley.toolbox.Volley;
    import com.dixeam.millionarequotes.Activities.ActivitiesContainer;
    import com.dixeam.millionarequotes.R;
    import com.dixeam.millionarequotes.dialogBoxes.SignUpDialog;
    import com.dixeam.millionarequotes.listeners.MainActivityLoginCallback;
    import com.dixeam.millionarequotes.notifications.MainActivity;
    import com.dixeam.millionarequotes.utils.StaticVariables;
    import com.dixeam.millionarequotes.Activities.SplashScreen;
    import com.google.android.gms.auth.api.Auth;
    import com.google.android.gms.common.api.GoogleApiClient;

    import com.google.firebase.crash.FirebaseCrash;


    import org.json.JSONException;
    import org.json.JSONObject;

    import java.util.HashMap;
    import java.util.Map;

    ;

    /**
    * Created by NoumanCh on 2/16/2017.
    */

    public class DialogCustom extends DialogFragment /*GoogleSign.InfoLoginGoogleCallback,*/ {

    Button signin_btn;
    TextView dontHaveAcView,emailView,passwordView ;
    int indicatorForGmailFb=0;
    SignUpDialog dialogSignUp;
    String email,password,phot,fname,lname;
    Button facebook_sign_in_button;
    private GoogleApiClient mGoogleApiClient;
    private static final int RC_SIGN_IN = 007;


    MainActivityLoginCallback mainActivityLoginCallback;
    public DialogCustom(){

    }
    @SuppressLint("ValidFragment")
    public DialogCustom(MainActivityLoginCallback callback){
    mainActivityLoginCallback = callback;
    }
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
    super.onCreateDialog(savedInstanceState);
    LayoutInflater inflater ;
    View view;
    inflater = getActivity().getLayoutInflater();
    view = inflater.inflate(R.layout.custom_dialog_layout,null);
    facebook_sign_in_button = (Button) view.findViewById(R.id.facebook_sign_in_button);



    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());


    emailView = (TextView) view.findViewById(R.id.username);
    passwordView = (TextView) view.findViewById(R.id.password);

    signin_btn = (Button) view.findViewById(R.id.signin_btn);
    dontHaveAcView = (TextView) view.findViewById(R.id.dont);
    dontHaveAcView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    dontHaveAccount(v);
    }
    });

    Button closeBtn = (Button) view.findViewById(R.id.close_dialog_btn);
    Button termsBtn = (Button) view.findViewById(R.id.terms_dialog_btn);
    closeBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    dismiss();
    }
    });
    termsBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Intent i = new Intent(getActivity(),ActivitiesContainer.class);
    i.putExtra("comeFrom","about");
    startActivity(i);
    dismiss();

    }
    });
    builder.setView(view);

    signin_btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    if (!StaticVariables.isNetworkAvailable(getActivity())){
    Toast.makeText(getActivity(), "Internet is not connected", Toast.LENGTH_SHORT).show();
    return;
    }
    email = emailView.getText().toString();
    password = passwordView.getText().toString();
    if (TextUtils.isEmpty(email) || TextUtils.isEmpty(password)){
    Toast.makeText(getActivity(), "Enter Data First", Toast.LENGTH_SHORT).show();
    return;
    }
    lname = "";
    fname = "";
    phot = "";
    Log.i("data","email = "+email);
    Log.i("data","pass = "+password);
    try{
    makeSignIN(getActivity());
    }catch (Exception e){
    Log.wtf("ErrorApp", "onClick: "+e.getMessage());
    }
    }
    });
    return builder.create();
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    }

    // EVENT CLICK BUTTON SIMPLE
    public void loginButtonGoogle (View view) {

    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, RC_SIGN_IN);
    //googleSign.signIn();
    }

    public void loginButtonFacebook (View view) {



    }

    // LISTNER GOOGLE SIGN-IN

    /*
    //when login with gmail
    @Override
    public void getInfoLoginGoogle(GoogleSignInAccount account) {
    Log.w("LOG","Name "+account.getDisplayName());
    Log.v("LOG","Email " + account.getEmail());
    Log.v("LOG","Photo "+account.getPhotoUrl());
    fname = account.getDisplayName();
    lname = account.getDisplayName();
    if (account.getPhotoUrl()!=null && !account.getPhotoUrl().equals("")){
    phot = account.getPhotoUrl().toString();
    }
    password ="";
    Toast.makeText(getActivity(), "Login Succcessfully as "*//*+account.getDisplayName()*//*, Toast.LENGTH_SHORT).show();
    Toast.makeText(getActivity(), "indi = "+indicatorForGmailFb, Toast.LENGTH_SHORT).show();
    indicatorForGmailFb = 1;
    makeSignIN(getActivity());
    }*/

    /* @Override
    public void connectionFailedApiClient(ConnectionResult connectionResult) {
    Log.e("LOG","Connection Failed API "+connectionResult.getErrorMessage());
    }
    @Override
    public void loginFailed() {
    Log.e("LOG","Login Failed");
    }*/

    // LISTNER FACEBOOK SIGN-IN
    /*
    @Override
    public void getInfoFace(String id, String _name, String _email, String _photo) {
    Log.w("LOG","Name "+_name);
    Log.w("LOG","Email "+_email);
    Log.w("LOG","Photo "+_photo);
    fname = _name;
    lname = _name;
    email = _email;
    password = "";
    if (_photo!=null && !_photo.equals("")){
    phot = _photo;
    }
    password ="";
    indicatorForGmailFb = 1;
    makeSignIN(getActivity());
    }
    */

    /* @Override
    public void cancelLoginFace() {
    Log.e("LOG","Login cancel");
    }
    @Override
    public void erroLoginFace(FacebookException e) {
    Log.e("LOG","Erro Login Face "+e.getMessage());
    }
    public void setValues(GoogleSign googleSign, FacebookSign facebookSign) {
    this.googleSign = googleSign;
    this.facebookSign = facebookSign;
    }*/


    //mnethod for dont have account\
    public void dontHaveAccount(View v){
    // close this one and propagate the new signup viwe
    dismiss();
    dialogSignUp = new SignUpDialog();
    dialogSignUp.show(getFragmentManager(),"");

    }

    //method for sign in
    public void makeSignIN(Context context) {
    // Toast.makeText(context, "ind = "+indicatorForGmailFb, Toast.LENGTH_SHORT).show();

    final ProgressDialog progressDialog = new ProgressDialog(getActivity()) ;
    progressDialog.setMessage("Please wait...");
    progressDialog.setIndeterminate(true);
    progressDialog.setCancelable(false);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
    Drawable drawable = new ProgressBar(getActivity()).getIndeterminateDrawable().mutate();
    drawable.setColorFilter(ContextCompat.getColor(getActivity(), R.color.colorAccent),
    PorterDuff.Mode.SRC_IN);
    progressDialog.setIndeterminateDrawable(drawable);
    }
    progressDialog.show();

    String url="";
    if (indicatorForGmailFb == 0) {
    url = getResources().getString(R.string.sign_url);
    }
    else if(indicatorForGmailFb==1){

    url = getResources().getString(R.string.sign_gf);
    }
    //"http://10.0.3.2/DB/Assignment/TestApi.php"
    Log.i("Url become ",url);
    StringRequest stringRequest = new StringRequest(Request.Method.POST, url,
    new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
    Log.i("RESPONSE of signup",""+response);
    // TastyToast.makeText(ReportActivity.this,"response "+response,TastyToast.LENGTH_SHORT).show();
    try {
    JSONObject array = new JSONObject(response);

    boolean err = array.getBoolean("flag");


    if(err){
    Toast.makeText(getActivity(),"sign sucessfully",Toast.LENGTH_SHORT).show();

    String userId = array.getString("userid");
    String token = array.getString("token");
    Log.i("data is",userId+token+"");
    StaticVariables.setCurrentUserId(userId);
    StaticVariables.TOKEN=token;
    dismiss();

    // StaticVariables.setCurrentUserToken(token);
    saveToPreferences(getActivity(),userId,token);
    Log.i("Token","at login token is"+token);
    progressDialog.dismiss();
    indicatorForGmailFb = 0;
    saveToPreferences(getActivity(),userId,token);
    Log.i("Token","at login token is"+token);
    progressDialog.dismiss();
    indicatorForGmailFb = 0;
    mainActivityLoginCallback.onLoginSucess();
    dismiss();
    return;
    }else {
    String msg = array.getString("msg");
    Toast.makeText(getActivity(),""+msg, Toast.LENGTH_SHORT).show();
    progressDialog.dismiss();
    indicatorForGmailFb = 0;
    }



    } catch (JSONException e) {
    FirebaseCrash.report(e);
    Toast.makeText(getActivity(), "Error " , Toast.LENGTH_SHORT).show();
    progressDialog.dismiss();
    mainActivityLoginCallback.onLoginFail();
    dismiss();
    e.printStackTrace();
    indicatorForGmailFb = 0;
    }catch (Exception e){
    FirebaseCrash.report(e);
    Toast.makeText(getActivity(), "Error " , Toast.LENGTH_SHORT).show();
    progressDialog.dismiss();
    Toast.makeText(getActivity(), "Error", Toast.LENGTH_SHORT).show();
    indicatorForGmailFb = 0;
    mainActivityLoginCallback.onLoginFail();
    dismiss();
    }

    }
    },
    new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {


    Toast.makeText(getActivity(),"Internet is Not working correctly "+error.getMessage(),Toast.LENGTH_LONG).show();
    progressDialog.dismiss();
    FirebaseCrash.report(error);
    Toast.makeText(getActivity(),"Internet is Not working correctly ",Toast.LENGTH_LONG).show();
    progressDialog.dismiss();
    mainActivityLoginCallback.onLoginFail();
    dismiss();

    }
    }){
    @Override
    protected Map<String,String> getParams(){
    Map<String,String> params = new HashMap<String, String>();
    if (indicatorForGmailFb == 0 ){
    params.put("email", email);
    params.put("password", password);

    }else{
    //for social
    params.put("email", email);
    params.put("first_name", fname);
    //System.out.println("string is "+encoded_string);
    // params.put("last_name",lname);
    if (phot.equals("")){

    params.put("image","no-image");
    }else
    params.put("image",phot);
    }




    return params;
    }

    };
    RequestQueue requestQueue = Volley.newRequestQueue(getActivity());
    requestQueue.add(stringRequest);
    return ;

    }

    //methdo to save userid and token to sharedPrteference
    public static void saveToPreferences(Context context,String id,String token){
    Log.i("Info ","user id is "+id+" token is "+token);
    SharedPreferences sharedPreferences = context.getSharedPreferences("SavedData",Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(StaticVariables.KEY_FOR_USER_ID,id);
    editor.putString(StaticVariables.KEY_FOR_USER_TOKEN,token);
    editor.putBoolean(StaticVariables.KEY_FOR_LOGIN_INDICATOR,true);


    editor.commit();
    Log.i("INFORMATNIO","Tokenis "+sharedPreferences.getString(StaticVariables.KEY_FOR_USER_TOKEN,""));
    Log.i("INFORMATNIO","key for uesr id is "+sharedPreferences.getString(StaticVariables.KEY_FOR_USER_ID,""));
    Log.i("INFORMATNIO","key for uesr id is "+sharedPreferences.getBoolean(StaticVariables.KEY_FOR_LOGIN_INDICATOR,false));
    Log.i("INFORMATNIO","DATA OF USERID & USERTOKEN SAVED TO PREFERENCES");
    SplashScreen.extractFromPreferenpoces(context);
    }
    }