WindowManager

Jetpack WindowManager kitaplığı, uygulama geliştiricilerin yeni cihaz form faktörlerini ve çok pencereli ortamları desteklemesini sağlar. İlk sürümde katlanabilir cihazlar hedefleniyor 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ü
2 Temmuz 2025 1.4.0 - 1.5.0-beta01 -

Bağımlılıkları bildirme

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

Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:

Groovy

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

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

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

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

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

Kotlin

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

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

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

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

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

Geri bildirim

Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.

Yeni sorun oluşturma

Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.

Sürüm 1.5

Sürüm 1.5.0-beta01

2 Temmuz 2025

androidx.window:window-*:1.5.0-beta01 iptal edilir. 1.5.0-beta01 sürümü bu commit'leri içerir.

Sürüm 1.5.0-alpha02

7 Mayıs 2025

androidx.window:window-*:1.5.0-alpha02 iptal edilir. 1.5.0-alpha02 sürümü bu commit'leri içerir.

API Değişiklikleri

  • Büyük ve çok büyük boyutlar için WindowSizeClass ayrılma noktaları ekleyin. (I40d85)
  • WindowMetrics hesaplamasını Uygulama Bağlamı'na genişletin. (I8eeeb, b/360934048)
  • WindowLayoutInfo öğesine doğrudan erişimi etkinleştirmek için bir Getter sağlayın (Ie9513)
  • Yerleştirme durumunu otomatik olarak kaydetmek ve uygulama işlemi yeniden başlatıldığında yerleştirme durumunu otomatik olarak geri yüklemek için API'yi kullanıma sunma. (Ie0295)
  • Deneysel WindowInsets API'yi kaldırın. (I68a71)
  • Birkaç yapımcıyı gizleme (I87b8d)

Hata Düzeltmeleri

  • Bazı durumlarda EmbeddingRule farklı hashCode döndürme sorunu düzeltildi. (I748cc)

Sürüm 1.5.0-alpha01

12 Mart 2025

androidx.window:window-*:1.5.0-alpha01 iptal edilir. 1.5.0-alpha01 sürümü bu commit'leri içerir.

Yeni Özellikler

  • 1.5.0 sürümünün ilk yayını.

Sürüm 1.4

Sürüm 1.4.0

20 Mayıs 2025

androidx.window:window-*:1.4.0 iptal edilir. 1.4.0 sürümü bu commit'leri içerir.

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

  • Etkinlik Yerleştirme
    • Başlatma animasyonlarını özelleştirmeye yönelik API
    • Etkileşimli Ayırıcı
    • ActivityStack Sabitleme
    • Tam Ekran İletişim Kutusu Karartma
    • Yerleştirilmiş Etkinlik Penceresi Bilgileri Geri Çağırma İşlevi
    • İyileştirilmiş ActivityStack Yönetimi
    • Etkinliği belirtilen bir ActivityStack içine başlatma
  • WindowMetricsCalculator
    • Test edilebilirlik desteğini iyileştirme
  • WindowMetrics
    • withDp ve heightDp değerlerini hesaplamanın kolay yolları
    • Sınır kontrolünü isAtLeast olarak güncelleyin ve yeni değerler eklemeyi desteklemek için alt sınırları kullanın.
  • WindowSizeClass
    • WindowMetrics kaynağından hesaplama yöntemi ekleme
  • WindowInfoTracker
    • Cihazda desteklenen duruşları algılamak için API ekleyin

Sürüm 1.4.0-rc02

23 Nisan 2025

androidx.window:window-*:1.4.0-rc02 iptal edilir. 1.4.0-rc02 sürümü bu commit'leri içerir.

Hata Düzeltmeleri

  • ActivityEmbedding için ProGuard kilitlenmesini düzeltin.

Sürüm 1.4.0-rc01

12 Mart 2025

androidx.window:window-*:1.4.0-rc01 iptal edilir. 1.4.0-rc01 sürümü bu commit'leri içerir.

Yeni Özellikler

  • WindowSizeClass API'sinde yapılan güncellemeler.
  • Etkinlik yerleştirme API'lerinde yapılan güncellemeler.

Sürüm 1.4.0-beta02

12 Şubat 2025

androidx.window:window-*:1.4.0-beta02 iptal edilir. 1.4.0-beta02 sürümü bu commit'leri içerir.

Yeni Özellikler

  • Yalnızca mülkte bulunan ancak alıcıda bulunmayan bir ek açıklamayı düzeltin.

Sürüm 1.4.0-beta01

15 Ocak 2025

androidx.window:window-*:1.4.0-beta01 iptal edilir. 1.4.0-beta01 sürümü bu commit'leri içerir.

Yeni Özellikler

  • ActivityEmbedding animasyonlarının özelleştirilmesine izin vermek için API ekleyin.
  • Pencere metriklerinin sahtesini oluşturmaya izin vermek için WindowMetricsCalculator test API'lerini genişletin.

API Değişiklikleri

  • Birkaç yapımcıyı gizleme (I87b8d)
  • Uygulamaların ActivityEmbedding animasyonlarını özelleştirmesine izin ver (If31a8)
  • watchosDeviceArm64 KMP hedefi ve hedef kotlin 1.9 için destek eklendi (Icf15d, b/364652024)
  • WindowMetricsCalculator API'lerini kullanıma sunun. (I1cebf)

Hata Düzeltmeleri

  • Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için aşağıdaki derleyici bağımsız değişkenini kullanmalıdır: -Xjspecify-annotations=strict (bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir). (Ie69ac, b/326456246)

Sürüm 1.4.0-alpha05

16 Ekim 2024

androidx.window:window-*:1.4.0-alpha05 iptal edilir. 1.4.0-alpha05 sürümü bu commit'leri içerir.

Yeni Özellikler

  • WindowMetrics'den widthDp ve heightDp almak için kolaylık işlevleri ekleyin.

API Değişiklikleri

  • widthDp ve heightDp öğelerini WindowMetrics listesine ekleyin. (Ide026)
  • Deneysel WindowInsets API'yi kaldırın. (I68a71)
  • Sınır kontrolü yöntemi adlarını isAtLeast olarak güncelleyin (Ib0ab7)

Sürüm 1.4.0-alpha04

2 Ekim 2024

androidx.window:window-*:1.4.0-alpha04 iptal edilir. 1.4.0-alpha04 sürümü bu commit'leri içerir.

API Değişiklikleri

  • WindowSizeClass değerini WindowMetrics değerinden hesaplama yöntemi eklendi. (874dba)
  • Netlik için WindowSizeClass yöntemlerini containsWidthDp, containsHeightDp ve containsWindowSizeDp olarak değiştirin. (fa760d)
  • WindowAreaController öğesini soyut temel sınıfa dönüştürün. (I90893)

Hata Düzeltmeleri

  • Test oluştururken göreli sınırlara destek ekleyin FoldingFeature. (2e6b3e)
  • WindowSizeClass seçilirken karşılaşılan genel hata düzeltmeleri.

Sürüm 1.4.0-alpha03

18 Eylül 2024

