Mercury-IM/app/src/main/java/org/mercury_im/messenger/ui/MainActivity.java

110 lines
3.5 KiB
Java
Raw Normal View History

2019-05-13 03:19:17 +02:00
package org.mercury_im.messenger.ui;
2019-04-14 18:12:04 +02:00
import android.content.Intent;
import android.os.Bundle;
2019-06-29 01:02:19 +02:00
import android.view.Menu;
import android.view.MenuItem;
2019-09-01 04:56:23 +02:00
import androidx.annotation.NonNull;
2019-08-03 19:05:50 +02:00
import androidx.appcompat.app.AppCompatActivity;
2019-05-18 10:06:16 +02:00
import androidx.appcompat.widget.Toolbar;
2019-09-01 04:56:23 +02:00
import androidx.fragment.app.FragmentTransaction;
2019-06-20 17:20:23 +02:00
2019-09-01 04:56:23 +02:00
import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.navigation.NavigationView;
2019-04-14 18:12:04 +02:00
2019-05-13 03:19:17 +02:00
import org.mercury_im.messenger.MercuryImApplication;
import org.mercury_im.messenger.R;
import org.mercury_im.messenger.data.repository.AccountRepository;
2019-12-06 15:52:50 +01:00
import org.mercury_im.messenger.entity.Account;
2019-09-01 04:56:23 +02:00
import org.mercury_im.messenger.ui.chatlist.ChatListFragment;
2019-12-21 03:46:17 +01:00
import org.mercury_im.messenger.ui.account.AccountsFragment;
2019-08-12 17:05:30 +02:00
import org.mercury_im.messenger.ui.roster.RosterFragment;
2019-05-13 03:19:17 +02:00
import org.mercury_im.messenger.ui.settings.SettingsActivity;
2019-04-14 18:12:04 +02:00
2019-09-02 01:06:17 +02:00
import javax.inject.Inject;
2019-09-23 23:20:43 +02:00
import butterknife.BindView;
import butterknife.ButterKnife;
2019-09-01 04:56:23 +02:00
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener,
AccountsFragment.OnAccountListItemClickListener {
@BindView(R.id.toolbar)
Toolbar toolbar;
@BindView(R.id.bottom_navigation)
BottomNavigationView bottomNavigationView;
private ChatListFragment chatListFragment = new ChatListFragment();
private RosterFragment rosterFragment = new RosterFragment();
private AccountsFragment accountsFragment = new AccountsFragment();
2019-04-14 18:12:04 +02:00
@Inject
AccountRepository accountRepository;
2019-04-14 18:12:04 +02:00
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
2019-09-01 04:56:23 +02:00
ButterKnife.bind(this);
2019-04-14 18:12:04 +02:00
setSupportActionBar(toolbar);
2019-09-01 04:56:23 +02:00
bottomNavigationView.setOnNavigationItemSelectedListener(this::onNavigationItemSelected);
2019-09-23 23:20:43 +02:00
bottomNavigationView.setSelectedItemId(R.id.entry_chats);
2019-09-01 04:56:23 +02:00
MercuryImApplication.getApplication().getAppComponent().inject(this);
2019-04-14 18:12:04 +02:00
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
2019-05-04 00:27:02 +02:00
switch (id) {
case R.id.action_settings:
startActivity(new Intent(getApplicationContext(), SettingsActivity.class));
return true;
2019-04-14 18:12:04 +02:00
}
return super.onOptionsItemSelected(item);
}
2019-09-01 04:56:23 +02:00
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch (menuItem.getItemId()) {
case R.id.entry_chats:
transaction.replace(R.id.fragment, chatListFragment).commit();
return true;
case R.id.entry_contacts:
transaction.replace(R.id.fragment, rosterFragment).commit();
return true;
case R.id.entry_accounts:
transaction.replace(R.id.fragment, accountsFragment).commit();
return true;
}
return false;
}
@Override
2019-12-06 15:52:50 +01:00
public void onAccountListItemClick(Account item) {
2019-09-01 04:56:23 +02:00
}
@Override
2019-12-06 15:52:50 +01:00
public void onAccountListItemLongClick(Account item) {
accountRepository.deleteAccount(item).subscribe();
2019-09-01 04:56:23 +02:00
}
2019-04-14 18:12:04 +02:00
}