WindowManager

Jetpack WindowManager kitaplığı, uygulama geliştiricilerin yeni cihaz form faktörlerini ve çoklu pencere ortamlarını desteklemesini sağlar. İlk sürüm, katlanabilir cihazları hedefliyor ancak gelecekteki sürümlerde daha fazla ekran türü ve pencere özelliği desteklenecek.
Son Güncelleme Kararlı Sürüm Sürüm Adayı Beta Sürümü Alfa Sürümü
16 Ekim 2024 1.3.0 - - 1.4.0-alpha05

Bağımlılıkları beyan etme

WindowManager'a bağımlılık eklemek için projenize Google Maven deposunu eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.

Uygulamanızın veya modülünüzün build.gradle dosyasına ihtiyacınız olan yapıların bağımlılıklarını ekleyin:

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")
}

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni bir kitaplık oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oy verebilirsiniz.

Yeni bir sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerine bakın.

Sürüm 1.4

Sürüm 1.4.0-alpha05

16 Ekim 2024

androidx.window:window-*:1.4.0-alpha05 yayınlanır. 1.4.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WindowMetrics öğesinden widthDp ve heightDp değerlerini almak için kolaylık işlevleri ekleyin.

API Değişiklikleri

  • WindowMetrics için widthDp ve heightDp ekler. (Ide026)
  • Deneysel WindowInsets API'yi kaldırın. (I68a71)
  • Sınır kontrolü yöntemi adlarını isAtLeast (Ib0ab7) olarak güncelleyin.

Sürüm 1.4.0-alpha04

2 Ekim 2024

androidx.window:window-*:1.4.0-alpha04 yayınlanır. 1.4.0-alpha04 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • WindowMetrics değerinden WindowSizeClass değerini hesaplayan bir yöntem eklendi. (874dba)
  • Anlaşılır olması için WindowSizeClass yöntemlerini containsWidthDp, containsHeightDp ve containsWindowSizeDp olarak değiştirin. (fa760d)
  • WindowAreaController'ü soyut taban sınıfına dönüştürün. (I90893)

Hata Düzeltmeleri

  • Test oluştururken göreli sınırlar için destek ekleyin FoldingFeature. (2e6b3e)
  • WindowSizeClass seçilirken karşılaşılan genel hatalar düzeltildi.

Sürüm 1.4.0-alpha03

18 Eylül 2024

androidx.window:window-*:1.4.0-alpha03 yayınlanır. 1.4.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WindowMetrics öğesinden WindowSizeClass almak için bir yardımcı program yöntemi ekleyin. (I83f1f)
  • isAtLeastcontainsBreakpoint olarak yeniden adlandırın. (I85b47)
  • computeWindowSizeClass işlevine kayan noktalı sayıları kullanarak aşırı yükleme ekleyin. (I3dcb2, b/364677934, b/364677802, b/364680886)

Hata Düzeltmeleri

  • Eksik kesme noktalarını varsayılan WindowSizeClass kesme noktası kümesine ekleyin.
  • Bazı durumlarda kompakt boyutların doğru şekilde seçilmemesine neden olan hata düzeltildi.

Sürüm 1.4.0-alpha02

4 Eylül 2024

androidx.window:window-*:1.4.0-alpha02 yayınlanır. 1.4.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

Özel WindowSizeClass desteği ekleyin.

  • Geliştiricilerin kendilerini kullanabilmeleri için WindowSizeClass sınıfının kurucusunu açın.
  • Geliştiricilerin bir dizi WindowSizeClass değerini işleyebilmesi için isAtLeast yardımcı yöntemleri ekleyin.
  • Kümedeki en iyi eşleşmeyi hesaplamak için Set<WindowSizeClass>'e bir uzantı işlevi ekleyin.
  • Android için önerilen kesme noktaları için sabitler ekleyin.
  • Android'in önerdiği kesme noktalarına karşılık gelen kesme noktası grubunu ekleyin.

API Değişiklikleri

  • WindowSizeClass için sınır yöntemi adlarını güncelleyin. (If89a6)
  • WindowSizeClass API'sini, gelecekte yeni kesme noktası değerlerinin eklenmesini destekleyecek şekilde güncelleyin. Mutlak sınırlar yerine alt sınırları kullanırız ve geliştiricilerin WindowSizeClass işlenirken alt sınır kontrollerini kullanmasını öneririz. Mevcut WindowWidthSizeClass ve WindowHeightSizeClass, daha fazla geliştirilmeyeceği için desteği sonlandırılacak. (I014ce)

Sürüm 1.4.0-alpha01

7 Ağustos 2024

androidx.window:window-*:1.4.0-alpha01 yayınlanır. 1.4.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • ActivityStack sabitleme, uygulamaların içeriği bir kapsayıcıya sabitlemesine ve içeriğin gezinme özelliğini diğer kapsayıcıdan izole etmesine olanak tanır.
  • Etkileşimli Bölme, uygulamaların bölünmüş bir sunudaki iki etkinlik arasında sabit veya sürüklenebilir bir bölme göstermesine olanak tanır.
  • Tam Ekran İletişim Kutusu Karartma, uygulamaların görev penceresinin tamamını veya yalnızca iletişim kutusunu karartmak için iletişim kutusunun karartma alanını belirtmesine olanak tanır.
  • Yerleşik Etkinlik Penceresi Bilgisi Geri Çağırma, uygulamaların yerleşik etkinlik penceresiyle ilgili güncellemeleri sürekli olarak almasına olanak tanır.
  • Animasyon arka planını yerleştirme, uygulamaların animasyon arka planını belirtmesine olanak tanır ve ActivityEmbedding kullanıldığında geçiş animasyon kalitesini artırır.
  • Geliştirilmiş ActivityStack Yönetimi, uygulamaların ActivityEmbedding kullanıldığında ActivityStacks üzerinde daha fazla kontrole sahip olmasını sağlar. Örneğin:
  • Belirli bir ActivityStack'te etkinlik başlatma
  • ActivityStack tamamlama

API Değişiklikleri

  • Yeni bir API WindowInfoTracker#supportedPostures:

    • Cihazın katlanabilir cihazlar için masaüstü modunu destekleyip desteklemediğini belirlemek üzere kullanılan bir API. WindowAreaSessionPresenter#getWindow eklendi
  • ActivityStack sabitlemeyi desteklemek için API'ler ekleyin:

    • SplitPinRule sınıf
    • SplitController#pinTopActivityStack
    • SplitController#unpinTopActivityStack
  • Etkileşimli bölücüyü etkinleştirmek ve yapılandırmak için API'ler ekleme

    • DividerAttributes sınıf
    • SplitAttributes.Builder#setDividerAttributes
  • İletişim kutuları için EmbeddingConfiguration ve DimAreaBehavior ayarlamak üzere API'ler ekleme

    • EmbeddingConfiguration sınıf
    • DimAreaBehavior sınıf
    • ActivityEmbeddingController#setEmbeddingConfiguration
  • Yerleşik etkinlik aralığı bilgi güncellemelerini almak için API'ler ekleme

    • EmbeddedActivityWindowInfo sınıf
    • ActivityEmbeddingController#embeddedActivityWindowInfo
  • İçe aktarma animasyonu arka planını ayarlamak için API ekleme

    • EmbeddingAnimationBackground
    • SplitAttributes.Builder#setAnimationBackground
  • ActivityStacks işlemini tamamlamak için API ekleyin

    • ActivityEmbeddingController#finishActivityStacks
  • Lansman ayarlamak için API ekleme ActivityStack

    • ActivityEmbeddingOptions#setLaunchingActivityStack
  • Aşağıdaki API'ler kararlı ve artık deneysel değildir:

    • ActivityEmbeddingController#invalidateVisibleActivityStacks (SplitController#invalidateTopVisibleSplitAttributes'ten taşındı)
    • ActivityEmbeddingController#getActivityStack
    • SplitController#updateSplitAttributes
  • 1.4 için API'ler ekleyin. (I56774)

