diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d232966..94fc7ff 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,13 +20,6 @@
-
-
-
-
-
-
-
diff --git a/app/src/main/java/com/cleaner/CleanCodeApplication.java b/app/src/main/java/com/cleaner/CleanCodeApplication.java
index fc410fb..41ec787 100644
--- a/app/src/main/java/com/cleaner/CleanCodeApplication.java
+++ b/app/src/main/java/com/cleaner/CleanCodeApplication.java
@@ -1,6 +1,8 @@
package com.cleaner;
import android.app.Application;
+import android.content.Context;
+import android.support.annotation.NonNull;
import com.cleaner.config.ConfigurationRepositoryComponent;
import com.cleaner.config.DaggerConfigurationRepositoryComponent;
@@ -10,6 +12,12 @@ public class CleanCodeApplication extends Application {
private ConfigurationRepositoryComponent mRepositoryComponent;
+ // Prevent need in a singleton (global) reference to the application object.
+ @NonNull
+ public static CleanCodeApplication get(@NonNull Context context) {
+ return (CleanCodeApplication) context.getApplicationContext();
+ }
+
@Override
public void onCreate() {
super.onCreate();
diff --git a/app/src/main/java/com/cleaner/main/DiscoveryActivity.java b/app/src/main/java/com/cleaner/main/DiscoveryActivity.java
deleted file mode 100644
index 433be3a..0000000
--- a/app/src/main/java/com/cleaner/main/DiscoveryActivity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.cleaner.main;
-
-/**
- * Created by yangfeng on 16-7-5.
- */
-public class DiscoveryActivity extends BaseTabActivity {
-}
diff --git a/app/src/main/java/com/cleaner/main/MainActivity.java b/app/src/main/java/com/cleaner/main/MainActivity.java
index c960fba..aafc978 100644
--- a/app/src/main/java/com/cleaner/main/MainActivity.java
+++ b/app/src/main/java/com/cleaner/main/MainActivity.java
@@ -1,17 +1,22 @@
package com.cleaner.main;
-import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
+import android.support.v4.app.Fragment;
+import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.View;
-import android.view.View.OnClickListener;
-import android.widget.TabHost;
-import android.widget.TabHost.TabSpec;
import android.widget.Toast;
import com.cleaner.CleanCodeApplication;
+import com.cleaner.main.fragments.ChatListFragment;
+import com.cleaner.main.fragments.ContactListFragment;
+import com.cleaner.main.fragments.ExploreFragment;
+import com.cleaner.main.fragments.ProfileFragment;
+import com.cleaner.main.fragments.RecyclerSummaryFragment;
+import com.cleaner.main.fragments.RecyclerSummaryV2Fragment;
+import com.cleaner.main.fragments.SummaryFragment;
import com.cleaner.view.BadgeRadioButton;
import javax.inject.Inject;
@@ -20,12 +25,9 @@
import butterknife.ButterKnife;
import butterknife.Unbinder;
-public class MainActivity extends TabActivity implements MainConfigContracts.ConfigView{
+public class MainActivity extends AppCompatActivity implements MainConfigContracts.ConfigView, View.OnClickListener{
private static final String TAG = MainActivity.class.getSimpleName();
- @BindView(android.R.id.tabhost)
- TabHost tabHost;
-
@BindView(R.id.summaryBadgeRadio)
BadgeRadioButton summaryBadgeRadio;
@@ -41,21 +43,8 @@ public class MainActivity extends TabActivity implements MainConfigContracts.Con
@BindView(R.id.profileBadgeRadio)
BadgeRadioButton profileBadgeRadio;
- private static final int INDEX_SUMMARY = 0;
- private static final int INDEX_CONVERSATION = 1;
- private static final int INDEX_CONTACT = 2;
- private static final int INDEX_EXPLORE = 3;
- private static final int INDEX_PROFILE = 4;
- private static int activeIndex = INDEX_SUMMARY;
-
- private static final String ACTIVE_INDEX_KEY = "ACTIVE_INDEX_KEY";
-
- private static final String TAB_SPEC_SUMMARY = "TAB_SPEC_SUMMARY";
- private static final String TAB_SPEC_CONVERSATION = "TAB_SPEC_CONVERSATION";
- private static final String TAB_SPEC_CONTACT = "TAB_SPEC_CONTACT";
- private static final String TAB_SPEC_EXPLORE = "TAB_SPEC_EXPLORE";
- private static final String TAB_SPEC_PROFILE = "TAB_SPEC_PROFILE";
- private TabSpec tabConversation;
+ private BadgeRadioButton currentButton;
+ private boolean inited = false;
private static final int EVENT_SUMMARY = 0;
private static final int EVENT_CONVERSATION = 1;
@@ -67,9 +56,6 @@ public class MainActivity extends TabActivity implements MainConfigContracts.Con
private final ToastWrapper toastWrapper = new ToastWrapper(R.string.toast_exit, Toast.LENGTH_LONG);
private Unbinder unbinder;
- private BadgeRadioButton activeBadgeRadio;
-
- private final RadioClickListener listener = new RadioClickListener();
@Inject MainConfigPresenterImpl configPresenter;
@@ -77,13 +63,10 @@ public class MainActivity extends TabActivity implements MainConfigContracts.Con
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (savedInstanceState != null) {
- setActiveIndex(savedInstanceState.getInt(ACTIVE_INDEX_KEY, INDEX_SUMMARY));
- }
// Create the presenter
DaggerMainConfigComponent.builder()
- .configurationRepositoryComponent(((CleanCodeApplication) getApplication()).getConfigurationRepositoryComponent())
+ .configurationRepositoryComponent(CleanCodeApplication.get(this).getConfigurationRepositoryComponent())
.mainConfigPresenterModule(new MainConfigPresenterModule(this)).build()
.inject(this);
@@ -97,71 +80,24 @@ public void onContentChanged() {
bindUnreadCountTextView(conversationBadgeRadio);
-// checkAndLoginXbkpIM();
-// PatientApplication.getInstance().addActivity(this);
-
-// MainConfigContracts.ConfigPresenter configPresenter = new MainConfigPresenterImpl(this, pageConfig);
-
- initSelectTab(getIntent());
- initRadioButtons();
configPresenter.initTabs();
- //事件的监听
-// AndroidEventManager.getInstance().addEventListener(
-// EventCode.LoginActivityLaunched, this, false);
-// AndroidEventManager.getInstance().addEventListener(
-// EventCode.UnreadMessageCountChanged, this, false);
-//
-// //显示未读消息数
-// setRecentChatUnreadNumber(RecentChatManager.getInstance()
-// .getUnreadMessageTotalCount());
- }
-
- private static void setActiveIndex(int which) {
- activeIndex = which;
+ initContents();
+ initBottomTabs();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
-
- outState.putInt(ACTIVE_INDEX_KEY, activeIndex);
- }
-
- private void initRadioButtons() {
- switch (activeIndex) {
- case INDEX_SUMMARY:
- radioClick(summaryBadgeRadio);
- break;
- case INDEX_CONVERSATION:
- radioClick(conversationBadgeRadio);
- break;
- case INDEX_CONTACT:
- radioClick(contactBadgeRadio);
- break;
- case INDEX_EXPLORE:
- radioClick(exploreBadgeRadio);
- break;
- case INDEX_PROFILE:
- radioClick(profileBadgeRadio);
- break;
- default:
- break;
- }
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
parseNewIntent(intent);
- initSelectTab(intent);
- initRadioButtons();
- }
-
- private void initSelectTab(Intent intent) {
- setActiveIndex(INDEX_SUMMARY);
- setActiveIndex(intent.getIntExtra(ACTIVE_INDEX_KEY, INDEX_SUMMARY));
+ initContents();
+ initBottomTabs();
}
@Override
@@ -179,35 +115,22 @@ protected void onResume() {
}
}
-// @Override
-// public void eventRunEnd(Event arg0) {
-// if (arg0.getEventCode() == EventCode.LoginActivityLaunched) {
-// finish();
-// } else if (arg0.getEventCode() == EventCode.UnreadMessageCountChanged) {
-// setRecentChatUnreadNumber(RecentChatManager.getInstance()
-// .getUnreadMessageTotalCount());
-// }
-// }
-
-// private PageConfig parsePageConfig() {
-// String pageConfigKey = MainPageConfigImpl.getPageConfigKey();
-// String preferredConfig = PatientUtil.loadConfigItem(this, pageConfigKey);
-// return new MainPageConfigImpl(preferredConfig);
-// }
-
@Override
public void addSummaryTab() {
- initHomePageTab(SummaryActivity.class);
+ replaceContentTab(inited ? SummaryFragment.newInstance() : SummaryFragment.newInstance(getIntent().getExtras()));
+// initHomePageTab(SummaryActivity.class);
}
@Override
public void addRecyclerSummaryTab() {
- initHomePageTab(RecyclerSummaryActivity.class);
+ replaceContentTab(inited ? RecyclerSummaryFragment.newInstance() : RecyclerSummaryFragment.newInstance(getIntent().getExtras()));
+// initHomePageTab(RecyclerSummaryActivity.class);
}
@Override
public void addRecyclerSummaryV2Tab() {
- initHomePageTab(RecyclerSummaryV2Activity.class);
+ replaceContentTab(inited ? RecyclerSummaryV2Fragment.newInstance() : RecyclerSummaryV2Fragment.newInstance(getIntent().getExtras()));
+// initHomePageTab(RecyclerSummaryV2Activity.class);
}
@Override
@@ -216,34 +139,14 @@ public void addUnknownSummaryTab() {
hideTabPanel(summaryBadgeRadio);
}
- private void initHomePageTab(@NonNull Class> cls) {
- TabSpec tabNearby = tabHost.newTabSpec(TAB_SPEC_SUMMARY);
- tabNearby.setIndicator(TAB_SPEC_SUMMARY).setContent(new Intent(this, cls));
- initTabPanel(tabNearby, summaryBadgeRadio, R.string.radio_label_summary, R.drawable.radio_bg_summary, listener);
- }
-
-// private boolean initTabPanel(TabSpec tabSpec, View panel, View tabView, RadioClickListener listener) {
-// if (null == tabSpec) {
-// panel.setVisibility(View.GONE);
-// return false;
-// } else {
-// tabHost.addTab(tabSpec);
-// tabView.setOnClickListener(listener);
-// panel.setVisibility(View.VISIBLE);
-// }
-// return true;
-// }
-
- private boolean initTabPanel(TabSpec tabSpec, BadgeRadioButton panel, int labelId, int iconId,
- RadioClickListener listener) {
-// if (null == tabSpec) {
-// panel.setVisibility(View.GONE);
-// return false;
-// } else {
- tabHost.addTab(tabSpec);
- panel.setOnClickListener(labelId, iconId, listener);
- panel.setVisibility(View.VISIBLE);
-// }
+ @Override
+ public void showSummaryTab() {
+ initTabPanel(summaryBadgeRadio, R.string.radio_label_summary, R.drawable.radio_bg_summary);
+ }
+
+ private boolean initTabPanel(BadgeRadioButton panel, int labelId, int iconId) {
+ panel.setOnClickListener(labelId, iconId, this);
+ panel.setVisibility(View.VISIBLE);
return true;
}
@@ -253,9 +156,7 @@ private void hideTabPanel(@NonNull BadgeRadioButton panel) {
@Override
public void addMessageTab() {
- tabConversation = tabHost.newTabSpec(TAB_SPEC_CONVERSATION);
- initOrUpdateConversationTab();
- initTabPanel(tabConversation, conversationBadgeRadio, R.string.radio_label_conversation, R.drawable.radio_bg_conversation, listener);
+ initTabPanel(conversationBadgeRadio, R.string.radio_label_conversation, R.drawable.radio_bg_conversation);
}
@Override
@@ -266,10 +167,7 @@ public void addUnknownMessageTab() {
@Override
public void addDoctorTab() {
- TabSpec tabDoctor = tabHost.newTabSpec(TAB_SPEC_CONTACT);
- tabDoctor.setIndicator(TAB_SPEC_CONTACT).setContent(
- new Intent(this, TabSearchDoctorActivity.class));
- initTabPanel(tabDoctor, contactBadgeRadio, R.string.radio_label_contact, R.drawable.radio_bg_explore, listener);
+ initTabPanel(contactBadgeRadio, R.string.radio_label_contact, R.drawable.radio_bg_explore);
}
@Override
@@ -280,9 +178,7 @@ public void addUnknownDoctorTab() {
@Override
public void addMineTab() {
- TabSpec tabMine = tabHost.newTabSpec(TAB_SPEC_PROFILE);
- tabMine.setIndicator(TAB_SPEC_PROFILE).setContent(new Intent(this, MineActivity.class));
- initTabPanel(tabMine, profileBadgeRadio, R.string.radio_label_profile, R.drawable.radio_bg_profile, listener);
+ initTabPanel(profileBadgeRadio, R.string.radio_label_profile, R.drawable.radio_bg_profile);
}
@Override
@@ -293,10 +189,7 @@ public void addUnknownMineTab() {
@Override
public void addDiscoveryTab() {
- TabSpec tabDiscovery = tabHost.newTabSpec(TAB_SPEC_EXPLORE);
- tabDiscovery.setIndicator(TAB_SPEC_EXPLORE).setContent(
- new Intent(this, DiscoveryActivity.class));
- initTabPanel(tabDiscovery, exploreBadgeRadio, R.string.radio_label_explore, R.drawable.radio_bg_explore, listener);
+ initTabPanel(exploreBadgeRadio, R.string.radio_label_explore, R.drawable.radio_bg_explore);
}
@Override
@@ -305,22 +198,9 @@ public void addUnknownDiscoveryTab() {
hideTabPanel(exploreBadgeRadio);
}
- private class RadioClickListener implements OnClickListener {
- @Override
- public void onClick(View v) {
- radioClick(v.getId());
- }
- }
-
@Override
protected void onDestroy() {
super.onDestroy();
- tabHost = null;
-
-// AndroidEventManager.getInstance().removeEventListener(
-// EventCode.LoginActivityLaunched, this);
-// AndroidEventManager.getInstance().removeEventListener(
-// EventCode.UnreadMessageCountChanged, this);
unbinder.unbind();
toastWrapper.cancel();
}
@@ -340,58 +220,9 @@ public boolean dispatchKeyEvent(KeyEvent event) {
}
public void gotoSearchView() {
- radioClick(contactBadgeRadio);
- }
-
-// @Override
-// protected String getRoleType() {
-// return IntentUtils.getRoleType();
-// }
-//
-// @Override
-// protected void gotoLoginActivity() {
-// IntentUtils.gotoLoginActivity(this, true);
-// }
-
-// private void checkAndLoginXbkpIM() {
-// if (IMApplication.getInstance().isMyServerLogined()) {
-// DemoApplication.loginIM();
-// }
-// }
-
- /**
- * 初始化或者更新消息tab页
- */
- private void initOrUpdateConversationTab() {
- if (tabConversation != null) {
- tabConversation.setIndicator(TAB_SPEC_CONVERSATION).setContent(
- new Intent(this, Message_TabActivity.class));
- }
+ contactBadgeRadio.performClick();
}
-// @Override
-// protected void onLoginCompleted(String result) {
-// super.onLoginCompleted(result);
-// checkAndLoginXbkpIM();
-//
-// //同步设置免打扰的讨论组
-// requestGroupChatSetting();
-//
-// }
-//
-// @Override
-// protected void switchConversationTab(int originalvalue) {
-// super.switchConversationTab(originalvalue);
-// int currentValue = BaseConstantDef.USED_XB_VALUE;
-// if (originalvalue != 0) {
-// if (originalvalue == currentValue) {
-// Logger.i("used same im , no need switch tab");
-// } else {
-// initOrUpdateConversationTab();
-// }
-// }
-// }
-
// dumb override methods
protected void parseNewIntent(Intent intent) {
@@ -403,51 +234,94 @@ protected void bindUnreadCountTextView(BadgeRadioButton view) {
//bindUnreadCountTextView(view, R.id.badge);
}
- // refactor tab view item.
- private void radioClick(BadgeRadioButton view) {
- radioClick(view.getId());
- }
+ @Override
+ public void onClick(View v) {
+ if (v.getId() == currentButton.getId()) {
+ return;
+ }
- private void radioClick(int viewId) {
- setSelectFlag(false);
+ currentButton.setSelectFlag(false);
- switch (viewId) {
+ switch (v.getId()) {
case R.id.summaryBadgeRadio:
- tabHost.setCurrentTabByTag(TAB_SPEC_SUMMARY);
- setActiveIndex(INDEX_SUMMARY);
+ activateSummary();
reportTabClickEvent(EVENT_SUMMARY);
break;
case R.id.conversationBadgeRadio:
- tabHost.setCurrentTabByTag(TAB_SPEC_CONVERSATION);
- setActiveIndex(INDEX_CONVERSATION);
+ activateMessage();
reportTabClickEvent(EVENT_CONVERSATION);
break;
case R.id.contactBadgeRadio:
- tabHost.setCurrentTabByTag(TAB_SPEC_CONTACT);
- setActiveIndex(INDEX_CONTACT);
+ activateContactTab();
reportTabClickEvent(EVENT_CONTACT);
break;
case R.id.exploreBadgeRadio:
- tabHost.setCurrentTabByTag(TAB_SPEC_EXPLORE);
- setActiveIndex(INDEX_EXPLORE);
+ activateExploreTab();
reportTabClickEvent(EVENT_EXPLORE);
break;
case R.id.profileBadgeRadio:
- tabHost.setCurrentTabByTag(TAB_SPEC_PROFILE);
- setActiveIndex(INDEX_PROFILE);
+ activateMineTab();
reportTabClickEvent(EVENT_PROFILE);
break;
default:
- break;
+ showUnknownTabError();
+ return;
}
- activeBadgeRadio = ButterKnife.findById(tabHost, viewId);
- setSelectFlag(true);
+ currentButton = (BadgeRadioButton) v;
}
- private void setSelectFlag(boolean flag) {
- if (null != activeBadgeRadio) {
- activeBadgeRadio.setSelectFlag(flag);
+ private void initContents() {
+ Fragment fragment = getSupportFragmentManager().findFragmentById(android.R.id.tabcontent);
+ if (fragment == null) {
+ configPresenter.getSummaryFragment();
+ inited = true;
+ } else {
+ attachContentTab(fragment);
}
}
+
+ private void initBottomTabs() {
+// root.check(R.id.summaryBadgeRadio);
+// root.setOnCheckedChangeListener(this);
+ currentButton = summaryBadgeRadio;
+ currentButton.performClick();
+ }
+
+ private void activateSummary() {
+ configPresenter.getSummaryFragment();
+ }
+
+ private void activateMessage() {
+ replaceContentTab(ChatListFragment.newInstance());
+ }
+
+ private void activateContactTab() {
+ replaceContentTab(ContactListFragment.newInstance());
+ }
+
+ private void activateExploreTab() {
+ replaceContentTab(ExploreFragment.newInstance());
+ }
+
+ private void activateMineTab() {
+ replaceContentTab(ProfileFragment.newInstance());
+ }
+
+ private void attachContentTab(Fragment fragment) {
+ getSupportFragmentManager()
+ .beginTransaction()
+ .attach(fragment)
+ .commit();
+ }
+ private void replaceContentTab(Fragment fragment) {
+ getSupportFragmentManager()
+ .beginTransaction()
+ .setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out)
+ .replace(android.R.id.tabcontent, fragment, "")
+ .commit();
+ }
+
+ private void showUnknownTabError() {
+ }
}
diff --git a/app/src/main/java/com/cleaner/main/MainConfigContracts.java b/app/src/main/java/com/cleaner/main/MainConfigContracts.java
index 1044a7f..6da0067 100644
--- a/app/src/main/java/com/cleaner/main/MainConfigContracts.java
+++ b/app/src/main/java/com/cleaner/main/MainConfigContracts.java
@@ -9,6 +9,8 @@ public class MainConfigContracts {
* Created by yangfeng on 16-6-29.
*/
public interface ConfigView {
+ void showSummaryTab();
+
void addSummaryTab();
void addRecyclerSummaryTab();
void addRecyclerSummaryV2Tab();
@@ -33,5 +35,6 @@ public interface ConfigView {
*/
public interface ConfigPresenter {
void initTabs();
+ void getSummaryFragment();
}
}
diff --git a/app/src/main/java/com/cleaner/main/MainConfigPresenterImpl.java b/app/src/main/java/com/cleaner/main/MainConfigPresenterImpl.java
index 508f659..6c0d641 100644
--- a/app/src/main/java/com/cleaner/main/MainConfigPresenterImpl.java
+++ b/app/src/main/java/com/cleaner/main/MainConfigPresenterImpl.java
@@ -1,7 +1,7 @@
package com.cleaner.main;
-import com.cleaner.config.PageConfig;
import com.cleaner.config.ConfigurationRepository;
+import com.cleaner.config.PageConfig;
import javax.inject.Inject;
@@ -28,6 +28,19 @@ public void initTabs() {
}
private void initHomePageTab() {
+ if (pageConfig.hasSummary()) {
+ view.showSummaryTab();
+ } else if (pageConfig.hasRecyclerSummary()) {
+ view.showSummaryTab();
+ } else if (pageConfig.hasRecyclerSummaryV2()) {
+ view.showSummaryTab();
+ } else {
+ view.addUnknownSummaryTab();
+ }
+ }
+
+ @Override
+ public void getSummaryFragment() {
if (pageConfig.hasSummary()) {
view.addSummaryTab();
} else if (pageConfig.hasRecyclerSummary()) {
@@ -35,7 +48,7 @@ private void initHomePageTab() {
} else if (pageConfig.hasRecyclerSummaryV2()) {
view.addRecyclerSummaryV2Tab();
} else {
- view.addUnknownSummaryTab();
+ view.addSummaryTab();
}
}
diff --git a/app/src/main/java/com/cleaner/main/Message_TabActivity.java b/app/src/main/java/com/cleaner/main/Message_TabActivity.java
deleted file mode 100644
index 3f05e8d..0000000
--- a/app/src/main/java/com/cleaner/main/Message_TabActivity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.cleaner.main;
-
-/**
- * Created by yangfeng on 16-7-5.
- */
-public class Message_TabActivity extends BaseTabActivity {
-}
diff --git a/app/src/main/java/com/cleaner/main/MineActivity.java b/app/src/main/java/com/cleaner/main/MineActivity.java
deleted file mode 100644
index 8162ee3..0000000
--- a/app/src/main/java/com/cleaner/main/MineActivity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.cleaner.main;
-
-/**
- * Created by yangfeng on 16-7-5.
- */
-public class MineActivity extends BaseTabActivity {
-}
diff --git a/app/src/main/java/com/cleaner/main/RecyclerSummaryActivity.java b/app/src/main/java/com/cleaner/main/RecyclerSummaryActivity.java
deleted file mode 100644
index dba2ca9..0000000
--- a/app/src/main/java/com/cleaner/main/RecyclerSummaryActivity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.cleaner.main;
-
-/**
- * Created by yangfeng on 16-7-5.
- */
-public class RecyclerSummaryActivity extends BaseTabActivity{
-}
diff --git a/app/src/main/java/com/cleaner/main/RecyclerSummaryV2Activity.java b/app/src/main/java/com/cleaner/main/RecyclerSummaryV2Activity.java
deleted file mode 100644
index f9bf81f..0000000
--- a/app/src/main/java/com/cleaner/main/RecyclerSummaryV2Activity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.cleaner.main;
-
-/**
- * Created by yangfeng on 16-7-5.
- */
-public class RecyclerSummaryV2Activity extends BaseTabActivity {
-}
diff --git a/app/src/main/java/com/cleaner/main/SummaryActivity.java b/app/src/main/java/com/cleaner/main/SummaryActivity.java
deleted file mode 100644
index 4d387df..0000000
--- a/app/src/main/java/com/cleaner/main/SummaryActivity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.cleaner.main;
-
-/**
- * Created by yangfeng on 16-7-5.
- */
-public class SummaryActivity extends BaseTabActivity {
-}
diff --git a/app/src/main/java/com/cleaner/main/TabSearchDoctorActivity.java b/app/src/main/java/com/cleaner/main/TabSearchDoctorActivity.java
deleted file mode 100644
index 5ae6d8c..0000000
--- a/app/src/main/java/com/cleaner/main/TabSearchDoctorActivity.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.cleaner.main;
-
-/**
- * Created by yangfeng on 16-7-5.
- */
-public class TabSearchDoctorActivity extends BaseTabActivity {
-}
diff --git a/app/src/main/java/com/cleaner/main/fragments/BaseTabFragment.java b/app/src/main/java/com/cleaner/main/fragments/BaseTabFragment.java
new file mode 100644
index 0000000..d6f2cc4
--- /dev/null
+++ b/app/src/main/java/com/cleaner/main/fragments/BaseTabFragment.java
@@ -0,0 +1,48 @@
+package com.cleaner.main.fragments;
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.cleaner.main.R;
+
+/**
+ * Created by etiennelawlor on 12/16/16.
+ */
+
+public abstract class BaseTabFragment extends Fragment {
+
+ // region Constructors
+ public BaseTabFragment() {
+ }
+ // endregion
+
+ // region Lifecycle Methods
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ View rootView = inflater.inflate(R.layout.activity_dummy_tab, container, false);
+ TextView textView = (TextView)rootView.findViewById(R.id.dummy_textView);
+ textView.setText(this.getClass().getSimpleName());
+ return rootView;
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ }
+ // endregion
+}
diff --git a/app/src/main/java/com/cleaner/main/fragments/ChatListFragment.java b/app/src/main/java/com/cleaner/main/fragments/ChatListFragment.java
new file mode 100644
index 0000000..8ab209d
--- /dev/null
+++ b/app/src/main/java/com/cleaner/main/fragments/ChatListFragment.java
@@ -0,0 +1,27 @@
+package com.cleaner.main.fragments;
+
+import android.os.Bundle;
+
+/**
+ * Created by etiennelawlor on 12/16/16.
+ */
+
+public class ChatListFragment extends BaseTabFragment {
+
+ // region Constructors
+ public ChatListFragment() {
+ }
+ // endregion
+
+ // region Factory Methods
+ public static ChatListFragment newInstance() {
+ return new ChatListFragment();
+ }
+
+ public static ChatListFragment newInstance(Bundle extras) {
+ ChatListFragment fragment = new ChatListFragment();
+ fragment.setArguments(extras);
+ return fragment;
+ }
+ // endregion
+}
diff --git a/app/src/main/java/com/cleaner/main/fragments/ContactListFragment.java b/app/src/main/java/com/cleaner/main/fragments/ContactListFragment.java
new file mode 100644
index 0000000..1050969
--- /dev/null
+++ b/app/src/main/java/com/cleaner/main/fragments/ContactListFragment.java
@@ -0,0 +1,27 @@
+package com.cleaner.main.fragments;
+
+import android.os.Bundle;
+
+/**
+ * Created by etiennelawlor on 12/16/16.
+ */
+
+public class ContactListFragment extends BaseTabFragment {
+
+ // region Constructors
+ public ContactListFragment() {
+ }
+ // endregion
+
+ // region Factory Methods
+ public static ContactListFragment newInstance() {
+ return new ContactListFragment();
+ }
+
+ public static ContactListFragment newInstance(Bundle extras) {
+ ContactListFragment fragment = new ContactListFragment();
+ fragment.setArguments(extras);
+ return fragment;
+ }
+ // endregion
+}
diff --git a/app/src/main/java/com/cleaner/main/fragments/ExploreFragment.java b/app/src/main/java/com/cleaner/main/fragments/ExploreFragment.java
new file mode 100644
index 0000000..7ac7db7
--- /dev/null
+++ b/app/src/main/java/com/cleaner/main/fragments/ExploreFragment.java
@@ -0,0 +1,27 @@
+package com.cleaner.main.fragments;
+
+import android.os.Bundle;
+
+/**
+ * Created by etiennelawlor on 12/16/16.
+ */
+
+public class ExploreFragment extends BaseTabFragment {
+
+ // region Constructors
+ public ExploreFragment() {
+ }
+ // endregion
+
+ // region Factory Methods
+ public static ExploreFragment newInstance() {
+ return new ExploreFragment();
+ }
+
+ public static ExploreFragment newInstance(Bundle extras) {
+ ExploreFragment fragment = new ExploreFragment();
+ fragment.setArguments(extras);
+ return fragment;
+ }
+ // endregion
+}
diff --git a/app/src/main/java/com/cleaner/main/fragments/ProfileFragment.java b/app/src/main/java/com/cleaner/main/fragments/ProfileFragment.java
new file mode 100644
index 0000000..7f1d14c
--- /dev/null
+++ b/app/src/main/java/com/cleaner/main/fragments/ProfileFragment.java
@@ -0,0 +1,27 @@
+package com.cleaner.main.fragments;
+
+import android.os.Bundle;
+
+/**
+ * Created by etiennelawlor on 12/16/16.
+ */
+
+public class ProfileFragment extends BaseTabFragment {
+
+ // region Constructors
+ public ProfileFragment() {
+ }
+ // endregion
+
+ // region Factory Methods
+ public static ProfileFragment newInstance() {
+ return new ProfileFragment();
+ }
+
+ public static ProfileFragment newInstance(Bundle extras) {
+ ProfileFragment fragment = new ProfileFragment();
+ fragment.setArguments(extras);
+ return fragment;
+ }
+ // endregion
+}
diff --git a/app/src/main/java/com/cleaner/main/fragments/RecyclerSummaryFragment.java b/app/src/main/java/com/cleaner/main/fragments/RecyclerSummaryFragment.java
new file mode 100644
index 0000000..00d29ae
--- /dev/null
+++ b/app/src/main/java/com/cleaner/main/fragments/RecyclerSummaryFragment.java
@@ -0,0 +1,27 @@
+package com.cleaner.main.fragments;
+
+import android.os.Bundle;
+
+/**
+ * Created by etiennelawlor on 12/16/16.
+ */
+
+public class RecyclerSummaryFragment extends BaseTabFragment {
+
+ // region Constructors
+ public RecyclerSummaryFragment() {
+ }
+ // endregion
+
+ // region Factory Methods
+ public static RecyclerSummaryFragment newInstance() {
+ return new RecyclerSummaryFragment();
+ }
+
+ public static RecyclerSummaryFragment newInstance(Bundle extras) {
+ RecyclerSummaryFragment fragment = new RecyclerSummaryFragment();
+ fragment.setArguments(extras);
+ return fragment;
+ }
+ // endregion
+}
diff --git a/app/src/main/java/com/cleaner/main/fragments/RecyclerSummaryV2Fragment.java b/app/src/main/java/com/cleaner/main/fragments/RecyclerSummaryV2Fragment.java
new file mode 100644
index 0000000..a5e7e47
--- /dev/null
+++ b/app/src/main/java/com/cleaner/main/fragments/RecyclerSummaryV2Fragment.java
@@ -0,0 +1,27 @@
+package com.cleaner.main.fragments;
+
+import android.os.Bundle;
+
+/**
+ * Created by etiennelawlor on 12/16/16.
+ */
+
+public class RecyclerSummaryV2Fragment extends BaseTabFragment {
+
+ // region Constructors
+ public RecyclerSummaryV2Fragment() {
+ }
+ // endregion
+
+ // region Factory Methods
+ public static RecyclerSummaryV2Fragment newInstance() {
+ return new RecyclerSummaryV2Fragment();
+ }
+
+ public static RecyclerSummaryV2Fragment newInstance(Bundle extras) {
+ RecyclerSummaryV2Fragment fragment = new RecyclerSummaryV2Fragment();
+ fragment.setArguments(extras);
+ return fragment;
+ }
+ // endregion
+}
diff --git a/app/src/main/java/com/cleaner/main/fragments/SummaryFragment.java b/app/src/main/java/com/cleaner/main/fragments/SummaryFragment.java
new file mode 100644
index 0000000..31cc8fd
--- /dev/null
+++ b/app/src/main/java/com/cleaner/main/fragments/SummaryFragment.java
@@ -0,0 +1,27 @@
+package com.cleaner.main.fragments;
+
+import android.os.Bundle;
+
+/**
+ * Created by etiennelawlor on 12/16/16.
+ */
+
+public class SummaryFragment extends BaseTabFragment {
+
+ // region Constructors
+ public SummaryFragment() {
+ }
+ // endregion
+
+ // region Factory Methods
+ public static SummaryFragment newInstance() {
+ return new SummaryFragment();
+ }
+
+ public static SummaryFragment newInstance(Bundle extras) {
+ SummaryFragment fragment = new SummaryFragment();
+ fragment.setArguments(extras);
+ return fragment;
+ }
+ // endregion
+}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 470143a..f502c9b 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,120 +1,54 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/badge_radio_button.xml b/app/src/main/res/layout/badge_radio_button.xml
index cc9ba77..da993b8 100644
--- a/app/src/main/res/layout/badge_radio_button.xml
+++ b/app/src/main/res/layout/badge_radio_button.xml
@@ -27,8 +27,8 @@
android:layout_toEndOf="@+id/anchor"
android:background="@drawable/badge_bg"
android:gravity="center"
- android:singleLine="true"
android:textColor="@color/white"
android:textSize="@dimen/badge_text_size"
- android:visibility="gone"/>
+ android:visibility="gone"
+ android:maxLines="1" />
diff --git a/dependencies.gradle b/dependencies.gradle
index 8c91b8f..764bce5 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -3,11 +3,11 @@ ext.versions = [
name : '1.0',
minSdk : 11,
- targetSdk : 22,
- compileSdk : 23,
- buildTools : '23.0.3',
+ targetSdk : 25,
+ compileSdk : 25,
+ buildTools : '25.0.2',
- androidGradlePlugin : '2.1.2',
+ androidGradlePlugin : '2.2.3',
aptGradlePlugin : '1.8',
retrolambdaGradlePlugin : '3.2.5',
lombokGradlePlugin : '0.2.3.a2',
@@ -24,7 +24,7 @@ ext.versions = [
rxAndroid : '1.2.0',
rxJava : '1.1.5',
rxLint : '1.0',
- supportLibs : '23.1.1',
+ supportLibs : '25.1.1',
okHttp : '3.2.0',
retrofit : '2.0.0-beta4',
jackson : '2.6.3',