Kaynağa Gözat

[설정][New] 카카오톡 공유 실패 예외 처리

hyodong.min 7 yıl önce
ebeveyn
işleme
325da57527

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/tool/IShareListener.java

@@ -16,5 +16,5 @@ package kr.co.zumo.app.lifeplus.tool;
 public interface IShareListener {
   void onSuccess(String result);
 
-  void onFailure(String result);
+  void onFailure(int errorCode, String result);
 }

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareClipBoard.java

@@ -38,7 +38,7 @@ public class ShareClipBoard extends Share<Context> {
       }
     } catch (Exception e) {
       e.printStackTrace();
-      listener.onFailure("");
+      listener.onFailure(0, "");
     }
   }
 

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareFacebook.java

@@ -59,7 +59,7 @@ public class ShareFacebook extends Share<Activity> {
 
       @Override
       public void onError(FacebookException error) {
-        listener.onFailure(error.getLocalizedMessage());
+        listener.onFailure(0, error.getLocalizedMessage());
       }
     });
     shareDialog.show(linkContent);

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/tool/ShareKakaoTalk.java

@@ -34,6 +34,7 @@ import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 public class ShareKakaoTalk extends Share<Context> {
 
   public static final String RECOMMEND_KEY = "recommendKey";
+  public static final int CLIENT_ERROR_CODE = -777;
 
   public ShareKakaoTalk(Context context) {
     super(context);
@@ -76,7 +77,7 @@ public class ShareKakaoTalk extends Share<Context> {
       @Override
       public void onFailure(ErrorResult errorResult) {
         Log.e("APP#  ShareKakaoTalk | onFailure", "|" + errorResult.toString());
-        listener.onFailure(errorResult.getErrorMessage());
+        listener.onFailure(errorResult.getErrorCode(), errorResult.getErrorMessage());
       }
 
       @Override

+ 9 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/SettingPresenter.java

@@ -266,8 +266,13 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
       }
 
       @Override
-      public void onFailure(String result) {
-        showErrorDialog(result);
+      public void onFailure(int errorCode, String result) {
+        if (ShareKakaoTalk.CLIENT_ERROR_CODE == errorCode) {
+          showErrorDialog(ResourceUtil.getString(R.string.please_install_kakaotalk));
+        }
+        else {
+          showErrorDialog(result);
+        }
       }
     });
   }
@@ -281,7 +286,7 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
       }
 
       @Override
-      public void onFailure(String result) {
+      public void onFailure(int errorCode, String result) {
         showErrorDialog(result);
       }
     });
@@ -297,7 +302,7 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
       }
 
       @Override
-      public void onFailure(String result) {
+      public void onFailure(int errorCode, String result) {
         showErrorDialog(ResourceUtil.getString(R.string.share_error_message));
       }
     });

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -630,5 +630,6 @@
   <string name="sending_email">이메일 보내기</string>
   <string name="view_in_web">웹에서 보기</string>
   <string name="view_in_app">앱에서 보기</string>
+  <string name="please_install_kakaotalk">카카오톡을 설치해 주세요.</string>
 
 </resources>