מנהל החלונות

הספרייה 'Jetpack windowManager' מפעילה את האפליקציה למפתחים שיתמכו בגורמי צורה של מכשירים חדשים ובסביבות מרובות חלונות. הספרייה מספקת פלטפורמת API משותפת לגרסאות 14 ואילך של API. הגרסה הראשונית מטרגטת מכשירים מתקפלים, אבל הגרסאות הבאות יתבססו על יותר סוגי תצוגה ותכונות של חלונות.
העדכון האחרון גרסה יציבה מועמד לפרסום גרסת בטא גרסת אלפא
4 בספטמבר 2024 1.3.0 - - 1.4.0-alpha02

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

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

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

Groovy

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

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

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

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

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

Kotlin

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

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

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

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

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

משוב

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

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

מקורות מידע בנושא מעקב אחר בעיות אפשר לקבל מידע נוסף.

גרסה 1.4

גרסה 1.4.0-alpha02

4 בספטמבר 2024

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

תכונות חדשות

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

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

שינויים ב-API

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

גרסה 1.4.0-alpha01

7 באוגוסט 2024

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

תכונות חדשות

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

שינויים ב-API

  • WindowInfoTracker#supportedPostures API חדש:

    • ממשק API שקובע אם המכשיר תומך במצב TableTop במכשירים מתקפלים. הוספה של 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 (הועבר מ-SplitController#inאטיםTopViewSplitAttributes)
    • ActivityEmbeddingController#getActivityStack
    • SplitController#updateSplitAttributes
  • הוספת ממשקי API לגרסה 1.4 (I56774)

תיקוני באגים

  • תיקון באג במכשירים מסוימים שבהם הסטטוס 'לא זמין' יוחזר במקום למצב פעיל כשסשן פעיל.
  • הסרת התמיכה ב-transferActivityToWindowArea במכשירים עם vendorApiLevel מתוך 2 בגלל תמיכה לא יציבה ב-API.
  • הצגת ממשק API להפעלת גרירה למסך מלא עבור מחיצת גרירה ניתנת לגרירה של הטמעת פעילות. (I645c9)
  • אפליקציות יכולות להשבית אנימציות של ActivityEmbedding באמצעות פרמטרים של אנימציה עבור SplitAttributes. (Idc01a)
  • הוסרה חלוקה ידנית של הגישה לממשקי API של פלטפורמות חדשות, כי זה קורה באופן אוטומטי באמצעות בניית מודלים של API כשמשתמשים ב-R8 עם AGP 7.3 ואילך (למשל R8 גרסה 3.3) ובכל גרסאות ה-build כשמשתמשים ב-AGP 8.1 ואילך (למשל D8 גרסה 8.1). ללקוחות שלא משתמשים ב-AGP מומלץ לעדכן לגרסה D8 ואילך. למידע נוסף, מומלץ לעיין במאמר הזה. (Ia60e0, b/345472586)
  • מתן הרשאה לתוספים להשתמש בפרמטרים של אנימציה עבור SplitAttributes כדי שהמכשיר יוכל להשתמש בהם למעברי אנימציה. (Iede00)
  • הסתרת ממשקי API של שכבת-על (Ic4251)
  • הצגת ממשקי API להגדרת המחיצה הקבועה או ניתנת לגרירה של הפיצול (Ia7a78)
  • נוספה צפיפות ל-WindowMetrics (Id6723)
  • כדי לקבל את SupportedPostures צריך להוסיף API. (If557a)
  • הסרת setLaunchingActivityStack מה-API הניסיוני (I191cf)
  • הצגה של ActivityEmbeddingController#embeddedActivityWindowInfo (I24312)
  • הוצאה משימוש של #getToken והוספת #getActivityStackToken (Ie0471)
  • הצגת מתאם קריאה חוזרת (callback) ל-embeddedActivityWindowInfo Flow API (Ida77f)
  • הוספת מתאם לקריאה חוזרת (callback) ל-overlayInfo Flow API (I7264f)
  • הוספה של WindowSdkExtensionsRule כדי לבטל את extensionsVersion לצורך בדיקה. (Ifb928)
  • - העברה של #setLaunchingActivityStack לחבילה בהתאם לשימושים ב-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)
  • - הוספת ממשקי API מובילים של androidx.Window/ביטול ההצמדה של ActivityStack
    • מתבצע עדכון של אפליקציית ההדגמה כדי לאפשר הצמדה/ביטול ההצמדה של 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 בהתאמה אישית ובשימוש בהן. (מזהה 1143)

תיקוני באגים

  • תוקנה הבעיה KotlinReflectionInternalError שנגרמה כתוצאה מהגנה על משתמשים שמסירה קבצים מסוימים בהטמעות מסוימות במכשירים. (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 של ממשקי window size Class API כדי לשפר את הגמישות למפתחים שרוצים להשתמש בקטגוריות מידות משלהם.

שינויים ב-API

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

תיקוני באגים

  • תיקון חריג כאשר ערך של מספר ממשי (float) נחתך ל-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.
  • מערכת WindowInfoTracker מדווחת על כיווץ של נתוני התכונות ל-UiContext פרמטרים.
  • חושפים את גרסת התוספים במכשיר.
  • משתנים קבועים של 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.
  • מערכת WindowInfoTracker מדווחת על כיווץ של נתוני התכונות ל-UiContext פרמטרים.
  • חושפים את גרסת התוספים במכשיר.

גרסה 1.2.0-rc01

1 בנובמבר 2023

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

תכונות חדשות

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

גרסה 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

  • יש להוסיף הערות לגרסת תוסף ה-SDK של החלון הנדרש בממשקי API ציבוריים.
    • צריך להסיר את isXXXSupported ברכיב הטמעת הפעילות. (Ie3dae)
  • כדי לדווח על גרסת התוסף במכשיר, צריך להציג את WindowSdkExtensions.
    • צריך להציג את RequiresWindowSdkExtension כדי להוסיף הערות לגרסת התוסף המינימלית הנדרשת. (I05fd4)
  • הופך את WindowAreaInfo#getCapability ל-null. (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.
  • מערכת WindowInfoTracker מדווחת על כיווץ של נתוני התכונות ל-UiContext פרמטרים.

שינויים ב-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)
  • הוצאה משימוש של removeSplitCallback/add
    • העברה של removeSplitCallback/add אל 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, כולל ה-API מבוסס-ההקשר.

שינויים ב-API

  • יש להוסיף באופן קבוע לקיפול מרכזי שלא צוין. (I7530c)

תיקוני באגים

  • צריך לעדכן את WindowLayoutInfoPublishRule כדי שיתמוך בשינויים מברירת המחדל של WindowLayoutInfo ב-Context. (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. מומלץ להשתמש באמולטור כדי לקבל תוצאות מדויקות.
  • יש לייצב את ממשקי ה-API לבדיקה עבור 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 נוספה כדי לספק קבועי מצבים בשביל הנכס splitSupportStatus.
  • ארגון מחדש של SplitController לכמה מודולים:
    • מודול ActivityEmbeddingController לממשקי API שקשורים ל-Activity או ל-ActivityStack.
    • הטווח isActivityEmbedded הועבר מהיחידה SplitController אל ActivityEmbeddingController.
    • מודול RuleController לפעולות הקשורות ל-EmbeddingRule:
    • ממשקי ה-API של SplitController הוסרו:
    • clearRegisteredRules()
    • getSplitRules()
    • initialize()
    • registerRule()
    • unregisterRule()
    • נוספו RuleController ממשקי API:
    • addRule() – הוספת כלל או עדכון הכלל עם אותו תג.
    • removeRule() – הסרת כלל מאוסף הכללים הרשומים.
    • setRules() — יוצר אוסף של כללים.
    • clearRules() – הסרה של כל הכללים הרשומים.
    • parseRules() – ניתוח כללים מההגדרות של כללי XML.
  • בכל המודולים נדרש הקשר כדי לאתחל באמצעות method #getInstance(), כולל:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • נוספה המחלקה EmbeddingAspectRatio כדי להגדיר קבועי התנהגות דמויי טיפוסים הקשורים ליחס גובה-רוחב של תצוגה.
  • נוספה המחלקה 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() כדי לספק מידע נוסף שקשור לפיצול.

פריסת חלון

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

שלבים להעברה

  • כדי להפעיל הטמעת פעילויות להצגת פעילויות בפיצולים, האפליקציות חייבות להוסיף את המאפיין PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED לתג <application> של המניפסט: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> הפעולה הזו מאפשרת למערכת לבצע מראש אופטימיזציה של התנהגויות הפיצול באפליקציה.
  • יחס גובה-רוחב של SplitInfo
    • בודקים אם החלוקה הנוכחית בערימה: 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 נכסים:
    • minWidth ו-minSmallestWidth משתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) או פשוט לחלק את minWith בפיקסלים ב-displayMetrics#density.
  • יש להעביר את קבועי ההתנהגות של הסיום ל-FinishBehavior קבועי מחלקה דמויי טיפוסים בני מנייה (enum):
    • 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 העברות:
    • 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 לוקחים את הקבועים FinishBehavior דמויי enum. פרטים נוספים זמינים בקטע 'העברות SplitRule'.
    • צריך להשתמש בשיטת setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) כדי להציג פיצולים במכשירים בפריסה לאורך.
  • SplitPlaceholder.Builder העברות:
    • מכיל רק פרמטרים מסוג filters ו-placeholderIntent. מאפיינים אחרים עוברים למגדירים. לפרטים נוספים, אפשר לעיין במאמר בנושא 'העברות SplitPairRule.Builder'.
    • setFinishPrimaryWithPlaceholder לוקחת את הקבועים FinishBehavior דמויי טיפוסים בני מנייה (enum). פרטים נוספים זמינים בקטע 'העברות 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 נוספה כדי לספק קבועי מצבים בשביל הנכס splitSupportStatus.
  • ארגון מחדש של SplitController לכמה מודולים:
    • מודול ActivityEmbeddingController לממשקי API שקשורים ל-Activity או ל-ActivityStack.
    • הטווח isActivityEmbedded הועבר מהיחידה SplitController אל ActivityEmbeddingController.
    • מודול RuleController לפעולות הקשורות ל-EmbeddingRule:
    • ממשקי ה-API של SplitController הוסרו:
      • clearRegisteredRules()
      • getSplitRules()
      • initialize()
      • registerRule()
      • unregisterRule()
    • נוספו RuleController ממשקי API:
      • addRule() – הוספת כלל או עדכון הכלל עם אותו תג.
      • removeRule() – הסרת כלל מאוסף הכללים הרשומים.
      • setRules() — יוצר אוסף של כללים.
      • clearRules() – הסרה של כל הכללים הרשומים.
      • 'parseRules() ' – 'מנתח כללים' מההגדרות של כללי XML.
  • בכל המודולים נדרש הקשר כדי לאתחל באמצעות method #getInstance(), כולל:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • נוספה המחלקה EmbeddingAspectRatio כדי להגדיר קבועי התנהגות דמויי טיפוסים הקשורים ליחס גובה-רוחב של תצוגה.
  • נוספה המחלקה SplitAttributes כדי להגדיר את הפריסה המפוצלת.
  • נוספו פונקציות המחשבון של SplitAttributes ל-SplitController כדי להתאים אישית פריסות מפוצלות:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • isSplitAttributesCalculatorSupported() כדי לבדוק אם יש תמיכה בממשקי ה-API של SplitAttributes מנות במכשיר
  • נוסף שדה 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() כדי לספק מידע נוסף שקשור לפיצול.

