תצוגת שעון ב-Wear

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

הערה: החל מינואר 2026, כדי להתקין תצוגות שעון בכל מכשירי Wear OS, צריך להשתמש ב-Watch Face Format.

מידע נוסף על השינויים שמשפיעים על המשתמשים זמין במאמר הזה במרכז העזרה.

העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫25 בפברואר 2026 1.3.0 - - -

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

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

אתם יכולים להוסיף את יחסי התלות של הארטיפקטים שאתם צריכים בקובץ build.gradle של האפליקציה או המודול:

Groovy

dependencies {
    // Use to implement wear watchfaces
    implementation "androidx.wear.watchface:watchface:1.3.0"

    // Use to implement wear watchface complications
    implementation "androidx.wear.watchface:watchface-complications-data-source:1.3.0"
    // (Kotlin-specific extensions)
    implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.3.0"

    // Use to implement a watchface style and complication editor
    implementation "androidx.wear.watchface:watchface-editor:1.3.0"

    // 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.3.0"
}

Kotlin

dependencies {
    // Use to implement wear watchfaces
    implementation("androidx.wear.watchface:watchface:1.3.0")

    // Use to implement wear watchface complications
    implementation "androidx.wear.watchface:watchface-complications-data-source:1.3.0"
    // (Kotlin-specific extensions)
    implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.3.0"

    // Use to implement a watchface style and complication editor
    implementation("androidx.wear.watchface:watchface-editor:1.3.0")

    // 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.3.0"
}

מידע נוסף זמין במאמר הוספת יחסי תלות ב-build.

משוב

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

יצירת דיווח על בעיה חדשה

מידע נוסף זמין במאמרי העזרה בנושא Issue Tracker.

גרסה 1.3

גרסה 1.3.0

‫25 בפברואר 2026

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

שינויים חשובים מאז גרסה 1.2.0:

  • ממשקי ה-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)
  • נוספה תמיכה בתצוגות מקדימות סטטיות של רכיבי מידע (8b2bed3)
  • נוסף מחלקה של כלי עזר, ComplicationTextFormatting, עם תמיכה בעיצוב נתונים ושעה בצורה תמציתית ככל האפשר. זה שימושי לרכיבי מידע שבהם המקום מוגבל מאוד.

גרסה ‎1.3.0-rc01

‫28 בינואר 2026

androidx.wear.watchface:watchface-*:1.3.0-rc01 מופץ. גרסה ‎1.3.0-rc01 מכילה את השמירות האלה

תכונות חדשות

  • הוספת תמיכה בתצוגות מקדימות סטטיות של תכונות נוספות (8b2bed3)

גרסה ‎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 יש עכשיו builders, שהם הדרך המומלצת ליצור אותן. (Iacd03)
  • תמיכה בהעברת תוספים ב-ComplicationData. התכונה הזו מיועדת לשימוש של יצרני ציוד מקורי (OEM) ששולטים גם בספק של רכיב המידע וגם בתצוגת השעון שמקבלת את המידע. כדי להגדיר תוסף נדרשת ההרשאה com.google.android.wearable.permission.COMPLICATION_EXTRAS. (I4e3b2)
  • בדרך כלל, בתצוגות שעון המשתמש יכול לבחור צבעים באמצעות ListUserStyle, עם סמל לכל ListOption. מכיוון שסכימות UserStyle נשלחות באמצעות Bluetooth, חשוב לשמור על גודל קטן של הסכימה. זה יכול להיות בעייתי אם יש עשרות אפשרויות צבע בגלל כל הסמלים האלה. כדי לעזור לכם, הוספנו ColorUserStyleSetting במקומות שבהם האפשרות כוללת רשימה של צבעים במקום סמל, כך שהיא הרבה יותר קומפקטית. (Ib542e)
  • ColorUserStyleSetting ו-ColorOption דורשים API 34 כדי להשתמש בהם. (I8771d)

תיקוני באגים

  • הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן אנוטציות של שימוש בטיפוסים. מפתחי 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 מכילה את השמירות האלה.

