|
@@ -3,6 +3,8 @@ package com.sheishuo.app.main.fragment;
|
|
|
import android.app.Activity;
|
|
import android.app.Activity;
|
|
|
import android.content.Context;
|
|
import android.content.Context;
|
|
|
import android.content.Intent;
|
|
import android.content.Intent;
|
|
|
|
|
+import android.graphics.Color;
|
|
|
|
|
+import android.graphics.drawable.Drawable;
|
|
|
import android.os.Bundle;
|
|
import android.os.Bundle;
|
|
|
import android.support.annotation.NonNull;
|
|
import android.support.annotation.NonNull;
|
|
|
import android.support.design.widget.BottomNavigationView;
|
|
import android.support.design.widget.BottomNavigationView;
|
|
@@ -15,9 +17,14 @@ import android.view.LayoutInflater;
|
|
|
import android.view.MenuItem;
|
|
import android.view.MenuItem;
|
|
|
import android.view.View;
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewGroup;
|
|
|
|
|
+import android.widget.Button;
|
|
|
|
|
+import android.widget.ImageView;
|
|
|
|
|
+import android.widget.LinearLayout;
|
|
|
|
|
+import android.widget.TextView;
|
|
|
|
|
|
|
|
import com.netease.nim.uikit.common.fragment.TFragment;
|
|
import com.netease.nim.uikit.common.fragment.TFragment;
|
|
|
import com.netease.nim.uikit.common.ui.drop.DropCover;
|
|
import com.netease.nim.uikit.common.ui.drop.DropCover;
|
|
|
|
|
+import com.netease.nim.uikit.common.ui.drop.DropFake;
|
|
|
import com.netease.nim.uikit.common.ui.drop.DropManager;
|
|
import com.netease.nim.uikit.common.ui.drop.DropManager;
|
|
|
import com.netease.nim.uikit.common.util.log.LogUtil;
|
|
import com.netease.nim.uikit.common.util.log.LogUtil;
|
|
|
import com.netease.nim.uikit.contact_selector.activity.ContactSelectActivity;
|
|
import com.netease.nim.uikit.contact_selector.activity.ContactSelectActivity;
|
|
@@ -56,8 +63,6 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
|
|
|
|
|
private String TAG = this.getClass().getSimpleName();
|
|
private String TAG = this.getClass().getSimpleName();
|
|
|
|
|
|
|
|
- private PagerSlidingTabStrip tabs;
|
|
|
|
|
-
|
|
|
|
|
private ViewPager pager;
|
|
private ViewPager pager;
|
|
|
|
|
|
|
|
private Toolbar toolbar;
|
|
private Toolbar toolbar;
|
|
@@ -68,7 +73,7 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
|
|
|
|
|
private View rootView;
|
|
private View rootView;
|
|
|
|
|
|
|
|
- private BottomNavigationViewEx navigationView;
|
|
|
|
|
|
|
+ private LinearLayout bottomTabContainer;
|
|
|
|
|
|
|
|
private List<Integer> navigationbarItemList = new ArrayList<>();
|
|
private List<Integer> navigationbarItemList = new ArrayList<>();
|
|
|
|
|
|
|
@@ -90,7 +95,6 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
findViews();
|
|
findViews();
|
|
|
initBottomNavigationView();
|
|
initBottomNavigationView();
|
|
|
setupPager();
|
|
setupPager();
|
|
|
- setupTabs();
|
|
|
|
|
registerMsgUnreadInfoObserver(true);
|
|
registerMsgUnreadInfoObserver(true);
|
|
|
registerSystemMessageObservers(true);
|
|
registerSystemMessageObservers(true);
|
|
|
requestSystemMessageUnreadCount();
|
|
requestSystemMessageUnreadCount();
|
|
@@ -133,34 +137,68 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
navigationbarItemList.add(R.id.main_navi_trade);
|
|
navigationbarItemList.add(R.id.main_navi_trade);
|
|
|
navigationbarItemList.add(R.id.main_navi_circle_of_friends);
|
|
navigationbarItemList.add(R.id.main_navi_circle_of_friends);
|
|
|
navigationbarItemList.add(R.id.main_navi_me);
|
|
navigationbarItemList.add(R.id.main_navi_me);
|
|
|
- if (navigationView != null) {
|
|
|
|
|
- navigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
|
|
|
|
|
- @Override
|
|
|
|
|
- public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
|
|
|
|
- for (int position = 0; position < navigationbarItemList.size(); position++) {
|
|
|
|
|
|
|
|
|
|
- if (navigationbarItemList.get(position) == item.getItemId()) {
|
|
|
|
|
- pager.setCurrentItem(position);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- return true;
|
|
|
|
|
|
|
+ for(int i=0; i<bottomTabContainer.getChildCount(); i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ ViewGroup itemLayout = (ViewGroup) bottomTabContainer.getChildAt(i);
|
|
|
|
|
+ Button btn = (Button) itemLayout.getChildAt(itemLayout.getChildCount()-1);
|
|
|
|
|
+ btn.setTag(i);
|
|
|
|
|
+ btn.setOnClickListener(new View.OnClickListener() {
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void onClick(View v) {
|
|
|
|
|
+ int index = (int) v.getTag();
|
|
|
|
|
+ pager.setCurrentItem(index);
|
|
|
|
|
+ setBottomSelectedAt(index);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- //设置BottomNavigationViewEx
|
|
|
|
|
- navigationView.enableAnimation(false);
|
|
|
|
|
- navigationView.enableShiftingMode(false);
|
|
|
|
|
- navigationView.enableItemShiftingMode(false);
|
|
|
|
|
|
|
+ private void setBottomSelectedAt(int index)
|
|
|
|
|
+ {
|
|
|
|
|
+ for(int i=0; i<bottomTabContainer.getChildCount(); i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ ViewGroup itemLayout = (ViewGroup) bottomTabContainer.getChildAt(i);
|
|
|
|
|
+ int drawable = 0;
|
|
|
|
|
+ int color = i == index ? Color.parseColor("#FFFBAB08") : Color.parseColor("lightgrey");
|
|
|
|
|
+ switch(i)
|
|
|
|
|
+ {
|
|
|
|
|
+ case 0:
|
|
|
|
|
+ drawable = i == index ? R.drawable._01_checked : R.drawable._01_unchecked;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 1:
|
|
|
|
|
+ drawable = i == index ? R.drawable._02_checked : R.drawable._02_unchecked;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 2:
|
|
|
|
|
+ drawable = i == index ? R.drawable._03_checked : R.drawable._03_unchecked;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 3:
|
|
|
|
|
+ drawable = i == index ? R.drawable._04_checked : R.drawable._04_unchecked;
|
|
|
|
|
+ break;
|
|
|
|
|
+ case 4:
|
|
|
|
|
+ drawable = i == index ? R.drawable._05_checked : R.drawable._05_unchecked;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ for(int j=0; j<itemLayout.getChildCount(); j++)
|
|
|
|
|
+ {
|
|
|
|
|
+ View view = itemLayout.getChildAt(j);
|
|
|
|
|
+ if(view instanceof ImageView)
|
|
|
|
|
+ {
|
|
|
|
|
+ ((ImageView) view).setImageResource(drawable);
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(view instanceof TextView)
|
|
|
|
|
+ {
|
|
|
|
|
+ ((TextView) view).setTextColor(color);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
|
|
- // TO TABS
|
|
|
|
|
- tabs.onPageScrolled(position, positionOffset, positionOffsetPixels);
|
|
|
|
|
|
|
|
|
|
// TO ADAPTER
|
|
// TO ADAPTER
|
|
|
adapter.onPageScrolled(position);
|
|
adapter.onPageScrolled(position);
|
|
@@ -169,13 +207,9 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void onPageSelected(int position) {
|
|
public void onPageSelected(int position) {
|
|
|
- // TO TABS
|
|
|
|
|
- tabs.onPageSelected(position);
|
|
|
|
|
-
|
|
|
|
|
selectPage(position);
|
|
selectPage(position);
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- navigationView.setSelectedItemId(navigationbarItemList.get(position));
|
|
|
|
|
|
|
+ setBottomSelectedAt(position);
|
|
|
enableMsgNotification(false);
|
|
enableMsgNotification(false);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -187,8 +221,6 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public void onPageScrollStateChanged(int state) {
|
|
public void onPageScrollStateChanged(int state) {
|
|
|
- // TO TABS
|
|
|
|
|
- tabs.onPageScrollStateChanged(state);
|
|
|
|
|
|
|
|
|
|
scrollState = state;
|
|
scrollState = state;
|
|
|
|
|
|
|
@@ -212,9 +244,8 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
*/
|
|
*/
|
|
|
private void findViews() {
|
|
private void findViews() {
|
|
|
toolbar = findView(R.id.toolbar);
|
|
toolbar = findView(R.id.toolbar);
|
|
|
- tabs = findView(R.id.tabs);
|
|
|
|
|
pager = findView(R.id.main_tab_pager);
|
|
pager = findView(R.id.main_tab_pager);
|
|
|
- navigationView = findView(R.id.main_navigationbar);
|
|
|
|
|
|
|
+ bottomTabContainer = findView(R.id.bottom_tab_container);
|
|
|
|
|
|
|
|
//将Toolbar传递给MainActivity
|
|
//将Toolbar传递给MainActivity
|
|
|
setToolBar(toolbar);
|
|
setToolBar(toolbar);
|
|
@@ -272,26 +303,6 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
pager.setOnPageChangeListener(this);
|
|
pager.setOnPageChangeListener(this);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 设置tab条目
|
|
|
|
|
- */
|
|
|
|
|
- private void setupTabs() {
|
|
|
|
|
-
|
|
|
|
|
- tabs.setOnCustomTabListener(new PagerSlidingTabStrip.OnCustomTabListener() {
|
|
|
|
|
- @Override
|
|
|
|
|
- public int getTabLayoutResId(int position) {
|
|
|
|
|
- return R.layout.tab_layout_main;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public boolean screenAdaptation() {
|
|
|
|
|
- return true;
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- tabs.setViewPager(pager);
|
|
|
|
|
- tabs.setOnTabClickListener(adapter);
|
|
|
|
|
- tabs.setOnTabDoubleTapListener(adapter);
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
private void enableMsgNotification(boolean enable) {
|
|
private void enableMsgNotification(boolean enable) {
|
|
|
boolean msg = (pager.getCurrentItem() != MainTab.RECENT_CONTACTS.tabIndex);
|
|
boolean msg = (pager.getCurrentItem() != MainTab.RECENT_CONTACTS.tabIndex);
|
|
@@ -326,8 +337,38 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
@Override
|
|
@Override
|
|
|
public void onUnreadNumChanged(ReminderItem item) {
|
|
public void onUnreadNumChanged(ReminderItem item) {
|
|
|
MainTab tab = MainTab.fromReminderId(item.getId());
|
|
MainTab tab = MainTab.fromReminderId(item.getId());
|
|
|
- if (tab != null) {
|
|
|
|
|
- tabs.updateTab(tab.tabIndex, item);
|
|
|
|
|
|
|
+// if (tab != null) {
|
|
|
|
|
+// tabs.updateTab(tab.tabIndex, item);
|
|
|
|
|
+// }
|
|
|
|
|
+
|
|
|
|
|
+ if(tab == null || tab.tabIndex < 0 || tab.tabIndex >= navigationbarItemList.size())
|
|
|
|
|
+ return;
|
|
|
|
|
+
|
|
|
|
|
+ ViewGroup itemLayout = (ViewGroup) bottomTabContainer.getChildAt(tab.tabIndex);
|
|
|
|
|
+ int unread = item.getUnread();
|
|
|
|
|
+ for(int i=0; i<itemLayout.getChildCount(); i++)
|
|
|
|
|
+ {
|
|
|
|
|
+ View view = itemLayout.getChildAt(i);
|
|
|
|
|
+ if(view instanceof DropFake)
|
|
|
|
|
+ {
|
|
|
|
|
+ view.setVisibility(unread > 0 ? View.VISIBLE : View.GONE);
|
|
|
|
|
+ ((DropFake) view).setText(""+item.getUnread());
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ else if(view instanceof ViewGroup)
|
|
|
|
|
+ {
|
|
|
|
|
+ ViewGroup group = (ViewGroup) view;
|
|
|
|
|
+ for(int j=0; j<group.getChildCount(); j++)
|
|
|
|
|
+ {
|
|
|
|
|
+ view = group.getChildAt(j);
|
|
|
|
|
+ if(view instanceof DropFake)
|
|
|
|
|
+ {
|
|
|
|
|
+ view.setVisibility(unread > 0 ? View.VISIBLE : View.GONE);
|
|
|
|
|
+ ((DropFake) view).setText(""+item.getUnread());
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -345,7 +386,8 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
@Override
|
|
@Override
|
|
|
public void onEvent(Integer unreadCount) {
|
|
public void onEvent(Integer unreadCount) {
|
|
|
SystemMessageUnreadManager.getInstance().setSysMsgUnreadCount(unreadCount);
|
|
SystemMessageUnreadManager.getInstance().setSysMsgUnreadCount(unreadCount);
|
|
|
- ReminderManager.getInstance().updateContactUnreadNum(unreadCount);
|
|
|
|
|
|
|
+ int unreadMsg = NIMClient.getService(MsgService.class).getTotalUnreadCount();
|
|
|
|
|
+ ReminderManager.getInstance().updateContactUnreadNum(unreadCount+unreadMsg);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
@@ -355,7 +397,8 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
private void requestSystemMessageUnreadCount() {
|
|
private void requestSystemMessageUnreadCount() {
|
|
|
int unread = NIMClient.getService(SystemMessageService.class).querySystemMessageUnreadCountBlock();
|
|
int unread = NIMClient.getService(SystemMessageService.class).querySystemMessageUnreadCountBlock();
|
|
|
SystemMessageUnreadManager.getInstance().setSysMsgUnreadCount(unread);
|
|
SystemMessageUnreadManager.getInstance().setSysMsgUnreadCount(unread);
|
|
|
- ReminderManager.getInstance().updateContactUnreadNum(unread);
|
|
|
|
|
|
|
+ int unreadMsg = NIMClient.getService(MsgService.class).getTotalUnreadCount();
|
|
|
|
|
+ ReminderManager.getInstance().updateContactUnreadNum(unread+unreadMsg);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -439,8 +482,9 @@ public class HomeFragment extends TFragment implements OnPageChangeListener, Rem
|
|
|
//位置选择
|
|
//位置选择
|
|
|
case LocationSelectActivity.LOCATION_SELECTED_RESULT_CODE:
|
|
case LocationSelectActivity.LOCATION_SELECTED_RESULT_CODE:
|
|
|
for (Fragment fragment : getFragmentManager().getFragments()) {
|
|
for (Fragment fragment : getFragmentManager().getFragments()) {
|
|
|
- if (fragment instanceof AreaGroupsFragment)
|
|
|
|
|
|
|
+ if (fragment instanceof AreaGroupsFragment || fragment instanceof TradeListFragment) {
|
|
|
fragment.onActivityResult(requestCode, resultCode, data);
|
|
fragment.onActivityResult(requestCode, resultCode, data);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
|
|
|