الرمز التعبيري 2

عرض الرموز التعبيرية على الأجهزة الحالية والأجهزة القديمة
التعديل الأخير الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
10 يوليو 2024 1.4.0 - 1.5.0-beta01 -

إعلان التبعيات

لإضافة اعتمادية على Emoji2، يجب إضافة مستودع Google Maven إلى مشروعك. يمكنك الاطّلاع على مستودع Maven من Google للحصول على مزيد من المعلومات.

أضِف العناصر الاعتمادية الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

رائع

dependencies {
    def emoji2_version = "1.4.0"

    implementation "androidx.emoji2:emoji2:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version"
}

Kotlin

dependencies {
    val emoji2_version = "1.4.0"

    implementation("androidx.emoji2:emoji2:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version")
}

لمزيد من المعلومات عن العناصر التابعة، يُرجى الاطّلاع على إضافة تبعيات الإصدار.

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. أخبرنا إذا اكتشفت مشكلات جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء عدد جديد

راجِع مستندات "أداة تتبُّع المشاكل" للحصول على مزيد من المعلومات.

الإصدار 1.0 من أداة اختيار رموز الإيموجي Emoji2

الإصدار 1.0.0-alpha03

8 آذار (مارس) 2023

تم طرح androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • تمت إزالة الموارد غير الضرورية وتقليل حجم المكتبة بمقدار 0.3 مليون تقريبًا.

الإصدار 1.0.0-alpha02

22 شباط (فبراير) 2023

تم طرح androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على عمليات التنفيذ هذه.

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة واجهة برمجة تطبيقات جديدة لبرامج جافا لإتاحة الرموز التعبيرية الحديثة. (I39d10)

إصلاح الأخطاء

  • تعديل موارد الرموز التعبيرية لإتاحة الإصدار 15.0 من الرموز التعبيرية (Ib4eb3)
  • عند اختيار رمز تعبيري من النافذة المنبثقة، يجب تعديل جميع الرموز التعبيرية المتطابقة للحصول على الرمز التعبيري الذي تم اختياره مؤخرًا (باستثناء صف الرموز التعبيرية الأخيرة). استخدام الرمز التعبيري أيضًا عند النقر عليه (I892c6)
  • يُرجى الانتظار إلى أن يتم تحميل الرموز التعبيرية قبل عرض EmojiPickerView. (I29e03)

الإصدار 1.0.0-alpha01

25 كانون الثاني (يناير) 2023

تم طرح androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على عمليات التنفيذ هذه.

الميزات الجديدة

  • تم تقديم أداة اختيار رموز الإيموجي التي توفّر تجربة متّسقة للمستخدمين مع أحدث الرموز التعبيرية على أجهزة وتطبيقات المصنّعين الأصليين للأجهزة التي تعمل بنظام التشغيل Android. توفّر هذه الأداة أحدث واجهة مستخدم للرموز التعبيرية وأداة اختيار رموز الإيموجي، بما في ذلك خيارات درجات لون البشرة وتتيح التوافق مع الرموز التعبيرية.

التغييرات في واجهة برمجة التطبيقات

  • تم تقديم فئة EmojiPickerView التي توفّر رموزًا تعبيرية حديثة في عرض عمودي قابل للتمرير مع عنوان أفقي قابل للنقر.
  • يمكن ضبط أعمدة شبكة أداة اختيار الرموز التعبيرية باستخدام سمة XML emojiGridColumns أو الدالة setEmojiGridColumns().
  • يمكن ضبط صفوف شبكة أداة اختيار الرموز التعبيرية باستخدام سمة XML emojiGridRows أو الدالة setEmojiGridRows().
  • يمكن ضبط الرمز التعبيري الذي تم اختياره من خلال أداة استماع عبر setOnEmojiPickedListener() وسيتم إرسال إشعار إلى المستمع عندما ينقر المستخدم على أي رمز تعبيري.
  • يمكن توفير موفِّر الرموز التعبيرية الأحدث من خلال setRecentEmojiProvider(). هذه دالة اختيارية. إذا لم يتم ضبط إعدادات موفِّر الرموز التعبيرية الأخيرة، تستخدم المكتبة مقدِّم خدمة تلقائي للرموز التعبيرية المستخدَمة حديثًا. يتم تحديد السلوك التلقائي على النحو التالي: 1) سيتم حفظ جميع الرموز التعبيرية المحددة على مستوى كل تطبيق في الإعدادات المفضَّلة المشتركة. 2) سيعرض أداة الاختيار ما لا يزيد عن 3 صفوف من الرموز التعبيرية المحددة، وتمت إزالة تكرارها، بترتيب زمني عكسي.
  • تم تقديم فئة EmojiViewItem تحتوي على الرموز التعبيرية المعروضة وصيغها.
  • تم إطلاق واجهة RecentEmojiProvider التي يمكن تنفيذها لتقديم قائمة رموز تعبيرية حديثة. إنّ recentEmojiProvider مسؤول عن تقديم الرموز التعبيرية في فئة "الصور المستخدمة مؤخرًا".

الإصدار 1.5

الإصدار 1.5.0-beta01

10 يوليو 2024

تم طرح androidx.emoji2:emoji2-*:1.5.0-beta01. يحتوي الإصدار 1.5.0-beta01 على عمليات الالتزام هذه.

الميزات الجديدة

  • إتاحة الإصدار 15.1 من الرموز التعبيرية وواجهة مستخدم لاختيار الرموز التعبيرية ثنائية الاتجاه.
  • إتاحة إعادة تصميم اختيار متعدد الأنماط.

