Package 

Class AffordanceViewManager


  • 
    public final class AffordanceViewManager
    
                        

    모든 광고뷰(배너, 네이티브, 전면 등) 위에 AffordanceView 를 오버레이로 붙였다 뗐다 할 수 있게 해주는 매니저.

    대상 광고뷰의 부모가 FrameLayout 이 아니어도 동작한다 — 그 경우 내부적으로 광고뷰를 FrameLayout 래퍼로 감싸서 원래 위치/속성을 유지한 채 그 위에 뱃지를 겹쳐 그린다.

    사용 예:
        // 1) 배지 부착 (아직 미적립 상태, "1P" 텍스트)
        AffordanceViewManager.getInstance().show(adView,
                false, "1P", Gravity.TOP | Gravity.END, 6);
    
        // 2) adView 클릭 시 체크 아이콘으로 전환 + 체크 시각 SharedPreferences 저장
        AffordanceViewManager.getInstance().enableClickToCheck(adView, adUnitId,
                checkDrawable, originalAdClickListener, (v, key, time) -> {
                    // 서버에 포인트 적립 요청 등 후속 처리
                });
        ...
        AffordanceViewManager.getInstance().hide(adView);
    
    • Method Detail

      • show

         AffordanceView show(ViewGroup adView, MWRewardBannerModel model, int gravity, int marginDp)

        adView 위에 어포던스 배지를 붙인다. 이미 붙어 있으면 상태만 갱신한다.

        Parameters:
        adView - 배지를 올릴 대상 광고뷰
        model - 리워드 배너 데이터
        gravity - adView 기준 배지 위치 (예: Gravity.TOP or Gravity.
        marginDp - 배지와 adView 테두리 사이 여백(dp), 상하좌우 동일 적용
      • setRewarded

         void setRewarded(View adView, boolean rewarded)

        이미 붙어있는 배지의 적립 상태만 갱신한다. (붙어있지 않으면 아무 동작 없음)

      • enableClickToCheck

         void enableClickToCheck(View adView, String rewardKey, Drawable checkedIcon, View.OnClickListener passthroughClickListener, AffordanceViewManager.OnAffordanceCheckedListener checkedListener)

        adView(광고 뷰) 클릭 시 배지를 자동으로 "체크 완료" 상태로 전환하고,그 시각을 SharedPreferences 에 저장하도록 설정한다. show 로 배지를먼저 붙인 뒤에 호출해야 한다.

        주의: 이 메서드는 adView 에 setOnClickListener 를 새로 등록한다.광고 SDK가 adView 에 이미 자체 클릭 리스너를 걸어둔 경우 그 리스너를 {@code passthroughClickListener} 로 넘기면, 매니저가 그 리스너를 먼저 호출한 뒤체크 로직을 이어서 수행하므로 기존 클릭 동작이 유지된다.

        Parameters:
        adView - 클릭을 감지할 광고뷰 (show() 에 넘겼던 것과 동일해야 함)
        rewardKey - SharedPreferences 저장 키로 쓸 고유 식별자 (ex.
        checkedIcon - 체크(적립 완료) 상태에서 보여줄 아이콘 — null 이면 기존 아이콘 유지
        passthroughClickListener - adView 가 원래 갖고 있던 클릭 동작 (없으면 null)
        checkedListener - 체크가 실제로 발생했을 때 알려줄 콜백 (없으면 null)
      • hasChecked

         boolean hasChecked(Context context, String rewardKey)

        rewardKey 로 저장된 체크 시각이 있는지 여부.

      • getCheckedTime

         long getCheckedTime(Context context, String rewardKey)

        rewardKey 로 저장된 체크 시각(currentTimeMillis). 저장된 값이 없으면 0.

      • clearChecked

         void clearChecked(Context context, String rewardKey)

        rewardKey 의 체크 기록을 초기화한다 (ex. 일일 리셋 정책에서 사용).

      • hide

         void hide(View adView)

        배지를 숨긴다 (뷰 트리에서는 제거하지 않고 GONE 처리).

      • detach

         void detach(View adView)

        배지를 완전히 제거하고, 래핑했던 경우 원래 뷰 계층을 복원한다.