11package com.pg.gajamap.ui.adapter
22
3+ import android.app.AlertDialog
4+ import android.content.ActivityNotFoundException
35import android.content.Context
46import android.content.Intent
57import android.net.Uri
@@ -19,22 +21,28 @@ import com.pg.gajamap.data.model.ViewPagerData
1921import com.pg.gajamap.databinding.ItemViewpagerBinding
2022import com.pg.gajamap.ui.view.CustomerInfoActivity
2123
22- class ViewPagerAdapter (private val itemList : ArrayList <ViewPagerData >, private val context : Context ): RecyclerView.Adapter<ViewPagerAdapter.PagerViewHolder>() {
2324
24- override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ) : PagerViewHolder {
25- val binding= ItemViewpagerBinding .inflate(LayoutInflater .from(parent.context),parent,false )
25+ class ViewPagerAdapter (
26+ private val itemList : ArrayList <ViewPagerData >,
27+ private val context : Context
28+ ) : RecyclerView.Adapter<ViewPagerAdapter.PagerViewHolder>() {
29+
30+ override fun onCreateViewHolder (parent : ViewGroup , viewType : Int ): PagerViewHolder {
31+ val binding =
32+ ItemViewpagerBinding .inflate(LayoutInflater .from(parent.context), parent, false )
2633 return PagerViewHolder (binding)
2734 }
2835
2936 override fun getItemCount (): Int = itemList.size
3037
31- override fun onBindViewHolder (holder : PagerViewHolder , position : Int ){
38+ override fun onBindViewHolder (holder : PagerViewHolder , position : Int ) {
3239 holder.bind(itemList[position])
3340 }
3441
35- inner class PagerViewHolder (private val binding : ItemViewpagerBinding ) : RecyclerView.ViewHolder(binding.root) {
42+ inner class PagerViewHolder (private val binding : ItemViewpagerBinding ) :
43+ RecyclerView .ViewHolder (binding.root) {
3644
37- fun bind (item : ViewPagerData ){
45+ fun bind (item : ViewPagerData ) {
3846
3947 binding.clCardPhoneBtn.setOnClickListener {
4048 val intent = Intent (Intent .ACTION_DIAL )
@@ -43,31 +51,64 @@ class ViewPagerAdapter (private val itemList: ArrayList<ViewPagerData>, private
4351 }
4452
4553 binding.clCardCarBtn.setOnClickListener {
46- if (NaviClient .instance.isKakaoNaviInstalled(context)) {
47- // 카카오내비 앱으로 길 안내 - WGS84
48- Log .d(" latilongti" ,item.longitude.toString())
49- context.startActivity(
50- NaviClient .instance.navigateIntent(
51- // 위도 경도를 장소이름으로 바꿔주기
52- Location (item.name, item.longitude.toString(), item.latitude.toString()),
53- NaviOption (coordType = CoordType .WGS84 )
54- )
55- )
56- } else {
57- // 카카오내비 설치 페이지로 이동
58- context.startActivity(
59- Intent (
60- Intent .ACTION_VIEW ,
61- Uri .parse(Constants .WEB_NAVI_INSTALL )
62- ).addFlags(Intent .FLAG_ACTIVITY_NEW_TASK or Intent .FLAG_ACTIVITY_CLEAR_TOP )
63- )
54+ val items = arrayOf(" 카카오 내비" , " 네이버 내비" )
55+
56+ val adapter = CustomerDialogAdapter (context, items)
57+
58+ val dialogBuilder = AlertDialog .Builder (context)
59+ dialogBuilder.setTitle(" 내비게이션 선택" )
60+ dialogBuilder.setAdapter(adapter) { _, which ->
61+ when (which) {
62+ 0 -> {
63+ if (NaviClient .instance.isKakaoNaviInstalled(context)) {
64+ Log .d(" latilongti" , item.longitude.toString())
65+ context.startActivity(
66+ NaviClient .instance.navigateIntent(
67+ Location (
68+ item.name,
69+ item.longitude.toString(),
70+ item.latitude.toString()
71+ ),
72+ NaviOption (coordType = CoordType .WGS84 )
73+ )
74+ )
75+ } else {
76+ context.startActivity(
77+ Intent (
78+ Intent .ACTION_VIEW ,
79+ Uri .parse(Constants .WEB_NAVI_INSTALL )
80+ ).addFlags(Intent .FLAG_ACTIVITY_NEW_TASK or Intent .FLAG_ACTIVITY_CLEAR_TOP )
81+ )
82+ }
83+ }
84+ 1 -> {
85+ try {
86+ val url =
87+ " nmap://navigation?dlat=" + item.latitude.toString() + " &dlng=" + item.longitude.toString() + " &dname=" + item.name + " &appname=com.pg.gajamap"
88+
89+ val intent = Intent (Intent .ACTION_VIEW , Uri .parse(url))
90+ intent.addCategory(Intent .CATEGORY_BROWSABLE )
91+
92+ context.startActivity(intent)
93+ } catch (e: ActivityNotFoundException ) {
94+ context.startActivity(
95+ Intent (
96+ Intent .ACTION_VIEW ,
97+ Uri .parse(" market://details?id=com.nhn.android.nmap" )
98+ )
99+ )
100+ }
101+ }
102+ }
64103 }
104+
105+ val dialog = dialogBuilder.create()
106+ dialog.show()
65107 }
66108
67- if (item.profileImg == " null" ){
109+ if (item.profileImg == " null" ) {
68110 Glide .with (itemView).load(R .drawable.profile_img_origin).into(binding.ivCardProfile)
69- }
70- else {
111+ } else {
71112 Glide .with (itemView).load(item.profileImg).into(binding.ivCardProfile)
72113 }
73114 binding.tvCardName.text = item.name
@@ -77,10 +118,9 @@ class ViewPagerAdapter (private val itemList: ArrayList<ViewPagerData>, private
77118 binding.itemViewpager.setOnClickListener {
78119 intentToData(position)
79120 }
80- if (item.distance == null ) {
121+ if (item.distance == null ) {
81122 binding.tvCardDistance.text = " - "
82- }
83- else {
123+ } else {
84124 binding.tvCardDistance.text = String .format(" %.1f " , item.distance?.times(0.001 ))
85125 }
86126 }
0 commit comments