package Ġjo ken . ac . jp . om oro ic Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . util . Log Ċ import Ġcom . be arded hen . android bootstrap . Bootstrap Button Ċ import Ġcom . line corp . lines dk . Line ApiResponse Code Ċ import Ġcom . line corp . lines dk . auth . Line Login Api Ċ import Ġk ot ter knife . bind View Ċ import Ġcom . line corp . lines dk . auth . Line Login Result Ċ import Ġandroid . R . id . edit ĊĊĊ Ċ private Ġvar ĠKey Store M : ĠAndroid KeyStore Manager ? Ġ= Ġnull ĊĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġjel ly Ġon Ġ 3 / 9 / 2 0 1 8 . Ċ Ġ*/ Ċ class ĠLogin Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠREQUEST _ CODE Ġ= Ġ 1 ĊĊĠĠĠ Ġval Ġlogin : ĠBootstrap Button Ġby Ġbind View ( R . id . button _ login ) ĊĊĠĠĠ Ġval Ġexit : ĠBootstrap Button Ġby Ġbind View ( R . id . quit _ login ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ login ) ĊĊĠĠĠĠĠĠĠ Ġlogin . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠApp - to - app Ġlogin ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġlogin Intent : ĠIntent Ġ= ĠLine Login Api . get Login Intent ( this , Ġ 1 5 6 7 0 9 4 8 7 4 . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( login Intent , ĠREQUEST _ CODE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" ERROR ", Ġe . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġexit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . finish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . move Task To Back ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ!= ĠREQUEST _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" ERROR ", Ġ" Unsupported ĠRequest ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠLine Login Api . get Login Result From Intent ( data ) ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( result . response Code ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLine ApiResponse Code . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLogin Ġsuccessful ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠaccessToken Ġ= Ġresult . line Credential !!. accessToken . accessToken ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKey Store M Ġ= ĠAndroid KeyStore Manager . getInstance ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpref : ĠSharedPreferences Ġ= Ġget SharedPreferences (" pref ", MODE _ PRIVATE ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpref . edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" token ", ĠKey Store M !!. encrypt ( accessToken . toByteArray ()). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransition Intent Ġ= ĠIntent ( this , ĠMainActivity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( transition Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠLine ApiResponse Code . CANCEL Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLogin Ġcanceled Ġby Ġuser ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" ERROR ", Ġ" LINE ĠLogin ĠC anceled Ġby Ġuser !! ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLogin Ġcanceled Ġdue Ġto Ġother Ġerror ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" ERROR ", Ġ" Login ĠFAILED !") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" ERROR ", Ġresult . error Data . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }