WindowManager

ספריית Jetpack WindowManager מאפשרת למפתחי אפליקציות לתמוך בגורמי צורה חדשים של מכשירים ובסביבות של ריבוי חלונות. הגרסה הראשונית מיועדת למכשירים מתקפלים, אבל בגרסאות עתידיות נרחיב את התמיכה לסוגים נוספים של תצוגות ולתכונות של חלונות.
העדכון האחרון גרסה יציבה גרסה מועמדת להפצה גרסת בטא גרסת אלפא
‫17 ביוני 2026 1.5.1 - - ‎1.6.0-alpha05

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

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

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

מגניב

dependencies {
    implementation "androidx.window:window:1.5.1"

    // For Java-friendly APIs to register and unregister callbacks
    implementation "androidx.window:window-java:1.5.1"

    // For RxJava2 integration
    implementation "androidx.window:window-rxjava2:1.5.1"

    // For RxJava3 integration
    implementation "androidx.window:window-rxjava3:1.5.1"

    // For testing
    implementation "androidx.window:window-testing:1.5.1"
}

Kotlin

dependencies {
    implementation("androidx.window:window:1.5.1")

    // For Java-friendly APIs to register and unregister callbacks
    implementation("androidx.window:window-java:1.5.1")

    // For RxJava2 integration
    implementation("androidx.window:window-rxjava2:1.5.1")

    // For RxJava3 integration
    implementation("androidx.window:window-rxjava3:1.5.1")

    // For testing
    implementation("androidx.window:window-testing:1.5.1")
}

משוב

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

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

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

גרסה 1.6

גרסה ‎1.6.0-alpha05

‫17 ביוני 2026

androidx.window:window-*:1.6.0-alpha05 מופץ. גרסה ‎1.6.0-alpha05 מכילה את השמירות האלה.

שינויים ב-API

  • נוסף API חדש של EngagementMode.PRECISE_POINTER ב-WindowEngagementInfo (I7e4d7, b/474545085)
  • הוצא משימוש WindowLayoutInfo.engagementModes. אפשר להשתמש בשיטה החדשה WindowInfoTracker.windowEngagementInfo() כדי לעקוב אחרי שינויים במצב המעורבות. ‫(I500d1, ‏ b/491562425)

גרסה ‎1.6.0-alpha03

‫22 באפריל 2026

androidx.window:window-*:1.6.0-alpha03 מופץ. גרסה ‎1.6.0-alpha03 מכילה את השמירות האלה.

שינויים ב-API

  • הוספת ממשקי API לשליטה במצב המעורבות. ‫(I98a09, ‏ b/489793703)
  • שינינו את השם של transferActivityToWindowArea ל-transferToWindowArea כדי להבהיר את ההתנהגות כשמפעילים את התכונה. בנוסף, הפעולה הזו מסירה את ההתנהגות שמבוססת על סשן עבור השיטה הזו, כי היא פעולה שמתבצעת אחרי שהתהליך שמבקש אותה מסתיים. (Ie7d6f, ‏ b/271644150, ‏ b/273807246, ‏ b/272064992, ‏ b/473870239)
  • הוספת שיטה בטוחה לקבלת WindowMetrics (I2adf8, b/449386176)
  • עדכון שיטות בתוספים של WM למצב מעורבות לשם הבהרה. ‫(I219a4, ‏ b/454438323)
  • מוסיפים שיטות עזר כדי ליצור את WindowSizeClassSets בפורמט רשת. ‫(I4d623, ‏ b/444174274)
  • הוספת API כדי לקבל מצב מעורבות. (I9fef2, b/423990404)
  • הוספת מאזינים מבוססי-קריאה חוזרת ישירות ל-WindowLayoutInfo והוצאה משימוש של WindowInfoTrackerCallbackAdapter. (I1ff17, b/423990404)
  • הוצאה משימוש של בנאי WindowLayoutInfo בתוספים. (I6ab65, ‏ b/423990404)
  • הוספת תמיכה בתוספים למצב דיווח על אינטראקציה. (I66211, ‏ b/423990404)

תיקוני באגים

  • עדכון של Compose compileSdk ל-API 37. כלומר, כשמשתמשים ב-Compose, נדרשת גרסת AGP מינימלית של 9.2.0. (Id45cd, b/413674743)

גרסה ‎1.6.0-alpha01

‫19 בנובמבר 2025

androidx.window:window-*:1.6.0-alpha01 מופץ. גרסה ‎1.6.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • מוסיפים שיטות עזר כדי ליצור את WindowSizeClassSets בפורמט רשת.

שינויים ב-API

  • מוסיפים שיטות עזר כדי ליצור את WindowSizeClassSets בפורמט רשת. ‫(I4d623, ‏ b/444174274)

גירסה 1.5

גירסה 1.5.1

‫19 בנובמבר 2025

androidx.window:window-*:1.5.1 מופץ. גרסה 1.5.1 מכילה את השמירות האלה.

תיקוני באגים

  • תוקנה בעיה ClassCastException שמתרחשת במכשירים מסוימים (4d58979)

גרסה 1.5.0

‫24 בספטמבר 2025

androidx.window:window-*:1.5.0 מופץ. גרסה 1.5.0 מכילה את השמירות האלה.

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

  • מוסיפים נקודות עצירה (breakpoints) של WindowSizeClass לגדלים Large ו-XLarge. (I40d85)
  • מרחיבים את החישוב WindowMetrics להקשר של האפליקציה. (I8eeeb, ‏ b/360934048)
  • צריך לספק Getter כדי לאפשר גישה ישירה אל WindowLayoutInfo (Ie9513)
  • הוספת API לשמירה אוטומטית של מצב ההטמעה ולשחזור אוטומטי של מצב ההטמעה כשמפעילים מחדש את תהליך האפליקציה. (Ie0295)
  • הסרה של API ניסיוני WindowInsets. (I68a71)

תיקוני באגים

  • תוקנה בעיה שגרמה לכך ש-EmbeddingRule החזיר ערכים שונים של hashCode במקרים מסוימים. (I748cc)
  • תוקנה בעיה שבה שגיאות בהטמעה של המכשיר עלולות לגרום לNullPointerException.
  • תיקנו את הבעיה שגרמה לכך שבדיקות הבטיחות של ActivityEmbedding נכשלו בגלל ש-proguard הסיר מחלקות שלא נמצאות בשימוש.

External Contribution

  • הוספת כל פלטפורמות KMP אל window-core (If3d7c)

גרסה ‎1.5.0-rc01

‫27 באוגוסט 2025

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

תיקוני באגים

  • תוקנה בעיה שבה שגיאות בהטמעה של המכשיר עלולות לגרום לNullPointerException.
  • תיקנו את הבעיה שגרמה לכך שבדיקות הבטיחות של ActivityEmbedding נכשלו בגלל ש-proguard הסיר מחלקות שלא נמצאות בשימוש.

גרסה ‎1.5.0-beta02

‫13 באוגוסט 2025

androidx.window:window-*:1.5.0-beta02 מופץ. גרסה ‎1.5.0-beta02 מכילה את השמירות האלה.

תכונות חדשות

  • תיקוני באגים קלים.

External Contribution

  • הוספת כל פלטפורמות KMP אל window-core (If3d7c)

גרסה ‎1.5.0-beta01

‫2 ביולי 2025

androidx.window:window-*:1.5.0-beta01 מופץ. גרסה ‎1.5.0-beta01 מכילה את השמירות האלה.

גרסה ‎1.5.0-alpha02

‫7 במאי 2025

androidx.window:window-*:1.5.0-alpha02 מופץ. גרסה ‎1.5.0-alpha02 מכילה את השמירות האלה.

שינויים ב-API

  • מוסיפים נקודות עצירה (breakpoints) של WindowSizeClass לגדלים Large ו-XLarge. (I40d85)
  • מרחיבים את החישוב WindowMetrics להקשר של האפליקציה. (I8eeeb, ‏ b/360934048)
  • צריך לספק Getter כדי לאפשר גישה ישירה אל WindowLayoutInfo (Ie9513)
  • הוספת API לשמירה אוטומטית של מצב ההטמעה ולשחזור אוטומטי של מצב ההטמעה כשמפעילים מחדש את תהליך האפליקציה. (Ie0295)
  • הסרה של API ניסיוני WindowInsets. (I68a71)
  • הסתרת כמה יצרנים (I87b8d)

תיקוני באגים

  • תוקנה בעיה שגרמה לכך ש-EmbeddingRule החזיר ערכים שונים של hashCode במקרים מסוימים. (I748cc)

גרסה ‎1.5.0-alpha01

‫12 במרץ 2025

androidx.window:window-*:1.5.0-alpha01 מופץ. גרסה ‎1.5.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • גרסה ראשונית של 1.5.0 הבאה.

גרסה 1.4

גרסה 1.4.0

‫20 במאי 2025

androidx.window:window-*:1.4.0 מופץ. גרסה 1.4.0 מכילה את השמירות האלה.

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

  • הטמעת פעילות
    • ‫API להתאמה אישית של אנימציות ההפעלה
    • קו מפריד אינטראקטיבי
    • ActivityStack הצמדה
    • עמעום של תיבת דו-שיח במסך מלא
    • התקשרות חוזרת עם פרטי חלון הפעילות המוטמע
    • ניהול ActivityStack משופר
    • הפעלת פעילות בActivityStack ספציפי
  • WindowMetricsCalculator
    • שיפור התמיכה בבדיקות
  • WindowMetrics
    • שיטות נוחות לחישוב withDp ו-heightDp
    • עדכון בדיקת הגבולות ל-isAtLeast ושימוש בגבולות התחתונים כדי לתמוך בהוספת ערכים חדשים
  • WindowSizeClass
    • הוספת דרך לחישוב מ-WindowMetrics
  • WindowInfoTracker
    • הוספת API לזיהוי התנוחות הנתמכות במכשיר

גרסה ‎1.4.0-rc02

‫23 באפריל 2025

androidx.window:window-*:1.4.0-rc02 מופץ. גרסה ‎1.4.0-rc02 מכילה את השמירות האלה.

תיקוני באגים

  • תיקון קריסה של proguard עבור ActivityEmbedding.

גרסה ‎1.4.0-rc01

‫12 במרץ 2025

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

תכונות חדשות

  • עדכונים ב-API של WindowSizeClass.
  • עדכונים בממשקי API להטמעת פעילויות.

גרסה ‎1.4.0-beta02

‫12 בפברואר 2025

androidx.window:window-*:1.4.0-beta02 מופץ. גרסה ‎1.4.0-beta02 מכילה את השמירות האלה.

תכונות חדשות

  • תיקון הערה שהייתה רק בנכס ולא בפונקציית ה-getter.

גרסה ‎1.4.0-beta01

‫15 בינואר 2025

androidx.window:window-*:1.4.0-beta01 מופץ. גרסה ‎1.4.0-beta01 מכילה את השמירות האלה.

תכונות חדשות

  • הוספת API כדי לאפשר התאמה אישית של ActivityEmbedding אנימציות.
  • הרחבנו את WindowMetricsCalculator ממשקי ה-API לבדיקה כדי לאפשר זיוף של מדדי החלון.

שינויים ב-API

  • הסתרת כמה יצרנים (I87b8d)
  • אפשר לאפליקציות להתאים אישית אנימציות ActivityEmbedding (If31a8)
  • נוספה תמיכה ביעד KMP וביעד kotlin 1.9 ‏ (Icf15d, ‏ b/364652024)watchosDeviceArm64
  • חשיפת ממשקי API של WindowMetricsCalculator. (I1cebf)

תיקוני באגים

  • הספרייה הזו משתמשת עכשיו באנוטציות של JSpecify nullness, שהן מסוג type-use. מפתחי Kotlin צריכים להשתמש בארגומנט המהדר הבא כדי לאכוף שימוש נכון: -Xjspecify-annotations=strict (זו ברירת המחדל החל מגרסה 2.1.0 של מהדר Kotlin). ‫(Ie69ac, ‏ b/326456246)

גרסה ‎1.4.0-alpha05

‫16 באוקטובר 2024

androidx.window:window-*:1.4.0-alpha05 מופץ. גרסה ‎1.4.0-alpha05 מכילה את השמירות האלה.

תכונות חדשות

  • מוסיפים פונקציות נוחות כדי לקבל את widthDp ואת heightDp מ-WindowMetrics.

שינויים ב-API

  • הוספה של widthDp ושל heightDp אל WindowMetrics. (Ide026)
  • הסרה של API ניסיוני WindowInsets. (I68a71)
  • עדכון של שמות השיטות לבדיקת גבולות ל-isAtLeast (Ib0ab7)

גרסה ‎1.4.0-alpha04

‫2 באוקטובר 2024

androidx.window:window-*:1.4.0-alpha04 מופץ. גרסה ‎1.4.0-alpha04 מכילה את השמירות האלה.

שינויים ב-API

  • הוספנו שיטה לחישוב WindowSizeClass מתוך WindowMetrics. (874dba)
  • כדי שהשיטות יהיו ברורות יותר, נשנה את השיטות WindowSizeClass ל-containsWidthDp, ל-containsHeightDp ול-containsWindowSizeDp. (fa760d)
  • המרת WindowAreaController למחלקת בסיס מופשטת. (I90893)

תיקוני באגים

  • הוספת תמיכה בגבולות יחסיים כשיוצרים בדיקה FoldingFeature. (2e6b3e)
  • תיקוני באגים כלליים כשבוחרים WindowSizeClass.

גרסה ‎1.4.0-alpha03

‫18 בספטמבר 2024

androidx.window:window-*:1.4.0-alpha03 מופץ. גרסה ‎1.4.0-alpha03 מכילה את השמירות האלה.

תכונות חדשות

  • מוסיפים שיטת עזר כדי לקבל WindowSizeClass מ-WindowMetrics. (I83f1f)
  • שינוי השם של isAtLeast לcontainsBreakpoint. (I85b47)
  • הוספת עומס יתר ל-computeWindowSizeClass באמצעות מספרים ממשיים. (I3dcb2, ‏ b/364677934, ‏ b/364677802, ‏ b/364680886)

תיקוני באגים

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

גרסה ‎1.4.0-alpha02

‫4 בספטמבר 2024

androidx.window:window-*:1.4.0-alpha02 מופץ. גרסה ‎1.4.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

הוספת תמיכה ב-WindowSizeClass בהתאמה אישית.

  • פותחים את ה-constructor של WindowSizeClass כדי שהמפתחים יוכלו להשתמש ב-constructor משלהם.
  • הוספת isAtLeast שיטות עזר כדי שמפתחים יוכלו לעבד טווח של ערכי WindowSizeClass.
  • מוסיפים פונקציית הרחבה ב-Set<WindowSizeClass> כדי לחשב את ההתאמה הכי טובה מתוך הקבוצה.
  • מוסיפים קבועים לנקודות העצירה המומלצות ל-Android.
  • מוסיפים את נקודת העצירה (breakpoint) שמתאימה לנקודות העצירה המומלצות ל-Android.

שינויים ב-API

  • עדכון שמות השיטות של הגבולות עבור WindowSizeClass. (If89a6)
  • עדכון של WindowSizeClass API כדי לתמוך בהוספה של ערכי נקודות עצירה חדשים בעתיד. במקום גבולות מוחלטים, אנחנו משתמשים בגבולות התחתונים וממליצים למפתחים להשתמש בבדיקות של הגבול התחתון כשמעבדים WindowSizeClass. הגרסאות הקיימות של WindowWidthSizeClass ו-WindowHeightSizeClass יצאו משימוש כי לא יפותחו יותר. (I014ce)

גרסה ‎1.4.0-alpha01

‫7 באוגוסט 2024

androidx.window:window-*:1.4.0-alpha01 מופץ. גרסה ‎1.4.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • הצמדת ActivityStack מאפשרת לאפליקציות להצמיד את התוכן במאגר אחד ולבודד את הניווט שלו מהמאגר השני.
  • קו מפריד אינטראקטיבי מאפשר לאפליקציות להציג קו מפריד קבוע או ניתן לגרירה בין שתי הפעילויות בתצוגה מפוצלת.
  • האפשרות 'הכהיית תיבת דו-שיח במסך מלא' מאפשרת לאפליקציות לציין את האזור המוכהה בתיבת הדו-שיח, כך שכל חלון המשימות יוכהה או רק המאגר שבו מוצגת תיבת הדו-שיח.
  • הקריאה החוזרת (callback) של מידע על חלון הפעילות המוטמע מאפשרת לאפליקציות לקבל עדכונים שוטפים על חלון הפעילות המוטמע.
  • הטמעת רקע לאנימציה מאפשרת לאפליקציות לציין את הרקע של האנימציה, וכך לשפר את האיכות של אנימציית המעבר כשמשתמשים ב-ActivityEmbedding.
  • ניהול משופר של ActivityStack מאפשר לאפליקציות לקבל יותר שליטה על ActivityStacks כשמשתמשים ב-ActivityEmbedding, כולל:
  • הפעלת פעילות ב-ActivityStack מסוים
  • סיום של ActivityStack

שינויים ב-API

  • ‫API חדש WindowInfoTracker#supportedPostures:

    • ‫API שקובע אם המכשיר תומך במצב שולחן למכשירים מתקפלים. ‫Adds WindowAreaSessionPresenter#getWindow
  • הוספת ממשקי API לתמיכה בהצמדה של ActivityStack:

    • SplitPinRule כיתה
    • SplitController#pinTopActivityStack
    • SplitController#unpinTopActivityStack
  • הוספת ממשקי API כדי להפעיל ולהגדיר את המחיצה האינטראקטיבית

    • DividerAttributes כיתה
    • SplitAttributes.Builder#setDividerAttributes
  • הוספנו ממשקי API להגדרת EmbeddingConfiguration ו-DimAreaBehavior לתיבות דו-שיח

    • EmbeddingConfiguration כיתה
    • DimAreaBehavior כיתה
    • ActivityEmbeddingController#setEmbeddingConfiguration
  • הוספת ממשקי API לקבלת עדכונים על מידע בחלון הפעילות המוטמע

    • EmbeddedActivityWindowInfo כיתה
    • ActivityEmbeddingController#embeddedActivityWindowInfo
  • הוספת ממשקי API להגדרת רקע של אנימציית הטמעה

    • EmbeddingAnimationBackground
    • SplitAttributes.Builder#setAnimationBackground
  • הוספת ממשקי API כדי לסיים ActivityStacks

    • ActivityEmbeddingController#finishActivityStacks
  • הוספת ממשקי API להגדרת ההפעלה ActivityStack

    • ActivityEmbeddingOptions#setLaunchingActivityStack
  • ממשקי ה-API הבאים יציבים ולא ניסיוניים יותר:

    • ActivityEmbeddingController#invalidateVisibleActivityStacks (moved from SplitController#invalidateTopVisibleSplitAttributes)
    • ActivityEmbeddingController#getActivityStack
    • SplitController#updateSplitAttributes
  • הוספת ממשקי API לגרסה 1.4. (I56774)

תיקוני באגים

  • תוקן באג במכשירים מסוימים שגרם לכך שהערך UNAVAILABLE הוחזר במקום ACTIVE כשסשן היה פעיל.
  • הוסרה התמיכה ב-transferActivityToWindowArea במכשירים עם vendorApiLevel בערך 2 בגלל תמיכה לא יציבה ב-API.
  • הוספנו API שמאפשר לגרור את הקו המפריד הניתן לגרירה של הטמעת Activity כדי להציג את הפעילות במסך מלא. (I645c9)
  • אפשרות לאפליקציות להשבית אנימציות של ActivityEmbedding באמצעות פרמטרים של אנימציה ל-SplitAttributes. (Idc01a)
  • הסרנו את האפשרות ליצור באופן ידני תרשים של הגישה לממשקי API חדשים של הפלטפורמה, כי זה קורה אוטומטית באמצעות מידול API כשמשתמשים ב-R8 עם AGP 7.3 ואילך (למשל R8 גרסה 3.3) ובכל הבנייה כשמשתמשים ב-AGP 8.1 ואילך (למשל D8 גרסה 8.1). לקוחות שלא משתמשים ב-AGP מומלץ לעדכן לגרסה 8.1 ואילך של D8. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, b/345472586)
  • אפשרות שמאפשרת לתוספים לקבל פרמטרים של אנימציה עבור SplitAttributes כדי שהמכשיר יוכל להשתמש בהם למעברים של אנימציה. (Iede00)
  • הסתרת ממשקי API של שכבת-על (Ic4251)
  • הוספנו ממשקי API להגדרת המחיצה הקבועה או הניתנת לגרירה עבור הפיצול (Ia7a78)
  • הוספת צפיפות ל-WindowMetrics (Id6723)
  • מוסיפים API כדי לקבל את SupportedPostures. (If557a)
  • הסרת setLaunchingActivityStack מ-API ניסיוני (I191cf)
  • הצגת ActivityEmbeddingController#embeddedActivityWindowInfo (I24312)
  • הוצאה משימוש של #getToken והוספה של #getActivityStackToken (Ie0471)
  • הוספנו מתאם לקריאה חוזרת ל-API של תהליך embeddedActivityWindowInfo (Ida77f)
  • הוספת מתאם של קריאה חוזרת ל-API של זרימת overlayInfo ‏ (I7264f)
  • הוספנו את WindowSdkExtensionsRule כדי לבטל את extensionsVersion לצורך בדיקה. (Ifb928)
  • ‫– העברה של #setLaunchingActivityStack ל-Bundle כדי שתהיה תאימות לשימושים ב-ActivityOptionsCompat.
    • המשתמשים צריכים להעביר את activityOptions.toBundle במקום את ActvityOptions עצמו.
    • הסרה של #setLaunchingActivityStack(Activity). המשתמשים צריכים לעבור לשימוש ב-ActivityEmbeddingController#getActivityStac(Activity) כדי לקבל ActivityStack, ולהעביר את ActivityStack אל #setLaunchingActivityStack. (Ie0ccc)
  • – הוספנו את ActivityStack.Token ו-SpltInfo.Token כמזהים לתקשורת בין WM Jetpack לבין תוספים.
    • הוצאה משימוש או החלפה של ממשקי API כדי לקבל או להחזיר טוקן במקום IBinder. (I12b24)
  • – להציג את ActivityEmbeddingController#invalidateVisibleActivityStacks
    • הסרת SplitController#invalidateTopVisibleSplitAttributes כי התכונה מוזגה עם #invalidateVisibleActivityStacks (I02ef5)
  • – הוספת API להגדרת הטמעה. (I59a4a)
  • – הוספה של הצמדה/ביטול הצמדה לראש הדף ActivityStack androidx.Window ממשקי API
    • עדכון אפליקציית ההדגמה כדי לאפשר הצמדה/ביטול הצמדה בחלק העליון ActivityStack (I24dd3)
  • הוספה מחדש של #finishActivityStacks ושל ActivityEmbeddingOptions (Ic1ab3)
  • להסיר ממשקי API לא יציבים. (Ibc534, ‏ b/302380585)

גרסה 1.3

גרסה 1.3.0

‫29 במאי 2024

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

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

  • תמיכה ב-Kotlin Multiplatform עבור סיווגים של גודל חלון.

גרסה ‎1.3.0-rc01

‫14 במאי 2024

WindowManager Jetpack 1.3 כולל תמיכה ב-Kotlin Multiplatform לתכונות של WindowSizeClass וגם תיקוני באגים רבים.

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

גרסה ‎1.3.0-beta02

‫1 במאי 2024

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

שינויים ב-API

  • הסרת התמיכה ביצירה ובשימוש בWindowSizeClass מותאמים אישית. (Id1143)

תיקוני באגים

  • תוקנה בעיה KotlinReflectionInternalError שנגרמה כתוצאה מהסרת קבצים מסוימים על ידי proguard בהטמעות מסוימות של מכשירים. (I01b02)

גרסה ‎1.3.0-beta01

‫3 באפריל 2024

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

גרסה ‎1.3.0-alpha03

6 במרץ 2024

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

שינויים ב-API

  • פיצול WindowSizeClassUtil לשיטות ממוקדות יותר. (Ie9292)
  • שחזור WindowSizeClass#compute (I21355, ‏ b/324293374)

תיקוני באגים

  • תוקנה קריסה שבה ההקשר שסופק לא נפרט בצורה נכונה. (94d10ce , b/318787482)

גרסה ‎1.3.0-alpha02

‫7 בפברואר 2024

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

תכונות חדשות

  • בוצעו עדכונים ב-API surface של Window Size Class API כדי לשפר את הגמישות של מפתחים שרוצים להשתמש במחלקות גודל משלהם.

שינויים ב-API

  • הוספת מגבלות גובה לבורר הרוחב. (I23393)
  • הוספת פונקציות עזר לבחירת WindowSizeClass מתוך קבוצה. הוספנו פונקציות ניסיוניות לדירוג, כדי שמפתחים יוכלו לכתוב סלקטורים משלהם. מוסיפים פונקציית הרחבה של בורר כדי לבחור את ה-WindowSizeClass הרחב ביותר בתוך גבול נתון. (I0c944)
  • פותחים את ה-constructor‏ WindowSizeClass כדי להוסיף נקודות עצירה מותאמות אישית. (Ic1ff3)
  • הוספת פונקציית נוחות ליצירת סיווג גודל מרוחב, גובה וצפיפות. (If67f4)

תיקוני באגים

  • תיקון חריגה כשערך מספרי מעוגל ל-0. (272ffac)

גרסה ‎1.3.0-alpha01

‫15 בנובמבר 2023

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

תכונות חדשות

  • חשיפת ממשקי API ניסיוניים של חלון לגישה למסך האחורי.
  • ממשקי ה-API לבדיקה ליצירת FoldingFeature יציבים עכשיו.
  • ממשקי ה-API לבדיקה להגדרת ערכי ActivityEmbedding מזויפים יציבים עכשיו.
  • הפונקציה WindowLayoutInfoPublisherRule מדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext.
  • התכונה של קיפול דוחות מאפשרת להציג נתונים בפרמטרים UiContext.WindowInfoTracker
  • הצגת גרסת התוספים במכשיר.
  • WindowProperties קבועים של חריגות לכל אפליקציה עבור משתמשים:
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE — מודיע למערכת שהאפליקציה לא משתמשת בביטול ברירת המחדל של תאימות יחס הגובה-רוחב שמוצג למשתמש.
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE‫— מודיע למערכת שהאפליקציה לא משתמשת באפשרות המסך המלא של הגדרות החלפת התאימות של יחס הגובה-רוחב של המשתמש

גרסה 1.2

גרסה 1.2.0

‫15 בנובמבר 2023

androidx.window:window-*:1.2.0 מופץ. גרסה 1.2.0 מכילה את השמירות האלה.

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

  • חשיפת ממשקי API ניסיוניים של חלון לגישה למסך האחורי.
  • ממשקי ה-API לבדיקה ליצירת FoldingFeature יציבים עכשיו.
  • ממשקי ה-API לבדיקה להגדרת ערכי ActivityEmbedding מזויפים יציבים עכשיו.
  • הפונקציה WindowLayoutInfoPublisherRule מדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext.
  • התכונה של קיפול דוחות מאפשרת להציג נתונים בפרמטרים UiContext.WindowInfoTracker
  • הצגת גרסת התוספים במכשיר.

גרסה ‎1.2.0-rc01

1 בנובמבר 2023

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

תכונות חדשות

  • חשיפת ממשקי API ניסיוניים של חלון לגישה למסך האחורי.
  • ממשקי ה-API לבדיקה ליצירת FoldingFeature יציבים עכשיו.
  • ממשקי ה-API לבדיקה להגדרת ערכי ActivityEmbedding מזויפים יציבים עכשיו.
  • הפונקציה WindowLayoutInfoPublisherRule מדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext.
  • התכונה של קיפול דוחות מאפשרת להציג נתונים בפרמטרים UiContext.WindowInfoTracker
  • הצגת גרסת התוספים במכשיר.

גרסה ‎1.2.0-beta04

‫18 באוקטובר 2023

androidx.window:window-*:1.2.0-beta04 מופץ. גרסה ‎1.2.0-beta04 מכילה את השמירות האלה.

שינויים ב-API

גרסה ‎1.2.0-beta03

‫20 בספטמבר 2023

androidx.window:window-*:1.2.0-beta03 מופץ. גרסה ‎1.2.0-beta03 מכילה את השמירות האלה.

תכונות חדשות

  • מוסיפים RequiresApi בדיקות לממשקי API שנדרשת להם גרסה ספציפית של תוספים כדי לפעול בצורה תקינה.
  • מוסיפים API כדי לחשוף את גרסת התוספים במכשיר.

