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