תכונות חדשות

  • עכשיו אנחנו משתמשים בשוויון הפניה כדי להשוות בין הכי טוב לבין selectedData כי אופרטור השוויון יקר. (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 במקומו. 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 method ל-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. (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 מלקוחות ללא ממשק משתמש. (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 נכבה, סוגרים את העורך הפתוח ב-on watch. אם 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

  • לפעמים מנהל הטפטים מתנתק ממנוע אחד ומתחבר למנוע אחר. הוספנו DisconnectReason int def והרחבנו את ClientDisconnectListener עם שיטה חדשה שכוללת DisconnectReason, כדי לאפשר למאזין לצפות בהתנתקות של המנוע. (I45cce)
  • נוספו שני פרמטרים אופציונליים nameResourceId ו-screenReaderResourceId לקונסטרוקטור 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 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו תמיכה ניסיונית בפורמטים חדשים שונים של מידע. אנחנו עובדים על פיתוח הפורמטים החדשים האלה, והם עשויים להשתנות ללא הודעה מוקדמת. בשלב הזה אין תמיכה בפורמטים האלה ב-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 ניסה לטעון placeholder באופן אסינכרוני, מה שגרם לטעינה להיכשל ולגרפיקה של הקומפילציה לא להתעדכן אף פעם. לבסוף, התיקון הזה פותר באג תיאורטי, בתקווה, שבו צריך למזג כמה 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 יפורש באופן שגוי כאילו יש לו את הסוג של רכיב ה-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 של ה-wire משתמש עכשיו בחבילה פנימית. אנחנו לא רוצים שמצייני מיקום יפגעו בלוחות שעונים קיימים, שאולי משתמשים ב-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 (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 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 כי הבעיה הבסיסית תוקנה במסגרת, ולכן כל ממשקי ה-API שקשורים אליו הוסרו. אין צורך לבצע פעולה מיוחדת כדי להפעיל את PendingIntents, גם אם לחצתם לאחרונה על לחצן הבית. (I1f2e8)
  • הוספנו את RendererParameters.isForScreenShot, שיהיה True אם הרינדור הוא לצילום מסך. חלק מהעיצובים של השעון עם אנימציות צריכים לדעת את זה כדי לבצע התאמות שיבטיחו את התוצאות הטובות ביותר. (I96d99)
  • הוספנו את WatchFaceExceptionReason אל WatchFaceException כדי לספק הקשר לגבי מה שהשתבש. (I01d15)
  • הסמל ComplicationDataSourceService.onImmediateComplicationRequest הוסר, ובמקומו נוסף הסמל ComplicationRequest.immediateResponseRequired כדי לציין שהספק צריך להגיב במהירות (התגובה צריכה להתקבל תוך פחות מ-100 אלפיות השנייה). הערה: הפונקציונליות הזו מוגנת על ידי הרשאה מיוחדת com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE. (Ie6b23)
  • עודכן מצב ה-nullability בליבת ה-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. האפשרות הזו מאפשרת לתאר היררכיה של סגנונות לשימוש בממשקי משתמש של כלי העריכה. הסגנון הבסיסי של המשתמש לא משתנה והוא עדיין 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 ולמחלקות האפשרויות שלהם, במקומות המתאימים. (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

  • 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 במטמון בזיכרון, ולפעמים ספריות של פני השעון מבצעות סריאליזציה של 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, שבעזרתה אפשר להחזיר את הנתונים האלה. יש עטיפה חדשה של Kotlin‏ SuspendingTimelineComplicationDataSourceService להשעיה של שירותי מקור נתונים. (Idecdc)
  • הוספת את PendingIntentTapListener ואת WatchFaceControlClient.getPendingIntentForTouchEvent. הפתרון הזה יכול לעזור לתצוגות שעון שצריכות להפעיל כוונות בתגובה להקשות, כדי לעקוף בעיה שבה המסגרת חוסמת הפעלה של פעילויות חדשות למשך 5 שניות אחרי לחיצה על לחצן הבית. (I98074)
  • הוספנו מטמון ComplicationData לכל תצוגת שעון. המטרה היא לאפשר לתצוגת השעון להציג את ערכי הנתונים האחרונים של רכיב המידע הידועים בזמן הטעינה, עד שהמערכת תעדכן אותם. יש method חדש ב-API‏ WatchFaceControlClient.hasComplicationCache שמיועד ליצרני ציוד מקורי (OEM). יכול להיות שהפעולה הזו תשפיע על האסטרטגיה של המערכת לשליחת נתונים מורכבים לתצוגת השעון. בנוסף, לרכיב ComplicationData יש מאפיין isCached, ומומלץ להציג רכיבי מידע ששמורים במטמון בצורה שונה, כי אי אפשר לשמור במטמון את tapAction, והוא יהיה null ברכיב מידע ששמור במטמון. (I404b0)
  • מזהה המופע של תצוגת השעון זמין עכשיו דרך WatchState.watchFaceInstanceId. ברוב תצוגות השעון לא צריך להשתמש בזה, אבל אם יש מצב לכל תצוגת שעון שלא נשמר בסכימה, זה המפתח שמשמש לזיהוי המופע של תצוגת השעון. כדי לתמוך בכך, עכשיו אפשר לספק מזהה כשמתקשרים אל WatchFaceControlClient.createHeadlessWatchFaceClient. (I1ff98)
  • DefaultComplicationDataSourcePolicy Extended עם אפשרות להגדיר את 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, אחרת יש סיכון לעיכוב בהפעלת ה-UI thread. ‏(37650ac)

  • מוודאים שהפונקציה Renderer.onDestroy נקראת. בתרחיש שבו הרכיב Renderer נוצר אבל 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.wear Watchface ו-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 יאסוף את האשפה.(fce4af8, b/199485839)