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;
/*from   w ww.  j  a v  a2  s  . com*/
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