תצוגת שעון ב-Wear
הערה: תצוגות השעון חייבות להיות ב-Watch Face Format כדי שיהיה אפשר להתקין אותן במכשירים עם Wear OS 5 ואילך שמותקן מראש, וגם בכל תצוגות השעון החדשות שמתפרסמות ב-Google Play.
החל מינואר 2026, תצוגות שעון יצטרכו להיות בפורמט Watch Face כדי שיהיה אפשר להתקין אותן בכל מכשירי Wear OS.
מידע נוסף על השינויים שמשפיעים על המשתמשים זמין במאמר הזה במרכז העזרה.
| העדכון האחרון | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסת אלפא |
|---|---|---|---|---|
| 17 בדצמבר 2025 | 1.2.1 | - | 1.3.0-beta01 | - |
הצהרה על יחסי תלות
כדי להוסיף תלות ב-Wear, צריך להוסיף את מאגר Google Maven לפרויקט. מידע נוסף זמין במאמר בנושא מאגר Maven של Google.
מוסיפים את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:
Groovy
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" }
Kotlin
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" }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ב-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. נשמח לשמוע מכם אם תגלו בעיות חדשות או אם יש לכם רעיונות לשיפור הספרייה הזו. לפני שיוצרים ספרייה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להוסיף את ההצבעה שלכם לבעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במאמרי העזרה בנושא כלי המעקב אחר בעיות.
גרסה 1.3
גרסה 1.3.0-beta01
17 בדצמבר 2025
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)
תיקוני באגים
- כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP בגרסה 2.0.0 ומעלה. (I48968, b/407632515)
גרסה 1.3.0-alpha07
23 באפריל 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha07 משוחרר. גרסה 1.3.0-alpha07 מכילה את הקומטים האלה.
תכונות חדשות
- אפשר להגדיר סכימת UserStyle לתצוגת שעון כבר זמן מה, ואפשר להגדיר
ColorUserStyleSettingב-XML.
שינויים ב-API
- כדי להשתמש בפרויקטים שפורסמו עם Kotlin 2.0, צריך KGP בגרסה 2.0.0 ומעלה. (Idb6b5)
- נוסף Watch Face Push API שמאפשר לאפליקציית Wear OS להתקין תצוגת שעון בשעון באופן פרוגרמטי.
תיקוני באגים
- מומלץ לספקי נתוני שעון שמשתמשים בגרסה 1.3.0-alpha06 לשדרג, כי תוקן באג שגורם לקריסה ב-
ComplicationDataSourceUpdateRequesterבגרסה הבאה של WearOS.
גרסה 1.3.0-alpha06
26 במרץ 2025
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 Format, ובסופו של דבר יוסרו מ-AndroidX. ממשקי ה-API של רכיבי המידע לא הוצאו משימוש והם יישארו. (Ice960)
- ממשקי ה-API של רכיבי המידע יכולים עכשיו לתקשר ישירות עם
WearSDK, מה שהופך את התהליך ליעיל יותר כי יש פחות קפיצות של IPC.
גרסה 1.3.0-alpha05
15 בינואר 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha05 משוחרר. גרסה 1.3.0-alpha05 מכילה את ההתחייבויות האלה.
תכונות חדשות
בדרך כלל, המשתמש יכול לבחור צבעים לתצוגת השעון באמצעות ListUserStyle. השיטה הזו עובדת, אבל היא כוללת שליחה של הסמלים באמצעות Bluetooth לכלי העריכה הנלווה, וזה לא יעיל. לכן הוספנו את ColorUserStyleSetting, שבו המטען הייעודי הוא רשימה של צבע אחד או יותר לכל סגנון, והפורמט שלו קומפקטי הרבה יותר.
הוספנו תכונה שפונה ליצרני ציוד מקורי (OEM), שמאפשרת לספקי רכיבים של OEM להוסיף תוספים ל-ComplicationData לשימוש בתצוגות שעון של OEM.
שינויים ב-API
- בכיתות
UserStyleSettingו-UserStyleOptionיש עכשיו כלי בנייה, והשימוש בהם הוא הדרך המומלצת ליצירת כיתות. (Iacd03) - תמיכה בהעברת תוספים ב-
ComplicationData. התכונה הזו מיועדת לשימוש של יצרני ציוד מקורי (OEM) ששולטים גם בספק של רכיב המידע וגם בתצוגת השעון שמקבלת את המידע. כדי להגדיר תוסף נדרשת ההרשאהcom.google.android.wearable.permission.COMPLICATION_EXTRAS. (I4e3b2) - בדרך כלל, בתצוגות שעון המשתמש יכול לבחור צבעים באמצעות
ListUserStyle, כשכלListOptionמיוצג על ידי סמל. מכיוון שסכימותUserStyleנשלחות באמצעות Bluetooth, חשוב להקטין את גודל הסכימה. זה יכול להיות בעייתי אם יש עשרות אפשרויות צבע בגלל כל הסמלים האלה. כדי לעזור לכם, הוספנוColorUserStyleSettingבמקרים שבהם האפשרות כוללת רשימה של צבעים במקום סמל, וכך היא תופסת הרבה פחות מקום. (Ib542e) -
ColorUserStyleSettingו-ColorOptionדורשים API 34 כדי להשתמש בהם. (I8771d)
תיקוני באגים
- הספרייה הזו משתמשת עכשיו בהערות לגבי ערכי null של JSpecify, שהן הערות לשימוש בסוגים. מפתחי Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון:
-Xjspecify-annotations=strict(זו ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin). (Ifd363, b/326456246)
גרסה 1.3.0-alpha04
18 בספטמבר 2024
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 מומלץ לעדכן לגרסה 8.1 ואילך של D8. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, b/345472586)
גרסה 1.3.0-alpha03
17 באפריל 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha03 משוחרר. גרסה 1.3.0-alpha03 מכילה את הקומטים האלה.
שינויים ב-API
- הוספנו את
EditorSession#setOverrideComplicationsשקובע באופן זמני אתComplicationDataשל מופע לוח השעון הבסיסי בזמן העריכה. אם הסיבוכים משתנים לעיתים רחוקות, השיטה הזו יעילה יותר מהעברת שינויים באמצעותEditorSession#renderWatchFaceToBitmap. (I19384)
תיקוני באגים
- בעבר,
selectComplicationDataForInstantקרא ל-toApiComplicationDataבכל ציר זמן, כלומר בדיקת השוויון הבאה של ההפניה === תמיד נכשלה. המשמעות היא שסיבוכים נטענו מחדש בכל פריים, מה שגרם לניצול הסוללה. (717406)
גרסה 1.3.0-alpha02
3 באפריל 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02 משוחרר. גרסה 1.3.0-alpha02 מכילה את הקומטים האלה.
תכונות חדשות
- עכשיו אנחנו משתמשים בשוויון הפניה כדי להשוות בין best לבין
selectedDataכי האופרטור equals יקר. (446b00)
שינויים ב-API
- הוספנו API דינמי ללא חלופה ל-
GoalProgressComplicationData. (c33264)
גרסה 1.3.0-alpha01
7 בפברואר 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha01 משוחרר. גרסה 1.3.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
WatchFaceServicesיכולים לעבור אתחול בו-זמנית, ולכן הם צריכים להיות חסרי מצב. כדי לתמוך בזה, הוספנו אתStatefulWatchFaceServiceשבו מועבר ערך נוסף שהוגדר על ידי המשתמש ונוצר על ידיcreateExtra()לכל ההחלפות שמופעלות במהלך האתחול.- ב-
GlesRenderer2יש עכשיו עומס יתר של בנאי שמאפשר לציין רשימה של מאפיינים לניסיון בתורו עםeglChooseConfig.
שינויים ב-API
-
StatefulWatchFaceServiceתומך עכשיו בהחלפה שלgetComplicationSlotInflationFactoryשאליה מועבר המשתנה הנוסף שמוגדר על ידי המשתמש ונוצר על ידיcreateExtra(). (I82d9f) - חלק מהעיצובים של השעון צריכים לשתף נתונים משניים שנוצרו במהלך
createUserStyleSchemaעם שיטות האתחול האחרות. מכיוון שלא הייתה חלופה טובה יותר, מפתחים בדרך כלל יצרו אתWatchFaceServicesשלהם עם שמירת מצב. זה מסוכן כי יכולים להיווצר כמה מופעים בו-זמנית, מה שעלול לגרום לבאגים. כדי לפתור את הבעיה הזו, הוספנו אתStatefulWatchFaceServiceואתStatefulWatchFaceRuntimeService, שבהם נוצר סוג שהוגדר על ידי המשתמש על ידיcreateExtra()ומועבר לשיטות היצירה השונות כפרמטר. (If8a99) - הוספנו את
getUserStyleFlavorsאלInteractiveWatchFaceClient, שמעניין בעיקר יצרני ציוד מקורי (OEM). (I0f5d8) - ב-
GlesRenderer2יש עכשיו עומס יתר של בנאי שמאפשר לציין רשימה של מאפיינים לניסיון בתורו עםeglChooseConfig. לדוגמה, אפשר לנסות קודם תצורה עם החלקת קצוות, ואם צריך, לחזור לתצורה בלי החלקת קצוות. (I1ba74) - ב-Android U, תתווסף תמיכה ב-
SystemDataSources.DATA_SOURCE_HEART_RATEל-WearOS. רכיב המידע הזה תומך בוודאות ברכיבי מידע מסוגSHORT_TEXT, אבל מומלץ שרכיב המידע מסוגComplicationSlotיקבל גםSMALL_IMAGE, כי יצרני ציוד מקורי (OEM) עשויים לבחור להציג קיצור דרך לאפליקציית הבריאות שלהם במקום הערך בזמן אמת. (I34223) - הוספנו את
METADATA_KEY_CONFIG_RESTORE_SUPPORTED, שקובע מגרסה Android U ואילך מה קורה כשמערכת משוחזרת מגיבוי של מקור נתונים של רכיב עםMETADATA_KEY_DATA_SOURCE_CONFIG_ACTION. כברירת מחדל, המערכת מניחה ששירות מקור הנתונים של התוסף תומך בגיבוי של כל נתוני ההגדרה, אבל אם זה לא המצב, אפשר להוסיף את הגדרת המטא-נתוניםMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONלערך false, וכך לסמן את משבצת התוסף כלא מוגדרת. (I6c505)
גרסה 1.2
גרסה 1.2.1
24 בינואר 2024
androidx.wear.watchface:watchface-*:1.2.1 משוחרר. גרסה 1.2.1 מכילה את הקומיטים האלה.
תיקוני באגים
- תוקנה קריסה ב-Samsung Galaxy Watch 4, 5 ו-6. (43f0b0)
גרסה 1.2.0
29 בנובמבר 2023
androidx.wear.watchface:watchface-*:1.2.0 משוחרר. גרסה 1.2.0 מכילה את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.1.0
- הוספנו תמיכה בכמה סוגים חדשים של רכיבים, שאפשר להשתמש בהם מגרסה Android T:
-
GoalProgressComplicationData, שדומה ל-RangedValueComplicationData, אבל היא מיועדת למדידת ההתקדמות להשגת יעד, כאשר ערך המינימום הוא אפס באופן מרומז, והערך יכול להיות גדול מ-targetValue. WeightedElementsComplicationDataשמורכב ממערך של רכיבים (זוגות של משקל וצבע) יחד עם טקסט, כותרת או תמונה אופציונליים. יכול להיות שהם יוצגו כתרשים עוגה שבו הצבעים צריכים להיות משמעותיים בהקשר, כי בדרך כלל אין מקום ברכיב מידע להצגת תוויות.
-
- הוספנו תמיכה ב
ColorRangesאופציונלי לRangedValueComplicationData. בדרך כלל, התכונות הנוספות מוצגות בצבעים שנבחרו בשביל פני השעון, אבל לפעמים הכי טוב להשתמש בתגComplicationDataSourceכדי להגדיר את הצבעים, למשל כשיש להם משמעות סמנטית מסוימת. לדוגמה, אדום לכחול לטמפרטורה. - כמעט כל סוג של
ComplicationDataתומך עכשיו ב-SmallImages. - הוספנו את התג
ComplicationDisplayPolicy, שבוDO_NOT_SHOW_WHEN_DEVICE_LOCKEDמורה לתצוגת שעון תואמת לא להציג את הרכיב כשהמכשיר נעול. - מגרסה Android T ואילך, יצרני ציוד מקורי (OEM) יוכלו לקבוע אם בקשה לרכיב מגיעה מתצוגת שעון ברשימה שהוגדרה על ידי מטא-נתונים של
android.support.wearable.complications.SAFE_WATCH_FACESבמניפסט של הספק באמצעותComplicationRequest#isForSafeWatchFace. הספק יזדקק להרשאהcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEכדי לקבל נתונים אחרים מלבד TargetWatchFaceSafety.UNKNOWN`. - התכונה
UserStyleFlavorsכבר לא ניסיונית.
גרסה 1.2.0-rc01
18 באוקטובר 2023
androidx.wear.watchface:watchface-*:1.2.0-rc01 משוחרר. גרסה 1.2.0-rc01 כוללת את הקומיטים האלה.
גרסה 1.2.0-beta02
6 בספטמבר 2023
androidx.wear.watchface:watchface-*:1.2.0-beta02 משוחרר. גרסה 1.2.0-beta02 מכילה את הקומיטים האלה.
תכונות חדשות
- המשחק
SuspendingComplicationDataSourceService#onDestroyפתוח עכשיו. שימו לב שהוסר התמיכה בפריט מידע על מזג האוויר שמוגדר כברירת מחדל במערכת.
שינויים ב-API
- מחזירים את ההגדרה 'חשיפת מקור נתונים חדש לסיבוכים של מזג האוויר' למצב הקודם. (I6f335)
גרסה 1.2.0-beta01
23 באוגוסט 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01 משוחרר. גרסה 1.2.0-beta01 מכילה את הקומיטים האלה.
תכונות חדשות
- החל מ-Android T, WearOS תומך עכשיו בסיבוך מערכת מזג אוויר כברירת מחדל.
שינויים ב-API
- הוספת חלופה למזג האוויר במקרה של תכונות נוספות במערכת. (Ia0994)
- התיקון הזה מוסיף את
WatchFaceRuntimeServiceואתWatchFaceControlClient.createWatchFaceRuntimeControlClientיחד עם עטיפות guava. הם מוסיפים תמיכה בזמני ריצה של תצוגות שעון, שהם סוג מיוחד של תצוגות שעון שנטענות מהגדרה מחבילה אחרת. בשלב הזה, WearOS תומכת רק בזמן הריצה של פורמט שעוני Android. (I2799f) - התיקון הזה הוא המשך של aosp/2636578, שבו שינינו את השם של הגדרות ה-int, כך שכל קוד שתלוי ב-
WatchFaceType, ב-CanvasType, ב-TapTypeאו ב-ComplicationsSlotBoundsTypeלא צריך להשתנות. (I4098b) - עדכנו את קובצי ה-API כדי להוסיף הערות לביטול התאימות. (I8e87a, b/287516207)
- התיקון הזה חושף קבועים של
WatchFaceTypeב-WatchFaceTypes, קבועים שלCanvasTypeב-CanvasTypes, קבועים שלTapTypeב-TapTypesוקבועים שלComplicationsSlotBoundsTypeב-ComplicationsSlotBoundsType. (I3b85a, b/288750666) - השימוש ב-
WatchFace.OverlayStyleנמוך מאוד, והוא לא נתמך היטב על ידי יצרני ציוד מקורי (OEM). לכן אנחנו מוציאים אותו משימוש, ובכוונתנו להסיר אותו במועד מאוחר יותר. (I7344a)
גרסה 1.2.0-alpha09
21 ביוני 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09 משוחרר. גרסה 1.2.0-alpha09 מכילה את הקומיטים האלה.
תכונות חדשות
-
RangedValueComplicationData.Builderמקבל עכשיוDynamicFloat, ו-DynamicComplicationTextחדש זמין כסיווג משנה שלComplicationText. שניהם יכולים להשתמש בביטויים דינמיים וגם בקשירות לפלטפורמה שמתעדכנות בתדירות של 1 הרץ במכשירי Wear 4 נתמכים.
שינויים ב-API
- נוספו סוגים דינמיים של מרחק יומי, קלוריות יומיות וקומות יומיות. מפתחות למקורות מידע בנושאי בריאות בפלטפורמה נמצאים עכשיו בקטע
PlatformHealthSources.Keys(Ib7637) - מטמיעים את
PlatformDataProviderכדי לספק נתוני דופק וצעדים יומיים. ממשקSensorGatewayהוסר מ-API ציבורי. (I55b84) - משנים את השם של
StateEntryValueל-DynamicDataValueומעדכנים את ממשקי ה-API של המצב לשימוש ב-DynamicDataKey. (If1c01) - הוספת
AppDataKeyלגישה למצב של אפליקציה שנשלח בדחיפה; הוספתPlatformDataKeyלגישה לנתוני פלטפורמה; הוספת תמיכה במרחב שמות ב-StateStore. (I7985e) - הוסרו
enableמתוךdisablePlatformSourceשיטות מ-DynamicTypeEvaluator. המתקשר צריך להיות אחראי לעדכונים. (I78c6d) - אפשרות להגביל את הגודל של סוגי נתונים מאוגדים. (Ie2966)
גרסה 1.2.0-alpha08
19 באפריל 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha08 משוחרר. גרסה 1.2.0-alpha08 מכילה את הקומיטים האלה.
תכונות חדשות
- מגרסה Android 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 נוסף ל-methods של
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)
גרסה 1.2.0-alpha07
22 בפברואר 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha07 משוחרר. גרסה 1.2.0-alpha07 מכילה את הקומיטים האלה.
תכונות חדשות
מגרסה Android T ואילך, יצרני ציוד מקורי (OEM) יוכלו לקבוע אם בקשה לרכיב מגיעה מתצוגת שעון ברשימה שהוגדרה על ידי מטא-נתונים של
android.support.wearable.complications.SAFE_WATCH_FACESבמניפסט של הספק באמצעותComplicationRequest#isForSafeWatchFace. הספק יצטרך את ההרשאהcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEכדי לקבל כל דבר אחר מלבדTargetWatchFaceSafety.UNKNOWN.בנוסף, מ-Android T
CustomValueUserStyleSetting2זמין לשימוש, ויכול להכיל עד 12.5kb. המגבלה הקודמת ל-CustomValueUserStyleSettingהייתה 1kb. למרות שמגבלות הגודל הוגדלו, מפתחים של עיצובים לשעון צריכים להקפיד על גודל נתונים קטן כי ההגדרות נשלחות באמצעות Bluetooth במהלך העריכה, ורוחב הפס של Bluetooth מוגבל.
שינויים ב-API
- הוספנו פרמטר אופציונלי
eglContextAttribListל-GlesRendererוגם ל-GlesRenderer2, שמאפשר להגדיר אתEGL14.EGL_CONTEXT_CLIENT_VERSIONשמועבר אלEGL14.eglCreateContext. (I2a83e) - העברנו את ספריות תצוגות השעון אל
androidx.core.util.Consumerבמקום אלjava.util.function.Consumer. (I273f5) - יותר חריגים שנזרקים מ-KT property accessors (Iff9d9)
- הוספנו את
InteractiveWatchFaceClient.isComplicationDisplayPolicySupportedכדי שהלקוח יוכל לקבוע אם הוא צריך לבצע אמולציה של תמיכה בשם תצוגות שעון ישנות. (I24c89) - החלטנו ש-
isForSafeWatchFaceצריך להיותIntDefעם שלושה מצבים. (Ief2f7) - ב-Android T הצגנו את
ComplicationRequest.isForSafeWatchFace, שנועד לשימוש על ידי יצרני ציוד מקורי (OEM) ונדרשcom.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE. למקורות נתונים בתמונת המערכת, הפונקציה תחזיר true אם פני השעון ששולחים את הבקשה נמצאים ברשימת פני השעון הבטוחים שצוינו על ידי מקור הנתונים במניפסט שלו. (I0cbb6) - ב-Android T הוספנו את
CustomValueUserStyleSetting2שיכול להכיל עד 12.5kb. המגבלה הקודמת ל-CustomValueUserStyleSettingהייתה 1kb. (I0b100)
גרסה 1.2.0-alpha06
25 בינואר 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06 משוחרר. גרסה 1.2.0-alpha06 מכילה את הקומיטים האלה.
תכונות חדשות
- אנחנו ממשיכים לעבוד על הוספת תמיכה בהצמדות של פלטפורמות של רכיבי מידע, אבל התכונה הזו עדיין לא מוכנה לשימוש. כדאי להמשיך להתעדכן!
- הוספנו תמיכה ב-XML
ComplicationSlotלסוגי הסיבוכים החדשים, GOAL_PROGRESS ו-WEIGHTED_ELEMENTS.
תיקוני באגים
- תוקנה דליפה שבה עורך תצוגת השעון לא שוחרר כראוי במכשירי Samsung. (3b5987)
- תוקן באג שגרם לכך שלפעמים התכונות הנוספות לא הוצגו בצורה תקינה כשעברו בין תצוגות שעון עם כמה מועדפים. (b38ece)
- תוקן באג בסריאליזציה ב-perOptionScreenReaderNames שגרם לקריסות של תצוגות שעון. (e9f466)
גרסה 1.2.0-alpha05
7 בדצמבר 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05 משוחרר. גרסה 1.2.0-alpha05 מכילה את הקומיטים האלה.
תכונות חדשות
לפני זמן מה הוספנו תמיכה ב-
UserStyleSettingsהיררכי, ומגרסה Android T אפשר להשתמש ביותר מ-ComplicationSlotsUserStyleSettingאחד בהיררכיה. רקComplicationSlotsUserStyleSettingאחד יהיה פעיל, על סמך בחירות הסגנון של המשתמש.אנחנו משפרים את התמיכה בקוראי מסך ב-
ListOptionוב-ComplicationSlotsOptionעל ידי הוספת שדהscreenReaderName. שימו לב: לפני Android T, העורכים הנלווים יתעלמו מהשדה הזה.
שינויים ב-API
- הוספנו שדה חדש ואופציונלי
screenReaderNameל-ListOptionול-ComplicationSlotsOptionלשימוש העורכים – העורכים הנלווים במכשירים עם גרסה של Android לפני T יתעלמו ממנו. (I75326) - מגרסה Android T ואילך, יש תמיכה בכמה
ComplicationSlotsUserStyleSettingsבהיררכיית סגנונות, כל עוד רק אחד מהם יכול להיות פעיל בכל רגע נתון. הוספנו פונקציית עזרfindComplicationSlotsOptionForUserStyleל-UserStyleSchemaכדי לעזור למצוא אתComplicationSlotsOptionהפעיל, אם יש כזה. (Ic2b06) RangedValuesTypesהועברו לאובייקט הנלווה שלRangedValueComplicationDataושמם שונה ל-TYPE_UNDEFINED, ל-TYPE_RATINGול-TYPE_PERCENTAGEחדש נוסף. (I55d02)- שינינו את השם של התכונה הניסיונית
DynamicFloatל-FloatExpressionוסימנו אותה כ-@hide. (Idf4f1) - הוספת הערה
@JvmDefaultWithCompatibility(I8f206)
גרסה 1.2.0-alpha04
9 בנובמבר 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04 משוחרר. גרסה 1.2.0-alpha04 מכילה את הקומיטים האלה.
תכונות חדשות
- ב-Android T הוספנו תמיכה בשני סוגים חדשים של נתונים להצגה בשעון,
GoalProgressComplicationDataו-WeightedElementsComplicationData. - הפונקציה
GoalProgressComplicationDataדומה ל-RangedValueComplicationData, אבל הערך שלה יכול לחרוג מהיעד (ב-RangedValueComplicationDataהערך מוגבל לטווח [min .. max]), מה שיכול להשפיע על העיצוב החזותי, ולכן לא מתאים לכל פני השעון. -
GoalProgressComplicationDataמוסיף תמיכה בתרשימי עוגה ובפירוטים דומים של נתונים פשוטים. - הוספנו תמיכה אופציונלית ב-
ColorRampsל-RangedValueComplicationData. - ב-Android T, הוספנו את
ComplicationPersistencePolicyואתsetCachePolicyל-ComplicationData, שמאפשר כרגע לספק לשלוט בשמירה של רכיב מידע (כלומר, אם הוא נשמר במטמון אחרי הפעלה מחדש). ברוב המקרים לא צריך להגדיר את בקרת המטמון, אבל הגדרה כזו יכולה לפתור מקרים חריגים של נתונים לא עדכניים בחלק מהתוספים שמתעדכנים לעיתים קרובות (למשל, תוספים של נתוני בריאות). הוספנו גם את התגComplicationDisplayPolicyשבוDO_NOT_SHOW_WHEN_DEVICE_LOCKEDמורה לתצוגת שעון תואמת לא להציג את הרכיב כשהמכשיר נעול. (Ic9574)
שינויים ב-API
- התכונות
GoalProgressComplicationData, WeightedElementsComplicationDataו-ColorRampכבר לא ניסיוניות. (Ica9e2) -
ComplicationPersistencePolicyו-ComplicationDisplayPolicyמסומנים עכשיו בצורה תקינה כ-T API. (I31d88) - ל-constructor של
ComplicationSlotOverlayשהוצא משימוש יש עכשיוDeprecationLevel.WARNING, כך שאפשר לקרוא לו שוב מ-Java. (Ib308c) - תיקנו כמה בעיות תאימות ל-Java ב-
ComplicationRequestListener, ב-CanvasComplication, ב-ComplicationTapFilterוב-InteractiveWatchFaceClientעל ידי הוספת הערות עם@JvmDefaultWithCompatibility(Id94fc) - הסרנו את התכונות הניסיוניות
ProtoLayoutComplicationDataו-ListComplicationData. הסיפור של המפתחים בנושא הזה לא היה ברור, ואנחנו מקווים לחזור אליו בעתיד. (I9df05) - הוספנו את
ValueTypeבחזרה אלRangedValueComplicationData.WeightedElementsComplicationDataתומך עכשיו בצבע רקע. הסרנו אתDiscreteRangedValueComplicationDataכי הפונקציונליות שלו היא קבוצת משנה שלWeightedElementsComplicationData. (I6446c)
תיקוני באגים
- צריך לכלול את התו
isForScreenShotבסימן השוויון ובקוד הגיבוב. מוודאים שהערך הנכון שלisForScreenshot(I04a41) מופיע בשדהonRenderParametersChanged. - תוקנו דליפות של
WatchFaceControlServiceמלקוחות headless. (e90e00)
גרסה 1.2.0-alpha03
5 באוקטובר 2022
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, שבה המשך של קורוטינה של Kotlin שימש כשורש של איסוף אשפה (GC) ושמר על פעילות העריכה.(33ee06)
גרסה 1.2.0-alpha02
21 בספטמבר 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha02 משוחרר. גרסה 1.2.0-alpha02 מכילה את הקומיטים האלה.
תכונות חדשות
חלק מהתצוגות של השעון כוללות הגדרות מחוץ ל-
UserStyleשמשפיעות על המראה שלהן (למשל, בחירת תמונת רקע). הוספנו אתRenderer.sendPreviewImageNeedsUpdateRequestשמאפשר לתצוגת השעון לבקש תמונה מעודכנת לתצוגה מקדימה. שימו לב: כדי שהתכונה הזו תפעל, צריך לעדכן את המערכת בהתאם.הוספנו גם API לתצוגות שעון, כדי לחשוף את הצבעים שלהן למערכת, שעשויה לבחור את לוח הצבעים שלה על סמך זה. הערה: התכונה הזו הפכה לניסיונית בתיקון הבא.
כמעט כל סוג של
ComplicationDataתומך עכשיו ב-SmallImages.
שינויים ב-API
- לפעמים מנהל הטפטים מתנתק ממנוע אחד ומתחבר למנוע אחר. הוספנו
DisconnectReasonint def והרחבנו אתClientDisconnectListenerעם שיטה חדשה שכוללתDisconnectReason, כדי לאפשר למאזין לצפות בהתנתקויות של המנוע. (I45cce) - נוספו שני פרמטרים אופציונליים
nameResourceIdו-screenReaderResourceIdל-constructor שלComplicationSlotOverlay(I157e8) - הוספנו guava wrapper ל-overload החדש של
getOrCreateInteractiveWatchFaceClientעםPreviewImageUpdateRequestedListener. (Ic31f0) - הוספנו את
Renderer.sendPreviewImageNeedsUpdateRequest, שמועיל לתצוגות שעון שיש להן מצב מחוץ ל-UserStyleSchemaשמשפיע על המראה שלהן (למשל, תצוגת שעון עם תמונת רקע שאפשר לבחור). בצד הלקוח, הוספנו אתPreviewImageUpdateRequestedListenerכפרמטר אופציונלי ל-getOrCreateInteractiveWatchFaceClientכדי לעקוב אחרי הבקשות האלה. (Iff44a) - פישטנו את ה-API לחשיפת
WatchFaceColors. עכשיו יש מאפיין פשוט בשםwatchFaceColorsב-Renderer שאפשר להגדיר בתצוגת השעון. צריך לעדכן את המאפיין הזה לפי הצורך בתגובה לשינויים בסגנון. במקום להשתמש ב-WallpaperManagerכדי לראות את שינויי הצבע, הוספנו אתOnWatchFaceColorsListenerל-InteractiveWatchFaceClient. (I490bc) - הוספנו את המחלקה
WatchFaceColorsשמכילה את שלושת הצבעים הבולטים ביותר של תצוגת השעון, והוספנו את השיטות הפתוחותwatchfaceColorsו-notifyWatchFaceColorsChangedל-Renderer. השיטות האלה מאפשרות למערכת לקבל את הצבעים של תצוגת השעון באמצעותWallpaperManager.getWallpaperColors. (I3d611) -
ShortTextComplicationData, RangedValueComplicationData, NoPermissionComplicationData(וגרסאות ניסיוניותDiscreteRangedValueComplicationData, GoalProgressComplicationDataו-WeightedElementsComplicationData) תומכות עכשיו ב-SmallImages. אם תצוגת שעון בוחרת להציג נתון מורכב עם כמה צבעים, עכשיו יש לה אפשרות להשתמש בSmallImageרב-צבעי, בעוד שלפני כן היא הייתה צריכה להשתמש בתמונה מונוכרומטית. (I257df) - שכתוב הקוד של
PreviewImageUpdateRequestedListenerכך שיהיהConsumer<>במקום זאת (Ia875d) - החלפת סוג מותאם אישית של Single Abstract Method (SAM)
OnWatchfaceColorsListenerבסוג גנרי של Java SAM (Consumer) (I0c489) - הוצאנו משימוש את השיטות הישנות
getOrCreateInteractiveWatchFaceClientו-listenableGetOrCreateInteractiveWatchFaceClientשלא מציינותPreviewImageUpdateRequestedListener. (Iec502)
תיקוני באגים
- השם של
DisconnectReason.BINDER_DIEDשונה ל-DisconnectReason.ENGINE_DIED. (I4eb0e)
גרסה 1.2.0-alpha01
10 באוגוסט 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha01 משוחרר. גרסה 1.2.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
- הוספנו תמיכה ניסיונית בפורמטים שונים של מידע נוסף. אנחנו נמצאים בשלב פעיל של פיתוח, והפורמטים החדשים האלה עשויים להשתנות ללא הודעה מוקדמת. בשלב הזה אין תמיכה ב-renderer מ-
CanvasComplicationDrawable. - בנוסף, הוספנו שוליים אופציונליים למקומות של רכיבי מידע, כדי שיהיה קל יותר להקיש על רכיבי מידע קטנים.
שינויים ב-API
- הכיתה הניסיונית
BoundingArcהיא עכשיו בלתי ניתנת לשינוי. (If624a) - יכול להיות שיהיה קשה להקיש על סיבוכים קטנים. כדי לצמצם את הבעיה הזו, הוספנו תמיכה בשוליים, שמגדילים את האזור שאפשר להקיש עליו בלי להשפיע על העיבוד. אלא אם צוין אחרת (בקוד או באמצעות XML), ל-
ComplciationSlotsיש שוליים בגודל אפס. (I14089) - השתנה החתימה של
getComplicationSlotInflationFactory(CurrentUserStyleRepository)כדי להחזיר מופע של factory שאינו null. החזרת ערך null הייתה שגיאה בעבר, ולכן השינוי הזה רק הופך את חוזה ה-API לברור יותר. (I0fcc0) - הוספנו את הארגומנט
currentUserStyleRepositoryלשיטהWatchFaceService.getComplicationSlotInflationFactoryכדי לשמור על עקביות עםcreateComplicationSlotsManager. (I2ddd2) UserStyleFlavorsכבר לא ניסיוניות. (I69cdc)- הסרנו את התכונה הניסיונית
ValueTypeמ-RangedValueComplicationDataוהוספנו במקומה את התכונה הניסיוניתDiscreteRangedValueComplicationData, שהיא כמוRangedValueComplicationData, אבל עם טווח וערך של מספרים שלמים. הוספנו גם את פונקציית הניסויGoalProgressComplicationData, שדומה ל-RangedValueComplicationData, אבל היא מיועדת למעקב אחר ההתקדמות להשגת יעד שבו הערך המינימלי הוא אפס, והערך יכול להיות גדול מ-targetValue. הערה: לכל הווריאציות שלRangedValueצריך לציין לפחות אחד מהמאפיינים הבאים: monochromeImage, text או title. (I9590c) - הסרנו את
boundsWithMarginsמ-ComplicationSlotStateכי אין תרחיש שימוש עבורו בתוכנת המערכת. (I42e26) - הוספנו תמיכה ניסיונית ב-
WeightedElementsComplicationData, שכולל מערך של רכיבים (זוגות של משקל וצבע) יחד עם טקסט, כותרת או תמונה אופציונליים. יכול להיות שהם יוצגו כתרשים עוגה שבו הצבעים צריכים להיות משמעותיים בהקשר, כי בדרך כלל אין מקום ברכיב מידע להצגת תוויות. (I87eea) - המאפיין הניסיוני
ColorRamps, שמשמש באופן אופציונלי אתRangedValueComplicationDataואתGoalProgressComplicationData, מאפשר עכשיו לציין רצף של עד שבעה צבעים ודגל שקובע אם הצבעים צריכים להיות מונפשים בצורה חלקה או אם צריך להציג שלבים מוצקים של צבע בגודל שווה. (I9f5bf) -
RangedValueComplicationData.drawSegmentedהשתנה ל-valueType, שהוא מספר שלם עםValueType IntDefתואם שמספק משמעות סמנטית לערך הטווח, ויכול לשמש את רכיב העיבוד של הסיבוך כדי להשפיע על הסגנון. (I0616b) - הוספנו תמיכה ניסיונית באפשרות
ColorRangesעדRangedValueComplicationData. בדרך כלל, התכונות הנוספות מוצגות בצבעים שנבחרו בשביל פני השעון, אבל לפעמים הכי טוב להשתמש בתגComplicationDataSourceכדי להגדיר את הצבעים, למשל כשיש להם משמעות סמנטית מסוימת. לדוגמה, אדום לכחול לטמפרטורה. (I5153a) - הוספנו רמז ניסיוני
drawSegmentedל-RangedValueComplicationData. האות הזה מאותת לרכיבי העיבוד לצייר את אינדיקטור הערך בטווח עם פלחים, כאשר פלח אחד = יחידה אחת. (I7d7c1)
תיקוני באגים
- הוספנו את האפשרות להגדיר
ComplicationSlotBoundsביחס למערכת קואורדינטות מוגדרת מראש של המסך. (I0985d)
גרסה 1.1
גרסה 1.1.1
10 באוגוסט 2022
androidx.wear.watchface:watchface-*:1.1.1 משוחרר. גרסה 1.1.1 מכילה את הקומיטים האלה.
- הגרסה הזו כוללת תיקוני באגים, ומומלץ מאוד למשתמשים בגרסה 1.1.0 לשדרג.
תיקוני באגים
ההפעלה של תצוגת השעון היא אסינכרונית, ואם מתקבל רכיב לפני שתצוגת השעון מוכנה, הוא מתווסף לרשימה
pendingInitialComplicationsומוחל מאוחר יותר. לצערנו, ההגדרהpendingInitialComplicationsהוחלה מוקדם מדי, ולכן היה חלון זמן במהלך האתחול של פני השעון שבו עדיין הוצבו סיבוכים ב-pendingInitialComplicationsוהמערכת התעלמה מהם. הבעיה תוקנה. בנוסף, התיקון הזה פותר באג שבוComplicationRendererניסה לטעון placeholders באופן אסינכרוני, מה שגרם לטעינה להיכשל ולגרפיקה של הקומפילציה לא להתעדכן אף פעם. לבסוף, התיקון הזה פותר באג תיאורטי (לפי התקווה) שבו צריך למזג כמהpendingInitialComplications. (0d03ba3)תוקן פוטנציאל לקיפאון ב-
InteractiveInstanceManagerשבוgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstanceהחזיק את הנעילה יותר מהזמן הנדרש. בדרך כלל אנחנו מצפים שengine.setUserStyleיפעל במהירות, אבל אם מסיבה כלשהי זה לא קורה, יכול להיות שנגיע למצב של חסימה או ANR. התיקון הזה מוציא עבודה מיותרת מהנעילה, וכך מסיר את הפוטנציאל לקיפאון (deadlock). (5a2adca)תוקנו כמה בעיות שקשורות לשמירה של
WatchFaceService. לפעמים, ה-WakeLock שומר אתWatchFaceService, והוספת שיחה שלrelease()פותרת את הבעיה. בנוסף,StateFlowsיכול לשמור עלWatchFaceService, וביטולCoroutineScopesהבסיסי פותר את הבעיה הזו.(fd48138)הוספת פסק זמן ל-
awaitDeferredWatchFace* ותיקוןwatchfaceOverlayStyleNullPointerException. בנסיבות רגילות, לא אמור להיות פסק זמן, כולל אחרי התקנה חדשה ובתרחישיDirectBootשבהם עומס ה-CPU גבוה. תיקנו גם שגיאת NPE אם מתבצעת קריאה ל-getWatchfaceOverlayStyleאחריclose().(a4c3a5a)
גרסה 1.1.0
15 ביוני 2022
androidx.wear.watchface:watchface-*:1.1.0 משוחרר. גרסה 1.1.0 מכילה את הקומיטים האלה.
שינויים חשובים מאז גרסה 1.0.0
שיפורים בעריכה:
- הוספנו תמיכה בסכימות היררכיות, שמאפשרות לממשקי משתמש של עורכים לכתוב היררכיה של סגנונות. עכשיו אפשר לציין סמלים נפרדים לשימוש בתצוגת השעון ובכלי העריכה הנלווים.
- יש תמיכה בהסכמה בכמה מקרים של תצוגת שעון, ולכל מקרה יש מזהה ייחודי שזמין בכל ממשקי ה-API.
- עכשיו אפשר לציין שמות קריאים (לבני אדם) ל-
ComplicationSlotsלשימוש בכלי עריכה. - תמיכה ניסיונית ב'טעמים' של סגנונות, מבחר של סגנונות שנבחרו בקפידה ויהיו גלויים בכלי העריכה הנלווה.
- כשעורכים שני מופעים של לוח השעון, עכשיו אפשר לשתף משאבים בין מופעים של לוח השעון, וכך לחסוך בזיכרון
- כשבוחרים רכיב בעורך תצוגת השעון, הספק הנוכחי נבחר מראש.
תצוגות שעון משופרות:
- עכשיו אפשר לציין את
ComplicationTypeלמקורות הנתונים הראשיים והמשניים, וכך המפתחים נהנים מגמישות רבה יותר בחוויית השימוש. - הוספנו את
ComplicationDataTimelineשמספק רצף של נתונים עם הגבלת זמן שיוצגו במסך השעון, שאפשר לשמור במטמון ולעדכן באופן אוטומטי. לדוגמה, תחזית מזג האוויר להיום בשעות שונות או כמה אירועים קרובים ביומן. - ה-
ComponentNameשל ספק הרכיבים הוא חלק מ-ComplicationData. - הנתונים של רכיבי המידע נשמרים עכשיו במטמון, וכך חוויית המשתמש משתפרת כשעוברים בין תצוגות שעון.
שינויים אחרים:
- מעכשיו אפשר להגדיר את
UserStyleSchemaואתComplicationSlotsב-XML. כך אפשר ליצור את פני השעון בצורה פשוטה יותר, והמערכת יכולה לבצע שאילתות על מטא-נתונים מהר יותר. - תצוגות השעון יכולות עכשיו להשפיע על הצבעים שמשמשים לעיבוד שכבת העל של המערכת.
גרסה 1.1.0-rc01
18 במאי 2022
androidx.wear.watchface:watchface-*:1.1.0-rc01 משוחרר. גרסה 1.1.0-rc01 כוללת את הקומיטים האלה.
תכונות חדשות
- ביצענו כמה שינויים קלים בשימושיות של התמיכה ב-XML של תצוגות השעון, כדי שיהיה קל יותר לציין
ComplicationSlotBoundsולתמוך בהפניות. הניסויים עם התכונה 'סיבוך קצה'BoundingArcנמשכים, והיא מועברת דרךdrawHighlight, למרות שלא מומלץ להשתמש בה בשלב הזה.
שינויים ב-API
- הוספנו עומס יתר ניסיוני של
drawHighlightשמקבל פרמטרBoundingArc. (I705f8) - קובצי XML של תצוגות שעון תומכים עכשיו בהפניות למשאבים. הוא מאפשר להשתמש באותם קבועים גם ב-XML וגם בקוד. (I3ef61)
- הוספנו את האפשרות להגדיר את
ComplicationSlotBoundsבטופסcenter_x,center_y,size_xוsize_y. מעכשיו אפשר גם להשתמש ביחידות שונות (למשל, dp) באמצעות הפניות למשאבים. (Iace98)
תיקוני באגים
- תיקון
runBlockingWithTracingשהריץ משימות בהקשר שגוי.(4f595fe) - הופכים את
BaseEditorSession.closeלסינכרוני. הבעיה ב-BaseEditorSession.closeהיא שהיא אסינכרונית, ולכן אנחנו מפרסמים אתComplicationDataSourceInfoRetrieverמאוחר מדי, מה שמוביל לספאם של אזהרות ב-logcat. סביר להניח שהפעולה הזו לא מזיקה, אבל ספאם ב-logcat מסיח את הדעת וכדאי להימנע ממנו.(35a5308)
גרסה 1.1.0-beta02
11 במאי 2022
androidx.wear.watchface:watchface-*:1.1.0-beta02 משוחרר. גרסה 1.1.0-beta02 מכילה את הקומיטים האלה.
תכונות חדשות
- הוספנו תמיכה ניסיונית בסוגים חדשים של
ComplicationData, אבל הם עדיין לא מוכנים לשימוש. נמשיך לעדכן.
שינויים ב-API
- הוספנו את המחלקה הניסיונית
BoundingArcשמתארת את הגיאומטריה של משבצת של סיבוך בקצה. הוספנו את האפשרות הזו ל-ComplicationSlotוהיא זמינה גם ב-ComplicationSlotStateוב-WatchFaceMetadataClient. (I61a40) - הוספנו את האפשרות להגדיר ירושה של הגדרות ב-XML של
UserStyleSetting. הוא מאפשר לכם לצמצם את כמות המילים ולשתף הגדרה בין פני שעונים. (Ief841) - הוספנו שני סוגים חדשים של
ComplicationDataבניסוי:ListComplicationDataו-ProtoLayoutComplicationData. נכון לעכשיו, אין תמיכה בעיבוד של אף אחד מהסוגים האלה, ו-WearOS לא מזהה את הסוגים האלה אם הם מתווספים למניפסטComplicationDataSource's. (I1811c)
תיקוני באגים
- תיקון סריאליזציה של סוג
TimeLineEntry. לא ביצענו סריאליזציה של סוגTimeLineEntry, מה שאומר ש-TimeLineEntriesבמטמון מסוג NoData יפורש באופן שגוי כאילו יש לו את הסוג של רכיב ה-Complication ברמת ההורה, וכתוצאה מכך יתרחשו שגיאות מסוג NPE כשמתבצעת גישה לשדות נדרשים שלא קיימים. (55ffdf5) - תוקן באג שגרם לכך ש
setComplicationDataהשמיט שדות של ציר הזמן(fb392f5) - תוקן באג שבו מדי פעם
runBlockingWithTracingהוביל ל-NPE(12ca62e) - תוקן באג שגרם לכך שלפעמים קיבלנו
ClassNotFoundException: android.support.wearable.complications.ComplicationTextכשקיבלנו רכיב מידע.(217942d9) - תוקן באג ב-
GlesRenderer.backgroundThreadInitInternalשבו התבצעה קריאה רק ל-onBackgroundThreadGlContextCreatedאם התבצעה קריאה ל-EGL14.eglCreateContext. תוקן באג נוסף שגרם לבעיה חזותית בצילום המסך בגללverticalFlip.(c674ad2) - תוקן אימות גרסת ה-XML
WatchFaceService, שהיה נטען מהחבילה הלא נכונה.(dfa06f3) - פורמט ה-placeholder של החוט משתמש עכשיו בחבילה פנימית. אנחנו לא רוצים שמצייני מיקום יפגעו בלוחות שעונים קיימים, שעשויים להשתמש ב-a.s.w.c.ComplicationData הפנימי המוסתר. בעבר, פורמט הנתונים של
NoDataComplicationאחסן את ה-placeholder בשדות הרגילים (בעייתי כי פני שעון ישנים היו מציגים את מחרוזת ה-placeholder שלא הייתה מיועדת לכך). עכשיו אנחנו משתמשים בחבילה פנימית כדי לבודד את ה-placeholder באופן מלא.(d5e7bd2)
גרסה 1.1.0-beta01
20 באפריל 2022
androidx.wear.watchface:watchface-*:1.1.0-beta01 משוחרר. הגרסה 1.1.0-beta01 כוללת את הקומיטים האלה.
שינויים ב-API
- עכשיו, שיטות
WatchFaceMetadataClient(getUserStyleSchema,getComplicationSlotMetadataMap,getUserStyleFlavors) ו-HeadlessWatchFaceClient.getUserStyleFlavorsיוצרות RuntimeException לא מסומן במקוםWatchFaceException. (I0718a) WatchFaceMetadataClient.WatchFaceExceptionהועבר מהכיתה כדי לאפשר שימוש חוזר בו. (I4e869)
תיקוני באגים
WatchFaceMetadataClientלא יקרוס יותר כשיישלח אליוComplicationSlotBoundsחלקי.(Iaafd)
גרסה 1.1.0-alpha05
6 באפריל 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05 משוחרר. גרסה 1.1.0-alpha05 מכילה את הקומיטים האלה.
תכונות חדשות
- עכשיו אפשר לדעת איזה מקור נתונים שלח
ComplicationDataעל ידי בדיקתComplicationData.dataSource. יכול להיות שחלק מתצוגות השעון ישתמשו בזה כדי להתאים אישית את תצוגת הרכיבים. (I44a73)
שינויים ב-API
- הוצאנו משימוש את
Renderer.CanvasRendererו-Renderer.GlesRendererלטובתRenderer.CanvasRenderer2ו-Renderer.GlesRenderer2שתומכים ב-SharedAssets, שמועברים לשיטות העיבוד. לשילוב עם Java הוספנו אתListenableCanvasRenderer2ו-ListenableGlesRenderer2. (I31ffa) - נוספה האפשרות להגדיר סגנונות – רשימה מוכנה מראש של תצוגות שעון עם סגנונות (I04dd0)
@WatchFaceFlavorsExperimental -
Renderer.sharedAssetsהוא עכשיו StateFlow והסרנו אתRenderer.SharedAssetsFactoryשלא היה בשימוש (I12ac5) - האפשרות
UserStyleSchema.userStyleSettingsכבר לא הוצאה משימוש (Iba7e3) - הוספנו את
HeadlessWatchFaceClient.getUserStyleSchemaDigestHashשמאפשר ל-HeadlessWatchFaceClientלהימנע מהתקורה הנמוכה יחסית של העברת הסכימה דרך AIDL לפני חישוב הגיבוב של התקציר. (I33597) - הוספנו את
isUserStyleSchemaStaticל-WatchFaceMetadataClient, והערך הוא true אם ורק אם אפשר להסתמך עלUserStyleSchemaשלא ישתנה אלא אם חבילת ה-APK של תצוגת השעון תעודכן. (I45a3f) - הוספנו את
getDigestHashל-UserStyleSchema, שמחשב גיבוב של תמצית הסכימה. אפשר להשתמש בשיטה הזו כדי לקבוע ביעילות אםUserStyleSchemaהשתנה. (I2063d) - השם של
METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTEDשונה לMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED(I9ba5d) - לשם
UserStyleSetting.OnWatchEditorDataשונה השם ל-UserStyleSetting.WatchFaceEditorData, והוא מכיל נתונים שמשמשים רק את כלי העריכה של תצוגת השעון. (If3afb)
גרסה 1.1.0-alpha04
9 במרץ 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha04 משוחרר. גרסה 1.1.0-alpha04 מכילה את הקומיטים האלה.
שינויים ב-API
- יכול להיות שהערך העדכני של
ComplicationDataלא תמיד יהיה זמין (למשל, אם נתוני ה-ComplicationData שנשמרו במטמון פג תוקף), ולכן הוספנו ל-NoDataComplicationאת ה-ComplicationData של ה-placeholder האופציונלי, וגם אתComplicationText.PLACEHOLDER,MonochromaticImage.PLACEHOLDER,SmallImage.PLACEHOLDERו-PhotoImage.PLACEHOLDER, שאפשר להשתמש בהם רק בהקשר של placeholder שלNoDataComplicationData. אם בוחרים באפשרות הזו, מוצע להציג את ה-placeholder האלה עם תיבות או קשתות אפורות. (I6285d) - הוספנו את
ComplicationData.getNextChangeInstantשמציין את הרגע המיידי הבא אחרי הרגע המיידי של ההפניה, שבו יכול להשתנות שדה כלשהו של הסיבוך. המאפיין הזה משמש באופן פנימי לתזמון פריימים לעדכונים של רכיבים. לדוגמה, אם תצוגת השעון מתעדכנת בדרך כלל פעם בדקה, הגדרת רכיב של שעון עצר תגרום לעדכון פעם בשנייה. (I7ceb2) - עכשיו אפשר להשתמש ב-
EditorSession.watchFaceIdבכל רמות ה-API. בנוסף, הערך שלו תמיד יהיה עכשיו זהה לערך שלWatchState.watchFaceInstanceId. (I323b9) - אין יותר צורך ב-API
getPendingIntentForTouchEventכי הבעיה הבסיסית תוקנה במסגרת, ולכן כל ממשקי ה-API שקשורים אליה הוסרו. אין צורך לבצע פעולות מיוחדות כדי להפעיל אתPendingIntents, גם אם לחצתם לאחרונה על לחצן הבית. (I1f2e8) - הוספנו את
RendererParameters.isForScreenShot, שיהיה True אם הרינדור הוא לצילום מסך. חלק מהתצוגות של השעון עם אנימציות צריכות לדעת את זה כדי לבצע התאמות שיבטיחו את התוצאות הטובות ביותר. (I96d99) - הוספנו את
WatchFaceExceptionReasonאלWatchFaceExceptionכדי לספק הקשר לגבי מה שהשתבש. (I01d15) - הוסר, במקומו נוסף
ComplicationRequest.immediateResponseRequiredכדי לציין שהספק צריך להגיב במהירות (התגובה צריכה להתקבל תוך פחות מ-100 אלפיות השנייה).ComplicationDataSourceService.onImmediateComplicationRequestהערה: הפונקציונליות הזו מוגנת על ידי הרשאה מיוחדתcom.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE. (Ie6b23) - עודכן מצב האפשרות לערך null בספריות הליבה וב-appcompat כך שיתאים ל-Tiramisu DP2 (I0cbb7)
תיקוני באגים
- עכשיו, אם אימות הסכימה נכשל, אפליקציית לוח השעון קורסת עם חריגה (Ia400f)
גרסה 1.1.0-alpha03
9 בפברואר 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha03 משוחרר. גרסה 1.1.0-alpha03 מכילה את הקומיטים האלה.
שינויים ב-API
- הוספנו תמיכה ניסיונית בסכימות סגנונות היררכיות. הוספנו נכס חדש ל-
androidx.wear.watchface.style.UserStyleSetting.Option, childSettings, שמשמש בהתחלה רק אתListOption. האפשרות הזו מאפשרת לתאר היררכיה של סגנונות לשימוש בממשקי משתמש של כלי העריכה. UserStyle הבסיסי לא משתנה והוא עדייןMap<String, ByteArray>. (Iaf6f4) - הוספנו את
WatchFace.OverlayStyleשמאפשר לתצוגת השעון להגדיר את העיבוד של שכבת העל של סטטוס המערכת. (I8520d) - הוספנו
clearWithBackgroundTintBeforeRenderingHighlightLayerפרמטר אופציונלי חדש של בנאי ל-CanvasRenderer(ברירת המחדל היא false). אם מגדירים את הפרמטר כ-true, הציור על הקנבס יימחק ויוחלף בצבע הרקע. (Ie01e5) - נוסף מפתח המטא-נתונים
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTEDשמאפשר למקורות נתונים של רכיבי שעון לציין שהם יכולים לספק ערך ברירת מחדל ללא כל הגדרה (Icc0d4) - בדרך כלל, כשעורכים תצוגת שעון, יש גם מופע אינטראקטיבי וגם מופע ללא ראש. כדי לחסוך בזיכרון, הוספנו את
Renderer.SharedAssetsשמאפשר למעבד של לוח השעון לשתף נתונים שלא ניתן לשנות (למשל, טקסטורות ו-shaders) בין מופעים. המאפייניםGlesRenderer.setEglConfigו-GlesRenderer.setEglDisplayהוצאו משימוש, לא הייתה כוונה לאפשר את הגדרתם, וביצוע פעולה כזו היה מוביל להתנהגות לא מוגדרת. (I0d9e7) - הוספנו את
setNameResourceIdו-setScreenReaderNameResourceId(שמפנים למשאבי מחרוזות) אלComplicationSlot.Builderואת שיטות ה-getter התואמות ב-androidx.wear.watchface.client.ComplicationSlotState. כך המערכת יכולה לאחזר את השמות של ComplicationSlots לשימוש בעורכים ובקוראי מסך. (If6c6a) -
WatchfaceMetadataClient.getUserStyleSchemaו-getComplicationSlotMetadataMapמחזירים עכשיוWatchFaceExceptionבמקוםRemoteException. (I86f11) - השמות של
onSynchronousComplicationRequestופונקציות קשורות ב-ComplicationDataSourceServiceהשתנו ל-onImmediateComplicationRequestוכו'... (I87ba0) - לעורכי תצוגות השעון יש הרבה פחות מקום במסך מאשר לעורכים נלווים, ולכן הגיוני לתמוך בסמלים שונים לעורכי תצוגות השעון. התיקון הזה מוסיף את
OnWatchEditorData(שכולל כרגע רק סמל) לכל UserStyleSettings ולמחלקות Option המתאימות. (If1886) - הוספנו את
@JvmOverloadsלקונסטרוקטור של ListenableGlesRenderer כדי לשפר את יכולת הפעולה ההדדית של Java. (I2974a)
תיקוני באגים
- ה-constructor של
ListenableGlesRendererמסומן עכשיו בצורה נכונה כ-@Throws(GlesException::class), ועכשיו אפשר להרחיב את המחלקה הזו ב-Java. (Iac6d0) - תיקון באג שקשור ל-tapAction
PhotoImageComplicationDataשלא מטופל בצורה נכונה (I1cc30)
גרסה 1.1.0-alpha02
12 בינואר 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02 משוחרר. גרסה 1.1.0-alpha02 מכילה את הקומיטים האלה.
תכונות חדשות
- כדי לעזור בניפוי באגים ובבדיקות, מחלקות המשנה שקשורות ל-
ComplicationDataכוללות עכשיו שיטות ששולטות על hashcode, equals ו-toString, ולכן קל יותר לעבוד איתן.
שינויים ב-API
WatchfaceMetadataClientmethods once again throwRemoteExceptionswhere appropriate, making it easier for client code to catch errors from the watch face. (I78785)- ל-
ComplicationDataולמחלקות המשנה יש עכשיו hashcode, equals ו-toString. (I24bc6)
גרסה 1.1.0-alpha01
15 בדצמבר 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01 משוחרר. גרסה 1.1.0-alpha01 מכילה את הקומיטים האלה.
תכונות חדשות
מעכשיו אפשר להגדיר את
UserStyleSchemaואתComplicationSlotsב-XML. כך קל יותר ליצור תצוגות שעון. בנוסף, השאילתות שלWatchFaceMetadataClientמהירות יותר כי לא צריך לקשר אותן לשירות כדי לקבל את המטא-נתונים. התכונותWatchFaceMetadataClientו-ListenableWatchFaceMetadataClientכבר לא ניסיוניות והן יהפכו לחלק מה-API היציב. המערכת תוכל לתמוך בכמה מופעים של תצוגת שעון, שלכל אחד מהם יהיו אפשרויות סגנון שונות שהמשתמש יכול להגדיר. הם יוצגו בבורר של תצוגות השעון. כדי להפעיל את ההגדרה הזו, מחוגי השעון צריכים לכלול את תג המטא-נתונים הבא בקובץ המניפסט שלהם.<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />לחלק מתצוגות השעון יש מצב שלא נכלל ב-
UserStyle. כדי לתמוך במצב הזה ובמקרים מרובים, מזהה המופע של תצוגת השעון זמין עכשיו דרךWatchState.watchFaceInstanceId.
ComplicationDataנשמר עכשיו במטמון כדי לאפשר הצגה מיידית של סיבוכים בזמן הטעינה. לפעמים המערכת שומרת אתComplicationDataבמטמון בזיכרון, ולפעמים ספריות של פני השעון מבצעות סריאליזציה שלComplicationData. כשמבצעים סריאליזציה, הפעולה tapAction המשויכת אובדת. אם זה קורה,ComplicationData.tapActionLostDueToSerializationמחזירtrueופני השעון צריכים להציג את הנתון בצורה שונה (למשל, באפור או בחצי שקוף) כדי לציין שאי אפשר להקיש עליו. המערכת תשלחComplicationDataמעודכן עםtapActionבהקדם האפשרי.כדי לתמוך במקרים שבהם לא כדאי לשמור במטמון חלק מהרכיבים
ComplicationDataלמשך זמן רב, הוספנו תכונה כללית יותרComplicationDataTimeline. אפשר להשתמש בזה כדי לספק רצף שלComplicationDataעם הגבלת זמן שיוצגו במסך השעון, שניתן לשמור במטמון ולעדכן באופן אוטומטי. לדוגמה, תחזית מזג האוויר להיום בשעות שונות או כמה אירועים קרובים ביומן. הוספנו ל-ComplicationRequestListenerאת השיטה החדשהonComplicationDataTimeline, שבעזרתה אפשר להחזיר את הנתונים האלה.DefaultComplicationDataSourcePolicyהורחב כך שאפשר לציין אתComplicationTypeלמקורות הנתונים הראשיים והמשניים.הוספנו תמיכה בספקי רכיבים סינכרוניים שבהם הרכיב מתעדכן בתדירות גבוהה מהרגיל, עד פעם בשנייה, כשתצוגת השעון גלויה ולא במצב סביבתי. הערה: יכול להיות שהשימוש בספקי סיבוכים סינכרוניים יהיה מוגבל בגלל בעיות שקשורות ללחץ על הזיכרון.
סביר להניח שהשינויים ב-
PendingIntentTapListenerיבוטלו, כי פתרנו את הבעיה הבסיסית (אי אפשר להפעיל פעילויות של לוח השעון למשך 5 שניות אחרי שלוחצים על לחצן הבית) במסגרת במקום.
שינויים ב-API
- הערך של
ComplicationData.isCachedהשתנה ל-tapActionLostDueToSerialization, שהוא שימושי יותר כשקובעים אם משבצת הסיבוך צריכה להיות מוצגת בצורה שונה כדי לסמן שאי אפשר להקיש עליה. (I6de2f) ComplicationDataTimelineנוסף לקבוצהwear-complication-data-source. אפשר להשתמש בזה כדי לספק רצף שלComplicationDataעם הגבלת זמן שיוצגו במסך השעון, שניתן לשמור במטמון ולעדכן באופן אוטומטי. לדוגמה, תחזית מזג האוויר להיום בשעות שונות או כמה אירועים קרובים ביומן. הוספנו ל-ComplicationRequestListenerאת השיטה החדשהonComplicationDataTimeline, שבעזרתה אפשר להחזיר את הנתונים האלה. יש עטיפה חדשה של KotlinSuspendingTimelineComplicationDataSourceServiceלהשעיה של שירותי מקור נתונים. (Idecdc)- הוספת את
PendingIntentTapListenerואתWatchFaceControlClient.getPendingIntentForTouchEvent. הפתרון הזה יכול לעזור לתצוגות שעון שצריכות להפעיל כוונות בתגובה להקשות, כדי לעקוף בעיה שבה המסגרת חוסמת הפעלה של פעילויות חדשות למשך 5 שניות אחרי לחיצה על לחצן הבית. (I98074) - הוספנו מטמון
ComplicationDataלכל תצוגת שעון. המטרה היא לאפשר לתצוגת השעון להציג את ערכי הנתונים האחרונים של התוסף שהיו ידועים בזמן הטעינה, עד שהמערכת תעדכן אותם. יש שיטת API חדשה,WatchFaceControlClient.hasComplicationCacheשמיועדת ליצרני ציוד מקורי (OEM). הפעולה הזו עשויה להשפיע על האסטרטגיה של המערכת לשליחת נתונים מורכבים לתצוגת השעון. בנוסף, לרכיבComplicationDataיש מאפייןisCached, ומומלץ להציג רכיבי מידע ששמורים במטמון בצורה שונה, כי אי אפשר לשמור במטמון אתtapAction, והוא יהיהnullברכיב מידע ששמור במטמון. (I404b0) - מזהה המופע של תצוגת השעון זמין עכשיו דרך
WatchState.watchFaceInstanceId. ברוב עיצובי השעון לא צריך להשתמש בזה, אבל אם יש מצב לכל עיצוב שעון שלא נשמר בסכימה, זה המפתח שצריך להשתמש בו כדי לזהות את מופע עיצוב השעון. כדי לתמוך בכך, עכשיו אפשר לספק מזהה כשמתקשרים אלWatchFaceControlClient.createHeadlessWatchFaceClient. (I1ff98) DefaultComplicationDataSourcePolicyמורחב עם אפשרות להגדיר אתComplicationTypesכברירת מחדל לספק הראשי, לספק המשני ולספק המערכת לגיבוי. המאפייןComplicationSlot.defaultDataSourceTypeהוצא משימוש. (If0ce3)- הערך של
ComplicationSlot.configExtrasניתן לשינוי, ואפשר לעדכן אותו לפני שמתקשרים אלEditorSession.openComplicationDataSourceChooser(). (I6f852) - הוספת את
WatchFace.setComplicationDeniedDialogIntentואתsetComplicationRationaleDialogIntent. הכוונה היא להציג תיבת דו-שיח עם הסבר לפני בקשת הרשאות לסיבוך, ועוד תיבת דו-שיח עם הסבר על הצורך בהרשאה לסיבוך כשמנסים לערוך סיבוך כשההרשאות נדחות (הכלי לבחירת ספק לא ייפתח, ולכן צריך את תיבת הדו-שיח). (I3a29c) - מעכשיו אפשר להגדיר את
UserStyleSchemaואתComplicationSlotsב-XML. כך קל יותר ליצור את פני השעון, והשאילתות שלWatchFaceMetadataClientמהירות יותר כי הן לא צריכות להיות מקושרות לשירות כדי לקבל את המטא-נתונים. (I85bfa) - נוסף
InteractiveWatchFaceClient.supportsPendingIntentForTouchEventכדי שלקוח יוכל לקבוע אם תצוגת שעון תומכת ב-getPendingIntentForTouchEvent. (I0b917) - התכונות
WatchFaceMetadataClientו-ListenableWatchFaceMetadataClientכבר לא ניסיוניות. אפשר להשתמש בהם כדי לקבל ביעילות מטא-נתונים של פני שעון, במידת האפשר בלי לפתוח קובץ מאגד של פני השעון. (Ibb827) - הוספנו תמיכה בספקי רכיבים סינכרוניים שבהם הרכיב מתעדכן בתדירות גבוהה מהרגיל, עד פעם בשנייה כשתצוגת השעון גלויה ולא במצב סביבה. כדי להשתמש בשיטה הזו, הספק צריך לכלול תג מטא-נתונים חדש
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDSבמניפסט שלו ולבטל אתonSynchronousComplicationRequest. בהתאם לאופי של מקור הנתונים, יכול להיות שיהיה צורך גם לבטל את ההגדרה שלonStartSynchronousComplicationRequestsושלonStopInteractiveComplicationRequestsכדי לקבל התראות על הכניסה של הסיבוך למצב אינטראקטיבי ועל היציאה ממנו. (I8fe9d)
גירסה 1.0
גרסה 1.0.1
9 בפברואר 2022
androidx.wear.watchface:watchface-*:1.0.1 משוחרר. גרסה 1.0.1 מכילה את הקומיטים האלה.
תיקוני באגים
- תיקון באג שקשור ל-tapAction
PhotoImageComplicationDataשלא מטופל בצורה נכונה (I1cc30)
גרסה 1.0.0
1 בדצמבר 2021
androidx.wear.watchface:watchface-*:1.0.0 משוחרר. גרסה 1.0.0 מכילה את הקומיטים האלה.
התכונות העיקריות בגרסה 1.0.0
חבילת androidx.wear.watchface היא הספרייה המומלצת החדשה לפיתוח תצוגות שעון ב-WearOS. יש לה מספר תכונות חדשות בהשוואה לספריית התמיכה הישנה ב-Wearable.
- הספרייה תומכת ישירות בסגנון משתמש (למשל, שינוי פלטת הצבעים, הסגנון של מחוגי השעון, המראה של סימני השעות וכו') (ראו
androidx.wear.watchface.style). עכשיו הרבה יותר קל לפתח עורך של תצוגת שעון באמצעות androidx.wear.watchface.editor, ואפשר לערוך את תצוגת השעון מאפליקציית המערכת הנלווית בלי לכתוב קוד נוסף. - שיטות מומלצות מובנות. הספרייה יוצרת באופן אוטומטי תוויות של תוכן לקורא מסך עבור סיבוכים (אפשר גם להוסיף תוויות משלכם), וקצב הפריימים יורד באופן אוטומטי כשהסוללה חלשה ולא בטעינה, כדי לשפר את חיי הסוללה.
- נדרש פחות קוד כדי לפתח תצוגת שעון, במיוחד עבור נתונים מורכבים שבהם הרבה מהקוד הסטנדרטי הועבר לספרייה.
תיקוני באגים
- תיקון
EditorSession.userStyle.compareAndSet(I6f676) - תיקון השהיות קצרות מאוד בתצוגת השעון (Iffb97)
- העברת
InteractiveWatchFaceImpl.onDestroyבשרשור UI (I83340) - פתרון כמה בעיות שקשורות ל-broadcast receivers (I7d25f)
גרסה 1.0.0-rc01
3 בנובמבר 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01 משוחרר. גרסה 1.0.0-rc01 כוללת את הקומיטים האלה.
תיקוני באגים
תיקון של הפונקציה dump() (שנקראת על ידי adb shell dumpsys) שנפגמה בגלל העברות של זרימות. (087cf9e)
צריך לוודא שסדר הפעולות של writeDirectBootPrefs נכון. אנחנו רוצים ש-writeDirectBootPrefs תמיד יפעל אחרי initStyleAndComplications, אחרת יש סיכון לעיכוב בהפעלת השרשור של ממשק המשתמש.(37650ac)
מוודאים שהפונקציה Renderer.onDestroy נקראת. בתרחיש שבו כלי הרינדור נוצר אבל WF init לא הושלם ומתבצעת קריאה ל-Engine.onDestroy, צריך לבצע קריאה ל-Renderer.onDestroy. (f9952dc)
אופטימיזציה או תיקון של isBatteryLowAndNotCharging. התיקון הזה מעביר את ההגדרה הראשונית של isBatteryLowAndNotCharging למועד מוקדם יותר, כך שאפשר לבצע אותה במקביל ל-createWatchFace. בנוסף, אנחנו מקשיבים עכשיו ל-ACTION_POWER_DISCONNECTED. (ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive צריך להיות false אחרי סגירה (ab9774e)
גרסה 1.0.0-beta01
27 באוקטובר 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01 משוחרר. גרסה 1.0.0-beta01 מכילה את הקומיטים האלה.
גרסה 1.0.0-alpha24
13 באוקטובר 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha24 משוחרר. גרסה 1.0.0-alpha24 מכילה את הקומיטים האלה.
שינויים ב-API
- הכיתות בחבילה
androidx.wear.watchface.complicationsהועברו לפרויקט חדשwear:watchface:watchface-complications. שימו לב: המשמעות היא שאי אפשר לכלול את הספרייה הזו וגם גרסת אלפא קודמת שלwear:watchface:watchface-complications-data, כי יוצגו שגיאות לגבי כיתות כפולות. (I97195) - הפונקציה Renderer.dump קיבלה את השם Renderer.onDump והיא מסומנת ב-@UiThread. (I44845)
- השם של
InteractiveWatchFaceClient.addWatchFaceReadyListenerהשתנה ל-addOnWatchFaceReadyListenerוהשם שלremoveWatchFaceReadyListenerהשתנה ל-removeOnWatchFaceReadyListener. (I48fea) - הפונקציות EditorSession
getComplicationsPreviewDataו-getComplicationsDataSourceInfoהן כבר לא פונקציות השהיה, אלא מאפייניStateFlow<>שהערך שלהם הוא null בהתחלה. ב-ListenableEditorSession, הפונקציותgetListenableComplicationPreviewDataו-getListenableComplicationsProviderInfoהוסרו לטובת האובייקטים החדשיםStateFlow<>ממחלקת הבסיס. אם אתם צריכים להאזין לשינויים בקוד Java, כדאי להשתמש ב-androidx.lifecycle.FlowLiveDataConversions.asLiveDataכדי להמיר ל-LiveData<>. (Ic5483)
גרסה 1.0.0-alpha23
29 בספטמבר 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha23 משוחרר. גרסה 1.0.0-alpha23 מכילה את הקומיטים האלה.
תכונות חדשות
ספריית עיצובי השעון היא עכשיו קבוצה אחת של ספריות, ולכן הספריות הועברו ותצטרכו לעדכן את הייבוא של gradle באופן הבא:
| מכשיר ישן | חדש |
|---|---|
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
- מעבירים את הספריות הנפרדות
androidx.wearWatchface ו-complications לקבוצת הספרייהandroidx.wear.watchface. (b25f3c0) - נוספה התכונה EditorRequest.canWatchFaceSupportHeadlessEditing כדי ליידע לקוח אם עורך תצוגת השעון תומך בעריכה ללא ראש. שימו לב שיהיו כמה תוצאות שליליות שגויות כי התמיכה נוספה ב-asop/1756809, אבל היא תחזיר את הערך הנכון לכל לוחות השעון העתידיים. (ca55590)
- ל-Renderer יש עכשיו שיטה dump() שאפשר לבטל כדי להוסיף נתונים בהתאמה אישית למידע שנוצר על ידי שירות הפעילות WatchFaceService של dumpsys של מעטפת ADB. (95235f9)
- הפונקציה InteractiveWatchFaceClient.addWatchFaceReadyListener מציינת עכשיו את ה-executor קודם. (563ac2f)
- הוסר StateFlowCompatHelper. במקומו צריך להשתמש ב-asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
- המאפיין CurrentUserStyleRepository.userStyle לא ניתן לשינוי יותר. (I44889)
- השם של WatchFaceReadyListener השתנה ל-OnWatchFaceReadyListener. (Ic12a9)
תיקוני באגים
- InteractiveInstanceManager.deleteInstance כדי לקרוא ל-onDestroy. הפעולה הזו נדרשת כדי לוודא ש-InteractiveWatchFaceImpl יאסוף את הנתונים הלא רלוונטיים (garbage collection). (fce4af8, b/199485839)