פריסת חלון

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

שלבים להעברה

  • כדי להפעיל הטמעת פעילויות להצגת פעילויות בפיצולים, האפליקציות חייבות להוסיף את המאפיין PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED לתג <application> של המניפסט: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> הפעולה הזו מאפשרת למערכת לבצע מראש אופטימיזציה של התנהגויות הפיצול באפליקציה.
  • יחס גובה-רוחב של SplitInfo
    • בודקים אם החלוקה הנוכחית בערימה: 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 נכסים:
    • minWidth ו-minSmallestWidth משתמשים עכשיו ביחידות dp במקום בפיקסלים. אפליקציות יכולות להשתמש בקריאה הבאה: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) או פשוט לחלק את minWith בפיקסלים ב-displayMetrics#density.
  • יש להעביר את קבועי ההתנהגות של הסיום ל-FinishBehavior קבועי מחלקה דמויי טיפוסים בני מנייה (enum):
    • 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 העברות:
    • 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 לוקחים את הקבועים FinishBehavior דמויי enum. פרטים נוספים זמינים בקטע 'העברות SplitRule'.
    • צריך להשתמש בשיטת setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) כדי להציג פיצולים במכשירים בפריסה לאורך.
  • SplitPlaceholder.Builder העברות:
    • מכיל רק פרמטרים מסוג filters ו-placeholderIntent. מאפיינים אחרים עוברים למגדירים. לפרטים נוספים, אפשר לעיין במאמר בנושא 'העברות SplitPairRule.Builder'.
    • setFinishPrimaryWithPlaceholder לוקחת את הקבועים FinishBehavior דמויי טיפוסים בני מנייה (enum). פרטים נוספים זמינים בקטע 'העברות 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)
  • הגדרת ממשק ה-API של WindowLayoutInfo להקשר ניסיוני. (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 (Ide534)
  • SplitRule עכשיו ב-maxAspectRatioInPortrait/Landscape. אפשר לפצל פעילויות רק כאשר יחס הגובה-רוחב של גבולות ההורה קטן או שווה ל-maxAspectRatio המבוקש. (Ia5990)
  • שינוי RuleController#parseRules לערך סטטי (I785df)
  • שיפור ממשקי ה-API סביב הטמעת פעילות
    1. התאימו את השמות של ה-API – אפשר להשתמש בהוספה/הסרה של מספר מופעים:
    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() לאחר השינוי הזה: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) (Ib3967)
  • משפרים את ממשקי ה-API של SplitRule:
    1. יש להשתמש במידות מינימליות ב-DP במקום בפיקסלים עבור SplitRule.
    2. ארגון מחדש (Refactoring) בשביל 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.
  • צריך לעדכן את SplitPlaceholderFinishBehavior כדי לא לסיים את הגדרת ה-placeholder. השלמת ה-placeholder גרמה להתנהגות מבלבלת.

