الرمز التعبيري 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 على هذه الالتزامات.

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

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

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

الإصدار 1.1.0-rc01

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

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

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

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

الميزات الجديدة مقارنةً بالرموز التعبيرية 2 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 على هذه الالتزامات.

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

Emoji2 الإصدار 1.0.0-beta01

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. يؤدي ذلك إلى إصلاح خطأ تم إدخاله في icon2 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 بالنسبة إلى التطبيقات التي تتضمّن مراحل نشاطها حاليًا (مثل التطبيقات التي تتضمّن التوافق مع التطبيقات).

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

  • السماح بأداة 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 لاستخدام الإصدار الجديد من الرمز التعبيري icon2. (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. لم تعُد بحاجة إلى كتابة أيّ رمز 👨🏽 🎁 لكي يتم عرضه 🐻 َع️.

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