package Ġcom . hello q zh . android . ui . base Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . hello q zh . android . MainActivity Ċ import Ġcom . hello q zh . android . Sun ny Weather Application Ċ import Ġcom . hello q zh . android . logic . Weather Repository Ċ import Ġcom . hello q zh . android . ui . weather . Weather Activity Ċ Ċ object ĠActivity Controller Ġ{ ĊĠĠĠ Ġprivate Ġval Ġactivities Ġ= ĠArrayList < Activity >() ĊĠĠĠ Ġprivate Ġval Ġgson Ġ= ĠGson () ĊĠĠĠ Ġfun Ġadd Activity ( activity : ĠActivity ) Ġ= Ġactivities . add ( activity ) ĊĊĠĠĠ Ġfun Ġremove Activity ( activity : ĠActivity ) Ġ= Ġactivities . remove ( activity ) ĊĊĠĠĠ Ġfun Ġfinish All () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( activity Ġin Ġactivities ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! activity . is Finish ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġactivities . clear () ĊĠĠĠĠĠĠĠ Ġandroid . os . Process . kill Process ( android . os . Process . my Pid ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrestart App () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( activity Ġin Ġactivities ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! activity . is Finish ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġactivities . clear () ĊĊĠĠĠĠĠĠĠ Ġ// Ġrestart ĠMain ĠActivity ĊĠĠĠĠĠĠĠ Ġval Ġhas Saved City Ġ= ĠWeather Repository . is City Saved () ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġif Ġ( has Saved City ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Sun ny Weather Application . context , ĠWeather Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( Weather Activity . INT ENT _ C ITY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgson . toJson ( Weather Repository . get Saved City ())) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠIntent ( Sun ny Weather Application . context , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠ ĠSun ny Weather Application . context . startActivity ( intent ) ĊĠĠĠ Ġ} Ċ }