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 ...@@ -325,7 +325,7 @@ public class ContactListAdapter extends GroupedContactAdapter<ChatContactInflate
baseEntities.addAll(rosterAccount.getAbstractContacts()); baseEntities.addAll(rosterAccount.getAbstractContacts());
} }
if (!rosterAccount.isExpanded()) { if (rosterAccount.getTotal() > 0 && !rosterAccount.isExpanded()) {
baseEntities.add(new AccountBottomSeparator(rosterAccount.getAccount(), null)); baseEntities.add(new AccountBottomSeparator(rosterAccount.getAccount(), null));
} }
} }
......
...@@ -28,6 +28,7 @@ import android.widget.TextView; ...@@ -28,6 +28,7 @@ import android.widget.TextView;
import com.xabber.android.data.SettingsManager; import com.xabber.android.data.SettingsManager;
import com.xabber.android.data.account.AccountItem; import com.xabber.android.data.account.AccountItem;
import com.xabber.android.data.account.AccountManager; 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.extension.avatar.AvatarManager;
import com.xabber.android.data.roster.AbstractContact; import com.xabber.android.data.roster.AbstractContact;
import com.xabber.android.data.roster.Group; import com.xabber.android.data.roster.Group;
...@@ -178,6 +179,14 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater ...@@ -178,6 +179,14 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
viewHolder.groupOfflineIndicator.setVisibility(View.VISIBLE); 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)); view.setBackgroundDrawable(new ColorDrawable(color));
return view; return view;
...@@ -236,6 +245,14 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater ...@@ -236,6 +245,14 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
viewHolder.offlineContactsIndicator.setImageLevel(showOfflineMode.ordinal()); 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; return view;
} }
...@@ -261,8 +278,24 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater ...@@ -261,8 +278,24 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
final ContactListAdapter.AccountBottomSeparator accountBottomSeparator = (ContactListAdapter.AccountBottomSeparator) getItem(position); final ContactListAdapter.AccountBottomSeparator accountBottomSeparator = (ContactListAdapter.AccountBottomSeparator) getItem(position);
final int level = AccountManager.getInstance().getColorLevel(accountBottomSeparator.getAccount()); final int level = AccountManager.getInstance().getColorLevel(accountBottomSeparator.getAccount());
view.findViewById(R.id.bottom_layer).setBackgroundDrawable(new ColorDrawable(accountSubgroupColors[level])); View bottomLayer = view.findViewById(R.id.bottom_layer);
view.findViewById(R.id.top_layer).setBackgroundDrawable(new ColorDrawable(accountSubgroupColors[level])); 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; return view;
} }
...@@ -467,11 +500,13 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater ...@@ -467,11 +500,13 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
final ImageView indicator; final ImageView indicator;
final TextView name; final TextView name;
final ImageView groupOfflineIndicator; final ImageView groupOfflineIndicator;
final ImageView offlineShadow;
public GroupViewHolder(View view) { public GroupViewHolder(View view) {
indicator = (ImageView) view.findViewById(R.id.indicator); indicator = (ImageView) view.findViewById(R.id.indicator);
name = (TextView) view.findViewById(R.id.name); name = (TextView) view.findViewById(R.id.name);
groupOfflineIndicator = (ImageView) view.findViewById(R.id.group_offline_indicator); 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 ...@@ -483,6 +518,7 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
final ImageView statusIcon; final ImageView statusIcon;
final ImageView avatar; final ImageView avatar;
final ImageView offlineContactsIndicator; final ImageView offlineContactsIndicator;
final ImageView offlineShadow;
public AccountViewHolder(View view) { public AccountViewHolder(View view) {
...@@ -493,6 +529,7 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater ...@@ -493,6 +529,7 @@ public abstract class GroupedContactAdapter<Inflater extends BaseContactInflater
statusIcon = (ImageView) view.findViewById(R.id.account_status_icon); statusIcon = (ImageView) view.findViewById(R.id.account_status_icon);
avatar = (ImageView) view.findViewById(R.id.avatar); avatar = (ImageView) view.findViewById(R.id.avatar);
offlineContactsIndicator = (ImageView) view.findViewById(R.id.offline_contacts_indicator); offlineContactsIndicator = (ImageView) view.findViewById(R.id.offline_contacts_indicator);
offlineShadow = (ImageView) view.findViewById(R.id.offline_shadow);
} }
} }
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/contact_list_item_height" android:layout_height="@dimen/contact_list_item_height"
android:background="@color/green_200" android:background="@color/green_200"
android:elevation="3dp" android:elevation="2.5dp"
> >
<LinearLayout <LinearLayout
...@@ -144,4 +144,6 @@ ...@@ -144,4 +144,6 @@
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
/> />
<include layout="@layout/offline_shadow" />
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -25,6 +25,10 @@ ...@@ -25,6 +25,10 @@
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
/> />
<include layout="@layout/offline_shadow"
android:id="@+id/offline_shadow_top"
/>
</RelativeLayout> </RelativeLayout>
<View <View
...@@ -34,4 +38,8 @@ ...@@ -34,4 +38,8 @@
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
/> />
<include layout="@layout/offline_shadow"
android:id="@+id/offline_shadow_bottom"
/>
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -119,13 +119,6 @@ ...@@ -119,13 +119,6 @@
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
/> />
<ImageView <include layout="@layout/offline_shadow" />
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"
/>
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -65,4 +65,6 @@ ...@@ -65,4 +65,6 @@
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
/> />
<include layout="@layout/offline_shadow" />
</RelativeLayout> </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