שינויים ב-API

  • הוספת הערה לגבי גרסת התוסף הנדרשת של Window SDK בממשקי API ציבוריים.
    • מסירים את isXXXSupported ברכיב Activity Embedding. (Ie3dae)
  • הוספנו את WindowSdkExtensions כדי לדווח על גרסת התוסף במכשיר.
    • הוספת RequiresWindowSdkExtension כדי לציין את גרסת התוסף המינימלית הנדרשת. (I05fd4)
  • הופך את WindowAreaInfo#getCapability ללא ניתן לאיפוס. (I17048)

גרסה ‎1.2.0-beta01

26 ביולי 2023

androidx.window:window-*:1.2.0-beta01 מופץ. גרסה ‎1.2.0-beta01 מכילה את השמירות האלה.

תכונות חדשות

  • חשיפת ממשקי API ניסיוניים של חלון לגישה למסך האחורי.
  • ממשקי ה-API לבדיקה ליצירת FoldingFeature יציבים עכשיו.
  • ממשקי ה-API לבדיקה להגדרת ערכי ActivityEmbedding מזויפים יציבים עכשיו.
  • הפונקציה WindowLayoutInfoPublisherRule מדווחת עכשיו על החלפה כשמתקבל ערך מ-UiContext.
  • התכונה של קיפול דוחות מאפשרת להציג נתונים בפרמטרים UiContext.WindowInfoTracker

שינויים ב-API

  • סימון של ממשקי API ‏WindowArea כניסיוניים כדי לאפשר המשך שינויים בממשקי ה-API לקראת גרסה יציבה ב-1.3 (I857f5)
  • קובצי API עודכנו כדי להוסיף הערות על השבתת תאימות (I8e87a, ‏ b/287516207)

גרסה ‎1.2.0-alpha03

‫21 ביוני 2023

androidx.window:window-*:1.2.0-alpha03 מופץ. גרסה ‎1.2.0-alpha03 מכילה את השמירות האלה.

תכונות חדשות

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

שינויים ב-API

  • הסרת ממשקי API שהוצאו משימוש (I18d39)
  • הוספת תמיכה בהצגה בו-זמנית. (Ifcbb0)

תיקוני באגים

  • הוספת נכס תאימות לביטול הסכמה לשינוי גודל בכוח (Ie7ab1)
  • הסרת SESSION_STATE_CONTENT_INVISIBLE מממשק התוספים. (I6ed19)
  • הוספנו שיפורים ל-ActivityEmbeddingRule כדי לתמוך בבדיקות יחידה של הטמעת פעילויות. (I8d6b6)
  • הוספת מאפיין תאימות לביטול הסכמה לשינוי יחס הגובה-רוחב המינימלי. (I66390)
  • הסרה של ממשקי WindowArea API שהוצאו משימוש (Ieb67c)
  • שינוי השם של מאפיין הלולאה של בקשת שינוי הכיוון ל-PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED. (Ie2fbd)
  • עדכונים לשמות הקבועים של סשן אזור החלון (I83675)
  • הוספת מאפיין תאימות לביטול הסכמה שמתעלם מלולאת בקשות לשינוי הכיוון כשהיא מזוהה (I0a7a2)
  • מוסיפים WindowAreaComponent#STATUS_ACTIVE כדי לציין שהתכונה כבר פעילה. (I62bc3)
  • הוספת ממשקי API של RearDisplayPresentationMode (I0401c)
  • הסרת API להסרת צבע הרקע לגרסה יציבה. (I34c3e)
  • הסתרת ממשקי API של אזור החלון. (I39de0)
  • מוסיפים שיטות לשינוי הערך של SplitInfo ב-SplitController. מוסיפים שיטות בדיקה כדי ליצור כפילויות של SplitInfo ושל ActivityStack. (Icd69f)
  • הופכים את התג לאופציונלי עבור ActivityRule.Builder. (Ib0b44)
  • הסרה של RatioSplitType, ‏ExpandContainersSplit וHingeSplitType. הם SplitType עכשיו.
    • מחליפים את #splitEqually(), #expandContainers() ו-#splitByHinge בקבועים SplitType SPLIT_TYPE_EQUAL, SPLIT_TYPE_EXPAND ו-SPLIT_TYPE_HINGE
    • הסרת הפונקציונליות להגדרת סוג חלוקה חלופי של סוג חלוקת המסך בציר. אם אי אפשר להחיל את סוג הפיצול של הציר בגלל המצב הנוכחי של המכשיר או החלון, המערכת חוזרת לפצל את מאגר המשימות של האב באופן שווה. משתמשים ב-SplitController#setSplitAttributesCalculator כדי להתאים אישית את סוג הפיצול החלופי. (Ifcc59)
  • הוצאה משימוש של add/removeSplitCallback
    • העברה של add/removeSplitCallback אל SplitControllerCallbackAdapter
    • הוספת תמיכה ב-Flow כדי לקבל רשימה של SplitInfo (I7f1b6)
  • הוספת כלל בדיקה ל-ActivityEmbeddingController (I42e9b)
  • שינוי השם של ActivityOptionsCompat ל-ActivityEmbeddingOptions (I89301)
  • מוסיפים את splitSupportStatus כדי לציין אם אפשר להטמיע פעילות. (I10024)
  • הוספנו את SplitAttributes.BackgroundColor כדי לייצג טוב יותר את הערך של DEFAULT. הוספנו הבהרה שלפיה אין תמיכה בצבע רקע לא אטום של אנימציה, ולכן כל הצבעים הלא אטומים יטופלו כברירת המחדל, כלומר ייעשה שימוש בצבע הרקע הנוכחי של חלון העיצוב. (Ic6b95)
  • מחליפים את alwaysAllow() ואת alwaysDisallow() ב-ALWAYS_ALLOW וב-ALWAYS_DISALLOW. (I3057b)
  • מוסיפים ממשקי API ל-SplitRule, ל-SplitAttributes ול-SplitAttributesCalculator. (I92d23)
  • מוסיפים TestActivityStack כדי ליצור ActivityStack לבדיקה
    • מוסיפים TestSplitInfo כדי ליצור SplitInfo לבדיקה. (I8e779)
  • הוספת דרך ליצור SplitAttributesCalculatorParams מזויף כדי שמפתחים יוכלו לאמת את SplitAttributesCalculator המותאם אישית שלהם (Id4a6e)
  • הוספה של WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context) ו-WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) (I66c7f)

גרסה ‎1.2.0-alpha02

‫7 ביוני 2023

androidx.window:window-*:1.2.0-alpha02 מופץ. גרסה ‎1.2.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

  • עדכון של API לבדיקה כדי שיהיה קבוע לתכונות קיפול לא מוגדרות.
  • החלפת הערך באמצעות WindowLayoutInfoPublishRule תחליף את כל הערכים של windowLayoutInfo, כולל הערכים של Context based API.

שינויים ב-API

  • הוספת קבוע לתכונת קיפול מרכזית לא מוגדרת. (I7530c)

תיקוני באגים

  • צריך לעדכן את WindowLayoutInfoPublishRule כדי לתמוך בשינויים ב-Context על סמך WindowLayoutInfo. (I2037a)

גרסה ‎1.2.0-alpha01

‫24 במאי 2023

androidx.window:window-*:1.2.0-alpha01 מופץ. גרסה ‎1.2.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

שיפור היציבות של ממשקי API לבדיקות בנושא הטמעת פעילויות וWindowLayoutInfoTracker. גרסת ActivityEmbeddingRule קודמה לגרסה יציבה. גרסת WindowMetricsCalculatorRule קודמה לגרסה יציבה. פונקציות עזר ליצירת FoldingFeature לבדיקה הועברו לגרסה יציבה.

שינויים ב-API

  • הוספנו שיפורים ל-ActivityEmbeddingRule כדי לתמוך בבדיקות יחידה של הטמעת פעילויות. (I8d6b6)
  • WindowMetrisCalculatorTestRule יציב ומאפשר מדדי stub לבדיקות JVM. מומלץ להשתמש באמולטור כדי לקבל תוצאות מדויקות.
  • הוספנו יציבות ל-APIs של בדיקות ב-WindowLayoutInfo כדי לתמוך בבדיקות JVM. (Ie036e)
  • מוסיפים IntRange לערכים של תכונת קיפול הבדיקה. (I69f7d)

גרסה 1.1

גרסה 1.1.0

‫7 ביוני 2023

androidx.window:window-*:1.1.0 מופץ. גרסה 1.1.0 מכילה את השמירות האלה.

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

