logcat に警告が表示されました:
W/art: Verification of void com.myapp.LoginFragment$override.lambda$logIn$5(com.myapp.LoginFragment, java.lang.Throwable) took 217.578ms
コードは次のとおりです:
subscription = viewModel.logIn()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
this::showStudioSelection,
error -> {
ErrorResponse errorResponse = ErrorResponseFactory.create(error);
if (errorResponse.code() == ApiResult.BAD_REQUEST) {
Snackbar.make(getView(), R.string.login_bad_credentials, Snackbar.LENGTH_LONG)
.setAction(android.R.string.ok, v -> {})
.show();
} else {
Snackbar.make(getView(), "Unknown error " + errorResponse.code(), Snackbar.LENGTH_LONG)
.setAction(android.R.string.ok, v -> {})
.show();
}
viewModel.updateLoginButtonState();
}
);
220 ミリ秒はかなり長いです (また、そのフラグメントの起動時に遅延が発生しているように感じます)。
私は RxJava と retrolambda を使用していますが、このメッセージが表示されるのはここだけではないので、直接関係しているとは思いません。
検証時間に影響を与えるにはどうすればよいですか?それは本当に価値があるのでしょうか?
どうやらこれは循環的複雑性と関係があるようで、いくつかのSnackbar.make
呼び出しを削除することで警告を取り除くことができた。if
ドライコード:
String errorMessage;
if (errorResponse.code() == ApiResult.BAD_REQUEST) {
errorMessage = getString(R.string.login_bad_credentials);
} else {
errorMessage = "Unknown error " + errorResponse.code();
}