Skip to content

Instantly share code, notes, and snippets.

@korrio
Created January 31, 2016 16:17
Show Gist options
  • Select an option

  • Save korrio/6129745db7dff3a68873 to your computer and use it in GitHub Desktop.

Select an option

Save korrio/6129745db7dff3a68873 to your computer and use it in GitHub Desktop.
MainActivity.java
package com.candychat.net.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.widget.Toast;
import com.afollestad.materialcamera.MaterialCamera;
import com.candychat.net.ActivityResultEvent;
import com.candychat.net.CustomViewPager;
import com.candychat.net.PrefManager;
import com.candychat.net.R;
import com.candychat.net.WOUApp;
import com.candychat.net.activity.main.FriendsFragment;
import com.candychat.net.activity.main.MoreFragment;
import com.candychat.net.activity.main.RecentChatsFragment;
import com.candychat.net.adapter.FragmentPageAdapter;
import com.candychat.net.alogin.activity.LoginOrSignupActivity;
import com.candychat.net.base.BaseToolbarActivity;
import com.candychat.net.event.GetRoomChatSuccess;
import com.candychat.net.fragment.feed.FeedListFragment;
import com.candychat.net.fragment.sub.CameraFragment;
import com.candychat.net.handler.ActivityResultBus;
import com.candychat.net.impls.OnFragmentInteractionListener;
import com.squareup.otto.Subscribe;
import java.util.ArrayList;
import butterknife.Bind;
public class MainActivity extends BaseToolbarActivity implements OnFragmentInteractionListener {
@Bind(R.id.viewpager)
CustomViewPager mViewpager;
@Bind(R.id.tabs)
TabLayout mTabs;
private FragmentPageAdapter pageAdapter;
String event, friend, camera, chat, more = "";
public Integer userId;
PrefManager mPref;
public Context mContext;
@Subscribe
public void getRoomChat(GetRoomChatSuccess event) {
System.out.println(event.response.getMember1().get(0).getId() + " " + event.response.getMember2().get(0).getId());
Intent i = new Intent(this, ChatActivity.class);
i.putExtra("USER_ID_1", event.response.getMember1().get(0).getUserId());
i.putExtra("USER_ID_2", event.response.getMember2().get(0).getUserId());
if(event.response.getMemberType().equals("INDIVIDUAL")
// && event.response.getConversationType().equals("PRIVATE")
) {
i.putExtra("CHAT_TYPE", 0);
} else {
i.putExtra("CHAT_TYPE", 2);
}
i.putExtra("CONVERSATION_ID", event.response.getId());
startActivity(i);
}
@Override
protected void onResume() {
super.onResume();
if(mPref != null)
if(!mPref.isLogin().getOr(false) || mPref.userId().getOr(0) == 0) {
WOUApp.logout(this);
Intent logout = new Intent(this, LoginOrSignupActivity.class);
startActivity(logout);
}
}
@Override
protected int getLayoutId() {
return R.layout.activity_main;
}
@Override
protected void initViews(Bundle savedInstanceState) {
mContext = this;
mPref = WOUApp.get(getApplication()).getPrefManager();
mViewpager.setPagingEnabled(false);
mViewpager.setOffscreenPageLimit(2);
setupViewPager(mViewpager);
setupTabLayout(mTabs);
userId = mPref.userId().getOr(0);
WOUApp.saveInstallation(userId);
}
@Override
protected void initListeners() {
}
@Override
protected void initData() {
}
ArrayList<Fragment> mFragments = new ArrayList<>();
public void setupViewPager(ViewPager viewPager) {
pageAdapter = new FragmentPageAdapter(getApplicationContext(),getSupportFragmentManager());
mFragments.add(FriendsFragment.getInstance(friend));
mFragments.add(RecentChatsFragment.getInstance(chat));
mFragments.add(MoreFragment.getInstance(more));
mFragments.add(FeedListFragment.getInstance(event));
mFragments.add(CameraFragment.getInstance(camera));
// pageAdapter.addFragment(mFragments.get(3), "event", R.drawable.ic_tabbar_time_line,"");
pageAdapter.addFragment(mFragments.get(0), "friend", R.drawable.ic_tabbar_friends, 5);
// pageAdapter.addFragment(mFragments.get(4), "camera", R.drawable.ic_tabbar_photo,"");
pageAdapter.addFragment(mFragments.get(1), "chat", R.drawable.ic_tabbar_chat,15);
pageAdapter.addFragment(mFragments.get(2), "more", R.drawable.ic_tabbar_more, 0);
viewPager.setAdapter(pageAdapter);
}
public void setupTabLayout(TabLayout tabLayout) {
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
tabLayout.setupWithViewPager(mViewpager);
for (int i = 0; i < tabLayout.getTabCount(); i++) {
TabLayout.Tab tab = tabLayout.getTabAt(i);
if(pageAdapter != null) {
assert tab != null;
tab.setCustomView(pageAdapter.getTabView(i));
}
}
tabLayout.requestFocus();
}
private static final int TIME_INTERVAL = 2000; // # milliseconds, desired timeTv passed between two back presses.
private long mBackPressed;
@Override
public void onBackPressed() {
super.onBackPressed();
if (mBackPressed + TIME_INTERVAL > System.currentTimeMillis())
{
super.onBackPressed();
return;
}
mBackPressed = System.currentTimeMillis();
}
private final static int CAMERA_RQ = 6969;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ActivityResultBus.getInstance().postQueue(new ActivityResultEvent(requestCode, resultCode, data));
if (requestCode == CAMERA_RQ) {
if (resultCode == RESULT_OK) {
Toast.makeText(this, "Saved to: " + data.getDataString(), Toast.LENGTH_LONG).show();
} else if(data != null) {
Exception e = (Exception) data.getSerializableExtra(MaterialCamera.ERROR_EXTRA);
e.printStackTrace();
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment