Proyectos de Subversion Android Microlearning

Rev

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

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