mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-11-23 13:59:29 +00:00
Friend status displayed in friends list.
This commit is contained in:
parent
5ded2cd7b4
commit
5c8d8a8f52
@ -1,6 +1,8 @@
|
|||||||
package org.communiquons.android.comunic.client.data;
|
package org.communiquons.android.comunic.client.data;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.Build;
|
||||||
|
import android.text.Html;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Patterns;
|
import android.util.Patterns;
|
||||||
@ -13,6 +15,7 @@ import java.io.OutputStream;
|
|||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.Formatter;
|
import java.util.Formatter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -184,4 +187,28 @@ public class Utilities {
|
|||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prepare a string sent through the API to be shown in a TextView element
|
||||||
|
*
|
||||||
|
* @param input The string to prepare
|
||||||
|
* @return The string ready to be shown
|
||||||
|
*/
|
||||||
|
public static String prepareStringTextView(String input){
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
return Html.fromHtml(input, Html.FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH).toString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return Html.fromHtml(input).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get current timestamp
|
||||||
|
*
|
||||||
|
* @return The current timestamp
|
||||||
|
*/
|
||||||
|
public static int time(){
|
||||||
|
Date date = new Date();
|
||||||
|
return (int) Math.ceil(date.getTime()/1000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package org.communiquons.android.comunic.client.data.friendsList;
|
package org.communiquons.android.comunic.client.data.friendsList;
|
||||||
|
|
||||||
|
import org.communiquons.android.comunic.client.data.Utilities;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Friend object
|
* Friend object
|
||||||
*
|
*
|
||||||
@ -9,6 +11,11 @@ package org.communiquons.android.comunic.client.data.friendsList;
|
|||||||
|
|
||||||
public class Friend {
|
public class Friend {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The minimal time of activity required to consider a user as signed in
|
||||||
|
*/
|
||||||
|
private static final int USER_INACTIVE_AFTER = 35;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The ID of the friend
|
* The ID of the friend
|
||||||
*/
|
*/
|
||||||
@ -105,4 +112,13 @@ public class Friend {
|
|||||||
public int getLast_activity() {
|
public int getLast_activity() {
|
||||||
return last_activity;
|
return last_activity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine whether user is signed in or not
|
||||||
|
*
|
||||||
|
* @return True if user is signed in / false else
|
||||||
|
*/
|
||||||
|
public boolean signed_in(){
|
||||||
|
return (Utilities.time()-USER_INACTIVE_AFTER) < last_activity;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package org.communiquons.android.comunic.client.data.friendsList;
|
package org.communiquons.android.comunic.client.data.friendsList;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.AsyncTask;
|
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -11,9 +10,10 @@ import android.widget.ArrayAdapter;
|
|||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import org.communiquons.android.comunic.client.BuildConfig;
|
||||||
import org.communiquons.android.comunic.client.R;
|
import org.communiquons.android.comunic.client.R;
|
||||||
import org.communiquons.android.comunic.client.data.ImageLoad.ImageLoadManager;
|
import org.communiquons.android.comunic.client.data.ImageLoad.ImageLoadManager;
|
||||||
import org.communiquons.android.comunic.client.data.ImageLoad.ImageLoadTask;
|
import org.communiquons.android.comunic.client.data.Utilities;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
@ -58,7 +58,27 @@ public class FriendsAdapter extends ArrayAdapter<FriendUser> {
|
|||||||
|
|
||||||
//Update user name
|
//Update user name
|
||||||
TextView user_name = listItemView.findViewById(R.id.fragment_friendslist_item_fullname);
|
TextView user_name = listItemView.findViewById(R.id.fragment_friendslist_item_fullname);
|
||||||
user_name.setText(friendUser.getUserInfo().getFullName());
|
user_name.setText(Utilities.prepareStringTextView(friendUser.getUserInfo().getFullName()));
|
||||||
|
|
||||||
|
//Update user status
|
||||||
|
boolean signed_in = friendUser.getFriend().signed_in();
|
||||||
|
TextView statusView = listItemView.findViewById(R.id.fragment_friendslist_item_status);
|
||||||
|
|
||||||
|
//Set the text
|
||||||
|
statusView.setText(signed_in ?
|
||||||
|
getContext().getText(R.string.user_status_online) :
|
||||||
|
getContext().getText(R.string.user_status_offline)
|
||||||
|
);
|
||||||
|
|
||||||
|
//Set the color
|
||||||
|
int status_color = 0;
|
||||||
|
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
|
||||||
|
status_color = getContext().getResources().getColor(signed_in ? R.color.holo_green_dark : R.color.darker_gray, null);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
status_color = getContext().getResources().getColor(signed_in ? R.color.holo_green_dark : R.color.darker_gray);
|
||||||
|
}
|
||||||
|
statusView.setTextColor(status_color);
|
||||||
|
|
||||||
return listItemView;
|
return listItemView;
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,10 @@
|
|||||||
android:textSize="16sp"/>
|
android:textSize="16sp"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/fragment_friendslist_item_status"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/user_status_offline"
|
||||||
tools:text="Online"
|
tools:text="Online"
|
||||||
android:textColor="@android:color/holo_green_dark"/>
|
android:textColor="@android:color/holo_green_dark"/>
|
||||||
|
|
||||||
|
@ -3,4 +3,7 @@
|
|||||||
<color name="colorPrimary">#3F51B5</color>
|
<color name="colorPrimary">#3F51B5</color>
|
||||||
<color name="colorPrimaryDark">#303F9F</color>
|
<color name="colorPrimaryDark">#303F9F</color>
|
||||||
<color name="colorAccent">#FF4081</color>
|
<color name="colorAccent">#FF4081</color>
|
||||||
|
|
||||||
|
<color name="holo_green_dark">#ff669900</color>
|
||||||
|
<color name="darker_gray">#aaa</color>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -18,4 +18,6 @@
|
|||||||
<string name="navigation_bottom_me_item">Me</string>
|
<string name="navigation_bottom_me_item">Me</string>
|
||||||
<string name="fragment_friendslist_err_refresh">Couldn\'t refresh friends list !</string>
|
<string name="fragment_friendslist_err_refresh">Couldn\'t refresh friends list !</string>
|
||||||
<string name="fragment_friendslist_err_get_userinfos">Couldn\'t get information about your friends!</string>
|
<string name="fragment_friendslist_err_get_userinfos">Couldn\'t get information about your friends!</string>
|
||||||
|
<string name="user_status_online">Online</string>
|
||||||
|
<string name="user_status_offline">Offline</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
Reference in New Issue
Block a user