안드로이드 sdk환경에서 유저 정보 저장하기 예제에 대한 질문 두가지

이번엔 좀 꼼꼼히 찾아보고 2~3시간정도 붙잡아보다가 질문을 남깁니다.

개발 가이드의 유저정보 저장하기 항목을 보면 다음과 같은 예제가 작성되어있습니다.

private void requestUpdateProfile() {
final Map<String, String> properties = new HashMap<String, String>();
properties.put(“nickname”, “Leo”);
properties.put(“age”, “33”);

UserManagement.getInstance().requestUpdateProfile(new UsermgmtResponseCallback<Long>() {
    @Override
    public void onSuccess(Long userId) {
        userProfile.updateUserProfile(properties);
        if (userProfile != null) {
            userProfile.saveUserToCache();
        }
        Logger.d("succeeded to update user profile" + userProfile);
    }

    @Override
    public void onNotSignedUp() {
        redirectSignupActivity(self);
    }

    @Override
    public void onFailure(ErrorResult errorResult) {
        String message = "failed to get user info. msg=" + errorResult;
        Logger.e(message);
    }

    @Override
    public void onSessionClosed(ErrorResult errorResult) {
        redirectLoginActivity(self);
    }

}, properties);

}

여기서 두가지 질문이있습니다.

1.프로퍼티값을 저장한 후에 작성되는 코드인
UserManagement.getInstance().requestUpdateProfile(new UsermgmtResponseCallback() ,properties) 에서
UsermgmtResponseCallback이 임포트 되지않고 빨간줄이 뜹니다. 이유가 무엇인가요?

  1. 1의 UsermgmtResponseCallback대신 APIResponseCallback과 MeV2ResponseCallback을 넣어서 진행해보았는데
    onSucess에서 사용되는 userProfile이 어디서 받아오는 값인지 모르겠습니다.

가벼운 질문을 너무 많이 남기는것같아서 이번 질문은 열심히 찾아보고 레퍼런스도 보고 예제도 뜯어보고했는데 잘 모르겠습니다. ㅠㅠ

우선 사용자 정보를 저장하는 코드 자체는 해결했습니다.

final Map<String, String> properties = new HashMap<String, String>();
UserManagement.getInstance().requestUpdateProfile(new ApiResponseCallback(), properties);

로 코드를 작성하니 정상적으로 저장도 되고 온석세스 출력도 되는걸 확인할수 있었습니다.

하지만 아직도 안드로이드 SDK 개발 가이드, 사용자 정보 저장 파트의 샘플 코드에서 new UsermgmtResponseCallback과 userProfile의 정체는 잘 모르겠네요…

1개의 좋아요

그 콜백은 샘플앱에서 자체적으로 정의한 ApiResponseCallback을 상속한 콜백 클래스입니다. 예제 코드에 샘플앱 중복을 줄이기 위한 클래스가 들어가 있어 조금 혼란스러우셨을수도 있겠네요 ㅠㅠ 이 부분은 SDK 에서 정의한 클래스들만 사용하도록 개선해보도록 하겠습니다.

API버전: 1.27.0

이 소스를 검토를 해보니까, 소스코드를 보지 않고 직접 타이핑해서 불러올 때의 경우 onSessionClosed(), onSuccess() 2개 함수만 불러오고 나머지는 불러오지 않더라구요.
그래서 이 문제를 인지하는데 너무나도 오랜 시간이 걸렸습니다.

심지어, onFailure 에 대해서는 뭔가 메모를 해두신 것 같았는데, 여전이 이는 수동으로 고쳐야만 하나요? onFailure 항목의 로그도 보니까 개발에 필요한 소스 정보도 나오는 것 같아 보였는데 조금 더 문서를 구체화 해주셨으면 합니다.