إصلاح الأخطاء

  • يتم تعديل مجموعة علامات التبويب والمؤشر في جهاز "EmojiPickerView" بنقرة واحدة. (146b02، b/288261054)
  • تم إيقاف اختيار علامة تبويب "EmojiPickerView" ومؤشرها. (5e1f14، b/273883688)

الإصدار 1.5.0-alpha01

13 كانون الأول (ديسمبر) 2023

تم طرح androidx.emoji2:emoji2-*:1.5.0-alpha01. يحتوي الإصدار 1.5.0-alpha01 على هذه عمليات التنفيذ.

الميزات الجديدة

  • يحتوي emoji2-bundled على خط رموز تعبيرية معدّل للتوافق مع الإصدار 15.1 من الرموز التعبيرية.

التغييرات في واجهة برمجة التطبيقات

  • يمكنك إضافة تنفيذين للتحكُّم في سلسلة محادثات معاودة الاتصال لـ "InitCallback". (I32b67)
  • يحصل BundledEmojiCompatConfig الآن على منفّذ للتحكُّم في تحميل سلاسل المحادثات. (I00e81)

الإصدار 1.4

الإصدار 1.4.0

9 آب (أغسطس) 2023

تم طرح androidx.emoji2:emoji2-*:1.4.0. يحتوي الإصدار 1.4.0 على عمليات الالتزام هذه.

تغييرات مهمة منذ الإصدار 1.3.0

  • تم تقديم مكتبة خاصة بأداة اختيار الرموز التعبيرية. يُرجى الاطّلاع على مستند المطوِّر للحصول على مزيد من التفاصيل.

الإصدار 1.4.0-rc01

26 تموز (يوليو) 2023

تم طرح androidx.emoji2:emoji2-*:1.4.0-rc01. يحتوي الإصدار 1.4.0-rc01 على هذه عمليات التنفيذ.

التغييرات في واجهة برمجة التطبيقات

  • تقديم قائمة registerSource (Iae92f)
  • ملاحظات مجلس واجهة برمجة التطبيقات: تمت إعادة تسمية النطاق TransitionManager.seekTo() إلى createSeekController(). يُرجى تعديل التعليق السابق بشأن إضافة TransitionManager.seekTo() إلى TransitionManager.createSeekController(). (Idbeb1)
  • تمت إضافة ExerciseRouteResult، وهي ليست الفئة المميّزة لـ Data وNoData وConsentRequiredStates. تمت إضافة "ExerciseRoute" كفئة مستقلة تحتفظ ببيانات الموقع الجغرافي للمسار. (I22eed)
  • تم تقديم PagerLayoutInfo بالمعلومات التي تم جمعها بعد اجتياز القياس في جهاز النداء. وقدّمنا أيضًا معلومات PageInfo، وهي معلومات عن صفحة واحدة تم قياسها في جهاز النداء. (Iad003، b/283098900)

إصلاح الأخطاء

  • تم تعديل ألوان Button وIconButton وTextButton لتتوافق مع تصميم Material3. يمكن الآن إلغاء الدور الدلالي لـ Button وIconButton وTextButton باستخدام Modifier.semantics. (Ib2495)
  • تم إصلاح عملية اختيار علامة التبويب في "EmojiPickerView" وتعديل المؤشر بنقرة واحدة. (I4db04)
  • FileNotFoundException حول عرض أداة اختيار الرموز التعبيرية (I353e4)
  • تسجيل WindowManager.BadTokenException عند استخدام EmojiPickerView (I0a144)

الإصدار 1.4.0-beta05

7 حزيران (يونيو) 2023

تم طرح androidx.emoji2:emoji2-*:1.4.0-beta05. يحتوي الإصدار 1.4.0-beta05 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • تم إصلاح خطأ تم تقديمه في الإصدار 1.3 كان يتسبب في تطبيق MetricsAffectingSpans مثل RelativeSizeSpan مرتين. مرة أثناء تنسيق النص، ومرة أخرى داخل EmojiSpan.draw. كان حجم النتيجة غير صحيح، ويمكن رؤيته إذا تم تغيير أي من معلمات حجم النص بواسطة الامتداد. (b/283208650)

الإصدار 1.4.0-beta04

24 أيار (مايو) 2023

تم طرح androidx.emoji2:emoji2-*:1.4.0-beta04. يحتوي الإصدار 1.4.0-beta04 على عمليات الالتزام هذه.

يعالج هذا الإصدار خطأ بدأ منذ الإصدار 1.0، إذ قد تتسبب المشاهدات التي تستخدم معالجًا غير رئيسي في حدوث استثناء عند محاولة تعديل نطاقات الرموز التعبيرية بعد اكتمال تحميل الخط. ما مِن حل بديل، إذا تأثّرت بهذا الخطأ، يُرجى الترقية إلى هذا الإصدار أو الإصدارات الأحدث.

إصلاح الأخطاء

  • ستستخدم عمليات الاستدعاء التي تبدأ في EmojiCompat الآن المعالِج من كل ملف شخصي، مع مراعاة عدد المشاهدات التي ليست في سلسلة المحادثات الرئيسية. (Iccbcf)

الإصدار 1.4.0-beta03

10 أيار (مايو) 2023

تم طرح androidx.emoji2:emoji2-*:1.4.0-beta03. يحتوي الإصدار 1.4.0-beta03 على هذه الالتزامات.