Hata Düzeltmeleri

  • Oturum etkinken ACTIVE yerine UNAVAILABLE değerinin döndürüldüğü belirli cihazlardaki hatayı düzeltir.
  • Kararsız API desteği nedeniyle vendorApiLevel değeri 2 olan cihazlarda transferActivityToWindowArea desteği kaldırıldı.
  • Etkinlik yerleştirme için sürüklenebilir bölmelerde tam ekrana sürükleme özelliğini etkinleştirmek üzere API kullanıma sunuldu. (I645c9)
  • Uygulamaların, SplitAttributes için animasyon parametreleri aracılığıyla ActivityEmbedding animasyonlarını devre dışı bırakmasına izin verin. (Idc01a)
  • Yeni platform API'lerine erişim manuel olarak belirtilmemiştir. Bunun nedeni, AGP 7.3 veya sonraki sürümlerde R8 kullanıldığında (ör. R8 3.3 sürümü) ve AGP 8.1 veya sonraki sürümlerde tüm derlemelerde (ör. D8 8.1 sürümü) API modelleme aracılığıyla otomatik olarak gerçekleşmesidir. AGP kullanmayan müşterilerin D8 8.1 veya sonraki bir sürüme güncellemeleri önerilir. Daha fazla bilgi için bu makaleye göz atın. (Ia60e0, b/345472586)
  • Cihazın animasyon geçişleri için kullanabilmesi amacıyla uzantıların SplitAttributes için animasyon parametrelerini almasına izin verin. (Iede00)
  • Yer paylaşımı API'lerini gizleme (Ic4251)
  • Bölme için sabit veya sürüklenebilir bölücüyü yapılandırmak üzere API'ler kullanıma sunuldu (Ia7a78)
  • WindowMetrics (Id6723) kampanyasına yoğunluk eklendi
  • SupportedPostures almak için API ekleyin. (If557a)
  • setLaunchingActivityStack'ü deneysel API'den kaldırma (I191cf)
  • ActivityEmbeddingController#embeddedActivityWindowInfo'ü tanıtın (I24312)
  • #getToken öğesini kullanımdan kaldırın ve #getActivityStackToken öğesini ekleyin (Ie0471)
  • embeddedActivityWindowInfo iş akışı API'si için geri çağırma bağdaştırıcısı kullanıma sunuldu (Ida77f)
  • overlayInfo iş akışı API'si için geri çağırma bağdaştırıcısı ekleme (I7264f)
  • Test için extensionsVersion değerini geçersiz kılmak üzere WindowSdkExtensionsRule değerini tanıtın. (Ifb928)
  • - #setLaunchingActivityStackActivityOptionsCompat kullanımlarıyla uyumlu hale getirmek için Bundle'a taşıyın.
    • Kullanıcılar ActvityOptions yerine activityOptions.toBundle değerini iletmelidir.
    • #setLaunchingActivityStack(Activity) öğesini kaldırın. Kullanıcılar, ActivityStack almak için ActivityEmbeddingController#getActivityStac(Activity)'e geçmeli ve ActivityStack'yi #setLaunchingActivityStack'ye iletmelidir. (Ie0ccc)
  • - WM Jetpack ile uzantılar arasında iletişim kurmak için tanımlayıcı olarak ActivityStack.Token ve SpltInfo.Token'u tanıtın.
    • IBinder yerine jeton almak/iade etmek için API'leri kullanımdan kaldırın/değiştirin. (I12b24)
  • - ActivityEmbeddingController#invalidateVisibleActivityStacks ile tanışın
    • Özellik #invalidateVisibleActivityStacks ile birleştirildiği için SplitController#invalidateTopVisibleSplitAttributes'ü kaldırın (I02ef5)
  • - Yerleştirme yapılandırmasını ayarlamak için API ekleme. (I59a4a)
  • - En popüler ActivityStack androidx.Window API'lerini sabitleme/sabitlemeyi kaldırma
    • Demo uygulamayı, üstteki öğeleri sabitlemeye/sabitlemeyi kaldırmaya izin verecek şekilde güncelleme ActivityStack (I24dd3)
  • #finishActivityStacks ve ActivityEmbeddingOptions'u yeniden ekleme (Ic1ab3)
  • Kararsız API'leri kaldırın. (Ibc534, b/302380585)

Sürüm 1.3

1.3.0 sürümü

29 Mayıs 2024

androidx.window:window-*:1.3.0 yayınlanır. 1.3.0 sürümü bu taahhütleri içerir.

1.2.0 sürümünden beri yapılan önemli değişiklikler

  • Pencere Boyutu Sınıfları için Kotlin Çok Platformlu desteği.

Sürüm 1.3.0-rc01

14 Mayıs 2024

WindowManager Jetpack 1.3, WindowSizeClass özellikleri için Kotlin Çok Platformlu desteğinin yanı sıra birden fazla hata düzeltmesi sunar.

androidx.window:window-*:1.3.0-rc01 yayınlanır. 1.3.0-rc01 sürümü bu taahhütleri içerir.

Sürüm 1.3.0-beta02

1 Mayıs 2024

androidx.window:window-*:1.3.0-beta02 yayınlanır. 1.3.0-beta02 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • Özel WindowSizeClass oluşturma ve kullanma desteği kaldırıldı. (Id1143)

Hata Düzeltmeleri

  • Proguard'ın belirli cihaz uygulamalarında bazı dosyaları kaldırmasından kaynaklanan KotlinReflectionInternalError hatası düzeltildi. (I01b02)

Sürüm 1.3.0-beta01

3 Nisan 2024

androidx.window:window-*:1.3.0-beta01 yayınlanır. 1.3.0-beta01 sürümü bu taahhütleri içerir.

Sürüm 1.3.0-alpha03

6 Mart 2024

androidx.window:window-*:1.3.0-alpha03 yayınlanır. 1.3.0-alpha03 sürümü bu taahhütleri içerir.

API Değişiklikleri

  • WindowSizeClassUtil'ü daha odaklanmış yöntemlere bölün. (Ie9292)
  • WindowSizeClass#compute (I21355, b/324293374) öğesini geri yükleme

Hata Düzeltmeleri

  • Sağlanan bağlamın doğru şekilde sarmalanmamasına neden olan kilitlenmeyi düzeltir. (94d10ce , b/318787482)

Sürüm 1.3.0-alpha02

7 Şubat 2024

androidx.window:window-*:1.3.0-alpha02 yayınlanır. 1.3.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Kendi boyut sınıflarını kullanmak isteyen geliştiricilerin esnekliğini artırmak için Window Size Class API'lerin API yüzeyinde yapılan güncellemeler.

API Değişiklikleri

  • Genişlik seçiciye yükseklik kısıtlamaları ekleyin. (I23393)
  • Bir gruptan WindowSizeClass seçmek için yardımcı işlevler ekleyin. Geliştiricilerin kendi seçicilerini yazabilmesi için deneysel puanlama işlevleri ekleyin. Belirli bir sınır içindeki en geniş WindowSizeClass değerini seçmek için bir seçici uzantı işlevi ekleyin. (I0c944)
  • Özel durma noktaları eklenebilmesi için WindowSizeClass yapıcısını açın. (Ic1ff3)
  • Genişlik, yükseklik ve yoğunluktan boyut sınıfı oluşturmak için kolaylık işlevi ekleyin. (If67f4)

Hata Düzeltmeleri

  • Kayan noktalı değer 0 olarak kısaltıldığında istisna düzeltildi. (272ffac)

Sürüm 1.3.0-alpha01

15 Kasım 2023

