Skip to content

Commit e63fabb

Browse files
committed
初回起動時に現在地にフォーカスしてくれない #13
1 parent 63c2ee0 commit e63fabb

4 files changed

Lines changed: 29 additions & 15 deletions

File tree

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323
</intent-filter>
2424
</activity>
2525
<activity android:name=".ui.alerts.detail.AlertDetailActivity" />
26+
<activity android:name=".ui.WebViewActivity" />
27+
<meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR API KEY"/>
2628
</application>
2729

2830
</manifest>

app/src/main/java/net/lmlab/m_tsunami_android/ui/map/MapFragment.kt

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ import android.content.Intent
55
import android.content.pm.PackageManager
66
import android.graphics.Color
77
import android.os.Bundle
8-
import android.util.Log
98
import android.view.LayoutInflater
109
import android.view.View
1110
import android.view.ViewGroup
11+
import android.widget.Toast
1212
import androidx.core.app.ActivityCompat
1313
import androidx.fragment.app.Fragment
1414
import com.google.android.gms.maps.*
15-
import androidx.core.app.ActivityCompat.requestPermissions
1615
import androidx.lifecycle.ViewModelProviders
1716
import androidx.lifecycle.Observer
1817
import com.google.android.gms.maps.model.*
@@ -23,6 +22,10 @@ import net.lmlab.m_tsunami_android.ui.WebViewActivity
2322

2423
class MapFragment : Fragment(), OnMapReadyCallback {
2524

25+
companion object {
26+
val REQUEST_LOCATION = 10
27+
}
28+
2629
private lateinit var viewModel: MapViewModel
2730

2831
private var routePostions = ArrayList<LatLng>()
@@ -104,11 +107,17 @@ class MapFragment : Fragment(), OnMapReadyCallback {
104107
mapView.onLowMemory()
105108
}
106109

107-
// todo: なぜか呼ばれない
108110
// 許可を求めるダイアログで何らかのボタンが押されたときに発生するイベント
109111
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) {
110112
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
111-
Log.d("m_tsunami_android", "onRequestPermissionsResult")
113+
if (requestCode != REQUEST_LOCATION) { return }
114+
115+
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
116+
Toast.makeText(context, R.string.location_permission_denied, Toast.LENGTH_LONG).show()
117+
return
118+
}
119+
120+
loadData()
112121
}
113122

114123
private fun observe() {
@@ -132,7 +141,6 @@ class MapFragment : Fragment(), OnMapReadyCallback {
132141
.position(latLng)
133142
.title(it.name)
134143
.snippet("標高" + it.altitude.toString() + "m " + it.structure + " " + it.floor + "")
135-
// .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))
136144
.icon(icon)
137145
)
138146
}
@@ -173,18 +181,22 @@ class MapFragment : Fragment(), OnMapReadyCallback {
173181

174182
private fun checkPermission() {
175183
if (ActivityCompat.checkSelfPermission(requireContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
176-
requestPermissions(requireActivity(), arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), 10) //REQUEST_LOCATION
184+
requestPermissions(arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), REQUEST_LOCATION)
177185
} else {
178-
// 許可済でないとクラッシュする
179-
googleMap.isMyLocationEnabled = true
180-
181-
viewModel.getLastLocation()
182-
viewModel.loadBuildings()
183-
viewModel.loadToilets()
184-
viewModel.loadWebcams()
186+
loadData()
185187
}
186188
}
187189

190+
private fun loadData() {
191+
// 許可済でないとクラッシュする
192+
googleMap.isMyLocationEnabled = true
193+
194+
viewModel.getLastLocation()
195+
viewModel.loadBuildings()
196+
viewModel.loadToilets()
197+
viewModel.loadWebcams()
198+
}
199+
188200
private fun setMarkersAndRoute(route: Route) {
189201
val startLatLng = LatLng(route.startLat!!, route.startLng!!)
190202
val endLatLng = LatLng(route.endLat!!, route.endLng!!)

app/src/main/java/net/lmlab/m_tsunami_android/ui/map/MapViewModel.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,7 @@ class MapViewModel(app: Application): AndroidViewModel(app) {
9292
))
9393
} else {
9494
val context = getApplication<Application>().applicationContext
95-
Toast.makeText(context, R.string.route_failed, Toast.LENGTH_LONG)
96-
.show()
95+
Toast.makeText(context, R.string.route_failed, Toast.LENGTH_LONG).show()
9796
}
9897
}
9998

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
<string name="title_info">Info</string>
77

88
<string name="route_failed">ルートを取得できませんでした</string>
9+
<string name="location_permission_denied">現在地を取得するため位置情報の利用を許可してください</string>
910
</resources>

0 commit comments

Comments
 (0)