새로운 미니 창 뜨게 하는 showAlertDialog() 함수

- showAlerDialog 함수
    private void showAlertDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setCancelable(true);
        builder.setTitle("로그아웃");
        builder.setMessage("정말 로그아웃 하시겠습니까?");
        builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            }
        });
        builder.setNegativeButton("NO", null);
        builder.show();
    }
- 토큰을 가지고 있는 유저가 로그아웃 하는 로직 추가하기 _retrofit2 사용
    private void showAlertDialog() {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setCancelable(true);
        builder.setTitle("로그아웃");
        builder.setMessage("정말 로그아웃 하시겠습니까?");
        builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 로그아웃 API 호출하기
                // 1.
                Retrofit retrofit = NetworkClient.getRetrofitClient(MainActivity.this);
                // 2.
                UserApi api = retrofit.create(UserApi.class);
                // 3. 위에서 가져 온 토큰이 있기 때문에, 그것을 사용한다.
                Call<UserRes> call = api.logout("Bearer " + token);
                // 4.
                call.enqueue(new Callback<UserRes>() {
                    @Override
                    public void onResponse(Call<UserRes> call, Response<UserRes> response) {
                        if(response.isSuccessful()){
                            // 토큰 사용하지 않으니까 삭제한다.
                            SharedPreferences sp = getSharedPreferences(Config.SP_NAME, MODE_PRIVATE);
                            SharedPreferences.Editor editor = sp.edit();
                            editor.putString("token", "");
                            editor.commit();
                            Intent intent = new Intent(MainActivity.this, LoginActivity.class);
                            startActivity(intent);
                            finish();
                            return;
                        }else {
                            Toast.makeText(MainActivity.this, "로그아웃에 실패했습니다.", Toast.LENGTH_SHORT).show();
                        }
                    }
                    @Override
                    public void onFailure(Call<UserRes> call, Throwable throwable) {
                    }
                });
            }
        });
        builder.setNegativeButton("NO", null);
        builder.show();'Android Studio' 카테고리의 다른 글
| [Android Studio] 시간 데이터를 자바 UTC에서 로컬 타임으로 변환 _SimpleDateFormat (2) | 2024.06.14 | 
|---|---|
| [Android Studio] 액션바 만들고, 해당 엑티비티에서 액션바 보이게 만드는 함수 _onCreateOptionsMenu(Menu menu) (2) | 2024.06.14 | 
| [Android Studio] 네트워크 라이브러리 _ Retrofit2 라이브러리 사용을 위한 설정 (0) | 2024.06.13 | 
| [Android Studio] 텍스트에 원하는 설정하기 _ 밑줄 (1) | 2024.06.13 | 
| [Android Studio] 진행상태를 표시하는 함수 _Dialog를 이용한 progress (0) | 2024.06.13 | 
 
                    
                   
                    
                  