Skip to content

Commit 1afad6b

Browse files
author
Abe Haskins
committed
Adds functional support for Twitter auth and partial Facebook support
1 parent ff00df8 commit 1afad6b

17 files changed

+674
-16
lines changed

FirebaseUI-Android.iml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module external.linked.project.id="FirebaseUI-Android" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="java-gradle" name="Java-Gradle">
5+
<configuration>
6+
<option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
7+
<option name="BUILDABLE" value="false" />
8+
</configuration>
9+
</facet>
10+
</component>
11+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
12+
<exclude-output />
13+
<content url="file://$MODULE_DIR$">
14+
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
15+
</content>
16+
<orderEntry type="inheritedJdk" />
17+
<orderEntry type="sourceFolder" forTests="false" />
18+
</component>
19+
</module>

app/app.iml

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module external.linked.project.id=":app" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="FirebaseUI-Android" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="android-gradle" name="Android-Gradle">
5+
<configuration>
6+
<option name="GRADLE_PROJECT_PATH" value=":app" />
7+
</configuration>
8+
</facet>
9+
<facet type="android" name="Android">
10+
<configuration>
11+
<option name="SELECTED_BUILD_VARIANT" value="debug" />
12+
<option name="SELECTED_TEST_ARTIFACT" value="_android_test_" />
13+
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
14+
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
15+
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugAndroidTest" />
16+
<option name="COMPILE_JAVA_TEST_TASK_NAME" value="compileDebugAndroidTestSources" />
17+
<afterSyncTasks>
18+
<task>generateDebugAndroidTestSources</task>
19+
<task>generateDebugSources</task>
20+
</afterSyncTasks>
21+
<option name="ALLOW_USER_CONFIGURATION" value="false" />
22+
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
23+
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
24+
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
25+
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
26+
</configuration>
27+
</facet>
28+
</component>
29+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
30+
<output url="file://$MODULE_DIR$/build/intermediates/classes/debug" />
31+
<output-test url="file://$MODULE_DIR$/build/intermediates/classes/androidTest/debug" />
32+
<exclude-output />
33+
<content url="file://$MODULE_DIR$">
34+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/debug" isTestSource="false" generated="true" />
35+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/debug" isTestSource="false" generated="true" />
36+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
37+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
38+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/google-services/debug" type="java-resource" />
39+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
40+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
41+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
42+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
43+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
44+
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
45+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
46+
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
47+
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
48+
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
49+
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
50+
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
51+
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
52+
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
53+
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
54+
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
55+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
56+
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" type="java-resource" />
57+
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
58+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
59+
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
60+
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
61+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
62+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
63+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
64+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
65+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
66+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
67+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
68+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
69+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
70+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
71+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
72+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
73+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
74+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
75+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.0/jars" />
76+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.2.1/jars" />
77+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.1/jars" />
78+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.facebook.android/facebook-android-sdk/4.6.0/jars" />
79+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-ads/8.1.0/jars" />
80+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-analytics/8.1.0/jars" />
81+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-appindexing/8.1.0/jars" />
82+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-base/8.1.0/jars" />
83+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-basement/8.1.0/jars" />
84+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-identity/8.1.0/jars" />
85+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-measurement/8.1.0/jars" />
86+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.google.android.gms/play-services-plus/8.1.0/jars" />
87+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
88+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
89+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
90+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
91+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
92+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
93+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
94+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
95+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
96+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
97+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
98+
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
99+
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
100+
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
101+
</content>
102+
<orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" />
103+
<orderEntry type="sourceFolder" forTests="false" />
104+
<orderEntry type="library" exported="" name="play-services-measurement-8.1.0" level="project" />
105+
<orderEntry type="library" exported="" name="play-services-appindexing-8.1.0" level="project" />
106+
<orderEntry type="library" exported="" name="play-services-base-8.1.0" level="project" />
107+
<orderEntry type="library" exported="" name="support-v4-22.2.1" level="project" />
108+
<orderEntry type="library" exported="" name="play-services-ads-8.1.0" level="project" />
109+
<orderEntry type="library" exported="" name="recyclerview-v7-22.2.1" level="project" />
110+
<orderEntry type="library" exported="" name="play-services-identity-8.1.0" level="project" />
111+
<orderEntry type="library" exported="" name="support-annotations-22.2.1" level="project" />
112+
<orderEntry type="library" exported="" name="firebase-client-jvm-2.3.1" level="project" />
113+
<orderEntry type="library" exported="" name="firebase-client-android-2.3.1" level="project" />
114+
<orderEntry type="library" exported="" name="jackson-core-2.2.2" level="project" />
115+
<orderEntry type="library" exported="" name="appcompat-v7-22.2.0" level="project" />
116+
<orderEntry type="library" exported="" name="jackson-databind-2.2.2" level="project" />
117+
<orderEntry type="library" exported="" name="play-services-basement-8.1.0" level="project" />
118+
<orderEntry type="library" exported="" name="tubesock-0.0.11" level="project" />
119+
<orderEntry type="library" exported="" name="facebook-android-sdk-4.6.0" level="project" />
120+
<orderEntry type="library" exported="" name="play-services-analytics-8.1.0" level="project" />
121+
<orderEntry type="library" exported="" name="jackson-annotations-2.2.2" level="project" />
122+
<orderEntry type="library" exported="" name="bolts-android-1.2.0" level="project" />
123+
<orderEntry type="library" exported="" name="twitter4j-core-4.0.2" level="project" />
124+
<orderEntry type="library" exported="" name="play-services-plus-8.1.0" level="project" />
125+
<orderEntry type="module" module-name="library" exported="" />
126+
</component>
127+
</module>

