Fixed several fb login errors--it seems to be working now

pull/14/head
Sam Bosley 12 years ago
parent ce37aa607b
commit a4f92a6446

@ -381,6 +381,7 @@
<activity android:name="com.todoroo.astrid.actfm.ActFmLoginActivity"
android:configChanges="keyboardHidden"/>
<activity android:name="com.todoroo.astrid.taskrabbit.TaskRabbitOAuthLoginActivity" />
<activity android:name="com.facebook.LoginActivity" />
<activity android:name="com.todoroo.astrid.actfm.ActFmPreferences"
android:theme="@android:style/Theme"
android:label="@string/actfm_APr_header">

@ -40,9 +40,13 @@ import android.widget.ScrollView;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.facebook.Request;
import com.facebook.Request.GraphUserCallback;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;
import com.facebook.model.GraphUser;
import com.facebook.widget.LoginButton;
import com.google.android.googlelogin.GoogleLoginServiceConstants;
import com.google.android.googlelogin.GoogleLoginServiceHelper;
@ -261,12 +265,16 @@ public class ActFmLoginActivity extends SherlockFragmentActivity {
if(loginButton == null)
return;
loginButton.setReadPermissions(Arrays.asList("email", "offline_access", "publish_stream"));
loginButton.setReadPermissions(Arrays.asList("email", "offline_access"));
View googleLogin = findViewById(R.id.gg_login);
if(AmazonMarketStrategy.isKindleFire())
googleLogin.setVisibility(View.GONE);
googleLogin.setOnClickListener(googleListener);
View fbLogin = findViewById(R.id.fb_login_dummy);
fbLogin.setOnClickListener(facebookListener);
TextView signUp = (TextView) findViewById(R.id.pw_signup);
signUp.setOnClickListener(signUpListener);
@ -288,6 +296,19 @@ public class ActFmLoginActivity extends SherlockFragmentActivity {
}
};
protected final OnClickListener facebookListener = new OnClickListener() {
@Override
public void onClick(View v) {
Session session = Session.getActiveSession();
if (session != null && session.isOpened()) {
facebookSuccess(session);
} else {
View fbLogin = findViewById(R.id.fb_login);
fbLogin.performClick();
}
}
};
protected final OnClickListener signUpListener = new OnClickListener() {
@Override
public void onClick(View v) {
@ -474,12 +495,29 @@ public class ActFmLoginActivity extends SherlockFragmentActivity {
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
if (state.isOpened()) {
Log.e("fb-login", "State opened");
facebookSuccess(session);
} else if (state.isClosed()) {
Log.e("fb-login", "State closed");
}
}
private void facebookSuccess(Session session) {
progressDialog = DialogUtilities.progressDialog(this,
getString(R.string.DLG_please_wait));
Request request = Request.newMeRequest(session, new GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
try {
String email = user.getInnerJSONObject().optString("email"); //$NON-NLS-1$
authenticate(email, user.getFirstName(), user.getLastName(), ActFmInvoker.PROVIDER_FACEBOOK, Session.getActiveSession().getAccessToken());
} catch (Exception e) {
handleError(e);
}
}
});
request.executeAsync();
}
private UiLifecycleHelper uiHelper;
private final Session.StatusCallback callback = new Session.StatusCallback() {

@ -36,7 +36,7 @@
android:gravity="center_vertical"
android:paddingTop="5dip" >
<com.facebook.android.LoginButton
<com.facebook.widget.LoginButton
android:id="@+id/fb_login"
android:layout_width="fill_parent"
android:layout_height="45dip"
@ -49,6 +49,22 @@
android:gravity="left|center_vertical"
android:background="@drawable/fb_login_background"
android:textColor="@android:color/white"
android:text="@string/actfm_ALA_fb_login"
android:visibility="gone"/>
<Button
android:id="@+id/fb_login_dummy"
android:layout_width="fill_parent"
android:layout_height="45dip"
android:layout_marginLeft="15dip"
android:layout_marginRight="15dip"
android:layout_marginBottom="15dip"
android:layout_marginTop="15dip"
android:paddingLeft="70dip"
android:textSize="14sp"
android:gravity="left|center_vertical"
android:background="@drawable/google_login_background"
android:textColor="@android:color/white"
android:text="@string/actfm_ALA_fb_login" />
<Button

@ -36,7 +36,7 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal">
<com.facebook.android.LoginButton
<com.facebook.widget.LoginButton
android:id="@+id/fb_login"
android:layout_width="300dip"
android:layout_height="45dip"
@ -48,8 +48,23 @@
android:gravity="left|center_vertical"
android:background="@drawable/fb_login_background"
android:textColor="@android:color/white"
android:text="@string/actfm_ALA_fb_login" />
android:text="@string/actfm_ALA_fb_login"
android:visibility="gone" />
<Button
android:id="@+id/fb_login_dummy"
android:layout_width="300dip"
android:layout_height="45dip"
android:layout_marginLeft="15dip"
android:layout_marginRight="15dip"
android:layout_marginBottom="15dip"
android:paddingLeft="70dip"
android:textSize="16sp"
android:gravity="left|center_vertical"
android:background="@drawable/google_login_background"
android:textColor="@android:color/white"
android:text="@string/actfm_ALA_fb_login" />
<Button
android:id="@+id/gg_login"
android:layout_width="300dip"

Loading…
Cancel
Save