From 0dad28e51da6a71d95aa9057af8fbc0f022cd511 Mon Sep 17 00:00:00 2001 From: Christopher Wright Date: Wed, 9 Sep 2015 18:18:26 -0400 Subject: [PATCH] Add Facebook sharing from thanks page --- app/src/main/AndroidManifest.xml | 8 +++++- .../java/com/kickstarter/KsrApplication.java | 3 ++ .../presenters/ThanksPresenter.java | 9 ++++++ .../ui/activities/LoginToutActivity.java | 2 -- .../ui/activities/ThanksActivity.java | 26 ++++++++++++++++++ .../res/drawable-hdpi/ic_social_facebook.png | Bin 0 -> 466 bytes .../res/drawable-mdpi/ic_social_facebook.png | Bin 0 -> 316 bytes .../res/drawable-xhdpi/ic_social_facebook.png | Bin 0 -> 601 bytes .../drawable-xxhdpi/ic_social_facebook.png | Bin 0 -> 1012 bytes .../drawable-xxxhdpi/ic_social_facebook.png | Bin 0 -> 1610 bytes app/src/main/res/drawable/button_facebook.xml | 21 ++++++++++++++ ...on_twitter_blue.xml => button_twitter.xml} | 0 app/src/main/res/layout/thanks_layout.xml | 17 +++++++++--- app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 4 ++- assets/social-facebook.svg | 8 ++++++ assets/social-twitter.svg | 18 ++++++------ 17 files changed, 99 insertions(+), 18 deletions(-) create mode 100755 app/src/main/res/drawable-hdpi/ic_social_facebook.png create mode 100755 app/src/main/res/drawable-mdpi/ic_social_facebook.png create mode 100755 app/src/main/res/drawable-xhdpi/ic_social_facebook.png create mode 100755 app/src/main/res/drawable-xxhdpi/ic_social_facebook.png create mode 100755 app/src/main/res/drawable-xxxhdpi/ic_social_facebook.png create mode 100644 app/src/main/res/drawable/button_facebook.xml rename app/src/main/res/drawable/{button_twitter_blue.xml => button_twitter.xml} (100%) create mode 100644 assets/social-facebook.svg 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 0000000000000000000000000000000000000000..292938d874cbebe4ec4a28995d4e02a31ba5d97b GIT binary patch literal 466 zcmV;@0WJQCP)bF5XOIBVPj<_h>cHRE7%L7Xe&O0jirqbU}a}%DYnA-2!g$xowbz@AS0=~+~tn! zG6~saQik2h_iu(>A}01|Vtfh0V|P3p4u?mkKty_EhAzB&~En$)5j?cZ|x z$d*p{9=M(o;TdqchVT<`3w%lXO%*0(eJ@km%-(>*HNdtdeWw7=UE3Goci>|RwE^i}u&U=o_(sy5H@+c9`cl$!5rh{(#=&DjkvMpG=XkDOCp{dI zj>|(m1JT3L!+r|H(DKvrzfv4L;^5)`(`;2zqlcr19TbS66+om*{0mcZNQr za1hQAt*9;Ga8Y(;fDMN;L@R1bI9!xn8DPWV4AF|(GC7C;09iPiJy(?3)&Kwi07*qo IM6N<$g1j8l-v9sr literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..40460fe4e9124a1cd452ada2f313368f691f32e6 GIT binary patch literal 316 zcmV-C0mJ@@P)-W91~|^MN5CLC0Se76R$&qQNCkv6blaK7(uTZeDmt(8 z_4{Y06&){ioR0wXCKLw4px1!6|7B~?%tpWl_yVTD;1Nzz)?8UlWh-Vj1`fca%2?Zg zTVVNDoUH+xSs(ZTifd)H2{;2zPsmolPSVA*QQT|L%of1$2}DoQuLrK^{WrkeNXswu zxqxP73GtmJ4HL%Shh`g01UyNacNuUmsrbSq*SidUOIjz>#V*cKR_e))`1YKtgF4Q^ zrs;&irlzXKg~2fBG!W;YQ=tEk+6z$E?~b@`0`L6*41-<+-u_sFUV~R7M`tMj>Ez-7 O0000%;FH zVp)?9NpIL7pmeXn^;AN3_VO^N4ch`fuw9Dayj8&~wzI*3%bN3rFGpEeUE)zE!*~Ba z%ctF#Ynf^MKJEKVzc{myad8+vh|x%xB7%j(={A$ENYg+e8e_=O#P2 zAzifdGWrJmwX!3r$0ZLy6fB4yWh6odKC8Bh_O!NWl;Zu>o@!4 zzWPpMs_06MoY%E`o+|@e!S&)a!{hEQ>%C3b^xJNqSedF)`s2b|L%Qz(tmr}Bi0A+X3V>3cX@A)p(w+dn04 zit>H6wetiTmhb$K8|1l=wLjT_ZG9zI(uXEqUEThJ5s_EjE21DP8HPTheSm9n*C(D`h}Z(Pmq=nDZP<;L(e`^vMDwwLK>zGasl{B4*Q) zr-dM?yqgy;-7}DAHr$codHOL(>dvNxOZO%kuq79qoHXq?&=|uVsm|Wjhe5VZQq={y zDY@Wu+otWiST6nP@7wk5b2y`gWikVa2_0`PnIrQdKWw^L$K%Nt%7M9=!PC{xWt~$( F698MN*gXIM literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..4846a34f2a9c0f40c4d7ad1ae923b794dc81d8ab GIT binary patch literal 1610 zcmd^=`A^e#7{@=Q2!(M~7Yt1;vVOVLND(?jL>Ox&LM^N!L!qpZQ27Fda0!JLRI|m&GgxPBRA&kM@V; zd1kj5|47ybj)a&smlPD>4;Gj9_Yb;6bcjx!4lf(E&2AjDj}tbaY~NoVvQ97KR+B!S z@9iGeZBDraC$_Q{ee3M5W)$*mtTD-HcnrP0#>ALt)8PgB#6^h-lV4i3h^6HbQ^s9-CD&1>elINdFX$$vm|Y=5t$Er#Z6Jck}h%8bv07dt`A?@ zxu9U7+jLOjD}Ug#^k%0+H&w>jyfWp)tFvHFA9!>p)87$CIh1#o0_0cs?fMOL8q}$r zh;I$*_58hPcNz1<@JlcYXO&cLIK^wFK0oJ!%&B=6!O_2FBS%ny7B}MR4cK^WY5`GH*3jp^yQ+CV>Jf|fCqYzm26tNVFHwOqZG;N2(1HbZOS701h#!IqbgSD_P8-Wcw*jI4me+>z6Bv*rv#b@1S zV8Fem&@;uBKt#sU1SW?2lvTzfft&3>brS;Q<~lcw8_ZUEM4bZI{{c*OX??CvG`7G( Q8-4^J1xE%w3XHq?H=5|dr2qf` literal 0 HcmV?d00001 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 @@