diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a27916e27..d2f17e55c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -69,11 +69,17 @@ android:name=".ui.activities.TwoFactorActivity" android:theme="@style/Login" /> - + + diff --git a/app/src/main/java/com/kickstarter/KsrApplication.java b/app/src/main/java/com/kickstarter/KsrApplication.java index 62d5aa5ff..bb16c307b 100644 --- a/app/src/main/java/com/kickstarter/KsrApplication.java +++ b/app/src/main/java/com/kickstarter/KsrApplication.java @@ -3,6 +3,7 @@ package com.kickstarter; import android.app.Application; import android.content.Context; +import com.facebook.FacebookSdk; import com.squareup.leakcanary.LeakCanary; import com.squareup.leakcanary.RefWatcher; @@ -49,6 +50,8 @@ public class KsrApplication extends Application { component().inject(this); CookieHandler.setDefault(cookieManager); + + FacebookSdk.sdkInitialize(this); } public ApplicationComponent component() { diff --git a/app/src/main/java/com/kickstarter/presenters/ThanksPresenter.java b/app/src/main/java/com/kickstarter/presenters/ThanksPresenter.java index 8191bd8cf..257eb4d73 100644 --- a/app/src/main/java/com/kickstarter/presenters/ThanksPresenter.java +++ b/app/src/main/java/com/kickstarter/presenters/ThanksPresenter.java @@ -22,6 +22,7 @@ import rx.subjects.PublishSubject; public class ThanksPresenter extends Presenter { private final PublishSubject doneClick = PublishSubject.create(); + private final PublishSubject facebookClick = PublishSubject.create(); private final PublishSubject shareClick = PublishSubject.create(); private final PublishSubject twitterClick = PublishSubject.create(); @@ -41,6 +42,10 @@ public class ThanksPresenter extends Presenter { .observeOn(AndroidSchedulers.mainThread()) .subscribe(vp -> vp.first.show(vp.second))); + addSubscription(RxUtils.takeWhen(viewAndProject, facebookClick) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(vp -> vp.first.startFacebookShareIntent(vp.second))); + addSubscription(RxUtils.takeWhen(viewAndProject, shareClick) .observeOn(AndroidSchedulers.mainThread()) .subscribe(vp -> vp.first.startShareIntent(vp.second))); @@ -72,6 +77,10 @@ public class ThanksPresenter extends Presenter { doneClick.onNext(null); } + public void takeFacebookClick() { + facebookClick.onNext(null); + } + public void takeShareClick() { shareClick.onNext(null); } diff --git a/app/src/main/java/com/kickstarter/ui/activities/LoginToutActivity.java b/app/src/main/java/com/kickstarter/ui/activities/LoginToutActivity.java index 523dae266..630f44f4f 100644 --- a/app/src/main/java/com/kickstarter/ui/activities/LoginToutActivity.java +++ b/app/src/main/java/com/kickstarter/ui/activities/LoginToutActivity.java @@ -25,8 +25,6 @@ public class LoginToutActivity extends BaseActivity { protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); - FacebookSdk.sdkInitialize(this.getApplicationContext()); - setContentView(R.layout.login_tout_layout); ButterKnife.bind(this); diff --git a/app/src/main/java/com/kickstarter/ui/activities/ThanksActivity.java b/app/src/main/java/com/kickstarter/ui/activities/ThanksActivity.java index 782da5d12..0850e7974 100644 --- a/app/src/main/java/com/kickstarter/ui/activities/ThanksActivity.java +++ b/app/src/main/java/com/kickstarter/ui/activities/ThanksActivity.java @@ -3,6 +3,7 @@ package com.kickstarter.ui.activities; import android.content.Intent; import android.graphics.drawable.Animatable; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.support.v7.widget.LinearLayoutManager; @@ -12,6 +13,9 @@ import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import com.facebook.CallbackManager; +import com.facebook.share.model.ShareLinkContent; +import com.facebook.share.widget.ShareDialog; import com.kickstarter.R; import com.kickstarter.libs.BaseActivity; import com.kickstarter.libs.RequiresPresenter; @@ -32,7 +36,9 @@ public class ThanksActivity extends BaseActivity { @Bind(R.id.recommended_projects_recycler_view) RecyclerView recommendedProjectsRecyclerView; @Bind(R.id.woohoo_background) ImageView woohooBackgroundImageView; + CallbackManager facebookCallbackManager; ProjectCardMiniAdapter projectCardMiniAdapter; + ShareDialog shareDialog; @Override protected void onCreate(final Bundle savedInstanceState) { @@ -41,6 +47,9 @@ public class ThanksActivity extends BaseActivity { setContentView(R.layout.thanks_layout); ButterKnife.bind(this); + facebookCallbackManager = CallbackManager.Factory.create(); // TODO: Use this to track Facebook shares + shareDialog = new ShareDialog(this); + final LinearLayoutManager layoutManager = new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); recommendedProjectsRecyclerView.setLayoutManager(layoutManager); @@ -67,11 +76,28 @@ public class ThanksActivity extends BaseActivity { presenter.takeShareClick(); } + @OnClick(R.id.facebook_button) + public void onFacebookButtonClick(final View view) { + presenter.takeFacebookClick(); + } + @OnClick(R.id.twitter_button) public void onTwitterButtonClick(final View view) { presenter.takeTwitterClick(); } + public void startFacebookShareIntent(final Project project) { + if (ShareDialog.canShow(ShareLinkContent.class)) { + ShareLinkContent content = new ShareLinkContent.Builder() + .setContentTitle(project.name()) + .setContentDescription(shareString(project)) + .setContentUrl(Uri.parse(project.secureWebProjectUrl())) + .build(); + + shareDialog.show(content); + } + } + public void startShareIntent(final Project project) { final Intent intent = new Intent(android.content.Intent.ACTION_SEND) .setType("text/plain") diff --git a/app/src/main/res/drawable-hdpi/ic_social_facebook.png b/app/src/main/res/drawable-hdpi/ic_social_facebook.png new file mode 100755 index 000000000..292938d87 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_social_facebook.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_social_facebook.png b/app/src/main/res/drawable-mdpi/ic_social_facebook.png new file mode 100755 index 000000000..40460fe4e Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_social_facebook.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_social_facebook.png b/app/src/main/res/drawable-xhdpi/ic_social_facebook.png new file mode 100755 index 000000000..b53c47701 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_social_facebook.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_social_facebook.png b/app/src/main/res/drawable-xxhdpi/ic_social_facebook.png new file mode 100755 index 000000000..5ae6d10a9 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_social_facebook.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_social_facebook.png b/app/src/main/res/drawable-xxxhdpi/ic_social_facebook.png new file mode 100755 index 000000000..4846a34f2 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_social_facebook.png differ diff --git a/app/src/main/res/drawable/button_facebook.xml b/app/src/main/res/drawable/button_facebook.xml new file mode 100644 index 000000000..c4435be63 --- /dev/null +++ b/app/src/main/res/drawable/button_facebook.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/button_twitter_blue.xml b/app/src/main/res/drawable/button_twitter.xml similarity index 100% rename from app/src/main/res/drawable/button_twitter_blue.xml rename to app/src/main/res/drawable/button_twitter.xml diff --git a/app/src/main/res/layout/thanks_layout.xml b/app/src/main/res/layout/thanks_layout.xml index 9028780b9..4f60304ae 100644 --- a/app/src/main/res/layout/thanks_layout.xml +++ b/app/src/main/res/layout/thanks_layout.xml @@ -61,20 +61,28 @@