תצוגת Wear Watch

יצירת אפליקציות לשעונים חכמים של Wear OS by Google.

הערה: החל מ-10 ביולי 2024, תצוגות השעון חייבות להשתמש בתכונה Watch Face Format כדי להיות מותקנות בשעונים חדשים שמופעלים עם Wear OS 5 מותקנת מראש. מידע נוסף לשינויים שגלויים למשתמשים כאן מרכז העזרה במאמר הזה.

כמו כן, החל מתחילת 2025 (תאריך ספציפי יפורסם במהלך רבעון 4 של שנת 2024), כל תצוגות השעון החדשות שמתפרסמות ב-Google Play חייבות להשתמש בתצוגת השעון פורמט.

העדכון האחרון גרסה יציבה מועמד לפרסום גרסת בטא גרסת אלפא
17 באפריל 2024 1.2.1 - - 1.3.0-alpha03

הצהרה על יחסי תלות

כדי להוסיף תלות ב-Wear, צריך להוסיף את מאגר Google Maven פרויקט. למאגר Maven של Google אפשר לקבל מידע נוסף.

מוסיפים את יחסי התלות של פריטי המידע הנדרשים בקובץ 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"
}

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-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 מכילה את התחייבויות אלה.

תכונות חדשות

  • עכשיו אנחנו משתמשים בשוויון קובצי עזר כדי להשוות בין הטובים ביותר לבין selectedData כי האופרטור 'שווה ל-' יקר. (446b00)

שינויים ב-API

  • הוספנו ל-GoalProgressComplicationData ממשק API דינמי ללא גיבוי. (c33264)

גרסה 1.3.0-alpha01

7 בפברואר 2024

androidx.wear.watchface:watchface-*:1.3.0-alpha01 משוחרר. גרסה 1.3.0-alpha01 מכילה את התחייבויות אלה.

תכונות חדשות

  • WatchFaceServices ניתן לאתחל בו-זמנית ולכן הם צריכים להיות ללא שמירת מצב. כדי לתמוך בכך, הוספנו StatefulWatchFaceService שבו תוספת בהגדרת משתמש שנוצרה על ידי createExtra() מועברת לכל הביטולים שנקראים במהלך האתחול.
  • יש עכשיו ב-GlesRenderer2 עומס יתר ב-constructor, שמאפשר לציין רשימה של מאפיינים שאפשר לנסות בעזרת eglChooseConfig.