androidx.window:window-*:1.4.0-alpha03 iptal edilir. 1.4.0-alpha03 sürümü bu commit'leri içerir.

Yeni Özellikler

  • WindowMetrics değerinden WindowSizeClass değerini elde etmek için bir yardımcı yöntem ekleyin. (I83f1f)
  • isAtLeast öğesini containsBreakpoint olarak yeniden adlandırın. (I85b47)
  • Kayan öğeler kullanarak computeWindowSizeClass öğesine aşırı yükleme ekleyin. (I3dcb2, b/364677934, b/364677802, b/364680886)

Hata Düzeltmeleri

  • Varsayılan WindowSizeClass kesme noktası kümesine eksik kesme noktaları ekleyin.
  • Bazı durumlarda kompakt boyutların doğru 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 iptal edilir. 1.4.0-alpha02 sürümü bu commit'leri içerir.

Yeni Özellikler

Özel WindowSizeClass desteği eklendi.

  • Geliştiricilerin kendi oluşturucularını kullanabilmesi için WindowSizeClass oluşturucusunu açın.
  • Geliştiricilerin bir dizi WindowSizeClass değeri işleyebilmesi için isAtLeast yardımcı yöntemler ekleyin.
  • Kümedeki en iyi eşleşmeyi hesaplamak için Set<WindowSizeClass>'ya bir uzantı işlevi ekleyin.
  • Android'in önerdiği kesme noktaları için sabitler ekleyin.
  • Android'in önerdiği ayırma noktalarına karşılık gelen ayırma noktası kümesini ekleyin.

API Değişiklikleri

  • WindowSizeClass için sınırlama yöntemi adlarını güncelleyin. (If89a6)
  • Gelecekte yeni kesme noktası değerleri eklemeyi desteklemek için WindowSizeClass API'sini güncelleyin. Mutlak sınırlar yerine alt sınırları kullanırız ve geliştiricilerin bir WindowSizeClass işlerken alt sınır kontrollerini kullanmasını öneririz. Mevcut WindowWidthSizeClass ve WindowHeightSizeClass, daha fazla geliştirilmeyecekleri için kullanımdan kaldırılacak. (I014ce)

Sürüm 1.4.0-alpha01

7 Ağustos 2024

androidx.window:window-*:1.4.0-alpha01 iptal edilir. 1.4.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • ActivityStack Pinning, uygulamaların bir kapsayıcıdaki içeriği sabitlemesine ve gezinme işleminin diğer kapsayıcıdan bağımsız olmasına olanak tanır.
  • Etkileşimli Ayırıcı, uygulamaların bölünmüş sunumda iki etkinlik arasında sabit veya sürüklenebilir bir ayırıcı göstermesine olanak tanır.
  • Tam Ekran İletişim Kutusu Karartma, uygulamaların iletişim kutusu karartma alanını belirtmesine olanak tanır. Böylece, görev penceresinin tamamı veya yalnızca iletişim kutusunu gösteren kapsayıcı karartılabilir.
  • Embedded Activity Window Info Callback, uygulamaların yerleştirilmiş 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. Bu sayede, ActivityEmbedding kullanıldığında geçiş animasyonunun kalitesi artırılır.
  • Geliştirilmiş ActivityStack Yönetimi, ActivityEmbedding kullanılırken uygulamaların ActivityStacks üzerinde daha fazla kontrol sahibi olmasını sağlar. Örneğin:
  • Belirli bir ActivityStack içinde etkinlik başlatma
  • ActivityStack tamamlanıyor

API Değişiklikleri

  • Yeni bir API WindowInfoTracker#supportedPostures:

    • Cihazın katlanabilir cihazlar için TableTop modunu destekleyip desteklemediğini belirlemeye yarayan bir API. WindowAreaSessionPresenter#getWindow işlevini ekler
  • ActivityStack sabitlemeyi desteklemek için API'ler ekleyin:

    • SplitPinRule sınıf
    • SplitController#pinTopActivityStack
    • SplitController#unpinTopActivityStack
  • Etkileşimli ayırı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 ekleyin

    • EmbeddingConfiguration sınıf
    • DimAreaBehavior sınıf
    • ActivityEmbeddingController#setEmbeddingConfiguration
  • Yerleştirilmiş etkinlik penceresi bilgisi güncellemelerini almak için API'ler ekleyin

    • EmbeddedActivityWindowInfo sınıf
    • ActivityEmbeddingController#embeddedActivityWindowInfo
  • Yerleştirme animasyonunun arka planını ayarlamak için API'ler ekleyin

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

    • ActivityEmbeddingController#finishActivityStacks
  • Lansman ayarlarını yapmak için API ekleme ActivityStack

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

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

Hata Düzeltmeleri

  • Oturum etkin olduğunda ACTIVE yerine UNAVAILABLE döndürülen belirli cihazlardaki hata düzeltildi.
  • Kararsız API desteği nedeniyle vendorApiLevel 2 olan cihazlarda transferActivityToWindowArea desteği kaldırıldı.
  • Etkinlik yerleştirme için sürüklenip tam ekran yapılabilen bölücüde sürükleyerek tam ekran yapma özelliğini etkinleştirmek üzere API'yi kullanıma sunduk. (I645c9)
  • Uygulamaların, SplitAttributes için animasyon parametreleri aracılığıyla ActivityEmbedding animasyonlarını devre dışı bırakmasına izin verin. (Idc01a)
  • AGP 7.3 veya sonraki sürümleriyle (ör. R8 sürümü 3.3) R8 kullanılırken ve AGP 8.1 veya sonraki sürümleriyle (ör. D8 sürümü 8.1) tüm derlemeler için yeni platform API'lerine erişimin manuel olarak ana hatlarının oluşturulması, API modelleme aracılığıyla otomatik olarak yapıldığından kaldırıldı. AGP kullanmayan müşterilerin D8 sürüm 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)
  • Uzantıların SplitAttributes için animasyon parametreleri almasına izin verin. Böylece cihaz, bu parametreleri animasyon geçişlerinde kullanabilir. (Iede00)
  • Yer paylaşımı API'lerini gizleme (Ic4251)
  • Bölme için sabit veya sürüklenebilir ayırıcıyı yapılandırmak üzere API'ler kullanıma sunuldu (Ia7a78).
  • WindowMetrics öğesine yoğunluk eklendi (Id6723)
  • SupportedPostures almak için API ekleyin. (If557a)
  • setLaunchingActivityStack öğesini deneysel API'den (I191cf) kaldırma
  • ActivityEmbeddingController#embeddedActivityWindowInfo ile tanışın (I24312)
  • #getToken öğesini kullanımdan kaldırın ve #getActivityStackToken öğesini ekleyin (Ie0471)
  • embeddedActivityWindowInfo akış API'si için geri çağırma bağdaştırıcısı kullanıma sunuldu (Ida77f).
  • overlayInfo akışı API'si için geri çağırma adaptörü ekleyin (I7264f)
  • Test için WindowSdkExtensionsRule'ı kullanarak extensionsVersion'ı geçersiz kılın. (Ifb928)
  • - #setLaunchingActivityStack kullanımlarıyla uyumlu olması için #setLaunchingActivityStack'ı Bundle'a taşıyın.ActivityOptionsCompat
    • Kullanıcılar ActvityOptions yerine activityOptions.toBundle değerini iletmelidir.
    • #setLaunchingActivityStack(Activity) öğesini kaldırın. Kullanıcılar, ActivityEmbeddingController#getActivityStac(Activity) kullanmak için ActivityStack'ye geçmeli ve ActivityStack'yi #setLaunchingActivityStack'ye iletmelidir. (Ie0ccc)
  • - WM Jetpack ile uzantılar arasında iletişim kurmak için ActivityStack.Token ve SpltInfo.Token tanımlayıcılarını kullanıma sunun.
    • IBinder yerine Jeton almak/döndürmek için API'leri kullanımdan kaldırın/değiştirin. (I12b24)
  • - ActivityEmbeddingController#invalidateVisibleActivityStacks ile tanışın
    • Özellik #invalidateVisibleActivityStacks ile birleştirildiğinden SplitController#invalidateTopVisibleSplitAttributes kaldırılıyor (I02ef5)
  • - Yerleştirme yapılandırmasını ayarlamak için API ekleme. (I59a4a)
  • - En çok kullanılan ActivityStack androidx.Window API'lerini sabitleme/sabitliğini kaldırma
    • Demo uygulamasını, üstteki ActivityStack öğesinin sabitlenmesine/sabitlenmesinin kaldırılmasına izin verecek şekilde güncelleme (I24dd3)
  • #finishActivityStacks ve ActivityEmbeddingOptions'ı yeniden ekleme (Ic1ab3)
  • Kararsız API'leri kaldırın. (Ibc534, b/302380585)

Sürüm 1.3

Sürüm 1.3.0

29 Mayıs 2024

androidx.window:window-*:1.3.0 iptal edilir. 1.3.0 sürümü bu commit'leri içerir.

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

  • Pencere boyutu sınıfları için Kotlin Multiplatform desteği.

Sürüm 1.3.0-rc01

14 Mayıs 2024

WindowManager Jetpack 1.3, WindowSizeClass özellikleri için Kotlin Multiplatform desteğinin yanı sıra çeşitli hata düzeltmeleri sunar.

androidx.window:window-*:1.3.0-rc01 iptal edilir. 1.3.0-rc01 sürümü bu commit'leri içerir.

Sürüm 1.3.0-beta02

1 Mayıs 2024

androidx.window:window-*:1.3.0-beta02 iptal edilir. 1.3.0-beta02 sürümü bu commit'leri 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 düzeltildi. (I01b02)

Sürüm 1.3.0-beta01

3 Nisan 2024

androidx.window:window-*:1.3.0-beta01 iptal edilir. 1.3.0-beta01 sürümü bu commit'leri içerir.

Sürüm 1.3.0-alpha03

6 Mart 2024

androidx.window:window-*:1.3.0-alpha03 iptal edilir. 1.3.0-alpha03 sürümü bu commit'leri içerir.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Sağlanan bağlamın doğru şekilde sarmalanmaması nedeniyle oluşan kilitlenme sorunu düzeltildi. (94d10ce , b/318787482)

Sürüm 1.3.0-alpha02

7 Şubat 2024

androidx.window:window-*:1.3.0-alpha02 iptal edilir. 1.3.0-alpha02 sürümü şu commit'leri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Genişlik seçiciye yükseklik kısıtlamaları ekleyin. (I23393)
  • Bir kümeden WindowSizeClass seçmek için yardımcı işlevler ekleyin. Geliştiricilerin kendi seçicilerini yazabilmeleri için deneysel puanlama işlevleri ekleyin. Belirli bir sınır içinde en geniş WindowSizeClass öğesini seçmek için bir seçici uzantısı işlevi ekleyin. (I0c944)
  • Özel ayrılma noktaları eklenebilmesi için WindowSizeClass oluşturucuyu açın. (Ic1ff3)
  • Genişlik, yükseklik ve yoğunluktan boyut sınıfı oluşturmak için kolaylık işlevi eklendi. (If67f4)

Hata Düzeltmeleri

  • Kayan noktalı değer 0 olarak kısaltıldığında oluşan istisnayı düzeltir. (272ffac)

Sürüm 1.3.0-alpha01

15 Kasım 2023

androidx.window:window-*:1.3.0-alpha01 iptal edilir. 1.3.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
  • FoldingFeature oluşturmaya yönelik API'lerin testi artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamaya yönelik API'ler artık kararlı.
  • WindowLayoutInfoPublisherRule artık UiContext kaynağından değer alırken geçersiz kılma işlemini bildiriyor.
  • WindowInfoTracker raporları, katlama özelliği verilerini UiContext parametrelerine aktarır.
  • Cihazdaki uzantı sürümünü gösterin.
  • Kullanıcıların uygulama bazında geçersiz kılmaları için WindowProperties sabitleri:
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE — Sisteme, uygulamanın kullanıcıya yönelik en-boy oranı uyumluluğu geçersiz kılma özelliğini devre dışı bıraktığını bildirir.
    • PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE— Sisteme, 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ı bildirir.

Sürüm 1.2

Sürüm 1.2.0

15 Kasım 2023

androidx.window:window-*:1.2.0 iptal edilir. 1.2.0 sürümü şu commit'leri içerir.

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

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
  • FoldingFeature oluşturmaya yönelik API'lerin testi artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamaya yönelik API'ler artık kararlı.
  • WindowLayoutInfoPublisherRule artık UiContext kaynağından değer alırken geçersiz kılma işlemini bildiriyor.
  • WindowInfoTracker raporları, katlama özelliği verilerini UiContext parametrelerine aktarır.
  • 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 iptal edilir. 1.2.0-rc01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
  • FoldingFeature oluşturmaya yönelik API'lerin testi artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamaya yönelik API'ler artık kararlı.
  • WindowLayoutInfoPublisherRule artık UiContext kaynağından değer alırken geçersiz kılma işlemini bildiriyor.
  • WindowInfoTracker raporları, katlama özelliği verilerini UiContext parametrelerine aktarır.
  • 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 iptal edilir. 1.2.0-beta04 sürümü şu commit'leri içerir.

API Değişiklikleri

Sürüm 1.2.0-beta03

20 Eylül 2023

androidx.window:window-*:1.2.0-beta03 iptal edilir. 1.2.0-beta03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Doğru şekilde çalışmak için belirli bir uzantı sürümü gerektiren API'ler için RequiresApi kontrolleri ekleyin.
  • Cihazdaki uzantı sürümünü kullanıma sunmak için bir API ekleyin.

API Değişiklikleri

  • Gerekli pencere SDK'sı uzantı sürümünü herkese açık API'lerde açıklama olarak ekleyin.
    • Etkinlik yerleştirme bileşenindeki isXXXSupported simgesini kaldırın. (Ie3dae)
  • Cihazdaki uzantı sürümünü bildirmek için WindowSdkExtensions'ı kullanıma sunuyoruz.
    • Gerekli minimum uzantı sürümünü belirtmek için RequiresWindowSdkExtension öğesini kullanıma sunuyoruz. (I05fd4)
  • WindowAreaInfo#getCapability değerini boş değer atanamaz yapar. (I17048)

Sürüm 1.2.0-beta01

26 Temmuz 2023

androidx.window:window-*:1.2.0-beta01 iptal edilir. 1.2.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunar.
  • FoldingFeature oluşturmaya yönelik API'lerin testi artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamaya yönelik API'ler artık kararlı.
  • WindowLayoutInfoPublisherRule artık UiContext kaynağından değer alırken geçersiz kılma işlemini bildiriyor.
  • WindowInfoTracker raporları, katlama özelliği verilerini UiContext parametrelerine aktarır.

API Değişiklikleri

  • 1.3'te kararlı sürüm için API değişikliklerinin devam etmesine izin vermek üzere WindowArea API'lerini deneysel olarak işaretler (I857f5).
  • Uyumluluk bastırmayı açıklama eklemek için API dosyaları güncellendi (I8e87a, b/287516207)

Sürüm 1.2.0-alpha03

21 Haziran 2023

androidx.window:window-*:1.2.0-alpha03 iptal edilir. 1.2.0-alpha03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Kullanımdan kaldırılan API'lerin API yüzeyinden kaldırılması.
  • Eşzamanlı ekranları desteklemek için API'ler ekleyin.
  • Zorunlu yeniden boyutlandırma geçersiz kılma özelliğini devre dışı bırakmak 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.
  • Activity Embedding ile ilgili birim testini desteklemek için ActivityEmbeddingRule kararlılığı sağlandı.

API Değişiklikleri

  • Kullanımdan kaldırılan API'leri kaldırın (I18d39)
  • Aynı anda birden fazla ekranın kullanılmasını destekleyin. (Ifcbb0)

Hata Düzeltmeleri

  • Yeniden boyutlandırmayı zorunlu kılmak için kapsam dışında kalma uyumluluk özelliği ekleme (Ie7ab1)
  • SESSION_STATE_CONTENT_INVISIBLE adlı uzantıyı, uzantılar arayüzünden kaldırır. (I6ed19)
  • Etkinlik yerleştirme ile ilgili birim testini desteklemek için ActivityEmbeddingRule kararlılığı sağlandı. (I8d6b6)
  • Minimum en boy oranı geçersiz kılma için devre dışı bırakma uyumluluk özelliği eklendi. (I66390)
  • Desteği sonlandırılan WindowArea API'lerini kaldırır (Ieb67c).
  • Yönlendirme isteği döngüsü özelliğini PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED olarak yeniden adlandırın. (Ie2fbd)
  • Pencere alanı oturumu sabit adlarını günceller (I83675)
  • Algılandığında yönlendirme isteği döngüsünü yoksayan devre dışı bırakma uyumluluk özelliği ekleme (I0a7a2)
  • Özelliğin zaten etkin olduğunu belirtmek için WindowAreaComponent#STATUS_ACTIVE simgesini ekleyin. (I62bc3)
  • RearDisplayPresentationMode API'lerini ekleyin (I0401c)
  • Kararlı sürüm için arka plan rengini kaldırma API'si. (I34c3e)
  • Pencere Alanı API'lerini gizleyin. (I39de0)
  • SplitInfo içinde SplitController'yi geçersiz kılacak yöntemler ekleyin. SplitInfo ve ActivityStack için kopya oluşturmak üzere test yöntemleri ekleyin. (Icd69f)
  • ActivityRule.Builder için etiketi isteğe bağlı hale getirin. (Ib0b44)
  • RatioSplitType, ExpandContainersSplit ve HingeSplitType öğelerini kaldırın. Bu kullanıcılar artık SplitType.
    • #splitEqually(), #expandContainers() ve #splitByHinge değerlerini sabit SplitType SPLIT_TYPE_EQUAL, SPLIT_TYPE_EXPAND ve SPLIT_TYPE_HINGE değerleriyle değiştirin.
    • Yedek menteşe bölünme türü ayarlama işlevini kaldırın. Mevcut cihaz veya pencere durumu nedeniyle menteşe bölme türü uygulanamıyorsa üst görev kapsayıcısı eşit şekilde bölünür. Yedek bölme türünü özelleştirmek için SplitController#setSplitAttributesCalculator simgesini kullanın. (Ifcc59)
  • add/removeSplitCallback öğesini kullanımdan kaldırın
    • add/removeSplitCallback öğesini SplitControllerCallbackAdapter konumuna taşıma
    • Flow listesini almak için SplitInfo desteği ekleyin (I7f1b6)
  • ActivityEmbeddingController için test kuralı ekleyin (I42e9b)
  • ActivityOptionsCompat dosyasını ActivityEmbeddingOptions olarak yeniden adlandırma (I89301)
  • Etkinlik yerleştirmenin kullanılabilir olup olmadığını belirtmek için splitSupportStatus ekleyin. (I10024)
  • DEFAULT değerini daha iyi temsil etmek için SplitAttributes.BackgroundColor özelliğini kullanıma sunuyoruz. Opak olmayan animasyon arka plan renginin desteklenmediği, bu nedenle opak olmayan renklerin varsayılan olarak kabul edileceği (yani mevcut tema penceresi arka plan renginin kullanılacağı) netleştirildi. (Ic6b95)
  • alwaysAllow() ve alwaysDisallow() öğelerini 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 (Id4a6e) doğrulayabilmesi için sahte SplitAttributesCalculatorParams oluşturma yöntemi ekleyin.
  • WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context) ve WindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context) ekleme (I66c7f)

Sürüm 1.2.0-alpha02

7 Haziran 2023

androidx.window:window-*:1.2.0-alpha02 iptal edilir. 1.2.0-alpha02 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Belirtilmemiş katlama özellikleri için sabit bir değer içerecek şekilde test API'sini güncelleyin.
  • WindowLayoutInfoPublishRule ile geçersiz kılma, bağlama dayalı API dahil olmak üzere windowLayoutInfo'nin tüm değerlerini geçersiz kılar.

API Değişiklikleri

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

Hata Düzeltmeleri

  • WindowLayoutInfoPublishRule uygulamasını, WindowLayoutInfo tabanlı Context üzerinde geçersiz kılmaları destekleyecek şekilde güncelleyin. (I2037a)

Sürüm 1.2.0-alpha01

24 Mayıs 2023

androidx.window:window-*:1.2.0-alpha01 iptal edilir. 1.2.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

Etkinlik yerleştirme ve WindowLayoutInfoTracker ile ilgili test API'lerini kararlılık kazandırın. 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ı işlevler kararlı sürüme yükseltildi.

API Değişiklikleri

  • Etkinlik yerleştirme ile ilgili birim testini desteklemek için ActivityEmbeddingRule kararlılığı sağlandı. (I8d6b6)
  • WindowMetrisCalculatorTestRule, JVM testleri için sahte metriklerin kullanılmasına olanak tanıyan kararlı bir sürümdür. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.
  • JVM testini desteklemek için WindowLayoutInfo test API'lerini kararlı hale getirin. (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 iptal edilir. 1.1.0 sürümü şu commit'leri içerir.

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

Etkinlik Yerleştirme

  • Uygulama manifest dosyasında PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, <application> etiketinin boole özelliği olarak eklendi.
  • Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi vermek 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 sınıfı eklendi.
  • SplitController, birkaç modül olarak yeniden düzenlendi:
    • 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'leri eklendi:
    • addRule(): Bir kural ekler veya aynı etikete sahip 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(): Kuralları XML kural tanımlarından ayrıştırır.
  • Tüm modüllerin #getInstance() yöntemiyle başlatılması için bağlam 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() API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için SplitAttributesCalculator
  • EmbeddingRule#tag alanı eklendi.
  • SplitRule adresindeki API güncellemeleri:
    • defaultSplitAttributes eklendi: Bölünmüş bir düzenin varsayılan bölünmüş düzenini tanımlar; splitRatio ve layoutDirection yerine kullanılır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin defaultSplitAttributes diline çevirisi eklendi.
    • Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız piksel (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.
    • Varsayılan değeri ALWAYS_ALLOW olan maxAspectRatioInHorizontal özelliği eklendi.
    • Varsayılan değeri 1,4 olan maxAspectRatioInPortrait eklendi.
    • Sonlandırma davranışı sabitlerini değiştirmek için tanımlanmış FinishBehavior iç içe sınıfı.
    • SplitPairRule ve SplitPlaceholderRule öğesinin Builder iç içe yerleştirilmiş sınıfına özellik değişiklikleri uygulandı.
  • Bölünmeyle ilgili ek bilgiler sağlamak için SplitInfo#getSplitRatio() yerine SplitInfo#getSplitAttributes() kullanıldı.

WindowLayout

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

Taşıma adımları

  • Etkinliklerin bölünmüş ekranlarda gösterilmesi için etkinlik yerleştirmeyi etkinleştirmek isteyen uygulamalar, manifest <application> etiketine PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED özelliğini eklemelidir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Bu, sistemin bir uygulama için bölünmüş ekran davranışlarını önceden optimize etmesine olanak tanır.
  • SplitInfo oranı
    • Mevcut bölünmenin yığılmış olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Cari 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(), SplitController.getInstance(Context) olarak değişir.
    • SplitController.initialize(Context, @ResId int), RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) olarak değişir.
    • SplitController.getInstance().isActivityEmbedded(Activity), ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) olarak değişir.
    • SplitController.getInstance().registerRule(rule), RuleController.getInstance(Context).addRule(rule) olarak değişir.
    • SplitController.getInstance().unregisterRule(rule), RuleController.getInstance(Context).removeRule(rule) olarak değişir.
    • SplitController.getInstance().clearRegisteredRules(), RuleController.getInstance(Context).clearRules() olarak değişir.
    • SplitController.getInstance().getSplitRules(), RuleController.getInstance(Context).getRules() olarak değişir.
  • SplitRule mülk taşıma işlemleri:
    • minWidth ve minSmallestWidth artık pikseller yerine dp birimlerini kullanıyor. Uygulamalar şu çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya yalnızca minWith piksel cinsinden displayMetrics#density ile bölebilir.
  • Sonlandırma davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FINISH_NEVER, FinishBehavior.NEVER olarak değişir.
    • FINISH_ALWAYS, FinishBehavior.ALWAYS olarak değişir.
    • FINISH_ADJACENT, FinishBehavior.ADJACENT olarak değişir.
  • Düzen yönü SplitAttributes.LayoutDirection'ya taşınmalıdır:
    • ltr, SplitAttributes.LayoutDirection.LEFT_TO_RIGHT olarak değişir.
    • rtl, SplitAttributes.LayoutDirection.RIGHT_TO_LEFT olarak değişir.
    • locale, SplitAttributes.LayoutDirection.LOCALE olarak değişir.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio)'ye taşınmalıdır.
  • SplitPairRule.Builder migrations:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth), kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. olarak değiştirildi
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) olarak değiştirildi
    • setFinishPrimaryWithSecondary ve setFinishSecondaryWithPrimary, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.
    • Dikey cihazlarda bölünmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) simgesini kullanın.
  • SplitPlaceholder.Builder migrations:
    • Yalnızca filters ve placeholderIntent parametrelerini içerir. Diğer özellikler ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder migrations" (SplitPairRule.Builder taşımaları) başlıklı makaleye bakın.
    • setFinishPrimaryWithPlaceholder, FinishBehavior enum benzeri sabitlerini alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) şu şekilde değişir: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Dikey cihazlarda bölünmeleri 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 iptal edilir. 1.1.0-rc01 sürümü şu commit'leri içerir.

Yeni Özellikler

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

Sürüm 1.1.0-beta02

5 Nisan 2023

androidx.window:window-*:1.1.0-beta02 iptal edilir. 1.1.0-beta02 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Dahili düzeltmeler ve temizleme.

Sürüm 1.1.0-beta01

22 Mart 2023

androidx.window:window-*:1.1.0-beta01 iptal edilir. 1.1.0-beta01 sürümü şu commit'leri içerir.

