package Ġcom . lo z an ov . vir id um . ui . main Ċ Ċ import Ġandroidx . compose . foundation . Border Stroke Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . State Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . remember Coroutine Scope Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . h ilt . navigation . compose . h ilt ViewModel Ċ import Ġcom . lo z an ov . vir id um . MainActivity Ċ import Ġcom . lo z an ov . vir id um . R Ċ import Ġcom . lo z an ov . vir id um . shared . AR Core Installation Wrapper Ċ import Ġcom . lo z an ov . vir id um . shared . determine AR Availability Ċ import Ġcom . lo z an ov . vir id um . shared . getActivity Ċ import Ġcom . lo z an ov . vir id um . view model . Model Selection ViewModel Ċ import Ġandroidx . core . app . Activity Compat . startActivity For Result Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . compose . material .* Ċ import Ġandroidx . compose . ui . graphics . Color . Companion . Blue Ċ import Ġandroidx . compose . ui . res . p ainter Resource Ċ import Ġandroidx . core . app . Activity Compat ĊĊ Ċ @ Composable Ċ fun ĠModel Selection ( ĊĠĠĠ Ġasked For AR Core Availability : ĠState < Boolean >, ĊĠĠĠ ĠviewModel : ĠModel Selection ViewModel Ġ= Ġh ilt ViewModel () Ċ ) Ġ{ ĊĠĠĠ Ġval Ġcontext Ġ= ĠLocal Context . current ĊĠĠĠ Ġval Ġactivity Ġ= Ġcontext . getActivity () Ġas ĠMainActivity ĊĊĠĠĠ Ġval Ġchosen File Ġ= Ġactivity . viewModel ĊĠĠĠĠĠĠĠ Ġ. current Selected Model Uri . collect As State (). value ĊĊĠĠĠ ĠAR Core Installation Wrapper ( ask ed For AR Core Availability ) Ġ{ ĊĠĠĠĠĠĠĠ ĠBox ( modifier Ġ= ĠModifier . fill MaxSize ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġstring Resource ( R . string . three _ dimensional ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . align ( Alignment . Center )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠExtended Floating ActionButton ( onClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Choose Intent Ġ= ĠIntent ( Intent . ACTION _ GET _ CONTENT ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ"* /* " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . create Chooser ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . resources . getString ( R . string . choose _ file )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Choose Intent , ĠMainActivity . FILE _ P ICK _ REQ _ CODE , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġicon Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIcon ( p ainter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Resource ( R . drawable . ic _ baseline _ file _ present _ 2 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Description Ġ= Ġstring Resource ( R . string . back )) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġstring Resource ( R . string . choose _ file _ hint ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 3 . dp )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . padding ( 8 . dp )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġchosen File ?. path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( path Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( text Ġ= Ġpath , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier . align ( Alignment . Center )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠTODO : ĠShow Ġoption Ġfor Ġsketch fab Ġselect Ġ& Ġnavigation Ġto Ġfile Ġselect Ċ }