こちらのjavaソースですがネストが深いと指摘を受けています。
どう解消すればよいか余裕のある方回答お願いいたします。
/** * 位置情報取得 */ public void getDeviceLocation() { try { if (locationPermissionGranted) { Task<Location> locationResult = fusedLocationProviderClient.getLastLocation(); locationResult.addOnCompleteListener((Activity) mApplicationManager.getContext(), new OnCompleteListener<Location>() { @Override public void onComplete(@NonNull Task<Location> task) { // 測位完了 if (task.isSuccessful()) { // 測位通知 location = task.getResult(); // 正常に帰ってきたが、Nullの場合もあるのではじく if(location != null){ if (isJapan(location.getLatitude(), location.getLongitude())) { // [国内] mApplicationManager.getMap().clear(); mApplicationManager.getCommunication().executeByConcurrentExecutor(); // 現在位置に設定 LatLng currentLocation = new LatLng(location.getLatitude(), location.getLongitude()); mApplicationManager.getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(currentLocation, 16.0f)); } else { // [海外] // 日本地図を表示 mApplicationManager.getMap().moveCamera(CameraUpdateFactory.newLatLngZoom(defaultLocation, DEFAULT_ZOOM)); } }else { // [位置情報取得失敗] // エラーダイアログ表示 mApplicationManager.getLoadDialog().dismiss(); new AlertDialog.Builder(mApplicationManager.getContext()) .setTitle(R.string.error) .setMessage(R.string.null_location) .setNegativeButton(R.string.close, null) .show(); } } } }); } } catch (SecurityException e) { Log.e("Exception: %s", e.getMessage(), e); } }
回答1件
あなたの回答
tips
プレビュー