Thứ Năm, 18 tháng 6, 2020

What's new in System UI

Hey, everybody, my name is Dan Sandler.

I'm a software engineeron the Android System UI team, and I'm here to tell youabout the new stuff in the system UI in Android 11.


First, how are you doing? We hope you're well.

It's good to see you, although I can't actually see you, but it's nice to imagine.

We're okay, thanks for asking.

The team has been keeping busy.

I avoided giving myself bangs, so you're welcome.

We've got lots of bugsin the Android 11 Beta for you.

Sorry, we've fixed lots of bugsin the Android 11 Beta for you.

But we saved some time for features, and I do want to talkabout a few of them just real briefly for you today.

We're going to talk about conversations, bubbles, device controls, and the media player.

Alright, let's talk about conversations.

We know from our user researchand our own personal experience that notifications to and from real peopleare the most important to us, they bring us the most joy, they are also often the most urgentrequiring prompt response.

Our user research teamhad a really great talk about this a couple of years ago at Google I/O, so I encourage you to go backand check that out– a lot of those conclusionsare definitely still valid today.

What we've done in Android 11 is added a dedicated persistent spacefor these notifications so you can quickly see and respondto them, so let's take a look at that.

First, I'm going to show you Android 10you got here on the left.

It's not bad, but could it be better? We have some conversationsthat are interspersed with lesser urgent notifications.

We have multiple chats from one app compressed into a very small spacein the grouping system.

It's hard to spot any particularsender's name or chatroom name, and those avatars are really smalland kind of off to the side.

Here we have Android 11.

The first thing you're going to noticeis we've got a nice separate section just for conversations with a big section headerto actually explain what that's for.

The next thing you might seeis an unread message indicator.

We had that in Notifications before, but now it's nice and big so that you can see if there's a chatroomthat maybe got a little bit away from you.

It's much easier now, as you look up and down the shade, to see the names of people in chat roomsthat these conversations pertain to.

The primary action, the expand affordanceis much easier to see and get to, and of course, once you expand the notification you can do in-line replies, predicted replies, or launch through into the app.

And then, finally, we made those avatars bigger and moved them all to the same spot, with the same margins.

It looks great.

The user can also long-pressany conversation and mark it as important.

That will make it appear first in the listand break through Do Not Disturb.

That's a featurethat notifications had already.

We made sure it looks really goodand works really well with the conversation space as well.

So, as a developer, what you're asking at this point is, “What do I need to do to get my chat appinto the conversation space?” Alright, get a pen, there's a lot here, are you ready? Step one, use MessagingStyle.

Step two, add a shortcut ID.

Yeah, that's it, just two.

.

.

almost.

Alright, finally, a code slide.

Let's take a look at how we do this.

First, you want to createthe Person object.

This is something you were already doingif you were using MessagingStyle, since it's required for that API.

And second, you want to create a shortcutand register it with a ShortcutManager.

This might be somethingthat you're already doing if you have Launcher shortcuts or sharing shortcuts, but now you're going to do that for your notifications as well.

There are a couple of new partsthat I want to draw your attention to.

First, the fact that you're marking the shortcut as LongLived, meaning the system can hold on to itand use it in other spaces.

And secondly, attach that Person objectthat you just created.

Then finally, withyour Notification.

Builder, you get to put it all together.

Make sure you include that shortcut ID, and everythingis going to work just great.

Alright, let's talk about bubbles.

You may remember bubbles from Android 10 when we showed it offas a developer preview feature.

Well, it has graduatedfrom a developer preview to a full user feature as partof our conversation system.

The user can grab a conversationthat they're actively engaging with, pull it out into a bubble that floats on top of the phone display, as a part of a multitasking feature.

To do this, you're going to usethe BubbleMetadata, which we introduced, again, last year in Android 10.

But the new thing here is that you're going to addthat same shortcut ID that you put togetherfor the conversation space.

The bubble is automatically going to pullthe icon out of that shortcut ID.

Make sure it's an adaptive icon as well so that it fills the whole shapeof the bubble.

And then make sure, as before, when you put the PendingIntentinto the BubbleMetadata, that that PendingIntent points to an activity that is resizable, because this is a multi-window feature, and that window is going to show up at a different size than the display, so it needs to be preparedto be resizable.

In the coming weeks, we're going to have a talk entirely dedicated to all things, conversations, bubbles, and notifications in Android 11, so look for that coming soon.

Okay, let's talk about device controls.

