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(); } } }
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()); //개인정보취급방침 미리 읽어온다. } }
//툴바 선택시 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)); }
//--------------------------------------------------------------------- // 오프라인 모드 여부 (서버 통신 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(); }
//--------------------------------------------------------------------- // 기계학습 요청 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(); }