הטמעה של פעילות

  • הוספנו את PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED כמאפיין בוליאני של התג <application> בקובץ מניפסט של אפליקציה.
  • הוצאנו משימוש את isSplitSupported והחלפנו אותו ב-splitSupportStatus כדי לספק מידע מפורט יותר על הסיבה לכך שתכונת הפיצול לא זמינה.
  • נוספה המחלקה SplitController.SplitSupportStatus nested כדי לספק קבועים של מצב לנכס splitSupportStatus.
  • בוצע רפקטורינג של SplitController למספר מודולים:
    • ActivityEmbeddingController module ל-Activity או לממשקי API קשורים של ActivityStack.
    • הועבר isActivityEmbedded מ-SplitController אל ActivityEmbeddingController.
    • מודול RuleController לפעולות שקשורות ל-EmbeddingRule:
    • הוסרו ממשקי ה-API‏ SplitController:
    • clearRegisteredRules()
    • getSplitRules()
    • initialize()
    • registerRule()
    • unregisterRule()
    • נוספו ממשקי API‏:RuleController
    • addRule() – מוסיף כלל או מעדכן את הכלל עם אותו תג.
    • removeRule() – מסיר כלל מהאוסף של כללים רשומים.
    • setRules() — מגדיר אוסף של כללים.
    • clearRules() — מסיר את כל הכללים הרשומים.
    • parseRules() – מנתח כללים מהגדרות כללים ב-XML.
  • כל המודולים דורשים הקשר לאתחול באמצעות method #getInstance(), כולל:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • נוספה המחלקה EmbeddingAspectRatio כדי להגדיר קבועים של התנהגות דמוית enum שקשורים ליחס הגובה-רוחב של התצוגה.
  • הוספנו את המחלקה SplitAttributes כדי להגדיר את פריסת המסך המפוצל.
  • הוספנו פונקציות של מחשבון SplitAttributes ל-SplitController כדי להתאים אישית את פריסות המסך המפוצל:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • isSplitAttributesCalculatorSupported() כדי לבדוק אם ממשקי ה-API של SplitAttributesCalculator נתמכים במכשיר
  • נוסף שדה EmbeddingRule#tag.
  • עדכוני API ב-SplitRule:
    • נוסף defaultSplitAttributes – מגדיר את פריסת החלוקה שמוגדרת כברירת מחדל בחלוקה; מחליף את splitRatio ואת layoutDirection.
    • נוספה תרגום של מאפייני ה-XML‏ splitRatio ו-splitLayoutDirection אל defaultSplitAttributes.
    • הגדרות המידות המינימליות שונו כך שהן מבוססות על פיקסלים שאינם תלויים בדחיסות (dp) במקום על פיקסלים.
    • נוסף minHeightDp עם ערך ברירת מחדל של 600dp.
    • הערך minWidth השתנה ל-minWidthDp עם ערך ברירת המחדל 600dp.
    • הערך minSmallestWidth השתנה ל-minSmallestWidthDp עם ערך ברירת המחדל 600dp.
    • נוסף maxAspectRatioInHorizontal עם ערך ברירת מחדל ALWAYS_ALLOW.
    • נוסף maxAspectRatioInPortrait עם ערך ברירת מחדל 1.4.
    • הוגדר FinishBehavior מחלקה מקוננת להחלפת קבועי התנהגות הסיום.
    • השינויים בנכס הוחלו על המחלקה המקוננת Builder של SplitPairRule ו-SplitPlaceholderRule.
  • החלפנו את SplitInfo#getSplitRatio() ב-SplitInfo#getSplitAttributes() כדי לספק מידע נוסף שקשור לפיצול.

WindowLayout

  • נוספה תמיכה ניסיונית בהקשר של ממשק משתמש שאינו פעילות ב-WindowInfoTracker.
  • נוסף הקשר ניסיוני של ממשק משתמש שאינו פעילות אל WindowMetricsCalculator.

שלבי ההעברה

  • כדי להפעיל הטמעה של פעילויות ולהציג פעילויות בחלונות מפוצלים, האפליקציות צריכות להוסיף את המאפיין PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED לתג <application> במניפסט: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> כך המערכת יכולה לבצע אופטימיזציה של התנהגויות החלונות המפוצלים עבור אפליקציה מראש.
  • SplitInfo ratio
    • בודקים אם המסך המפוצל הנוכחי מוצג בערימה: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • בודקים את היחס הנוכחי: kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • העברות של SplitController:
    • התפקיד של SplitController.getInstance() שונה על ידי SplitController.getInstance(Context). התפקיד החדש הוא .
    • התפקיד של SplitController.initialize(Context, @ResId int) שונה על ידי RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().isActivityEmbedded(Activity) שונה על ידי ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().registerRule(rule) שונה על ידי RuleController.getInstance(Context).addRule(rule). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().unregisterRule(rule) שונה על ידי RuleController.getInstance(Context).removeRule(rule). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().clearRegisteredRules() שונה על ידי RuleController.getInstance(Context).clearRules(). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().getSplitRules() שונה על ידי RuleController.getInstance(Context).getRules(). התפקיד החדש הוא .
  • SplitRule property migrations:
    • minWidth ו-minSmallestWidth משתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) או פשוט לחלק את minWith בפיקסלים ב-displayMetrics#density.
  • צריך להעביר את קבועי ההתנהגות של סיום הפעולה לקבועים של מחלקה דמוית enum‏ FinishBehavior:
    • התפקיד של FINISH_NEVER שונה על ידי FinishBehavior.NEVER. התפקיד החדש הוא .
    • התפקיד של FINISH_ALWAYS שונה על ידי FinishBehavior.ALWAYS. התפקיד החדש הוא .
    • התפקיד של FINISH_ADJACENT שונה על ידי FinishBehavior.ADJACENT. התפקיד החדש הוא .
  • צריך להעביר את כיוון הפריסה אל SplitAttributes.LayoutDirection:
    • התפקיד של ltr שונה על ידי SplitAttributes.LayoutDirection.LEFT_TO_RIGHT. התפקיד החדש הוא .
    • התפקיד של rtl שונה על ידי SplitAttributes.LayoutDirection.RIGHT_TO_LEFT. התפקיד החדש הוא .
    • התפקיד של locale שונה על ידי SplitAttributes.LayoutDirection.LOCALE. התפקיד החדש הוא .
    • צריך להעביר את splitRatio אל SplitAttributes.SplitType.ratio(splitRatio).
  • SplitPairRule.Builder migrations:
    • הערך של SplitPairRule.Builder(filters, minWidth, minSmallestWidth) השתנה ל-kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • setLayoutDirection(layoutDirection) ו-setSplitRatio(ratio) שינויים ב-kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • הפונקציות setFinishPrimaryWithSecondary ו-setFinishSecondaryWithPrimary מקבלות את הקבועים שדומים ל-enum‏ FinishBehavior. פרטים נוספים זמינים במאמר בנושא העברות של SplitRule.
    • במכשירים במצב אנכי, אפשר להשתמש ב-setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) כדי להציג את המסך המפוצל.
  • SplitPlaceholder.Builder migrations:
    • יש לו רק פרמטרים של filters ושל placeholderIntent. מאפיינים אחרים עוברים לפונקציות setter. פרטים נוספים זמינים במאמר בנושא העברות של SplitPairRule.Builder.
    • הפונקציה setFinishPrimaryWithPlaceholder מקבלת קבועים דמויי enum‏ FinishBehavior. פרטים נוספים זמינים במאמר בנושא העברות של SplitRule.
    • הערכים setLayoutDirection(layoutDirection) ו-setSplitRatio(ratio) משתנים ל: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • במכשירים במצב אנכי, אפשר להשתמש ב-setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) כדי להציג את המסך המפוצל.

גרסה ‎1.1.0-rc01

‫10 במאי 2023

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

תכונות חדשות

  • השקת ActivityEmbedding כממשק API יציב.
  • תיקוני באגים שונים.

גרסה ‎1.1.0-beta02

‫5 באפריל 2023

androidx.window:window-*:1.1.0-beta02 מופץ. גרסה ‎1.1.0-beta02 מכילה את השמירות האלה.

תכונות חדשות

  • תיקונים פנימיים וניקוי.

גרסה ‎1.1.0-beta01

‫22 במרץ 2023

androidx.window:window-*:1.1.0-beta01 מופץ. גרסה ‎1.1.0-beta01 מכילה את השמירות האלה.

הטמעה של פעילות

  • הוספנו את PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED כמאפיין בוליאני של התג <application> בקובץ מניפסט של אפליקציה.
  • הוצאנו משימוש את isSplitSupported והחלפנו אותו ב-splitSupportStatus כדי לספק מידע מפורט יותר על הסיבה לכך שתכונת הפיצול לא זמינה.
  • נוספה המחלקה SplitController.SplitSupportStatus nested כדי לספק קבועים של מצב לנכס splitSupportStatus.
  • בוצע רפקטורינג של SplitController למספר מודולים:
    • ActivityEmbeddingController module ל-Activity או לממשקי API קשורים של ActivityStack.
    • הועבר isActivityEmbedded מ-SplitController אל ActivityEmbeddingController.
    • מודול RuleController לפעולות שקשורות ל-EmbeddingRule:
    • הוסרו ממשקי ה-API של SplitController:
      • clearRegisteredRules()
      • getSplitRules()
      • initialize()
      • registerRule()
      • unregisterRule()
    • נוספו ממשקי ה-API של RuleController:
      • addRule() – מוסיף כלל או מעדכן את הכלל עם אותו תג.
      • removeRule() – מסיר כלל מהאוסף של כללים רשומים.
      • setRules() — מגדיר אוסף של כללים.
      • clearRules() — מסיר את כל הכללים הרשומים.
      • ‫`parseRules() — מנתח כללים מהגדרות כללים ב-XML.
  • כל המודולים דורשים הקשר לאתחול באמצעות method #getInstance(), כולל:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • נוספה המחלקה EmbeddingAspectRatio כדי להגדיר קבועים של התנהגות דמוית enum שקשורים ליחס הגובה-רוחב של התצוגה.
  • הוספנו את המחלקה SplitAttributes כדי להגדיר את פריסת המסך המפוצל.
  • הוספנו פונקציות של מחשבון SplitAttributes ל-SplitController כדי להתאים אישית את פריסות המסך המפוצל:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • isSplitAttributesCalculatorSupported() כדי לבדוק אם ממשקי ה-API של SplitAttributesCalculator נתמכים במכשיר
  • נוסף שדה EmbeddingRule#tag.
  • עדכוני API ב-SplitRule:
    • נוסף defaultSplitAttributes – מגדיר את פריסת החלוקה שמוגדרת כברירת מחדל בחלוקה; מחליף את splitRatio ואת layoutDirection.
    • נוספה תרגום של מאפייני ה-XML‏ splitRatio ו-splitLayoutDirection אל defaultSplitAttributes.
    • הגדרות המידות המינימליות שונו כך שהן מבוססות על פיקסלים שאינם תלויים בדחיסות (dp) במקום על פיקסלים.
    • נוסף minHeightDp עם ערך ברירת מחדל של 600dp.
    • הערך minWidth השתנה ל-minWidthDp עם ערך ברירת המחדל 600dp.
    • הערך minSmallestWidth השתנה ל-minSmallestWidthDp עם ערך ברירת המחדל 600dp.
    • נוסף maxAspectRatioInHorizontal עם ערך ברירת מחדל ALWAYS_ALLOW.
    • נוסף maxAspectRatioInPortrait עם ערך ברירת מחדל 1.4.
    • הוגדרה FinishBehavior מחלקה מקוננת להחלפת קבועי התנהגות הסיום.
    • השינויים במאפיין הוחלו על המחלקה המקוננת Builder של SplitPairRule ו-SplitPlaceholderRule.
  • החלפנו את SplitInfo#getSplitRatio() ב-SplitInfo#getSplitAttributes() כדי לספק מידע נוסף שקשור לפיצול.

WindowLayout

  • נוספה תמיכה בהקשר של ממשק משתמש שאינו פעילות ב-WindowInfoTracker.
  • נוסף הקשר לממשק המשתמש שאינו קשור לפעילות ל-WindowMetricsCalculator.

שלבי ההעברה

  • כדי להפעיל הטמעה של פעילויות ולהציג פעילויות בחלונות מפוצלים, האפליקציות צריכות להוסיף את המאפיין PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED לתג <application> במניפסט: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> כך המערכת יכולה לבצע אופטימיזציה של התנהגויות החלונות המפוצלים עבור אפליקציה מראש.
  • SplitInfo ratio
    • בודקים אם המסך המפוצל הנוכחי מוצג בערימה: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • בודקים את היחס הנוכחי: kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • SplitController migrations:
    • התפקיד של SplitController.getInstance() שונה על ידי SplitController.getInstance(Context). התפקיד החדש הוא .
    • SplitController.initialize(Context, @ResId int) השתנה לRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).
    • התפקיד של SplitController.getInstance().isActivityEmbedded(Activity) שונה על ידי ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().registerRule(rule) שונה על ידי RuleController.getInstance(Context).addRule(rule). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().unregisterRule(rule) שונה על ידי RuleController.getInstance(Context).removeRule(rule). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().clearRegisteredRules() שונה על ידי RuleController.getInstance(Context).clearRules(). התפקיד החדש הוא .
    • התפקיד של SplitController.getInstance().getSplitRules() שונה על ידי RuleController.getInstance(Context).getRules(). התפקיד החדש הוא .
  • SplitRule property migrations:
    • minWidth ו-minSmallestWidth משתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) או פשוט לחלק את minWith בפיקסלים ב-displayMetrics#density.
  • צריך להעביר את קבועי ההתנהגות של סיום הפעולה לקבועים של מחלקה דמוית enum‏ FinishBehavior:
    • התפקיד של FINISH_NEVER שונה על ידי FinishBehavior.NEVER. התפקיד החדש הוא .
    • התפקיד של FINISH_ALWAYS שונה על ידי FinishBehavior.ALWAYS. התפקיד החדש הוא .
    • התפקיד של FINISH_ADJACENT שונה על ידי FinishBehavior.ADJACENT. התפקיד החדש הוא .
  • צריך להעביר את כיוון הפריסה אל SplitAttributes.LayoutDirection:
    • התפקיד של ltr שונה על ידי SplitAttributes.LayoutDirection.LEFT_TO_RIGHT. התפקיד החדש הוא .
    • התפקיד של rtl שונה על ידי SplitAttributes.LayoutDirection.RIGHT_TO_LEFT. התפקיד החדש הוא .
    • התפקיד של locale שונה על ידי SplitAttributes.LayoutDirection.LOCALE. התפקיד החדש הוא .
    • צריך להעביר את splitRatio אל SplitAttributes.SplitType.ratio(splitRatio).
  • SplitPairRule.Builder migrations:
    • הערך של SplitPairRule.Builder(filters, minWidth, minSmallestWidth) השתנה ל-kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • הערכים setLayoutDirection(layoutDirection) ו-setSplitRatio(ratio) משתנים ל-kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • הפונקציות setFinishPrimaryWithSecondary ו-setFinishSecondaryWithPrimary מקבלות את הקבועים שדומים ל-enum‏ FinishBehavior. פרטים נוספים זמינים במאמר בנושא העברות של SplitRule.
    • במכשירים במצב אנכי, אפשר להשתמש ב-setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) כדי להציג את המסך המפוצל.
  • SplitPlaceholder.Builder migrations:
    • יש לו רק פרמטרים של filters ושל placeholderIntent. מאפיינים אחרים עוברים לפונקציות setter. פרטים נוספים זמינים במאמר בנושא העברות של SplitPairRule.Builder.
    • הפונקציה setFinishPrimaryWithPlaceholder מקבלת קבועים דמויי enum‏ FinishBehavior. פרטים נוספים זמינים במאמר בנושא העברות של SplitRule.
    • הערכים setLayoutDirection(layoutDirection) ו-setSplitRatio(ratio) משתנים ל: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • במכשירים במצב אנכי, אפשר להשתמש ב-setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) כדי להציג את המסך המפוצל.

גרסה ‎1.1.0-alpha06

‫22 בפברואר 2023

androidx.window:window-*:1.1.0-alpha06 מופץ. גרסה ‎1.1.0-alpha06 מכילה את השמירות האלה.

תכונות חדשות

  • הצגת גרסה ניסיונית של קבלת WindowLayoutInfo מהקשר של ממשק משתמש.

שינויים ב-API

  • מוסיפים את splitSupportStatus כדי לציין אם אפשר להטמיע פעילות. (I10024)
  • הגדרת UI Context WindowLayoutInfo API כניסיוני. (I58ee0)
  • הוספנו את WindowAreaController ואת ממשקי ה-API כדי להפעיל את מצב RearDisplay, שמאפשר להעביר את החלון הנוכחי לתצוגה שמותאמת למצלמה האחורית. (Iffcbf)
  • עדכון צבע הרקע שמוגדר כברירת מחדל. (I1ac1b)
  • להוסיף פרמטרים של SplitAttributes. (I18bdd)
  • מוסיפים ממשקי API ל-SplitRule, ל-SplitAttributes ול-SplitAttributesCalculator. (I92d23)
  • לשפר את ממשקי ה-API שקשורים ל-maxAspectRatio:
    1. מחליפים את alwaysAllow() ואת alwaysDisallow() ב-ALWAYS_ALLOW וב-ALWAYS_DISALLOW.
    2. עדכון מאמרי העזרה של ה-API של @see עם מאמרי עזרה עצמאיים. (I3057b)
  • הקונסטרוקטורים הבאים הוסרו מממשקי ה-API הציבוריים כי הם לא אמורים להיקרא על ידי אפליקציות.
    • SplitInfo constructor
    • ActivityStack constructor (Ide534)
  • SplitRule מקבל עכשיו maxAspectRatioInPortrait/Landscape. הוא מאפשר רק פיצול פעילויות כשיחס הגובה-רוחב של הגבולות של הרכיב העליון קטן או שווה לערך המבוקש maxAspectRatio. (Ia5990)
  • שינוי RuleController#parseRules לערך סטטי (I785df)
  • שיפור ממשקי ה-API של ActivityEmbedding
    1. התאמה של שמות ה-API – שימוש בפקודות add/remove למספר מופעים:
    2. הערך של registerRule השתנה ל-addRule
    3. הערך של unregisterRule השתנה ל-removeRule
    4. מחליפים את getSplitRules ב-getRules כי ActivityRule הוא לא כלל פיצול
    5. הוספת RuleController#setRules כדי להגדיר קבוצה של כללים
    6. העברת ממשקי API שקשורים לכללי חילוץ מ-SplitController ל-singleton‏ RuleController. אלו הם:
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. חילוץ #isActivityEmbedded מתוך SplitController אל סינגלטון ActivityEmbeddingController. אלו הם:
    14. isActivityEmbedded
    15. הסרה של SplitController#initialize. כדי להגדיר כללים מקובץ XML, צריך להשתמש ב-RuleController#parseRules וב-#setRules. לפני השינוי: SplitController.initialize(context, R.xml.static_rules) אחרי השינוי: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
    16. אנחנו כבר לא מבחינים בין כללים סטטיים לבין כללים בזמן ריצה. עם זאת, קריאה ל-#clearRules מוחקת את כל הכללים, לא משנה אם הם רשומים בהגדרות כללים סטטיות של XML או בזמן ריצה. כדי להשתמש בהתנהגות הקודמת של SplitController#clearRegisteredRules, צריך להפעיל את RuleController#parseRules עם מזהה משאבי ה-XML ולהפעיל את RuleController#setRules כדי להגדיר מחדש את הכללים. לפני השינוי: SplitController.getInstance(context).clearRegisteredRules() אחרי השינוי: SplitController.getInstance(context).clearRegisteredRules() (Ib3967)val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
  • שיפור ממשקי ה-API של SplitRule:
    1. במקום פיקסלים, המידות המינימליות של SplitRule צריכות להיות ב-DP.
    2. שינוי מבנה הקוד של SplitRule Builder כדי להגדיר את המאפיינים המינימליים כאופציונליים. (I95f17)
  • העברת הקשר כדי להפעיל את SplitController (I42549)
  • השם של SplitRule#layoutDir שונה ל-#layoutDirection ושל SplitRule Builder#setLayoutDir ל-Builder#setLayoutDirection. (I3f6d1)

גרסה ‎1.1.0-alpha04

9 בנובמבר 2022

androidx.window:window-*:1.1.0-alpha04 מופץ. גרסה ‎1.1.0-alpha04 מכילה את השמירות האלה.

תכונות חדשות

  • חשיפת שיטה לקביעה אם ActivityStack ריק עבור ActivityEmbedding.
  • הוסרו תגי API ניסיוניים מ-API‏ ActivityEmbedding.
  • הסתרת ה-constructor‏ ActivityRule כי Builder היא הדרך המועדפת ליצירת אובייקט.
  • מוסיפים שיטה ניסיונית כדי לקבל את WindowInsets ב-WindowMetrics.
  • כדי למנוע את סיום ה-placeholder, צריך לעדכן את SplitPlaceholderFinishBehavior. השלמת ה-placeholder גרמה להתנהגות מבלבלת.

שינויים ב-API

  • הופכים את val isEmpty לגלוי לכולם כדי להחליף את fun isEmpty.
  • משנים את השם של פעילויות הפרמטר ActivityStack ל-activitiesInProcess. (Ia5055)
  • הסרת ActivityFilter#matchesClassName ו-ActivityFilter#matchesClassNameOrWildCard כי הן מבלבלות.
  • מוסיפים את ActivityFilter#componentName ואת ActivityFilter#intentAction כדי לאפשר למתקשר להבחין בין מסננים שונים (I41f22)
  • הסרה של ממשקי ה-API @Deprecated מממשק ה-API הניסיוני (I216b3)
  • הסרה של @ExperimentalWindowApi מ-Activity Embedding APIs‏ (I69ebe)
  • צריך להסתיר את הבונה ActivityRule ולהשתמש ב-Builder במקום זאת. (If4eb6)
  • מוסיפים ממשקי API כדי לבדוק אם פעילות מסוימת היא חלק מ-ActivityFilter. (Ia43cf)
  • עדכון קובצי API כדי לשקף שינויים במחלקות WindowMetrics ו-WindowMetricsCalculatorCompat (I667fe)
  • עדכון של ActivityEmbedding Property Javadoc ושם המחלקה (Ia1386)
  • הוספת שמות של תגי מאפיינים ActivityEmbedding לשימוש בקובץ AndroidManifest.xml ‏ (Id1ad4)
  • נוספו ממשקי API חדשים SplitPlaceholderFinishBehavior ו-SplitPlaceholderRule.finishPrimaryWithPlaceholder, שמחליפים את ממשק ה-API הקיים SplitPlaceholderRule.finishPrimaryWithSecondary. ממשקי ה-API החדשים מגדירים מתי פעילויות של placeholder מסתיימות ואיך פעילויות משויכות בהטמעת פעילות צריכות להתנהג. (I64647)

תיקוני באגים

  • הוספנו את WindowAreaController ואת ממשקי ה-API כדי להפעיל את מצב RearDisplay, שמאפשר להעביר את החלון הנוכחי לתצוגה שמותאמת למצלמה האחורית. (I388ab)

גרסה ‎1.1.0-alpha03

‫27 ביולי 2022

androidx.window:window-*:1.1.0-alpha03 מופץ. גרסה ‎1.1.0-alpha03 מכילה את השמירות האלה.

תכונות חדשות

  • מעדכנים את ערכי ברירת המחדל של כללי ההטמעה.

שינויים ב-API

  • עדכון ערכי ברירת המחדל של מאפייני כלל ההטמעה. (Ic4d35)

גרסה ‎1.1.0-alpha02

‫11 במאי 2022

androidx.window:window-*:1.1.0-alpha02 מופץ. גרסה ‎1.1.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

  • השקת ספריות המתאמים לתמיכה ב-Java וב-RxJava.

גרסה ‎1.1.0-alpha01

‫11 במאי 2022

androidx.window:window-*:1.1.0-alpha01 מופץ. גרסה ‎1.1.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • הפצת מתאמים לתמיכה ב-Java וב-RxJava

גרסה ‎1.1.0-alpha01

‫20 באפריל 2022

androidx.window:window:1.1.0-alpha01 מופץ. גרסה ‎1.1.0-alpha01 מכילה את השמירות האלה.

תכונות חדשות

  • תוקן באג שגרם לכך שהעברת אפליקציה לרקע הפסיקה את הפעלת התכונות של הקיפול.
  • הרחבה של ActivityEmbedding API הניסיוני.

שינויים ב-API

  • ‫API ציבורי לבדיקה אם פעילות מסוימת מוטמעת. (I39eb7)

תיקוני באגים

  • הוספת ממשקי API להתאמה אישית של התנהגות הסיום של קונטיינרים בחלוקות פעילות (I1a1e4)
  • נוספה אפשרות הגדרה חדשה לכללים של פיצול פעילויות. (Iec6af)

גירסה 1.0

גרסה 1.0.0

‫26 בינואר 2022

androidx.window:window-*:1.0.0 מופץ. גרסה 1.0.0 מכילה את השמירות האלה.

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

  • תמיכה בטלפונים מתקפלים דרך WindowInfoTracker ו-FoldingFeature. ‫WindowMetricsCalculator כדי לעזור בחישוב WindowMetrics הנוכחי.

גרסה ‎1.0.0-rc01

15 בדצמבר 2021

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

תכונות חדשות

  • הוספנו תמיכה בטלפונים מתקפלים דרך WindowInfoTracker.
  • הוספת שיטות לחישוב WindowMetrics הנוכחי והמקסימלי.
  • הוספת ממשקי API תומכים לבדיקה.

גרסה ‎1.0.0-beta04

17 בנובמבר 2021

androidx.window:window-*:1.0.0-beta04 מופץ. גרסה ‎1.0.0-beta04 מכילה את השמירות האלה.

תכונות חדשות

  • שינוי השם של WindowInfoRepository ל-WindowInfoTracker.
  • הופכים את Activity לתלות מפורשת בשיטה של WindowInfoTracker.
  • מוסיפים TestRule פשוט ל-WindowMetricsCalculator כדי לתמוך במפתחים שמשתמשים ב-Robolectric.

שינויים ב-API

  • חילוץ תוספים (I25a5f)
  • הוספת isEmpty ב-ActivityStack ‏ (I5a4e6)
  • שינוי השם של WindowInfoRepository ל-WindowInfoTracker.
    • מעדכנים את יחסי התלות של java/rxjava/testing כך שיתאימו. (I0da63)
  • מוסיפים כלל בדיקה עבור WindowMetricsCalculator פשוט. (Ibacdb)

גרסה ‎1.0.0-beta03

‫27 באוקטובר 2021

androidx.window:window-*:1.0.0-beta03 מופץ. גרסה ‎1.0.0-beta03 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו ממשקי API ניסיוניים להטמעת פעילויות. גרסת הפריסה הראשונית הזו מאפשרת להציג שתי פעילויות זו לצד זו.

שינויים ב-API

  • הסרנו את API הנוכחי של מדדי החלון כי אנחנו לא יכולים לספק אותו בצורה מדויקת. במקומו צריך להשתמש ב-WindowMetricsCalculator ‏ (Icda5f)
  • בוצע עדכון של ה-API של התוספים. (Ica92b)
  • הוספנו ממשק לתכונה חדשה שמאפשרת להטמיע פעילויות ולהציג אותן זו לצד זו בחלון המשימה הראשי. (I5711d)
  • הוסתרות המחלקות WindowMetrics ו-WindowLayoutInfo. במקומן צריך להשתמש בממשקי ה-API לבדיקה. (I5a1b5)
  • הוספת API ליצירת אובייקטים מזויפים של WindowLayoutInfo. (I4a2fd)

תיקוני באגים

גרסה ‎1.0.0-beta02

‫1 בספטמבר 2021

androidx.window:window-*:1.0.0-beta02 מופץ. גרסה ‎1.0.0-beta02 מכילה את השמירות האלה.

תכונות חדשות

  • מוסיפים הערה ניסיונית כדי להוסיף הערות ל-API ניסיוני. (I9f1b6)
  • מוסיפים שיטת בדיקה כדי ליצור FoldingFeature לבדיקה שמקבלת Rect. כך יהיה קל יותר לבדוק כשמשתמשים ב-Robolectric, בניגוד לפעילות בפועל. (Id1cca)

גרסה ‎1.0.0-beta01

‫18 באוגוסט 2021

androidx.window:window-*:1.0.0-beta01 מופץ. גרסה ‎1.0.0-beta01 מכילה את השמירות האלה.

תכונות חדשות

  • הוסרו קבועים ישנים ו-FoldingFeature הפך לממשק.

שינויים ב-API

  • הסרת קבועים ישנים והפיכת FoldFeature לממשק. (I9a2d5)

תיקוני באגים

  • ספריות שתלויות בספרייה Test Core שודרגו לגרסה 1.4.0 ועכשיו הן פועלות עם פלטפורמת Android בגרסה S. (I88b72, b/189353863)

גרסה ‎1.0.0-alpha10

4 באוגוסט 2021

androidx.window:window-*:1.0.0-alpha10 מופץ. גרסה ‎1.0.0-alpha10 מכילה את השמירות האלה.

תכונות חדשות

  • משנים את השם של WindowInfoRepo ל-WindowInfoRepository ומתאימים את המחלקות או הקבצים התואמים.
  • המרת מדדים של החלון הנוכחי ל-Flow ב-WindowInfoRepository, כי הערך משתנה לאורך זמן.
  • שינוי השם של WindowInfoRepoJavaAdapter ל-WindowInfoRepoCallbackAdapter
  • הוספת שיטת עזר ליצירת אובייקטים של FoldingFeature לבדיקה
  • עדכון חבילות כדי לקבץ כיתות על סמך התכונה שהן תומכות בה.

שינויים ב-API

  • משנים את השם של ActivityExt ל-ActivityExtensions משנים את השם מ-Repo ל-Repository. (I61a16)
  • מעדכנים חבילות לכיתות. (I23ae2)
  • הסרת WindowMetrics מ-WindowInfoRepo ‏ (I24663)
  • הסרה של WindowManager ושימוש ב-WindowInfoRepo
    • הופכים את WindowBackend לפנימי. (I06d9a)
  • המרת מדדי חלונות ל-Flow.
    • שינוי השם של המתאם java ל-WindowInfoRepoCallbackAdapter
    • מסירים את callbackFlow כדי שלא ייעשה יותר שימוש בממשקי API ניסיוניים. (Ia4d15)
  • הוספת שיטת עזר ליצירת תכונות תצוגה לבדיקה.
    • שינוי מ-occlusionMode ל-occlusionType ‏ (If4cff)

תיקוני באגים

  • תוקנה שגיאת ProGuard שבה ספריית הליבה הוסרה.
  • תוקנה שגיאה שבה WindowLayoutInfo לא הועבר למנויים נוספים.
  • תוקנה שגיאה שגרמה לכך ששינויים בהגדרות לא הפעילו עדכונים של תכונת הקיפול.

גרסה ‎1.0.0-alpha09

‫30 ביוני 2021

androidx.window:window-*:1.0.0-alpha09 מופץ. גרסה ‎1.0.0-alpha09 מכילה את השמירות האלה.

תכונות חדשות

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

שינויים ב-API

  • הוספת שיטת עזר ליצירת תכונות תצוגה לבדיקה. (I3cf54)
    • השינוי מ-occlusionMode ל-occlusionType.

תיקוני באגים

  • פליטת ערך ראשוני כשמוסיפים כמה צרכנים של זרמי הנתונים.

גרסה ‎1.0.0-alpha08

‫16 ביוני 2021

androidx.window:window-*:1.0.0-alpha08 מופץ. גרסה ‎1.0.0-alpha08 מכילה את השמירות האלה.

תכונות חדשות

  • הוספנו ארטיפקט לבדיקה כדי להקל על הבדיקה כשמשתמשים ב-WindowInfoRepository. משתמשים ב-WindowInfoRepository כדי לקבל מידע על DisplayFeatures ועל WindowMetrics. (I57f66, Ida620)

גרסה ‎1.0.0-alpha07

‫2 ביוני 2021

androidx.window:window-*:1.0.0-alpha07 מופץ. גרסה ‎1.0.0-alpha07 מכילה את השמירות האלה.

תכונות חדשות

  • העברת ספריית הליבה של חלונות ל-Kotlin. מעכשיו נשתמש בקורוטינות ובפונקציות השהיה כדי לחשוף נתונים אסינכרוניים.
  • הוספת WindowInfoRepo כנקודת האינטראקציה העיקרית לקבלת WindowMetrics והזרם של WindowLayoutInfo.
  • פריט מידע חדש של window-java שחושף ממשקי API ידידותיים ל-Java כדי לרשום ולבטל רישום של קריאות חוזרות (callback).
  • window-rxjava2 ו-window-rxjava3 הם ארטיפקטים חדשים שחושפים ממשקי API מותאמים של RxJava.

שינויים ב-API

  • מוסיפים את WindowServices כדי לספק יחסי תלות באופן אחיד.
    • הוספת API מבוסס-שגרת המשך (coroutine) לצריכת מידע על פריסת חלונות. (Iab70f)
  • העברת ספריית הליבה של מנהל החלונות ל-Kotlin. (Icca34)

תיקוני באגים

  • הוספת מחלקת נתונים חדשה שמייצגת גבולות של תכונות. (I6dcd1)

גרסה ‎1.0.0-alpha06

‫5 במאי 2021

androidx.window:window:1.0.0-alpha06 מופץ. גרסה ‎1.0.0-alpha06 מכילה את השמירות האלה.

תכונות חדשות

  • התחלנו את ההעברה שלנו ל-Kotlin ונסיימה במהדורה הבאה.
  • המאפיין DeviceState הוסר מה-API הציבורי. במקומו צריך להשתמש ב-FoldingFeature.
  • הסרנו את STATE_FLIPPED מהמצבים של FoldingFeature כי הוא לא נתמך כרגע באף תרחיש שימוש.
  • הסרנו גם ממשקי API אחרים שיצאו משימוש.

שינויים ב-API

  • הוספת Kotlin כתלות.
    • העברת ספריית הליבה ל-Kotlin. (Idd995)
  • הכלי לבניית אתרים DisplayFeature הוסר. (I61fa4)
  • הוסר DeviceState מ-API ציבורי, במקומו צריך להשתמש ב-FoldingFeature. (Id6079)
  • הסרת קריאה חוזרת (callback) של מצב המכשיר מתוספים. (I5ea83)
  • הסרת STATE_FLIPPED מ-FoldingFeature. (I9c4e1)
  • הסרה של שיטות הרשמה שיצאו משימוש. (Ib381b)

גרסה ‎1.0.0-alpha05

‫24 במרץ 2021

androidx.window:window:1.0.0-alpha05 מופץ. גרסה ‎1.0.0-alpha05 מכילה את השמירות האלה.

תכונות חדשות

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

אנחנו מסירים את שיטות הקריאה הסינכרוניות מ-WindowManager. שיטות קריאה סינכרוניות עלולות לגרום לשגיאות כי יש בהן תנאי מירוץ מרומז. רושמים מאזינים וקריאות חוזרות (callback) כדי לקבל עדכונים לגבי WindowLayoutInfo.

שינויים ב-API

  • הוספת שיטות נוחות לעבודה עם FoldingFeatures ‏ (Ie733f)
  • הסרה של שיטות קריאה סינכרוניות מ-WindowManager ‏ (I96fd4)

גרסה ‎1.0.0-alpha04

10 במרץ 2021

androidx.window:window:1.0.0-alpha04 מופץ. גרסה ‎1.0.0-alpha04 מכילה את השמירות האלה.

תכונות חדשות

  • תוקן באג שגרם לכך שלא הופקה WindowLayoutInfo אם לא הייתה הטמעה של OEM. עכשיו אנחנו שולחים WindowLayoutInfo ריק.
  • תוקן באג שגרם לכך שהמצב לא התעדכן בצורה תקינה אם מצב הציר השתנה בזמן שהאפליקציה פעלה ברקע. עכשיו המצב צריך להיות עקבי.
  • עדכון קובצי ה-proguard שלנו כדי להתעלם מאזהרות של תלות בזמן ריצה.

תיקוני באגים

  • פליטת ערך ריק כשספריית ה-OEM חסרה. (Ide935)

גרסה ‎1.0.0-alpha03

18 בפברואר 2021

androidx.window:window:1.0.0-alpha03 מופץ. גרסה ‎1.0.0-alpha03 מכילה את השמירות האלה.

תכונות חדשות

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

תיקוני באגים

  • פליטת ערך ריק כשספריית ה-OEM חסרה. (Ide935)

גרסה ‎1.0.0-alpha02

‫27 בינואר 2021

androidx.window:window:1.0.0-alpha02 מופץ. גרסה ‎1.0.0-alpha02 מכילה את השמירות האלה.

תכונות חדשות

  • הוצאנו משימוש כמה ממשקי API כדי לייעל את ממשקי ה-API ולצמצם את מספר הטעויות. דוגמאות בולטות הן הסרת פעולות קריאה סינכרוניות מ-WindowManager והוצאה משימוש של DeviceState. פעולות קריאה סינכרוניות עלולות לגרום לתנאי מירוץ ולממשק משתמש שגוי.

  • המרנו את DisplayFeature לממשק שתכונות אחרות יטמיעו מעכשיו והלאה. התכונה הראשונה שלנו היא FoldingFeature, שמייצגת עכשיו קיפול מסך או ציר. הוא מכיל גם את מצב הציר במקום DeviceState.

  • ה-API‏ WindowMetrics הושק ב-Android 11 כדי לספק למפתחים דרך פשוטה לשאילתות לגבי מדדים של חלון, למשל המיקום והגודל שלו במסך וכל שוליים פנימיים של המערכת. הוספנו לגרסה הזו תמיכה לאחור ב-API, כדי שמפתחים יוכלו להשתמש ב-WindowMetrics ולהמשיך לתמוך בגרסאות ישנות יותר של Android. אפשר לקבל את WindowMetrics דרך ממשקי ה-API‏ WindowManager#getCurrentWindowMetrics() ו-WindowManager#getMaximumWindowMetrics()‎.

שינויים ב-API

  • הוצאה משימוש של ממשקי API שיוסרו בגרסת האלפא הבאה (Ib7cc4)
  • עדכונים ב-ExtensionInterface כדי לאשר הפניות מפורשות לפעילות. (I07ded)
  • הסבר על WindowMetrics API. (I3ccee)
  • הסרת שיטות קריאה סינכרוניות מ-WindowManager ‏ (I69983)
  • הגנה על החבילה ExtensionWindowBackend. (Ied208)

תיקוני באגים

  • עדכון ממשקי ה-API של ExtensionInterface כדי לקבל הקשרים חזותיים. (I8e827)

External Contribution

  • מיזוג של DeviceState ו-WindowLayoutInfo כדי להקל על הגישה לנתונים. (Id34f4)

גרסה ‎1.0.0-alpha01

‫27 בפברואר 2020

androidx.window:window:1.0.0-alpha01 וגם androidx.window:window-extensions:1.0.0-alpha01 מופצים. גרסה 1.0.0-alpha01 מכילה את השמירות האלה. זו הגרסה הראשונה של ספריית Window Manager.

תכונות חדשות

  • DisplayFeature: ה-API החדש הזה מזהה שיבושים במשטחים השטוחים הרציפים של המסך, כמו צירים או קיפולים
  • DeviceState: ה-API החדש הזה מספק את המצב הנוכחי של הטלפון מתוך רשימה של מצבים מוגדרים (לדוגמה, CLOSED,‏ OPENED,‏ HALF_OPENED וכו').