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 @@
+ android:paddingRight="@dimen/grid_3"
+ android:background="@drawable/button_facebook"
+ android:drawableLeft="@drawable/ic_social_facebook"
+ android:drawableStart="@drawable/ic_social_facebook"
+ android:text="@string/Share"
+ android:textAllCaps="false"
+ android:textAppearance="@style/TextAppearance.AppCompat.Button"
+ android:textColor="@color/white" />