Pencere Yöneticisi

Jetpack WindowManager kitaplığı, uygulama geliştiricilerin yeni cihaz form faktörlerini ve çoklu pencere ortamlarını desteklemesine olanak tanır. Kitaplık, API 14 ve sonraki sürümler için ortak bir API yüzeyi sağlar. İlk sürümde katlanabilir cihazlar hedeflenir. Ancak gelecekteki sürümlerde, daha fazla ekran türü ve pencere özelliği kullanıma sunulacaktır.
Son Güncelleme Kararlı Sürüm Serbest Bırakma Adayı Beta Sürümü Alfa Sürümü
15 Kasım 2023 1.2.0 - - 1.3.0-alpha01

Bağımlılıkları bildirme

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

Uygulamanız veya modülünüz için build.gradle dosyasına ihtiyaç duyduğunuz yapıların bağımlılıklarını ekleyin:

Groovy

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

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

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

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

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

Kotlin

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

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

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

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

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

Geri bildirim

Geri bildirimleriniz Jetpack'i iyileştirmemize yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı geliştirmek için fikirleriniz varsa lütfen bize bildirin. Yeni hesap 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 belgelerine bakın.

Sürüm 1.3

Sürüm 1.3.0-alpha01

15 Kasım 2023

androidx.window:window-*:1.3.0-alpha01 yayınlandı. Sürüm 1.3.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturma amaçlı test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamayla ilgili test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext öğesinden değer alırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, katlanan özellik verilerini UiContext parametreye bildiriyor.
  • Cihazda Uzantılar Sürümü'nü kullanıma sunun.

Sürüm 1.2

Sürüm 1.2.0

15 Kasım 2023

androidx.window:window-*:1.2.0 yayınlandı. 1.2.0 sürümü bu kayıtları içerir.

1.1.0 sürümünden sonraki önemli değişiklikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturma amaçlı test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamayla ilgili test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext öğesinden değer alırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, katlanan özellik verilerini UiContext parametreye bildiriyor.
  • Cihazda Uzantılar Sürümü'nü kullanıma sunun.

Sürüm 1.2.0-rc01

1 Kasım 2023

androidx.window:window-*:1.2.0-rc01 yayınlandı. Sürüm 1.2.0-rc01 bu kayıtları içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturma amaçlı test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamayla ilgili test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext öğesinden değer alırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, katlanan özellik verilerini UiContext parametreye bildiriyor.
  • Cihazda Uzantılar Sürümü'nü kullanıma sunun.

Sürüm 1.2.0-beta04

18 Ekim 2023

androidx.window:window-*:1.2.0-beta04 yayınlandı. Sürüm 1.2.0-beta04 bu kayıtları 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ınlandı. Sürüm 1.2.0-beta03 bu kayıtları içerir.

Yeni Özellikler

  • Uzantıların belirli bir sürümünün doğru çalışması için gereken API'lere yönelik 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üne ek açıklama ekleyin.
    • Etkinlik Yerleştirme bileşenindeki isXXXSupported öğesini kaldırın. (Ie3dae)
  • Cihazdaki uzantı sürümünü bildirmek için WindowSdkExtensions uygulamasını tanıtın.
    • Gereken minimum uzantı sürümüne ek açıklama eklemek için RequiresWindowSdkExtension özelliğini ekleyin. (I05fd4)
  • WindowAreaInfo#getCapability değerini null olamaz. (I17048)

Sürüm 1.2.0-beta01

26 Temmuz 2023

androidx.window:window-*:1.2.0-beta01 yayınlandı. Sürüm 1.2.0-beta01 bu kayıtları içerir.

Yeni Özellikler

  • Arka ekrana erişmek için deneysel pencere API'lerini kullanıma sunun.
  • FoldingFeature oluşturma amaçlı test API'leri artık kararlı.
  • Sahte ActivityEmbedding değerleri ayarlamayla ilgili test API'leri artık kararlı.
  • WindowLayoutInfoPublisherRule artık bir UiContext öğesinden değer alırken geçersiz kılmayı bildiriyor.
  • WindowInfoTracker, katlanan özellik verilerini UiContext parametreye bildiriyor.

API Değişiklikleri

  • API değişikliklerinin 1.3'te (I857f5) kararlı bir sürümde devam etmesine izin vermek için WindowArea API'lerini deneysel olarak işaretler
  • API dosyaları, uyumluluk önleme ek açıklaması içerecek şekilde güncellendi (I8e87a, b/287516207)

Sürüm 1.2.0-alpha03

21 Haziran 2023

androidx.window:window-*:1.2.0-alpha03 yayınlandı. Sürüm 1.2.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • Kullanımdan kaldırılan API'leri API yüzeyinden kaldırma.
  • 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 özellik ekleyin.
  • Minimum en boy oranını geçersiz kılmayı devre dışı bırakmak için özellik ekleyin.
  • Etkinlik yerleştirme çevresinde birim testlerini desteklemek için ActivityEmbeddingRule uygulamasını sabitleyin.

API Değişiklikleri

  • Kullanımdan kaldırılan API'leri kaldırın (I18d39)
  • Eşzamanlı ekranlar için destek ekleyin. (Ifcbb0)

Hata Düzeltmeleri

  • Zorunlu yeniden boyutlandırma geçersiz kılması için kapsam dışında kalma uyumluluk özelliği ekleme (Ie7ab1)
  • SESSION_STATE_CONTENT_INVISIBLE uzantısını uzantılar arayüzünden kaldırır. (I6ed19)
  • Etkinlik yerleştirme kapsamında birim testlerini desteklemek için ActivityEmbeddingRule politikasını sabitleyin. (I8d6b6)
  • Minimum en boy oranını geçersiz kılma özelliği için devre dışı bırakma uyumluluğu özelliği ekleniyor. (I66390)
  • Kullanımdan kaldırılan WindowArea API'lerini (Ieb67c) kaldırır
  • Yön isteği döngü ö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ü yok sayan kapsam dışında kalma uyumluluk özelliği ekleme (I0a7a2)
  • Özelliğin zaten etkin olduğunu belirtmek için WindowAreaComponent#STATUS_ACTIVE ekleyin. (I62bc3)
  • RearDisplayPresentationMode API'leri ekleyin (I0401c)
  • Kararlı sürüm için arka plan rengi API'sini kaldırın. (I34c3e)
  • Window Area API'lerini gizleyin. (I39de0)
  • SplitController öğesinde SplitInfo öğesini geçersiz kılmak için yöntemler ekleyin. SplitInfo ve ActivityStack için ikili 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 an 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 şekilde bölmek için yedeklenir. Yedek bölme türünü özelleştirmek için SplitController#setSplitAttributesCalculator öğesini kullanın. (Ifcc59)
  • add/removeSplitCallback öğesini kullanımdan kaldırın
    • add/removeSplitCallback öğeyi SplitControllerCallbackAdapter hedefine taşıyın
    • SplitInfo listesini almak için Flow desteğini ekleyin (I7f1b6)
  • ActivityEmbeddingController için bir test kuralı ekleyin (I42e9b)
  • ActivityOptionsCompat, ActivityEmbeddingOptions olarak yeniden adlandırılıyor (I89301)
  • Etkinlik yerleştirme özelliğinin kullanılabildiğini belirtmek için splitSupportStatus ekleyin. (I10024)
  • DEFAULT değerini daha iyi temsil etmek için SplitAttributes.BackgroundColor ifadesini ekleyin. Opak olmayan animasyon arka plan renginin desteklenmediğini, böylece opak olmayan renklerin varsayılan olarak değerlendirileceğini ve böylece geçerli tema penceresi arka plan renginin kullanılacağını açıklayın. (Ic6b95)
  • alwaysAllow() ve alwaysDisallow() değerlerini ALWAYS_ALLOW ve ALWAYS_DISALLOW ile değiştirin. (I3057b)
  • SplitRule, SplitAttributes, SplitAttributesCalculator için API'leri ekleyin. (I92d23)
  • Test amacıyla ActivityStack oluşturmak için TestActivityStack ekleyin
    • Test amacıyla SplitInfo oluşturmak için TestSplitInfo ekleyin. (I8e779)
  • Geliştiricilerin özelleştirilmiş SplitAttributesCalculator (Id4a6e) doğrulayabilmeleri için sahte SplitAttributesCalculatorParams oluşturma yöntemi ekleyin
  • 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ınlandı. Sürüm 1.2.0-alpha02 bu kaydetmeleri içerir.

Yeni Özellikler

  • Test API'sini, belirtilmemiş katlama özellikleri için sabit bir değer içerecek şekilde güncelleyin.
  • WindowLayoutInfoPublishRule ile geçersiz kılma işlemi, Bağlama Dayalı API de dahil olmak üzere tüm windowLayoutInfo değerlerini geçersiz kılar.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Context tabanlı WindowLayoutInfo üzerinde geçersiz kılma işlemlerini desteklemek için WindowLayoutInfoPublishRule uygulamasını güncelleyin. (I2037a)

Sürüm 1.2.0-alpha01

24 Mayıs 2023

androidx.window:window-*:1.2.0-alpha01 yayınlandı. Sürüm 1.2.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

Test API'lerini Etkinlik Yerleştirme ve WindowLayoutInfoTracker ile ilgili olarak kararlı hale getirin. ActivityEmbeddingRule uygulamasının düzeyi kararlı seviyeye yükseltildi. WindowMetricsCalculatorRule uygulamasının düzeyi kararlı seviyeye yükseltildi. Test için FoldingFeature oluşturan yardımcı program işlevleri kararlı sürüme yükseltildi.

API Değişiklikleri

  • Etkinlik yerleştirme kapsamında birim testlerini desteklemek için ActivityEmbeddingRule politikasını sabitleyin. (I8d6b6)
  • WindowMetrisCalculatorTestRule, JVM testleri için saplama metriklerine izin vermeye devam ediyor. Doğru sonuçlar için bir emülatör kullanmanızı öneririz.
  • JVM testini desteklemek amacıyla test API'lerini WindowLayoutInfo için 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ınlandı. Sürüm 1.1.0 bu kayıtları içerir.

1.0.0 sürümünden sonraki önemli değişiklikler