إصلاح الأخطاء

  • إصلاح تعطُّل العرض المنبثق المدمج لأداة اختيار الرموز التعبيرية. (0acc8e)
  • بإمكانك تطبيق الاستثناءات المبكرة في EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

الإصدار 1.4.0-beta02

19 نيسان (أبريل) 2023

تم طرح androidx.emoji2:emoji2-*:1.4.0-beta02. يحتوي الإصدار 1.4.0-beta02 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • تعديل ملفات Lint الأساسية (Iaa212)

الإصدار 1.4.0-beta01

5 نيسان (أبريل) 2023

تم طرح androidx.emoji2:emoji2-*:1.4.0-beta01. يحتوي الإصدار 1.4.0-beta01 على عمليات التنفيذ هذه.

الميزات الجديدة

androidx.emoji2:emoji2-emojipicker

"أداة اختيار رموز الإيموجي" هي حل لواجهة المستخدم يوفّر مظهرًا وطابعًا عصريَين ورموزًا تعبيرية حديثة وسهولة الاستخدام. يمكن للمستخدمين تصفُّح واختيار الرموز التعبيرية وخياراتها المختلفة، أو الاختيار من بين الرموز التعبيرية المستخدَمة مؤخرًا. وبفضل هذه المكتبة، أصبح بإمكان المصنّعين الأصليين للأجهزة تقديم تجربة شاملة وموحّدة للرموز التعبيرية للمستخدمين بدون أن يحتاجوا إلى إنشاء أداة اختيار رموز الإيموجي الخاصة بهم والحفاظ عليها من البداية.

الرموز التعبيرية المحدَّثة

يتم طرح رموز تعبيرية جديدة كل عام، وسنضمنها بشكل انتقائي في "أداة اختيار الرموز التعبيرية". لضمان التوافق مع الأنظمة القديمة، نُجري اختبارًا دقيقًا لقابلية عرض الرموز التعبيرية داخليًا من أجل استبعاد التوفو. سيضمن ذلك توافق المكتبة مع العديد من إصدارات وأجهزة Android.

خيارات المنتجات الثابتة

ويؤدي الضغط مع الاستمرار على الرمز التعبيري إلى عرض قائمة بخيارات المنتج، مثل أجناس أو ألوان بشرة مختلفة. سيتم حفظ الصيغة التي تختارها في أداة اختيار الرموز التعبيرية، وسيتم استخدام آخر خيار محدّد في اللوحة الرئيسية. ومن خلال هذه الميزة، يمكن للمستخدمين إرسال خياراتهم المفضّلة من الرموز التعبيرية بنقرة واحدة فقط.

الرموز التعبيرية المستخدمة مؤخرًا

إنّ RecentEmojiProvider مسؤول عن تقديم الرموز التعبيرية في فئة "الصور المستخدمة مؤخرًا". تحتوي المكتبة على موفّر تلقائي حديث للرموز التعبيرية يستوفي حالة الاستخدام الأكثر شيوعًا:

  • تم حفظ جميع الرموز التعبيرية المحددة على مستوى كل تطبيق في الإعدادات المفضّلة المشتركة.
  • تعرض أداة الاختيار ما لا يزيد عن 3 صفوف من الرموز التعبيرية المحددة، تمت إزالة تكرارها، بترتيب زمني عكسي.

إذا كان هذا السلوك التلقائي كافيًا، لن تحتاج إلى ضبط طريقة setRecentEmojiProvider().

استخدام EmojiCompat

إذا كان التطبيق يحتوي على مثيل EmojiCompat، سيتم استخدامه في أداة اختيار الرموز التعبيرية لعرض أكبر عدد ممكن من الرموز التعبيرية. وإذا كانت السمة EmojiCompat غير مفعّلة، ستبقى أداة اختيار الرموز التعبيرية صالحة.

كيفية استخدام المكتبة

ولاستخدام المكتبة، يجب على مطوّر التطبيق

  1. استيراد androidx.emoji2:emojipicker:$version في build.gradle.

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. يمكنك تضخيم عرض أداة اختيار الرموز التعبيرية وضبط emojiGridRows وemojiGridColumns اختياريًا بناءً على الحجم المطلوب لكل خلية رموز تعبيرية.

    • ويمكنك تركها بدون ضبط، علمًا بأنّ القيمة التلقائية هي 9 emojiGridColumns، وسيتم احتساب الصفوف استنادًا إلى ارتفاع طريقة العرض الرئيسية وemojiGridColumns.
    • يمكنك ضبط emojiGridRows كعدد عائم للإشارة إلى توفّر المزيد من الرموز التعبيرية عند الانتقال للأسفل في ملف XML.
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

في الرمز

    val emojiPickerView = EmojiPickerView(context).apply {
        emojiGridColumns = 15
        layoutParams = ViewGroup.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT
        )
    }
    findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
  1. لنفترض أنّك تريد إلحاق الرموز التعبيرية المحددة بـ EditText (نص التعديل)، استخدم setOnEmojiPickedListener().

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. يمكنك اختيار RecentEmojiProvider. يمكنك الاطّلاع على نموذج تطبيق للاطّلاع على مثال لعملية تنفيذ.

  3. يمكنك تخصيص الأنماط اختياريًا. أنشئ نمطًا خاصًا لإلغاء سمات المظاهر الشائعة وطبِّق النمط على EmojiPickerView. على سبيل المثال، سيؤدي إلغاء colorControlNormal إلى تغيير لون رمز الفئة.

      <style name="CustomStyle" >
          <item name="colorControlNormal">#FFC0CB</item>
      </style>
      <androidx.emoji2.emojipicker.EmojiPickerView
          android:id="@+id/emoji_picker"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:theme="@style/CustomStyle"
          app:emojiGridColumns="9" />
    

