Proyectos de Subversion Android Microlearning - Nuevo Interface

Rev

Rev 12 | Rev 21 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

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