androidx.window:window-*:1.3.0-alpha01 yayınlanır. 1.3.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini gösterin.
  • FoldingFeature oluşturmak için test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext kaynağından değer alırken geçersiz kılma işlemini raporluyor.
  • WindowInfoTracker, katlama özelliği verilerini UiContext parametrelerine raporlar.
  • Cihazdaki uzantı sürümünü gösterin.
  • Uygulama başına kullanıcı geçersiz kılma işlemleri için WindowProperties sabitleri:
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE: Sistemi, uygulamanın kullanıcıya yönelik en boy oranı uyumluluğu geçersiz kılma özelliğini devre dışı bıraktığını bilgilendirir.
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE: Uygulamanın, kullanıcının en boy oranı uyumluluğu geçersiz kılma ayarlarının tam ekran seçeneğini devre dışı bıraktığını sisteme bildirir.

Sürüm 1.2

Sürüm 1.2.0

15 Kasım 2023

androidx.window:window-*:1.2.0 yayınlanır. 1.2.0 sürümü bu taahhütleri içerir.

1.1.0 sürümünden bu yana yapılan önemli değişiklikler

  • Arka ekrana erişmek için deneysel pencere API'lerini gösterin.
  • FoldingFeature oluşturmak için test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext kaynağından değer alırken geçersiz kılma işlemini raporluyor.
  • WindowInfoTracker, katlama özelliği verilerini UiContext parametrelerine raporlar.
  • Cihazdaki uzantı sürümünü gösterin.

Sürüm 1.2.0-rc01

1 Kasım 2023

androidx.window:window-*:1.2.0-rc01 yayınlanır. 1.2.0-rc01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini gösterin.
  • FoldingFeature oluşturmak için test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext kaynağından değer alırken geçersiz kılma işlemini raporluyor.
  • WindowInfoTracker, katlama özelliği verilerini UiContext parametrelerine raporlar.
  • Cihazdaki uzantı sürümünü gösterin.

Sürüm 1.2.0-beta04

18 Ekim 2023

androidx.window:window-*:1.2.0-beta04 yayınlanır. 1.2.0-beta04 sürümü bu taahhütleri içerir.

API Değişiklikleri

Sürüm 1.2.0-beta03

20 Eylül 2023

androidx.window:window-*:1.2.0-beta03 yayınlanır. 1.2.0-beta03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Doğru şekilde çalışması için uzantıların belirli bir sürümüne ihtiyaç duyan API'ler için RequiresApi kontrolleri ekleyin.
  • Cihazdaki uzantı sürümünü göstermek için bir API ekleyin.

API Değişiklikleri

  • Herkese açık API'lerde gerekli pencere SDK uzantısı sürümünü ek açıklamayla belirtin.
    • Etkinlik Yerleştirme bileşenindeki isXXXSupported öğesini kaldırın. (Ie3dae)
  • Cihazda uzantı sürümünü bildirmek için WindowSdkExtensions kullanın.
    • Gerekli minimum uzantı sürümüne RequiresWindowSdkExtension ekleyerek ek açıklama ekleyin. (I05fd4)
  • WindowAreaInfo#getCapability değerini boş bırakılamaz hale getirir. (I17048)

Sürüm 1.2.0-beta01

26 Temmuz 2023

androidx.window:window-*:1.2.0-beta01 yayınlanır. 1.2.0-beta01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini gösterin.
  • FoldingFeature oluşturmak için test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamak için kullanılan test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext kaynağından değer alırken geçersiz kılma işlemini raporluyor.
  • WindowInfoTracker, katlama özelliği verilerini UiContext parametrelerine raporlar.

API Değişiklikleri

  • 1.3'teki kararlı sürümde API değişikliklerinin devam etmesine izin vermek için WindowArea API'lerini deneysel olarak işaretler (I857f5)
  • API dosyaları, uyumluluğu engellemeyle ilgili not eklemek için güncellendi (I8e87a, b/287516207)

Sürüm 1.2.0-alpha03

21 Haziran 2023

androidx.window:window-*:1.2.0-alpha03 yayınlanır. 1.2.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Desteği sonlandırılan API'leri API yüzeyinden kaldırma
  • Eşzamanlı ekranları desteklemek için API'ler ekleyin.
  • Zorunlu yeniden boyutlandırmayı geçersiz kılmak için bir mülk ekleyin.
  • Minimum en boy oranı geçersiz kılma özelliğini devre dışı bırakmak için mülk ekleyin.
  • Etkinlik yerleştirmeyle ilgili birim testini desteklemek için ActivityEmbeddingRule'ü stabilize edin.

API Değişiklikleri

  • Desteği sonlandırılan API'leri kaldırma (I18d39)
  • Eşzamanlı ekranlar için destek ekleyin. (Ifcbb0)

Hata Düzeltmeleri

  • Zorunlu yeniden boyutlandırma geçersiz kılma için kapsam dışında kalma uyumluluk özelliği ekleme (Ie7ab1)
  • SESSION_STATE_CONTENT_INVISIBLE öğesini uzantılar arayüzünden kaldırır. (I6ed19)
  • Etkinlik yerleştirmeyle ilgili birim testini desteklemek için ActivityEmbeddingRule'ü sabitleyin. (I8d6b6)
  • Minimum en boy oranı geçersiz kılma için kapsam dışında uyumluluk özelliği eklendi. (I66390)
  • Desteği sonlandırılan WindowArea API'lerini kaldırır (Ieb67c)
  • Yön isteği döngüsü özelliğini PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED olarak yeniden adlandırın. (Ie2fbd)
  • Pencere alanı oturum sabit adlarını günceller (I83675)
  • Algılandığında yön isteği döngüsünü yoksayan kapsam dışında kalma uyumluluğu özelliği ekleme (I0a7a2)
  • Özelliğin zaten etkin olduğunu belirtmek için WindowAreaComponent#STATUS_ACTIVE ekleyin. (I62bc3)
  • RearDisplayPresentationMode API'leri ekleme (I0401c)
  • Arka plan rengi API'si, kararlı sürüm için kaldırıldı. (I34c3e)
  • Pencere Alanı API'lerini gizleme. (I39de0)
  • SplitController içindeki SplitInfo öğesini geçersiz kılacak yöntemler ekleyin. SplitInfo ve ActivityStack için çift oluşturmak üzere test yöntemleri ekleyin. (Icd69f)
  • Etiketi ActivityRule.Builder için isteğe bağlı hale getirin. (Ib0b44)
  • RatioSplitType, ExpandContainersSplit ve HingeSplitType öğelerini kaldırın. Şu anda SplitType.
    • #splitEqually(), #expandContainers() ve #splitByHinge değerlerini sabit SplitType SPLIT_TYPE_EQUAL, SPLIT_TYPE_EXPAND ve SPLIT_TYPE_HINGE ile değiştirin
    • Menteşe bölme türünün yedek türünü ayarlama işlevini kaldırın. Geçerli cihaz veya pencere durumu nedeniyle menteşe bölme türü uygulanamıyorsa üst görev kapsayıcısını eşit olarak bölme işlemine geçilir. Yedek bölme türünü özelleştirmek için SplitController#setSplitAttributesCalculator simgesini kullanın. (Ifcc59)
  • add/removeSplitCallback desteğini sonlandırma
    • add/removeSplitCallback'i SplitControllerCallbackAdapter'ye taşıma
    • SplitInfo listesini almak için Flow desteği ekleyin (I7f1b6)
  • ActivityEmbeddingController (I42e9b) için test kuralı ekleme
  • ActivityOptionsCompat, ActivityEmbeddingOptions olarak yeniden adlandırılıyor (I89301)
  • Etkinlik yerleştirmenin kullanılıp kullanılamadığını belirtmek için splitSupportStatus ekleyin. (I10024)
  • DEFAULT değerini daha iyi temsil etmek için SplitAttributes.BackgroundColor değerini tanıtın. Opak olmayan animasyon arka plan renginin desteklenmediğini açıklayın. Bu nedenle, opak olmayan tüm renkler varsayılan olarak kabul edilir. Yani mevcut tema pencere arka plan rengi kullanılır. (Ic6b95)
  • alwaysAllow() ve alwaysDisallow() değerlerini ALWAYS_ALLOW ve ALWAYS_DISALLOW ile değiştirin. (I3057b)
  • SplitRule, SplitAttributes, SplitAttributesCalculator için API'ler ekleyin. (I92d23)
  • Test için ActivityStack oluşturmak üzere TestActivityStack ekleyin
    • Test için SplitInfo oluşturmak üzere TestSplitInfo ekleyin. (I8e779)
  • Geliştiricilerin özelleştirilmiş SplitAttributesCalculator'lerini doğrulayabilmesi için sahte SplitAttributesCalculatorParams oluşturmanın bir yolunu ekleyin (Id4a6e)
  • WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context) ve WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) ekleyin (I66c7f)

