Proyectos de Subversion Android Microlearning - Inconcert

Rev

Rev 18 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 gabriel 1
package com.cesams.twogetskills.inconcert.fragment;
2
 
3
import android.content.Context;
4
import android.content.Intent;
5
import android.net.Uri;
6
import android.os.Bundle;
7
 
8
import androidx.annotation.NonNull;
9
import androidx.annotation.Nullable;
10
import androidx.fragment.app.Fragment;
11
import androidx.lifecycle.LifecycleOwner;
12
 
8 gabriel 13
import android.provider.Settings;
1 gabriel 14
import android.text.TextUtils;
15
import android.util.Log;
16
import android.view.KeyEvent;
17
import android.view.LayoutInflater;
18
import android.view.Menu;
19
import android.view.MenuInflater;
20
import android.view.View;
21
import android.view.ViewGroup;
22
import android.view.inputmethod.EditorInfo;
23
import android.view.inputmethod.InputMethodManager;
24
import android.widget.Button;
25
import android.widget.EditText;
26
import android.widget.ProgressBar;
27
import android.widget.TextView;
28
import android.widget.Toast;
29
 
30
import com.cesams.twogetskills.inconcert.Configuration;
31
import com.cesams.twogetskills.inconcert.Constants;
32
import com.cesams.twogetskills.inconcert.R;
33
import com.cesams.twogetskills.inconcert.dao.NotificationCenterDao;
34
import com.cesams.twogetskills.inconcert.dao.SyncDao;
35
import com.cesams.twogetskills.inconcert.library.AesCipher;
36
import com.cesams.twogetskills.inconcert.library.Functions;
37
import com.cesams.twogetskills.inconcert.library.Http;
38
import com.cesams.twogetskills.inconcert.entity.Sync;
39
import com.cesams.twogetskills.inconcert.entity.UserLog;
40
import com.cesams.twogetskills.inconcert.preference.Preference;
41
import com.cesams.twogetskills.inconcert.skeleton.ITwoGetSkills;
42
 
43
import org.json.JSONException;
44
import org.json.JSONObject;
45
 
46
import java.io.IOException;
47
import java.text.SimpleDateFormat;
48
import java.util.Calendar;
49
import java.util.Date;
8 gabriel 50
import java.util.Objects;
51
import java.util.concurrent.Executor;
1 gabriel 52
 
53
import okhttp3.Call;
54
import okhttp3.Callback;
55
import okhttp3.FormBody;
56
import okhttp3.OkHttpClient;
57
import okhttp3.Request;
58
import okhttp3.RequestBody;
59
import okhttp3.Response;
60
 
61
 
62
public class SigninFragment extends Fragment implements LifecycleOwner  {
63
    //implements ITaskCallback {
64
    private final static String TAG = "C2GS - SigninFragment";
65
    private ITwoGetSkills iTwoGetSkills;
66
    private EditText mEditTextEmail;
67
    private EditText mEditTextPassword;
68
    private boolean inProgress = false;
69
    private Button mButtonSignIn;
70
    private Button mButtonSignUp;
71
    private ProgressBar mProgressBar;
72
    String dateOn;
73
 
74
    @Override
75
    public void onCreate(@Nullable Bundle savedInstanceState) {
76
        super.onCreate(savedInstanceState);
77
        setHasOptionsMenu(true);
78
 
79
 
80
    }
81
 
82
    @Override
83
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
84
        super.onCreateOptionsMenu(menu, inflater);
85
        menu.clear();
86
    }
87
 
88
 
89
    @Override
90
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
91
        super.onViewCreated(view, savedInstanceState);
92
        iTwoGetSkills = (ITwoGetSkills) getActivity();
93
        mProgressBar = (ProgressBar) getView().findViewById(R.id.signin_progress_bar);
94
        mEditTextEmail = (EditText) getView().findViewById(R.id.signin_edittext_email);
95
        //mEditTextEmail.setText("santiago.olivera@leaderslinked.com");
96
        //mEditTextEmail.setText("efrain.yanez@leaderslinked.com");