اطّلِع على نموذج تطبيق للاطّلاع على مثال لعملية التنفيذ.

يمكن العثور على مساحة كاملة لواجهة برمجة التطبيقات هنا.

نموذج تطبيق

يوضح هذا النموذج حالات الاستخدام الأساسية بالإضافة إلى السيناريوهات الإضافية التالية:

  • تمت إعادة تنسيق العرض لأنه تمت إعادة ضبط emojiGridRows وemojiGridColumns.
  • يتم إلغاء موفِّر الرموز التعبيرية الأحدث للترتيب حسب معدّل التكرار.
  • تخصيص النمط:

التغييرات في واجهة برمجة التطبيقات

تم تعديل مكتبة "أداة اختيار الرموز التعبيرية" باستخدام واجهات برمجة التطبيقات الجديدة التالية:

  • الفئة EmojiPickerView التي توفّر رموزًا تعبيرية حديثة في عرض عمودي قابل للتمرير مع عنوان أفقي قابل للنقر.
  • إمكانية ضبط عدد الأعمدة والصفوف في شبكة أداة اختيار الرموز التعبيرية عبر سمتَي XML emojiGridColumns وemojiGridRows أو الطريقتان setEmojiGridColumns() وsetEmojiGridRows()
  • إمكانية ضبط رمز تعبيري تم اختياره من قِبل المستمع باستخدام طريقة setOnEmojiPickedListener() سيتم إرسال إشعار إلى المستمع عندما ينقر المستخدم على أي رمز تعبيري.
  • إمكانية توفير موفّر رموز تعبيرية حديث من خلال طريقة setRecentEmojiProvider() هذه دالة اختيارية. إذا لم يتم ضبط موفِّر الرموز التعبيرية الأخيرة، تستخدم المكتبة مقدِّم خدمة تلقائي للرموز التعبيرية المستخدَمة حديثًا. يتمّ تحديد السلوك التلقائي على النحو التالي:
    • سيتم حفظ جميع الرموز التعبيرية المحددة على مستوى كل تطبيق في الإعدادات المفضّلة المشتركة.
    • ستعرض أداة الاختيار ما لا يزيد عن 3 صفوف من الرموز التعبيرية المحددة، والتي تمت إزالة تكرارها، بترتيب زمني عكسي.
  • الفئة EmojiViewItem التي تحتوي على الرموز التعبيرية المعروضة وأشكالها المختلفة
  • واجهة RecentEmojiProvider التي يمكن تنفيذها لتقديم قائمة رموز تعبيرية حديثة إنّ recentEmojiProvider مسؤول عن تقديم الرموز التعبيرية في فئة "الصور المستخدمة مؤخرًا".
  • واجهة RecentEmojiAsyncProvider التي يمكن تنفيذها لتقديم قائمة رموز تعبيرية حديثة إنّ RecentEmojiAsyncProvider مسؤول عن تقديم الرموز التعبيرية في فئة "الصور المستخدمة مؤخرًا". تعادل هذه الواجهة واجهة RecentEmojiProvider التي تسمح للعملاء بإلغاء طريقة getRecentEmojiListAsync() لتقديم الرموز التعبيرية الحديثة.
  • الفئة RecentEmojiProviderAdapter، وهي محوّلة لـ RecentEmojiAsyncProvider وتنفّذ السمة RecentEmojiProvider.

الإصدار 1.4.0-alpha01

22 آذار (مارس) 2023

تم طرح androidx.emoji2:emoji2-*:1.4.0-alpha01. يحتوي الإصدار 1.4.0-alpha01 على هذه عمليات التنفيذ.

إصلاح الأخطاء

  • إصلاح الاختبارات وإيقاف اختبارات الرقائق وعمليات الحذف

الإصدار 1.3

الإصدار 1.3.0

22 آذار (مارس) 2023

تم طرح androidx.emoji2:emoji2-*:1.3.0. يحتوي الإصدار 1.3.0 على هذه عمليات التنفيذ.

تغييرات مهمة منذ الإصدار 1.2.0

  • يتيح هذا الإصدار لميزة Compose Foundation 1.4.0 والإصدارات الأحدث تفعيل دمج الرموز التعبيرية 2.
  • وتسمح أيضًا بميزات استبدال EmojiSpans برمز رسم مخصّص، بالإضافة إلى إتاحة استبعادات الرموز التعبيرية المحدَّدة على Android.

الإصدار 1.3.0-rc01

8 آذار (مارس) 2023

تم طرح androidx.emoji2:emoji2-*:1.3.0-rc01. يحتوي الإصدار 1.3.0-rc01 على هذه عمليات التنفيذ.

الميزات الجديدة

  • يتيح هذا الإصدار دمج ميزة إنشاء الرموز التعبيرية 2.

التغييرات في واجهة برمجة التطبيقات

  • يمكنك استبدال المسافات لرمز الرسم المخصّص.
  • طلب استبعادات النظام

إصلاح الأخطاء

  • وتم إصلاح خطأ عدم تطبيق امتدادات الخلفية بشكل صحيح خلال EmojiSopans.

الإصدار 1.3.0-beta03

23 شباط (فبراير) 2023

