תצוגת השעון של Wear
הערה: החל מ-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
, שבאמצעותה אפשר להחזיר את הנתונים האלה. יש עטיפה חדשה של KotlinSuspendingTimelineComplicationDataSourceService
להשעיית שירותי מקורות הנתונים. (Idecdc)- הוספת את
PendingIntentTapListener
ואתWatchFaceControlClient.getPendingIntentForTouchEvent
. כך אפשר לעקוף בעיה שבה המסגרת חוסמת את הפעלת הפעילויות החדשות למשך 5 שניות אחרי לחיצה על לחצן הבית, בתצוגות שעון שצריכות להפעיל כוונות בתגובה להקשות. (I98074) - הוספנו מטמון
ComplicationData
לכל תצוגת שעון. המטרה של הפעולה הזו היא לאפשר ללוח השעון להציג את ערכי הנתונים האחרונים של התוספים בזמן הטעינה, עד שהמערכת תהיה מסוגלת לעדכן אותם. יש שיטה חדשה של APIWatchFaceControlClient.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)