Etkinlik Yerleştirme

  • PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, uygulama manifestindeki <application> etiketinin boole özelliği olarak eklendi.
  • isSplitSupported kullanımdan kaldırıldı ve bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için splitSupportStatus ile değiştirildi.
  • splitSupportStatus özelliği için durum sabitleri sağlamak üzere iç içe yerleştirilmiş SplitController.SplitSupportStatus sınıfı eklendi.
  • SplitController, çeşitli modüller olarak yeniden düzenlendi:
    • Activity veya ActivityStack ile ilgili API'ler için ActivityEmbeddingController modülü.
    • isActivityEmbedded, SplitController konumundan ActivityEmbeddingController konumuna taşındı.
    • EmbeddingRule ilgili işlem için RuleController modülü:
    • SplitController API kaldırıldı:
    • clearRegisteredRules()
    • getSplitRules()
    • initialize()
    • registerRule()
    • unregisterRule()
    • RuleController API eklendi:
    • addRule(): Bir kural ekler veya aynı etikete sahip kuralı günceller.
    • removeRule(): Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.
    • setRules(): Bir kurallar koleksiyonu oluşturur.
    • clearRules(): Tüm kayıtlı kuralları kaldırır.
    • parseRules(): Kuralları XML kural tanımlarından ayrıştırır.
  • Tüm modüller, aşağıdakiler dahil olmak üzere #getInstance() yöntemiyle başlatılacak bir bağlam gerektirir:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Görüntülü reklam 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 SplitController öğesine SplitAttributes hesap makinesi işlevi eklendi:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • SplitAttributesCalculator API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için isSplitAttributesCalculatorSupported()
  • EmbeddingRule#tag alanı eklendi.
  • SplitRule API güncellemeleri:
    • defaultSplitAttributes eklendi: Bir bölmenin varsayılan bölme düzenini tanımlar. splitRatio ve layoutDirection öğelerinin yerini alır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin çevirisi defaultSplitAttributes diline eklendi.
    • Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanılacak şekilde değiştirildi.
    • Varsayılan değeri 600 dp olan minHeightDp eklendi.
    • minWidth, varsayılan değer 600 dp olan minWidthDp olarak değiştirildi.
    • minSmallestWidth, varsayılan değer 600 dp olan minSmallestWidthDp olarak değiştirildi.
    • ALWAYS_ALLOW varsayılan değerine sahip maxAspectRatioInHorizontal eklendi.
    • 1.4 varsayılan değerine sahip maxAspectRatioInPortrait eklendi.
    • Bitiş davranışı sabit değerlerini değiştirmek için iç içe FinishBehavior sınıf tanımlandı.
    • Özellik değişiklikleri, Oluşturucu için iç içe yerleştirilmiş SplitPairRule ve SplitPlaceholderRule sınıfına uygulandı.
  • SplitInfo#getSplitRatio(), bölmeyle ilgili ek bilgiler sağlamak için SplitInfo#getSplitAttributes() ile değiştirildi.

Pencere Düzeni

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

Taşıma Adımları

  • Etkinlikleri bölmelerde gösterecek şekilde etkinlik yerleştirmeyi etkinleştirmek için uygulamaların PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED özelliğini manifest <application> etiketine eklemesi gerekir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Bu, sistemin bir uygulama için bölme davranışlarını önceden optimize etmesini sağlar.
  • SplitInfo oran
    • Mevcut dağılımın gruplanmış olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Geçerli 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(Context) için SplitController.getInstance() değişikliği.
    • RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) için SplitController.initialize(Context, @ResId int) değişikliği.
    • ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) için SplitController.getInstance().isActivityEmbedded(Activity) değişikliği.
    • RuleController.getInstance(Context).addRule(rule) için SplitController.getInstance().registerRule(rule) değişikliği.
    • RuleController.getInstance(Context).removeRule(rule) için SplitController.getInstance().unregisterRule(rule) değişikliği.
    • RuleController.getInstance(Context).clearRules() için SplitController.getInstance().clearRegisteredRules() değişikliği.
    • RuleController.getInstance(Context).getRules() için SplitController.getInstance().getSplitRules() değişikliği.
  • SplitRule mülk taşıma işlemi:
    • minWidth ve minSmallestWidth artık piksel yerine dp birimleri kullanıyor. Uygulamalar şu çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya minWith sayısını piksel cinsinden displayMetrics#density sayısına bölebilir.
  • Bitiş davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FinishBehavior.NEVER için FINISH_NEVER değişikliği.
    • FinishBehavior.ALWAYS için FINISH_ALWAYS değişikliği.
    • FinishBehavior.ADJACENT için FINISH_ADJACENT değişikliği.
  • Düzen yönü SplitAttributes.LayoutDirection konumuna taşınmalıdır:
    • SplitAttributes.LayoutDirection.LEFT_TO_RIGHT için ltr değişikliği.
    • SplitAttributes.LayoutDirection.RIGHT_TO_LEFT için rtl değişikliği.
    • SplitAttributes.LayoutDirection.LOCALE için locale değişikliği.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio) adlı alana taşınmalıdır.
  • SplitPairRule.Builder taşıma işlemi:
    • kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. için SplitPairRule.Builder(filters, minWidth, minSmallestWidth) değişiklik
    • kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) için setLayoutDirection(layoutDirection) ve setSplitRatio(ratio) değişikliği yapıldı
    • setFinishPrimaryWithSecondary ve setFinishSecondaryWithPrimary, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.
    • Dikey cihazlarda bölmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) öğesini kullanın.
  • SplitPlaceholder.Builder taşıma işlemi:
    • Yalnızca filters ve placeholderIntent parametreleri vardır. Diğer mülkler, belirleyicilere taşınır. Ayrıntılar için "SplitSplitRule.Builder taşıma işlemleri" bölümüne bakın.
    • setFinishPrimaryWithPlaceholder, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), şu şekilde değişti: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Dikey cihazlarda bölmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) öğesini kullanın.