Etkinlik Yerleştirme

  • Uygulama manifest dosyasında PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, <application> etiketinin boole özelliği olarak eklendi.
  • Bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi vermek 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 sınıfı eklendi.
  • SplitController, birkaç modül olarak yeniden düzenlendi:
    • 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ü:
    • SplitController API'leri kaldırıldı:
      • clearRegisteredRules()
      • getSplitRules()
      • initialize()
      • registerRule()
      • unregisterRule()
    • RuleController API'leri eklendi:
      • addRule(): Bir kural ekler veya aynı etikete sahip 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()`: Kuralları XML kural tanımlarından ayrıştırır.
  • Tüm modüllerin #getInstance() yöntemiyle başlatılması için bağlam 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 adresindeki API güncellemeleri:
    • defaultSplitAttributes eklendi: Bölünmüş bir düzenin varsayılan bölünmüş düzenini tanımlar; splitRatio ve layoutDirection yerine kullanılır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin defaultSplitAttributes diline çevirisi eklendi.
    • Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız piksel (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.
    • Varsayılan değeri ALWAYS_ALLOW olan maxAspectRatioInHorizontal özelliği eklendi.
    • Varsayılan değeri 1.4 olan maxAspectRatioInPortrait özelliği eklendi.
    • Sonlandırma davranışı sabitlerini değiştirmek için tanımlanmış FinishBehavior iç içe sınıfı.
    • Mülk değişikliklerini SplitPairRule ve SplitPlaceholderRule'nin Builder iç içe yerleştirilmiş sınıfına uyguladı.
  • Bölünmeyle ilgili ek bilgiler sağlamak için SplitInfo#getSplitRatio() yerine SplitInfo#getSplitAttributes() kullanıldı.

WindowLayout

  • WindowInfoTracker'ya etkinlik dışı kullanıcı arayüzü bağlamı desteği eklendi.
  • WindowMetricsCalculator öğesine etkinlik dışı kullanıcı arayüzü bağlamı eklendi.

Taşıma adımları

  • Etkinliklerin bölünmüş ekranlarda gösterilmesi için etkinlik yerleştirmeyi etkinleştirmek isteyen uygulamalar, manifest <application> etiketine PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED özelliğini eklemelidir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Bu, sistemin bir uygulama için bölünmüş ekran davranışlarını önceden optimize etmesine olanak tanır.
  • SplitInfo oranı
    • Mevcut bölünmenin yığılmış olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Cari 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 migrations:
    • SplitController.getInstance(), SplitController.getInstance(Context) olarak değişir.
    • SplitController.initialize(Context, @ResId int), RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) olarak değişir.
    • SplitController.getInstance().isActivityEmbedded(Activity), ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) olarak değişir.
    • SplitController.getInstance().registerRule(rule), RuleController.getInstance(Context).addRule(rule) olarak değişir.
    • SplitController.getInstance().unregisterRule(rule), RuleController.getInstance(Context).removeRule(rule) olarak değişir.
    • SplitController.getInstance().clearRegisteredRules(), RuleController.getInstance(Context).clearRules() olarak değişir.
    • SplitController.getInstance().getSplitRules(), RuleController.getInstance(Context).getRules() olarak değişir.
  • SplitRule mülk taşıma işlemleri:
    • minWidth ve minSmallestWidth artık pikseller yerine dp birimlerini kullanıyor. Uygulamalar şu çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya yalnızca minWith piksel cinsinden displayMetrics#density ile bölebilir.
  • Sonlandırma davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FINISH_NEVER, FinishBehavior.NEVER olarak değişir.
    • FINISH_ALWAYS, FinishBehavior.ALWAYS olarak değişir.
    • FINISH_ADJACENT, FinishBehavior.ADJACENT olarak değişir.
  • Düzen yönü SplitAttributes.LayoutDirection'ya taşınmalıdır:
    • ltr, SplitAttributes.LayoutDirection.LEFT_TO_RIGHT olarak değişir.
    • rtl, SplitAttributes.LayoutDirection.RIGHT_TO_LEFT olarak değişir.
    • locale, SplitAttributes.LayoutDirection.LOCALE olarak değişir.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio)'ye taşınmalıdır.
  • SplitPairRule.Builder migrations:
    • SplitPairRule.Builder(filters, minWidth, minSmallestWidth), kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. olarak değiştirildi
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) olarak değişir.
    • setFinishPrimaryWithSecondary ve setFinishSecondaryWithPrimary, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.
    • Dikey cihazlarda bölünmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) simgesini kullanın.
  • SplitPlaceholder.Builder migrations:
    • Yalnızca filters ve placeholderIntent parametrelerini içerir. Diğer özellikler ayarlayıcılara taşınır. Ayrıntılar için "SplitPairRule.Builder migrations" (SplitPairRule.Builder taşımaları) başlıklı makaleye bakın.
    • setFinishPrimaryWithPlaceholder, FinishBehavior enum benzeri sabitlerini alır. Ayrıntılar için "SplitRule migrations" (Bölme kuralı taşımaları) başlıklı makaleyi inceleyin.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) şu şekilde değişir: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Dikey cihazlarda bölünmeleri 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 iptal edilir. 1.1.0-alpha06 sürümü şu commit'leri içerir.

Yeni Özellikler

  • WindowLayoutInfo değerini kullanıcı arayüzü bağlamından alma işleminin deneysel sürümünü kullanıma sunma.

API Değişiklikleri

  • Etkinlik yerleştirmenin kullanılabilir olup olmadığını belirtmek için splitSupportStatus ekleyin. (I10024)
  • Kullanıcı arayüzü bağlamı WindowLayoutInfo API'sini deneysel olarak kullanıma sunun. (I58ee0)
  • WindowAreaController ve API'leri kullanıma sunarak RearDisplay modunun etkinleştirilmesini ve mevcut pencerenin arka kamerayla hizalanmış ekrana taşınmasını sağlar. (Iffcbf)
  • Varsayılan arka plan rengini güncelleyin. (I1ac1b)
  • SplitAttributes parametrelerini ekleyin. (I18bdd)
  • SplitRule, SplitAttributes, SplitAttributesCalculator için API'ler ekleyin. (I92d23)
  • maxAspectRatio ile ilgili API'leri iyileştirme:
    1. alwaysAllow() ve alwaysDisallow() öğelerini ALWAYS_ALLOW ve ALWAYS_DISALLOW ile değiştirin.
    2. @see ile ilgili API belgelerini bağımsız belgelerle güncelleyin. (I3057b)
  • Aşağıdaki oluşturucular, uygulamalar tarafından çağrılmaması gerektiğinden herkese açık API'lerden kaldırıldı.
    • SplitInfo oluşturucu
    • ActivityStack oluşturucu (Ide534)
  • SplitRule artık maxAspectRatioInPortrait/Landscape sürüyor. Yalnızca üst sınırlardaki en-boy oranı, istenen maxAspectRatio değerinden küçük veya bu değere eşit olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)
  • RuleController#parseRules değerini statik (I785df) olarak değiştirme
  • ActivityEmbedding ile ilgili API'leri iyileştirme
    1. API adlandırmasını hizalama - Birden fazla örnek için ekleme/kaldırma işlemlerini kullanın:
    2. registerRule, addRule olarak değiştirildi
    3. unregisterRule, removeRule olarak değiştirildi
    4. ActivityRule bir bölme kuralı olmadığından getSplitRules yerine getRules koyun
    5. Bir dizi kural belirlemek için RuleController#setRules ekleyin
    6. Kural çıkarma ile ilgili API'leri SplitController öğesinden tek öğeli RuleController öğesine taşıyın. Bu özellikler:
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. #isActivityEmbedded dosyasını SplitController konumundan tek öğeli ActivityEmbeddingController konumuna çıkarın. Bu özellikler:
    14. isActivityEmbedded
    15. SplitController#initialize öğesini kaldırın. XML dosyasından kural ayarlamak için lütfen RuleController#parseRules ve #setRules 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 ile çalışma zamanı kuralları arasında ayrım yapmıyoruz. Bununla birlikte, #clearRules sonuçlarını çağırmak, statik XML kural tanımlarıyla veya çalışma zamanında kaydedilmiş olmalarından bağımsız olarak tüm kuralları temizler. SplitController#clearRegisteredRules için eski davranışı kullanmak istiyorsanız lütfen XML kaynakları kimliğiyle RuleController#parseRules işlevini çağırın ve kuralları tekrar ayarlamak için RuleController#setRules işlevini ç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 için yeniden düzenleme yaparak minimum boyutları isteğe bağlı hale getirin. (I95f17)
  • SplitController öğesini başlatmak için bir bağlam iletme (I42549)
  • SplitRule#layoutDir, #layoutDirection olarak, SplitRule Builder#setLayoutDir ise 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 iptal edilir. 1.1.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • ActivityEmbedding için ActivityStack öğesinin boş olup olmadığını belirlemeye yarayan bir yöntem sunun.
  • ActivityEmbedding API'lerinden deneysel API etiketleri kaldırıldı.
  • ActivityRule oluşturucuyu gizleyin. Çünkü Builder, oluşturma için tercih edilen yöntemdir.
  • WindowInsets üzerinde WindowMetrics elde etmek için deneysel bir yöntem ekleyin.
  • Yer tutucunun tamamlanmasını önlemek için SplitPlaceholderFinishBehavior güncelleyin. Yer tutucuyu tamamlama işlemi, kafa karıştırıcı davranışlara neden oluyordu.

API Değişiklikleri

  • Eğlenceli isEmpty işlevini değiştirmek için val isEmpty işlevini herkese açık yapın.
  • ActivityStack parametre etkinliklerini activitiesInProcess olarak yeniden adlandırın. (Ia5055)
  • ActivityFilter#matchesClassName ve ActivityFilter#matchesClassNameOrWildCard öğelerini kafa karıştırıcı oldukları için kaldırın.
  • Arayanın farklı filtreleri ayırt edebilmesi için ActivityFilter#componentName abd ActivityFilter#intentAction ifadesini ekleyin (I41f22)
  • @Deprecated API'lerini deneysel API'den (I216b3) kaldırma
  • Etkinlik yerleştirme API'leri için @ExperimentalWindowApi simgesini kaldırın (I69ebe)
  • ActivityRule oluşturucusunu gizleyin, bunun yerine Builder'ı kullanın. (If4eb6)
  • Bir etkinliğin ActivityFilter'e dahil olup olmadığını kontrol etmek için API'ler ekleyin. (Ia43cf)
  • WindowMetrics ve WindowMetricsCalculatorCompat sınıflarındaki değişiklikleri yansıtmak için API dosyalarını güncelleme (I667fe)
  • ActivityEmbedding özelliği Javadoc'u ve sınıf adını (Ia1386) güncelleme
  • AndroidManifest.xml'de kullanılacak ActivityEmbedding özellik etiketi adlarını ekleme (Id1ad4)
  • Yeni API'ler SplitPlaceholderFinishBehavior ve SplitPlaceholderRule.finishPrimaryWithPlaceholder eklendi. Bu API'ler, yer tutucu etkinliklerin ne zaman tamamlandığını ve Etkinlik Yerleştirme'deki ilişkili etkinliklerin nasıl davranması gerektiğini tanımlayan mevcut SplitPlaceholderRule.finishPrimaryWithSecondary API'sinin yerini alıyor. (I64647)

Hata Düzeltmeleri

  • WindowAreaController ve API'leri kullanıma sunarak RearDisplay modunun etkinleştirilmesini ve mevcut pencerenin arka kamerayla hizalanmış ekrana taşınmasını sağlar. (I388ab)

Sürüm 1.1.0-alpha03

27 Temmuz 2022

androidx.window:window-*:1.1.0-alpha03 iptal edilir. 1.1.0-alpha03 sürümü şu commit'leri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Yerleştirme kuralı özelliklerinin varsayılan değerlerini güncelleyin. (Ic4d35)

Sürüm 1.1.0-alpha02

11 Mayıs 2022

androidx.window:window-*:1.1.0-alpha02 iptal edilir. 1.1.0-alpha02 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Java ve RxJava'yı desteklemek için bağdaştırıcı kitaplıkları yayınlayın.

Sürüm 1.1.0-alpha01

11 Mayıs 2022

androidx.window:window-*:1.1.0-alpha01 iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Java ve RxJava'yı desteklemek için adaptörleri yayınlayın

Sürüm 1.1.0-alpha01

20 Nisan 2022

androidx.window:window:1.1.0-alpha01 iptal edilir. 1.1.0-alpha01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Bir uygulamanın arka plana alınması durumunda katlama özelliklerinin kullanılmasını engelleyen 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ölümlerindeki 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 iptal edilir. 1.0.0 sürümü şu commit'leri içerir.

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

  • WindowInfoTracker ve FoldingFeature aracılığıyla katlanabilir telefonlar için destek. WindowMetricsCalculator, mevcut WindowMetrics'i hesaplamaya yardımcı olur.

Sürüm 1.0.0-rc01

15 Aralık 2021

androidx.window:window-*:1.0.0-rc01 iptal edilir. 1.0.0-rc01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • WindowInfoTracker aracılığıyla 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 iptal edilir. 1.0.0-beta04 sürümü şu commit'leri içerir.

Yeni Özellikler

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

API Değişiklikleri

  • Ayıklama uzantıları (I25a5f)
  • add isEmpty in ActivityStack (I5a4e6)
  • WindowInfoRepository'yi WindowInfoTracker olarak yeniden adlandırın.
    • java/rxjava/testing bağımlılıklarını eşleşecek şekilde güncelleyin. (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 iptal edilir. 1.0.0-beta03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Deneysel Activity Embedding API'leri eklendi. Bu ilk düzen sürümü, iki etkinliğin yan yana gösterilmesine olanak tanır.

API Değişiklikleri

  • Doğru şekilde sağlayamadığımız için currentWindowMetrics API'si kaldırıldı. Lütfen bunun yerine WindowMetricsCalculator'ı kullanın (Icda5f).
  • Uzantılar API'si güncellendi. (Ica92b)
  • Etkinliklerin yerleştirilmesine ve üst görev penceresinde yan yana gösterilmesine olanak tanıyan yeni bir özellik için arayüz eklendi. (I5711d)
  • WindowMetrics ve WindowLayoutInfo için oluşturucular 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 iptal edilir. 1.0.0-beta02 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Deneysel API'leri açıklamak için deneysel ek açıklama ekleyin. (I9f1b6)
  • Bir Rect kabul eden test FoldingFeature oluşturmak için test yöntemi ekleyin. Bu, gerçek bir Etkinlik yerine Robolectric'i 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 iptal edilir. 1.0.0-beta01 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Eski sabitler kaldırıldı ve FoldingFeature bir arayüze dönüştürüldü.

API Değişiklikleri

  • Eski sabitleri kaldırın ve FoldFeature'ı 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 S platform 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 iptal edilir. Version 1.0.0-alpha10 contains these commits.

Yeni Özellikler

  • WindowInfoRepo'yu 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'deki bir Flow'a dönüştürün.
  • WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandırın.
  • Test FoldingFeature nesneleri oluşturmak için yardımcı yöntem ekleyin
  • Paketleri, destekledikleri özelliğe göre sınıfları gruplandıracak şekilde güncelleyin.

API Değişiklikleri

  • ActivityExt'i ActivityExtensions olarak yeniden adlandırın. Repo'yu Repository olarak değiştirin. (I61a16)
  • Sınıflar için paketleri güncelleyin. (I23ae2)
  • WindowInfoRepo'dan WindowMetrics'i kaldırın (I24663)
  • WindowManager'ı kaldırıp WindowInfoRepo'yu kullanma
    • WindowBackend'i dahili yapın. (I06d9a)
  • Pencere metriklerini Flow'a dönüştürün.
    • Java bağdaştırıcısını WindowInfoRepoCallbackAdapter olarak yeniden adlandırın.
    • Deneysel API'lerin 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'dan occlusionType'a geçiş (If4cff)

Hata Düzeltmeleri

  • Çekirdek kitaplığın kaldırılmasına neden olan 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 tetiklememesi hatası düzeltildi.

Sürüm 1.0.0-alpha09

30 Haziran 2021

androidx.window:window-*:1.0.0-alpha09 iptal edilir. Version 1.0.0-alpha09 contains these commits.

Yeni Özellikler

  • Tam sayı sabitlerinden sınırsız numaralandırılmış türlere geçiş yapın.
  • 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ına birden fazla tüketici eklerken başlangıç değerini yayınlayın.

Sürüm 1.0.0-alpha08

16 Haziran 2021

androidx.window:window-*:1.0.0-alpha08 iptal edilir. Version 1.0.0-alpha08 contains these commits.

Yeni Özellikler

  • WindowInfoRepository kullanılırken test etmeyi kolaylaştırmak için bir test yapısı yayınlandı. 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 iptal edilir. 1.0.0-alpha07 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Temel pencere kitaplığını Kotlin'e taşıma. Gelecekte eşzamansız verileri kullanıma sunmak için eş yordamları 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ğırmaları kaydetmek ve kaydını silmek için Java dostu API'leri kullanıma sunan yeni window-java yapısı.
  • RxJava'ya uyarlanmış API'leri kullanıma sunmak 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 eş yordama dayalı API eklendi. (Iab70f)
  • Temel pencere yöneticisi kitaplığını Kotlin'e taşıma. (Icca34)

Hata Düzeltmeleri

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

Sürüm 1.0.0-alpha06

5 Mayıs 2021

androidx.window:window:1.0.0-alpha06 iptal edilir. 1.0.0-alpha06 sürümü şu commit'leri içerir.

Yeni Özellikler

  • Kotlin'e geçiş sürecimizi başlattık ve bir sonraki sürümde tamamlayacağız.
  • DeviceState, herkese açık API'den kaldırıldı. Lütfen bunun yerine FoldingFeature'ı kullanın.
  • Şu anda hiçbir kullanım alanında desteklenmediği için STATE_FLIPPED, FoldingFeature durumlarından kaldırıldı.
  • Kullanımdan kaldırılan diğer API'ler de kaldırıldı.

API Değişiklikleri

  • Kotlin'i bağımlılık olarak ekleme
    • Çekirdek kitaplığı Kotlin'e taşıma (Idd995)
  • DisplayFeature oluşturucu kaldırıldı. (I61fa4)
  • DeviceState, herkese açık API'den kaldırıldı. Bunun yerine FoldingFeature kullanın. (Id6079)
  • Uzantılardan cihaz durumu geri aramasını kaldırın. (I5ea83)
  • STATE_FLIPPED öğesini FoldingFeature'dan 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 iptal edilir. 1.0.0-alpha05 sürümü şu commit'leri içerir.

Yeni Özellikler

Uygulamaların, özelliğin ayırıp ayırmadığını, kapatıp kapatmadığını ve menteşenin yönünü belirleyebilmesi için FoldingFeature'a kolaylık sağlayan yöntemler ekledik. Ayrıca, menteşe türünü de gizliyoruz. Böylece

WindowManager'dan senkron okuma yöntemlerini kaldırıyoruz. Eşzamanlı okuma yöntemleri, örtülü bir yarışma durumu olduğundan hataya açıktır. WindowLayoutInfo ile ilgili güncellemeleri almak için dinleyicileri ve geri çağırmaları kaydedin.

API Değişiklikleri

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

Sürüm 1.0.0-alpha04

10 Mart 2021

androidx.window:window:1.0.0-alpha04 iptal edilir. 1.0.0-alpha04 sürümü şu commit'leri içerir.

Yeni Özellikler

  • OEM uygulaması yoksa WindowLayoutInfo'nun yayınlanmamasına neden olan hata düzeltildi. Şimdi boş bir WindowLayoutInfo yayınlıyoruz.
  • Uygulama arka plandayken menteşe durumu değiştiğinde durumun düzgün şekilde güncellenmemesine neden olan hata düzeltildi. Durum artık tutarlı olmalıdır.
  • Çalışma zamanı bağımlılıklarından gelen uyarıları yoksaymak için proguard dosyalarımızı güncelleyin.

Hata Düzeltmeleri

  • OEM kitaplığı eksik olduğunda boş bir değer yayınlayın. (Ide935)

Sürüm 1.0.0-alpha03

18 Şubat 2021

androidx.window:window:1.0.0-alpha03 iptal edilir. 1.0.0-alpha03 sürümü şu commit'leri içerir.

Yeni Özellikler

  • OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer yayınlayın. Bu sayede kitaplığı daha fazla cihazda kullanmak kolaylaşır. API'ler eşzamansız olduğundan, uygulamaların yine de bazı savunma kodları yazması ve zaman aşımından sonra varsayılan bir değer yayınlaması önerilir. OEM uygulamalarıyla ilgili herhangi bir garantimiz yoktur ve ilk değer gecikebilir.

Hata Düzeltmeleri

  • OEM kitaplığı eksik olduğunda boş bir değer yayınlayın. (Ide935)

Sürüm 1.0.0-alpha02

27 Ocak 2021

androidx.window:window:1.0.0-alpha02 iptal edilir. 1.0.0-alpha02 sürümü şu commit'leri içerir.

Yeni Özellikler

  • API'yi kolaylaştırmak ve hataları azaltmak için bazı API'lerin desteğini sonlandırdık. WindowManager'dan senkron okuma işlemlerinin kaldırılması ve DeviceState'in desteğinin sonlandırılması bu değişikliklere örnek olarak verilebilir. Eşzamanlı okuma işlemleri yarış koşullarına yol açabilir ve kullanıcı arayüzü yanlış olabilir.

  • DisplayFeature'ı, diğer özelliklerin bundan sonra uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz, artık ekran katlamasını veya menteşeyi temsil eden FoldingFeature. Bu, DeviceState'in yerini alan menteşenin durumunu da içerir.

  • WindowMetrics, geliştiricilere bir pencereyle ilgili metrikleri (ör. ekrandaki konumu ve boyutu ile sistem yerleşimleri) sorgulamak için basit bir yöntem sunmak üzere Android 11'de kullanıma sunulmuştur. Bu sürümde API'yi geriye dönük olarak taşıdık. Böylece geliştiriciler WindowMetrics'ten yararlanabilir ve eski Android sürümlerini desteklemeye devam edebilir. WindowMetrics, WindowManager#getCurrentWindowMetrics() ve WindowManager#getMaximumWindowMetrics() API'leri aracılığıyla elde edilebilir.

API Değişiklikleri

  • Bir sonraki alfa sürümünde (Ib7cc4) kaldırılacak API'lerin desteğini sonlandırma
  • Açık Etkinlik referanslarını kabul etmek için ExtensionInterface güncellendi. (I07ded)
  • WindowMetrics API'yi tanıtır. (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ı (External Contribution)

  • Verilere erişimi kolaylaştırmak için DeviceState ve WindowLayoutInfo'yu 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ü şu commit'leri içerir. Bu, Pencere Yöneticisi kitaplığının ilk sürümüdür.

Yeni özellikler

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