package Ġcom . ib ash k imi . telegram . ui . create chat Ċ Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . ib ash k imi . telegram . data . Telegram Client Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . combine Ċ import Ġkotlinx . coroutines . flow . flatMap Latest Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġorg . dr ink less . td . lib core . telegram . Td Api Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠCreate Chat ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġval Ġclient : ĠTelegram Client Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġ@ Opt In ( Experimental Cor outines Api :: class ) ĊĠĠĠ Ġval Ġusers : ĠFlow < List < Td Api . User >> Ġ= ĊĠĠĠĠĠĠĠ Ġclient . send < Td Api . Users >( Td Api . Get Contacts ()). map Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . user Ids . map Ġ{ Ġclient . send < Td Api . User >( Td Api . GetUser ( it )) Ġ} ĊĠĠĠĠĠĠĠ Ġ}. flatMap Latest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcombine ( it ) Ġ{ Ġusers Ġ-> Ġusers . toList () Ġ} ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġusers Ġ-> Ġusers . sorted By Ġ{ Ġit . firstName Ġ} Ġ} Ċ }