שינויים ב-API

  • צריך להגדיר את ערך isEmpty כציבורי כדי להחליף את isEmpty כיפי.
  • שינוי השם של ActivityStack פעילויות פרמטר ל-activitiesInProcess. (Ia5055)
  • צריך להסיר את ActivityFilter#matchesClassName ואת ActivityFilter#matchesClassNameOrWildCard כי הם מבלבלים.
  • מוסיפים את ActivityFilter#componentName abd ActivityFilter#intentAction כדי לאפשר למתקשר להבחין בין מסננים שונים (I41f22)
  • הסרת ממשקי ה-API של @Deprecated מה-API הניסיוני (I216b3)
  • הסרה של @ExperimentalWindowApi לממשקי API של הטמעת פעילות (I69ebe)
  • הסתרת ה-constructor של ActivityRule, צריך להשתמש ב-builder במקום זאת. (If4eb6)
  • אפשר להוסיף ממשקי API כדי לבדוק אם פעילות מסוימת שייכת לActivityFilter. (Ia43cf)
  • עדכון קובצי API כך שישקפו שינויים במחלקות WindowMetrics ו-WindowMetricsCalculatorCompat (I667fe)
  • עדכון ActivityEmbedding של הנכס Javadoc and class name (Ia1386)
  • הוספת שמות תגים של נכסים מסוג ActivityEmbedding לשימוש בקובץ AndroidManifest.xml (Id1ad4)
  • נוספו ממשקי API חדשים SplitPlaceholderFinishBehavior ו-SplitPlaceholderRule.finishPrimaryWithPlaceholder, שמחליפים את SplitPlaceholderRule.finishPrimaryWithSecondary הקיים, שמגדיר מתי הפעילות של ה-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 מכילה את התחייבויות אלה.