This is really fun.

In Android 11, we've created a new dedicated persistent space for your homeand Internet of Things controls so that you can quickly findand use them at any time.

We've redesignedthe power menu for this.

It places your device controls just a button-press awayor a long button-press away.

As a user, you can choosethe set of controls you use most.

Those will show up here in the Power menu, and you can actually switch betweendifferent providers from different apps that provide IoT and home controls.

To do this, we've introduceda brand new API the android.

service.

controls API suitefor device control providers.

It's one of our firstJava 9 Reactive Streams APIs, so grab your favorite flow implementation, and let's get started.

Your implementationof the ControlsProviderService has a few key APIsthat it will need to implement.

The first one is to createPublisherForAllAvailable controls, so Publisher in Reactive Streams means that's a thingthat's going to be able to generate new instances of the objectas they change.

In this case, the Publisher is goingto list all of the controls objects that you know about as a provider that the user might want to choose from.

There's a similar APIthat you'll also need to implement that is just createPublisherFor.

This is what the system UI is going to use when it knows which are the controlsthe user really wants to engage with and just wants to ask you for updatesabout those three, or four, or five or twenty.

And finally, your ControlsProviderService wants to know when the userhas clicked on a control, and that's what performControlAction is for.

You're going to knowwhat control was clicked on, what kind of action it was, if it was a click or a drag, something like that.

And then you're going to geta Consumer object to which you can passa status of Response.

ok, letting it know that you heardthe response and have actually made the changein the real world that the user has asked for.

Okay, here's an exampleof one of those Control objects that your publishers are going to push.

It's a simple objectrepresenting a light bulb.

There are a few pieces.

There is a pendingIntent, first of all, which is a way for the user to long-press on the controland get back into your app to be able to control all the things inside your app's context.

There's also a Template, that tells the system UIhow to actually draw that control.

And then, finally, wrap it all uptogether in a Control Builder that hold some state, that you then put intothe publisher and send a system UI.

This is a more complicated example.

It's a description of a thermostat.

There's actuallyquite a lot going on there.

I'm not going to read through all the code here.

But this and a lot of other device typesare supported by the system.

Go ahead and check the API documentation with the 11 Beta.

Okay, finally let's talk about the media player.

This is mostly an end-user feature, but there's a few APIsin here too to be aware of.

First of all, in Android Lollipop, we introduced the MediaStyle notification so that apps didn't have to keepusing remote views for their media playback.

And most of you are usingMediaStyle by now.

.

.

most of you.

Android 11 createsa dedicated persistence space for all of these media players so that the user can quickly controland even resume content.

Are you seeing a pattern here? Yes, we have a lot of dedicatedpersistent spaces in Android 11 for the stuff that we know users use a lotand need to be able to get access to.

So media controls now live in the Quick Settings panel for easy access, no matter what app is in frontor which notifications you've received.

And yes, they even show upon the lock screen.

And we've even added an output pickerright there in the media player.

.

.

you're welcome! So I did say there wasa little bit of API.

If you, as a media player app, implement MediaBrowserService, your card can actually be resumed.

That means the system UI will hang on to it and let the user go backand pick up that podcast or that two-hour-long synthwave set hours after they have paused itor possibly even after a reboot, even after that media sessionis destroyed.

Okay, that's all I've got.

Go get the Android 11 Beta, try out those APIs, report those bugs, we really need those reports, and thank you for watching.

This was fun.

.

.

for me.

Hopefully, for you too.

Still miss Chet and Romain.

