Browse Source

[설정][Common] 페이스북 공유 구현중

Hasemi 7 years ago
parent
commit
acee4a3888

+ 2 - 0
app/build.gradle

@@ -134,6 +134,8 @@ dependencies {
     implementation 'com.github.bumptech.glide:glide:4.8.0'
     annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
     implementation group: project.KAKAO_SDK_GROUP, name: 'kakaolink', version: project.KAKAO_SDK_VERSION
+    implementation 'com.facebook.android:facebook-share:[4,5)'
+
     /*********************************
      * UNIT TEST
      *********************************/

+ 10 - 1
app/src/main/AndroidManifest.xml

@@ -49,9 +49,18 @@
       android:screenOrientation="portrait"
       android:windowSoftInputMode="adjustResize">
     </activity>
-
+    <activity
+    android:name="com.facebook.FacebookActivity"
+    android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
+    android:label="@string/app_name" />
     <meta-data
       android:name="com.kakao.sdk.AppKey"
       android:value="@string/kakao_app_key"/>
+    <meta-data
+      android:name="com.facebook.sdk.ApplicationId"
+      android:value="@string/facebook_app_id"/>
+    <provider android:authorities="com.facebook.app.FacebookContentProvider252658048750865"
+              android:name="com.facebook.FacebookContentProvider"
+              android:exported="true" />
   </application>
 </manifest>

+ 0 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/activity/MainActivity.java

@@ -49,7 +49,6 @@ public class MainActivity extends AppCompatActivity {
 
     setContentView(R.layout.activity_main);
 
-
     Log.w("APP# MainActivity | onCreate", "| >>>>>>>>>>>>>> " + this.getClass().getSimpleName() + " HC: " + this.hashCode());
 
     //keyHash t3rHcT2FsQfMLAqRFPFmJSxwyV8=

+ 2 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/activity/SplashActivity.java

@@ -36,6 +36,7 @@ public class SplashActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
+    Log.e("APP#  MainActivity | onCreate", "|getIntent().getData() : " + getIntent().getData());
 
     Log.e("APP#  SplashActivity | onCreate", "| -------------------------------------------------- ");
 
@@ -75,6 +76,7 @@ public class SplashActivity extends AppCompatActivity {
   private void jumpActivity(Context context1, int fragmentFlag) {
     Intent intent = new Intent(context1, MainActivity.class);
     intent.putExtra(ScreenStarter.FLAG_FRAGMENT, fragmentFlag);
+
     context1.startActivity(intent);
   }
 

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/Event.java

@@ -101,6 +101,7 @@ public class Event {
   public static final int BANNER = 73;
   public static final int RECOMMEND = 74;
   public static final int KAKAO_TALK = 75;
+  public static final int FACE_BOOK = 76;
 
 
   @Retention(RetentionPolicy.SOURCE)
@@ -112,7 +113,7 @@ public class Event {
     ACTION_BAR_HOME, ACTION_BAR_NOTIFICATION, ACTION_BAR_SETTING, ACTION_BAR_CLOSE, ACTION_BAR_BACK,
     ACTION_BAR_SEARCH, ACTION_BAR_MENU, ACTION_BAR_TITLE, FIRST_CATEGORY, SECOND_CATEGORY, THIRD_CATEGORY, FOURTH_CATEGORY, FIFTH_CATEGORY,
     SWITCH, BOOK_MARK_DEFAULT, BOOK_MARK_LIST, ADD, MY_COIN_MAIN, MY_PURCHASE_HISTORY, GUIDE, ADD_BUCKET, MY_MAIN_GUEST, COUPON_MALL, CATEGORY_CLICK,
-    MY_FAQ, UPDATE, FILTER, CLOSE, HELP, CONTENTS, MORE, BANNER, RECOMMEND, KAKAO_TALK
+    MY_FAQ, UPDATE, FILTER, CLOSE, HELP, CONTENTS, MORE, BANNER, RECOMMEND, KAKAO_TALK, FACE_BOOK
   })
   public @interface ID {}
 

+ 6 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/CurrentPageShareDialog.java

@@ -59,6 +59,12 @@ public class CurrentPageShareDialog extends DialogBase {
       }
     });
 
+    getView().findViewById(R.id.image_view_facebook).setOnClickListener(view -> {
+      if (null != getCustomListener()) {
+        getCustomListener().onDialogResult(CurrentPageShareDialog.this, new Event.Builder(Event.FACE_BOOK).build());
+      }
+    });
+
 
   }
 

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