Sürüm 1.2.0-alpha02

7 Haziran 2023

androidx.window:window-*:1.2.0-alpha02 yayınlanır. 1.2.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Test API'sini, belirtilmemiş katlama özellikleri için sabit bir değere sahip olacak şekilde güncelleyin.
  • WindowLayoutInfoPublishRule ile geçersiz kılma işlemi, Context tabanlı API dahil olmak üzere windowLayoutInfo'ın tüm değerlerini geçersiz kılar.

API Değişiklikleri

  • Belirtilmemiş merkezden katlama özelliği için sabit ekleyin. (I7530c)

Hata Düzeltmeleri

  • WindowLayoutInfoPublishRule'ü, Context tabanlı WindowLayoutInfo'de geçersiz kılma işlemlerini destekleyecek şekilde güncelleyin. (I2037a)

Sürüm 1.2.0-alpha01

24 Mayıs 2023

androidx.window:window-*:1.2.0-alpha01 yayınlanır. 1.2.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

Etkinlik yerleştirme ve WindowLayoutInfoTracker ile ilgili API testlerini stabilize edin. ActivityEmbeddingRule sürümü kararlı sürüme yükseltildi. WindowMetricsCalculatorRule sürümü kararlı sürüme yükseltildi. Test için FoldingFeature oluşturmaya yönelik yardımcı program işlevleri kararlı sürüme geçirildi.

API Değişiklikleri

  • Etkinlik yerleştirmeyle ilgili birim testini desteklemek için ActivityEmbeddingRule'ü sabitleyin. (I8d6b6)
  • WindowMetrisCalculatorTestRule, JVM testleri için stub metriklerini etkinleştirerek kararlıdır. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.
  • JVM testini desteklemek için WindowLayoutInfo için test API'lerini stabilize edin. (Ie036e)
  • Test katlama özelliği değerleri için IntRange ekleyin. (I69f7d)

Sürüm 1.1

Sürüm 1.1.0

7 Haziran 2023

androidx.window:window-*:1.1.0 yayınlanır. 1.1.0 sürümü bu taahhütleri içerir.

1.0.0 sürümünden bu yana yapılan önemli değişiklikler

Etkinlik Yerleştirme

  • Uygulama manifest dosyasında <application> etiketinin boole özelliği olarak PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED eklendi.
  • Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için isSplitSupported desteği sonlandırıldı ve splitSupportStatus ile değiştirildi.
  • splitSupportStatus özelliği için durum sabitleri sağlamak üzere SplitController.SplitSupportStatus iç içe yerleştirilmiş sınıfı eklendi.
  • SplitController, birkaç modüle yeniden yapılandırıldı:
    • Activity veya ActivityStack ile ilgili API'ler için ActivityEmbeddingController modülü.
    • isActivityEmbedded, SplitController konumundan ActivityEmbeddingController konumuna taşındı.
    • EmbeddingRule ile ilgili işlemler için RuleController modülü:
    • Kaldırılan SplitController API'leri:
    • clearRegisteredRules()
    • getSplitRules()
    • initialize()
    • registerRule()
    • unregisterRule()
    • RuleController API eklendi:
    • addRule(): Aynı etikete sahip bir kural ekler veya mevcut kuralı günceller.
    • removeRule(): Bir kuralı kayıtlı kurallar koleksiyonundan kaldırır.
    • setRules(): Kural koleksiyonu oluşturur.
    • clearRules(): Kayıtlı tüm kuralları kaldırır.
    • parseRules(): XML kural tanımlarından kuralları ayrıştırır.
  • Tüm modüller için #getInstance() yöntemiyle bir bağlamın başlatılması gerekir. Örneğin:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Görüntü en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için EmbeddingAspectRatio sınıfı eklendi.
  • Bölünmüş düzeni tanımlamak için SplitAttributes sınıfı eklendi.
  • Bölünmüş düzenleri özelleştirmek için SplitAttributes hesap makinesi işlevleri SplitController'e eklendi:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • SplitAttributesCalculator API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için isSplitAttributesCalculatorSupported()
  • EmbeddingRule#tag alanı eklendi.
  • SplitRule'teki API güncellemeleri:
    • defaultSplitAttributes eklendi: Bölünmenin varsayılan bölme düzenini tanımlar; splitRatio ve layoutDirection'nin yerini alır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin çevirisi defaultSplitAttributes'e eklendi.
    • Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanacak şekilde değiştirildi.
    • Varsayılan değeri 600 dp olan minHeightDp eklendi.
    • minWidth, varsayılan değeri 600 dp olan minWidthDp olarak değiştirildi.
    • minSmallestWidth, varsayılan değeri 600 dp olan minSmallestWidthDp olarak değiştirildi.
    • maxAspectRatioInHorizontal, ALWAYS_ALLOW varsayılan değeriyle eklendi.
    • Varsayılan değeri 1,4 olan maxAspectRatioInPortrait eklendi.
    • Bitiş davranışı sabitlerinin yerini alacak FinishBehavior iç içe yerleştirilmiş sınıfı tanımladı.
    • Mülk değişiklikleri, SplitPairRule ve SplitPlaceholderRule için Builder iç içe yerleştirilmiş sınıfına uygulandı.
  • Bölümle ilgili ek bilgiler sağlamak için SplitInfo#getSplitRatio(), SplitInfo#getSplitAttributes() ile değiştirildi.

WindowLayout

  • WindowInfoTracker için deneysel etkinlik dışı kullanıcı arayüzü bağlamı desteği eklendi.
  • WindowMetricsCalculator için deneysel etkinlik dışı kullanıcı arayüzü bağlamı eklendi.

Taşıma Adımları

  • Etkinliklerin bölünmüş olarak gösterilmesi için etkinlik yerleştirmeyi etkinleştirmek üzere uygulamaların manifest <application> etiketine PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED mülkünü eklemesi gerekir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Bu, sistemin bir uygulama için bölünmüş davranışları önceden optimize etmesine olanak tanır.
  • SplitInfo oranı
    • Mevcut bölmelerin yığılmış olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Mevcut oranı kontrol edin: kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • SplitController taşıma işlemleri:
    • SplitController.getInstance() yerine SplitController.getInstance(Context) getirildi.
    • SplitController.initialize(Context, @ResId int) yerine RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) getirildi.
    • SplitController.getInstance().isActivityEmbedded(Activity) yerine ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) getirildi.
    • SplitController.getInstance().registerRule(rule) yerine RuleController.getInstance(Context).addRule(rule) getirildi.
    • SplitController.getInstance().unregisterRule(rule) yerine RuleController.getInstance(Context).removeRule(rule) getirildi.
    • SplitController.getInstance().clearRegisteredRules() yerine RuleController.getInstance(Context).clearRules() getirildi.
    • SplitController.getInstance().getSplitRules() yerine RuleController.getInstance(Context).getRules() getirildi.
  • SplitRule mülk taşıma işlemleri:
    • minWidth ve minSmallestWidth artık piksel yerine dp birimleri kullanıyor. Uygulamalar aşağıdaki çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya minWith'ü piksel cinsinden displayMetrics#density'e bölebilir.
  • Bitirme davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FINISH_NEVER yerine FinishBehavior.NEVER getirildi.
    • FINISH_ALWAYS yerine FinishBehavior.ALWAYS getirildi.
    • FINISH_ADJACENT yerine FinishBehavior.ADJACENT getirildi.
  • Düzen yönü SplitAttributes.LayoutDirection olarak taşınmalıdır:
    • ltr yerine SplitAttributes.LayoutDirection.LEFT_TO_RIGHT getirildi.
    • rtl yerine SplitAttributes.LayoutDirection.RIGHT_TO_LEFT getirildi.
    • locale yerine SplitAttributes.LayoutDirection.LOCALE getirildi.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio)'e taşınmalıdır.
  • SplitPairRule.Builder taşıma işlemleri:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth) yerine kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) yerine kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • setFinishPrimaryWithSecondary ve setFinishSecondaryWithPrimary, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşımaları"na bakın.
    • Dikey cihazlarda bölme göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) simgesini kullanın.
  • SplitPlaceholder.Builder taşıma işlemleri:
    • Yalnızca filters ve placeholderIntent parametrelerine sahiptir. Diğer özellikler, ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder taşımaları"na bakın.
    • setFinishPrimaryWithPlaceholder, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşımaları"na bakın.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) şu şekilde değiştirilir: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Dikey cihazlarda bölme göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) simgesini kullanın.