Sürüm 1.1.0-rc01

10 Mayıs 2023

androidx.window:window-*:1.1.0-rc01 yayınlandı. Sürüm 1.1.0-rc01 bu kayıtları içerir.

Yeni Özellikler

  • ActivityEmbedding sürümünü 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 yayınlandı. 1.1.0-beta02 sürümü bu kayıtları 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 yayınlandı. Sürüm 1.1.0-beta01 bu kayıtları içerir.

Etkinlik Yerleştirme

  • PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED, uygulama manifestindeki <application> etiketinin boole özelliği olarak eklendi.
  • isSplitSupported kullanımdan kaldırıldı ve bölme özelliğinin neden kullanılamadığı hakkında daha ayrıntılı bilgi sağlamak için splitSupportStatus ile değiştirildi.
  • splitSupportStatus özelliği için durum sabitleri sağlamak üzere iç içe yerleştirilmiş SplitController.SplitSupportStatus sınıfı eklendi.
  • SplitController, çeşitli modüller olarak yeniden düzenlendi:
    • Activity veya ActivityStack ile ilgili API'ler için ActivityEmbeddingController modülü.
    • isActivityEmbedded, SplitController konumundan ActivityEmbeddingController konumuna taşındı.
    • EmbeddingRule ilgili işlem için RuleController modülü:
    • SplitController API kaldırıldı:
      • clearRegisteredRules()
      • getSplitRules()
      • initialize()
      • registerRule()
      • unregisterRule()
    • RuleController API eklendi:
      • addRule(): Bir kural ekler veya aynı etikete sahip kuralı günceller.
      • removeRule(): Bir kuralı, kayıtlı kurallar koleksiyonundan kaldırır.
      • setRules(): Bir kurallar koleksiyonu oluşturur.
      • clearRules(): Tüm kayıtlı kuralları kaldırır.
      • `parseRules(): Kuralları XML kural tanımlarından ayrıştırır.
  • Tüm modüller, aşağıdakiler dahil olmak üzere #getInstance() yöntemiyle başlatılacak bir bağlam gerektirir:
    • ActivityEmbeddingController#getInstance(Context)
    • SplitController#getInstance(Context)
    • RuleController#getInstance(Context)
  • Görüntülü reklam 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 SplitController öğesine SplitAttributes hesap makinesi işlevi eklendi:
    • setSplitAttributesCalculator(Function)
    • clearSplitAttributesCalculator()
    • SplitAttributesCalculator API'lerinin cihazda desteklenip desteklenmediğini kontrol etmek için isSplitAttributesCalculatorSupported()
  • EmbeddingRule#tag alanı eklendi.
  • SplitRule API güncellemeleri:
    • defaultSplitAttributes eklendi: Bir bölmenin varsayılan bölme düzenini tanımlar. splitRatio ve layoutDirection öğelerinin yerini alır.
    • splitRatio ve splitLayoutDirection XML özelliklerinin çevirisi defaultSplitAttributes diline eklendi.
    • Minimum boyut tanımları, piksel yerine yoğunluktan bağımsız pikseller (dp) kullanılacak şekilde değiştirildi.
    • Varsayılan değeri 600 dp olan minHeightDp eklendi.
    • minWidth, varsayılan değer 600 dp olan minWidthDp olarak değiştirildi.
    • minSmallestWidth, varsayılan değer 600 dp olan minSmallestWidthDp olarak değiştirildi.
    • ALWAYS_ALLOW varsayılan değerine sahip maxAspectRatioInHorizontal eklendi.
    • 1.4 varsayılan değerine sahip maxAspectRatioInPortrait eklendi.
    • Bitiş davranışı sabit değerlerini değiştirmek için iç içe FinishBehavior sınıf tanımlandı.
    • Özellik değişiklikleri, iç içe yerleştirilmiş Builder SplitPairRule ve SplitPlaceholderRule sınıfına uygulandı.
  • SplitInfo#getSplitRatio(), bölmeyle ilgili ek bilgiler sağlamak için SplitInfo#getSplitAttributes() ile değiştirildi.

Pencere Düzeni

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

Taşıma Adımları

  • Etkinlikleri bölmelerde gösterecek şekilde etkinlik yerleştirmeyi etkinleştirmek için uygulamaların PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED özelliğini manifest <application> etiketine eklemesi gerekir: xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" /> Bu, sistemin bir uygulamaya ilişkin bölme davranışlarını önceden optimize etmesini sağlar.
  • SplitInfo oran
    • Mevcut dağılımın gruplanmış olup olmadığını kontrol edin: kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
    • Geçerli 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şlemi:
    • SplitController.getInstance(Context) için SplitController.getInstance() değişikliği.
    • RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)) için SplitController.initialize(Context, @ResId int) değişikliği.
    • ActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity) için SplitController.getInstance().isActivityEmbedded(Activity) değişikliği.
    • RuleController.getInstance(Context).addRule(rule) için SplitController.getInstance().registerRule(rule) değişikliği.
    • RuleController.getInstance(Context).removeRule(rule) için SplitController.getInstance().unregisterRule(rule) değişikliği.
    • RuleController.getInstance(Context).clearRules() için SplitController.getInstance().clearRegisteredRules() değişikliği.
    • RuleController.getInstance(Context).getRules() için SplitController.getInstance().getSplitRules() değişikliği.
  • SplitRule mülk taşıma işlemi:
    • minWidth ve minSmallestWidth artık piksel yerine dp birimleri kullanıyor. Uygulamalar şu çağrıyı kullanabilir: kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics ) veya minWith sayısını piksel cinsinden displayMetrics#density sayısına bölebilirsiniz.
  • Bitiş davranışı sabitleri, FinishBehavior enum benzeri sınıf sabitlerine taşınmalıdır:
    • FinishBehavior.NEVER için FINISH_NEVER değişikliği.
    • FinishBehavior.ALWAYS için FINISH_ALWAYS değişikliği.
    • FinishBehavior.ADJACENT için FINISH_ADJACENT değişikliği.
  • Düzen yönü SplitAttributes.LayoutDirection konumuna taşınmalıdır:
    • SplitAttributes.LayoutDirection.LEFT_TO_RIGHT için ltr değişikliği.
    • SplitAttributes.LayoutDirection.RIGHT_TO_LEFT için rtl değişikliği.
    • SplitAttributes.LayoutDirection.LOCALE için locale değişikliği.
    • splitRatio, SplitAttributes.SplitType.ratio(splitRatio) adlı alana taşınmalıdır.
  • SplitPairRule.Builder taşıma işlemi:
    • kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600. için SplitPairRule.Builder(filters, minWidth, minSmallestWidth) değişiklik
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ) olarak değişti
    • setFinishPrimaryWithSecondary ve setFinishSecondaryWithPrimary, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.
    • Dikey cihazlarda bölmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) öğesini kullanın.
  • SplitPlaceholder.Builder taşıma işlemi:
    • Yalnızca filters ve placeholderIntent parametreleri vardır. Diğer mülkler, belirleyicilere taşınır. Ayrıntılar için "SplitSplitRule.Builder taşıma işlemleri" bölümüne bakın.
    • setFinishPrimaryWithPlaceholder, FinishBehavior enum benzeri sabitleri alır. Ayrıntılar için "SplitRule taşıma işlemleri" bölümüne bakın.
    • setLayoutDirection(layoutDirection) ve setSplitRatio(ratio), şu şekilde değişti: kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
    • Dikey cihazlarda bölmeleri göstermek için setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW) öğesini kullanın.

Sürüm 1.1.0-alpha06

22 Şubat 2023

androidx.window:window-*:1.1.0-alpha06 yayınlandı. Sürüm 1.1.0-alpha06 bu kayıtları içerir.

Yeni Özellikler

  • Kullanıcı arayüzü bağlamından WindowLayoutInfo almanın deneysel sürümünü gösterin.

API Değişiklikleri

  • Etkinlik yerleştirme özelliğinin kullanılabildiğini belirtmek için splitSupportStatus ekleyin. (I10024)
  • UI Bağlamı WindowLayoutInfo API'sini deneysel olarak ayarla. (I58ee0)
  • Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için RearDisplay modunu etkinleştirmek üzere WindowAreaController ve API'ler kullanıma sunuldu. (Iffcbf)
  • Varsayılan arka plan rengini güncelleyin. (I1ac1b)
  • SplitAttributes parametreleri ekle. (I18bdd)
  • SplitRule, SplitAttributes, SplitAttributesCalculator için API'leri 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 oluşturucular, uygulamalar tarafından çağrılmamaları gerektiğinden herkese açık API'lerden kaldırıldı.
    • SplitInfo kurucusu
    • ActivityStack oluşturucu (Ide534)
  • SplitRule artık maxAspectRatioInPortrait/Landscape alıyor. Yalnızca üst sınırların en boy oranı istenen maxAspectRatio değerine eşit olduğunda veya bu değerden küçük olduğunda etkinliklerin bölünmesine izin verir. (Ia5990)
  • RuleController#parseRules değerini statik olarak değiştirin (I785df)
  • ActivityEmbedding API'lerini iyileştirin
    1. API adlandırmasını hizalama: Birden fazla örnek için ekle/kaldır seçeneğini kullanın:
    2. addRule için registerRule değişiklik
    3. removeRule için unregisterRule değişiklik
    4. ActivityRule bölme kuralı olmadığından getSplitRules değerini getRules ile değiştirin
    5. Bir dizi kural belirlemek için RuleController#setRules ekleyin
    6. Kuralla ilgili API'leri SplitController öğesinden RuleController tekil öğesine çıkarın. :
    7. addRule
    8. removeRule
    9. getRules
    10. setRules
    11. clearRules
    12. parseRules
    13. SplitController öğesinden #isActivityEmbedded öğesini ActivityEmbeddingController tekiline çıkarın. :
    14. isActivityEmbedded
    15. SplitController#initialize öğesini kaldır XML dosyasından kural belirlemek 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 çalışma zamanı kuralları olan statik kuralları ayırt etmiyoruz. Bununla birlikte, statik XML kural tanımlarına veya çalışma zamanında kaydedilmiş olduklarından bağımsız olarak tüm kuralları temizlemek için #clearRules sonucunu çağırmak gerekir. SplitController#clearRegisteredRules eski davranışını uygulamak için lütfen XML kaynakları kimliğiyle RuleController#parseRules yöntemini çağırın ve kuralları yeniden ayarlamak için RuleController#setRules yöntemini ç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ştirin:
    1. SplitRule için DP'de piksel yerine minimum boyutları al.
    2. Minimum boyutları isteğe bağlı olarak almak için SplitRule Oluşturucu için yeniden düzenleyin. (I95f17)
  • SplitController uygulamasını başlatmak için Bağlam bilgisi iletin (I42549)
  • SplitRule#layoutDir adlı dosya #layoutDirection, SplitRule Builder#setLayoutDir adı 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 yayınlandı. Sürüm 1.1.0-alpha04 bu kayıtları içerir.

Yeni Özellikler

  • ActivityEmbedding için bir ActivityStack öğesinin boş olup olmadığını belirlemek üzere bir yöntem sunun.
  • Deneysel API etiketleri ActivityEmbedding API'lerden kaldırıldı.
  • Tercih edilen oluşturma yöntemi Builder olduğundan ActivityRule oluşturucusunu gizleyin.
  • WindowMetrics üzerinde WindowInsets kullanmak için deneysel bir yöntem ekleyin.
  • Yer tutucunun tamamlanmasını önlemek için SplitPlaceholderFinishBehavior öğesini güncelleyin. Yer tutucunun tamamlanması bazı kafa karıştırıcı davranışlara neden oldu.

API Değişiklikleri

  • Eğlenceli isEmpty öğesinin yerine isEmpty değerini herkese açık hale getirin.
  • ActivityStack parametre etkinliklerini activitiesInProcess olarak yeniden adlandırın. (Ia5055)
  • Kafa karıştırıcı olduklarından 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 (I216b3) kaldırın
  • Activity Embedding API'leri (I69ebe) için @ExperimentalWindowApi politikasını kaldırın
  • ActivityRule oluşturucuyu gizleyin. Bunun yerine Oluşturucu'yu kullanın. (If4eb6)
  • Bir Etkinliğin ActivityFilter kapsamında 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 Özelliği Javadoc'u ve sınıf adını güncelleme (Ia1386)
  • AndroidManifest.xml dosyasında (Id1ad4) kullanılacak ActivityEmbedding özellik etiketi adları ekleniyor
  • Yeni API SplitPlaceholderFinishBehavior ve SplitPlaceholderRule.finishPrimaryWithPlaceholder eklendi. Bu API, yer tutucu etkinliklerinin 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ır. (I64647)

Hata Düzeltmeleri

  • Geçerli pencereyi arka kamerayla uyumlu ekrana taşımak için RearDisplay modunu etkinleştirmek üzere WindowAreaController ve API'ler kullanıma sunuldu. (I388ab)

Sürüm 1.1.0-alpha03

27 Temmuz 2022

androidx.window:window-*:1.1.0-alpha03 yayınlandı. Sürüm 1.1.0-alpha03 bu kaydetmeleri içerir.

Yeni Özellikler

  • Yerleştirme kuralları için varsayılan değerleri 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ınlandı. Sürüm 1.1.0-alpha02 bu kaydetmeleri içerir.

Yeni Özellikler

  • Java ve RxJava'yı desteklemek için bağdaştırıcı 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ınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Java ve RxJava'yı destekleyen bağdaştırıcılar yayınlayın

Sürüm 1.1.0-alpha01

20 Nisan 2022

androidx.window:window:1.1.0-alpha01 yayınlandı. Sürüm 1.1.0-alpha01 bu kayıtları içerir.

Yeni Özellikler

  • Bir uygulamanın arka plana alındığında katlama özellikleri yayınlamayı durdurmasına neden olan hata düzeltildi.
  • Deneysel ActivityEmbedding API'yi daha ayrıntılı inceleyin.

API Değişiklikleri

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

Hata Düzeltmeleri

  • Etkinlik bölümlerindeki kapsayıcılar için bitirme davranışını özelleştiren API'ler ekleyin (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ınlandı. 1.0.0 sürümü bu kayıtları içerir.

1.0.0'ın temel özellikleri

  • WindowInfoTracker ve FoldingFeature tarihlerine kadar katlanabilir telefonlar için destek. Geçerli WindowMetrics'in hesaplanmasına yardımcı olmak için WindowMetricsCalculator.

Sürüm 1.0.0-rc01

15 Aralık 2021

androidx.window:window-*:1.0.0-rc01 yayınlandı. Sürüm 1.0.0-rc01 bu kayıtları içerir.

Yeni Özellikler

  • WindowInfoTracker tarihinden itibaren katlanabilir telefonlar için destek eklendi.
  • Geçerli ve maksimum WindowMetrics hesaplama yöntemlerini 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ınlandı. 1.0.0-beta04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WindowInfoRepository’yi WindowInfoTracker olarak yeniden adlandırın.
  • Etkinliği, WindowInfoTracker için açık bir yöntem bağımlılığı yapın.
  • Roboecric kullanan geliştiricileri desteklemek amacıyla WindowMetricsCalculator için basit bir TestRule ekleyin.

API Değişiklikleri

  • Uzantıları ayıklama (I25a5f)
  • ActivityStack'de isBlank'i ekleyin (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 bir test kuralı ekleyin. (Ibacdb)

Sürüm 1.0.0-beta03

27 Ekim 2021

androidx.window:window-*:1.0.0-beta03 yayınlandı. 1.0.0-beta03 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Deneysel Activity Embedding API'leri ekleyin. Bu başlangıç düzen sürümü, iki Etkinliğin yan yana gösterilmesine olanak tanır.

API Değişiklikleri

  • Doğru bir şekilde sağlayamadığımız için currentWindowMetrics API'si kaldırıldı. Bunun yerine lütfen WindowMetricsCalculator (Icda5f) kullanın
  • Uzantılar API'si güncellendi. (Ica92b)
  • Etkinlikleri yerleştirmeye ve bunları üst görev penceresi içinde yan yana göstermeye olanak tanıyan yeni bir özellik için arayüz eklendi. (I5711d)
  • WindowMetrics ve WindowLayoutInfo 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 yayınlandı. 1.0.0-beta02 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Deneysel API'lere ek açıklama eklemek için deneysel ek açıklama ekleme. (I9f1b6)
  • Dikdörtgeni kabul eden bir test FoldingFeature oluşturmak için bir test yöntemi ekleyin. Bu, gerçek bir etkinlik yerine Robofactric'i kullanırken test yapmayı daha kolay hale getirecektir. (Id1cca)

Sürüm 1.0.0-beta01

18 Ağustos 2021

androidx.window:window-*:1.0.0-beta01 yayınlandı. 1.0.0-beta01 sürümü bu kayıtları içerir.

Yeni Özellikler

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

API Değişiklikleri

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

Hata Düzeltmeleri

  • Test Core kitaplığını temel alan 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ınlandı. Sürüm 1.0.0-alpha10 bu kaydetmeleri içerir.

Yeni Özellikler

  • WindowInfoRepo'yu WindowInfoRepository olarak yeniden adlandırın ve ilgili sınıfları / dosyaları ayarlayın.
  • Değer zaman içinde değiştiğinden mevcut pencere metriklerini WindowInfoRepository'de bir Akışa dönüştürün.
  • WindowInfoRepoJavaAdapter'ı WindowInfoRepoCallbackAdapter olarak yeniden adlandırın
  • Test FoldingFeature nesnelerini oluşturmak için yardımcı yöntem ekleyin
  • Paketleri, destekledikleri özelliğe göre grup sınıflarına güncelleyin.

API Değişiklikleri

  • ActivityExt'i ActivityExtensions olarak yeniden adlandırın Depodan Depoya değiştirin. (I61a16)
  • Sınıflar için paketleri güncelleme. (I23ae2)
  • WindowMetrics'i WindowInfoRepo'dan kaldırma (I24663)
  • WindowManager'ı kaldırın ve WindowInfoRepo'yu kullanın
    • WindowBackend'i dahili hale getirin. (I06d9a)
  • Pencere metriklerini akış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 geri çağırmayı kaldırın. (Ia4d15)
  • Test görüntülü reklam özelliklerini oluşturmak için yardımcı yöntem ekleyin.
    • occlusionMode ayarını occlusionType olarak değiştirin (If4cff)

Hata Düzeltmeleri

  • Temel kitaplığın kaldırıldığı ProGuard hatası düzeltildi.
  • WindowLayoutInfo'nun ek abonelere sunulmadığı hatayı düzeltin.
  • Yapılandırma değişikliklerinin, katlama özelliği güncellemelerini tetiklememesiyle ilgili hata düzeltildi.

Sürüm 1.0.0-alpha09

30 Haziran 2021

androidx.window:window-*:1.0.0-alpha09 yayınlandı. Sürüm 1.0.0-alpha09 bu kaydetmeleri içerir.

Yeni Özellikler

  • Tam sayı sabit değerlerinden sınırsız enum'lara geçiş.
  • Test katlama özellikleri oluşturmak için bir test aracı ekleyin.

API Değişiklikleri

  • Test görüntülü reklam özelliklerini oluşturmak için yardımcı yöntem ekleyin. (I3cf54)
    • occlusionMode olan fiyat occlusionType olarak değiştir.

Hata Düzeltmeleri

  • Veri akışlarının birden çok tüketicisini eklerken başlangıç değerini açığa çıkarın.

Sürüm 1.0.0-alpha08

16 Haziran 2021

androidx.window:window-*:1.0.0-alpha08 yayınlandı. 1.0.0-alpha08 sürümü bu kayıtları içerir.

Yeni Özellikler

  • WindowInfoRepository kullanırken test yapmayı kolaylaştırmak için bir test yapısı yayınlandı. DisplayFeatures ve WindowMetrics hakkında bilgi almak 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ınlandı. 1.0.0-alpha07 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Temel pencere kitaplığını Kotlin'e taşıyın. Gelecekte eşzamansız verileri ortaya çıkarmak için eş yordamlar ve askıya alma işlevleri kullanılır.
  • WindowInfoRepo'yu WindowMetrics'i ve WindowLayoutInfo akışını almak için ana etkileşim noktası olarak ekleyin.
  • Geri çağırmaları kaydetmek ve kaydı iptal etmek için Java dostu API'leri kullanıma sunan yeni window-java yapısı.
  • RxJava tarafından uyarlanmış API'leri açığa çıkaracak yeni window-rxjava2 ve window-rxjava3 yapıları.

API Değişiklikleri

  • Bağımlılıkları eşit şekilde sağlamak için WindowServices ekleyin.
    • Pencere düzeni bilgilerini kullanmak için eş yordam 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 edecek 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 yayınlandı. 1.0.0-alpha06 sürümü bu kayıtları içerir.

Yeni Özellikler

  • Kotlin'e geçiş sürecini başlattık ve bir sonraki sürümde tamamlayacağız.
  • DeviceState, herkese açık API'den kaldırıldı. Bunun yerine lütfen FoldingFeature'ı kullanın.
  • Şu anda herhangi bir kullanım alanında desteklenmediği için STATE_FLIPPED, FoldingFeature durumlarından kaldırıldı.
  • Ayrıca kullanımdan kaldırılan diğer API'leri de kaldırdık.

API Değişiklikleri

  • Kotlin'i bağımlılık olarak ekleme.
    • Temel kitaplığı Kotlin'e taşıyın. (Idd995)
  • DisplayFeature derleyici kaldırıldı. (I61fa4)
  • Herkese açık API'den DeviceState kaldırıldı. Bunun yerine FoldingFeature kullanın. (Id6079)
  • Uzantılardan cihaz durumunu geri çağırma işlemini kaldırın. (I5ea83)
  • STATE_FLIPPED adlı kişiyi FoldingFeature'dan kaldırın. (I9c4e1)
  • Kullanımdan kaldı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ınlandı. 1.0.0-alpha05 sürümü bu kayıtları içerir.

Yeni Özellikler

FoldingFeature'a kullanışlı yöntemler ekledik. Bu sayede uygulamalar, özelliğin ayırıcı olup olmadığını anlayabilir ve menteşenin yönünü belirleyebilir. Aynı zamanda menteşe türünü de

Eşzamanlı okuma yöntemlerini WindowManager'dan kaldırıyoruz. Eşzamanlı okuma yöntemleri, dolaylı bir yarış koşulu olduğundan hataya açıktır. WindowLayoutInfo ile ilgili güncellemeleri almak için işleyicileri ve geri çağırmaları kaydedin.

API Değişiklikleri

  • FoldingFeatures ile çalışmaya yönelik kolaylık yöntemleri ekleme (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 yayınlandı. 1.0.0-alpha04 sürümü bu kayıtları içerir.

Yeni Özellikler

  • OEM uygulaması yoksa WindowLayoutInfo'nun yayınlanmamasına neden olan hatayı düzeltir. Şimdi boş bir WIndowLayoutInfo yayınlarız.
  • Uygulama arka plana alınırken menteşe durumu değişirse durumun doğru bir şekilde güncellenmemesine neden olan hata düzeltildi. Artık eyalet tutarlı olmalı.
  • Ç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 at. (Ide935)

Sürüm 1.0.0-alpha03

18 Şubat 2021

androidx.window:window:1.0.0-alpha03 yayınlandı. Sürüm 1.0.0-alpha03 bu kayıtları içerir.

Yeni Özellikler

  • OEM uygulaması boş olduğunda WindowLayoutInfo için boş bir değer belirtin. Bu şekilde kitaplığın daha fazla cihazda kullanılması kolaylaşır. API'ler eşzamansız olduğundan, uygulamaların bir miktar savunma kodu yazması ve zaman aşımından sonra varsayılan bir değer yayması önerilir. OEM uygulamaları için herhangi bir garantimiz yoktur ve başlangıç değeri gecikebilir.

Hata Düzeltmeleri

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

Sürüm 1.0.0-alpha02

27 Ocak 2021

androidx.window:window:1.0.0-alpha02 yayınlandı. Sürüm 1.0.0-alpha02 bu kayıtları içerir.

Yeni Özellikler

  • API'yi basitleştirmek ve hataları azaltmak için bazı API'leri kullanımdan kaldırdık. Önemli örneklerden bazıları, eşzamanlı okuma işlemlerini WindowManager'dan kaldırmak ve DeviceState'in kullanımdan kaldırılmasıdır. Eşzamanlı okuma işlemleri, yarışma koşullarına neden olabilir ve yanlış kullanıcı arayüzüne sahip olabilir.

  • DisplayFeature'ı ileride başka özelliklerin uygulayacağı bir arayüze dönüştürdük. İlk özelliğimiz FoldingFeature artık ekran katlama veya menteşe şeklinde temsil ediliyor. Bu veriler, DeviceState'in yerini alacak menteşenin durumunu da içerir.

  • Android 11'de WindowMetrics'in kullanıma sunulmasıyla birlikte geliştiriciler bir pencereyle ilgili metrikleri (ör. ekranın ekrandaki konumu ve boyutu ve tüm sistem ekleri) kolayca sorgulayabilmesini sağladı. Bu sürümde, geliştiricilerin WindowMetrics'ten yararlanabilmesi ve eski Android sürümlerini desteklemeye devam edebilmesi için API'yi geri aldık. WindowMetrics WindowManager#getCurrentWindowMetrics() ve WindowManager#getmaximumWindowMetrics() API'leri aracılığıyla edinilebilir.

API Değişiklikleri

  • Sonraki alfa sürümünde kaldırılacak API'leri kullanımdan kaldırın (Ib7cc4)
  • Açık Etkinlik referanslarını kabul etmek için ExtensionInterface öğesini günceller. (I07ded)
  • WindowMetrics API'yi kullanıma sunduk. (I3ccee)
  • WindowManager'dan eşzamanlı okuma yöntemlerini kaldırma (I69983)
  • ExtensionWindowBackend paketini korumalı hale getirin. (Ied208)

Hata Düzeltmeleri

  • Görsel bağlamları kabul etmek için ExtensionInterface API'lerini güncelleyin. (I8e827)

Harici Katkı

  • Verilere daha kolay erişmek 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ı. Sürüm 1.0.0-alpha01 bu kayıtları içerir. Bu, Pencere Yöneticisi kitaplığının ilk sürümüdür.

Yeni özellikler

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