الرمز التعبيري 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
، ستظل أداة اختيار الرموز التعبيرية تعمل بشكل جيد.
كيفية استخدام المكتبة
لاستخدام المكتبة، على مطوّر التطبيق
استيراد
androidx.emoji2:emojipicker:$version
فيbuild.gradle
.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
تضخيم عرض أداة اختيار الرموز التعبيرية، ويمكنك ضبط
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" />
- يمكنك تركها بدون ضبط، فالقيمة التلقائية هي 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)
لنفترض أنّك تريد إلحاق الرموز التعبيرية المحدَّدة في EditText، استخدِم
setOnEmojiPickedListener()
.emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
يمكنك ضبط
RecentEmojiProvider
اختياريًا. يمكنك الاطّلاع على نموذج تطبيق للحصول على مثال لتنفيذ ذلك.يمكنك تخصيص الأنماط اختياريًا. يمكنك إنشاء نمطك الخاص لإلغاء سمات المظهر الشائعة وتطبيق النمط على
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)
- يمكن للأدوات المخصّصة التي تستخدم أداة IME التي تستخدم أداة IME التي لا تندرج ضمن الفئة الفرعية EditText استدعاء
إصلاح الأخطاء
- يمكنك إصلاح
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 على هذه الالتزامات.
الميزات الجديدة
هذا الإصدار عبارة عن إصدار إصلاح الأخطاء والتثبيت.
- تتيح ميزة EmojiEditTextHelper الآن تمرير
null
كـ KeyListener. ويسمح هذا سلوك النظام الأساسي بالسماح بتطبيق القيم الفارغة على الرموز التعبيرية التي تتوافق مع عمليات تنفيذ EditText. - عند استخدام 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
.