Android Open Source - Learn-From-Me Letter Voter






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.service;
/*from  w  ww . j  a va2  s. c o m*/
import com.overnightApps.myapplication.app.core.Letter;
import com.overnightApps.myapplication.app.core.LetterVote;
import com.overnightApps.myapplication.app.core.User;
import com.overnightApps.myapplication.app.dao.LetterDao;
import com.overnightApps.myapplication.app.dao.LetterVoteDao;
import com.overnightApps.myapplication.app.dao.UserDao;
import com.overnightApps.myapplication.app.util.MyAssert;

import java.io.Serializable;

/**
 * Created by andre on 4/10/14.
 */
public class LetterVoter implements Serializable {
    public static final int USER_POINT_MULTIPLE = 5;
    private final Letter letter;
    private final User voter;
    private LetterVote letterVote;
    private LetterVoteDao letterVoteDao;
    private LetterDao letterDao;
    private UserDao userDao;
    private User letterCreator;

    private int initialLetterVoteCount;

    public static LetterVoter newInstance(Letter letter, User user, LetterVote letterVote){
        return new LetterVoter(letter,user,letterVote,LetterVoteDao.instance(),LetterDao.instance()
        , UserDao.instance());
    }

    public LetterVoter(Letter letter, User voter, LetterVote letterVote, LetterVoteDao letterVoteDao,
                       LetterDao letterDao, UserDao userDao) {
        this.letter = letter;
        this.voter = voter;
        this.letterVote = letterVote;
        this.letterVoteDao = letterVoteDao;
        this.letterDao = letterDao;
        this.userDao = userDao;

        this.letterCreator = letter.getCreator();
        this.initialLetterVoteCount = letter.getVotes();
    }

    public LetterVote.Vote getCurrentVote(){
        if(hasUserVotedOnLetter()){
            return null;
        }else{
            return letterVote.getVoteType();
        }
    }

    public void voteLetterUp() {
        int changeInLetterVote =  0;
        if(! hasUserVotedOnLetter()) {
            letterVote = new LetterVote(voter,letter, LetterVote.Vote.UP);
            changeInLetterVote = letterVote.getVoteValue();
        }else {
            LetterVote.Vote voteType = letterVote.getVoteType();
            if (voteType == LetterVote.Vote.UP) {
                letterVote.removeVote();
                changeInLetterVote = -1;
            } else if (voteType == LetterVote.Vote.DOWN) {
                letterVote.voteLetterDown();
                changeInLetterVote = 2;
            } else if (voteType == LetterVote.Vote.NONE) {
                letterVote.voteLetterUp();
                changeInLetterVote = 1;
            } else {
                MyAssert.assertShouldNotReachHere();
            }
        }
        applyChanges(changeInLetterVote);
    }

    public void voteLetterDown() {
        int changeInLetterVote = 0;
        if(! hasUserVotedOnLetter()) {
            letterVote = new LetterVote(voter,letter, LetterVote.Vote.DOWN);
            changeInLetterVote = letterVote.getVoteValue();
        }else {
            LetterVote.Vote voteType = letterVote.getVoteType();
            if (voteType == LetterVote.Vote.UP) {
                letterVote.voteLetterUp();
                changeInLetterVote = -2;
            } else if (voteType == LetterVote.Vote.DOWN) {
                letterVote.removeVote();
                changeInLetterVote = 1;
            } else if (voteType == LetterVote.Vote.NONE) {
                letterVote.voteLetterDown();
                changeInLetterVote = -1;
            } else {
                MyAssert.assertShouldNotReachHere();
            }
        }
        applyChanges(changeInLetterVote);
    }

    private void applyChanges(int changeInLetterVote) {
        letter.addAmountToRating(changeInLetterVote);
        letterCreator.addAmountToExperience(changeInLetterVote * USER_POINT_MULTIPLE);
    }

    private boolean hasUserVotedOnLetter() {
        return letterVote != null;
    }

    public void saveChanges(){
        if(isLetterCountChanged()){
            letterDao.save(letter);
            userDao.save(letterCreator);
        }
        if(letterVote != null) {
            letterVoteDao.save(letterVote);
        }
    }

    private boolean isLetterCountChanged(){
        return initialLetterVoteCount != letter.getVotes();
    }

    public void setLetterVote(LetterVote letterVote) {
        this.letterVote = letterVote;
    }
}




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