app/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ android {
77

88
defaultConfig {
99
applicationId "com.firebase.uidemo"
10-
minSdkVersion 10
10+
minSdkVersion 15
1111
targetSdkVersion 22
1212
versionCode 1
1313
versionName "1.0"
@@ -33,5 +33,6 @@ dependencies {
3333
compile 'com.google.android.gms:play-services-plus:8.1.0'
3434
compile 'com.firebase:firebase-client-android:2.3.1'
3535
compile 'com.android.support:recyclerview-v7:22.2.1'
36+
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
3637
compile project(':library')
3738
}

app/src/main/AndroidManifest.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,16 @@
2020
<category android:name="android.intent.category.LAUNCHER" />
2121
</intent-filter>
2222
</activity>
23+
<activity android:name="com.firebase.ui.com.firebasei.ui.authimpl.TwitterPromptActivity"></activity>
24+
25+
<activity
26+
android:name="com.facebook.FacebookActivity"
27+
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
28+
android:label="@string/app_name"
29+
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
30+
<meta-data
31+
android:name="com.facebook.sdk.ApplicationId"
32+
android:value="@string/facebook_app_id" />
2333
</application>
2434

2535
</manifest>

app/src/main/java/com/firebase/uidemo/RecyclerViewDemoActivity.java

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ protected void onCreate(Bundle savedInstanceState) {
4242
messages.setHasFixedSize(true);
4343
messages.setLayoutManager(new LinearLayoutManager(this));
4444

45-
mRef = new Firebase("https://firebaseui.firebaseio.com/chat");
45+
mRef = new Firebase("https://bucket.firebaseio.com/chat");
4646

4747
mSendButton.setOnClickListener(new View.OnClickListener() {
4848
@Override
@@ -81,20 +81,26 @@ public void populateViewHolder(ChatHolder chatView, Chat chat) {
8181
messages.setAdapter(adapter);
8282
}
8383

84-
public static final int LOGIN = Menu.FIRST;
85-
public static final int LOGOUT = LOGIN+1;
84+
public static final int LOGIN_TWITTER = Menu.FIRST;
85+
public static final int LOGIN_FACEBOOK = LOGIN_TWITTER+1;
86+
public static final int LOGIN_GOOGLE = LOGIN_TWITTER+2;
87+
public static final int LOGOUT = LOGIN_TWITTER+3;
8688

8789
@Override
8890
public boolean onCreateOptionsMenu(Menu menu) {
89-
menu.add(LOGIN, LOGIN, LOGIN, "Log in");
91+
menu.add(LOGIN_TWITTER, LOGIN_TWITTER, LOGIN_TWITTER, "Log in via Twitter");
92+
menu.add(LOGIN_FACEBOOK, LOGIN_FACEBOOK, LOGIN_FACEBOOK, "Log in via Facebook");
93+
menu.add(LOGIN_GOOGLE, LOGIN_GOOGLE, LOGIN_GOOGLE, "Log in via Google");
9094
menu.add(LOGOUT, LOGOUT, LOGOUT, "Log out");
9195

9296
return super.onCreateOptionsMenu(menu);
9397
}
9498

9599
@Override
96100
public boolean onPrepareOptionsMenu(Menu menu) {
97-
menu.getItem(LOGIN-Menu.FIRST).setVisible(mAuthData == null);
101+
menu.getItem(LOGIN_TWITTER-Menu.FIRST).setVisible(mAuthData == null);
102+
menu.getItem(LOGIN_GOOGLE-Menu.FIRST).setVisible(mAuthData == null);
103+
menu.getItem(LOGIN_FACEBOOK-Menu.FIRST).setVisible(mAuthData == null);
98104
menu.getItem(LOGOUT-Menu.FIRST).setVisible(mAuthData != null);
99105
mSendButton.setEnabled(mAuthData != null);
100106
mMessageEdit.setEnabled(mAuthData != null);
@@ -104,7 +110,13 @@ public boolean onPrepareOptionsMenu(Menu menu) {
104110
@Override
105111
public boolean onOptionsItemSelected(MenuItem item) {
106112
switch (item.getItemId()) {
107-
case LOGIN:
113+
case LOGIN_TWITTER:
114+
this.loginWithProvider(SocialProvider.twitter);
115+
return true;
116+
case LOGIN_FACEBOOK:
117+
this.loginWithProvider(SocialProvider.facebook);
118+
return true;
119+
case LOGIN_GOOGLE:
108120
this.loginWithProvider(SocialProvider.google);
109121
return true;
110122
case LOGOUT:

app/src/main/res/layout/recycler_view_demo.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
android:layout_alignParentLeft="true"
1414
android:layout_alignParentStart="true"
1515
android:layout_alignParentTop="true"
16-
android:layout_above="@+id/footer" />
16+
android:layout_above="@+id/footer"
17+
/>
1718

1819
<LinearLayout
1920
android:orientation="horizontal"

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
<resources>
22
<string name="app_name">FirebaseUI Chat</string>
3+
<string name="facebook_app_id">547033782072218</string>
34
</resources>

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ buildscript {
1515
allprojects {
1616
repositories {
1717
jcenter()
18+
mavenCentral()
1819
}
1920
}

library/build.gradle

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ android {
66
buildToolsVersion "22.0.1"
77

88
defaultConfig {
9-
minSdkVersion 10
9+
minSdkVersion 15
1010
targetSdkVersion 22
1111
versionCode 1
1212
versionName "0.2.0"
@@ -47,5 +47,7 @@ dependencies {
4747
compile 'com.android.support:recyclerview-v7:22.2.0'
4848
compile 'com.google.android.gms:play-services-identity:8.1.0'
4949
compile 'com.google.android.gms:play-services-plus:8.1.0'
50+
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
51+
compile 'org.twitter4j:twitter4j-core:4.0.2'
5052
androidTestCompile 'junit:junit:4.12'
5153
}

0 commit comments

Comments
 (0)