frequent recipient can be removed, and listener of users list has been corrected
This commit is contained in:
parent
e00e1a9a89
commit
0456b8461a
|
@ -67,6 +67,20 @@ public class Messages extends Module {
|
|||
* Messages tag name for Logcat
|
||||
*/
|
||||
private static final String TAG = Constants.APP_TAG + " Messages";
|
||||
|
||||
/**
|
||||
* Constants to manage the frequents recipients
|
||||
*/
|
||||
private static final Double MIN_SCORE = 0.5;
|
||||
|
||||
private static final Double MAX_SCORE = 20.0;
|
||||
|
||||
private static final Double INITIAL_SCORE = 1.0;
|
||||
|
||||
private static final Double INCREASE_FACTOR = 1.2;
|
||||
|
||||
private static final Double DECREASE_FACTOR = 0.95;
|
||||
|
||||
/**
|
||||
* Message code
|
||||
*/
|
||||
|
@ -337,28 +351,35 @@ public class Messages extends Module {
|
|||
frequentsList = dbHelper.getAllRows(DataBaseHelper.DB_TABLE_FREQUENT_RECIPIENTS);
|
||||
boolean frequent = false;
|
||||
int newFrequents = 0;
|
||||
double score;
|
||||
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())){
|
||||
frequent = true;
|
||||
frequentsList.get(j).setScore(frequentsList.get(j).getScore() * 1.2);
|
||||
score = frequentsList.get(j).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{
|
||||
frequentsList.get(j).setScore(frequentsList.get(j).getScore() * 0.95);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(frequent == false){
|
||||
frequentsList.add(new FrequentUser(arrayReceivers.get(i), arrayReceiversSurNames1.get(i), arrayReceiversSurNames2.get(i), arrayReceiversFirstNames.get(i), arrayPhotos.get(i), false, 1));
|
||||
frequentsList.add(new FrequentUser(arrayReceivers.get(i), arrayReceiversSurNames1.get(i), arrayReceiversSurNames2.get(i), arrayReceiversFirstNames.get(i), arrayPhotos.get(i), false, INITIAL_SCORE));
|
||||
newFrequents++;
|
||||
}
|
||||
frequent = false;
|
||||
}
|
||||
|
||||
for(int i=0; i < frequentsList.size()-newFrequents; i++){
|
||||
dbHelper.updateFrequentRecipient(frequentsList.get(i).getUserNickname(), frequentsList.get(i).getScore());
|
||||
Log.d(TAG, "frequent user updated, score = " + frequentsList.get(i).getScore());
|
||||
}
|
||||
|
||||
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());
|
||||
|
|
|
@ -228,31 +228,7 @@ public class SearchUsers extends Module implements SearchView.OnQueryTextListene
|
|||
}
|
||||
|
||||
//checkbox is checked when the row of an user is clicked
|
||||
lvUsers.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
checkbox = (CheckBox) view.findViewById(R.id.check);
|
||||
if (checkbox.isChecked()){
|
||||
checkbox.setChecked(false);
|
||||
int index = arrayReceivers.indexOf(frequentUsers.getUsers().get(position).getUserNickname());
|
||||
arrayReceivers.remove(index);
|
||||
arrayReceiversFirstNames.remove(index);
|
||||
arrayReceiversSurNames1.remove(index);
|
||||
arrayReceiversSurNames2.remove(index);
|
||||
arrayPhotos.remove(index);
|
||||
//Toast.makeText(SearchUsers.this, R.string.user_deleted, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else{
|
||||
checkbox.setChecked(true);
|
||||
arrayReceivers.add(frequentUsers.getUsers().get(position).getUserNickname());
|
||||
arrayReceiversFirstNames.add(frequentUsers.getUsers().get(position).getUserFirstname());
|
||||
arrayReceiversSurNames1.add(frequentUsers.getUsers().get(position).getUserSurname1());
|
||||
arrayReceiversSurNames2.add(frequentUsers.getUsers().get(position).getUserSurname2());
|
||||
arrayPhotos.add(frequentUsers.getUsers().get(position).getUserPhoto());
|
||||
//Toast.makeText(SearchUsers.this, R.string.user_added, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
listenerFrequentUsers();
|
||||
|
||||
setMETHOD_NAME("findUsers");
|
||||
}
|
||||
|
@ -374,6 +350,9 @@ public class SearchUsers extends Module implements SearchView.OnQueryTextListene
|
|||
frequentAdapter = new FrequentUsersAdapter(getBaseContext(), frequentUsers.getUsers());
|
||||
lvUsers.setAdapter(frequentAdapter);
|
||||
lvUsers.setVisibility(View.VISIBLE);
|
||||
|
||||
//checkbox is checked when the row of an user is clicked
|
||||
listenerFrequentUsers();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -511,6 +490,26 @@ public class SearchUsers extends Module implements SearchView.OnQueryTextListene
|
|||
lvUsers.setVisibility(View.VISIBLE);
|
||||
|
||||
//checkbox is checked when the row of an user is clicked
|
||||
listenerUserList();
|
||||
|
||||
//toasts to inform about found users
|
||||
if (numUsers == 0){
|
||||
Toast.makeText(SearchUsers.this, R.string.users_NOTfound, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (numUsers == 1) {
|
||||
Toast.makeText(SearchUsers.this, String.valueOf(numUsers) + " " + getResources().getString(R.string.user_found), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else{
|
||||
Toast.makeText(SearchUsers.this, String.valueOf(numUsers) + " " + getResources().getString(R.string.users_found), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onError() {
|
||||
|
||||
}
|
||||
|
||||
private void listenerUserList() {
|
||||
lvUsers.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
|
@ -536,22 +535,34 @@ public class SearchUsers extends Module implements SearchView.OnQueryTextListene
|
|||
}
|
||||
}
|
||||
});
|
||||
|
||||
//toasts to inform about found users
|
||||
if (numUsers == 0){
|
||||
Toast.makeText(SearchUsers.this, R.string.users_NOTfound, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (numUsers == 1) {
|
||||
Toast.makeText(SearchUsers.this, String.valueOf(numUsers) + " " + getResources().getString(R.string.user_found), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else{
|
||||
Toast.makeText(SearchUsers.this, String.valueOf(numUsers) + " " + getResources().getString(R.string.users_found), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onError() {
|
||||
|
||||
private void listenerFrequentUsers() {
|
||||
lvUsers.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
||||
checkbox = (CheckBox) view.findViewById(R.id.check);
|
||||
if (checkbox.isChecked()){
|
||||
checkbox.setChecked(false);
|
||||
int index = arrayReceivers.indexOf(frequentUsers.getUsers().get(position).getUserNickname());
|
||||
arrayReceivers.remove(index);
|
||||
arrayReceiversFirstNames.remove(index);
|
||||
arrayReceiversSurNames1.remove(index);
|
||||
arrayReceiversSurNames2.remove(index);
|
||||
arrayPhotos.remove(index);
|
||||
//Toast.makeText(SearchUsers.this, R.string.user_deleted, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else{
|
||||
checkbox.setChecked(true);
|
||||
arrayReceivers.add(frequentUsers.getUsers().get(position).getUserNickname());
|
||||
arrayReceiversFirstNames.add(frequentUsers.getUsers().get(position).getUserFirstname());
|
||||
arrayReceiversSurNames1.add(frequentUsers.getUsers().get(position).getUserSurname1());
|
||||
arrayReceiversSurNames2.add(frequentUsers.getUsers().get(position).getUserSurname2());
|
||||
arrayPhotos.add(frequentUsers.getUsers().get(position).getUserPhoto());
|
||||
//Toast.makeText(SearchUsers.this, R.string.user_added, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showSearchDialog(){
|
||||
|
|
Loading…
Reference in New Issue
Block a user