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

عرض الرموز التعبيرية في الأجهزة الحالية والقديمة
آخر تعديل الإصدار المستقر إصدار المرشح الإصدار التجريبي إصدار أولي
9 آب (أغسطس) 2023 1.4.0 - - -

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

لإضافة اعتمادية على 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.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)
  • تعليقات مجلس API: تمت إعادة تسمية 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 هذه الالتزامات.

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

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

الإصدار 1.4.0-beta01

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

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

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

androidx.emoji2:emoji2-emojipicker

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

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

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

الإصدار 1.3.0-alpha01

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

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

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

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

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

  • تمت إضافة إمكانية طلب البحث في استثناءات النظام إلى "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

  • تحتوي حزمة الرموز التعبيرية 2 على خط رمز تعبيري 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-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.
  • لن يشمل التطبيق مثيلات 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.
  • لن يشمل التطبيق مثيلات 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، يمكنك الاطّلاع على مقالة Supporting Modern Emoji (الرموز التعبيرية الحديثة) ومحاضرة في مؤتمر 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 التي لا تستخدم الفئة الفرعية 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 كـ Key Listener. يسمح هذا الإجراء بسلوك النظام الأساسي المتمثل في السماح بتطبيق القيم الخالية على الرموز التعبيرية التي تدعم عمليات تنفيذ EditText.
  2. عند استخدام EmojiCompatConfiger المبدئية، يتم تحسين مهلة بدء التشغيل ليتم تشغيلها بعد استئناف النشاط الأول. ويتيح هذا الإجراء بدء تشغيل التطبيق بدون متابعة، كما يتجنّب تحميل الخط لبدء تشغيل التطبيق الذي لا يُظهر واجهة المستخدم مطلقًا. بعد مهلة قصيرة، ستنشئ EmojiCompat سلسلة محادثات لتحميل خط الرمز التعبيري.
  • تمت إضافة تبعية جديدة على androidx.lifecycle:lifecycle-process من androidx.emoji2:emoji2 لتنفيذ التأخير. لن يكون لذلك تأثير يُذكر في حجم حزمة APK للتطبيقات التي تتضمن مراحل نشاطها (مثل التطبيقات التي تتضمن appcompat).

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

  • السماح بـ Key Listener والفارغ في AppCompatEditText ويساعد ذلك على عكس التعليق التوضيحي غير الفارغ الذي تمت إضافته إلى AppCompatEditText في الإصدار 1.4.0-alpha01 واستعادة السلوك السابق عند تمرير قيمة فارغة. (I21482، b/189559345)

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

  • يجب تغيير EmojiCompatConfiger لتأخير تحميل الخط حتى 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-alpha01AppCompat، ويجب أن تضمن التطبيقات تعديل تبعية 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.