https://wiki-legion.win/index.php/IPTV_Grood
https://wiki-velo.win/index.php/IPTV_Grood
https://zulu-wiki.win/index.php/IPTV_Grood
https://extra-wiki.win/index.php/IPTV_Grood
https://fun-wiki.win/index.php/IPTV_Grood
https://golf-wiki.win/index.php/IPTV_Grood
https://iris-wiki.win/index.php/IPTV_Grood
https://mag-wiki.win/index.php/IPTV_Grood
https://meet-wiki.win/index.php/IPTV_Grood
https://oscar-wiki.win/index.php/IPTV_Grood
https://rapid-wiki.win/index.php/IPTV_Grood
https://research-wiki.win/index.php/IPTV_Grood
https://super-wiki.win/index.php/IPTV_Grood
https://wiki-aero.win/index.php/IPTV_Grood
https://wiki-canyon.win/index.php/IPTV_Grood
https://wiki-mixer.win/index.php/IPTV_Grood
https://wiki-saloon.win/index.php/IPTV_Grood
https://wiki-site.win/index.php/IPTV_Grood
https://wiki-tonic.win/index.php/IPTV_Grood
https://yenkee-wiki.win/index.php/IPTV_Grood
https://foxtrot-wiki.win/index.php/IPTV_Grood
https://juliet-wiki.win/index.php/IPTV_Grood
https://kilo-wiki.win/index.php/IPTV_Grood
https://mega-wiki.win/index.php/IPTV_Grood
https://page-wiki.win/index.php/IPTV_Grood
https://shed-wiki.win/index.php/IPTV_Grood
https://web-wiki.win/index.php/IPTV_Grood
https://wiki-club.win/index.php/IPTV_Grood
https://wiki-neon.win/index.php/IPTV_Grood
https://wiki-spirit.win/index.php/IPTV_Grood
https://fair-wiki.win/index.php/IPTV_Grood
https://mill-wiki.win/index.php/IPTV_Grood
https://romeo-wiki.win/index.php/IPTV_Grood
https://uniform-wiki.win/index.php/IPTV_Grood
https://wiki-coast.win/index.php/IPTV_Grood
https://remote-wiki.win/index.php/IPTV_Grood
https://source-wiki.win/index.php/IPTV_Grood
https://wiki-zine.win/index.php/IPTV_Grood
https://www.fitday.com/fitness/forums/members/x8bwqfm966.html
http://community.stencyl.com/index.php?action=profile;area=forumprofile;u=785732
https://forums.prosportsdaily.com/member.php?673153-t4qxjhi020
http://forums.powwows.com/members/431722.html
https://aprelium.com/forum/profile.php?mode=viewprofile&u=1552909
https://www.huntingnet.com/forum/members/k9rvpzt984.html
https://www.kdpcommunity.com/s/profile/0052T00000BuDAZ?language=en_US
https://knickwall.de/forum/index.php?action=profile;area=forumprofile;u=222395
http://ppgemuesc.com.br/gpemec/forum/index.php?action=profile;area=forumprofile;u=291550
http://www.save-ee.com/memberlist.php?mode=viewprofile&u=63765
http://cheapestwebhosting.biz/forum/index.php?action=profile;u=486347;sa=summary
http://www.5th-elements.com/bb/memberlist.php?mode=viewprofile&u=90234
https://forum.steps-care.com/index.php?action=profile;area=forumprofile;u=228097
https://www.pinterest.com/pin/806355508270224833?nic_v1=1aEvDnlZbkXfef7mxxOH6nsFNu466nssn0FSH6T2itXpq5iSZrJ3Y5VYVzc6AcLUsh
http://sco.lt/5JR9rU
https://slashdot.org/submission/11386142/iptv-box-4k
https://diigo.com/0h46tb
https://www.instapaper.com/read/1288669224
http://www.pearltrees.com/r1ertpz701#item295598346
http://www.folkd.com/ref.php?go=https%3A%2F%2Faboniptv.com
http://ttlink.com/notice/52532174
http://sqworl.com/sp91ji
https://www.techsite.io/p/1413101
http://public.sitejot.com/zgxwmbc566.html
http://yoomark.com/content/ill-click-group-button-then-below-you-are-able-see-youll-be-able-navigate-different-types
http://www.plerb.com/k0rhkro567/post/4040840
http://www.4mark.net/story/1588666/iptv-box-4k
https://godotengine.org/qa/user/o8hnllz697
https://answer.tecnoandroid.it/index.php?qa=user&qa_1=d7tkcvj412
http://wikifisc.uqtr.ca/./user/q3xcsyv534
https://karantina.pertanian.go.id/question2answer/index.php?qa=user&qa_1=r3ogcmg388
https://www.question2answer.org/qa/user/l7fwgij396
http://ask.alnilin.com/?qa=user/w1nxgxg388
https://turkish.ava360.com/user/x9nylnk898/
https://ask.studybible.info/user/v7uqsyr780
https://www.2dehandsnederland.nl/user/profile/41591
https://adsrfree.com/user/profile/559814
https://community.akoam.net/user/q3wsloj210
https://gumtreeads.com/user/profile/54421
https://help.expresstracking.org/user/c1gsbza331
http://root-motion.com/qa/index.php?qa=user&qa_1=y3khdsq695
http://jevois.org/qa/index.php?qa=user&qa_1=w5qzrpd530
https://1iklan.my/user/profile/23893
http://rispondipa.it/user/o6tnflj251
http://www.synthedit.com/qa/user/d7ivmfi202
http://www.factfaces.com/user/t2pvlsk071
https://forum.e-conomic.dk/user/c7tpopd618
http://truckcamvideos.com/user/q3hrgwm465
https://gumtreeads.com/user/profile/54424
http://www.adsportal.in/user/profile/599655
https://forum.umbandaeucurto.com/usuario/i6qwpha999
https://codergears.com/qacenter/index.php?qa=user&qa_1=d5ygoru964
https://www.jarchitect.com/QACenter/index.php?qa=user&qa_1=x1uyscs998
http://qna.nueracity.com/user/w2ydedn869
https://www.topicbd.com/user/f4kvzvi038
https://www.24nova.com/user/profile/47538
http://bkd.tulungagung.go.id/kms/index.php?qa=user&qa_1=n8cqvhd317
https://www.javadepend.com/QACenter/index.php?qa=user&qa_1=q1caztd023
https://adsrfree.com/user/profile/560104
http://bioimagingcore.be/q2a/user/j7uodpq897
http://board.puzzler.su/user/profile/19132
http://youthcarnival.org/qa/?qa=user/a3zjote693
http://adipositas-verzeichnis.de/user/profile/40121
https://www.antalya-dolphinarium.com/user/profile/8074
http://englishtown.rackons.com/user/profile/88278
http://imolocal.com/user/profile/1715228
https://adsrfree.com/user/profile/560108
http://www.megafon.net/en/business-directory/user/profile/51753
https://www.pingofive.com/user/profile/102317
http://stikioverflow.stiki.ac.id/index.php?qa=user&qa_1=s2rsyrg437
https://adsrfree.com/user/profile/560109
http://biologplace.com/user/profile/44689
http://www.buyselltrademyanmar.com/user/profile/102732
https://job-ofertas.info/job/user/profile/84627
http://www.leningradskaya.org/d/user/profile/9698
https://www.postonlineads.com/user/profile/45205
https://7emirate.com/user/profile/29004
http://antenavi.net/link.php?http://rispondipa.it/user/i0tbgnq382
https://belizeanuncio.com/user/profile/1235058
https://www.ivoirannonces.com/user/profile/439374
http://pueblo.tommyslist.org/user/profile/55212
https://qa.amilajayathissa.com/./user/b0wwwwi504
https://cz.dorinza.com/user/profile/13812
https://www.dodajogloszenia.pl/user/profile/132729
https://gateoverflow.in/user/q5dqobs102
https://www.immo-web.ro/user/profile/32690
https://www.pricelessvitality.org/user/profile/26371
https://ru.dorinza.com/user/profile/19277
http://0009.in/user/profile/35139
http://advpos.co/QA/index.php?qa=user&qa_1=u9tsirx447
http://www.annunciindustriali.it/user/profile/56697
https://www.buy1on1.com/user/profile/35601
http://www.pianos.ca/user/profile/31276
http://www.questionbay.com/user/j0bdlmw846
http://soloaviso.com/user/profile/17014
https://adsrfree.com/user/profile/560119
http://youradslist.com/user/profile/17449
http://achabal.allads.co.in/user/profile/43403
http://ahmedabad.allads.co.in/user/profile/43407
http://www.allads.co.in/user/profile/43477
https://www.anunturi-romania.net/user/profile/14396
http://beldanga.allads.co.in/user/profile/43405
http://bhubaneswar.allads.co.in/user/profile/43406
https://www.yourfreetube.net/user/e0rkzvk510/
https://gumtreeads.com/user/profile/54439
http://kundrathur.allads.co.in/user/profile/43409
http://www.list-maine.com/craigslist/user/profile/33232
http://namchi.allads.co.in/user/profile/43412
http://new-delhi.allads.co.in/user/profile/43416
http://shillong.allads.co.in/user/profile/43419
http://tindwari.allads.co.in/user/profile/43418
https://wiki-trade.com/user/profile/16595
http://adolx.com/user/profile/28386
http://agahidan.ir/user/profile/23546

Không có nhận xét nào:

Đăng nhận xét

Soviet tank doesn't get penetrated often, but when it does…▶️ IS-1

When someone mentions soviet heavy tank youprobably think of well armored tank with sloped armor and a massive Aphe shell with very longrelo...