Exemplo n.º 1
0
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.activity_main);
    super.onCreate(savedInstanceState);

    initViews();
    initValues();
    initFragments();
    initAdapters();
    initBroadcastReceiver();
    initService();
  }
Exemplo n.º 2
0
  @Override
  protected void initViews() {
    super.initViews();

    actionBarDrawerToggle =
        new ActionBarDrawerToggle(
            this,
            drawerLayout,
            toolbar,
            R.string.navigation_drawer_open,
            R.string.navigation_drawer_close);
    actionBarDrawerToggle.syncState();

    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) actionBar.setTitle(getString(R.string.global_chat));
  }
Exemplo n.º 3
0
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   super.onActivityResult(requestCode, resultCode, data);
   if (resultCode == RESULT_OK) {
     switch (requestCode) {
       case REQUEST_CODE_PRIVATE_CHAT:
       case REQUEST_CODE_ROOM_CHAT:
         int id = data.getIntExtra(EXTRA_ID, 0);
         Fragment fragment = fragments.get(id);
         if (fragment instanceof PreferenceFragmentCompat) toolbar.setTitle(R.string.settings);
         else {
           toolbar.setTitle(((BaseFragment) fragment).getTitle());
         }
         getSupportFragmentManager()
             .beginTransaction()
             .replace(R.id.relativeLayoutFragmentContainer, fragments.get(id))
             .commit();
         currentNavigationId = id;
         break;
     }
   }
 }
Exemplo n.º 4
0
 @Override
 protected void onDestroy() {
   super.onDestroy();
   unregisterReceiver(broadcastReceiver);
 }
Exemplo n.º 5
0
 @Override
 protected void initBroadcastReceiver() {
   super.initBroadcastReceiver();
   broadcastReceiver =
       new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, final Intent intent) {
           switch (intent.getAction()) {
             case GLOBAL_MESSAGE_ACTION:
               Log.d(TAG, "Receive global message");
               if (intent.hasExtra(EXTRA_MESSAGE)) {
                 ChatData chatData = intent.getParcelableExtra(EXTRA_MESSAGE);
                 chatAdapter.add(chatData);
               } else if (intent.hasExtra(EXTRA_MESSAGE_BUNDLE)) {
                 Parcelable[] parcelables = intent.getParcelableArrayExtra(EXTRA_MESSAGE_BUNDLE);
                 ChatData[] messages =
                     Arrays.copyOf(parcelables, parcelables.length, ChatData[].class);
                 for (ChatData chatData : messages) {
                   chatAdapter.add(chatData);
                 }
               }
               break;
             case PEOPLE_ACTION:
               PeopleData peopleData = intent.getParcelableExtra(EXTRA_PEOPLE);
               if (peopleData.getEncodedProfilePicture() != null
                   && peopleData.getEncodedProfilePicture().length() > 0)
                 peopleData.setProfilePicture(
                     Base64Converter.getBitmapFromString(peopleData.getEncodedProfilePicture()));
               if (!peopleData.getUid().equals(Utils.getAndroidID(getApplicationContext())))
                 switch (peopleData.getAction()) {
                   case CONNECT:
                     peopleAdapter.add(peopleData);
                     break;
                   case DISCONNECT:
                     peopleAdapter.setOffline(peopleData);
                     break;
                   case CHANGE_PROFILE:
                     peopleAdapter.add(peopleData);
                     break;
                   default:
                     Log.w(getClass().getSimpleName(), "Unexpected action type");
                 }
               break;
             case SEND_ROOM_ACTION:
               Log.d(TAG, "SEND_ROOM_ACTION");
               if (intent.hasExtra(EXTRA_ROOM)) {
                 RoomData roomData = intent.getParcelableExtra(EXTRA_ROOM);
                 roomsAdapter.add(roomData);
               } else if (intent.hasExtra(EXTRA_MESSAGE_BUNDLE)) {
                 Parcelable[] parcelables = intent.getParcelableArrayExtra(EXTRA_MESSAGE_BUNDLE);
                 RoomData[] messages =
                     Arrays.copyOf(parcelables, parcelables.length, RoomData[].class);
                 for (RoomData roomData : messages) {
                   roomsAdapter.add(roomData);
                 }
               }
               break;
             case SET_ALL_OFFLINE_ACTION:
               peopleAdapter.allOffline();
           }
         }
       };
   IntentFilter intentFilter = new IntentFilter();
   intentFilter.addAction(GLOBAL_MESSAGE_ACTION);
   intentFilter.addAction(PEOPLE_ACTION);
   intentFilter.addAction(SET_ALL_OFFLINE_ACTION);
   intentFilter.addAction(SEND_ROOM_ACTION);
   registerReceiver(broadcastReceiver, intentFilter);
 }