예제 #1
0
        private void WelcomeActivity_OnCategorizeComplete(object sender, EventArgs e)
        {
            CategorizeEventArgs resultArgs = e as CategorizeEventArgs;
            bool   isSucceed = false;
            string toastMsg  = string.Empty;

            //프로그레스바 숨기기
            _Screens[(int)WELCOME_SCREEN.CATEGORIZE].ProgressBarViewStates = ViewStates.Invisible;
            RunOnUiThread(() => { _ViewPager.Adapter.NotifyDataSetChanged(); });

            switch (resultArgs.Result)
            {
            case (int)CategorizeEventArgs.RESULT.EXIST:
                toastMsg  = "메시지 분류가 이미 되어있습니다.";
                isSucceed = true;
                break;

            case (int)CategorizeEventArgs.RESULT.SUCCESS:
                toastMsg  = "메시지 분류가 완료되었습니다.";
                isSucceed = true;
                break;

            case (int)CategorizeEventArgs.RESULT.EMPTY:
                toastMsg  = "분류할 메시지가 없습니다.";
                isSucceed = true;
                break;

            case (int)CategorizeEventArgs.RESULT.FAIL:
                toastMsg  = "메시지 분류에 실패했습니다.";
                isSucceed = false;
                break;

            case (int)CategorizeEventArgs.RESULT.NETWORKFAIL:
                toastMsg  = "인터넷에 연결하신 후 시도해주시기 바랍니다.";
                isSucceed = false;
                break;
            }

            RunOnUiThread(() => { Toast.MakeText(this, toastMsg, ToastLength.Short).Show(); });

            if (isSucceed == false)
            {
                ShowRetryDialog();
            }
            else
            {
                if (DataStorageManager.LoadBoolData(Application.Context, "useOfflineMode", false))
                {
                    //오프라인 분석이 끝나면 화면 종료.
                    DataStorageManager.SaveBoolData(this, "isFirst", false);                                            //isFirst 해제
                    DataStorageManager.SaveBoolData(this, "supportMachineLearning", false);                             //기계학습 지원 비승인
                    Finish();                                                                                           //오프라인 모드를 사용하므로, 기계학습페이지를 표시하지 않고 바로 WelcomeActivity 종료
                }
                else
                {
                    //온라인 분석이 끝나면 다음 화면으로 이동.
                    MoveToNextScreen();
                }
            }
        }
예제 #2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.WelcomeActivity);

            //뷰페이저 설정
            _ViewPager = FindViewById <NonSwipeableViewPager>(Resource.Id.wa_viewpager);
            _NextBtn   = FindViewById <Button>(Resource.Id.wa_nextBtn);

            WelcomeScreenAdapter adapter = new WelcomeScreenAdapter(this, _Screens);

            _ViewPager.Adapter = adapter;
            _NextBtn.Click    += _NextBtn_Click;

            //처음이 아닌 경우
            _IsFirst = DataStorageManager.LoadBoolData(this, "isFirst", true);
            if (_IsFirst == false)
            {
                //기본 패키지로 되어있는가?
                if (PackageName.Equals(Telephony.Sms.GetDefaultSmsPackage(this)))
                {
                    _IsDefaultPackage = true;
                }

                _NeedRecategorize = DataStorageManager.LoadBoolData(this, "needRecategorize", false);

                //권한이 있는가?
                if (PermissionManager.HasPermission(this, PermissionManager.essentialPermissions))
                {
                    ;
                }
                _HasPermission = true;

                if (_IsDefaultPackage == false)                                                         //기본 패키지가 아니라면, 기본앱 설정 페이지로 이동.
                {
                    _ViewPager.SetCurrentItem((int)WELCOME_SCREEN.PACKAGE, false);
                }
                else if (_HasPermission == false)                                                       //권한이 없다면, 권한페이지로 이동.
                {
                    _ViewPager.SetCurrentItem((int)WELCOME_SCREEN.PERMISSION, false);
                }
                else if (_NeedRecategorize == true)
                {
                    _MessageDBLoadTsk = Task.Run(() => LoadMessageDBAsync());                               //미리 메시지 로드
                    _ViewPager.SetCurrentItem((int)WELCOME_SCREEN.CATEGORIZE, false);
                    DataStorageManager.SaveBoolData(this, "needRecategorize", false);
                }
                else                                                                                    //이미 설정 다되있으면 피니쉬
                {
                    Finish();
                }
            }
            else
            {
                _CreatePrivacyDialogTsk = Task.Run(() => CreatePrivacyDialog());                        //개인정보취급방침 미리 읽어온다.
            }
        }
예제 #3
0
 //툴바 선택시
 public override bool OnOptionsItemSelected(IMenuItem item)
 {
     if (item.ItemId == Resource.Id.toolbar_search)
     {
         RunOnUiThread(() => { Toast.MakeText(this, "준비중인 기능입니다.", ToastLength.Short).Show(); });
     }
     else if (item.ItemId == Resource.Id.toolbar_recategorize)
     {
         DataStorageManager.SaveBoolData(this, "needRecategorize", true);
         LableDBManager.Get().Drop();
         StartActivityForResult(typeof(WelcomeActivity), REQUEST_RECATEGORIZE_COMPLETE);
     }
     else
     {
         RunOnUiThread(() => { Toast.MakeText(this, "준비중인 기능입니다.", ToastLength.Short).Show(); });
     }
     return(base.OnOptionsItemSelected(item));
 }
예제 #4
0
        //---------------------------------------------------------------------
        // 오프라인 모드 여부 (서버 통신 X)
        private void AskOfflineMode()
        {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.SetCancelable(false);
            builder.SetTitle("온라인 모드를 사용하시겠습니까?");
            builder.SetMessage("아니오를 누르시면 문자를 서버로 전송하지 않습니다.\n대신 문자 분류 정확성이 떨어지게 됩니다.");
            builder.SetPositiveButton("예", (senderAlert2, args2) =>
            {
                //온라인 모드이므로, 온라인 카테고리 분류 실행.
                DataStorageManager.SaveBoolData(this, "useOfflineMode", false);                         //오프라인 모드 사용하지 않음.
                Categorize();
            });
            builder.SetNegativeButton("아니오", (senderAlert2, args2) =>
            {
                DataStorageManager.SaveBoolData(this, "useOfflineMode", true);                        //오프라인 모드 사용
                Categorize();
            });
            Dialog dialog2 = builder.Create();

            dialog2.Show();
        }
예제 #5
0
        //---------------------------------------------------------------------
        // 기계학습 요청

        private void AskMachineSupport()
        {
            AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
            builder2.SetCancelable(false);
            builder2.SetTitle("기계학습 지원 요청");
            builder2.SetMessage("기계학습 지원을 하시겠습니까?");
            builder2.SetPositiveButton("예", (senderAlert2, args2) =>
            {
                DataStorageManager.SaveBoolData(this, "isFirst", false);                                      //isFirst 해제
                DataStorageManager.SaveBoolData(this, "supportMachineLearning", true);                        //기계학습 지원 승인
                Finish();                                                                                     //Welecome Activity 종료
            });
            builder2.SetNegativeButton("아니오", (senderAlert2, args2) =>
            {
                DataStorageManager.SaveBoolData(this, "isFirst", false);                                        //isFirst 해제
                DataStorageManager.SaveBoolData(this, "supportMachineLearning", false);                         //기계학습 지원 비승인
                Finish();
            });
            Dialog dialog2 = builder2.Create();

            dialog2.Show();
        }