Android Open Source - Learn-From-Me User Fragment_ User Logged In From Project Back to project page Learn-From-Me .
License The source code is released under:
Apache License
If you think the Android project Learn-From-Me listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.overnightApps.myapplication.app.ui.homeFragments.UserLogInStateDependentFragments;
/ * f r o m w w w . j a v a 2 s . c o m * /
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.overnightApps.myapplication.app.core.User;
import com.overnightApps.myapplication.app.service.FriendshipSession;
import com.overnightApps.myapplication.app.service.UserSession;
import com.overnightApps.myapplication.app.util.AUtil;
import com.overnightApps.myapplication.app.util.Logger;
import com.overnightApps.myapplication.app.util.MyAssert;
import junit.framework.Assert;
/**
* Created by andre on 4/24/14.
*/
public class UserFragment_UserLoggedIn extends UserFragment {
private static final String CURRENT_USER = "currentUser" ;
FriendshipSession.FriendShipState currentFriendShipState;
public static UserFragment newInstance(UserSession userSession, User selectedUser) {
UserFragment fragment = new UserFragment_UserLoggedIn();
Bundle args = new Bundle();
args.putSerializable(SELECTED_USER, selectedUser);
args.putSerializable(USER_SERVICE_ARG, userSession);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = super.onCreateView(inflater, container, savedInstanceState);
ll_actionButtons.setVisibility(View.VISIBLE);
refreshActionButton();
return v;
}
private void refreshActionButton() {
if (userSession.getCurrentUser() == null ) {
return ;
}
if (userSession.getCurrentUser().equals(selectedUser)) {
b_actionButton.setOnClickListener(new MyOnClickUpdatePictureListener());
b_actionButton.setText("Change Picture" );
} else {
FriendshipSession friendshipSession = FriendshipSession.friendshipServiceInstance(
userSession.getCurrentUser(), selectedUser);
updateCurrentFriendShipState(friendshipSession.getFriendshipState());
MyOnClickChangeFriendStateListener onClickListener = new MyOnClickChangeFriendStateListener();
onClickListener.setFriendshipSession(friendshipSession);
b_actionButton.setOnClickListener(onClickListener);
}
}
private void updateCurrentFriendShipState(FriendshipSession.FriendShipState currentFriendShipState) {
this.currentFriendShipState = currentFriendShipState; //TODO - change to a publish-subscribe design pattern
updateButtonDisplay(this.currentFriendShipState);
}
private void updateButtonDisplay(FriendshipSession.FriendShipState friendShipState) {
b_actionButton.setText(friendShipState.getMessageForUser());
}
private class MyOnClickChangeFriendStateListener implements View.OnClickListener {
FriendshipSession friendshipSession;
public void setFriendshipSession(FriendshipSession friendshipSession) {
this.friendshipSession = friendshipSession;
}
@Override
public void onClick(View v) {
Assert.assertNotNull(friendshipSession);
FriendshipSession.FriendShipState initialFriendShipState = friendshipSession.getFriendshipState();
if (initialFriendShipState == FriendshipSession.FriendShipState.NONE) {
friendshipSession.sendFriendRequest();
updateCurrentFriendShipState(FriendshipSession.FriendShipState.WAITING_FOR_RESPONSE);
Logger.p(getActivity(), "Friend Request Sent" );
} else if (initialFriendShipState == FriendshipSession.FriendShipState.RECEIVED_REQUEST) {
DialogInterface.OnClickListener onClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
friendshipSession.acceptFriendRequest();
updateCurrentFriendShipState(FriendshipSession.FriendShipState.UNTRUSTED_FRIEND);
break ;
case DialogInterface.BUTTON_NEUTRAL:
break ;
case DialogInterface.BUTTON_NEGATIVE:
friendshipSession.denyFriendRequest();
updateCurrentFriendShipState(FriendshipSession.FriendShipState.NONE);
break ;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("Handle Request" )
.setPositiveButton("Accept" , onClickListener)
.setNeutralButton("Cancel" , onClickListener)
.setNegativeButton("Ignore" , onClickListener).show();
} else if (initialFriendShipState == FriendshipSession.FriendShipState.TRUSTED_FRIEND) {
AUtil.confirmUserSelection(getActivity(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case DialogInterface.BUTTON_POSITIVE:
friendshipSession.unTrustUser();
updateCurrentFriendShipState(FriendshipSession.FriendShipState.UNTRUSTED_FRIEND);
break ;
case DialogInterface.BUTTON_NEGATIVE:
break ;
}
}
});
} else if (initialFriendShipState == FriendshipSession.FriendShipState.UNTRUSTED_FRIEND) {
AUtil.confirmUserSelection(getActivity(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
friendshipSession.trustUser();
updateCurrentFriendShipState(FriendshipSession.FriendShipState.TRUSTED_FRIEND);
break ;
case DialogInterface.BUTTON_NEGATIVE:
break ;
}
}
});
} else if (initialFriendShipState == FriendshipSession.FriendShipState.WAITING_FOR_RESPONSE) {
Toast.makeText(getActivity(), "Waiting for other user's response" , Toast.LENGTH_SHORT);
} else {
MyAssert.assertShouldNotReachHere();
}
}
}
private class MyOnClickUpdatePictureListener implements View.OnClickListener {
@Override
public void onClick(View v) {
Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*" );
startActivityForResult(Intent.createChooser(photoPickerIntent, "Select Picture" ),
PROFILE_PICTURE_REQUEST_CODE);
}
}
}
Java Source Code List com.overnightApps.myapplication.app.CustomApplication.java com.overnightApps.myapplication.app.core.Comment.java com.overnightApps.myapplication.app.core.FriendShipRequest.java com.overnightApps.myapplication.app.core.Friendship.java com.overnightApps.myapplication.app.core.LetterRecommendation.java com.overnightApps.myapplication.app.core.LetterVote.java com.overnightApps.myapplication.app.core.Letter.java com.overnightApps.myapplication.app.core.User.java com.overnightApps.myapplication.app.core.helper.LetterWithUserVote.java com.overnightApps.myapplication.app.core.helper.SignUpForm.java com.overnightApps.myapplication.app.dao.CommentDao.java com.overnightApps.myapplication.app.dao.Dao.java com.overnightApps.myapplication.app.dao.FriendshipDao.java com.overnightApps.myapplication.app.dao.FriendshipRequestDao.java com.overnightApps.myapplication.app.dao.LetterDao.java com.overnightApps.myapplication.app.dao.LetterRecommendationDao.java com.overnightApps.myapplication.app.dao.LetterVoteDao.java com.overnightApps.myapplication.app.dao.UserDao.java com.overnightApps.myapplication.app.dao.exceptions.DataClassNotFoundException.java com.overnightApps.myapplication.app.dao.exceptions.SavedUserIsNotFoundOnBackEndException.java com.overnightApps.myapplication.app.dao.exceptions.UnableToSignUpException.java com.overnightApps.myapplication.app.service.FriendshipSession.java com.overnightApps.myapplication.app.service.LetterSender.java com.overnightApps.myapplication.app.service.LetterVoter.java com.overnightApps.myapplication.app.service.PrivateLetterSender.java com.overnightApps.myapplication.app.service.PublicLetterSender.java com.overnightApps.myapplication.app.service.RecommendationCreator.java com.overnightApps.myapplication.app.service.SignUpFormVerifier.java com.overnightApps.myapplication.app.service.SignUpSubmissionBuilder.java com.overnightApps.myapplication.app.service.SignUpSubmission.java com.overnightApps.myapplication.app.service.UserLogIn.java com.overnightApps.myapplication.app.service.UserSession.java com.overnightApps.myapplication.app.ui.FragmentIds.java com.overnightApps.myapplication.app.ui.HomeActivity.java com.overnightApps.myapplication.app.ui.homeFragments.CommentsFragment.java com.overnightApps.myapplication.app.ui.homeFragments.CreateLetterFragment.java com.overnightApps.myapplication.app.ui.homeFragments.FriendRequestsFragment.java com.overnightApps.myapplication.app.ui.homeFragments.FriendsFragment.java com.overnightApps.myapplication.app.ui.homeFragments.LearnFragment.java com.overnightApps.myapplication.app.ui.homeFragments.LogInDialogFragment.java com.overnightApps.myapplication.app.ui.homeFragments.ReceiveRecommendationsFragment.java com.overnightApps.myapplication.app.ui.homeFragments.SendRecommendationFragment.java com.overnightApps.myapplication.app.ui.homeFragments.SettingsFragment.java com.overnightApps.myapplication.app.ui.homeFragments.UserLogInStateDependentFragments.LetterDetailFragmentUserNotLoggedIn.java com.overnightApps.myapplication.app.ui.homeFragments.UserLogInStateDependentFragments.LetterDetailFragment_UserLoggedIn.java com.overnightApps.myapplication.app.ui.homeFragments.UserLogInStateDependentFragments.LetterDetailFragment.java com.overnightApps.myapplication.app.ui.homeFragments.UserLogInStateDependentFragments.UserFragment_UserLoggedIn.java com.overnightApps.myapplication.app.ui.homeFragments.UserLogInStateDependentFragments.UserFragment_UserLoggedOut.java com.overnightApps.myapplication.app.ui.homeFragments.UserLogInStateDependentFragments.UserFragment.java com.overnightApps.myapplication.app.ui.homeFragments.absFragments.FilterListFragment.java com.overnightApps.myapplication.app.ui.homeFragments.absFragments.HomeFragment.java com.overnightApps.myapplication.app.ui.homeFragments.absFragments.MyListFragment.java com.overnightApps.myapplication.app.ui.homeFragments.asyncTasks.LoadDetailFragmentTask.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnActiveFragmentListener.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnCreateLetterFragmentListener.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnLetterDetailActionListener.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnLetterDetailFragmentListener.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnLoginFragmentListener.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnSignUpActivityListener.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnUserFragmentListener.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnUserLogInListener.java com.overnightApps.myapplication.app.ui.homeFragments.homeActivityInteractionInterfaces.OnUserLogOutListener.java com.overnightApps.myapplication.app.ui.optionsMenus.MenuItem.java com.overnightApps.myapplication.app.ui.optionsMenus.MenuOptionsBuilder.java com.overnightApps.myapplication.app.ui.optionsMenus.MenuOptions.java com.overnightApps.myapplication.app.ui.optionsMenus.menuOptionFactories.FriendMenuOptionsFactory.java com.overnightApps.myapplication.app.ui.optionsMenus.menuOptionFactories.HomeMenuOptionsFactory.java com.overnightApps.myapplication.app.ui.optionsMenus.menuOptionFactories.LetterMenuOptionsFactory.java com.overnightApps.myapplication.app.ui.optionsMenus.menuOptionFactories.MenuOptionsFactory.java com.overnightApps.myapplication.app.ui.optionsMenus.menuOptionFactories.RecommendationMenuOptionsFactory.java com.overnightApps.myapplication.app.ui.signUp.NoSwipingViewPager.java com.overnightApps.myapplication.app.ui.signUp.OnSignUpListener.java com.overnightApps.myapplication.app.ui.signUp.OnUserSelectSignUpMethodListener.java com.overnightApps.myapplication.app.ui.signUp.SelectSignUpMethodFragment.java com.overnightApps.myapplication.app.ui.signUp.SignUpActivity.java com.overnightApps.myapplication.app.ui.signUp.UploadProfilePictureFragment.java com.overnightApps.myapplication.app.ui.signUp.UserSignUpFormFragment.java com.overnightApps.myapplication.app.ui.slidingMenu.OptionsFragment.java com.overnightApps.myapplication.app.util.AUtil.java com.overnightApps.myapplication.app.util.BitmapUtil.java com.overnightApps.myapplication.app.util.Logger.java com.overnightApps.myapplication.app.util.MyAssert.java