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

عرض الرموز التعبيرية على الأجهزة الحالية والقديمة
آخر تعديل الإصدار المستقر إصدار مرشح الإصدار التجريبي الإصدار الأولي
13 كانون الأول (ديسمبر) 2023 1.4.0 - - 1.5.0-alpha01

تعريف التبعيات

لإضافة عنصر تابع إلى 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. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.

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

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

Emoji2 Emojipicker الإصدار 1.0

الإصدار 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 على هذه الالتزامات.

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

  • تمت إضافة واجهة برمجة تطبيقات جديدة لعملاء JavaScript لإتاحة إمكانية تقديم رموز تعبيرية حديثة. (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-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 init الآن المعالج من كل طريقة عرض، مع مراعاة المشاهدات غير الواردة في سلسلة التعليمات الرئيسية. (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).

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

  • سيرسم الرمز التعبيري 2 خلفيات من BackgroundSpan بشكل صحيح. (Ide6a8، b/230525134)
  • إنهاء واجهات برمجة تطبيقات AppCompat للإصدار 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)
  • إصلاح تعطُّل محرّر Backport من Android P إلى Android 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 على هذه الالتزامات.

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

  • سيضيف الرمز التعبيري 2 رمزًا تعبيريًا إلى PrecomputedText من خلال تجاهل تنسيق النص المحسوب مسبقًا. (I47d06، b/211231958)
  • إصلاح تعطُّل محرّر Backport من 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-emoji2 التجريبي 01. لا توجد تغييرات من 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)

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

  • لن تلف الرموز التعبيرية 2 مثيلات 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
  • الضبط التلقائي
  • تتم إضافتها كتبعية للتوافق مع الإصدار 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.

Emoji2 الإصدار 1.0.0-تجريبي01

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 التي تستخدم أداة IME التي لا تندرج ضمن الفئة الفرعية EditText استدعاء EmojiCompat.updateEditorInfo لإبلاغ أداة IME بأنها تتيح معالجة EmojiCompat. (I1ea9b)

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

  • يمكنك إصلاح DefaultEmojiCompatConfig للبحث عن موفّر خطوط الرموز التعبيرية بشكل صحيح على واجهة برمجة التطبيقات 19 و28. يصلح هذا الخطأ الذي تم طرحه في الرموز التعبيرية2 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. يُعدّ هذا تغييرًا قد يؤدي إلى عطل في الإصدار 1.4.0-alpha01 من AppCompat، ويجب أن تضمن التطبيقات تعديل تبعية 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 على هذه الالتزامات.

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

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

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

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

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

التغييرات في الرموز التعبيرية 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.