로그아웃 SDK 대기 제거 · 온보딩 국가 시트 · 프로필 머리줄
This commit is contained in:
@@ -4,6 +4,10 @@ import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.os.Bundle
|
||||
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||
import io.flutter.embedding.engine.FlutterEngine
|
||||
import io.flutter.plugin.common.MethodChannel
|
||||
import java.text.Collator
|
||||
import java.util.Locale
|
||||
|
||||
// Health Connect 권한 요청(health 플러그인)이 `registerForActivityResult` 를 쓰므로 FragmentActivity 여야 한다.
|
||||
class MainActivity : FlutterFragmentActivity() {
|
||||
@@ -29,4 +33,25 @@ class MainActivity : FlutterFragmentActivity() {
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 국가 표시명 — 앱 언어로 OS 가 아는 이름(`Locale.getDisplayCountry`)을 OS 정렬(`Collator`) 순서로 준다.
|
||||
* 국가 이름을 앱이 번역하지 않으려는 통로다(Dart `loadCountryNames`). 결과는 `[[코드, 이름], …]`.
|
||||
*/
|
||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||
super.configureFlutterEngine(flutterEngine)
|
||||
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "kr.co.fanuzu.app/locale")
|
||||
.setMethodCallHandler { call, result ->
|
||||
if (call.method != "countryNames") {
|
||||
result.notImplemented()
|
||||
return@setMethodCallHandler
|
||||
}
|
||||
val locale = Locale.forLanguageTag(call.argument<String>("locale") ?: "ko")
|
||||
val collator = Collator.getInstance(locale)
|
||||
val pairs = Locale.getISOCountries()
|
||||
.map { listOf(it, Locale("", it).getDisplayCountry(locale)) }
|
||||
.sortedWith(compareBy(collator) { it[1] })
|
||||
result.success(pairs)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user