97
        //mEditTextEmail.setText("snof@adinet.com.uy");
98
        //mEditTextEmail.setText("mmarrugo@coosalud.com");
99
        //mEditTextEmail.setText("daniela.lara@mdsmexico.com");
100
 
101
 
8 gabriel 102
 
1 gabriel 103
        mEditTextEmail.setOnEditorActionListener(new TextView.OnEditorActionListener() {
104
            @Override
105
            public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
106
                mEditTextPassword.requestFocus();
107
                return true;
108
            }
109
        });
110
 
111
        mEditTextPassword = (EditText) getView().findViewById(R.id.signin_edittext_password);
112
        //mEditTextPassword.setText("Cesa2020");
113
        //mEditTextPassword.setText("Aalmiron2021");
114
        //mEditTextPassword.setText("Mmarrugo2021");
115
        //mEditTextPassword.setText("Cesa2020*");
116
        mEditTextPassword.setOnEditorActionListener(new TextView.OnEditorActionListener() {
117
            @Override
118
            public boolean onEditorAction(TextView textView, int id, KeyEvent keyEvent) {
119
                if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
120
                    attemptLogin();
121
                    return true;
122
                }
123
                return false;
124
            }
125
        });
126
 
127
        mButtonSignIn = (Button) getView().findViewById(R.id.signin_button_sign_in);
128
        mButtonSignIn.setOnClickListener(new View.OnClickListener() {
129
            @Override
130
            public void onClick(View view) {
131
 
132
                //Ocultar el teclado al intentar inicia sesion
8 gabriel 133
                iTwoGetSkills.hideKeyboard(view);
1 gabriel 134
 
135
                attemptLogin();
136
            }
137
        });
138
 
139
 
140
        //
141
 
142
        mButtonSignUp = (Button) getView().findViewById(R.id.signin_button_sign_up);
143
        mButtonSignUp.setOnClickListener(new View.OnClickListener() {
144
            @Override
145
            public void onClick(View view) {
146
                Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://leaderslinked.com/signup"));
147
                try{
148
                    startActivity(browserIntent);
149
                }catch (Exception e)
150
                {
151
                    Toast.makeText(getContext(), "Necesitas un navegador para ver esta web", Toast.LENGTH_SHORT).show();
152
                }
153
            }
154
        });
155
 
156
        mEditTextEmail.setOnFocusChangeListener(new View.OnFocusChangeListener() {
157
            @Override
158
            public void onFocusChange(View v, boolean hasFocus) {
159
                if(!hasFocus) {
8 gabriel 160
                    iTwoGetSkills.hideKeyboard(v);
1 gabriel 161
                }
162
            }
163
        });
164
 
165
 
166
    }
167
 
168
 
169
 
8 gabriel 170
 
1 gabriel 171
    private void attemptLogin() {
172
 
173
 
174
 
175
        if (inProgress) {
176
            return;
177
        }
178
 
19 efrain 179
        String deviceAes = iTwoGetSkills.getPreference().getAes();
180
        String devicePassword = iTwoGetSkills.getPreference().getPassword();
181
        if (deviceAes.isEmpty() || devicePassword.isEmpty()) {
182
 
183
            iTwoGetSkills.showMessageSnackBar("Dispositivo no registrado, intente nuevamente");
184
 
185
            SyncDao syncDao = iTwoGetSkills.getDatabase().getSyncDao();
186
            Sync sync = syncDao.selectOneByType(Constants.SYNC_ADAPTER_TYPE_DEVICE);
187
 
188
            if(sync == null) {
189
                if (!iTwoGetSkills.getPreference().getDeviceUuid().isEmpty()) {
190
                    sync = new Sync(Constants.SYNC_ADAPTER_TYPE_DEVICE, iTwoGetSkills.getPreference().getDeviceUuid());
191
                    syncDao.insert(sync);
192
                    iTwoGetSkills.registerDevice(sync);
193
                }
194
            } else {
195
                iTwoGetSkills.registerDevice(sync);
196
            }
197
 
198
            return;
199
        }
200
 
201
 
1 gabriel 202
        /*
203
        if(TextUtils.isEmpty(iTwoGetSkills.getPreference().getAes())) {
204
            iTwoGetSkills.reloadPreference();
205
        }
206
        */
207
 
208
 
209
        mEditTextEmail.setError(null);
210
        mEditTextPassword.setError(null);
211
 
212
        String email = Functions.trimNull(mEditTextEmail.getText().toString());
213
        String password = Functions.trimNull(mEditTextPassword.getText().toString());
214
 
215
        if (TextUtils.isEmpty(email)) {
216
            mEditTextEmail.setError(getString(R.string.error_field_required));
217
            mEditTextEmail.requestFocus();
218
            return;
219
        }
220
 
221
        if (!Functions.emailcheckengine(email)) {
222
            mEditTextEmail.setError("Formato de email invalido");
223
            mEditTextEmail.requestFocus();
224
            return;
225
        }
226
 
227
        if (TextUtils.isEmpty(password)) {
228
            mEditTextPassword.setError(getString(R.string.error_field_required));
229
            mEditTextPassword.requestFocus();
230
            return;
231
        }
232
 
233
 
234
        if (!Functions.passwordStrengthCheck(password)) {
235
            mEditTextPassword.setError(getString(R.string.error_invalid_password_format));
236
            mEditTextPassword.requestFocus();
237
            return;
238
        }
239
 
240
        if(iTwoGetSkills.isConnectedInternet()) {
241
            inProgress = true;
242
 
243
 
244
            String aes = iTwoGetSkills.getPreference().getAes();
245
 
246
            mEditTextEmail.setEnabled(false);
247
            mEditTextPassword.setEnabled(false);
248
            mButtonSignUp.setEnabled(false);
249
            mButtonSignIn.setEnabled(false);
250
            iTwoGetSkills.showProgressBar();
251
 
252
            try {
253
 
19 efrain 254
                Log.d("AES", deviceAes);
1 gabriel 255
 
256
                Http http = new Http(getActivity().getCacheDir());
257
                OkHttpClient client = http.getHttpClient(false);
258
 
259
                Log.d(TAG, "URL = " + Configuration.URL_SIGNIN);
260
 
261
                RequestBody formBody = null;
19 efrain 262
              /*  if(aes.isEmpty()) {
1 gabriel 263
                    formBody = new FormBody.Builder()
264
                            .add(Constants.POST_SIGNIN_FIELD_APPLICATION_ID, String.valueOf(Configuration.APPLICATION_ID))
265
                            .add(Constants.POST_SIGNIN_FIELD_DEVICE_UUID, iTwoGetSkills.getPreference().getDeviceUuid())
266
                            .add(Constants.POST_SIGNIN_FIELD_EMAIL, email)
267
                            .add(Constants.POST_SIGNIN_FIELD_PASSWORD, password)
268
                            .add(Constants.POST_SIGNIN_FIELD_DEVICE_ENCRYPTER, "") //Constants.SIGNIN_ENCRYPTER)
269
                            .build();
19 efrain 270
                } else {*/
271
                    AesCipher encryptedEmail    = AesCipher.encrypt(deviceAes, email);
272
                    AesCipher encryptedPassword = AesCipher.encrypt(deviceAes, password);
1 gabriel 273
 
274
                    formBody = new FormBody.Builder()
275
                            .add(Constants.POST_SIGNIN_FIELD_APPLICATION_ID, String.valueOf(Configuration.APPLICATION_ID))
18 efrain 276
                            .add(Constants.POST_SIGNIN_FIELD_VARIANT_ID, String.valueOf(Configuration.VARIANT_ID))
1 gabriel 277
                            .add(Constants.POST_SIGNIN_FIELD_DEVICE_UUID, iTwoGetSkills.getPreference().getDeviceUuid())
278
                            .add(Constants.POST_SIGNIN_FIELD_EMAIL, encryptedEmail.getData())
279
                            .add(Constants.POST_SIGNIN_FIELD_PASSWORD, encryptedPassword.getData())
280
                            .add(Constants.POST_SIGNIN_FIELD_DEVICE_ENCRYPTER, Constants.SIGNIN_ENCRYPTER)
281
                            .build();
19 efrain 282
               // }
1 gabriel 283
 
284
 
285
 
286
 
287
 
288
 
289
                Request request = new Request.Builder()
290
                        .url(Configuration.URL_SIGNIN)
291
                        .post(formBody)
292
                        .build();
293
 
294
                Call call = client.newCall(request);
295
 
296
                call.enqueue(new Callback() {
297
                    public void onResponse(Call call, Response response)
298
                            throws IOException {
299
 
300
                        processResponseServer(response.body().string());
301
                        iTwoGetSkills.hideProgressBar();
302
                        getActivity().runOnUiThread(new Runnable() {
303
 
304
                            @Override
305
                            public void run() {
306
                                mButtonSignIn.setEnabled(true);
307
                                mButtonSignUp.setEnabled(true);
308
                                mEditTextEmail.setEnabled(true);
309
                                mEditTextPassword.setEnabled(true);
310
                                inProgress = false;
311
                            }
312
 
313
                        });
314
 
315
                    }
316
 
317
                    public void onFailure(Call call, IOException e) {
318
                        Log.d(TAG, "Error :  " +  e.getMessage());
319
                        iTwoGetSkills.hideProgressBar();
320
                        getActivity().runOnUiThread(new Runnable() {
321
 
322
                            @Override
323
                            public void run() {
324
                                mButtonSignIn.setEnabled(true);
325
                                mButtonSignUp.setEnabled(true);
326
                                mEditTextEmail.setEnabled(true);
327
                                mEditTextPassword.setEnabled(true);
328
                                inProgress = false;
329
                            }
330
                        });
331
 
332
 
333
 
334
 
335
                    }
336
                });
337
 
338
            } catch (Exception e) {
339
                iTwoGetSkills.showMessageSnackBar(e.getMessage());
340
            } finally {
341
 
342
            }
343
 
344
 
345
        }
346
    }
