Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
StoryItemClickListener storyItemClickListener = new StoryItemClickListener() {
  @Override
  public void storyItemClicked(String storyLink) {
    //Burada storyLink değişkenini kullanarak gerekli yönlendirmeyi yapabilirsiniz         
  }
}; 

StoryRequestListener storyRequestListener = new StoryRequestListener() {
  @Override
  public void onRequestResult(boolean isAvailable) {
    if (!isAvailable) {
      //Burada StoryRecyclerView ı kaldırmalısınız
      binding.storyRecyclerView.visibility = View.GONE
    }         
  }
};
   
binding.storyRecyclerView.setStoryActionIdWithRequestCallback(
  context,
  storyId,
  storyItemClickListener,
  storyRequestListener);

App Banner

Uygulamanızın istediğiniz bir layout dosyasında istediğiniz bir yere BannerRecyclerView ı yerleştiriniz. Örnek xml :

Code Block
languagexml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.relateddigital.relateddigital_android.inapp.bannercarousel.BannerRecyclerView
        android:id="@+id/bannerListView"
        android:layout_width="match_parent"
        android:layout_height="150dp"/>

    <Button
        android:id="@+id/btn_show_banner"
        android:layout_gravity="center"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_marginTop="20dp"
        android:background="@drawable/rounded_corners_background"
        android:text="@string/show_banner" />
</LinearLayout>

Daha sonra ilgili program dosyasında (Java veya Kotlin) BannerRecyclerView objesine erişip requestBannerCarouselAction() methodunun çağırılması gereklidir. Bu method bir zorunlu (context: Context), 3 opsiyonel parametre(properties: HashMap<String, String>?, bannerRequestListener: BannerRequestListener?, bannerItemClickListener: BannerItemClickListener?) almaktadır.

properties parametresi sorguya eklemek istediğiniz ekstra query parametreleri içindir.

bannerRequestListener parametresi eğer sorgu sonucunda bir şeyler ters gider ve sunuculardan bilgi alınamazsa bunun size bildirimlesi içindir. Böylece layoutunuza eklediğiniz BannerRecyclerView in visibility sini View.GONE veya View.INVISIBLE yaparak ilgili alanın boş görünmesini engelleyebilirsiniz.

bannerItemClickListener parametresi kullanıcının herhangi bir banner a tıklaması sonucu SDK’nın otomatik yönlendirmesi yerine kendiniz yönlendirme yapmak istiyorsanız kullanabileceğiniz bir parametredir.

Tüm parametreleri içeren örnek bir kullanım aşağıdaki gibidir.

Kotlin

Code Block
languagekotlin
val bannerItemClickListener = object : BannerItemClickListener {
  override fun bannerItemClicked(bannerLink: String?) {
    if(bannerLink.isNullOrEmpty()) {
      return
    }
    Toast.makeText(applicationContext, bannerLink, Toast.LENGTH_SHORT).show()
    Log.i("link banner", bannerLink)
    try {
      val viewIntent = Intent(Intent.ACTION_VIEW, Uri.parse(bannerLink))
      startActivity(viewIntent)
    } catch (e: Exception) {
      Log.e(LOG_TAG, "The link is not formatted properly!")
    }
  }
}

val bannerRequestListener = object : BannerRequestListener {
  override fun onRequestResult(isAvailable: Boolean) {
      if (!isAvailable) {
        binding?.bannerListView.visibility = View.GONE
      }
  }
}

val properties = HashMap<String, String>()
properties["OM.inapptype"] = "banner_carousel"

binding?.bannerListView.requestBannerCarouselAction(
  context = applicationContext,
  properties = properties,
  bannerRequestListener = bannerRequestListener,
  bannerItemClickListener = bannerItemClickListener
)

Java

Code Block
languagejava
BannerItemClickListener bannerItemClickListener = new BannerItemClickListener() {
  @Override
  public void bannerItemClicked(String bannerLink) {
    if(bannerLink == null || bannerLink.isEmpty()) {
      return;
    }
    Toast.makeText(getApplicationContext(), bannerLink, Toast.LENGTH_SHORT).show();
    Log.i("link banner", bannerLink);
    try {
      Intent viewIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(bannerLink));
      startActivity(viewIntent);
    } catch (Exception e) {
      Log.e(LOG_TAG, "The link is not formatted properly!");
    }
  }
};

BannerRequestListener bannerRequestListener = new BannerRequestListener() {
  @Override
  public void onRequestResult(boolean isAvailable) {
      if (!isAvailable) {
        binding.bannerListView.visibility = View.GONE;
      }
  }
};

HashMap<String, String> properties = new HashMap<String, String>();
properties.put("OM.inapptype", "banner_carousel");

binding.bannerListView.requestBannerCarouselAction(
  applicationContext,
  properties,
  bannerRequestListener,
  bannerItemClickListener
);

Öneriler Aksiyonu

Öneriler aksiyonunu uygulamanızda aşağıdaki gibi tetikleyebilirsiniz. 

...