# অ্যান্ড্রয়েড মোডাল রিচ মিডিয়া

<Aside type="note" title="গুরুত্বপূর্ণ">
SDK 6.7.13 থেকে উপলব্ধ
</Aside>

অ্যান্ড্রয়েড মোডাল রিচ মিডিয়া ফিচারটি ডেভেলপারদের তাদের অ্যাপ্লিকেশনের মধ্যে একটি মোডাল পপআপ উইন্ডোতে HTML কন্টেন্ট প্রদর্শন করার অনুমতি দেয়। এই পপআপটি অন্যান্য UI এলিমেন্ট ব্লক করে না এবং সোয়াইপ অঙ্গভঙ্গির মাধ্যমে সহজেই বাতিল করা যায়। মোডালটি চেহারা, আচরণ, অ্যানিমেশন এবং আরও অনেক কিছুর জন্য একাধিক কাস্টমাইজেশন বিকল্প সরবরাহ করে, যা একটি অত্যন্ত নমনীয় ব্যবহারকারীর অভিজ্ঞতা প্রদান করে।

## মূল বৈশিষ্ট্য

- **নন-ব্লকিং UI**: মোডালটি অন্যান্য UI এলিমেন্টের সাথে ইন্টারঅ্যাকশন ব্লক করে না।
- **কাস্টমাইজযোগ্য সোয়াইপ অঙ্গভঙ্গি**: বিভিন্ন দিকে মোডাল বাতিল করার জন্য সোয়াইপ অঙ্গভঙ্গি কনফিগার করুন।
- **নমনীয় পজিশনিং**: স্ক্রিনে মোডালটি কোথায় প্রদর্শিত হবে তা বেছে নিন (উপরে, কেন্দ্রে বা নীচে)।
- **কাস্টম অ্যানিমেশন**: বিভিন্ন অ্যানিমেশন টাইপ দিয়ে মোডালটি কীভাবে প্রদর্শিত হবে এবং অদৃশ্য হবে তা নিয়ন্ত্রণ করুন।
- **সোয়াইপের মাধ্যমে বাতিলযোগ্য**: ব্যবহারকারীরা যেকোনো দিক থেকে মোডালটি বাতিল করতে সোয়াইপ করতে পারেন।
- **অ্যাডজাস্টেবল অ্যানিমেশন সময়কাল**: মোডাল অ্যানিমেশনের গতি ফাইন-টিউন করুন।
- **স্ট্যাটাস বার হ্যান্ডলিং**: স্ট্যাটাস বারের নীচে বা উপরে মোডাল দেখানোর বিকল্প।
- **অ্যাডজাস্টেবল উইন্ডো প্রস্থ**: মোডালের প্রস্থ পূর্ণ স্ক্রীন বা কন্টেন্ট র‍্যাপ করার জন্য সেট করার বিকল্প।

## ব্যবহার

### মোডাল রিচ মিডিয়া সক্রিয় করা

**মোডাল রিচ মিডিয়া** ফিচারটি সক্রিয় করতে, আপনাকে আপনার অ্যাপ্লিকেশনের `AndroidManifest.xml` ফাইলে নিম্নলিখিত মেটাডেটা এন্ট্রি যোগ করে এটি কনফিগার করতে হবে:

```xml
<meta-data
    android:name="com.pushwoosh.rich_media_type"
    android:value="Modal" />
```
## ডিফল্ট কনফিগারেশন
মোডালের চেহারা এবং আচরণ `RichMediaManager`-এর মাধ্যমে একটি ডিফল্ট কনফিগারেশন সেট করে কাস্টমাইজ করা যেতে পারে। এই কনফিগারেশনটি আপনাকে নির্দিষ্ট করতে দেয় যে মোডালটি কীভাবে আচরণ করবে, কোথায় প্রদর্শিত হবে, কীভাবে এটি বাতিল করা যাবে এবং ব্যবহৃত অ্যানিমেশনের ধরন।

## কাস্টমাইজেশন বিকল্প

### মোডাল ভিউ পজিশন

আপনি `setViewPosition()` ব্যবহার করে স্ক্রিনে মোডালের অবস্থান সেট করতে পারেন। এই প্যারামিটারের জন্য উপলব্ধ মানগুলি হল:

- `TOP`
- `CENTER` (ডিফল্ট)
- `BOTTOM`

### ডিসমিস অ্যানিমেশন টাইপ

`setDismissAnimationType()` দিয়ে মোডালটি কীভাবে বাতিল হবে তা কাস্টমাইজ করুন। উপলব্ধ বিকল্পগুলির মধ্যে রয়েছে:

- `FADE_OUT` (ডিফল্ট)
- `SLIDE_UP`
- `SLIDE_DOWN`
- `SLIDE_LEFT`
- `SLIDE_RIGHT`
- `NONE`

### প্রেজেন্ট অ্যানিমেশন টাইপ

`setPresentAnimationType()` দিয়ে মোডালটি কীভাবে প্রদর্শিত হবে তা নির্ধারণ করুন। উপলব্ধ বিকল্পগুলি হল:

- `FADE_IN`
- `SLIDE_UP`
- `SLIDE_RIGHT`
- `DROP_DOWN`
- `SLIDE_LEFT`
- `NONE` (ডিফল্ট)

### সোয়াইপ অঙ্গভঙ্গি কনফিগারেশন

`setSwipeGesture()` ব্যবহার করে বিভিন্ন দিকে সোয়াইপ অঙ্গভঙ্গির মাধ্যমে মোডালটি বাতিল করা যেতে পারে। উপলব্ধ সোয়াইপ অঙ্গভঙ্গিগুলির মধ্যে রয়েছে:

- `UP`
- `LEFT`
- `RIGHT`
- `DOWN`
- `NONE` (ডিফল্ট)

### অ্যানিমেশন সময়কাল

মিলিসেকেন্ডে `animationDuration()` সেট করে অ্যানিমেশনের গতি নিয়ন্ত্রণ করুন। সময়কালটি একটি পূর্ণসংখ্যা মান হিসাবে নির্দিষ্ট করা হয়, যা মিলিসেকেন্ডে সময়কে প্রতিনিধিত্ব করে।

### মোডাল উইন্ডোর প্রস্থ

মোডালের প্রস্থ `setWindowWidth()` ব্যবহার করে সেট করা যেতে পারে, যা নির্ধারণ করে যে মোডালটি স্ক্রিনের পুরো প্রস্থ নেবে নাকি কেবল কন্টেন্ট ফিট করার জন্য যথেষ্ট হবে। সম্ভাব্য মানগুলি হল:

- `FULL_SCREEN` (ডিফল্ট)
- `WRAP_CONTENT`

### স্ট্যাটাস বার হ্যান্ডলিং

ডিফল্টরূপে, মোডালটি স্ট্যাটাস বারকে কভার করবে না। মোডালটিকে স্ট্যাটাস বারের নীচে প্রদর্শিত হতে দেওয়ার জন্য, `setStatusBarCovered()` প্রপার্টিটিকে `true` তে সেট করুন।


## উদাহরণ কনফিগারেশন
এখানে কিছু উদাহরণ দেওয়া হল, যা বিভিন্ন অ্যানিমেশন প্রদর্শন করে, যার মধ্যে রয়েছে সোয়াইপ অঙ্গভঙ্গি, স্লাইড-ইন উপস্থিতি, ফেড-আউট ডিসমিসাল, বিভিন্ন অ্যানিমেশন সময়কাল এবং বিভিন্ন স্ক্রিন প্রস্থ। নীচে, আপনি এই প্রভাবগুলি অর্জনের জন্য ব্যবহৃত কনফিগারেশনগুলিও খুঁজে পেতে পারেন।

### সোয়াইপ অঙ্গভঙ্গির উদাহরণ

<video src="/android-push-notifications-android-modal-rich-media-1.webm" title="ডানে সোয়াইপ করে বাতিল করার জন্য অ্যান্ড্রয়েড মোডাল" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setStatusBarCovered(false)
                .setSwipeGesture(ModalRichMediaSwipeGesture.RIGHT)
                .setViewPosition(ModalRichMediaViewPosition.CENTER)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.SLIDE_RIGHT)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.SLIDE_FROM_LEFT)
                .setAnimationDuration(800)
                .setWindowWidth(ModalRichMediaWindowWidth.WRAP_CONTENT));
```
### ড্রপ-ডাউন অ্যানিমেশন উদাহরণ

<video src="/android-push-notifications-android-modal-rich-media-2.webm" title="ড্রপ-ডাউন অ্যানিমেশন সহ অ্যান্ড্রয়েড মোডাল প্রদর্শিত হচ্ছে এবং উপরে সোয়াইপ করে বাতিল করা হচ্ছে" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setSwipeGesture(ModalRichMediaSwipeGesture.UP)
                .setViewPosition(ModalRichMediaViewPosition.TOP)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.SLIDE_UP)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.DROP_DOWN)
                .setAnimationDuration(1000));

```

### বটম রিচ মিডিয়া উদাহরণ

<video src="/android-push-notifications-android-modal-rich-media-3.webm" title="ফেড আউট ডিসমিসাল এবং স্লাইড আপ অ্যানিমেশন সহ নীচে প্রদর্শিত অ্যান্ড্রয়েড মোডাল" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setSwipeGesture(ModalRichMediaSwipeGesture.DOWN)
                .setViewPosition(ModalRichMediaViewPosition.BOTTOM)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.FADE_OUT)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.SLIDE_UP)
                .setAnimationDuration(2000));
```

## উপসংহার
অ্যান্ড্রয়েড মোডাল রিচ মিডিয়া ফিচারটি ব্যবহারকারীর অভিজ্ঞতাকে বাধা না দিয়ে আপনার অ্যাপের ভিতরে HTML কন্টেন্ট উপস্থাপন করার একটি সহজ এবং নমনীয় উপায় প্রদান করে। এর ব্যাপক কাস্টমাইজেশন বিকল্পগুলির সাথে, যার মধ্যে রয়েছে সোয়াইপ অঙ্গভঙ্গি, অ্যানিমেশন, পজিশনিং এবং উইন্ডো প্রস্থ, আপনি আপনার ব্যবহারকারীদের জন্য একটি নির্বিঘ্ন এবং আকর্ষক ইন্টারঅ্যাকশন তৈরি করতে পারেন।