347
 
348
    private boolean isPasswordValid(String password) {
349
        //TODO: Replace this with your own logic
350
        return password.length() > 5;
351
    }
352
 
353
    private void processResponseServer(String dataString) {
354
        boolean success = false;
355
        boolean fatal = false;
356
        String message = "";
357
 
358
        mProgressBar.setVisibility(View.INVISIBLE);
359
 
360
        try {
361
            JSONObject objData = new JSONObject(dataString);
362
            success = objData.has("success") ? objData.getBoolean("success")  : false;
363
            if(objData.has("data")) {
364
                Object item = objData.get("data");
365
                if (item instanceof String) {
366
                    message = (String) item;
367
                }
368
                fatal = objData.has("fatal");
369
            }
370
 
371
            if(success) {
372
                JSONObject data = objData.getJSONObject("data");
373
 
374
 
375
                Calendar calendar = Calendar.getInstance();
376
                Date date = calendar.getTime();
377
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat(Constants.FORMAT_DATETIME_SERVICE);
378
                String  addedOn = simpleDateFormat.format(date);
379
 
7 gabriel 380
 
1 gabriel 381
                //Elimino antes de guardar.
382
                JSONObject objUser = data.getJSONObject("user");
383
                String userUuid = objUser.getString("uuid");
384
 
385
                iTwoGetSkills.getDatabase().getAnswerDao().removeAll();
386
                iTwoGetSkills.getDatabase().getQuestionDao().removeAll();
387
                iTwoGetSkills.getDatabase().getQuizDao().removeAll();
388
                iTwoGetSkills.getDatabase().getSlideDao().removeAll();
389
                iTwoGetSkills.getDatabase().getCapsuleDao().removeAll();
390
                iTwoGetSkills.getDatabase().getTopicDao().removeAll();
391
                iTwoGetSkills.getDatabase().getUserExtendedDao().removeAll();
392
                iTwoGetSkills.getDatabase().getNotificationCenterDao().removeAllnotifications();
393
                iTwoGetSkills.getDatabase().getProgressDao().removeAllUserUuidNotEqual(userUuid);
394
                iTwoGetSkills.getDatabase().getUserLogDao().removeAllUserUuidNotEqual(userUuid);
395
                iTwoGetSkills.syncFromServer(data);
396
 
397
 
398
                Preference preference = iTwoGetSkills.getPreference();
399
                preference.setUserUuid(userUuid);
400
                preference.setFirstName(objUser.getString("first_name"));
401
                preference.setLastName(objUser.getString("last_name"));
402
                preference.setEmail(objUser.getString("email"));
403
                preference.setImage(objUser.getString("image"));
404
                preference.setLastDataRefresh(addedOn);
405
 
406
                JSONObject objDevice = data.getJSONObject("device");
407
                preference.setAes(objDevice.getString("aes"));
408
                preference.setPassword(objDevice.getString("password"));
409
                preference.save();
410
 
411
                getActivity().runOnUiThread(() -> {
412
 
12 gabriel 413
                    /* LOGICA PARA BIOMETRICO
8 gabriel 414
                    if(iTwoGetSkills.getPreference().getBiometricLogin())
415
                    {
416
                        iTwoGetSkills.showNavigationAndToolbar();
417
                        iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_WELCOME);
418
                    }
419
                    else {
420
                        iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_BIOMETRIC);
12 gabriel 421
                    }*/
422
                    iTwoGetSkills.showNavigationAndToolbar();
18 efrain 423
                    iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_MY_CAPSULES);
1 gabriel 424
                });
425
 
426
 
427
                UserLog userLog = new UserLog();
428
                userLog.setUserUuid(preference.getUserUuid());
429
                userLog.setActivity(Constants.USER_LOG_ACTIVITY_SIGNIN);
430
                userLog.setAddedOn(addedOn);
431
                JSONObject json = userLog.toJson();
432
                json.put(Constants.SYNC_ADAPTER_DATA_TYPE_FIELD_NAME, Constants.SYNC_ADAPTER_DATA_TYPE_USER_LOG);
433
 
434
                Sync sync = new Sync(Constants.SYNC_ADAPTER_TYPE_SYNC, json.toString());
435
 
436
                SyncDao syncDao = iTwoGetSkills.getDatabase().getSyncDao();
437
                syncDao.insert(sync);
438
 
439
 
7 gabriel 440
                //Notificaciones en dia para calculo de dias anteriores
441
                SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat(Constants.FORMAT_DATE_SERVICE);
442
                dateOn = simpleDateFormat2.format(date);
1 gabriel 443
 
444
 
445
 
7 gabriel 446
 
1 gabriel 447
            } else {
448
                if(!TextUtils.isEmpty(message)) {
449
 
450
                    NotificationCenterDao notificacionDao =  iTwoGetSkills.getDatabase().getNotificationCenterDao();
451
                    com.cesams.twogetskills.inconcert.entity.NotificationCenter notificacionueva;
452
                    notificacionueva = new com.cesams.twogetskills.inconcert.entity.NotificationCenter();
453
 
454
                    notificacionueva.setTitle("Nuevo contenido disponible");
455
                    notificacionueva.setDate(dateOn);
456
                    notificacionueva.setDescription(message);
7 gabriel 457
                  //  Log.e("Notificacion","a guardar"+notificacionueva);
1 gabriel 458
                    notificacionDao.insert(notificacionueva);
459
 
7 gabriel 460
 
1 gabriel 461
                    iTwoGetSkills.showMessageSnackBar(message);
462
                }
463
                if(fatal) {
464
                    iTwoGetSkills.onErrorFatal();
465
                }
466
            }
467
 
468
 
469
        } catch (JSONException e) {
470
            e.printStackTrace();
471
            Log.e(TAG,  e.getMessage());
472
        }
