Commit 0751a453 authored by Grigory Fedorov's avatar Grigory Fedorov

Offline shadow added to accounts and groups in contact list.

parent c4b026d3
......@@ -325,7 +325,7 @@ public class ContactListAdapter extends GroupedContactAdapter<ChatContactInflate
baseEntities.addAll(rosterAccount.getAbstractContacts());
}
if (!rosterAccount.isExpanded()) {
if (rosterAccount.getTotal() > 0 && !rosterAccount.isExpanded()) {
baseEntities.add(new AccountBottomSeparator(rosterAccount.getAccount(), null));
}
}
......
......@@ -28,6 +28,7 @@ import android.widget.TextView;
import com.xabber.android.data.SettingsManager;
import com.xabber.android.data.account.AccountItem;
import com.xabber.android.data.account.AccountManager;
import com.xabber.android.data.account.StatusMode;
import com.xabber.android.data.extension.avatar.AvatarManager;
import com.xabber.android.data.roster.AbstractContact;
import com.xabber.android.data.roster.Group;
......@@ -178,6 +179,14 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
viewHolder.groupOfflineIndicator.setVisibility(View.VISIBLE);
}
StatusMode statusMode = AccountManager.getInstance().getAccount(configuration.getAccount()).getDisplayStatusMode();
if (statusMode == StatusMode.unavailable || statusMode == StatusMode.connection) {
viewHolder.offlineShadow.setVisibility(View.VISIBLE);
} else {
viewHolder.offlineShadow.setVisibility(View.GONE);
}
view.setBackgroundDrawable(new ColorDrawable(color));
return view;
......@@ -236,6 +245,14 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
viewHolder.offlineContactsIndicator.setImageLevel(showOfflineMode.ordinal());
StatusMode statusMode = AccountManager.getInstance().getAccount(configuration.getAccount()).getDisplayStatusMode();
if (statusMode == StatusMode.unavailable || statusMode == StatusMode.connection) {
viewHolder.offlineShadow.setVisibility(View.VISIBLE);
} else {
viewHolder.offlineShadow.setVisibility(View.GONE);
}
return view;
}
......@@ -261,8 +278,24 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
final ContactListAdapter.AccountBottomSeparator accountBottomSeparator = (ContactListAdapter.AccountBottomSeparator) getItem(position);
final int level = AccountManager.getInstance().getColorLevel(accountBottomSeparator.getAccount());
view.findViewById(R.id.bottom_layer).setBackgroundDrawable(new ColorDrawable(accountSubgroupColors[level]));
view.findViewById(R.id.top_layer).setBackgroundDrawable(new ColorDrawable(accountSubgroupColors[level]));
View bottomLayer = view.findViewById(R.id.bottom_layer);
View topLayer = view.findViewById(R.id.top_layer);
bottomLayer.setBackgroundDrawable(new ColorDrawable(accountSubgroupColors[level]));
topLayer.setBackgroundDrawable(new ColorDrawable(accountSubgroupColors[level]));
StatusMode statusMode = AccountManager.getInstance().getAccount(accountBottomSeparator.getAccount()).getDisplayStatusMode();
View offlineShadowBottom = view.findViewById(R.id.offline_shadow_top);
View offlineShadowTop = view.findViewById(R.id.offline_shadow_bottom);
if (statusMode == StatusMode.unavailable || statusMode == StatusMode.connection) {
offlineShadowBottom.setVisibility(View.VISIBLE);
offlineShadowTop.setVisibility(View.VISIBLE);
} else {
offlineShadowBottom.setVisibility(View.GONE);
offlineShadowTop.setVisibility(View.GONE);
}
return view;
}
......@@ -467,11 +500,13 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
final ImageView indicator;
final TextView name;
final ImageView groupOfflineIndicator;
final ImageView offlineShadow;
public GroupViewHolder(View view) {
indicator = (ImageView) view.findViewById(R.id.indicator);
name = (TextView) view.findViewById(R.id.name);
groupOfflineIndicator = (ImageView) view.findViewById(R.id.group_offline_indicator);
offlineShadow = (ImageView) view.findViewById(R.id.offline_shadow);
}
}
......@@ -483,6 +518,7 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
final ImageView statusIcon;
final ImageView avatar;
final ImageView offlineContactsIndicator;
final ImageView offlineShadow;
public AccountViewHolder(View view) {
......@@ -493,6 +529,7 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
statusIcon = (ImageView) view.findViewById(R.id.account_status_icon);
avatar = (ImageView) view.findViewById(R.id.avatar);
offlineContactsIndicator = (ImageView) view.findViewById(R.id.offline_contacts_indicator);
offlineShadow = (ImageView) view.findViewById(R.id.offline_shadow);
}
}
......
......@@ -18,7 +18,7 @@
android:layout_width="match_parent"
android:layout_height="@dimen/contact_list_item_height"
android:background="@color/green_200"
android:elevation="3dp"
android:elevation="2.5dp"
>
<LinearLayout
......@@ -144,4 +144,6 @@
android:layout_alignParentBottom="true"
/>
<include layout="@layout/offline_shadow" />
</RelativeLayout>
\ No newline at end of file
......@@ -25,6 +25,10 @@
android:layout_alignParentBottom="true"
/>
<include layout="@layout/offline_shadow"
android:id="@+id/offline_shadow_top"
/>
</RelativeLayout>
<View
......@@ -34,4 +38,8 @@
android:layout_alignParentBottom="true"
/>
<include layout="@layout/offline_shadow"
android:id="@+id/offline_shadow_bottom"
/>
</RelativeLayout>
\ No newline at end of file
......@@ -119,13 +119,6 @@
android:layout_alignParentBottom="true"
/>
<ImageView
android:id="@+id/offline_shadow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@color/black"
android:alpha="0.7"
android:visibility="gone"
/>
<include layout="@layout/offline_shadow" />
</RelativeLayout>
\ No newline at end of file
......@@ -65,4 +65,6 @@
android:layout_alignParentBottom="true"
/>
<include layout="@layout/offline_shadow" />
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/offline_shadow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@color/black"
android:alpha="0.7"
android:visibility="gone" />
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment