浏览代码

[메인][Common] 전화걸기 구현

Hasemi 7 年之前
父节点
当前提交
388e8d5f4c

+ 2 - 0
app/src/main/AndroidManifest.xml

@@ -8,6 +8,8 @@
   <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
   <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+  <uses-permission android:name="android.permission.CALL_PHONE" />
+  <uses-permission android:name="android.permission.DIAL_PHONE" />
 
   <application
     android:name=".lifeplus.application.App"

+ 5 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/MoreInfoDialog.java

@@ -37,6 +37,7 @@ public class MoreInfoDialog extends DialogBase<ICustomDialogListener<MoreInfoDia
   private static final String ADDRESS_INFO = "10";
   private static final String PARKING_INFO = "11";
 
+  private String phoneNumber = null;
   private List<ContentsMoreInfoBean> contentsMoreInfoBeanList;
   private LinearLayout layoutMoreInfoContainer;
 
@@ -72,6 +73,7 @@ public class MoreInfoDialog extends DialogBase<ICustomDialogListener<MoreInfoDia
           customMoreInfoView = new CustomMoreInfoView(getActivity(), R.drawable.icon_info_menu, contentsMoreInfoBean.getMoreInfo());
           break;
         case PHONE_INFO:
+          phoneNumber = contentsMoreInfoBean.getMoreInfo();
           break;
         case ADDRESS_INFO:
           customMoreInfoView = new CustomMoreInfoView(getActivity(), R.drawable.icon_info_info, contentsMoreInfoBean.getMoreInfo());
@@ -94,7 +96,9 @@ public class MoreInfoDialog extends DialogBase<ICustomDialogListener<MoreInfoDia
 
       /*하단 버튼 클릭 이벤트*/
       getView().findViewById(R.id.image_view_call_info).setOnClickListener(view -> {
-        getCustomListener().onDialogResult(MoreInfoDialog.this, new Event.Builder(Event.CALL_INFO).build());
+        if(null != phoneNumber){
+          getCustomListener().onDialogResult(MoreInfoDialog.this, new Event.Builder(Event.CALL_INFO).string(phoneNumber).build());
+        }
       });
 
       getView().findViewById(R.id.image_view_link).setOnClickListener(view -> {

+ 5 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsDetailFragment.java

@@ -122,6 +122,11 @@ public class ContentsDetailFragment extends FragmentBase<ContentsDetailPresenter
     actionBarHelper.setVisibleDotDotDot(isVisible);
   }
 
+  @Override
+  public void setPhoneNumberInCall(String phoneNumber) {
+     startActivity(new Intent("android.intent.action.DIAL", Uri.parse(phoneNumber)));
+  }
+
   @Override
   public void draw(ContentsDetailListBean contentsDetailListBean) {
     List<ContentsDetailBean> contentsDetailBeans = contentsDetailListBean.getItemDetailList();

+ 7 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/ContentsDetailPresenter.java

@@ -1,5 +1,7 @@
 package kr.co.zumo.app.lifeplus.view.screen.contents;
 
+import android.util.Log;
+
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
 import kr.co.zumo.app.lifeplus.helper.DeliveryHelper;
@@ -286,6 +288,11 @@ public class ContentsDetailPresenter extends ContentsBasePresenter<ContentsDetai
         public void onDialogResult(MoreInfoDialog dialog, Event event) {
           switch (event.getEventId()) {
             case Event.CALL_INFO:
+              String phoneNumber = event.getString();
+              phoneNumber.trim().replaceAll("-", "");
+              phoneNumber = "tel:" + phoneNumber;
+              view.setPhoneNumberInCall(phoneNumber);
+
               break;
             case Event.LINK:
               showErrorDialog(R.string.ready_comment);

+ 2 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/contents/IContentsDetailView.java

@@ -16,4 +16,6 @@ public interface IContentsDetailView extends IContentsView {
   void draw(ContentsDetailListBean contentsDetailListBean);
 
   void setVisibleDotDotDot(boolean isVisible);
+
+  void setPhoneNumberInCall(String phoneNumber);
 }