تم طرح الإصدارات androidx.emoji2:emoji2-bundled:1.3.0-beta03 وandroidx.emoji2:emoji2-views:1.3.0-beta03 وandroidx.emoji2:emoji2-views-helper:1.3.0-beta03.

22 شباط (فبراير) 2023

تم طرح androidx.emoji2:emoji2:1.3.0-beta03. يحتوي الإصدار 1.3.0-beta03 على هذه الالتزامات.

الميزات الجديدة

  • لا تغييرات. هذا الإصدار مخصّص للدمج في ميزة إنشاء الرسائل.

الإصدار 1.3.0-beta02

8 شباط (فبراير) 2023

تم طرح androidx.emoji2:emoji2-*:1.3.0-beta02. يحتوي الإصدار 1.3.0-beta02 على عمليات التنفيذ هذه.

الميزات الجديدة

  • هذا الإصدار هو وضع التثبيت لدعم تكامل ميزة الإنشاء.

الإصدار 1.3.0-beta01

25 كانون الثاني (يناير) 2023

تم طرح androidx.emoji2:emoji2-*:1.3.0-beta01. يحتوي الإصدار 1.3.0-beta01 على عمليات التنفيذ هذه.

الميزات الجديدة

  • طلب استبعادات النظام
  • استبدال المسافات لرمز الرسم المخصص
  • وتم إصلاح خطأ عدم تطبيق امتدادات الخلفية بشكل صحيح خلال EmojiSopans.
  • يضيف هذا الإصدار واجهات برمجة التطبيقات اللازمة لدعم EmojiCompat في Compose. من المتوقع إنشاء توافق مع الرموز التعبيرية في إصدار يقع في المستقبل القريب.

الإصدار 1.3.0-alpha01

11 كانون الثاني (يناير) 2023

تم طرح androidx.emoji2:emoji2-*:1.3.0-alpha01. يحتوي الإصدار 1.3.0-alpha01 على هذه عمليات التنفيذ.

واجهات برمجة تطبيقات جديدة للتفاعلات المنخفضة المستوى

  • طلب استبعادات النظام
  • استبدال المسافات في رمز الرسم المخصص
  • وتم إصلاح خطأ عدم تطبيق امتدادات الخلفية بشكل صحيح خلال EmojiSopans.
  • يضيف هذا الإصدار واجهات برمجة التطبيقات اللازمة لدعم EmojiCompat في Compose. من المتوقع إنشاء توافق مع الرموز التعبيرية في إصدار يقع في المستقبل القريب.

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة إمكانية طلب استثناءات النظام إلى TypefaceEmojiRasterizer. (I5653e)
  • تمت إضافة واجهة برمجة التطبيقات EmojiCompat.SpanFactory الجديدة لاستبدال سلوك EmojiSpan التلقائي برمز تحديد حجم ورسم مخصّص. (Ib69d9)
  • تمت إضافة EmojiCompat إلى Compose (I96f37، وb/139326806).

إصلاح الأخطاء

  • سيرسم الآن Emoji2 الخلفيات من BackgroundSpan بشكل صحيح. (Ide6a8، b/230525134)
  • إنهاء واجهات AppCompat API للإصدار 1.5.0-beta01 (I2a43d وb/236866227)

الإصدار 1.2

الإصدار 1.2.0

10 آب (أغسطس) 2022

تم طرح androidx.emoji2:emoji2-*:1.2.0. يحتوي الإصدار 1.2.0 على عمليات الالتزام هذه.

تغييرات مهمة منذ الإصدار 1.1.0

هذا إصدار مخصّص لإصلاح الأخطاء. لم تتم إضافة أي ميزات أو واجهات برمجة تطبيقات جديدة منذ الإصدار 1.1.0.

ومع ذلك، يجب أن تعطي التطبيقات التي تستخدم PrecomputedText أو TextView.setText(char[]) الأولوية للانتقال إلى هذا الإصدار.

تم إصلاح الأخطاء التالية:

  • سيضيف Emoji2 الرموز التعبيرية إلى PrecomputedText من خلال تجاهل تنسيق النص المحسوب مسبقًا. (I47d06، b/211231958)
  • إصلاح أعطال محرِّر الخلفية من Android P إلى EditText والتي تم ضبطها لاستخدام الرموز التعبيرية 2 (Ifd709 وb/216891011)
  • إصلاح التعطُّل عند تحميل الرموز التعبيرية 2 الخط واستخدام TextView.setText(char[]). (Id511e، b/206859724)

الإصدار 1.2.0-rc01

27 تموز (يوليو) 2022

تم طرح androidx.emoji2:emoji2-*:1.2.0-rc01. يحتوي الإصدار 1.2.0-rc01 على هذه عمليات التنفيذ.

  • لم تطرأ أي تغييرات منذ آخر إصدار تجريبي.

الإصدار 1.2.0-beta01

13 تموز (يوليو) 2022

تم طرح androidx.emoji2:emoji2-*:1.2.0-beta01. يحتوي الإصدار 1.2.0-beta01 على عمليات التنفيذ هذه.

الميزات الجديدة

  • ما مِن تغييرات عن الإصدار الأخير (هذا الإصدار يتوافق مع إصدار AppCompat).

الإصدار 1.2.0-alpha04

20 نيسان (أبريل) 2022

تم طرح androidx.emoji2:emoji2-*:1.2.0-alpha04. يحتوي الإصدار 1.2.0-alpha04 على هذه عمليات التنفيذ.