473
 
474
 
475
    }
476
 
477
    /*
478
    @Override
479
    public void taskCallback(HttpCommResponse httpCommResponse) {
480
        inProgress = false;
481
        mEditTextEmail.setEnabled(true);
482
        mEditTextPassword.setEnabled(true);
483
 
484
        mButtonSignIn.setEnabled(true);
485
        mProgressBar.setVisibility(View.INVISIBLE);
486
 
487
        if(httpCommResponse.isSuccess()) {
488
 
489
            AnswerDao answerDao = new AnswerDao(getActivity());
490
            answerDao.removeAll();
491
 
492
            QuestionDao questionDao = new QuestionDao(getActivity());
493
            questionDao.removeAll();
494
 
495
            QuizDao quizDao = new QuizDao(getActivity());
496
            questionDao.removeAll();
497
 
498
            SlideDao slideDao = new SlideDao(getActivity());
499
            slideDao.removeAll();
500
 
501
            CapsuleDao capsuleDao = new CapsuleDao(getActivity());
502
            capsuleDao.removeAll();
503
 
504
            TopicDao topicDao = new TopicDao(getActivity());
505
            topicDao.removeAll();
506
 
507
            CompanyDao companyDao = new CompanyDao(getActivity());
508
            companyDao.removeAll();
509
 
510
            ProgressDao progressDao = new ProgressDao(getActivity());
511
            progressDao.removeAll();
512
 
513
            UserLogDao userLogDao = new UserLogDao(getActivity());
514
 
515
            UserNotificationDao userNotificationDao = new UserNotificationDao(getActivity());
516
            userNotificationDao.removeAll();
517
 
518
            try {
519
                JSONObject objData = httpCommResponse.getObjJSON().getJSONObject("data");
520
 
521
 
522
 
523
 
524
                JSONArray arrayCapsules;
525
                JSONArray arraySlides;
526
                JSONArray arrayAnswers;
527
                JSONArray arrayQuestions;
528
                JSONArray arrayProgress;
529
                JSONArray arrayQuizzes;
530
                JSONArray arrayUserLog;
531
 
532
 
533
                JSONObject objTopic;
534
                JSONObject objCapsule;
535
                JSONObject objSlide;
536
                JSONObject objAnswer;
537
                JSONObject objQuestion;
538
                JSONObject objQuiz;
539
                JSONObject objProgress;
540
                JSONObject objUserLog;
541
                int i,j,x;
542
 
543
                arrayProgress = objData.getJSONArray("progress");
544
                for(i = 0; i <  arrayProgress.length(); i++) {
545
                    objProgress = arrayProgress.getJSONObject(i);
546
 
547
                    Progress progress = new Progress();
548
                    progress.companyUuid = objProgress.getInt("company_uuid");
549
                    progress.topicUuid = objProgress.getInt("topic_uuid");
550
                    progress.capsuleUuid = objProgress.getInt("capsule_uuid");
551
                    progress.SlideUuid = objProgress.getInt("Slide_uuid");
552
                    progress.progress = objProgress.getDouble("progress");
553
                    progress.totalSlides = objProgress.getInt("total_slides");
554
                    progress.viewSlides = objProgress.getInt("view_slides");
555
                    progress.type = objProgress.getString("type");
556
                    progress.returning = objProgress.getInt("returning");
557
                    progress.returningAfterCompleted = objProgress.getInt("returning_after_completed");
558
                    progress.completed = objProgress.getInt("completed");
559
                    progress.addedOn = objProgress.getString("added_on");
560
                    progress.updatedOn = objProgress.getString("updated_on");
561
 
562
                    progressDao.insert(progress);
563
 
564
                }
565
 
566
                arrayUserLog = objData.getJSONArray("userlog");
567
                for(i = 0; i <   arrayUserLog.length(); i++) {
568
                    objUserLog =  arrayUserLog.getJSONObject(i);
569
 
570
                    UserLog userLog = new UserLog();
571
                    userLog.companyUuid  = objUserLog.getInt("company_uuid");
572
                    userLog.topicUuid    = objUserLog.getInt("topic_uuid");
573
                    userLog.capsuleUuid  = objUserLog.getInt("capsule_uuid");
574
                    userLog.SlideUuid    = objUserLog.getInt("Slide_uuid");
575
                    userLog.activity   = objUserLog.getString("activity");
576
                    userLog.addedOn    = objUserLog.getString("added_on");
577
                    userLogDao.insert(userLog);
578
                }
579
 
580
                arrayQuizzes = objData.getJSONArray("quizzes");
581
                for(i = 0; i <  arrayQuizzes.length(); i++)
582
                {
583
                    objQuiz = arrayQuizzes.getJSONObject(i);
584
                    Quiz quiz = new Quiz();
585
                    quiz.id = objQuiz.getInt("id");
586
                    quiz.companyUuid = objQuiz.getInt("company_uuid");
587
                    quiz.name = objQuiz.getString("name");
588
                    quiz.text = objQuiz.getString("text");
589
                    quiz.points = objQuiz.getInt("points");
590
                    quiz.minimumPointsRequired  = objQuiz.getInt("minimum_points_required");
591
 
592
                    Company company =  companyDao.selectById(quiz.companyUuid);
593
                    if(company == null) {
594
                        company = new Company();
595
                        company.id = objQuiz.getInt("company_uuid");
596
                        company.name  = objQuiz.getString("company_name");
597
                        company.image = objQuiz.getString("company_image");
598
 
599
                        companyDao.insert(company);
600
                    }
601
 
602
                    quizDao.insert(quiz);
603
 
604
                    arrayQuestions = objQuiz.getJSONArray("questions");
605
                    for(j = 0; j < arrayQuestions.length(); j++) {
606
                        objQuestion = arrayQuestions.getJSONObject(j);
607
                       Question question = new Question();
608
                       question.quizId = quiz.id;
609
                       question.id = objQuestion.getInt("id");
610
                       question.text = objQuestion.getString("text");
611
                       question.type = objQuestion.getString("type");
612
                       question.points = objQuestion.getInt("points");
613
                       question.maxlength = objQuestion.getInt("maxlength");
614
 
615
                        questionDao.insert(question);
616
 
617
                        arrayAnswers = objQuestion.getJSONArray("answers");
618
                        for(x = 0; x < arrayAnswers.length(); x++)
619
                        {
620
                            objAnswer = arrayAnswers.getJSONObject(x);
621
                            Answer answer = new Answer();
622
                            answer.questionId =question.id;
623
                            answer.id = objAnswer.getInt("id");
624
                            answer.text = objAnswer.getString("text");
625
                            answer.points = objAnswer.getInt("points");
626
                            answer.position = objAnswer.getInt("position");
627
                            answer.correct = objAnswer.getString("correct");
628
 
629
                            answerDao.insert(answer);
630
                        }
631
 
632
 
633
                    }
634
                }
635
 
636
 
637
 
638
 
639
 
640
                JSONArray arrayTopics = objData.getJSONArray("topics");
641
                for(i = 0; i < arrayTopics.length(); i++)
642
                {
643
                    objTopic = arrayTopics.getJSONObject(i);
644
                    Topic topic = new Topic();
645
                    topic.id = objTopic.getInt("id");
646
                    topic.companyUuid = objTopic.getInt("company_uuid");
647
                    topic.name = objTopic.getString("name");
648
                    topic.description = objTopic.getString("description");
649
                    topic.image = objTopic.getString("image");
650
                    topic.position = objTopic.getInt("position");
651
 
652
                    Company company = companyDao.selectById(topic.companyUuid);
653
                    if(company == null) {
654
                        company = new Company();
655
                        company.id = objTopic.getInt("company_uuid");
656
                        company.name  = objTopic.getString("company_name");
657
                        company.image  = objTopic.getString("company_image");
658
 
659
                        companyDao.insert(company);
660
                    }
661
 
662
                    topicDao.insert(topic);
663
 
664
                    arrayCapsules = objTopic.getJSONArray("capsules");
665
                    for(j = 0; j < arrayCapsules.length(); j++)
666
                    {
667
                        objCapsule = arrayCapsules.getJSONObject(j);
668
                        Capsule capsule = new Capsule();
669
                        capsule.topicUuid = topic.id;
670
                        capsule.id = objCapsule.getInt("id");
671
                        capsule.name = objCapsule.getString("name");
672
                        capsule.description = objCapsule.getString("description");
673
                        capsule.image = objCapsule.getString("image");
674
                        capsule.position = objCapsule.getInt("position");
675
                        capsuleDao.insert(capsule);
676
 
677
                        arraySlides = objCapsule.getJSONArray("slides");
678
                        for( x = 0; x < arraySlides.length(); x++) {
679
                            objSlide = arraySlides.getJSONObject(x);
680
                            Slide slide = new Slide();
681
                            slide.id = objSlide.getInt("id");
682
                            slide.topicUuid = capsule.topicUuid;
683
                            slide.capsuleUuid = capsule.id;
684
                            slide.quizId = objSlide.getInt("quiz_id");
685
                            slide.name = objSlide.getString("name");
686
                            slide.description = objSlide.getString("description");
687
                            slide.position = objSlide.getInt("position");
688
                            slide.type = objSlide.getString("type");
689
                            slide.file = objSlide.getString("file");
690
                            slide.background = objSlide.getString("background");
691
 
692
                            slideDao.insert(slide);
693
                        }
694
 
695
                    }
696
 
697
 
698
                }
699
 
700
                Calendar calendar = Calendar.getInstance();
701
                Date date = calendar.getTime();
702
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat(Constants.FORMAT_DATETIME_SERVICE);
703
                String  addedOn = simpleDateFormat.format(date);
704
 
705
 
706
                UserLog userLog = new UserLog();
707
                userLog.activity = Constants.USER_LOG_ACTIVITY_SIGNIN;
708
                userLog.addedOn = addedOn;
709
 
710
              //  mSharedViewModel.insertUserLog(userLog);
711
 
712
                Preference preference = iTwoGetSkills.getPreference();
713
 
714
                JSONObject objUser = objData.getJSONObject("user");
715
                //mUser.id  =  objUser.getInt("id");
716
                preference.userId = objUser.getInt("id");
717
                preference.firstName =  objUser.getString("first_name");
718
                preference.lastName =  objUser.getString("last_name");
719
                preference.email =  objUser.getString("email");
720
                preference.image =  objUser.getString("image");
721
                preference.password =  objUser.getString("password");
722
                preference.rsaE = objUser.getInt("rsa_e");
723
                preference.rsaD = objUser.getInt("rsa_d");
724
                preference.rsaN = objUser.getInt("rsa_n");
725
                preference.save(getActivity());
726
 
727
 
728
                JSONObject json = userLog.toJson();
729
                json.put("user_id", preference.userId);
730
                json.put(Constants.SYNC_ADAPTER_DATA_TYPE_FIELD_NAME, Constants.SYNC_ADAPTER_DATA_TYPE_USER_LOG);
731
 
732
                Sync sync = new Sync();
733
                sync.type = Constants.SYNC_ADAPTER_TYPE_SYNC;
734
                sync.data = json.toString();
735
 
736
                SyncDao syncDao = new SyncDao(getActivity());
737
                syncDao.insert(sync);
738
                syncDao.close();
739
 
740
                iTwoGetSkills.reloadNavHeader();
741
                iTwoGetSkills.invokeFragment(Constants.IDX_FRAGMENT_TOPICS);
742
 
743
            } catch (JSONException e) {
744
                iTwoGetSkills.showMessageSnackBar(e.getMessage());
745
            }
746
 
747
            answerDao.close();
748
            questionDao.close();
749
            questionDao.close();
750
            slideDao.close();
751
            capsuleDao.close();
752
            topicDao.close();
753
            companyDao.close();
754
            progressDao.close();
755
            userLogDao.close();
756
            userNotificationDao.close();
757
 
758
 
759
        } else {
760
            iTwoGetSkills.showMessageSnackBar(httpCommResponse.getMessage());
761
            if(httpCommResponse.isFatal()) {
762
                iTwoGetSkills.onErrorFatal();
763
            }
764
        }
765
    }
766
 
767
     */
768
 
769
    @Override
770
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
771
                             Bundle savedInstanceState) {
772
        // Inflate the layout for this fragment
773
        return inflater.inflate(R.layout.fragment_signin, container, false);
774
    }
775
}