Sürüm 1.1.0-rc01

10 Mayıs 2023

androidx.window:window-*:1.1.0-rc01 yayınlanır. 1.1.0-rc01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • ActivityEmbedding'ü kararlı bir API olarak yayınlayın.
  • Çeşitli hata düzeltmeleri yapıldı.

Sürüm 1.1.0-beta02

5 Nisan 2023

androidx.window:window-*:1.1.0-beta02 yayınlanır. 1.1.0-beta02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Dahili düzeltmeler ve temizlik.

Sürüm 1.1.0-beta01

22 Mart 2023

androidx.window:window-*:1.1.0-beta01 yayınlanır. 1.1.0-beta01 sürümü bu taahhütleri içerir.

Etkinlik Yerleştirme

  • Uygulama manifest dosyasında <application> etiketinin boole özelliği olarak PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED eklendi.
  • Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için isSplitSupported desteği sonlandırıldı ve splitSupportStatus ile değiştirildi.
  • splitSupportStatus özelliği için durum sabitleri sağlamak üzere SplitController.SplitSupportStatus iç içe yerleştirilmiş sınıfı eklendi.
  • SplitController, birkaç modüle yeniden yapılandırıldı:
    • Activity veya ActivityStack ile ilgili API'ler için ActivityEmbeddingController modülü.
    • isActivityEmbedded, SplitController konumundan ActivityEmbeddingController konumuna taşındı.
    • EmbeddingRule ile ilgili işlemler için RuleController modülü:
    • Kaldırılan SplitController API'leri:
      • clearRegisteredRules()
      • getSplitRules()
      • initialize()
      • registerRule()
      • unregisterRule()
    • RuleController API'si eklendi:
      • addRule(): Aynı etikete sahip bir kural ekler veya mevcut kuralı günceller.
      • removeRule(): Bir kuralı kayıtlı kurallar koleksiyonundan kaldırır.
      • setRules(): Kural koleksiyonu oluşturur.
      • clearRules(): Kayıtlı tüm kuralları kaldırır.
      • `parseRules() — XML kural tanımlarından kuralları ayrıştırır.
  • Tüm modüller için #getInstance() yöntemiyle bir bağlamın başlatılması gerekir. Örneğin:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Görüntü en boy oranıyla ilgili enum benzeri davranış sabitlerini tanımlamak için EmbeddingAspectRatio sınıfı eklendi.
  • Bölünmüş düzeni tanımlamak için SplitAttributes sınıfı eklendi.
  • Bölünmüş düzenleri özelleştirmek için SplitAttributes hesap makinesi işlevleri SplitController'e eklendi:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • isSplitAttributesCalculatorSupported() SplitAttributesCalculator API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için
  • EmbeddingRule#tag alanı eklendi.
  • SplitRule'teki API güncellemeleri:
    • defaultSplitAttributes eklendi: Bölünmenin varsayılan bölme düzenini tanımlar; splitRatio ve layoutDirection'nin yerini alır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin çevirisi defaultSplitAttributes'e eklendi.
    • Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanacak şekilde değiştirildi.
    • Varsayılan değeri 600 dp olan minHeightDp eklendi.
    • minWidth, varsayılan değeri 600 dp olan minWidthDp olarak değiştirildi.
    • minSmallestWidth, varsayılan değeri 600 dp olan minSmallestWidthDp olarak değiştirildi.
    • maxAspectRatioInHorizontal, ALWAYS_ALLOW varsayılan değeriyle eklendi.
    • maxAspectRatioInPortrait, 1.4 varsayılan değeriyle eklendi.
    • Bitiş davranışı sabitlerinin yerini alacak FinishBehavior iç içe yerleştirilmiş sınıfı tanımladı.
    • Mülk değişiklikleri, SplitPairRule ve SplitPlaceholderRule'nin Builder iç içe yerleştirilmiş sınıfına uygulandı.
  • Bölümle ilgili ek bilgiler sağlamak için SplitInfo#getSplitRatio(), SplitInfo#getSplitAttributes() ile değiştirildi.

WindowLayout

  • WindowInfoTracker için etkinlik dışı kullanıcı arayüzü bağlamı desteği eklendi.
  • WindowMetricsCalculator etkinliği için etkinlik dışı kullanıcı arayüzü bağlamı eklendi.

Taşıma Adımları

  • Etkinliklerin bölünmüş olarak gösterilmesi için etkinlik yerleştirmeyi etkinleştirmek üzere uygulamaların manifest <application> etiketine PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED mülkünü eklemesi gerekir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Bu, sistemin bir uygulama için bölünmüş davranışları önceden optimize etmesine olanak tanır.
  • SplitInfo oranı
    • Mevcut bölmelerin yığılmış olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Mevcut oranı kontrol edin: kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
  • SplitController taşıma işlemleri:
    • SplitController.getInstance() yerine SplitController.getInstance(Context) getirildi.
    • SplitController.initialize(Context, @ResId int) yerine RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) getirildi.
    • SplitController.getInstance().isActivityEmbedded(Activity) yerine ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) getirildi.
    • SplitController.getInstance().registerRule(rule) yerine RuleController.getInstance(Context).addRule(rule) getirildi.
    • SplitController.getInstance().unregisterRule(rule) yerine RuleController.getInstance(Context).removeRule(rule) getirildi.
    • SplitController.getInstance().clearRegisteredRules() yerine RuleController.getInstance(Context).clearRules() getirildi.
    • SplitController.getInstance().getSplitRules() yerine RuleController.getInstance(Context).getRules() getirildi.
  • SplitRule mülk taşıma işlemleri:
    • minWidth ve minSmallestWidth artık piksel yerine dp birimleri kullanıyor. Uygulamalar aşağıdaki çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya minWith'ü piksel cinsinden displayMetrics#density'e bölebilir.
  • Bitirme davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FINISH_NEVER yerine FinishBehavior.NEVER getirildi.
    • FINISH_ALWAYS yerine FinishBehavior.ALWAYS getirildi.
    • FINISH_ADJACENT yerine FinishBehavior.ADJACENT getirildi.
  • Düzen yönü SplitAttributes.LayoutDirection olarak taşınmalıdır:
    • ltr yerine SplitAttributes.LayoutDirection.LEFT_TO_RIGHT getirildi.
    • rtl yerine SplitAttributes.LayoutDirection.RIGHT_TO_LEFT getirildi.
    • locale yerine SplitAttributes.LayoutDirection.LOCALE getirildi.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio)'e taşınmalıdır.
  • SplitPairRule.Builder taşıma işlemleri:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth) yerine kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) olarak değiştirilir.
    • setFinishPrimaryWithSecondary ve setFinishSecondaryWithPrimary, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşımaları"na bakın.
    • Dikey cihazlarda bölme göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) simgesini kullanın.
  • SplitPlaceholder.Builder taşıma işlemleri:
    • Yalnızca filters ve placeholderIntent parametrelerine sahiptir. Diğer özellikler, ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder taşımaları"na bakın.
    • setFinishPrimaryWithPlaceholder, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşımaları"na bakın.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) şu şekilde değiştirilir: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Dikey cihazlarda bölme göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) simgesini kullanın.

Sürüm 1.1.0-alpha06

22 Şubat 2023

androidx.window:window-*:1.1.0-alpha06 yayınlanır. 1.1.0-alpha06 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Kullanıcı arayüzü bağlamında WindowLayoutInfo almanın deneysel sürümünü kullanıma sunma.

API Değişiklikleri

  • Etkinlik yerleştirmenin kullanılıp kullanılamadığını belirtmek için splitSupportStatus ekleyin. (I10024)
  • UI Context WindowLayoutInfo API'yi deneysel olarak etkinleştirin. (I58ee0)
  • Mevcut pencereyi arka kamerayla hizalanan ekrana taşımak için RearDisplay modunu etkinleştirmek üzere WindowAreaController ve API'leri kullanıma sunar. (Iffcbf)
  • Varsayılan arka plan rengini güncelleyin. (I1ac1b)
  • SplitAttributes parametreleri ekleyin. (I18bdd)
  • SplitRule, SplitAttributes, SplitAttributesCalculator için API'ler ekleyin. (I92d23)
  • maxAspectRatio ile ilgili API'leri iyileştirin:
    1. alwaysAllow() ve alwaysDisallow() değerlerini ALWAYS_ALLOW ve ALWAYS_DISALLOW ile değiştirin.
    2. @see API dokümanlarını bağımsız dokümanlarla güncelleyin. (I3057b)
  • Aşağıdaki kurucular, uygulamalar tarafından çağrılmaları gerekmediği için herkese açık API'lerden kaldırıldı.
    • SplitInfo oluşturucu
    • ActivityStack kurucu (Ide534)
  • SplitRule artık maxAspectRatioInPortrait/Landscape alıyor. Yalnızca üst sınırların en boy oranı istenen maxAspectRatio değerinden küçük veya eşit olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)
  • RuleController#parseRules değerini statik olarak değiştirin (I785df)
  • ActivityEmbedding ile ilgili API'leri iyileştirme
    1. API adlandırmasını uyumlu hale getirin - Birden fazla örnek için ekleme/kaldırma işlemini kullanın:
    2. registerRule yerine addRule getirildi
    3. unregisterRule yerine removeRule getirildi
    4. ActivityRule bölünmüş kural olmadığı için getSplitRules yerine getRules koyun
    5. Bir dizi kural ayarlamak için RuleController#setRules ekleyin
    6. Kuralla ilgili API'leri SplitController'ten tekil RuleController'e çıkarın. Bunlar:
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. #isActivityEmbedded öğesini SplitController'dan tekil ActivityEmbeddingController öğesine çıkarın. Bunlar:
    14. isActivityEmbedded
    15. SplitController#initialize öğesini kaldırın. XML dosyasından kural ayarlamak için lütfen RuleController#parseRules ve #setRules öğelerini kullanın. Bu değişiklikten önce: SplitController.initialize(context, R.xml.static_rules) Bu değişiklikten sonra: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
    16. Artık statik kuralları çalışma zamanı kurallarından ayırmıyoruz. Bununla birlikte, #clearRules çağrısı, statik XML kural tanımlarıyla kaydedilmiş veya çalışma zamanında kaydedilmiş olmalarına bakılmaksızın tüm kuralların temizlenmesine neden olur. SplitController#clearRegisteredRules'ün eski davranışını elde etmek için lütfen XML kaynak kimliğiyle RuleController#parseRules'ü çağırın ve kuralları tekrar ayarlamak için RuleController#setRules'yi çağırın. Bu değişiklikten önce: SplitController.getInstance(context).clearRegisteredRules() Bu değişiklikten sonra: val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) (Ib3967)
  • SplitRule API'lerini iyileştirme:
    1. SplitRule için minimum boyutları piksel yerine DP cinsinden alın.
    2. SplitRule Oluşturucu'nun minimum boyutları isteğe bağlı olarak alması için yeniden yapılandırın. (I95f17)
  • SplitController'ü başlatmak için bir bağlam gönderme (I42549)
  • SplitRule#layoutDir, #layoutDirection olarak ve SplitRule Builder#setLayoutDir, Builder#setLayoutDirection olarak yeniden adlandırıldı. (I3f6d1)

Sürüm 1.1.0-alpha04

9 Kasım 2022

androidx.window:window-*:1.1.0-alpha04 yayınlanır. 1.1.0-alpha04 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Bir ActivityStack değerinin ActivityEmbedding için boş olup olmadığını belirlemek üzere bir yöntem gösterin.
  • Deneysel API etiketleri ActivityEmbedding API'lerinden kaldırıldı.
  • Tercih edilen oluşturma yöntemi Builder olduğu için ActivityRule oluşturucusunu gizleyin.
  • WindowMetrics üzerinde WindowInsets almak için deneysel bir yöntem ekleyin.
  • Yer tutucunun tamamlanmasını önlemek için SplitPlaceholderFinishBehavior değerini güncelleyin. Yer tutucunun tamamlanması, kafa karıştırıcı bazı davranışlara neden oldu.

API Değişiklikleri

  • fun isEmpty yerine val isEmpty değerini herkese açık hale getirin.
  • ActivityStack parametre etkinliklerini activitiesInProcess olarak yeniden adlandırın. (Ia5055)
  • Kafa karıştırıcı oldukları için ActivityFilter#matchesClassName ve ActivityFilter#matchesClassNameOrWildCard öğelerini kaldırın.
  • Arayanın farklı filtreleri ayırt etmesine izin vermek için ActivityFilter#componentName abd ActivityFilter#intentAction ekleyin (I41f22)
  • @Deprecated API'lerini deneysel API'den kaldırma (I216b3)
  • Etkinlik Yerleştirme API'leri için @ExperimentalWindowApi'ü kaldırma (I69ebe)
  • ActivityRule kurucusunu gizleyin, bunun yerine Builder'ı kullanın. (If4eb6)
  • Bir etkinliğin ActivityFilter'e dahil olup olmadığını kontrol etmek için API'ler ekleyin. (Ia43cf)
  • API dosyalarını WindowMetrics ve WindowMetricsCalculatorCompat sınıflarındaki değişiklikleri yansıtacak şekilde güncelleme (I667fe)
  • ActivityEmbedding mülkünün Javadoc'ını ve sınıf adını güncelleme (Ia1386)
  • AndroidManifest.xml'de kullanılacak ActivityEmbedding mülk etiketi adlarını ekleme (Id1ad4)
  • Yer tutucu etkinliklerin ne zaman sona ereceğini ve etkinlik yerleştirmedeki ilişkili etkinliklerin nasıl davranacağını tanımlayan mevcut SplitPlaceholderRule.finishPrimaryWithSecondary API'sinin yerine yeni SplitPlaceholderFinishBehavior ve SplitPlaceholderRule.finishPrimaryWithPlaceholder API'leri eklendi. (I64647)

Hata Düzeltmeleri

  • Mevcut pencereyi arka kamerayla hizalanan ekrana taşımak için RearDisplay modunu etkinleştirmek üzere WindowAreaController ve API'leri kullanıma sunar. (I388ab)

Sürüm 1.1.0-alpha03

27 Temmuz 2022

androidx.window:window-*:1.1.0-alpha03 yayınlanır. 1.1.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Yerleştirme kurallarının varsayılan değerlerini güncelleyin.

API Değişiklikleri

  • Yerleştirme kuralı özellikleri için varsayılan değerleri güncelleyin. (Ic4d35)

Sürüm 1.1.0-alpha02

11 Mayıs 2022

androidx.window:window-*:1.1.0-alpha02 yayınlanır. 1.1.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Java ve RxJava'yı desteklemek için adaptör kitaplıklarını yayınlayın.

Sürüm 1.1.0-alpha01

11 Mayıs 2022

androidx.window:window-*:1.1.0-alpha01 yayınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Java ve RxJava'yı destekleyen adaptörleri kullanıma sunma

Sürüm 1.1.0-alpha01

20 Nisan 2022

androidx.window:window:1.1.0-alpha01 yayınlanır. 1.1.0-alpha01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Bir uygulamanın arka plana alınmasının katlama özelliklerini yayınlamayı durdurmasına neden olan hata düzeltildi.
  • Deneysel ActivityEmbedding API'yi genişletin.

API Değişiklikleri

  • Bir etkinliğin yerleştirilip yerleştirilmediğini kontrol etmek için kullanılan herkese açık bir API. (I39eb7)

Hata Düzeltmeleri

  • Etkinlik bölmelerindeki kapsayıcılar için bitirme davranışını özelleştiren API'ler ekleme (I1a1e4)
  • Etkinlik bölme kuralları için yeni bir yapılandırma seçeneği eklendi. (Iec6af)

Sürüm 1.0

Sürüm 1.0.0

26 Ocak 2022

androidx.window:window-*:1.0.0 yayınlanır. 1.0.0 sürümü bu taahhütleri içerir.

1.0.0 sürümünün önemli özellikleri

  • WindowInfoTracker ve FoldingFeature ile katlanabilir telefon desteği. WindowMetricsCalculator, mevcut WindowMetrics'in hesaplanmasına yardımcı olur.

Sürüm 1.0.0-rc01

15 Aralık 2021

androidx.window:window-*:1.0.0-rc01 yayınlanır. 1.0.0-rc01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WindowInfoTracker üzerinden katlanabilir telefonlar için destek ekleyin.
  • Mevcut ve maksimum WindowMetrics değerini hesaplamak için yöntemler ekleyin.
  • Destekleyici test API'leri ekleyin.

Sürüm 1.0.0-beta04

17 Kasım 2021

androidx.window:window-*:1.0.0-beta04 yayınlanır. 1.0.0-beta04 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WindowInfoRepository adlı sınıfı WindowInfoTracker olarak yeniden adlandırın.
  • Activity'yi WindowInfoTracker için açık bir yöntem bağımlılığı haline getirin.
  • Robolectric kullanan geliştiricileri desteklemek için WindowMetricsCalculator için basit bir TestRule ekleyin.

API Değişiklikleri

  • Uzantı ayıklama (I25a5f)
  • ActivityStack'e isEmpty ekleyin (I5a4e6)
  • WindowInfoRepository adlı sınıfı WindowInfoTracker olarak yeniden adlandırın.
    • java/rxjava/testing bağımlılıkları eşleşecek şekilde güncellenmelidir. (I0da63)
  • Basit bir WindowMetricsCalculator için test kuralı ekleyin. (Ibacdb)

Sürüm 1.0.0-beta03

27 Ekim 2021

androidx.window:window-*:1.0.0-beta03 yayınlanır. 1.0.0-beta03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Deneysel etkinlik yerleştirme API'leri ekleyin. Bu ilk düzen sürümü, iki etkinliği yan yana göstermenize olanak tanır.

API Değişiklikleri

  • Doğru şekilde sağlayamadığımız için currentWindowMetrics API kaldırıldı. Bunun yerine lütfen WindowMetricsCalculator'ı kullanın (Icda5f)
  • Uzantıları API'si güncellendi. (Ica92b)
  • Etkinlikleri yerleştirmeye ve üst görev penceresinde yan yana göstermeye olanak tanıyan yeni bir özellik için bir arayüz eklendi. (I5711d)
  • WindowMetrics ve WindowLayoutInfo için kurucular gizlendi. Lütfen bunun yerine test API'lerini kullanın. (I5a1b5)
  • Sahte WindowLayoutInfo nesneleri oluşturmak için bir API ekleyin. (I4a2fd)

Hata Düzeltmeleri

Sürüm 1.0.0-beta02

1 Eylül 2021

androidx.window:window-*:1.0.0-beta02 yayınlanır. 1.0.0-beta02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Deneysel API'lere ek açıklama eklemek için deneysel ek açıklama ekleyin. (I9f1b6)
  • Rect kabul eden bir test FoldingFeature oluşturmak için bir test yöntemi ekleyin. Bu, gerçek bir etkinlik yerine Robolectric kullanırken test etmeyi kolaylaştırır. (Id1cca)

Sürüm 1.0.0-beta01

18 Ağustos 2021

androidx.window:window-*:1.0.0-beta01 yayınlanır. 1.0.0-beta01 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Eski sabitler kaldırıldı ve FoldingFeature bir arayüz haline getirildi.

API Değişiklikleri

  • Eski sabitleri kaldırın ve FoldFeature'ı bir arayüz haline getirin. (I9a2d5)

Hata Düzeltmeleri

  • Test Core kitaplığına bağlı kitaplıklar 1.4.0 sürümüne yükseltildi ve artık Android platform S sürümüyle çalışacak. (I88b72, b/189353863)

Sürüm 1.0.0-alpha10

4 Ağustos 2021

androidx.window:window-*:1.0.0-alpha10 yayınlanır. 1.0.0-alpha10 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WindowInfoRepo dosyasını WindowInfoRepository olarak yeniden adlandırın ve ilgili sınıfları / dosyaları düzenleyin.
  • Değer zaman içinde değiştiğinden, mevcut pencere metriklerini WindowInfoRepository'da bir akışa dönüştürün.
  • WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandırın.
  • Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleme
  • Sınıfları destekledikleri özelliklere göre gruplandıracak şekilde paketleri güncelleyin.

API Değişiklikleri

  • ActivityExt dosyasını ActivityExtensions olarak yeniden adlandırın. Repo yerine Repository olarak değiştirin. (I61a16)
  • Sınıfların paketlerini güncelleyin. (I23ae2)
  • WindowMetrics'i WindowInfoRepo'dan kaldırın (I24663)
  • WindowManager'ı kaldırın ve WindowInfoRepo'yu kullanın
    • WindowBackend'i dahili hale getirin. (I06d9a)
  • Pencere metriklerini Flow'a dönüştürün.
    • Java bağdaştırıcısı WindowInfoRepoCallbackAdapter olarak yeniden adlandırıldı
    • Daha fazla deneysel API kullanılmaması için callbackFlow'u kaldırın. (Ia4d15)
  • Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin.
    • occlusionMode yerine occlusionType (If4cff)

Hata Düzeltmeleri

  • Çekirdek kitaplığın kaldırıldığı ProGuard hatası düzeltildi.
  • WindowLayoutInfo'nun ek abonelere teslim edilmemesine neden olan hata düzeltildi.
  • Yapılandırma değişikliklerinin katlama özelliği güncellemelerini tetiklemediği hatayı düzeltme

Sürüm 1.0.0-alpha09

30 Haziran 2021

androidx.window:window-*:1.0.0-alpha09 yayınlanır. 1.0.0-alpha09 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Tam sayı sabitlerini sınırsız enum'lara değiştirin.
  • Test katlama özellikleri oluşturmak için bir test yardımcı programı ekleyin.

API Değişiklikleri

  • Test görüntüleme özellikleri oluşturmak için yardımcı yöntem ekleyin. (I3cf54)
    • occlusionMode olan önceki oran, occlusionType olarak değişti.

Hata Düzeltmeleri

  • Veri akışlarının birden fazla tüketicisini eklerken ilk değeri yayınlayın.

Sürüm 1.0.0-alpha08

16 Haziran 2021

androidx.window:window-*:1.0.0-alpha08 yayınlanır. 1.0.0-alpha08 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • WindowInfoRepository kullanılırken test etmeyi kolaylaştırmak için bir test yapısını kullanıma sunduk. DisplayFeatures ve WindowMetrics hakkında bilgi edinmek için WindowInfoRepository'yi kullanın. (I57f66, Ida620)

Sürüm 1.0.0-alpha07

2 Haziran 2021

androidx.window:window-*:1.0.0-alpha07 yayınlanır. 1.0.0-alpha07 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Temel pencere kitaplığını Kotlin'e taşıyın. Gelecekte, asenkron verileri göstermek için coroutine'leri ve askıya alma işlevlerini kullanacak.
  • WindowMetrics ve WindowLayoutInfo akışını almak için ana etkileşim noktası olarak WindowInfoRepo'yu ekleyin.
  • Geri çağırma işlevlerini kaydetmek ve kaydını kaldırmak için Java uyumlu API'leri göstermek üzere yeni window-java yapı.
  • RxJava'ya uyarlanmış API'leri göstermek için yeni window-rxjava2 ve window-rxjava3 yapıları.

API Değişiklikleri

  • Bağımlılıkları tek tip olarak sağlamak için WindowServices ekleyin.
    • Pencere düzeni bilgilerini kullanmak için coroutine tabanlı API ekleyin. (Iab70f)
  • Temel pencere yöneticisi kitaplığını Kotlin'e taşıyın. (Icca34)

Hata Düzeltmeleri

  • Özellik sınırlarını temsil etmek için yeni bir veri sınıfı ekleyin. (I6dcd1)

Sürüm 1.0.0-alpha06

5 Mayıs 2021

androidx.window:window:1.0.0-alpha06 yayınlanır. 1.0.0-alpha06 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • Kotlin'e geçiş işlemimiz başladı ve sonraki sürümde tamamlanacak.
  • DeviceState, herkese açık API'den kaldırıldı. Lütfen bunun yerine FoldingFeature'i kullanın.
  • Şu anda hiçbir kullanım alanında desteklenmediği için STATE_FLIPPED, FoldingFeature durumlarından kaldırıldı.
  • Ayrıca, desteği sonlandırılmış diğer API'leri de kaldırdık.

API Değişiklikleri

  • Kotlin'i bağımlılık olarak ekleme.
    • Çekirdek kitaplığı Kotlin'e taşıyın. (Idd995)
  • DisplayFeature oluşturucu kaldırıldı. (I61fa4)
  • DeviceState, herkese açık API'den kaldırıldı. Bunun yerine FoldingFeature kullanın. (Id6079)
  • Cihaz durumu geri çağırma işlevini uzantılardan kaldırın. (I5ea83)
  • FoldingFeature öğesinden STATE_FLIPPED'ü kaldırın. (I9c4e1)
  • Desteği sonlandırılan kayıt yöntemlerini kaldırın. (Ib381b)

Sürüm 1.0.0-alpha05

24 Mart 2021

androidx.window:window:1.0.0-alpha05 yayınlanır. 1.0.0-alpha05 sürümü bu taahhütleri içerir.

Yeni Özellikler

Uygulamaların, özelliğin ayrılıp ayrılmadığını ve engelleyip engellemediğini belirleyebilmesi ve menteşenin yönünü belirleyebilmesi için FoldingFeature'a kolaylık yöntemleri ekledik. Ayrıca menteşe türünü de gizliyoruz.

WindowManager'dan senkronize okuma yöntemlerini kaldırıyoruz. Anlamlı bir yarış koşulu olduğundan senkronize okuma yöntemleri hatalara yatkındır. WindowLayoutInfo ile ilgili güncellemeler almak için dinleyiciler ve geri çağırmalar kaydedin.

API Değişiklikleri

  • FoldingFeatures ile çalışmak için kolaylık yöntemleri ekleyin (Ie733f)
  • WindowManager'dan (I96fd4) eşzamanlı okuma yöntemlerini kaldırır

Sürüm 1.0.0-alpha04

10 Mart 2021

androidx.window:window:1.0.0-alpha04 yayınlanır. 1.0.0-alpha04 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • OEM uygulaması yoksa WindowLayoutInfo'nun yayınlanmadığı bir hata düzeltildi. Şimdi boş bir WIndowLayoutInfo yayınlıyoruz.
  • Uygulama arka plandayken menteşe durumu değişirse durumun düzgün şekilde güncellenmemesine yol açan hata düzeltildi. Artık durum tutarlı olmalıdır.
  • Proguard dosyalarımızı, çalışma zamanındaki bağımlılıklardan gelen uyarıları yoksayacak şekilde güncelleyin.

Hata Düzeltmeleri

  • OEM kitaplığı eksik olduğunda boş bir değer gönderir. (Ide935)

Sürüm 1.0.0-alpha03

18 Şubat 2021

androidx.window:window:1.0.0-alpha03 yayınlanır. 1.0.0-alpha03 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer gönderin. Bu sayede kitaplığı daha fazla cihazda kullanabilirsiniz. API'ler asenkron olduğundan uygulamaların bazı savunma amaçlı kodlar yazması ve zaman aşımı sonrasında varsayılan bir değer yayınlaması önerilir. OEM uygulamalarıyla ilgili herhangi bir garanti veremiyoruz ve ilk değer gecikebilir.

Hata Düzeltmeleri

  • OEM kitaplığı eksik olduğunda boş bir değer gönderir. (Ide935)

Sürüm 1.0.0-alpha02

27 Ocak 2021

androidx.window:window:1.0.0-alpha02 yayınlanır. 1.0.0-alpha02 sürümü bu taahhütleri içerir.

Yeni Özellikler

  • API'yi kolaylaştırmak ve hataları azaltmak için bazı API'lerin desteğini sonlandırdık. WindowManager'dan senkronize okuma işlemlerinin kaldırılması ve DeviceState için desteğin sonlandırılması, bu tür örneklerden bazılarıdır. Eşzamanlı okuma işlemleri yarış koşullarına yol açabilir ve yanlış kullanıcı arayüzüne sahip olabilir.

  • DisplayFeature'ı, diğer özelliklerin ileride uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz FoldingFeature. Bu özellik artık ekran katlama veya menteşeyi temsil ediyor. Bu, DeviceState yerine menteşenin durumunu da içerir.

  • WindowMetrics, geliştiricilere bir pencereyle ilgili metrikleri (ör. ekrandaki konumu ve boyutu ve sistem içe yerleştirilmeleri) sorgulamak için basit bir yol sunmak amacıyla Android 11'de kullanıma sunulmuştur. Geliştiricilerin WindowMetrics'ten yararlanabilmesi ve eski Android sürümlerini desteklemeye devam edebilmesi için bu sürümde API'yi geriye dönük olarak taşıdık. WindowMetrics, WindowManager#getCurrentWindowMetrics() ve WindowManager#getMaximumWindowMetrics() API'leri aracılığıyla elde edilebilir.

API Değişiklikleri

  • Sonraki alfa sürümünde (Ib7cc4) kaldırılacak API'lerin desteğini sonlandırma
  • ExtensionInterface'ü, açık etkinlik referanslarını kabul edecek şekilde günceller. (I07ded)
  • WindowMetrics API'yi tanıtıyor. (I3ccee)
  • WindowManager'dan senkronize okuma yöntemlerini kaldırma (I69983)
  • ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)

Hata Düzeltmeleri

  • ExtensionInterface API'lerini görsel bağlamları kabul edecek şekilde güncelleyin. (I8e827)

Harici Katkı

  • Verilere daha kolay erişebilmek için DeviceState ve WindowLayoutInfo öğelerini birleştirin. (Id34f4)

Sürüm 1.0.0-alpha01

27 Şubat 2020

androidx.window:window:1.0.0-alpha01 ve androidx.window:window-extensions:1.0.0-alpha01 yayınlandı. 1.0.0-alpha01 sürümü bu taahhütleri içerir. Bu, Window Manager kitaplığının ilk sürümüdür.

Yeni özellikler

  • DisplayFeature: Bu yeni API, sürekli düz ekran yüzeylerindeki menteşe veya kıvrım gibi kesintileri tanımlar
  • DeviceState: Bu yeni API, tanımlanmış duruşların listesinden telefonun mevcut duruşunu sağlar (ör. CLOSED, OPENED, HALF_OPENED vb.).