תצוגת השעון של Wear

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

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

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

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

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

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

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

Groovy

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

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

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

    // Can use to render complications.
    // This library is optional and watchfaces may have custom implementation for rendering
    // complications.
    implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1"
}

Kotlin

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

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

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

    // Can use to render complications.
    // This library is optional and watchfaces may have custom implementation for rendering
    // complications.
    implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1"
}

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

משוב

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

דיווח על בעיה חדשה

מידע נוסף זמין במסמכי התיעוד של Issue Tracker.

גרסה 1.3

גרסה 1.3.0-alpha04

18 בספטמבר 2024

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

תכונות חדשות

  • הוספנו תמיכה בחיבור איטי (lazy loading) של סמלים ב-UserStyleSettings וב-UserStyleOptions, שמשפרת את הביצועים של טעינת חזיתות השעון. (Iaf43d)
  • נוספה אפשרות לצילום צילום מסך מעודכן בכל פעם שמתבצע שינוי בהגדרות המערכת (למשל, אם השפה השתנתה) באמצעות Watchface.setUpdateScreenshotOnConfigurationChange החדש. כברירת מחדל, ההגדרה הזו מושבתת. (I765a1)

תיקוני באגים

  • הסרנו את התיאור הידני של הגישה לממשקי API חדשים של פלטפורמות, כי הגישה הזו מתבצעת באופן אוטומטי באמצעות בניית מודלים של ממשקי API כשמשתמשים ב-R8 עם AGP מגרסה 7.3 ואילך (למשל, R8 מגרסה 3.3) ובכל גרסאות ה-build כשמשתמשים ב-AGP מגרסה 8.1 ואילך (למשל, D8 מגרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלצים לעדכן ל-D8 בגרסה 8.1 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (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 של מופע השעון הבסיסי במהלך העריכה. אם השינויים ב-Complications מתרחשים לעיתים רחוקות, האפשרות הזו יעילה יותר מהעברת ערכי-ברירת מחדל דרך EditorSession#renderWatchFaceToBitmap. (I19384)

תיקוני באגים

  • בעבר, selectComplicationDataForInstant קרא ל-toApiComplicationData לכל לוחות זמנים, כלומר בדיקת השוויון של ההפניה === תמיד תיכשל. המשמעות היא שהתכונות האלה נטענו מחדש בכל פריים, מה שהוביל לירידה ברמת הטעינה של הסוללה. (717406)

גרסה 1.3.0-alpha02

3 באפריל 2024

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

תכונות חדשות

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

שינויים ב-API

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

גרסה 1.3.0-alpha01

7 בפברואר 2024

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

תכונות חדשות

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

שינויים ב-API

  • StatefulWatchFaceService תומך עכשיו בשינוי של getComplicationSlotInflationFactory, שאליו מועבר הפריט הנוסף שהוגדר על ידי המשתמש על ידי createExtra(). (I82d9f)
  • חלק מהמסכים צריכים לשתף נתונים משניים שנוצרו במהלך createUserStyleSchema עם שיטות האיפוס האחרות. מכיוון שלא הייתה חלופה טובה יותר, בדרך כלל המפתחים יצרו WatchFaceServices עם מצב (stateful). זוהי פעולה מסוכנת כי אפשר ליצור כמה מופעים בו-זמנית, דבר שעלול להוביל לבאגים. כדי לפתור את הבעיה הזו, הוספנו את StatefulWatchFaceService ו-StatefulWatchFaceRuntimeService, שבהם סוג שהוגדר על ידי משתמש נוצר על ידי createExtra() ומוענק לשיטות היצירה השונות כפרמטר. (If8a99)
  • הוספנו את getUserStyleFlavors ל-InteractiveWatchFaceClient, והוא מעניין בעיקר יצרני ציוד מקורי (OEM). (I0f5d8)
  • ל-GlesRenderer2 יש עכשיו עומס יתר של קונסטרוקטור שמאפשר לציין רשימה של מאפיינים לניסיון בתורו עם 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, שמכיל מערך של רכיבים (זוגות של משקל וצבע) יחד עם טקסט/כותרת/תמונה אופציונליים. הנתונים האלה עשויים להופיע כתרשים עוגה, שבו הצבעים צריכים להיות משמעותיים בהתאם להקשר, כי בדרך כלל אין מקום ב-Complication להצגת תוויות.
  • הוספנו תמיכה באפשרויות האופציונליות ColorRanges עד RangedValueComplicationData. בדרך כלל, התכונות הנוספות יוצגו בצבעים שבחרתם בשעון, אבל לפעמים ComplicationDataSource הוא המקום הטוב ביותר להגדרת הצבעים, למשל כשיש להם משמעות סמנטית מסוימת. לדוגמה, אדום לכחול לטמפרטורה.
  • כמעט כל סוגי ComplicationData תומכים עכשיו ב-SmallImages.
  • הוספנו את ComplicationDisplayPolicy, שבו DO_NOT_SHOW_WHEN_DEVICE_LOCKED מורה לתצוגת שעון תואמת לא להציג את התכונה הנוספת כשהמכשיר נעול.
  • החל מ-Android T, יצרני ציוד מקורי יוכלו לקבוע אם בקשה להוספת רכיב מותאם אישית מגיעה מסך שעון שמופיע ברשימה שמוגדרת על ידי המטא-נתונים של android.support.wearable.complications.SAFE_WATCH_FACES במניפסט של הספק שלהם באמצעות ComplicationRequest#isForSafeWatchFace. כדי לקבל ערכים אחרים מלבד TargetWatchFaceSafety.UNKNOWN, הספק יצטרך את ההרשאה com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE.
  • התכונה 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 פתוח עכשיו. לתשומת ליבכם: התמיכה ב-Complication של מזג האוויר שמוגדרת כברירת מחדל במערכת הוסרה.

שינויים ב-API

  • מבטלים את האפשרות 'חשיפת מקור נתונים חדש לבעיות מזג אוויר'. (I6f335)

גרסה 1.2.0-beta01

23 באוגוסט 2023

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

תכונות חדשות

  • החל מגרסה Android T, מערכת WearOS תתמוך עכשיו ב-complication של מערכת מזג האוויר שמוגדרת כברירת מחדל.

שינויים ב-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 נמוך מאוד והוא לא נתמך היטב על ידי יצרני ציוד מקורי, לכן אנחנו מפחיתים את ערך הנכס הזה במטרה להסיר אותו במועד מאוחר יותר. (I7344a)

גרסה 1.2.0-alpha09

21 ביוני 2023

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

תכונות חדשות

  • עכשיו אפשר להשתמש ב-DynamicFloat ב-RangedValueComplicationData.Builder, ויש 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)
  • חריגות נוספות שהושלחו מ-valueOf של enum (I818fe)
  • הסרנו את renderWatchFaceToSurface לטובת createRemoteWatchFaceView, שנבנה על גבי SurfaceControlViewHost ומאפשר למבצע הקריאה להטמיע תצוגה מתצוגת השעון, שמרינדרת כשהלקוח קורא ל-RemoteWatchFaceViewHost#renderWatchFace. (Ib311d)
  • הוספנו את renderWatchFaceToSurface אל InteractiveWatchFaceClient, HeadlessWatchFaceClient ו-EditorSession. בדרך כלל, הביצועים יהיו טובים יותר מאשר עיבוד לרשת ביט (bitmap). (Ieacad)
  • השם של ObservableStateStore השתנה ל-StateStore. (Ieb0e2)
  • הוספנו את DynamicTypeEvaluator.Builder במקום ארגומנטים של קונסטרוקטור כדי לאפשר יותר ארגומנטים אופציונליים, כולל ObservableStateStore שהברירת המחדל שלו עכשיו היא מאגר ריק. (I6f832)
  • הסדר של הפרמטרים ב-DynamicTypeEvaluator עובר שינוי. (Ic1ba4)
  • הוספת Executor לשיטות DynamicTypeEvaluator.bind. (I346ab)
  • הוספנו את השיטה startEvaluation ל-BoundDynamicType כדי להפעיל את ההערכה אחרי שמקשרים את הסוג הדינמי. (I19908)
  • ספקי רכיבי התוספים עם ההרשאה com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE יכולים לרשום מטא-נתונים של androidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPES שמבטלים את android.support.wearable.complications.SUPPORTED_TYPES עבור חזיתות שעון בטוחות. (Id1c73)
  • שינינו את השם של CustomValueUserStyleSettings2 ל-LargeCustomValueUserStyleSettings. (Ic17ac)

תיקוני באגים

  • DynamicTypeValueReceiver#onPreUpdate הוסר. (I2dc35)

גרסה 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. כדי לקבל משהו אחר מ-TargetWatchFaceSafety.UNKNOWN, לספק תצטרך את ההרשאה com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACE.

  • בנוסף, אפשר להשתמש ב-CustomValueUserStyleSetting2 מ-Android T, שיכול להכיל עד 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 מכילה את ההוספות האלה.

תכונות חדשות

  • אנחנו עובדים על הוספת תמיכה לקישורים של פלטפורמות של סמלי Complications. התכונה הזו עדיין לא מוכנה לשימוש, אבל כדאי להמשיך להתעדכן.
  • הוספנו תמיכה ב-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 בקוד השווה ובקוד ה-hash. מוודאים שהשדה 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 נכבה, סוגרים את כל הקבצים הפתוחים בעורך בשעון. אם SysUI מושבת והעורך של תצוגת השעון לא נסגר, יכול להיות שתצוגת השעון תישאר במצב לא עקבי כי המערכת מסתמכת על SysUI כדי לשמור שינויים בסגנון של המשתמש.(ba762a
  • תיקון של דליפת זיכרון ב-ComplicationDataSourceInfoRetriever, שבו המשך של קורוטין ב-Kotlin שימש כ-GC root ושמר את הפעילות של העורך.(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

  • לפעמים מנהל הטפטים יכול להתנתק ממנוע אחד וליצור מנוע אחר. הוספנו הגדרת int של DisconnectReason והרחבנו את ClientDisconnectListener בשיטה חדשה שכוללת DisconnectReason, שמאפשרת למאזין לצפות בניתוק של המנוע. (I45cce)
  • נוספו שני פרמטרים אופציונליים, nameResourceId ו-screenReaderResourceId, ל-constructor של ComplicationSlotOverlay (I157e8)
  • הוספנו מעטפת של Guava לטעינה יתר החדשה של 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)
  • החלפת סוג OnWatchfaceColorsListener של שיטת SAM בודדת בהתאמה אישית בסוג 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, צריך לציין לפחות אחד מהפרמטרים הבאים: monochromeImage,‏ text או title. (I9590c)
  • הסרנו את boundsWithMargins מ-ComplicationSlotState כי אין תרחיש לדוגמה לשימוש בו בתוכנת מערכת. (I42e26)
  • הוספנו תמיכה ניסיונית ב-WeightedElementsComplicationData, שמכיל מערך של רכיבים (זוגות של משקל וצבע) יחד עם טקסט/כותרת/תמונה אופציונליים. הנתונים האלה עשויים להופיע כתרשים עוגה, שבו הצבעים צריכים להיות משמעותיים בהתאם להקשר, כי בדרך כלל אין מקום ב-Complication להצגת תוויות. (I87eea)
  • בעזרת הפרמטר הניסיוני ColorRamps, שאפשר להשתמש בו ב-RangedValueComplicationData וב-GoalProgressComplicationData, אפשר עכשיו לציין רצף של עד שבעה צבעים ודגל שמציין אם צריך לבצע טרנספורמציה חלקה בין הצבעים או ליצור שלבים של צבעים מוצקים בגודל שווה. (I9f5bf)
  • השדה RangedValueComplicationData.drawSegmented השתנה ל-valueType, שהוא מספר שלם עם ValueType IntDef תואם שמספק משמעות סמנטית לערך הטווח, ויכול לשמש את ה-renderer של התוסף כדי להשפיע על העיצוב. (I0616b)
  • הוספנו תמיכה ניסיונית באפשרויות הנוספות ColorRanges עד RangedValueComplicationData. בדרך כלל, התכונות הנוספות מוצגות בצבעים שבחרתם בשעון, אבל לפעמים ComplicationDataSource הוא המקום הטוב ביותר להגדרת הצבעים, למשל כשיש להם משמעות סמנטית מסוימת. לדוגמה, אדום לכחול לטמפרטורה. (I5153a)
  • הוספנו ל-RangedValueComplicationData רמז drawSegmented ניסיוני. המשמעות היא שהמעבדים צריכים לצייר את האינדיקטור של הערך בטווח באמצעות קטעים, כאשר מקטע אחד = יחידה אחת. (I7d7c1)

תיקוני באגים

  • הוספנו את היכולת להגדיר את ComplicationSlotBounds ביחס למערכת קואורדינטות מסך מוגדרת מראש. (I0985d)

גרסה 1.1

גרסה 1.1.1

10 באוגוסט 2022

androidx.wear.watchface:watchface-*:1.1.1 משוחרר. גרסה 1.1.1 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

  • זוהי גרסה עם תיקוני באגים, ומומלץ מאוד למשתמשים בגרסה 1.1.0 לשדרג.

תיקוני באגים

  • האתחול של תצוגת השעון הוא אסינכרוני, ואם מתקבלת תכונה מורכבת לפני שתצוגת השעון מוכנה, היא מועברת לרשימה pendingInitialComplications ותיושם מאוחר יותר. לצערנו, pendingInitialComplications הוחל מוקדם מדי, כך שבמהלך האתחול של תצוגת השעון עדיין הוספנו רכיבי Complications ל-pendingInitialComplications והתעלמנו מהם. הבעיה תוקנה. בנוסף, התיקון הזה מתקן באג שבו ComplicationRenderer ניסה בטעות לטעון placeholders באופן אסינכרוני, והניסיון נכשל וכתוצאה מכך הגרפיקה של הידור הקוד לא התעדכנה אף פעם. לבסוף, התיקון הזה מתקן באג תיאורטי, אם אפשר לקרוא לו כך, שבו צריך למזג כמה pendingInitialComplications. (0d03ba3)

  • תיקון נעילה מרובת משתמשים פוטנציאלית ב-InteractiveInstanceManager שבה getExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstance החזיק את המנעול יותר מהזמן הנדרש. בדרך כלל, הפעולה engine.setUserStyle אמורה להתבצע במהירות, אבל אם מסיבה כלשהי היא לא מתבצעת במהירות, יכול להיות שנגיע למצב של נעילה גורפת (deadlock) או ל-ANR. התיקון הזה מסיר מהנעילה עבודה מיותרת, ומבטל את האפשרות לנעילה מרובת משתמשים (deadlock). (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 לשימוש בכלי עריכה.
  • תמיכה ניסיונית ב'טעמים' של עיצוב, מבחר נבחר של סגנונות שיהיה גלוי בעורך הנלווה.
  • כשעורכים שתי מכונות של חזית השעון שנטענות, עכשיו אפשר למכונות של חזית השעון לשתף משאבים, וכך לחסוך בזיכרון
  • כשבוחרים רכיב מורכב בתצוגת השעון, הספק הנוכחי נבחר מראש.

רכיבי Complications משופרים:

  • עכשיו אפשר לציין את 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, סיווג ניסיוני שמתאר את הגיאומטריה של חריץ ל-Complication בקצה המסך. הוא נוסף ל-ComplicationSlot וקישר ל-ComplicationSlotState ול-WatchFaceMetadataClient. (I61a40)
  • הוספנו את היכולת לקבל בירושה הגדרות ב-UserStyleSetting XML. כך תוכלו לצמצם את כמות המידע המוצג ולשתף הגדרה בין חזיתות השעון. (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)
  • תיקון של בדיקת גרסת ה-XML של WatchFaceService. היא נטענה מהחבילה הלא נכונה.(dfa06f3)
  • פורמט ה-wire של 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‏ (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, שמועברים לשיטות הרינדור. הוספנו את ListenableCanvasRenderer2 וגם את ListenableGlesRenderer2 ל-java interop. (I31ffa)
  • נוספה ל-@WatchFaceFlavorsExperimental היכולת להגדיר טעמים – רשימה מוגדרת מראש של תצוגות שעון בסגנון מסוים (I04dd0)
  • Renderer.sharedAssets הוא עכשיו StateFlow והסרנו את Renderer.SharedAssetsFactory שלא בשימוש (I12ac5)
  • UserStyleSchema.userStyleSettings כבר לא הוצא משימוש (Iba7e3)
  • הוספנו את HeadlessWatchFaceClient.getUserStyleSchemaDigestHash שמאפשר ל-HeadlessWatchFaceClient להימנע מהעלות הנמוכה יחסית של העברת הסכימה דרך AIDL לפני חישוב גיבוב הדיגסט. (I33597)
  • הוספנו את isUserStyleSchemaStatic ל-WatchFaceMetadataClient, והוא נכון אם ורק אם אפשר לסמוך על כך שהערך של 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. אם בוחרים באפשרות הזו, מומלץ להציג את הסמנים האלה בתיבות או בקשתות אפורות. (I6285d)
  • הוספנו את ComplicationData.getNextChangeInstant, שמציינת את הרגע הבא אחרי הרגע של הפניה שבו כל שדה של התוסף עשוי להשתנות. המערכת משתמשת בנתון הזה באופן פנימי כדי לתזמן מסגרות לעדכונים של רכיבים מותאמים אישית. לדוגמה, אם תצוגת השעון מתעדכנת בדרך כלל פעם בדקה, הגדרת רכיב השעון 'כרונימטר' תגרום לעדכון שלה פעם בשנייה. (I7ceb2)
  • עכשיו אפשר להשתמש ב-EditorSession.watchFaceId בכל רמות ה-API. בנוסף, הערך שלו יהיה עכשיו תמיד עקבי עם הערך של WatchState.watchFaceInstanceId. (I323b9)
  • ממשק ה-API של getPendingIntentForTouchEvent כבר לא נדרש כי הבעיה הבסיסית תוקנה במסגרת, ולכן כל ממשקי ה-API הקשורים הוסרו. אין צורך לבצע פעולה מיוחדת בשעון כדי שהאירוע PendingIntents יופעל, גם אם לחצתם לאחרונה על לחצן הבית. (I1f2e8)
  • הוספנו את RendererParameters.isForScreenShot, שהערך שלו יהיה True אם ה-render הוא לצילום מסך. חלק מהמסכים עם אנימציות צריכים לדעת את זה כדי לבצע התאמות ולהבטיח את התוצאות הטובות ביותר. (I96d99)
  • הוספנו את WatchFaceExceptionReason אל WatchFaceException כדי לספק הקשר לגבי מה שקרה. (I01d15)
  • ה-ComplicationDataSourceService.onImmediateComplicationRequest הוסר, ובמקומו נוסף ה-ComplicationRequest.immediateResponseRequired כדי לסמן שהספק צריך להגיב במהירות (רצוי תוך פחות מ-100 אלפיות השנייה). שימו לב שהפונקציונליות הזו מוגנת באמצעות ההרשאה com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATE בעלת ההרשאות. (Ie6b23)
  • עדכנו את האפשרות של ערך null ב-core וב-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, פרמטר חדש ואופציונלי ל-constructor של 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 ל-constructor של 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 מכילה את ההוספות האלה.

תכונות חדשות

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

שינויים ב-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 שניות אחרי שלוחצים על לחצן הבית) במקום זאת במסגרת.

שינויים ב-API

  • השדה ComplicationData.isCached השתנה ל-tapActionLostDueToSerialization, והוא שימושי יותר כשצריך לקבוע אם צריך להציג את תא התוסף בצורה שונה כדי לסמן שלא ניתן להקיש עליו. (I6de2f)
  • ComplicationDataTimeline נוסף לקבוצה wear-complication-data-source. אפשר להשתמש באפשרות הזו כדי לספק רצף של ComplicationData עם חלון זמן להצגה, שיישלח ללוח השעון. הנתונים האלה יכולים להישמר במטמון ולהתעדכן באופן אוטומטי. לדוגמה, תחזית מזג האוויר של היום בשעות שונות או כמה אירועים קרובים ביומן. נוספה ל-ComplicationRequestListener שיטה חדשה, onComplicationDataTimeline, שבאמצעותה אפשר להחזיר את הנתונים האלה. יש עטיפה חדשה של Kotlin‏ SuspendingTimelineComplicationDataSourceService להשעיית שירותי מקורות הנתונים. (Idecdc)
  • הוספת את PendingIntentTapListener ואת WatchFaceControlClient.getPendingIntentForTouchEvent. כך אפשר לעקוף בעיה שבה המסגרת חוסמת את הפעלת הפעילויות החדשות למשך 5 שניות אחרי לחיצה על לחצן הבית, בתצוגות שעון שצריכות להפעיל כוונות בתגובה להקשות. (I98074)
  • הוספנו מטמון ComplicationData לכל תצוגת שעון. המטרה של הפעולה הזו היא לאפשר ללוח השעון להציג את ערכי הנתונים האחרונים של התוספים בזמן הטעינה, עד שהמערכת תהיה מסוגלת לעדכן אותם. יש שיטה חדשה של API‏ WatchFaceControlClient.hasComplicationCache המיועדת ליצרני ציוד מקורי (OEM). הדבר עשוי להשפיע על האסטרטגיה של המערכת לשליחת רכיבי 'תצוגת מידע מורחבת' לתצוגת השעון. בנוסף, ל-ComplicationData יש מאפיין isCached, ומומלץ להציג תכונות מורכבות שנשמרו במטמון בצורה שונה כי לא ניתן לשמור את tapAction במטמון והוא יהיה null בתכונה מורכבת שנשמרה במטמון. (I404b0)
  • מזהה המכונה של תצוגת השעון זמין עכשיו דרך WatchState.watchFaceInstanceId. ברוב חזיתות השעון לא יהיה צורך להשתמש במפתח הזה, אבל אם יש מצב לכל חזית שעון שלא נשמר בסכימה, זה המפתח שצריך להשתמש בו כדי לזהות את מופע חזית השעון. כדי לתמוך בכך, עכשיו אפשר לספק מזהה כשמתקשרים אל WatchFaceControlClient.createHeadlessWatchFaceClient. (I1ff98)
  • DefaultComplicationDataSourcePolicy מורחב עם היכולת להגדיר את ComplicationTypes שמוגדרת כברירת מחדל לספק הראשי, לספק המשני ולספק המערכת החלופי. האפשרות ComplicationSlot.defaultDataSourceType הוצאה משימוש. (If0ce3)
  • עכשיו אפשר לשנות את ComplicationSlot.configExtras ולעדכן אותו לפני שמפעילים את EditorSession.openComplicationDataSourceChooser(). (I6f852)
  • הוספת את WatchFace.setComplicationDeniedDialogIntent ואת setComplicationRationaleDialogIntent. הכוונות האלה מופעלות כדי להציג תיבת דו-שיח עם הסבר לפני שמבקשים הרשאות לשימוש בתכונות מותאמות אישית, ותיבת דו-שיח נוספת שמסבירה שצריך הרשאה לשימוש בתכונות מותאמות אישית כשמנסים לערוך תכונה כזו אם ההרשאות נדחו (בורר הספקים לא ייפתח, ולכן נדרשת תיבת הדו-שיח). (I3a29c)
  • מעכשיו אפשר להגדיר את UserStyleSchema ואת ComplicationSlots ב-XML. כך קל יותר ליצור את חזית השעון, וגם שאילתות WatchFaceMetadataClient יהיו מהירות יותר כי לא צריך לקשר אותן לשירות כדי לקבל את המטא-נתונים. (I85bfa)
  • הוספנו את InteractiveWatchFaceClient.supportsPendingIntentForTouchEvent כדי שהלקוח יוכל לקבוע אם תצוגת השעון תומכת ב-getPendingIntentForTouchEvent. (I0b917)
  • האפשרויות WatchFaceMetadataClient ו-ListenableWatchFaceMetadataClient כבר לא ניסיוניות. אפשר להשתמש בהם כדי לקבל ביעילות מטא-נתונים של תצוגת השעון, במידת האפשר בלי לפתוח מסמך קישור לתצוגת השעון. (Ibb827)
  • נוספה תמיכה בספקים של רכיבי תכונה זמינים (complications) מסונכרנים, שבהם רכיב התכונה הזמין מתעדכן בתדירות גבוהה יותר מהרגיל, עד פעם בשנייה כשמסך השעון גלוי ולא במצב אווירה. כדי להשתמש באפשרות הזו, הספק צריך לכלול מטא תג 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).

תיקוני באגים

  • תיקון באג שבו לא מטפלים בצורה נכונה ב-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. היא כוללת כמה תכונות חדשות שלא היו בספריית התמיכה הקודמת למכשירים לבישים.

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

תיקוני באגים

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

גרסה 1.0.0-rc01

3 בנובמבר 2021

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

תיקוני באגים

  • תיקון של dump()‎ (שנקרא על ידי adb shell dumpsys)‎ שנפגע מהעברות של תהליכים. (087cf9e)

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

  • מוודאים שמתבצעת קריאה ל-Renderer.onDestroy. בתרחיש שבו ה-renderer נוצר אבל ההפעלה הראשונית של WF לא הושלמה והתרחיש שבו ה-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)
  • הפונקציות getComplicationsPreviewData ו-getComplicationsDataSourceInfo של EditorSession כבר לא הן פונקציות השהיה, אלא מאפייני 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 כדי לאפשר ללקוח לדעת אם עורך של תצוגת שעון תומך בעריכה ללא גוף (headless). שימו לב: יהיו כמה תוצאות שליליות שגויות כי התמיכה נוספה ב-asop/1756809, אבל היא תחזיר את הערך הנכון לכל תצוגות השעון העתידיות. (ca55590)
  • ל-Renderer יש עכשיו שיטת dump()‎ שאפשר לשנות כדי להוסיף נתונים מותאמים אישית למידע שנוצר על ידי שירות הפעילות של מעטפת ABD dumpsys‏ WatchFaceService. (95235f9)
  • הפונקציה InteractiveWatchFaceClient.addWatchFaceReadyListener מציינת עכשיו את המבצע קודם. (563ac2f)
  • ה-StateFlowCompatHelper הוסר. במקום זאת צריך להשתמש ב-asLiveData‏ (androidx.lifecycle.asLiveData). (bd35d3)
  • לא ניתן יותר לשנות את CurrentUserStyleRepository.userStyle. (I44889)
  • השם של WatchFaceReadyListener השתנה ל-OnWatchFaceReadyListener. (Ic12a9)

תיקוני באגים

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