2020-06-06 18:45:20 +02:00
|
|
|
package org.mercury_im.messenger.android.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;
|
2020-07-13 01:39:26 +02:00
|
|
|
import androidx.appcompat.widget.SearchView;
|
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
|
|
|
|
2020-06-06 18:45:20 +02:00
|
|
|
import org.mercury_im.messenger.android.MercuryImApplication;
|
2019-05-13 03:19:17 +02:00
|
|
|
import org.mercury_im.messenger.R;
|
2020-07-09 02:10:47 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.account.AccountDetailsFragment;
|
2020-07-04 01:17:18 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.account.DeleteAccountDialogFragment;
|
|
|
|
import org.mercury_im.messenger.android.ui.account.OnAccountListItemClickListener;
|
2020-06-06 18:45:20 +02:00
|
|
|
import org.mercury_im.messenger.core.data.repository.AccountRepository;
|
2019-12-06 15:52:50 +01:00
|
|
|
import org.mercury_im.messenger.entity.Account;
|
2020-06-06 18:45:20 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.chatlist.ChatListFragment;
|
|
|
|
import org.mercury_im.messenger.android.ui.account.AccountsFragment;
|
|
|
|
import org.mercury_im.messenger.android.ui.roster.RosterFragment;
|
|
|
|
import org.mercury_im.messenger.android.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,
|
2020-07-04 01:17:18 +02:00
|
|
|
OnAccountListItemClickListener {
|
2019-09-01 04:56:23 +02:00
|
|
|
|
|
|
|
@BindView(R.id.toolbar)
|
|
|
|
Toolbar toolbar;
|
|
|
|
|
|
|
|
@BindView(R.id.bottom_navigation)
|
|
|
|
BottomNavigationView bottomNavigationView;
|
|
|
|
|
2020-07-13 01:39:26 +02:00
|
|
|
private SearchView searchView;
|
|
|
|
|
2019-09-01 04:56:23 +02:00
|
|
|
private ChatListFragment chatListFragment = new ChatListFragment();
|
|
|
|
private RosterFragment rosterFragment = new RosterFragment();
|
|
|
|
private AccountsFragment accountsFragment = new AccountsFragment();
|
2019-04-14 18:12:04 +02:00
|
|
|
|
2019-12-21 03:01:35 +01: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);
|
2020-07-13 01:39:26 +02:00
|
|
|
|
|
|
|
final MenuItem searchItem = menu.findItem(R.id.action_search);
|
|
|
|
searchView = (SearchView) searchItem.getActionView();
|
|
|
|
|
2019-04-14 18:12:04 +02:00
|
|
|
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();
|
2020-07-13 01:39:26 +02:00
|
|
|
searchView.setOnQueryTextListener(rosterFragment);
|
2019-09-01 04:56:23 +02:00
|
|
|
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) {
|
2020-07-13 01:39:26 +02:00
|
|
|
getSupportFragmentManager().beginTransaction().addToBackStack("Test")
|
|
|
|
.replace(R.id.fragment, new AccountDetailsFragment(item.getId())).commit();
|
2019-09-01 04:56:23 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2019-12-06 15:52:50 +01:00
|
|
|
public void onAccountListItemLongClick(Account item) {
|
2020-07-04 01:17:18 +02:00
|
|
|
new DeleteAccountDialogFragment(item.getId()).show(getSupportFragmentManager(), "DELETE");
|
2019-09-01 04:56:23 +02:00
|
|
|
}
|
2019-04-14 18:12:04 +02:00
|
|
|
}
|