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',