الميزات الجديدة

  • ما مِن تغييرات في هذا الإصدار.

الإصدار 1.2.0-alpha03

6 نيسان (أبريل) 2022

تم طرح androidx.emoji2:emoji2-*:1.2.0-alpha03. يحتوي الإصدار 1.2.0-alpha03 على هذه عمليات التنفيذ.

الميزات الجديدة

  • ما مِن تغييرات عن الإصدار الأخير (هذا الإصدار يتوافق مع إصدار التطبيق المتوافق مع الأجهزة الجوّالة).

الإصدار 1.2.0-alpha02

23 آذار (مارس) 2022

تم طرح androidx.emoji2:emoji2-*:1.2.0-alpha02. يحتوي الإصدار 1.2.0-alpha02 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • سيضيف Emoji2 الرموز التعبيرية إلى PrecomputedText من خلال تجاهل تنسيق النص المحسوب مسبقًا. (I47d06، b/211231958)
  • إصلاح أعطال محرِّر الخلفية من Android P إلى EditText من خلال الإعداد لاستخدام الرموز التعبيرية 2 (Ifd709 وb/216891011)
  • إصلاح التعطُّل عند تحميل الرموز التعبيرية 2 الخط واستخدام TextView.setText(char[]). (Id511e، b/206859724)

الإصدار 1.2.0-alpha01

23 شباط (فبراير) 2022

تم طرح androidx.emoji2:emoji2-*:1.2.0-alpha01. يحتوي الإصدار 1.2.0-alpha01 على هذه عمليات التنفيذ.

ما مِن تغييرات منذ 1.1.0.

1.1

الإصدار 1.1.0

23 شباط (فبراير) 2022

تم طرح androidx.emoji2:emoji2-*:1.1.0. يحتوي الإصدار 1.1.0 على هذه عمليات التنفيذ.

تغييرات مهمة منذ الإصدار 1.0.0

  • مجموعة الرموز التعبيرية 2 تحتوي على رمز تعبيري بحجم 14 خط.
  • تعرض واجهة برمجة التطبيقات getEmojiMatch الجديدة معلومات دقيقة للوحات المفاتيح لتحديد كيفية عرض الرموز التعبيرية إذا كان خط الرموز التعبيرية خلف خط النظام.
  • إصلاح خطأ في NumberKeyListener إذا كان إدخال الأرقام يعمل على فلترة الأحرف بشكل صحيح.

الإصدار 1.1.0-rc01

9 شباط (فبراير) 2022

تم طرح androidx.emoji2:emoji2-*:1.1.0-rc01. يحتوي الإصدار 1.1.0-rc01 على هذه عمليات التنفيذ.

الميزات الجديدة

ما مِن تغييرات من الإصدار التجريبي.

الميزات الجديدة مقارنةً بالإصدار 1.0.0 من الرموز التعبيرية:

  • خط emoji2-bundled يحتوي على الرمز التعبيري 14
  • تعرض واجهة برمجة التطبيقات getEmojiMatch الجديدة معلومات دقيقة للوحات المفاتيح لتحديد كيفية عرض الرموز التعبيرية إذا كان خط الرموز التعبيرية خلف خط النظام.
  • إصلاح أخطاء NumberKeyListener الذي يجعل إدخال الأرقام يعمل بشكل صحيح مع الأحرف

الإصدار 1.1.0-beta01

26 يناير 2022

تم طرح androidx.emoji2:emoji2-*:1.1.0-beta01. يحتوي الإصدار 1.1.0-beta01 على عمليات التنفيذ هذه.

إصلاح الأخطاء

  • androidx-emoji2beta01. ما مِن تغييرات من alpha01 (Ic61d9)

الإصدار 1.1.0-alpha01

15 كانون الأول (ديسمبر) 2021

تم طرح androidx.emoji2:emoji2-*:1.1.0-alpha01. يحتوي الإصدار 1.1.0-alpha01 على عمليات التنفيذ هذه.

الميزات الجديدة

  • خط emoji2-bundled يحتوي على الرمز التعبيري 14
  • تعرض واجهة برمجة التطبيقات getEmojiMatch الجديدة معلومات دقيقة للوحات المفاتيح لتحديد كيفية عرض الرموز التعبيرية إذا كان خط الرموز التعبيرية خلف خط النظام.
  • إصلاح أخطاء NumberKeyListener الذي يجعل إدخال الأرقام يعمل بشكل صحيح مع الأحرف

التغييرات في واجهة برمجة التطبيقات

  • يمكنك إضافة واجهة برمجة تطبيقات getEmojiMatch جديدة للسماح للوحات المفاتيح بالبحث عن سلوك مطابقة الرموز التعبيرية بدقة أكبر في الرموز التعبيرية المتوافقة.
  • تم إيقاف hasEmojiGlyph نهائيًا، لأنّ القيمة المنطقية للعرض غير دقيقة عند إجراء اختبار استنادًا إلى خط أقدم من خط الرموز التعبيرية للنظام الأساسي. استبدِلها بـ getEmojiMatch. (Ie693d)

إصلاح الأخطاء

  • لن يؤدي Emoji2 إلى التفاف مثيلات NumberKeyListener، ما يسمح بضبط اللغة من خلال TextView.
  • لن يلتف Appcompat مثيلات NumberKeyListener التي تم تمريرها إلى setKeyListener، ما يسمح لـ TextView بضبط اللغة على NumberKeyListeners بشكل صحيح. (Ibf113، b/207119921)

1

الإصدار 1.0.1

15 كانون الأول (ديسمبر) 2021

تم طرح androidx.emoji2:emoji2-*:1.0.1. يحتوي الإصدار 1.0.1 على عمليات الالتزام هذه.

إصلاح الأخطاء

  • لن يلتف Emoji2 مثيلات NumberKeyListener، ما يسمح بضبط اللغة من خلال TextView.
  • لن يلتف Appcompat مثيلات NumberKeyListener التي تم تمريرها إلى setKeyListener، ما يسمح لـ TextView بضبط اللغة على NumberKeyListeners بشكل صحيح. (Ibf113، b/207119921)

الإصدار 1.0.0

17 تشرين الثاني (نوفمبر) 2021

تم طرح androidx.emoji2:emoji2-*:1.0.0. يحتوي الإصدار 1.0.0 على عمليات الالتزام هذه.

الميزات الرئيسية للإصدار 1.0.0

يحل androidx.emoji2 محل androidx.emoji بإمكانيات إضافية:

  • تقليل حجم حزمة APK مقابل androidx.emoji
  • الضبط التلقائي
  • تمت الإضافة كتبعية إلى appcompat 1.4

للحصول على مزيد من المعلومات حول androidx.emoji2، يمكنك الاطّلاع على مقالة دعم الرموز التعبيرية الحديثة والكلمة التي تناولناها مؤتمر Android Dev Summit حول عرض جميع الرموز التعبيرية في تطبيقك على Android Dev.

الإصدار 1.0.0-rc01

27 تشرين الأول (أكتوبر) 2021

تم طرح androidx.emoji2:emoji2-*:1.0.0-rc01. يحتوي الإصدار 1.0.0-rc01 على هذه عمليات التنفيذ.

  • ما مِن تغييرات منذ الإصدار التجريبي 02.

الإصدار 1.0.0-beta01 من Emoji2

15 أيلول (سبتمبر) 2021

تم طرح androidx.emoji2:emoji2-*:1.0.0-beta01. يحتوي الإصدار 1.0.0-beta01 على عمليات التنفيذ هذه.

التغييرات في واجهة برمجة التطبيقات

  • تمت إضافة setLoadingExecutor إلى FontRequestEmojiCompatConfig، بدلاً من واجهة برمجة التطبيقات السابقة لـ setHandler. تتيح واجهة برمجة التطبيقات هذه للتطبيقات ضبط FontRequestEmojiCompatConfig لاستخدام أي أداة تنفيذ في الخلفية.

    يمثّل هذا التغيير تغييرًا قد يؤدي إلى عطل في androidx.emoji:emoji، لذلك يتم الاحتفاظ بواجهة برمجة التطبيقات setHandler بصفتها واجهة برمجة تطبيقات متوقفة مؤقتًا ومتوقفة للمساعدة في عملية نقل البيانات. (I6cd48)

  • تضبط ميزة EmojiCompat "EditorInfo.extras" بشكل صحيح على Android 11.

    • إنّ التطبيقات المصغّرة المخصّصة التي تستخدم أداة IME والتي لا تصنّف EditText ضمن فئات فرعية قد تطلب EmojiCompat.updateEditorInfo لإبلاغ IME بأنّها تتيح معالجة EmojiCompat. (I1ea9b)

إصلاح الأخطاء

  • إصلاح DefaultEmojiCompatConfig للبحث عن موفِّر خط الرموز التعبيرية بشكل صحيح على واجهة برمجة التطبيقات 19 و28 يعمل هذا على إصلاح خطأ تم طرحه في الرموز التعبيرية 1.0.0-alpha01. (Ib33d8، b/197906329)

الإصدار 1.0.0-alpha03

30 حزيران (يونيو) 2021

تم طرح androidx.emoji2:emoji2-*:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه عمليات التنفيذ.

الميزات الجديدة

هذا الإصدار هو إصلاح للأخطاء وتثبيت التحديثات.

  1. يتيح EmojiEditTextHelper الآن ضبط null على أنّه KeyListener. يسمح هذا الإجراء بسلوك النظام الأساسي المتمثل في السماح بتطبيق القيم الخالية على الرموز التعبيرية التي تدعم عمليات تنفيذ EditText.
  2. عند استخدام EmojiCompatInitializer، يتم تحسين مهلة بدء التشغيل الأوّلية بعد استئناف النشاط الأول. يسمح هذا ببدء تشغيل التطبيق بدون تركيز، ويتجنّب تحميل الخط عند بدء تشغيل التطبيق الذي لا يعرض واجهة مستخدم مطلقًا. بعد مهلة قصيرة، ستنشئ ميزة EmojiCompat سلسلة محادثات لتحميل خط الرموز التعبيرية.
  • تمت إضافة اعتمادية جديدة إلى androidx.lifecycle:lifecycle-process من androidx.emoji2:emoji2 لتطبيق التأخير. ولن يكون لذلك تأثير يُذكر في حجم حزمة APK للتطبيقات التي تتضمّن مراحل نشاط (مثل التطبيقات التي تستخدم appcompat).

التغييرات في واجهة برمجة التطبيقات

  • السماح بأداة KeyListener الفارغة في AppCompatEditText. يؤدي ذلك إلى عكس التعليق التوضيحي غير الفارغ الذي تمت إضافته إلى AppCompatEditText من خلال 1.4.0-alpha01 واستعادة السلوك السابق عند تجاوز قيمة فارغة. (I21482، b/189559345)

إصلاح الأخطاء

  • غيِّر ميزة EmojiCompatInitializer لتأجيل تحميل الخط حتى 500 ملي ثانية بعد أول Activity.onResume. يتيح ذلك للنشاط تنفيذ Application.onCreate وActivity.onCreate بدون تعديل، مع ضمان تحميل خط الرموز التعبيرية بعد بدء تشغيل التطبيق بوقت قصير. (I4bff7)

الإصدار 1.0.0-alpha02

2 حزيران (يونيو) 2021

تم طرح الإصدارات androidx.emoji2:emoji2:1.0.0-alpha02 وandroidx.emoji2:emoji2-views:1.0.0-alpha02 وandroidx.emoji2:emoji2-views-helper:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على عمليات التنفيذ هذه.

التغييرات في واجهة برمجة التطبيقات

  • تمت إعادة تسمية الحزمة في emoji2-views-helper إلى androidx.emoji2.viewsintegration. يمثّل هذا التغيير عطلاً كبيرًا في AppCompat 1.4.0-alpha01، ويجب أن تتأكّد التطبيقات من تعديل اعتمادية AppCompat لكي تتمكّن من استخدام الإصدار الجديد من الرموز التعبيرية 2. (Ie8397)

الإصدار 1.0.0-alpha01

18 أيار (مايو) 2021

تم طرح الإصدارات androidx.emoji2:emoji2:1.0.0-alpha01 وandroidx.emoji2:emoji2-views:1.0.0-alpha01 وandroidx.emoji2:emoji2-views-helper:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على عمليات التنفيذ هذه.

الميزات في هذا الإصدار الأولي

يُنصَح بدمج الرموز التعبيرية في جميع التطبيقات لإتاحة الرموز التعبيرية الحديثة من واجهة برمجة التطبيقات 19. يتضمّن كل المحتوى من إنشاء المستخدمين في تطبيقك 🎉.

تم نقل EmojiCompat من عناصر androidx.emoji إلى العنصر androidx.emoji2 الجديد، وهو الآن في الإصدار alpha01. تحل العناصر الجديدة محل النسخة السابقة.

تتم إضافة emoji2 كعنصر تبعية إلى AppCompat بدءًا من AppCompat 1.4.0-alpha01 ويتم تفعيله تلقائيًا لملفات AppCompat الشخصية.

يقدِّم عنصر emoji2 إعدادًا تلقائيًا جديدًا باستخدام مكتبة androidx.startup. لم تعُد بحاجة إلى كتابة أيّ رمز 👨🏽 😅 لعرضه 🐻 ☀️.

تغييرات في الرمز التعبيري 2 من الرموز التعبيرية

  • تمت إضافة الإعدادات التلقائية الجديدة EmojiCompatInitializer باستخدام androidx.startup.
  • تمت إضافة إعدادات تلقائية جديدة تستخدم الموقع الجغرافي للخدمة للعثور على مقدّم خطوط قابل للتنزيل في DefaultEmojiCompatConfiguration.
  • تم نقل الصفوف من حزمة واحدة (androidx.emoji) إلى androidx.emoji2.
  • تقسيم EmojiTextView والعروض ذات الصلة على عنصر منفصل emoji2-views يجب استخدام هذا الخيار فقط إذا كان تطبيقك لا يستخدم appcompat.
  • تم استخراج عناصر مساعدة لدمج الرموز التعبيرية في طرق عرض مخصّصة في عنصر emoji2-views-helper منفصل.
  • تمت إضافة تعليقات توضيحية تشير إلى إمكانية قبول القيم.
  • يمكن الآن استخدام أدوات المساعدة في emoji2-views-helper حتى في حال عدم إعداد EmojiCompat (كانت هناك استثناء في السابق).

ما هي الاعتمادية التي يجب إضافتها؟

  • يجب ترقية التطبيقات المتوافقة مع AppCompat إلى الإصدار AppCompat 1.4.0-alpha01 أو الإصدارات الأحدث.
  • إنّ التطبيقات التي لا تستخدم AppCompat تستخدم TextView/EditText من النظام الأساسي يجب أن تستخدم EmojiTextView والفئات ذات الصلة من emoji2-views.

كيفية إتاحة طرق العرض المخصّصة

  • يجب أن تتيح التطبيقات المتوافقة مع AppCompat تمديد نطاق AppCompatTextView وAppCompatButton وغير ذلك بدلاً من النظام الأساسي TextView وما إلى ذلك.
  • يجب أن تضيف التطبيقات التي لا تتضمّن AppCompat اعتمادية androidx.emoji2:emoji2-views-helper وأن تستخدم أدوات المساعدة للدمج مع الفئات الفرعية المخصّصة من نوع TextView أو EditText.

ضبط الإعداد التلقائي

  • يمكن للتطبيقات إيقاف الإعداد التلقائي من خلال إضافة هذا إلى البيان:

     <provider
         android:name="androidx.startup.InitializationProvider"
         android:authorities="${applicationId}.androidx-startup"
         android:exported="false"
         tools:node="merge">
         <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
                   tools:node="remove" />
     </provider>
    
  • سيؤدي ذلك إلى إيقاف الإعداد التلقائي، ويمكنك بعد ذلك ضبط الإعدادات المخصَّصة إلى EmojiCompat.init. يمكن استرداد الإعدادات التلقائية للنظام DefaultEmojiCompatConfig.create(context) لإجراء المزيد من الإعدادات قبل ضبطها على EmojiCompat.init.