שינויים ב-API

  • ב-StatefulWatchFaceService יש עכשיו תמיכה בשינוי של getComplicationSlotInflationFactory שאליו מועברת התוספת המוגדרת על ידי המשתמש, שנוצרה על ידי createExtra(). (I82d9f)
  • חלק מתצוגות השעון צריכות לשתף נתוני עזר שנוצרו במהלך createUserStyleSchema עם שיטות האתחול האחרות. מכיוון שאין חלופה טובה יותר, מפתחים בדרך כלל הוסיפו את הסטטוס WatchFaceServices שלהם למצב. הפעולה הזו מסוכנת כי אפשר ליצור כמה מופעים בו-זמנית ולגרום לבאגים. כדי לפתור את הבעיה, הוספנו את StatefulWatchFaceService ואת StatefulWatchFaceRuntimeService, שבהם סוג בהגדרת המשתמש נוצר על ידי createExtra() ומועבר לשיטות היצירה השונות כפרמטר. (If8a99)
  • הוספנו את getUserStyleFlavors אל InteractiveWatchFaceClient, שהוא מעניין בעיקר יצרני ציוד מקורי. (I0f5d8)
  • יש עכשיו ב-GlesRenderer2 עומס יתר ב-constructor, שמאפשר לציין רשימה של מאפיינים שאפשר לנסות בעזרת eglChooseConfig. כך, לדוגמה, ניתן לנסות קודם הגדרה עם פעולת 'ביטול שינוי' וחזרה להגדרה כזו בלי צורך בכך. (I1ba74)
  • החל מ-Android U, נוסיף ל-WearOS תמיכה ב-SystemDataSources.DATA_SOURCE_HEART_RATE. מובטח שהתוספת הזו תתמוך רק ברכיבים של SHORT_TEXT, אבל מומלץ ל-ComplicationSlot לאשר גם את SMALL_IMAGE כי יצרני ציוד מקורי יכולים להציג קיצור דרך לאפליקציית הבריאות שלהם במקום את הערך הפעיל. (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, יצרני ציוד מקורי יוכלו לקבוע אם בקשה לרכיב נשלחה מתצוגת שעון ברשימה שהוגדרה על ידי המטא-נתונים 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 יחד עם רכיבי wrapper של גויאבה. המסכים האלה תומכים בזמני ריצה של תצוגת השעון, סוג מיוחד של תצוגת שעון שטוענת את ההגדרה מחבילה אחרת. נכון לעכשיו, WearOS תומך רק בסביבת זמן הריצה של Android Watch Face Format. (I2799f)
  • התיקון הזה נוצר בהמשך ל-aosp/2636578 שבו אנחנו משנים את השם של אמצעי הבקרה, כך שאין צורך לשנות כל קוד שתלוי ב-WatchFaceType, ב-CanvasType, ב-TapType או ב-ComplicationsSlotBoundsType. (I4098b)
  • קובצי API עודכנו כדי להוסיף הערות על ביטול התאימות. (I8e87a, b/287516207)
  • התיקון הזה חושף קבועים של WatchFaceType ב-WatchFaceTypes, קבועים של CanvasType ב-CanvasTypes, TapType קבועים ב-TapTypes ו-ComplicationsSlotBoundsType קבועים ב-ComplicationsSlotBoundsType. (I3b85a, b/288750666)
  • השימוש ב-WatchFace.OverlayStyle נמוך מאוד ויצרני ציוד מקורי לא תומכים בו בצורה טובה. לכן אנחנו מוציאים משימוש את המוצר בתאריך מאוחר יותר. (I7344a)

גרסה 1.2.0-alpha09

21 ביוני 2023

androidx.wear.watchface:watchface-*:1.2.0-alpha09 משוחרר. גרסה 1.2.0-alpha09 מכילה את התחייבויות אלה.

תכונות חדשות

  • RangedValueComplicationData.Builder מקבל עכשיו את DynamicFloat, ו-DynamicComplicationText חדש זמין כקטגוריית משנה של ComplicationText. שתיהן יכולות להשתמש בביטויים דינמיים וגם בקישורי פלטפורמה שמתעדכנים ב-1hz במכשירי 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. בדרך כלל, הביצועים האלה יהיו טובים יותר מעיבוד למפת סיביות (bitmap). (Ieacad)
  • השם של ObservableStateStore השתנה ל-StateStore. (Ieb0e2)
  • הוספת את DynamicTypeEvaluator.Builder במקום ארגומנטים של constructor כדי לאפשר יותר ארגומנטים, כולל ObservableStateStore, שברירת המחדל שלו היא חנות ריקה. (I6f832)
  • סדר הפרמטרים מחדש ב-DynamicTypeEvaluator. (Ic1ba4)
  • קובץ הביצוע נוסף ל-methods DynamicTypeEvaluator.bind. (I346ab)
  • הוספנו את ה-method 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, יצרני ציוד מקורי יוכלו לקבוע אם בקשה לרכיב נשלחה מתצוגת שעון ברשימה שהוגדרה על ידי המטא-נתונים 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 (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 APIs. (I31d88)
  • ב-constructor של ComplicationSlotOverlay שהוצא משימוש יש עכשיו DeprecationLevel.WARNING, שמאפשר לקרוא לו שוב מ-Java. (Ib308c)
  • תיקנו כמה בעיות תאימות של Java ל-ComplicationRequestListener, ל-CanvasComplication, ל-ComplicationTapFilter ול-InteractiveWatchFaceClient על ידי הוספת ההערה @JvmDefaultWithCompatibility (Id94fc)
  • הסרנו את ProtoLayoutComplicationData ואת ListComplicationData הניסיוניים. סיפור המפתח של הנושאים האלה לא היה ברור, אנחנו מקווים לחזור ולבדוק אותו בעתיד. (I9df05)
  • הוספנו ValueType בחזרה אל RangedValueComplicationData. ב-WeightedElementsComplicationData יש עכשיו תמיכה בצבע רקע. הסרנו את DiscreteRangedValueComplicationData כי הפונקציונליות שלו היא קבוצת משנה של WeightedElementsComplicationData. (I6446c)

תיקוני באגים

  • יש לכלול את isForScreenShot בקוד השווה ובקוד הגיבוב. צריך לוודא שהשדה onRenderParametersChanged מקבל ערך isForScreenshot נכון (I04a41)
  • תוקנו הדלפות של WatchFaceControlService מלקוחות ללא GUI. (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, שבה המשך קורוטין של קוטלין פעל כשורש 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

  • לפעמים מנהל הטפטים יכול להתנתק מהמנוע וליצור מנוע אחר. הוספנו DisconnectReason Int-def והרחבנו את ClientDisconnectListener בשיטה חדשה שכוללת DisconnectReason, שמאפשרת למאזינים לראות ניתוקים של מנוע. (I45cce)
  • נוספו שני פרמטרים אופציונליים nameResourceId ו-screenReaderResourceId ל-constructor של ComplicationSlotOverlay (I157e8)
  • הוספנו wrapper של גויאבה לעומס-היתר החדש של getOrCreateInteractiveWatchFaceClient עם PreviewImageUpdateRequestedListener. (Ic31f0)
  • הוספנו את Renderer.sendPreviewImageNeedsUpdateRequest, מידע שימושי לתצוגות שעון עם מצב מחוץ לUserStyleSchema, שמשפיע על המראה שלהן (למשל, תצוגת שעון עם תמונת רקע שניתן לבחור). בצד הלקוח הוספנו את PreviewImageUpdateRequestedListener כפרמטר אופציונלי ל-getOrCreateInteractiveWatchFaceClient כדי לקיים את הבקשות האלה. (Iff44a)
  • הפכנו את ה-API לפשוט יותר כדי לחשוף את WatchFaceColors. עכשיו יש נכס פשוט בשם watchFaceColors ברינדור, שאותו אפשר להגדיר בתצוגת השעון. צריך לעדכן אותו לפי הצורך בכל שינוי בסגנון. במקום להשתמש בפונקציה WallpaperManager כדי להבחין בשינויי צבעים, הוספנו את OnWatchFaceColorsListener אל InteractiveWatchFaceClient. (I490bc)
  • הוספנו מחלקה WatchFaceColors שכוללת את שלושת הצבעים הבולטים ביותר של תצוגות השעון, והוספנו שיטות פתוחות watchfaceColors וגם notifyWatchFaceColorsChanged לכלי לעיבוד, שמאפשרים למערכת לקבל את הצבעים של תצוגת השעון דרך WallpaperManager.getWallpaperColors. (I3d611)
  • ShortTextComplicationData, RangedValueComplicationData, NoPermissionComplicationData (והגרסה הניסיונית DiscreteRangedValueComplicationData, GoalProgressComplicationData ו-WeightedElementsComplicationData) תומכת עכשיו ב-SmallImages. אם תצוגת שעון בוחרת לעבד תכונה שכוללת כמה צבעים, עכשיו אפשר להשתמש בSmallImage צבעוני במקום שבו קודם לכן היא הייתה צריכה להשתמש בתמונה חד-כרומטית. (I257df)
  • משנים את הערך של PreviewImageUpdateRequestedListener ל-Consumer<> במקום זאת (Ia875d)
  • החלפה בהתאמה אישית של סוג השיטה המופשטת היחידה (SAM) OnWatchfaceColorsListener בסוג SAM גנרי של Java (צרכן) (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 מכילה את התחייבויות אלה.

תכונות חדשות

  • הוספנו תמיכה ניסיונית בפורמטים חדשים של סיבוכים. זהו תחום בהתפתחות פעילה. הפורמטים החדשים האלה עשויים להשתנות ללא הודעה מראש, וכרגע אין תמיכה בכלי לרינדור מצד CanvasComplicationDrawable.
  • הוספנו גם שוליים אופציונליים למשבצות לרכיבים, כך שקל יותר להקיש על סיבוכים קטנים.

שינויים ב-API

  • עכשיו אי אפשר לשנות את המחלקה הניסיונית BoundingArc. (If624a)
  • סיבוכים קטנים עלולים להיות מסובכים בהקשה. כדי לצמצם את התופעה, הוספנו תמיכה בשוליים שמגדילים את שטח המסך להקשה בלי להשפיע על העיבוד. אם לא צוין אחרת (בקוד או באמצעות XML), השוליים של ComplciationSlots הם אפס. (I14089)
  • חתימת getComplicationSlotInflationFactory(CurrentUserStyleRepository) שונתה כדי להחזיר מופע יצרן שאינו null. בעבר הייתה שגיאה בהחזרת הערך null, ולכן זה רק מבהיר את חוזה ה-API. (I0fcc0)
  • הוספנו ארגומנט currentUserStyleRepository לשיטה WatchFaceService.getComplicationSlotInflationFactory כדי שיהיה עקבי עם createComplicationSlotsManager. (I2ddd2)
  • שינית את UserStyleFlavors מהתכונה לא ניסיונית. (I69cdc)
  • הסרנו את ValueType הניסיוני מ-RangedValueComplicationData ובמקום זאת השקנו את DiscreteRangedValueComplicationData הניסיוני, כמו RangedValueComplicationData למעט טווח מספרים שלמים & עם ערך מסוים. הוספנו גם גרסה ניסיונית של GoalProgressComplicationData, שדומה ל-RangedValueComplicationData, אבל היא משמשת להתקדמות לקראת יעד שבו המינימום המשתמע הוא אפס, והערך יכול להיות גדול מ-targetValue. הערה לכל RangedValue הווריאציות צריך לציין לפחות תמונה אחת בסגנון מונוכרומטי, טקסט או שם פריט. (I9590c)
  • הסרנו את boundsWithMargins מ-ComplicationSlotState כי לתוכנת המערכת אין תרחיש לדוגמה עבורה. (I42e26)
  • הוספנו תמיכה ניסיונית ב-WeightedElementsComplicationData, שמורכבת ממערך אלמנטים (זוגות משקל וצבע) יחד עם טקסט/כותרת/תמונה אופציונליים. ייתכן שהתוויות יוצגו כתרשים עוגה שבו לצבעים יש משמעות בהקשר, כי בדרך כלל אין מקום לרכיבים נוספים כדי לעבד תוויות. (I87eea)
  • ColorRamps הניסיוני, שבו משתמשים באופן אופציונלי ב-RangedValueComplicationData וב-GoalProgressComplicationData, מאפשר עכשיו לציין רצף של עד שבעה צבעים ודגל שמציין אם לשלב את הצבעים בצורה חלקה או אם צריך לעבד שלבי צבע אחידים בגודל זהה. (I9f5bf)
  • RangedValueComplicationData.drawSegmented השתנה ל-valueType, שהוא int עם 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. התיקון הזה מעביר עבודה מיותרת מהמנעול, ומסיר את הפוטנציאל למבוי סתום (5a2adca)

  • צריך לתקן כמה בעיות שנשארו WatchFaceService. לפעמים ה-WakeLock יכול לשמור את WatchFaceService, וכדאי להוסיף קריאה ל-release() כדי לפתור את הבעיה. בנוסף, ב-StateFlows אפשר לשמור את הערך WatchFaceService, ולבטל את התיקונים הבסיסיים לתיקונים מסוג CoroutineScopes.(fd48138)

  • צריך להוסיף זמנים קצובים לתפוגה אל awaitDeferredWatchFace* ולתקן watchfaceOverlayStyle NullPointerException. בנסיבות רגילות, הזמן הקצוב לתפוגה לא אמור להסתיים, כולל אחרי התקנה חדשה ותרחישים של 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 יתפרש בטעות כסוג של רכיב הורה, שמוביל ל-NPE כשבוצעה גישה לשדות חובה שלא קיימים. (55ffdf5)
  • תיקון באג שגרם לשחרור של שדות של ציר הזמן על ידי setComplicationData(fb392f5)
  • תיקון באג שבמקרים מסוימים לגרום ל-runBlockingWithTracing להוביל ל-NPE(12ca62e)
  • תיקון באג שבמקרים מסוימים אנחנו מקבלים ClassNotFoundException: android.support.wearable.complications.ComplicationText כאשר אנחנו מקבלים תכונה נוספת.(217942d9)
  • תיקון באג בGlesRenderer.backgroundThreadInitInternal שהתקשרו אל onBackgroundThreadGlContextCreated רק אם בוצעה שיחה אל EGL14.eglCreateContext. תיקון באג נוסף שבו הייתה תקלה ויזואלית בצילום המסך שנגרמה על ידי verticalFlip.(c674ad2)
  • תיקון WatchFaceService של בדיקת גרסת XML, היא נטענה מהחבילה הלא נכונה.(dfa06f3)
  • בפורמט של חוט placeholder נעשה עכשיו שימוש בחבילה פנימית. אנחנו לא רוצים שרכיבי placeholder ישברו תצוגות שעון קיימות שעשויות להשתמש ב-a.s.w.c.ComplicationData הפנימי המוסתר. בעבר, הפורמט של הכבלים היה בפורמט של NoDataComplication נתונים שאחסנו את ה-placeholder בשדות הרגילים (בעייתי כי תצוגות שעון ישנות יעבדו את מחרוזת ה-placeholder באופן לא מכוון). במקום זאת, עכשיו אנחנו משתמשים בחבילה פנימית כדי לבודד אותה באופן מלא.(d5e7bd2)

גרסה 1.1.0-beta01

20 באפריל 2022

androidx.wear.watchface:watchface-*:1.1.0-beta01 משוחרר. גרסה 1.1.0-beta01 מכילה את התחייבויות אלה.

שינויים ב-API

  • עכשיו WatchFaceMetadataClient methods (getUserStyleSchema, getComplicationSlotMetadataMap, getUserStyleFlavors) ו-HeadlessWatchFaceClient.getUserStyleFlavors מבטלות את הסימון של אפשרות RuntimeError במקום 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)
  • נוספה האפשרות של @WatchFaceFlavorsExperimental להגדיר טעמים – רשימה מוגדרת מראש של תצוגות שעון מעוצבות (I04dd0)
  • Renderer.sharedAssets נקראת עכשיו StateFlow והסרנו את Renderer.SharedAssetsFactory שלא נמצא בשימוש (I12ac5)
  • UserStyleSchema.userStyleSettings כבר לא הוצא משימוש (Iba7e3)
  • הוספנו את הרכיב HeadlessWatchFaceClient.getUserStyleSchemaDigestHash, שמאפשר ל-HeadlessWatchFaceClient למנוע את התקורה הנמוכה יחסית של העברת הסכימה באמצעות AIDL לפני חישוב הגיבוב לתקציר. (I33597)
  • הוספנו את isUserStyleSchemaStatic אל WatchFaceMetadataClient, והוא רלוונטי רק אם ניתן להסתמך על UserStyleSchema שלא ישתנה אלא אם ה-APK של תצוגת השעון יעודכן. (I45a3f)
  • הוספנו אל UserStyleSchema את הפונקציה getDigestHash, שמחשבת גיבוב תקציר של הסכימה. אפשר להשתמש כך כדי לקבוע ביעילות אם בוצע שינוי ב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 עם placeholder אופציונלי של ComplicationData והוספנו את התכונות ComplicationText.PLACEHOLDER, MonochromaticImage.PLACEHOLDER, SmallImage.PLACEHOLDER ו-PhotoImage.PLACEHOLDER שאפשר להשתמש בהן רק בהקשר של placeholder של NoDataComplicationData. אם בוחרים את ערכי ה-placeholder האלה, מומלץ לעבד אותם עם תיבות או קשתות אפורות. (I6285d)
  • הוספנו את הערך ComplicationData.getNextChangeInstant, שמציין את ההפעלה המיידית הבאה אחרי הפניה מיידית, שבו כל שדה ברכיב עשוי להשתנות. הוא משמש באופן פנימי לתזמון פריימים לצורך עדכוני רכיבים. לדוגמה אם תצוגת שעון מתעדכנת בדרך כלל פעם בדקה, הגדרה של רכיב עצירה של השעון תגרום לעדכון שלה פעם בשנייה. (I7ceb2)
  • עכשיו אפשר להשתמש ב-EditorSession.watchFaceId בכל רמות ה-API. בנוסף, הערך שלו תמיד יהיה עקבי עם WatchState.watchFaceInstanceId. (I323b9)
  • ה-API של getPendingIntentForTouchEvent כבר לא נחוץ, כי הבעיה הבסיסית תוקנה ב-framework, ולכן כל ממשקי ה-API הקשורים הוסרו. תצוגות השעון לא צריכות לבצע שום פעולה מיוחדת כדי להפעיל את PendingIntents, גם אם הלחצן של דף הבית נלחץ לאחרונה. (I1f2e8)
  • הוספנו את הערך RendererParameters.isForScreenShot, שיהיה רלוונטי אם העיבוד מתבצע עבור צילום מסך. חלק מתצוגות השעון עם אנימציות צריכות לדעת את המידע הזה כדי לבצע כוונונים ולקבל את התוצאות הטובות ביותר. (I96d99)
  • הוספנו את הכתובת WatchFaceExceptionReason אל WatchFaceException כדי לתת הקשר לגבי הבעיה. (I01d15)
  • המכשיר ComplicationDataSourceService.onImmediateComplicationRequest הוסר, ובמקום זאת התווסף ComplicationRequest.immediateResponseRequired כדי לאותת שהספק צריך להגיב במהירות (רצוי להגיב תוך פחות מ-100 אלפיות שנייה). חשוב לשים לב שהפונקציונליות הזו מוגנת באמצעות הרשאת com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE המוגבלת. (Ie6b23)
  • תכונת ה-null עודכנה בליבת ותאימות האפליקציה כדי להתאים ל-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 – הגדרות צאצא שנמצא בשימוש בהתחלה רק על ידי ListOption. כך ניתן לתאר היררכיה של סגנונות לשימוש בממשקי המשתמש של Editor, סגנון המשתמש הבסיסי לא משתנה ועדיין נשאר Map<String, ByteArray>. (Iaf6f4)
  • הוספנו את התכונה WatchFace.OverlayStyle, שמאפשרת לתצוגת השעון להגדיר את הרינדור של שכבת-העל של סטטוס המערכת. (I8520d)
  • הוספנו ל-clearWithBackgroundTintBeforeRenderingHighlightLayer פרמטר אופציונלי חדש של constructor בשביל CanvasRenderer (ברירת המחדל היא False). אם המדיניות מוגדרת כ-True, אזור העריכה ינוקה מצבע הרקע. (Ie01e5)
  • נוסף מפתח המטא-נתונים androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTED שמאפשר למקורות נתונים של רכיבים כדי לציין שהם יכולים לספק ערך ברירת מחדל ללא הגדרה (Icc0d4)
  • לעיתים קרובות כשעורכים תצוגת שעון היא צריכה להיות גם מכונה אינטראקטיבית וגם מכונה ללא GUI. כדי לחסוך בזיכרון, הוספנו את התכונה Renderer.SharedAssets, שמאפשרת לכלי לרינדור תצוגות השעון לשתף נתונים שאינם ניתנים לשינוי (למשל, טקסטורות וכלי הצללה) בין מופעים. GlesRenderer.setEglConfig ו-GlesRenderer.setEglDisplay הוצאו משימוש, הם אף פעם לא היו מיועדים להגדיר אותם, ולכן הפעולה הזו הייתה מובילה להתנהגות לא מוגדרת. (I0d9e7)
  • הוספנו setNameResourceId ועוד setScreenReaderNameResourceId (שמפנה למשאבי מחרוזות) אל ComplicationSlot.Builder ולנמענים תואמים ב-androidx.wear.watchface.client.ComplicationSlotState. הפעולה הזו מאפשרת למערכת לאחזר את השמות של ComplicationSlots לשימוש בעורכים ובקוראי מסך. (If6c6a)
  • WatchfaceMetadataClient.getUserStyleSchema ו-getComplicationSlotMetadataMap יזינו עכשיו WatchFaceException במקום RemoteException. (I86f11)
  • השמות של onSynchronousComplicationRequest ופונקציות קשורות ב-ComplicationDataSourceService השתנו ל-onImmediateComplicationRequest וכו'... (I87ba0)
  • לעורכים של תצוגת השעון יש הרבה פחות מקום במסך בהשוואה לעורכים הנלווים, לכן הגיוני לתמוך בסמלים שונים בעורכים של תצוגת השעון. התיקון הזה יוסיף את OnWatchEditorData (שמכיל כרגע רק סמל) לכל UserStyleSettings וכן במקרים המתאימים של מחלקות ה-Option. (If1886)
  • הוספנו את @JvmOverloads ל-constructor של ListenableGlesRenderer כדי לשפר את הפעולה ההדדית של Java. (I2974a)

תיקוני באגים

  • ה-constructor של ListenableGlesRenderer מסומן עכשיו בצורה נכונה כ-@Throws(GlesException::class), ועכשיו אפשר להרחיב את המחלקה הזו ב-Java. (Iac6d0)
  • מתקן באג באמצעות PhotoImageComplicationData TapAction לא מטופל כראוי (I1cc30)

גרסה 1.1.0-alpha02

12 בינואר, 2022

androidx.wear.watchface:watchface-*:1.1.0-alpha02 משוחרר. גרסה 1.1.0-alpha02 מכילה את התחייבויות אלה.

תכונות חדשות

  • כדי לסייע בניפוי באגים ובבדיקות, ComplicationData ומחלקות משנה קשורות ביטלו עכשיו את קוד הגיבוב (hashcode), ה-methods ו-toString כדי שיהיה קל יותר לעבוד איתן.

שינויים ב-API

  • שיטות WatchfaceMetadataClient גורמות שוב ל-RemoteExceptions במקומות המתאימים, וכך קוד הלקוח יכול לזהות בקלות שגיאות מתצוגת השעון. (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 נשמר במטמון בזיכרון על ידי המערכת, ולפעמים הוא עובר סריאליזציה לספריות של תצוגת השעון. אחרי השדרוג הסידורי, ה-tapAction המשויך יאבד. במקרה כזה, ComplicationData.tapActionLostDueToSerialization יחזיר את הערך true ותצוגת השעון תעבד את התכונה באופן שונה (למשל, אפור או שקוף למחצה) כדי לאותת שלא ניתן להקיש עליה. המערכת תשלח ComplicationData מעודכן עם tapAction בהקדם האפשרי.

  • לא צריך לשמור חלק מהComplicationData במטמון למשך זמן רב. כדי לתמוך בכך, הוספנו תכונה כללית יותר ComplicationDataTimeline. אפשר להשתמש בכך כדי לספק רצף של ComplicationData עם הגבלת זמן להצגה בתצוגת השעון, שניתן לשמור במטמון ולעדכן באופן אוטומטי. לדוגמה, תחזית מזג האוויר להיום בזמנים שונים או במספר אירועים ביומן קרובים. בוצעה הרחבה של ComplicationRequestListener בשיטה חדשה onComplicationDataTimeline שבעזרתה ניתן להחזיר את הנתונים האלה.

  • התוסף DefaultComplicationDataSourcePolicy הורחב כך שאפשר לציין את ComplicationType עבור מקורות הנתונים הראשיים והמשניים.

  • הוספנו תמיכה בספקים סינכרוניים של רכיבים שבהם התכונה מתעדכנת בתדירות גבוהה יותר מהרגיל, עד פעם בשנייה כשתצוגת השעון גלויה ולא סביבתית. הערה: לשימוש של ספקי רכיבים סינכרוניים עשוי להיות שימוש מוגבל בגלל בעיות של לחץ על הזיכרון.

  • סביר להניח שהשינויים PendingIntentTapListener יבוטלו, כי פתרנו את הבעיה הבסיסית (כלומר, תצוגת השעון לא יכולה להפעיל פעילויות במשך 5 שניות לאחר לחיצה על הלחצן הראשי) ב-framework.

שינויים ב-API

  • הערך ComplicationData.isCached השתנה ל-tapActionLostDueToSerialization, שעוזר יותר לקבוע אם יש לעבד את משבצת התכונה באופן שונה כדי לאותת שלא ניתן להקיש עליה. (I6de2f)
  • ComplicationDataTimeline נוסף לקבוצה wear-complication-data-source. אפשר להשתמש בכך כדי לספק רצף של ComplicationData עם הגבלת זמן להצגה בתצוגת השעון, שניתן לשמור במטמון ולעדכן באופן אוטומטי. לדוגמה, תחזית מזג האוויר להיום בזמנים שונים או במספר אירועים ביומן קרובים. בוצעה הרחבה של ComplicationRequestListener בשיטה חדשה onComplicationDataTimeline שבעזרתה ניתן להחזיר את הנתונים האלה. יש wrapper חדש של Kotlin SuspendingTimelineComplicationDataSourceService להשעיית שירותי מקור נתונים. (Idecdc)
  • נוספו PendingIntentTapListener וגם WatchFaceControlClient.getPendingIntentForTouchEvent. כך ניתן לעזור בתצוגות שעון להפעיל כוונות בתגובה להקשות כדי לעקוף בעיה שבה המסגרת חוסמת הפעלה של פעילויות חדשות למשך 5 שניות לאחר לחיצה על הלחצן הראשי. (I98074)
  • הוספנו מטמון של ComplicationData לכל תצוגת שעון. מטרת התכונה הזו היא לאפשר לתצוגת השעון להציג את הערכים האחרונים של נתוני הרכיב הידועים בזמן הטעינה, עד שלמערכת תהיה אפשרות לעדכן אותם. יש שיטת API חדשה WatchFaceControlClient.hasComplicationCache שמיועדת ליצרני ציוד מקורי. הפעולה הזו עשויה להשפיע על האסטרטגיה של המערכת לשליחת רכיבים לתצוגת השעון. בנוסף, ל-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 כוללת את ההתחייבויות האלה.

תיקוני באגים

  • מתקן באג באמצעות PhotoImageComplicationData TapAction לא מטופל כראוי (I1cc30)

גרסה 1.0.0

1 בדצמבר 2021

androidx.wear.watchface:watchface-*:1.0.0 משוחרר. גרסה 1.0.0 מכילה את ההתחייבויות האלה.

התכונות העיקריות של גרסה 1.0.0

החבילה androidx.wear.watchface היא הספרייה החדשה המומלצת לפיתוח תצוגות שעון עם WearOS. יש בו כמה תכונות חדשות בהשוואה לספריית התמיכה הישנה של גאדג'טים לבישים.

  • הספרייה תומכת בעיצוב המשתמש (לדוגמה, כדי לשנות את לוח הצבעים, את הסגנון של מחוגות השעון, את המראה של סימני השעה וכו') (ראו androidx.wear.watchface.style). עכשיו הרבה יותר קל לפתח כלי לעריכת תצוגות שעון באמצעות androidx.wear.watchface.editor, וכך לערוך את תצוגת השעון מהאפליקציה הנלווית של המערכת בלי לכתוב קוד נוסף.
  • שיטות מומלצות כבר ליישם. הספרייה יוצרת תוויות לתיאור התוכן של קורא המסך באופן אוטומטי עבור סיבוכים (אפשר גם להוסיף תוויות משלך), וקצב הפריימים יורד באופן אוטומטי כשהסוללה חלשה ולא נטענת כדי לשפר את חיי הסוללה.
  • נדרש פחות קוד כדי לפתח תצוגת שעון, במיוחד לסיבוכים שבהם חלק גדול מתבנית הבוילרפלייט עבר לספרייה.

תיקוני באגים

  • תיקון EditorSession.userStyle.compareAndSet (I6f676)
  • איך לפתור עיכובים קצרים מאוד בתצוגת השעון (Iffb97)
  • שליחת InteractiveWatchFaceImpl.onDestroy ב-thread של ממשק המשתמש (I83340)
  • פתרון מספר בעיות במקלטי שידורים (I7d25f)

גרסה 1.0.0-rc01

3 בנובמבר 2021

androidx.wear.watchface:watchface-*:1.0.0-rc01 משוחרר. גרסה 1.0.0-rc01 מכילה את ההתחייבויות האלה.

תיקוני באגים

  • תיקון dump() (שנקרא על ידי dumpsys של מעטפת adb) שנקטע על ידי העברות זרימה. (087cf9e)

  • חשוב להקפיד על סדר תקין של רכיבי WriteDirectBootPref. אנחנו רוצים שערכי WriteBootPrefs יופעלו תמיד אחרי initStyleAndComplications , או שאנחנו עלולים לעכב את התחלת השרשור בממשק המשתמש.(37650ac)

  • צריך לוודא שהקריאה של Renderer.onDestroy מופעלת. בתרחיש שבו נוצר ה-רינדור, אבל אתחול WF לא הושלם ונקראת Engine.onDestroy, צריך לקרוא ל-Renderer.onDestroy. (f9952dc)

  • אופטימיזציה/תיקון ל-isסוללהLowAndNotCharging. התיקון הזה מזיז את ההגדרה הראשונית של isסוללהLowAndNotCharging בשלב מוקדם יותר, כלומר ניתן לבצע את ההגדרה במקביל createWatchFace. בנוסף, אנחנו גם מקשיבים עכשיו ל-ACTION_POWER_DISCONNECTED. (ddffd80

  • InteractiveWatchFaceClient.isConnectionAlive to be 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)
  • Editor getComplicationsPreviewData ו-getComplicationsDataSourceInfo כבר לא פונקציות השעיה. במקום זאת, הם נכסי StateFlow<> שהערך שלהם בהתחלה הוא null. ב-ListenableEditorSession getListenableComplicationPreviewData ו-getListenableComplicationsProviderInfo הוסרו לטובת האובייקטים החדשים StateFlow<> ממחלקת הבסיס. אם צריך להאזין לשינויים בקוד של ג'אווה, כדאי להשתמש ב-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.wear לקבוצת הספריות androidx.wear.watchface. (b25f3c0)
  • נוסף EditorRequest.canWatchFaceSupportHeadlessEditing כדי ליידע לקוח אם עורך תצוגת שעון תומך בעריכה ללא GUI. לתשומת ליבך, יהיו כמה מילות מפתח שליליות מוטעות כך, מכיוון שנוספה תמיכה ב-asop/1756809, אך היא תחזיר את הערך הנכון לכל תצוגות השעון העתידיות. (ca55590)
  • בכלי הרינדור יש עכשיו שיטת dump() , שאותה אפשר לשנות כדי להוסיף נתונים מותאמים אישית למידע שנוצר על ידי שירות הפעילות WatchFaceService של מעטפת dumpsys של ABD. (95235f9)
  • מעכשיו, InteractiveWatchFaceClient.addWatchFaceReadyListener מציין קודם את המבצע. (563ac2f)
  • StateFlowCompatHelper הוסר. במקום זאת, צריך להשתמש בפורמט asLiveData (androidx.lifecycle.asLiveData). (bd35d3)
  • לא ניתן יותר לשנות את ההגדרה currentUserStyleRepository.userStyle. (I44889)
  • השם של WatchFace מגווןListener השתנה ל-OnWatchFaceReadyListener. (Ic12a9)

תיקוני באגים

  • InteractiveInstanceManager.deleteInstance כדי לקרוא onDestroy. הפעולה הזו נדרשת כדי להבטיח איסוף של נתוני אשפה ב-InteractiveWatchFaceImpl.(fce4af8, b/199485839)