@@ -1,6 +1,8 @@
 package kr.co.zumo.app.lifeplus.view.screen.setting;
 
 import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -8,6 +10,14 @@ import android.view.View;
 import android.widget.TextView;
 import android.widget.Toast;
 
+import com.facebook.CallbackManager;
+import com.facebook.FacebookCallback;
+import com.facebook.FacebookException;
+import com.facebook.share.Sharer;
+import com.facebook.share.model.ShareLinkContent;
+import com.facebook.share.model.SharePhoto;
+import com.facebook.share.model.SharePhotoContent;
+import com.facebook.share.widget.ShareDialog;
 import com.kakao.kakaolink.v2.KakaoLinkResponse;
 import com.kakao.kakaolink.v2.KakaoLinkService;
 import com.kakao.message.template.ButtonObject;
@@ -202,6 +212,10 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
                           e.printStackTrace();
                         }
                         break;
+                      case Event.FACE_BOOK:
+                        Log.e("APP#  SettingPresenter | onDialogResult", "|" + "facebook");
+                        setFaceBookLink();
+                        break;
                       default:
                         break;
                     }
@@ -270,7 +284,7 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
       .addButton(new ButtonObject("앱에서 보기", LinkObject.newBuilder()
         .setWebUrl("'https://developers.kakao.com")
         .setMobileWebUrl("'https://developers.kakao.com")
-        .setAndroidExecutionParams("key1=value1")
+        .setAndroidExecutionParams("key=test") //kakao95448ff031e92087b5dbc44d56cff7bb://kakaolink?key=test
         .setIosExecutionParams("key1=value1")
         .build()))
       .build();
@@ -293,6 +307,42 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
     });
   }
 
+  private void setFaceBookLink(){
+    Log.e("APP#  SettingPresenter | setFaceBookLink", "|" + "들어옴");
+    CallbackManager callbackManager = CallbackManager.Factory.create();
+    ShareDialog shareDialog =  new ShareDialog(view.getActivity());
+    shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
+      @Override
+      public void onSuccess(Sharer.Result result) {
+        Log.w("APP#  SettingPresenter | onSuccess", "|" + "success");
+      }
+
+      @Override
+      public void onCancel() {
+        Log.w("APP# SettingPresenter | onCancel", "|" + "onCancel");
+      }
+
+      @Override
+      public void onError(FacebookException error) {
+        Log.e("APP#  SettingPresenter | onError", "|" + "facebook error");
+      }
+    });
+    if(shareDialog.canShow(ShareLinkContent.class)){
+      Log.e("APP#  SettingPresenter | setFaceBookLink", "|" + "if문 들어옴");
+      BitmapDrawable drawableImage = (BitmapDrawable) view.getActivity().getResources().getDrawable(R.drawable.banner_bg_1);
+      Bitmap bitmap = drawableImage.getBitmap();
+      SharePhoto photo = new SharePhoto.Builder()
+        .setBitmap(bitmap)
+        .build();
+      SharePhotoContent content = new SharePhotoContent.Builder()
+        .addPhoto(photo)
+        .build();
+      shareDialog.show(content, null);
+    }
+
+
+  }
+
   @Override
   public void onResult(Event event) {
     switch (event.getEventId()) {

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

@@ -14,7 +14,8 @@
   <string name="kakao_scheme">kakao95448ff031e92087b5dbc44d56cff7bb</string>
   <string name="kakaolink_host">kakaolink</string>
 
-
+  <!--페이스북-->
+  <string name="facebook_app_id">252658048750865</string>
 
   <string name="empty_string" translatable="false"/>
   <string name="confirm">확인</string>