תכונות חדשות

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

שינויים ב-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 כדי לחשב את מדדי windowMetric הנוכחי.

גרסה 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.
  • הגדרת הפעילות כתלות מפורשת של שיטה עבור windowInfoTracker.
  • ניתן להוסיף TestRule פשוט עבור windowMetrics סשן כדי לתמוך במפתחים שמשתמשים ב-Robolectric.

שינויים ב-API

  • תוספים לחילוץ (I25a5f)
  • add isEmpty in ActivityStack (I5a4e6)
  • משנים את השם של windowInfoRepository ל-windowInfoTracker.
    • עדכן יחסי תלות של JavaScript/rxjava/testing לצורך התאמה. (I0da63)
  • מוסיפים כלל לבדיקה של windowMetricsחשבון פשוט. (Ibacdb)

גרסה 1.0.0-beta03

27 באוקטובר 2021

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

תכונות חדשות

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

שינויים ב-API

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

תיקוני באגים

גרסה 1.0.0-beta02

1 בספטמבר 2021

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

תכונות חדשות

  • אפשר להוסיף הערה ניסיונית כדי להוסיף הערות לממשקי API ניסיוניים. (I9f1b6)
  • יש להוסיף שיטת בדיקה כדי ליצור תכונה מתקפלת לבדיקה שמקבלת 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 ל-WinInfoRepository ושנו את המחלקות או הקבצים המתאימים.
  • ממירים את מדדי החלון הנוכחי לזרימה ב-windowInfoRepository כי הערך משתנה עם הזמן.
  • שינוי השם של windowInfoRepoJavaAdapter ל-WinInfoRepoCallbackAdapter
  • הוספת שיטת סיוע ליצירת אובייקטים של FoldingFeature לבדיקה
  • לעדכן חבילות לכיתות קבוצתיות בהתאם לתכונה שבה הן תומכות.

שינויים ב-API

  • שינוי השם של ActivityExt ל-ActivityExtension שינוי ממאגר למאגר. (I61a16)
  • לעדכן חבילות של כיתות. (I23ae2)
  • הסרת windowMetrics מ-windowInfoRepo (I24663)
  • הסרת windowManager ושימוש ב-windowInfoRepo
    • הגדרת windowBackend לשימוש פנימי. (I06d9a)
  • המרת מדדי החלון ל'זרימה'.
    • שינוי השם של מתאם 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 מכילה את התחייבויות אלה.

תכונות חדשות

  • עוברים מקבועים של מספרים שלמים לטיפוסים של טיפוסים בני מנייה (enum) ללא גבולות.
  • צריך להוסיף כלי לבדיקה כדי ליצור תכונות של קיפול לבדיקה.

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

תיקוני באגים

  • משחררים ערך ריק כשספריית ה-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.

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

שינויים ב-API

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

תיקוני באגים

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

תרומה חיצונית

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

תכונות חדשות

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