پوشیدن واچفیس
توجه: برای نصب واچ فیسها روی دستگاههایی که از قبل سیستم عامل Wear OS 5 یا بالاتر روی آنها نصب شده است و برای همه واچ فیسهای جدید منتشر شده در گوگل پلی، فرمت واچ فیس مورد نیاز است.
از ژانویه ۲۰۲۶، فرمت واچ فیس برای نصب واچ فیسها روی تمام دستگاههای Wear OS الزامی خواهد بود.
برای کسب اطلاعات بیشتر در مورد تغییرات مربوط به کاربران، به این مقاله مرکز راهنما مراجعه کنید.
| آخرین بهروزرسانی | انتشار پایدار | کاندیدای انتشار | انتشار بتا | انتشار آلفا |
|---|---|---|---|---|
| ۱۷ دسامبر ۲۰۲۵ | ۱.۲.۱ | - | ۱.۳.۰-بتا۰۱ | - |
اعلام وابستگیها
برای افزودن یک وابستگی به Wear، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's Maven را مطالعه کنید.
وابستگیهای مربوط به مصنوعات مورد نیاز خود را در فایل build.gradle برای برنامه یا ماژول خود اضافه کنید:
شیار
dependencies { // Use to implement wear watchfaces implementation "androidx.wear.watchface:watchface:1.2.1" // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation "androidx.wear.watchface:watchface-editor:1.2.1" // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
کاتلین
dependencies { // Use to implement wear watchfaces implementation("androidx.wear.watchface:watchface:1.2.1") // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation("androidx.wear.watchface:watchface-editor:1.2.1") // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
شیار
dependencies { // Use to implement wear watchfaces implementation "androidx.wear.watchface:watchface:1.2.1" // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation "androidx.wear.watchface:watchface-editor:1.2.1" // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
کاتلین
dependencies { // Use to implement wear watchfaces implementation("androidx.wear.watchface:watchface:1.2.1") // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation("androidx.wear.watchface:watchface-editor:1.2.1") // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
برای اطلاعات بیشتر در مورد وابستگیها، به «افزودن وابستگیهای ساخت» مراجعه کنید.
بازخورد
بازخورد شما به بهبود Jetpack کمک میکند. اگر مشکلات جدیدی کشف کردید یا ایدههایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. میتوانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.
برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.
نسخه ۱.۳
نسخه ۱.۳.۰-بتا۰۱
۱۷ دسامبر ۲۰۲۵
androidx.wear.watchface:watchface-*:1.3.0-beta01 منتشر شد. نسخه 1.3.0-beta01 شامل این کامیتها است.
ویژگیهای جدید
- پشتیبانی از دادههای پیشنمایش ثابت پیچیدگیها اضافه شده است، که در آن یک ارائهدهنده پیچیدگی میتواند دادههای پیشنمایش ثابت را در مانیفست خود مشخص کند، برای جزئیات بیشتر به
androidx.wear.watchface.complications.data.parser.StaticPreviewDataParserمراجعه کنید. - کلاس کاربردی
ComplicationTextFormattingبا پشتیبانی از قالببندی دادهها و زمان تا حد امکان مختصر، اضافه شده است که برای پیچیدگیهایی که فضا بسیار مهم است، مفید است.
تغییرات API
- ویژگی
Renderer.watchfaceColorsکه قبلاً آزمایشی بود، اکنون خصوصی است. هنوز دسترسیهای عمومی برای این ویژگی وجود دارد. ( Ifdf60 , b/409363281 )
رفع اشکالات
- پروژههایی که با کاتلین ۲.۰ منتشر شدهاند، برای استفاده به KGP ۲.۰.۰ یا جدیدتر نیاز دارند. ( I48968 , b/407632515 )
نسخه ۱.۳.۰-آلفا۰۷
۲۳ آوریل ۲۰۲۵
androidx.wear.watchface:watchface-*:1.3.0-alpha07 منتشر شد. نسخه 1.3.0-alpha07 شامل این کامیتها است.
ویژگیهای جدید
- مدتی است که میتوان طرحواره UserStyle صفحه ساعت را تعریف کرد، و میتوان
ColorUserStyleSettingدر XML تعریف کرد.
تغییرات API
- پروژههایی که با کاتلین ۲.۰ منتشر شدهاند، برای استفاده به KGP ۲.۰.۰ یا جدیدتر نیاز دارند. ( IDb6b5 )
- رابط برنامهنویسی کاربردی (API) مربوط به Watch Face Push اضافه شد که به یک اپلیکیشن Wear OS اجازه میدهد تا به صورت برنامهنویسیشده، یک واچ فیس روی ساعت نصب کند.
رفع اشکالات
- به ارائهدهندگان خدمات پیچیده که از نسخه ۱.۳.۰-alpha06 استفاده میکنند، توصیه میشود که بهروزرسانی کنند زیرا اشکال از کار افتادن
ComplicationDataSourceUpdateRequesterدر نسخه بعدی WearOS برطرف شده است.
نسخه ۱.۳.۰-alpha06
۲۶ مارس ۲۰۲۵
androidx.wear.watchface:watchface-*:1.3.0-alpha06 منتشر شد. نسخه 1.3.0-alpha06 شامل این کامیتها است.
ویژگیهای جدید
- رابطهای برنامهنویسی کاربردی (API) واچفیسهای Wear (watchface، watchface-client، watchface-client-guava، watchface-complications-rendering، watchface-data، watchface-editor، watchface-editor-guava و watchface-style) به نفع قالب Wear Watchface منسوخ شدهاند و در نهایت از AndroidX حذف خواهند شد. رابطهای برنامهنویسی کاربردی (API) واچفیسهای Wear منسوخ نشدهاند و باقی خواهند ماند. ( Ice960 )
- رابطهای برنامهنویسی کاربردی (API) پیچیدگی اکنون میتوانند مستقیماً با
WearSDKارتباط برقرار کنند که به دلیل تعداد کمتر گامهای IPC، کارآمدتر است.
نسخه ۱.۳.۰-آلفا۰۵
۱۵ ژانویه ۲۰۲۵
androidx.wear.watchface:watchface-*:1.3.0-alpha05 منتشر شد. نسخه 1.3.0-alpha05 شامل این کامیتها است.
ویژگیهای جدید
واچفیسها معمولاً به کاربر اجازه میدهند رنگها را با استفاده از ListUserStyle انتخاب کند. اگرچه این روش کار میکند، اما مستلزم ارسال آیکونها از طریق بلوتوث به ویرایشگر همراه است که ناکارآمد است، بنابراین ما ColorUserStyleSetting معرفی کردهایم که در آن محتوای برنامه لیستی از یک یا چند رنگ برای هر سبک است که فرمت سیمی بسیار فشردهتری دارد.
ما یک ویژگی نمایش ساعتهای OEM اضافه کردهایم که به ارائهدهندگان خدمات پیچیده OEM اجازه میدهد موارد اضافی را به ComplicationData برای استفاده توسط صفحههای ساعت OEM اضافه کنند.
تغییرات API
- کلاسهای
UserStyleSettingوUserStyleOptionاکنون دارای سازندههایی هستند که روش توصیهشده برای ساخت آنها است. ( Iacd03 ) - پشتیبانی از ارسال موارد اضافی در
ComplicationData. این قابلیت برای استفاده توسط تولیدکنندگان اصلی تجهیزات (OEM) در نظر گرفته شده است، جایی که آنها هم ارائه دهندهی موارد اضافی و هم صفحه ساعت گیرنده را کنترل میکنند. تنظیم یک مورد اضافی نیاز به مجوز ممتازcom.google.android.wearable.permission.COMPLICATION_EXTRASدارد. ( I4e3b2 ) - صفحههای ساعت معمولاً به کاربر اجازه میدهند رنگها را با استفاده از
ListUserStyleانتخاب کند، که برای هرListOptionیک آیکون وجود دارد. از آنجایی که طرحوارههایUserStyleاز طریق بلوتوث ارسال میشوند، کوچک نگه داشتن اندازه طرحواره بسیار مهم است، چرا که اگر به دلیل وجود این همه آیکون، دهها گزینه رنگ ارائه شود، میتواند مشکلساز شود. برای کمک به این امر،ColorUserStyleSettingاضافه کردهایم که در آن گزینه به جای یک آیکون، لیستی از رنگها را در بر میگیرد که بسیار فشردهتر است. ( Ib542e ) -
ColorUserStyleSettingوColorOptionبرای استفاده به API 34 نیاز دارند. ( I8771d )
رفع اشکالات
- این کتابخانه اکنون از حاشیهنویسیهای nullness از نوع JSpecify استفاده میکند که از نوع type-use هستند. توسعهدهندگان کاتلین باید از آرگومان کامپایلر زیر برای اعمال استفاده صحیح استفاده کنند:
-Xjspecify-annotations=strict(این پیشفرض است که از نسخه 2.1.0 کامپایلر کاتلین شروع میشود). ( Ifd363 , b/326456246 )
نسخه ۱.۳.۰-آلفا۰۴
۱۸ سپتامبر ۲۰۲۴
androidx.wear.watchface:watchface-*:1.3.0-alpha04 منتشر شد. نسخه 1.3.0-alpha04 شامل این کامیتها است.
ویژگیهای جدید
- پشتیبانی از بارگذاری تنبل آیکونها در
UserStyleSettingsوUserStyleOptionsاضافه شده است که یک مزیت عملکردی برای بارگذاری واچ فیسها است. ( Iaf43d ) - گزینهای اضافه شده است که با تغییر پیکربندی سیستم (مثلاً اگر زبان تغییر کند) از طریق
Watchface.setUpdateScreenshotOnConfigurationChange، اسکرینشات بهروزرسانیشده گرفته شود. بهطور پیشفرض این تنظیم غیرفعال است. ( I765a1 )
رفع اشکالات
- حذف دستورالعمل دسترسی به APIهای پلتفرم جدید، زیرا این امر به طور خودکار از طریق مدلسازی API هنگام استفاده از R8 با AGP 7.3 یا بالاتر (مثلاً R8 نسخه 3.3) و برای همه نسخهها هنگام استفاده از AGP 8.1 یا بالاتر (مثلاً D8 نسخه 8.1) اتفاق میافتد. به مشتریانی که از AGP استفاده نمیکنند، توصیه میشود به D8 نسخه 8.1 یا بالاتر بهروزرسانی کنند. برای جزئیات بیشتر به این مقاله مراجعه کنید. ( Ia60e0 ، b/345472586 )
نسخه ۱.۳.۰-آلفا۰۳
۱۷ آوریل ۲۰۲۴
androidx.wear.watchface:watchface-*:1.3.0-alpha03 منتشر شد. نسخه 1.3.0-alpha03 شامل این کامیتها است.
تغییرات API
- ما
EditorSession#setOverrideComplicationsاضافه کردهایم که به طور موقتComplicationDataمربوط به نمونه watchface زیرین را هنگام ویرایش تنظیم میکند. اگر complexها به ندرت تغییر کنند، این روش کارآمدتر از ارسال overrideها از طریقEditorSession#renderWatchFaceToBitmapاست. ( I19384 )
رفع اشکالات
- پیش از این
selectComplicationDataForInstantبرای هر جدول زمانیtoApiComplicationDataفراخوانی میکرد، به این معنی که تست برابری مرجع === بعدی همیشه با شکست مواجه میشد. این بدان معنی بود که پیچیدگیها در هر فریم مجدداً بارگذاری میشدند که منجر به تخلیه باتری میشد. ( 717406 )
نسخه ۱.۳.۰-آلفا۰۲
۳ آوریل ۲۰۲۴
androidx.wear.watchface:watchface-*:1.3.0-alpha02 منتشر شد. نسخه 1.3.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
- اکنون از تساوی مرجع برای مقایسه best و
selectedDataاستفاده میکنیم زیرا عملگر تساوی پرهزینه است. ( 446b00 )
تغییرات API
- ما یک API پویای بدون نیاز به بازگشت به عقب برای
GoalProgressComplicationDataاضافه کردهایم. ( c33264 )
نسخه ۱.۳.۰-آلفا۰۱
۷ فوریه ۲۰۲۴
androidx.wear.watchface:watchface-*:1.3.0-alpha01 منتشر شد. نسخه 1.3.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
-
WatchFaceServicesمیتواند به صورت همزمان مقداردهی اولیه شود و به همین دلیل باید بدون وضعیت (stateless) باشد. برای پشتیبانی از این قابلیت، ماStatefulWatchFaceServiceاضافه کردهایم که در آن یک مقدار اضافی تعریف شده توسط کاربر که توسطcreateExtra()ایجاد شده است، به تمام overrideهایی که در طول مقداردهی اولیه فراخوانی میشوند، ارسال میشود. -
GlesRenderer2اکنون یک سربار سازنده دارد که به شما امکان میدهد لیستی از ویژگیها را مشخص کنید تا به نوبت باeglChooseConfigامتحان کنید.
تغییرات API
-
StatefulWatchFaceServiceاکنون از override کردنgetComplicationSlotInflationFactoryپشتیبانی میکند که در آن extra تعریفشده توسط کاربر که توسطcreateExtra()ایجاد شده است، به آن منتقل میشود. ( I82d9f ) - برخی از واچ فیسها نیاز دارند دادههای کمکی ایجاد شده در طول
createUserStyleSchemaرا با سایر متدهای مقداردهی اولیه به اشتراک بگذارند. از آنجا که جایگزین بهتری وجود نداشت، توسعهدهندگان معمولاًWatchFaceServicesخود را stateful میکردند. این خطرناک است زیرا چندین نمونه میتوانند به طور همزمان ایجاد شوند که میتواند منجر به اشکالات شود. برای حل این مشکلStatefulWatchFaceServiceوStatefulWatchFaceRuntimeServiceرا معرفی کردهایم که در آنها یک نوع تعریف شده توسط کاربر توسطcreateExtra()ایجاد میشود و به عنوان پارامتر به متدهای مختلف create ارسال میشود. ( If8a99 ) - ما
getUserStyleFlavorsبهInteractiveWatchFaceClientاضافه کردهایم که در درجه اول مورد توجه تولیدکنندگان اصلی تجهیزات (OEM) است. ( I0f5d8 ) -
GlesRenderer2اکنون دارای یک سربار سازنده است که به شما امکان میدهد لیستی از ویژگیها را مشخص کنید تا به نوبت باeglChooseConfigامتحان کنید. به عنوان مثال، این به شما امکان میدهد ابتدا یک پیکربندی با ضد لغزش را امتحان کنید و در صورت نیاز به پیکربندی بدون آن برگردید. ( I1ba74 ) - از اندروید U، پشتیبانی از
SystemDataSources.DATA_SOURCE_HEART_RATEبه WearOS اضافه خواهد شد. این پیچیدگی فقط از پیچیدگیهایSHORT_TEXTپشتیبانی میکند، اما توصیه میشود کهComplicationSlotنیزSMALL_IMAGEبپذیرد زیرا ممکن است تولیدکنندگان اصلی تجهیزات (OEM) به جای مقدار زنده، یک میانبر برای برنامه سلامت خود ارائه دهند. ( I34223 ) - ما
METADATA_KEY_CONFIG_RESTORE_SUPPORTEDاضافه کردهایم که از اندروید U به بعد، کنترل میکند که هنگام بازیابی سیستم از یک نسخه پشتیبان برای منبع داده پیچیدگی باMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONچه اتفاقی میافتد. به طور پیشفرض، سیستم فرض میکند که سرویس منبع داده پیچیدگی از پشتیبانگیری از هرگونه داده پیکربندی پشتیبانی میکند، اما اگر اینطور نباشد، میتواند تنظیم فرادادهMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONرا روی false اضافه کند که اسلات پیچیدگی را به عنوان پیکربندی نشده علامتگذاری میکند. ( I6c505 )
نسخه ۱.۲
نسخه ۱.۲.۱
۲۴ ژانویه ۲۰۲۴
androidx.wear.watchface:watchface-*:1.2.1 منتشر شد. نسخه ۱.۲.۱ شامل این کامیتها است.
رفع اشکالات
- مشکل از کار افتادن ساعت هوشمند سامسونگ گلکسی واچ ۴، ۵ و ۶ برطرف شد. ( 43f0b0 )
نسخه ۱.۲.۰
۲۹ نوامبر ۲۰۲۳
androidx.wear.watchface:watchface-*:1.2.0 منتشر شد. نسخه ۱.۲.۰ شامل این کامیتها است.
تغییرات مهم از زمان ۱.۱.۰
- ما پشتیبانی از برخی از انواع جدید پیچیدگیها را که برای استفاده از اندروید T در دسترس هستند، اضافه کردهایم:
-
GoalProgressComplicationDataکه مشابهRangedValueComplicationDataاست، با این تفاوت که برای پیشرفت به سمت هدفی است که در آن min به طور ضمنی صفر است و مقدار مجاز است بزرگتر ازtargetValueباشد. -
WeightedElementsComplicationDataکه شامل آرایهای از عناصر (جفتهای وزن و رنگ) به همراه متن/عنوان/تصویر اختیاری است. این موارد ممکن است به صورت نمودار دایرهای نمایش داده شوند که در آن رنگها باید با توجه به متن معنادار باشند، زیرا معمولاً در یک complex جایی برای نمایش برچسبها وجود ندارد.
-
- ما پشتیبانی از
ColorRangesاختیاری را بهRangedValueComplicationDataاضافه کردهایم. معمولاً پیچیدگیها با رنگهای انتخابی صفحه ساعت رندر میشوند، اما گاهی اوقاتComplicationDataSourceبرای تنظیم رنگها بهتر است، مثلاً وقتی که معنای خاصی دارند. مثلاً از قرمز به آبی برای دما. - تقریباً هر نوع
ComplicationDataاکنون ازSmallImagesپشتیبانی میکند. - ما
ComplicationDisplayPolicyاضافه کردهایم که در آنDO_NOT_SHOW_WHEN_DEVICE_LOCKEDبه صفحه ساعت سازگار دستور میدهد که هنگام قفل بودن دستگاه، صفحه نمایش پیچیده را نمایش ندهد. - از اندروید T، تولیدکنندگان اصلی تجهیزات (OEM) قادر خواهند بود تشخیص دهند که آیا درخواست عارضه از یک واچ فیس در لیست تعریف شده توسط فراداده
android.support.wearable.complications.SAFE_WATCH_FACESدر مانیفست ارائه دهنده آنها باComplicationRequest#isForSafeWatchFace. ارائه دهنده برای دریافت هر چیزی غیر از TargetWatchFaceSafety.UNKNOWN` به مجوزcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEنیاز دارد. -
UserStyleFlavorsبه یک ویژگی غیر آزمایشی تبدیل شده است.
نسخه ۱.۲.۰-rc01
۱۸ اکتبر ۲۰۲۳
androidx.wear.watchface:watchface-*:1.2.0-rc01 منتشر شد. نسخه 1.2.0-rc01 شامل این کامیتها است.
نسخه ۱.۲.۰-بتا۰۲
۶ سپتامبر ۲۰۲۳
androidx.wear.watchface:watchface-*:1.2.0-beta02 منتشر شد. نسخه 1.2.0-beta02 شامل این کامیتها است.
ویژگیهای جدید
-
SuspendingComplicationDataSourceService#onDestroyاکنون باز است. لطفاً توجه داشته باشید که پشتیبانی از یک عارضه آب و هوایی پیشفرض سیستم حذف شده است.
تغییرات API
- برگرداندن «نمایش یک منبع داده جدید برای عوارض آب و هوا». ( I6f335 )
نسخه ۱.۲.۰-بتا۰۱
۲۳ آگوست ۲۰۲۳
androidx.wear.watchface:watchface-*:1.2.0-beta01 منتشر شد. نسخه 1.2.0-beta01 شامل این کامیتها است.
ویژگیهای جدید
- از اندروید T به بعد، WearOS اکنون از یک سیستم آب و هوایی پیشفرض پشتیبانی میکند.
تغییرات API
- برای رفع مشکلات، سیستم پیشفرض آب و هوا را اضافه کنید. ( Ia0994 )
- این پچ
WatchFaceRuntimeServiceوWatchFaceControlClient.createWatchFaceRuntimeControlClientرا به همراه wrapperهای guava اضافه میکند. این موارد پشتیبانی از runtimeهای watch face را اضافه میکنند که نوع خاصی از watch face هستند که تعریف خود را از بسته دیگری بارگیری میکنند. در حال حاضر WearOS فقط از runtime برای قالب watch face اندروید ( I2799f ) پشتیبانی میکند. - این پچ در ادامهی aosp/2636578 است که در آن نام int defs را تغییر دادیم تا هر کدی که به
WatchFaceType،CanvasType،TapTypeیاComplicationsSlotBoundsTypeبستگی دارد، نیازی به تغییر نداشته باشد. ( I4098b ) - فایلهای API بهروزرسانی شدند تا موارد مربوط به عدم سازگاری ( I8e87a ، b/287516207 ) حاشیهنویسی شوند.
- این وصله، ثابتهای
WatchFaceTypeرا درWatchFaceTypes، ثابتهایCanvasTypeرا درCanvasTypes، ثابتهایTapTypeرا درTapTypesو ثابتهایComplicationsSlotBoundsTypeرا درComplicationsSlotBoundsTypeافشا میکند. ( I3b85a ، b/288750666 ) -
WatchFace.OverlayStyleکاربرد بسیار کمی دارد و توسط تولیدکنندگان اصلی تجهیزات (OEM) به خوبی پشتیبانی نمیشود، بنابراین ما قصد داریم ارزش آن را کاهش دهیم و در آینده آن را حذف کنیم. ( I7344a )
نسخه ۱.۲.۰-آلفا۰۹
۲۱ ژوئن ۲۰۲۳
androidx.wear.watchface:watchface-*:1.2.0-alpha09 منتشر شد. نسخه 1.2.0-alpha09 شامل این کامیتها است.
ویژگیهای جدید
-
RangedValueComplicationData.BuilderاکنونDynamicFloatرا میپذیرد و یکDynamicComplicationTextجدید به عنوان زیرکلاسComplicationTextدر دسترس است که هر دو میتوانند از عبارات پویا و همچنین اتصالات پلتفرم که در دستگاههای Wear 4 پشتیبانیشده با سرعت ۱ هرتز بهروزرسانی میشوند، استفاده کنند.
تغییرات API
- انواع پویا برای مسافت روزانه، کالری روزانه و کف روزانه اضافه شد. کلیدهای منابع سلامت پلتفرم اکنون تحت
PlatformHealthSources.Keys( Ib7637 ) قرار دارند. - پیادهسازی
PlatformDataProviderبرای ارائه ضربان قلب و تعداد قدمهای روزانه. رابطSensorGatewayاز API عمومی حذف شده است. ( I55b84 ) - نام
StateEntryValueرا بهDynamicDataValueتغییر دهید و APIهای state را برای استفاده ازDynamicDataKeyبهروزرسانی کنید. ( If1c01 ) - برای دسترسی به وضعیت ارسال شده برنامه
AppDataKeyاضافه کنید؛ برای دسترسی به دادههای پلتفرم،PlatformDataKeyرا اضافه کنید؛ پشتیبانی از فضای نام را درStateStoreاضافه کنید. ( I7985e ) - متدهای
enable/disablePlatformSourceازDynamicTypeEvaluatorحذف شدهاند. فراخوانیکننده باید مسئول بهروزرسانیها باشد. ( I78c6d ) - امکان محدود کردن اندازه انواع داده محدود شده. ( Ie2966 )
نسخه ۱.۲.۰-آلفا۰۸
۱۹ آوریل ۲۰۲۳
androidx.wear.watchface:watchface-*:1.2.0-alpha08 منتشر شد. نسخه 1.2.0-alpha08 شامل این کامیتها است.
ویژگیهای جدید
- از اندروید T، ارائهدهندگان خدمات عارضهیابی با مجوز ممتاز
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEمیتوانند فرادادهandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESرا ثبت کنند که برای واچفیسهای ایمن، برandroid.support.wearable.complications.SUPPORTED_TYPESغلبه میکند. این بدان معناست که یک ارائهدهنده خدمات عارضهیابی میتواند انواع مختلفی را برای واچفیسهای قابل اعتماد در مقابل غیر قابل اعتماد ارائه دهد.
تغییرات API
- انتشار کلاس
@Deprecatedبه ویژگی ( I882d1 ، b/271441831 ) - نام پارامتر مقدار برای
Enum.valueOfتغییر کرد ( Ia9b89 ) - خطاهای پرتابشدهی بیشتر از enum valueOf ( I818fe )
- ما
renderWatchFaceToSurfaceحذف کردهایم وcreateRemoteWatchFaceViewجایگزین کردهایم که بر روی SurfaceControlViewHost ساخته شده است و به فراخواننده اجازه میدهد تا یک نما از صفحه ساعت را جاسازی کند، که وقتی کلاینتRemoteWatchFaceViewHost#renderWatchFaceفراخوانی میکند، رندر میشود. ( Ib311d ) - ما
renderWatchFaceToSurfaceبهInteractiveWatchFaceClient،HeadlessWatchFaceClientوEditorSessionاضافه کردهایم. معمولاً این روش نسبت به رندر کردن به صورت بیتمپ، عملکرد بهتری خواهد داشت. ( Ieacad ) - نام
ObservableStateStoreبهStateStoreتغییر یافته است. ( Ieb0e2 ) - به جای آرگومانهای سازنده،
DynamicTypeEvaluator.Builderاضافه شد تا آرگومانهای اختیاری بیشتری از جملهObservableStateStoreکه اکنون به طور پیشفرض یک فروشگاه خالی است، مجاز باشند. ( I6f832 ) - ترتیب پارامترها در
DynamicTypeEvaluatorبازسازی شده است. ( Ic1ba4 ) - Executor به متدهای
DynamicTypeEvaluator.bindاضافه شده است. ( I346ab ) - ما متد
startEvaluationبهBoundDynamicTypeاضافه کردهایم تا ارزیابی را پس از اتصال نوع پویا آغاز کند. ( I19908 ) - ارائهدهندگان خدمات پیچیدهسازی با مجوز
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEمیتوانند فرادادهandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESرا ثبت کنند که برای صفحههای ساعت ایمن، فرادادهandroid.support.wearable.complications.SUPPORTED_TYPESرا لغو میکند. ( Id1c73 ) - ما نام
CustomValueUserStyleSettings2بهLargeCustomValueUserStyleSettingsتغییر دادهایم. ( Ic17ac )
رفع اشکالات
-
DynamicTypeValueReceiver#onPreUpdateحذف شده است. ( I2dc35 )
نسخه ۱.۲.۰-آلفا۰۷
۲۲ فوریه ۲۰۲۳
androidx.wear.watchface:watchface-*:1.2.0-alpha07 منتشر شد. نسخه 1.2.0-alpha07 شامل این کامیتها است.
ویژگیهای جدید
از اندروید T، تولیدکنندگان اصلی تجهیزات (OEM) قادر خواهند بود تشخیص دهند که آیا درخواست عارضه از یک واچ فیس در لیست تعریف شده توسط فراداده
android.support.wearable.complications.SAFE_WATCH_FACESدر مانیفست ارائه دهنده آنها باComplicationRequest#isForSafeWatchFace. ارائه دهنده برای دریافت هر چیزی غیر ازTargetWatchFaceSafety.UNKNOWNبه مجوزcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEنیاز دارد.همچنین از اندروید T،
CustomValueUserStyleSetting2برای استفاده در دسترس است که میتواند تا ۱۲.۵ کیلوبایت داده را در خود جای دهد. محدودیت قبلی برایCustomValueUserStyleSetting، ۱ کیلوبایت بود. با وجود افزایش محدودیت اندازه، به توسعهدهندگان واچفیسها توصیه میشود که دادهها را کوچک نگه دارند زیرا تنظیمات هنگام ویرایش از طریق بلوتوث ارسال میشوند و پهنای باند بلوتوث محدود است.
تغییرات API
- ما یک پارامتر اختیاری
eglContextAttribListبهGlesRendererوGlesRenderer2اضافه کردهایم که به شما امکان میدهدEGL14.EGL_CONTEXT_CLIENT_VERSIONارسال شده بهEGL14.eglCreateContextرا تنظیم کنید. ( I2a83e ) - ما کتابخانههای صفحه ساعت را به جای
java.util.function.Consumerبهandroidx.core.util.Consumerمنتقل کردهایم ( I273f5 ). - استثنائات پرتابشده بیشتر از accessors property KT ( Iff9d9 )
- ما
InteractiveWatchFaceClient.isComplicationDisplayPolicySupportedرا اضافه کردهایم تا کلاینت بتواند تعیین کند که آیا باید از طرف واچفیسهای قدیمی پشتیبانی را شبیهسازی کند یا خیر. ( I24c89 ) - ما تصمیم گرفتیم که
isForSafeWatchFaceباید یکIntDefسه حالته باشد. ( Ief2f7 ) - برای اندروید T، ما
ComplicationRequest.isForSafeWatchFaceمعرفی کردهایم که برای استفاده OEM در نظر گرفته شده است و بهcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEنیاز دارد. برای منابع داده در تصویر سیستم، اگر صفحه ساعت درخواستی در لیست صفحه ساعتهای ساعت ایمن مشخص شده توسط منبع داده در مانیفست آن باشد، این دستور مقدار true را برمیگرداند. ( I0cbb6 ) - برای اندروید T،
CustomValueUserStyleSetting2را اضافه کردهایم که میتواند تا ۱۲.۵ کیلوبایت را در خود جای دهد. محدودیت قبلی برایCustomValueUserStyleSetting۱ کیلوبایت بود. ( I0b100 )
نسخه ۱.۲.۰-alpha06
۲۵ ژانویه ۲۰۲۳
androidx.wear.watchface:watchface-*:1.2.0-alpha06 منتشر شد. نسخه 1.2.0-alpha06 شامل این کامیتها است.
ویژگیهای جدید
- کار برای افزودن پشتیبانی از اتصالهای پلتفرم پیچیدگی در حال انجام است، این هنوز آماده استفاده نیست، اما منتظر بمانید!
- ما پشتیبانی از XML
ComplicationSlotرا برای انواع جدید Complexity، GOAL_PROGRESS و WEIGHTED_ELEMENTS، اضافه کردهایم.
رفع اشکالات
- رفع مشکل نشت اطلاعات که باعث میشد ویرایشگر صفحه ساعت به درستی روی دستگاههای سامسونگ منتشر نشود. ( 3b5987 )
- رفع اشکالی که باعث میشد گاهی اوقات هنگام جابجایی بین یک صفحه ساعت با چندین مورد دلخواه، پیچیدگیها به درستی نمایش داده نشوند. ( b38ece )
- رفع اشکال سریالسازی با perOptionScreenReaderNames که منجر به از کار افتادن صفحه ساعت میشد. ( e9f466 )
نسخه ۱.۲.۰-آلفا۰۵
۷ دسامبر ۲۰۲۲
androidx.wear.watchface:watchface-*:1.2.0-alpha05 منتشر شد. نسخه 1.2.0-alpha05 شامل این کامیتها است.
ویژگیهای جدید
مدتی پیش، پشتیبانی از تنظیمات سبک کاربر
UserStyleSettingsسلسله مراتبی را اضافه کردیم و از اندروید T اکنون میتوان بیش از یکComplicationSlotsUserStyleSettingدر یک سلسله مراتب داشت. فقط یکComplicationSlotsUserStyleSettingفعال خواهد بود که بستگی به انتخابهای سبک کاربر دارد.ما با اضافه کردن فیلد
screenReaderNameدر حال بهبود پشتیبانی از صفحهخوان برایListOptionوComplicationSlotsOptionهستیم، توجه داشته باشید که قبل از اندروید T، این فیلد توسط ویرایشگرهای همراه نادیده گرفته میشد.
تغییرات API
- ما یک فیلد اختیاری جدید
screenReaderNameبهListOptionوComplicationSlotsOptionبرای استفاده توسط ویرایشگرها اضافه کردهایم - توسط ویرایشگرهای همراه در دستگاههای قبل از اندروید T. ( I75326 ) نادیده گرفته خواهد شد. - از اندروید T، تنظیمات چندگانه
ComplicationSlotsUserStyleSettingsاکنون در یک سلسله مراتب سبک پشتیبانی میشوند، مادامی که حداکثر فقط یکی از آنها بتواند در هر زمان فعال باشد. ما یک تابع کاربردیfindComplicationSlotsOptionForUserStyleبهUserStyleSchemaاضافه کردهایم تا در صورت وجود، به یافتنComplicationSlotsOptionفعال کمک کند. ( Ic2b06 ) -
RangedValuesTypesبه شیء همراهRangedValueComplicationDataمنتقل شده و بهTYPE_UNDEFINEDتغییر نام داده شده است،TYPE_RATINGو یکTYPE_PERCENTAGEجدید اضافه شده است. ( I55d02 ) - ما
DynamicFloatآزمایشی را بهFloatExpressionتغییر نام داده و آن را با@hideعلامتگذاری کردهایم ( Idf4f1 ). - اضافه کردن حاشیهنویسی
@JvmDefaultWithCompatibility( I8f206 )
نسخه ۱.۲.۰-آلفا۰۴
۹ نوامبر ۲۰۲۲
androidx.wear.watchface:watchface-*:1.2.0-alpha04 منتشر شد. نسخه 1.2.0-alpha04 شامل این کامیتها است.
ویژگیهای جدید
- برای اندروید T، پشتیبانی از دو نوع پیچیدگی جدید،
GoalProgressComplicationDataوWeightedElementsComplicationData، اضافه شده است. -
GoalProgressComplicationDataمشابهRangedValueComplicationDataاست، اما مقدار آن میتواند از هدف فراتر رود (برایRangedValueComplicationDataمقدار در محدوده [min .. max] محدود میشود) که پیامدهایی برای طراحی بصری دارد که ممکن است برای همه صفحههای ساعت مناسب نباشد. -
GoalProgressComplicationDataاز نمودارهای دایرهای و تجزیه و تحلیلهای مشابه دادههای ساده پشتیبانی میکند. - ما پشتیبانی اختیاری برای
ColorRampsبهRangedValueComplicationDataاضافه کردهایم. - برای اندروید T، ما
ComplicationPersistencePolicyوsetCachePolicyبهComplicationDataاضافه کردهایم که در حال حاضر به ارائهدهنده اجازه میدهد تا کنترل کند که آیا یک Complexity پایدار است یا خیر (یعنی آیا پس از راهاندازی مجدد در حافظه پنهان ذخیره میشود یا خیر). اکثر Complexityها نیازی به تنظیم کنترل حافظه پنهان ندارند، اما انجام این کار میتواند موارد گوشهای با دادههای قدیمی را برای برخی از Complexityهایی که مرتباً بهروزرسانی میشوند (مانند Complexityهای دادههای سلامت) برطرف کند. ما همچنینComplicationDisplayPolicyاضافه کردهایم که در آنDO_NOT_SHOW_WHEN_DEVICE_LOCKEDبه یک صفحه ساعت سازگار دستور میدهد که Complexity را هنگام قفل بودن دستگاه نمایش ندهد. ( Ic9574 )
تغییرات API
-
GoalProgressComplicationData،WeightedElementsComplicationDataوColorRampدیگر آزمایشی نیستند. ( Ica9e2 ) -
ComplicationPersistencePolicyوComplicationDisplayPolicyاکنون به درستی به عنوان API های T علامت گذاری شده اند. ( I31d88 ) - سازندهی منسوخشدهی
ComplicationSlotOverlayاکنون دارایDeprecationLevel.WARNINGاست که به آن اجازه میدهد دوباره از جاوا فراخوانی شود. ( Ib308c ) - ما برخی از مشکلات مربوط به سازگاری جاوا با
ComplicationRequestListener،CanvasComplication،ComplicationTapFilterوInteractiveWatchFaceClientرا با حاشیهنویسی آنها با@JvmDefaultWithCompatibility( Id94fc ) برطرف کردهایم. - ما
ProtoLayoutComplicationDataوListComplicationDataآزمایشی را حذف کردهایم. دلیل توسعهدهنده برای این موارد مشخص نبود، امیدواریم در آینده دوباره به آنها بپردازیم. ( I9df05 ) - ما یک
ValueTypeبهRangedValueComplicationDataاضافه کردهایم.WeightedElementsComplicationDataاکنون از رنگ پسزمینه پشتیبانی میکند.DiscreteRangedValueComplicationDataحذف کردهایم زیرا عملکرد آن زیرمجموعهای ازWeightedElementsComplicationDataاست. ( I6446c )
رفع اشکالات
-
isForScreenShotدر کد تساوی و هش قرار دهید. مطمئن شوید کهonRenderParametersChangedمقدار صحیحisForScreenshotدریافت میکند ( I04a41 ). - نشت اطلاعات
WatchFaceControlServiceاز کلاینتهای بدون سر ( e90e00 ) برطرف شد.
نسخه ۱.۲.۰-آلفا۰۳
۵ اکتبر ۲۰۲۲
androidx.wear.watchface:watchface-*:1.2.0-alpha03 منتشر شد. نسخه 1.2.0-alpha03 شامل این کامیتها است.
ویژگیهای جدید
- ویژگی جدیدی اضافه نشده، اما چند اشکال در ویرایشگر صفحه ساعت را برطرف کردهایم.
تغییرات API
-
UserStyleSchema.userStyleSettingsمنسوخ شده به عنوانrootUserStyleSettingsغیر آزمایشی میشود ( Ie96e3 ) -
rootUserStyleSettingsاز حالت آزمایشی ( I8d6b3 ) خارج کنید. - ما
WatchFaceColorsبه عنوان آزمایشی علامت گذاری کردهایم زیرا توسط همه سیستمها پشتیبانی نمیشود ( I6d75d ) -
DisconnectReasonsدر API عمومی قرار دهید تا باIntDefکار کند. ( I791f8 )
رفع اشکالات
- اگر
SysUIاز کار افتاد، هرگونه ویرایشگر ساعت را که باز است ببندید. اگرSysUIاز کار بیفتد و ویرایشگر صفحه ساعت بسته نشود، صفحه ساعت میتواند در حالت ناپایدار باقی بماند زیرا سیستم برای حفظ هرگونه تغییر در سبک کاربر بهSysUIمتکی است. ( ba762a - رفع نشت حافظه در
ComplicationDataSourceInfoRetriever، که در آن یک Coroutine continue کاتلین به عنوان ریشه gc عمل میکرد و فعالیت ویرایشگر را حفظ میکرد. ( 33ee06 )
نسخه ۱.۲.۰-آلفا۰۲
۲۱ سپتامبر ۲۰۲۲
androidx.wear.watchface:watchface-*:1.2.0-alpha02 منتشر شد. نسخه 1.2.0-alpha02 شامل این کامیتها است.
ویژگیهای جدید
برخی از صفحههای ساعت دارای پیکربندیهایی خارج از
UserStyleهستند که از نظر بصری بر آن تأثیر میگذارند (مثلاً انتخاب عکس پسزمینه). ماRenderer.sendPreviewImageNeedsUpdateRequestرا اضافه کردهایم که به صفحه ساعت اجازه میدهد تصویر پیشنمایش بهروزرسانیشده را درخواست کند. توجه داشته باشید که این کار برای کار کردن به بهروزرسانی سیستم مربوطه نیاز دارد.ما همچنین یک API برای صفحههای ساعت اضافه کردهایم تا رنگهایشان را در معرض سیستم قرار دهند که ممکن است بر اساس آن، پالت رنگ خود را انتخاب کند. توجه داشته باشید که این مورد در یک پچ بعدی به صورت آزمایشی انجام شده است.
تقریباً هر نوع
ComplicationDataاکنون ازSmallImagesپشتیبانی میکند.
تغییرات API
- مدیر تصویر زمینه گاهی اوقات میتواند از یک موتور جدا شود و موتور دیگری بسازد. ما یک
DisconnectReasonاز نوع int def اضافه کردهایم وClientDisconnectListenerبا یک متد جدید که شاملDisconnectReasonاست، توسعه دادهایم که به شنونده اجازه میدهد جدا شدن موتور را مشاهده کند. ( I45cce ) - دو پارامتر اختیاری
nameResourceIdوscreenReaderResourceIdبه سازندهComplicationSlotOverlay( I157e8 ) اضافه شد. - ما یک پوشش guava برای overload جدید
getOrCreateInteractiveWatchFaceClientبا یکPreviewImageUpdateRequestedListener( Ic31f0 ) اضافه کردهایم. - ما
Renderer.sendPreviewImageNeedsUpdateRequestاضافه کردهایم که برای واچفیسهایی که حالتی خارج ازUserStyleSchemaدارند و بر نحوه نمایش آنها تأثیر میگذارند (مثلاً واچفیسی با تصویر پسزمینه قابل انتخاب) مفید است. در سمت کلاینتPreviewImageUpdateRequestedListenerبه عنوان یک پارامتر اختیاری بهgetOrCreateInteractiveWatchFaceClientاضافه کردهایم تا این درخواستها را مشاهده کند. ( Iff44a ) - ما API مربوط به نمایش
WatchFaceColorsساده کردهایم، اکنون یک ویژگی ساده به نامwatchFaceColorsدر رندرر وجود دارد که صفحه ساعت میتواند آن را تنظیم کند، این ویژگی باید در صورت لزوم در پاسخ به هرگونه تغییر سبک بهروزرسانی شود. به جای استفاده ازWallpaperManagerبرای مشاهده تغییرات رنگ،OnWatchFaceColorsListenerبهInteractiveWatchFaceClientاضافه کردهایم. ( I490bc ) - ما یک کلاس
WatchFaceColorsاضافه کردهایم که سه رنگ برجسته صفحه ساعت را در خود جای داده و متدهای بازwatchfaceColorsوnotifyWatchFaceColorsChangedرا به Renderer اضافه کردهایم که به سیستم اجازه میدهند رنگهای صفحه ساعت را از طریقWallpaperManager.getWallpaperColors( I3d611 ) دریافت کند. -
ShortTextComplicationData،RangedValueComplicationData،NoPermissionComplicationData(وDiscreteRangedValueComplicationData،GoalProgressComplicationDataوWeightedElementsComplicationDataآزمایشی) اکنون همگیSmallImagesپشتیبانی میکنند. اگر یک صفحه ساعت تصمیم بگیرد یک تصویر پیچیده را با چندین رنگ رندر کند، اکنون این گزینه را دارد که از یکSmallImageچند رنگ استفاده کند، در حالی که قبلاً مجبور بود از یک تصویر تک رنگ استفاده کند. ( I257df ) - Refactor
PreviewImageUpdateRequestedListenerبه یکConsumer<>به جای آن ( Ia875d ) - نوع
OnWatchfaceColorsListenerمتد انتزاعی تکی (SAM) سفارشی را با نوع عمومی SAM جاوا (مصرفکننده) ( I0c489 ) جایگزین کنید. - ما متدهای قدیمی
getOrCreateInteractiveWatchFaceClientوlistenableGetOrCreateInteractiveWatchFaceClientرا کهPreviewImageUpdateRequestedListenerرا مشخص نمیکنند، منسوخ کردهایم ( Iec502 ).
رفع اشکالات
-
DisconnectReason.BINDER_DIEDبهDisconnectReason.ENGINE_DIEDتغییر نام داده است. ( I4eb0e )
نسخه ۱.۲.۰-آلفا۰۱
۱۰ آگوست ۲۰۲۲
androidx.wear.watchface:watchface-*:1.2.0-alpha01 منتشر شد. نسخه 1.2.0-alpha01 شامل این کامیتها است.
ویژگیهای جدید
- ما پشتیبانی آزمایشی برای فرمتهای مختلف Complexity جدید اضافه کردهایم. این حوزه در حال توسعه فعال است؛ این فرمتهای جدید بدون اطلاع قبلی قابل تغییر هستند و در حال حاضر هیچ پشتیبانی رندرکنندهای از
CanvasComplicationDrawableوجود ندارد. - ما همچنین حاشیههای اختیاری به اسلاتهای پیچیدگیها اضافه کردهایم که لمس کردن پیچیدگیهای کوچک را آسانتر میکند.
تغییرات API
- کلاس آزمایشی
BoundingArcاکنون تغییرناپذیر است. ( If624a ) - لمس کردن پیچیدگیهای کوچک میتواند دشوار باشد. برای کمک به کاهش این مشکل، ما پشتیبانی از حاشیههایی را معرفی کردهایم که ناحیه قابل لمس را بدون تأثیر بر رندر افزایش میدهند. مگر اینکه مشخص شده باشد (چه در کد و چه از طریق XML)،
ComplciationSlotsحاشیههایی با اندازه صفر دارند. ( I14089 ) - امضای
getComplicationSlotInflationFactory(CurrentUserStyleRepository)برای برگرداندن یک نمونه کارخانه غیر تهی تغییر کرد. قبلاً برگرداندن تهی یک خطا بود، بنابراین این فقط قرارداد API را واضحتر میکند. ( I0fcc0 ) - ما آرگومان
currentUserStyleRepositoryرا به متدWatchFaceService.getComplicationSlotInflationFactoryاضافه کردهایم تا باcreateComplicationSlotsManager( I2ddd2 ) سازگار باشد. -
UserStyleFlavorsبه یک ویژگی غیر آزمایشی تبدیل شدهاند. ( I69cdc ) - ما
ValueTypeآزمایشی را ازRangedValueComplicationDataحذف کردهایم و به جای آنDiscreteRangedValueComplicationDataآزمایشی را معرفی کردهایم که مانندRangedValueComplicationDataاست، با این تفاوت که محدوده و مقدار آن عدد صحیح است. ما همچنینGoalProgressComplicationDataآزمایشی را معرفی کردهایم که مشابهRangedValueComplicationDataاست، با این تفاوت که برای پیشرفت به سمت یک هدف است که در آن min به طور ضمنی صفر است و مقدار مجاز است بزرگتر ازtargetValueباشد. توجه داشته باشید که برای همه انواعRangedValueحداقل یکی از monochromeImage، text یا title باید مشخص شود. ( I9590c ) - ما
boundsWithMarginsازComplicationSlotStateحذف کردیم زیرا نرمافزار سیستمی موردی برای استفاده از آن ندارد. ( I42e26 ) - ما پشتیبانی آزمایشی برای
WeightedElementsComplicationDataاضافه کردهایم که شامل آرایهای از عناصر (جفتهای وزن و رنگ) به همراه متن/عنوان/تصویر اختیاری است. این موارد ممکن است به صورت نمودار دایرهای نمایش داده شوند که در آن رنگها باید با توجه به متن معنادار باشند، زیرا معمولاً در یک complexion جایی برای رندر برچسبها وجود ندارد. ( I87eea ) -
ColorRampsآزمایشی که به صورت اختیاری توسطRangedValueComplicationDataوGoalProgressComplicationDataاستفاده میشوند، اکنون به شما امکان میدهند توالی حداکثر هفت رنگ و یک پرچم را مشخص کنید که بیان میکند آیا رنگها باید به طور یکنواخت Tween شوند یا اینکه گامهای رنگی با اندازه یکسان رندر شوند. ( I9f5bf ) -
RangedValueComplicationData.drawSegmentedبهvalueTypeتغییر یافته است که یک عدد صحیح (int) باValueType IntDefمتناظر است که به مقدار محدوده شده معنای معنایی میدهد و ممکن است توسط رندرکنندهی Complexity برای تأثیرگذاری بر سبکبندی استفاده شود. ( I0616b ) - ما پشتیبانی آزمایشی برای
ColorRangesاختیاری را بهRangedValueComplicationDataاضافه کردهایم. معمولاً پیچیدگیها با رنگهای انتخابی صفحه ساعت رندر میشوند، اما گاهی اوقاتComplicationDataSourceبرای تنظیم رنگها بهتر است، مثلاً وقتی که معنای خاصی دارند. مثلاً از قرمز به آبی برای دما. ( I5153a ) - ما یک راهنمای آزمایشی
drawSegmentedبهRangedValueComplicationDataاضافه کردهایم. این به رندرکنندهها علامت میدهد که نشانگر مقدار محدودهبندیشده را با بخشهایی رسم کنند، که در آن 1 بخش = 1 واحد است. ( I7d7c1 )
رفع اشکالات
- ما قابلیت تعریف
ComplicationSlotBoundsنسبت به یک سیستم مختصات صفحه نمایش از پیش تعریف شده اضافه کردهایم. ( I0985d )
نسخه ۱.۱
نسخه ۱.۱.۱
۱۰ آگوست ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.1 منتشر شد. نسخه ۱.۱.۱ شامل این کامیتها است.
- این یک نسخه رفع اشکال است و به کاربران نسخه ۱.۱.۰ اکیداً توصیه میشود که آن را ارتقا دهند.
رفع اشکالات
Watch face initialization is asynchronous and if a complication is received before the watch face is ready it gets put on the
pendingInitialComplicationslist and is applied later. UnfortunatelypendingInitialComplicationswas applied too soon which meant there was a window of time during watch face initialization where complications would still get put onpendingInitialComplicationsand be ignored. This has now been fixed. In addition This patch fixes a bug whereComplicationRendererwas wrongly trying to load placeholders asynchronously, which failed leading to the compilation graphic never updating. Finally this patch fixes a hopefully theoretical bug where multiplependingInitialComplicationsneed to be merged. ( 0d03ba3 )Fix potential deadlock in
InteractiveInstanceManagerwheregetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstancewas holding the lock longer than necessary. Usually we'd expectengine.setUserStyleto be quick but if for some reason it's not then we could end up with a deadlock/ANR. This patch moves unnecessary work out of the lock, removing the potential for a deadlock.( 5a2adca )Fix several issues that retained
WatchFaceService. The WakeLock can sometimes retain theWatchFaceService, adding arelease()call fixes this. Also theStateFlowscan retainWatchFaceService, canceling the underlyingCoroutineScopesfixes that.( fd48138 )Add timeouts to
awaitDeferredWatchFace* and fixwatchfaceOverlayStyleNullPointerException. In normal circumstances this shouldn't timeout including after fresh install andDirectBootscenarios where the CPU load is high. We've also fixed a NPE ifgetWatchfaceOverlayStyleis called afterclose().( a4c3a5a )
نسخه ۱.۱.۰
۱۵ ژوئن ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.0 is released. Version 1.1.0 contains these commits.
Important changes since 1.0.0
Improved Editing:
- We added support for hierarchical schemas, which allows a hierarchy of styles to be scribed by editor UIs. You can now specify separate icons for use by on watch face and companion editors.
- There is opt-in support for multiple instances of a watch face, each instance has a unique ID available across all API surfaces.
- You can now specify human readable names for
ComplicationSlotsfor use in editors. - Experimental support for styling “flavors”, a curated selection of styles which will be visible from the companion editor.
- When editing two instances of the watchface are loaded, it's now possible for watchface instances to share resources, saving memory
- When picking a complication in the on watch face editor, the current provider is now preselected.
Improved Complications:
- You can now specify the
ComplicationTypefor the primary and secondary data sources, giving developers more flexibility for the out of box experience. - We added
ComplicationDataTimelinewhich provides a sequence of time-gated data to be delivered to the watch face which can be cached and updated automatically. For example, today's weather forecast at various times or multiple upcoming calendar events. - The
ComponentNameof the complication provider is part of theComplicationData. - Complications are now cached which provides a better experience when switching between watch faces.
Other changes:
- The
UserStyleSchemaandComplicationSlotscan now be defined in XML. This simplifies watch face construction and allows for faster metadata queries from the system. - Watch faces can now influence the colors used for rendering the system overlay.
Version 1.1.0-rc01
۱۸ مه ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.0-rc01 is released. Version 1.1.0-rc01 contains these commits.
ویژگیهای جدید
- We've made some usability tweaks to watchface XML support, making it easier to specify
ComplicationSlotBoundsand supporting references. Experimentation with edge complicationBoundingArccontinues, plumbing it through todrawHighlightalthough it's not recommended for use at that time.
تغییرات API
- We've added an experimental overload of
drawHighlightwhich accepts aBoundingArcparameter. ( I705f8 ) - Watch face XML now supports resource references. It lets you use the same constants both in XML and your code. ( I3ef61 )
- We've added the ability to define
ComplicationSlotBoundsincenter_x,center_y,size_x,size_yform. Now it is also possible to use different units (ie dp) using resource references. ( Iace98 )
رفع اشکالات
- Fix
runBlockingWithTracingwhich was running tasks on the wrong context.( 4f595fe ) - Make
BaseEditorSession.closesynchronous. The problem withBaseEditorSession.closebeing asynchronous is that we release theComplicationDataSourceInfoRetrievertoo late leading to warning spam in logcat. This was probably harmless but logcat spam is distracting and should be avoided.( 35a5308 )
Version 1.1.0-beta02
۱۱ مه ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.0-beta02 is released. Version 1.1.0-beta02 contains these commits.
ویژگیهای جدید
- We've added experimental support for new
ComplicationDatatypes, these are not yet ready for use but watch this space.
تغییرات API
- We've added
BoundingArc, an experimental class that describes the geometry of an edge complication slot. This has been added toComplicationSlotand plumbed through toComplicationSlotStateandWatchFaceMetadataClient. ( I61a40 ) - We've added the ability to inherit settings in
UserStyleSettingXML. It lets you reduce verbosity and share a setting between watchfaces. ( Ief841 ) - We have added two new experimental types of
ComplicationData:ListComplicationData&ProtoLayoutComplicationData. Currently there's no rendering support for either of these types and WearOS doesn't currently recognize these types if added to aComplicationDataSource'smanifest. ( I1811c )
رفع اشکالات
- Fix serialization of
TimeLineEntrytype. We were not serializing theTimeLineEntrytype which meant cachedTimeLineEntriesof type NoData would be incorrectly interpreted as having the parent complication's type leading to NPEs when non-existent required fields were accessed. ( 55ffdf5 ) - Fix a bug where
setComplicationDatadropped timeline fields( fb392f5 ) - Fixes a bug where very occasionally
runBlockingWithTracingwould lead to an NPE( 12ca62e ) - Fixes a bug where we sometimes get
ClassNotFoundException: android.support.wearable.complications.ComplicationTextwhen receiving a complication.( 217942d9 ) - Fixes a bug in
GlesRenderer.backgroundThreadInitInternalwhere it was only callingonBackgroundThreadGlContextCreatedifEGL14.eglCreateContextwas called. Fixes another bug where there was a visual glitch in the screenshot caused byverticalFlip.( c674ad2 ) - Fix
WatchFaceServiceXML version check, it was loading from the wrong package.( dfa06f3 ) - Placeholder wire format now uses an inner bundle. We don't want placeholders to break existing watchfaces which might use the hidden inner aswcComplicationData. Previously the wire format of a
NoDataComplicationdata stored the placeholder in the usual fields (problematic because old watch faces would render the placeholder string which isn't intended), instead we now use an inner bundle to fully isolate this.( d5e7bd2 )
Version 1.1.0-beta01
۲۰ آوریل ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.0-beta01 is released. Version 1.1.0-beta01 contains these commits.
تغییرات API
- Now
WatchFaceMetadataClientmethods (getUserStyleSchema,getComplicationSlotMetadataMap,getUserStyleFlavors) andHeadlessWatchFaceClient.getUserStyleFlavorsthrow unchecked RuntimeException instead ofWatchFaceException. ( I0718a ) -
WatchFaceMetadataClient.WatchFaceExceptionhas been moved out of the class to allow it to be reused. ( I4e869 )
رفع اشکالات
-
WatchFaceMetadataClientwill no longer crash when sent partialComplicationSlotBounds.( Iaafd )
Version 1.1.0-alpha05
۶ آوریل ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.0-alpha05 is released. Version 1.1.0-alpha05 contains these commits.
ویژگیهای جدید
- You can now tell which data source sent a
ComplicationDataby inspectingComplicationData.dataSource, some watch faces may use this to customize complication display. ( I44a73 )
تغییرات API
-
Renderer.CanvasRendererandRenderer.GlesRendererhave been deprecated in favor ofRenderer.CanvasRenderer2andRenderer.GlesRenderer2which supportSharedAssetswhich are passed to the render methods. For java interop we've introducedListenableCanvasRenderer2andListenableGlesRenderer2. ( I31ffa ) - Added
@WatchFaceFlavorsExperimentalability to define flavors - preconfigured list of styled watchfaces ( I04dd0 ) -
Renderer.sharedAssetsis now a StateFlow and we've removed the unusedRenderer.SharedAssetsFactory( I12ac5 ) -
UserStyleSchema.userStyleSettingsis not deprecated anymore ( Iba7e3 ) - We've added
HeadlessWatchFaceClient.getUserStyleSchemaDigestHashwhich allows aHeadlessWatchFaceClientto avoid the relatively low overhead of passing the schema over AIDL before computing the digest hash. ( I33597 ) - We've added
isUserStyleSchemaStatictoWatchFaceMetadataClientwhich is true if and only if theUserStyleSchemacan be relied on not to change unless the watch face APK is updated. ( I45a3f ) - We have added
getDigestHashtoUserStyleSchemawhich computes a digest hash of the schema. This can be used to efficiently determine if theUserStyleSchemahas changed. ( I2063d ) -
METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTEDrenamed toMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED( I9ba5d ) -
UserStyleSetting.OnWatchEditorDatahas been renamed toUserStyleSetting.WatchFaceEditorData, it contains data that's used purely by the on watch face editor. ( If3afb )
Version 1.1.0-alpha04
۹ مارس ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.0-alpha04 is released. Version 1.1.0-alpha04 contains these commits.
تغییرات API
- Up to date
ComplicationDatamay not always be available (eg expired cached ComplicationData) so we've extendedNoDataComplicationwith an optional placeholder ComplicationData and addedComplicationText.PLACEHOLDER,MonochromaticImage.PLACEHOLDER,SmallImage.PLACEHOLDER,PhotoImage.PLACEHOLDERwhich are only allowed to be used inside the context of aNoDataComplicationDataplaceholder. If selected these placeholders are suggested to be rendered with gray boxes/arcs. ( I6285d ) - We've added
ComplicationData.getNextChangeInstantwhich tells you the next Instant after the reference Instant at which any field of the complication may change. This is used internally to schedule frames for complication updates. Eg if a watch face normally updates once per minute, setting the stop watch complication will cause it to update once per second. ( I7ceb2 ) -
EditorSession.watchFaceIdcan now be used on all API levels. In addition its value will now always be consistent withWatchState.watchFaceInstanceId. ( I323b9 ) - The
getPendingIntentForTouchEventAPI is no longer necessary since the underlying issue has been fixed in the framework, so all the related APIs have been removed. Watchfaces do not need to do anything special forPendingIntentsto fire, even if the home button has recently been pressed. ( I1f2e8 ) - We've added
RendererParameters.isForScreenShotwhich will be true if the render is for a screen shot. Some watch faces with animations need to know this in order to make adjustments to ensure the best results. ( I96d99 ) - We've added
WatchFaceExceptionReasontoWatchFaceExceptionto give some context to what went wrong. ( I01d15 ) -
ComplicationDataSourceService.onImmediateComplicationRequesthas been removed, insteadComplicationRequest.immediateResponseRequiredhas been added to signal that the provider needs to respond quickly (ideally responding in < 100ms). Note this functionality is guarded behind the privilegedcom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATEpermission. ( Ie6b23 ) - Updated nullability in core and appcompat to match Tiramisu DP2 ( I0cbb7 )
رفع اشکالات
- Now watchface app crashes with an exception if the schema validation fails ( Ia400f )
Version 1.1.0-alpha03
۹ فوریه ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.0-alpha03 is released. Version 1.1.0-alpha03 contains these commits.
تغییرات API
- We've added experimental support for hierarchical style schemas. We've added a new property to
androidx.wear.watchface.style.UserStyleSetting.Option, childSettings which is initially only used byListOption. This allows a hierarchy of styles to be described for use by Editor UIs, the underlying UserStyle is unchanged and is still aMap<String, ByteArray>. ( Iaf6f4 ) - We've added
WatchFace.OverlayStylewhich allows the watch face to configure the rendering of the system status overlay. ( I8520d ) - We've introduced
clearWithBackgroundTintBeforeRenderingHighlightLayera new optional constructor parameter forCanvasRenderer(default is false), if set to true then the canvas will be cleared with the background tint color. ( Ie01e5 ) - Added
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTEDmetadata key which allows complication data sources to indicate they can provide a default value without any configuration ( Icc0d4 ) - It's common when editing a watch face for there to be both an interactive and a headless instance. To help save memory we've introduced
Renderer.SharedAssetswhich allows a watch face renderer to share immutable data (eg textures and shaders) between instances.GlesRenderer.setEglConfigandGlesRenderer.setEglDisplayare deprecated, it was never intended for these to be settable, and doing so would have led to undefined behavior. ( I0d9e7 ) - We've added
setNameResourceId&setScreenReaderNameResourceId(which reference string resources) toComplicationSlot.Builderand corresponding getters inandroidx.wear.watchface.client.ComplicationSlotState. This allows the system to fetch the names of ComplicationSlots for use in editors and screen readers. ( If6c6a ) -
WatchfaceMetadataClient.getUserStyleSchemaandgetComplicationSlotMetadataMapnow throwWatchFaceExceptioninstead ofRemoteException. ( I86f11 ) -
onSynchronousComplicationRequestand related functions inComplicationDataSourceServicehave been renamed toonImmediateComplicationRequestetc... ( I87ba0 ) - Watch face editors have much less screen real estate than companion editors, therefore it makes sense to support different icons for on watch face editors. This patch adds
OnWatchEditorData(currently containing just an icon) to all UserStyleSettings and where appropriate their Option classes. ( If1886 ) - We've added
@JvmOverloadsto ListenableGlesRenderer's constructor for better java interop. ( I2974a )
رفع اشکالات
-
ListenableGlesRenderer's constructor is now correctly marked as@Throws(GlesException::class), and it is now possible to extend this class in java. ( Iac6d0 ) - Fixes bug with
PhotoImageComplicationDatatapAction not being correctly handled ( I1cc30 )
Version 1.1.0-alpha02
۱۲ ژانویه ۲۰۲۲
androidx.wear.watchface:watchface-*:1.1.0-alpha02 is released. Version 1.1.0-alpha02 contains these commits.
ویژگیهای جدید
- To aid debugging and testing,
ComplicationDataand related subclasses now have overridden hashcode, equals and toString methods making them easier to work with.
تغییرات API
-
WatchfaceMetadataClientmethods once again throwRemoteExceptionswhere appropriate, making it easier for client code to catch errors from the watch face. ( I78785 ) -
ComplicationDataand sub classes now have hashcode, equals and toString. ( I24bc6 )
Version 1.1.0-alpha01
۱۵ دسامبر ۲۰۲۱
androidx.wear.watchface:watchface-*:1.1.0-alpha01 is released. Version 1.1.0-alpha01 contains these commits.
ویژگیهای جدید
The
UserStyleSchemaandComplicationSlotscan now be defined in XML. This simplifies watch face construction. In addition,WatchFaceMetadataClientqueries are faster because it doesn't need to bind to the service to get the metadata. TheWatchFaceMetadataClientandListenableWatchFaceMetadataClientare no longer experimental and will become part of the stable api. The system will be able to optionally support multiple instances of a watch face, each with distinct user defined styling options. These will be visible in the watch face picker. To opt into this a watch face must include the following meta data tag in its manifest.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />Some watch faces have state that's not captured in the
UserStyle, to support this and multiple instances, the watch face's instance ID is now available viaWatchState.watchFaceInstanceId.ComplicationDatais now being cached to allow complications to be displayed immediately upon loading. SometimesComplicationDatais cached in memory by the system and sometimes it is serialized by the watch face libraries. When serialized any associated tapAction will be lost, if this happensComplicationData.tapActionLostDueToSerializationwill returntrueand the watch face should render the complication differently (eg grayed out or semi-transparent) to signal that it can't be tapped. The system will send updatedComplicationDatawith atapActionas soon as possible.Some
ComplicationDatashouldn't be cached for a long time, to support this we've added a more general featureComplicationDataTimeline. This can be used to provide a sequence of time-gatedComplicationDatato be delivered to the watch face which can be cached and updated automatically. For example, today's weather forecast at various times or multiple upcoming calendar events.ComplicationRequestListenerhas been extended with a new methodonComplicationDataTimelinewhich you can use to return this data.DefaultComplicationDataSourcePolicyhas been extended so you can specify theComplicationTypefor the primary and secondary data sources.We've added support for synchronous complication providers where the complication is updated at a higher frequency than normal, up to once per second when the watch face is visible and non-ambient. Note: synchronous complication providers may have limited usage due to memory pressure concerns.
The
PendingIntentTapListenerchanges are likely to be reverted because we solved the underlying problem (it's not possible for the watch face to launch activities for 5 seconds after pressing the home button) in the framework instead.
تغییرات API
-
ComplicationData.isCachedhas been changed totapActionLostDueToSerializationwhich is more useful when determining if the complication slot should be rendered differently to signal that it can't be tapped. ( I6de2f ) - Added
ComplicationDataTimelinetowear-complication-data-source. This can be used to provide a sequence of time-gatedComplicationDatato be delivered to the watch face which can be cached and updated automatically. For example, today's weather forecast at various times or multiple upcoming calendar events.ComplicationRequestListenerhas been extended with a new methodonComplicationDataTimelinewhich you can use to return this data. There's a new kotlin wrapperSuspendingTimelineComplicationDataSourceServicefor suspending data source services. ( Idecdc ) - Added
PendingIntentTapListenerandWatchFaceControlClient.getPendingIntentForTouchEvent. This can help watch faces that need to launch intents in response to taps to work around a problem where the framework blocks launching new activities for 5 seconds after pressing the home button. ( I98074 ) - Introduced a per-watchface
ComplicationDatacache. The purpose of this is to allow the watch face to display last known complication data values upon loading until the system has had a chance to update them. There is a new API methodWatchFaceControlClient.hasComplicationCacheintended for OEMs. This may influence the system's strategy for sending complications to a watch face. In addition,ComplicationDatahas anisCachedproperty and it is recommended that cached complications are rendered differently because thetapActioncan not be cached and will benullin a cached complication. ( I404b0 ) - The watch face's instance ID is now available via
WatchState.watchFaceInstanceId. Most watch faces won't need to use this, but if there's a per-watch face state that's not stored in the Schema then this is the key to use to identify the watch face instance. To help support this you can now provide an ID when callingWatchFaceControlClient.createHeadlessWatchFaceClient. ( I1ff98 ) - Extended
DefaultComplicationDataSourcePolicywith the ability to set the defaultComplicationTypesfor the primary, secondary provider and for the fallback system provider.ComplicationSlot.defaultDataSourceTypeis now deprecated. ( If0ce3 ) -
ComplicationSlot.configExtrasis now mutable and can be updated before callingEditorSession.openComplicationDataSourceChooser(). ( I6f852 ) - Added
WatchFace.setComplicationDeniedDialogIntentandsetComplicationRationaleDialogIntent. These intents are launched to to show a rationale dialog before requesting complication permissions, and another dialog explaining that complication permission is needed when trying to edit a complication when permissions have been denied (the provider chooser will fail to open so the dialog is needed). ( I3a29c ) - The
UserStyleSchemaandComplicationSlotscan now be defined in XML. This simplifies watch face construction and makesWatchFaceMetadataClientqueries faster as they do not need to bind to the service to get the metadata. ( I85bfa ) - Added
InteractiveWatchFaceClient.supportsPendingIntentForTouchEventso a client can determine if a watch face supportsgetPendingIntentForTouchEvent. ( I0b917 ) -
WatchFaceMetadataClientandListenableWatchFaceMetadataClientare no longer experimental. They can be used to efficiently obtain watch face metadata, where possible without opening a binder to the watch face. ( Ibb827 ) - Added support for synchronous complication providers where the complication is updated at a higher frequency than normal, up to once per second when the watch face is visible and non-ambient. To use this the provider must include a new
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDSmetadata tag in its manifest and overrideonSynchronousComplicationRequest. Depending on the nature of the data source, it may also need to overrideonStartSynchronousComplicationRequestsandonStopInteractiveComplicationRequeststo get notifications of when the complication enters and exits interactive mode. ( I8fe9d )
نسخه ۱.۰
نسخه ۱.۰.۱
۹ فوریه ۲۰۲۲
androidx.wear.watchface:watchface-*:1.0.1 is released. Version 1.0.1 contains these commits.
رفع اشکالات
- Fixes bug with
PhotoImageComplicationDatatapAction not being correctly handled ( I1cc30 )
نسخه ۱.۰.۰
۱ دسامبر ۲۰۲۱
androidx.wear.watchface:watchface-*:1.0.0 is released. Version 1.0.0 contains these commits.
Major Features of 1.0.0
The androidx.wear.watchface package is the new recommended library for developing WearOS watch faces. It has a number of new features over the old Wearable Support Library.
- User styling (eg to change the color palette, the style of the watch hands, the look of the hour marks etc) is directly supported by the library (see
androidx.wear.watchface.style). It's now much easier to develop an on watch face editor using androidx.wear.watchface.editor and your watch face can be edited from the system companion app without you needing to write any extra code. - Best practices baked in. The library automatically generated screen reader content labels for complications (you can also add your own ones), and the framerate automatically drops when the battery is low and not charging to improve battery life.
- Less code is needed to develop a watch face, especially for complications where a lot of the boilerplate has moved into the library.
رفع اشکالات
- Fix
EditorSession.userStyle.compareAndSet( I6f676 ) - Fix very short watch face delays ( Iffb97 )
- Dispatch
InteractiveWatchFaceImpl.onDestroyon the UI thread ( I83340 ) - Fix several problems with broadcast receivers ( I7d25f )
Version 1.0.0-rc01
۳ نوامبر ۲۰۲۱
androidx.wear.watchface:watchface-*:1.0.0-rc01 is released. Version 1.0.0-rc01 contains these commits.
رفع اشکالات
Fix dump() (called by adb shell dumpsys) which got broken by flow migrations. ( 087cf9e )
Ensure proper ordering of writeDirectBootPrefs. We want writeDirectBootPrefs to always run after initStyleAndComplications or we risk delaying UI thread init.( 37650ac )
Ensure Renderer.onDestroy is called. In the scenario where the renderer has been created but WF init has not completed and Engine.onDestroy is called, we need to call Renderer.onDestroy. ( f9952dc )
Optimization/fix to isBatteryLowAndNotCharging. This patch moves the initial setup of isBatteryLowAndNotCharging earlier which means it can be done in parallel with createWatchFace. In addition we now listen to ACTION_POWER_DISCONNECTED. ( ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive to be false after close ( ab9774e )
Version 1.0.0-beta01
۲۷ اکتبر ۲۰۲۱
androidx.wear.watchface:watchface-*:1.0.0-beta01 is released. Version 1.0.0-beta01 contains these commits.
Version 1.0.0-alpha24
۱۳ اکتبر ۲۰۲۱
androidx.wear.watchface:watchface-*:1.0.0-alpha24 is released. Version 1.0.0-alpha24 contains these commits.
تغییرات API
- Classes in package
androidx.wear.watchface.complicationshave been moved into a newwear:watchface:watchface-complicationsproject. Note this means you can't include this library as well as any previous alpha version ofwear:watchface:watchface-complications-databecause you'll get errors about duplicate classes. ( I97195 ) - Renderer.dump has been renamed to Renderer.onDump and has been annotated with @UiThread. ( I44845 )
-
InteractiveWatchFaceClient.addWatchFaceReadyListenerhas been renamed toaddOnWatchFaceReadyListenerandremoveWatchFaceReadyListenerhas been renamed toremoveOnWatchFaceReadyListener. ( I48fea ) - EditorSession
getComplicationsPreviewDataandgetComplicationsDataSourceInfoare no longer suspend functions, instead they areStateFlow<>properties whose value is initially null. In ListenableEditorSessiongetListenableComplicationPreviewDataandgetListenableComplicationsProviderInfohave been removed in favor of the newStateFlow<>objects from the base class. If you need to listen to changes in java code, consider usingandroidx.lifecycle.FlowLiveDataConversions.asLiveDatato convert toLiveData<>. ( Ic5483 )
Version 1.0.0-alpha23
۲۹ سپتامبر ۲۰۲۱
androidx.wear.watchface:watchface-*:1.0.0-alpha23 is released. Version 1.0.0-alpha23 contains these commits.
ویژگیهای جدید
The watchface library is now a single library group, and as a result the libraries have moved and you will need to update your gradle imports as follows:
| قدیمی | جدید |
|---|---|
androidx.wear:wear-complications-data | androidx.wear.watchface:watchface-complications-data |
androidx.wear:wear-complications-data-source | androidx.wear.watchface:watchface-complications-data-source |
androidx.wear:wear-watchface | androidx.wear.watchface:watchface |
androidx.wear:wear-watchface-complications-rendering | androidx.wear.watchface:watchface-complications-rendering |
androidx.wear:wear-watchface-client | androidx.wear.watchface:watchface-client |
androidx.wear:wear-watchface-client-guava | androidx.wear.watchface:watchface-client-guava |
androidx.wear:wear-watchface-data | androidx.wear.watchface:watchface-data |
androidx.wear:wear-watchface-editor | androidx.wear.watchface:watchface-editor |
androidx.wear:wear-watchface-editor-guava | androidx.wear.watchface:watchface-editor-guava |
androidx.wear:wear-watchface-guava | androidx.wear.watchface:watchface-guava |
androidx.wear:wear-watchface-style | androidx.wear.watchface:watchface-style |
تغییرات API
- Migrate the separate
androidx.wearWatchface and complications libraries intoandroidx.wear.watchfacelibrary group. ( b25f3c0 ) - Added EditorRequest.canWatchFaceSupportHeadlessEditing to let a client know if a watchface editor supports headless editing. Note there will be some false negatives with this because support was added in asop/1756809 however it will return the correct value for all future watchfaces. ( ca55590 )
- Renderer now has a dump() method which can be overridden to add custom data to the information generated by ABD shell dumpsys activity service WatchFaceService. ( 95235f9 )
- InteractiveWatchFaceClient.addWatchFaceReadyListener now specifies the executor first. ( 563ac2f )
- StateFlowCompatHelper has been removed. asLiveData (androidx.lifecycle.asLiveData) should be used instead. ( bd35d3 )
- CurrentUserStyleRepository.userStyle is no longer mutable. ( I44889 )
- WatchFaceReadyListener has been renamed to OnWatchFaceReadyListener. ( Ic12a9 )
رفع اشکالات
- InteractiveInstanceManager.deleteInstance to call onDestroy This is needed to ensure InteractiveWatchFaceImpl gets garbage collected.( fce4af8 , b/199485839 )