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;
/ * f r o m w w w . j a v a 2 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