management of frequent users is working, including photo in users without photo

This commit is contained in:
Rubén Martín Hidalgo 2016-08-23 18:23:14 +02:00
parent aa89726d2c
commit 0c87120a4d
4 changed files with 56 additions and 34 deletions

View File

@ -85,7 +85,13 @@ public class FrequentUsersAdapter extends ArrayAdapter<FrequentUser> {
else
ImageFactory.displayImage(loader, user.getUserPhoto(), holder.image);
holder.name.setText(user.getUserSurname1() + " " + user.getUserSurname2() + ", " + user.getUserFirstname());
String name;
if(!user.getUserSurname2().isEmpty())
name = user.getUserSurname1() + " " + user.getUserSurname2() + ", " + user.getUserFirstname();
else
name = user.getUserSurname1() + ", " + user.getUserFirstname();
holder.name.setText(name);
return convertView;
}

View File

@ -316,13 +316,20 @@ public class Messages extends Module {
receiversNames = "";
for (int i = 0; i < csSize; i++) {
SoapObject pii = (SoapObject) soap.getProperty(i);
String firstname = pii.getProperty("userFirstname").toString();
String surname1 = pii.getProperty("userSurname1").toString();
String surname2 = pii.getProperty("userSurname2").toString();
if (i == csSize-1)
receiversNames += firstname + " " + surname1 + " " + surname2 + "";
else
receiversNames += firstname + " " + surname1 + " " + surname2 + ",\n";
String firstname = pii.getPrimitiveProperty("userFirstname").toString();
String surname1 = pii.getPrimitiveProperty("userSurname1").toString();
String surname2 = pii.getPrimitiveProperty("userSurname2").toString();
if (i == csSize-1) {
receiversNames += firstname + " " + surname1;
if (!surname2.isEmpty())
receiversNames += " " + surname2;
}
else {
receiversNames += firstname + " " + surname1;
if (!surname2.isEmpty())
receiversNames += " " + surname2;
receiversNames += ",\n";
}
}
}
@ -352,40 +359,45 @@ public class Messages extends Module {
boolean frequent = false;
int newFrequents = 0;
double score;
String nickname;
dbHelper.beginTransaction();
for(int i=0; i < arrayReceivers.size(); i++){
for(int j=0; j < frequentsList.size(); j++){
if(frequentsList.get(j).getUserNickname().equals(arrayReceivers.get(i).toString())){
for(int i=0; i < frequentsList.size(); i++){
nickname = frequentsList.get(i).getUserNickname();
for(int j=0; j < arrayReceivers.size(); j++){
if(nickname.equals(arrayReceivers.get(j).toString())){
frequent = true;
score = frequentsList.get(j).getScore() * INCREASE_FACTOR;
score = frequentsList.get(i).getScore() * INCREASE_FACTOR;
if(score > MAX_SCORE)
score = MAX_SCORE;
dbHelper.updateFrequentRecipient(frequentsList.get(j).getUserNickname(), score);
Log.d(TAG, "frequent user updated, score = " + score);
}
else{
score = frequentsList.get(j).getScore() * DECREASE_FACTOR;
if(score < MIN_SCORE) {
dbHelper.removeAllRows(DataBaseHelper.DB_TABLE_FREQUENT_RECIPIENTS, "nicknameRecipient", frequentsList.get(j).getUserNickname());
Log.d(TAG, "frequent user removed");
}else {
dbHelper.updateFrequentRecipient(frequentsList.get(j).getUserNickname(), score);
Log.d(TAG, "frequent user updated, score = " + score);
}
dbHelper.updateFrequentRecipient(nickname, score);
arrayReceivers.remove(j);
arrayReceiversFirstNames.remove(j);
arrayReceiversSurNames1.remove(j);
arrayReceiversSurNames2.remove(j);
arrayPhotos.remove(j);
j = arrayReceivers.size();
Log.d(TAG, "frequent user '" + nickname + "' updated, score = " + score);
}
}
if(frequent == false){
frequentsList.add(new FrequentUser(arrayReceivers.get(i), arrayReceiversSurNames1.get(i), arrayReceiversSurNames2.get(i), arrayReceiversFirstNames.get(i), arrayPhotos.get(i), false, INITIAL_SCORE));
newFrequents++;
score = frequentsList.get(i).getScore() * DECREASE_FACTOR;
if(score < MIN_SCORE) {
dbHelper.removeAllRows(DataBaseHelper.DB_TABLE_FREQUENT_RECIPIENTS, "nicknameRecipient", nickname);
Log.d(TAG, "frequent user '" + nickname + "' removed");
}else {
dbHelper.updateFrequentRecipient(nickname, score);
Log.d(TAG, "frequent user '" + nickname + "' updated, score = " + score);
}
}
frequent = false;
}
for(int i=frequentsList.size()-newFrequents; i < frequentsList.size(); i++){
dbHelper.insertFrequentRecipient(frequentsList.get(i));
Log.d(TAG, "frequent user added = " + frequentsList.get(i).getScore());
for(int i=0; i < arrayReceivers.size(); i++){
dbHelper.insertFrequentRecipient(new FrequentUser(arrayReceivers.get(i), arrayReceiversSurNames1.get(i), arrayReceiversSurNames2.get(i), arrayReceiversFirstNames.get(i), arrayPhotos.get(i), false, INITIAL_SCORE));
Log.d(TAG, "frequent user '" + arrayReceivers.get(i) + "' added = " + INITIAL_SCORE);
}
dbHelper.endTransaction(true);
@ -570,8 +582,6 @@ public class Messages extends Module {
&& (userPhoto != null) && !userPhoto.equals("")
&& !userPhoto.equals(Constants.NULL_VALUE)) {
ImageFactory.displayImage(loader, userPhoto, photo);
} else {
Log.d(TAG, "No connection or no photo " + userPhoto);
}
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
@ -640,8 +650,6 @@ public class Messages extends Module {
&& (userPhoto != null) && !userPhoto.equals("")
&& !userPhoto.equals(Constants.NULL_VALUE)) {
ImageFactory.displayImage(loader, userPhoto, photo);
} else {
Log.d(TAG, "No connection or no photo " + userPhoto);
}
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

View File

@ -210,6 +210,8 @@ public class SearchUsers extends Module implements SearchView.OnQueryTextListene
String surname2 = frequentsList.get(i).getUserSurname2();
String firstname = frequentsList.get(i).getUserFirstname();
String userPhoto = frequentsList.get(i).getUserPhoto();
if(userPhoto.isEmpty())
userPhoto = "https://swad.ugr.es/swad/icon/usr_bl.jpg"; //if I don't use this, put any image
boolean selected = frequentsList.get(i).getCheckbox();
Double score = frequentsList.get(i).getScore();
frequentUsers.saveUser(new FrequentUser(nickname, surname1, surname2, firstname, userPhoto, selected, score));
@ -335,6 +337,7 @@ public class SearchUsers extends Module implements SearchView.OnQueryTextListene
else { // shows frequent users
if(numFrequents == 0) {
lvUsers.setVisibility(View.GONE);
frequentUsersTitle.setVisibility(View.VISIBLE);
frequentUsersText.setVisibility(View.VISIBLE);
}
else{

View File

@ -82,7 +82,12 @@ public class UsersAdapter extends ArrayAdapter<UserFilter> {
else
ImageFactory.displayImage(loader, user.getUserPhoto(), holder.image);
holder.name.setText(user.getUserSurname1() + " " + user.getUserSurname2() + ", " + user.getUserFirstname());
String name;
if(!user.getUserSurname2().isEmpty())
name = user.getUserSurname1() + " " + user.getUserSurname2() + ", " + user.getUserFirstname();
else
name = user.getUserSurname1() + ", " + user.getUserFirstname();
holder.name.setText(name);
return convertView;
}