support navigation via nav bar
This commit is contained in:
parent
c145a6b8e5
commit
4453ad71ac
|
@ -1,5 +1,7 @@
|
||||||
package eu.siacs.conversations.ui;
|
package eu.siacs.conversations.ui;
|
||||||
|
|
||||||
|
import static android.view.View.VISIBLE;
|
||||||
|
|
||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
@ -40,6 +42,9 @@ import eu.siacs.conversations.xmpp.XmppConnection;
|
||||||
import static eu.siacs.conversations.utils.PermissionUtils.allGranted;
|
import static eu.siacs.conversations.utils.PermissionUtils.allGranted;
|
||||||
import static eu.siacs.conversations.utils.PermissionUtils.writeGranted;
|
import static eu.siacs.conversations.utils.PermissionUtils.writeGranted;
|
||||||
|
|
||||||
|
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||||
|
import com.google.android.material.navigation.NavigationBarView;
|
||||||
|
|
||||||
public class ManageAccountActivity extends XmppActivity implements OnAccountUpdate, KeyChainAliasCallback, XmppConnectionService.OnAccountCreated, AccountAdapter.OnTglAccountState {
|
public class ManageAccountActivity extends XmppActivity implements OnAccountUpdate, KeyChainAliasCallback, XmppConnectionService.OnAccountCreated, AccountAdapter.OnTglAccountState {
|
||||||
|
|
||||||
private final String STATE_SELECTED_ACCOUNT = "selected_account";
|
private final String STATE_SELECTED_ACCOUNT = "selected_account";
|
||||||
|
@ -68,9 +73,10 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
|
||||||
accountList.addAll(xmppConnectionService.getAccounts());
|
accountList.addAll(xmppConnectionService.getAccounts());
|
||||||
}
|
}
|
||||||
ActionBar actionBar = getSupportActionBar();
|
ActionBar actionBar = getSupportActionBar();
|
||||||
|
boolean showNavBar = findViewById(R.id.bottom_navigation).getVisibility() == VISIBLE;
|
||||||
if (actionBar != null) {
|
if (actionBar != null) {
|
||||||
actionBar.setHomeButtonEnabled(this.accountList.size() > 0);
|
actionBar.setHomeButtonEnabled(this.accountList.size() > 0 && !showNavBar);
|
||||||
actionBar.setDisplayHomeAsUpEnabled(this.accountList.size() > 0);
|
actionBar.setDisplayHomeAsUpEnabled(this.accountList.size() > 0 && !showNavBar);
|
||||||
}
|
}
|
||||||
invalidateOptionsMenu();
|
invalidateOptionsMenu();
|
||||||
mAccountAdapter.notifyDataSetChanged();
|
mAccountAdapter.notifyDataSetChanged();
|
||||||
|
@ -100,6 +106,30 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
|
||||||
accountListView.setAdapter(this.mAccountAdapter);
|
accountListView.setAdapter(this.mAccountAdapter);
|
||||||
accountListView.setOnItemClickListener((arg0, view, position, arg3) -> switchToAccount(accountList.get(position)));
|
accountListView.setOnItemClickListener((arg0, view, position, arg3) -> switchToAccount(accountList.get(position)));
|
||||||
registerForContextMenu(accountListView);
|
registerForContextMenu(accountListView);
|
||||||
|
|
||||||
|
BottomNavigationView bottomNavigationView=findViewById(R.id.bottom_navigation);
|
||||||
|
bottomNavigationView.setOnItemSelectedListener(item -> {
|
||||||
|
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case R.id.chats -> {
|
||||||
|
startActivity(new Intent(getApplicationContext(), ConversationsActivity.class));
|
||||||
|
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case R.id.contactslist -> {
|
||||||
|
Intent i = new Intent(getApplicationContext(), StartConversationActivity.class);
|
||||||
|
i.putExtra("show_nav_bar", true);
|
||||||
|
startActivity(i);
|
||||||
|
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case R.id.manageaccounts -> {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
default ->
|
||||||
|
throw new IllegalStateException("Unexpected value: " + item.getItemId());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -109,6 +139,15 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
|
||||||
if (this.mTheme != theme) {
|
if (this.mTheme != theme) {
|
||||||
recreate();
|
recreate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BottomNavigationView bottomNavigationView=findViewById(R.id.bottom_navigation);
|
||||||
|
bottomNavigationView.setSelectedItemId(R.id.manageaccounts);
|
||||||
|
|
||||||
|
if (getBooleanPreference("show_nav_bar", R.bool.show_nav_bar) && getIntent().getBooleanExtra("show_nav_bar", false)) {
|
||||||
|
bottomNavigationView.setVisibility(VISIBLE);
|
||||||
|
} else {
|
||||||
|
bottomNavigationView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -147,6 +186,18 @@ public class ManageAccountActivity extends XmppActivity implements OnAccountUpda
|
||||||
menu.setHeaderTitle(this.selectedAccount.getJid().asBareJid().toEscapedString());
|
menu.setHeaderTitle(this.selectedAccount.getJid().asBareJid().toEscapedString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBackPressed() {
|
||||||
|
if (findViewById(R.id.bottom_navigation).getVisibility() == VISIBLE) {
|
||||||
|
Intent intent = new Intent(this, ConversationsActivity.class);
|
||||||
|
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
|
||||||
|
startActivity(intent);
|
||||||
|
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||||
|
}
|
||||||
|
|
||||||
|
super.onBackPressed();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
void onBackendConnected() {
|
void onBackendConnected() {
|
||||||
if (selectedAccountJid != null) {
|
if (selectedAccountJid != null) {
|
||||||
|
|
|
@ -1418,6 +1418,14 @@ public class ConversationFragment extends XmppFragment
|
||||||
menuTogglePinned.setTitle(R.string.add_to_favorites);
|
menuTogglePinned.setTitle(R.string.add_to_favorites);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Fragment secondaryFragment = activity.getFragmentManager().findFragmentById(R.id.secondary_fragment);
|
||||||
|
if (secondaryFragment instanceof ConversationFragment) {
|
||||||
|
activity.showNavigationBar();
|
||||||
|
} else {
|
||||||
|
activity.hideNavigationBar();
|
||||||
|
}
|
||||||
|
|
||||||
super.onCreateOptionsMenu(menu, menuInflater);
|
super.onCreateOptionsMenu(menu, menuInflater);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ package eu.siacs.conversations.ui;
|
||||||
|
|
||||||
|
|
||||||
import static eu.siacs.conversations.ui.ConversationFragment.REQUEST_DECRYPT_PGP;
|
import static eu.siacs.conversations.ui.ConversationFragment.REQUEST_DECRYPT_PGP;
|
||||||
|
import static eu.siacs.conversations.utils.AccountUtils.MANAGE_ACCOUNT_ACTIVITY;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
|
@ -61,6 +62,9 @@ import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.core.app.ActivityCompat;
|
import androidx.core.app.ActivityCompat;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
|
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||||
|
import com.google.android.material.navigation.NavigationBarView;
|
||||||
|
|
||||||
import org.openintents.openpgp.util.OpenPgpApi;
|
import org.openintents.openpgp.util.OpenPgpApi;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -397,6 +401,33 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
|
||||||
pendingViewIntent.push(intent);
|
pendingViewIntent.push(intent);
|
||||||
setIntent(createLauncherIntent(this));
|
setIntent(createLauncherIntent(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
|
||||||
|
bottomNavigationView.setOnItemSelectedListener(item -> {
|
||||||
|
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case R.id.chats -> {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case R.id.contactslist -> {
|
||||||
|
Intent i = new Intent(getApplicationContext(), StartConversationActivity.class);
|
||||||
|
i.putExtra("show_nav_bar", true);
|
||||||
|
startActivity(i);
|
||||||
|
|
||||||
|
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case R.id.manageaccounts -> {
|
||||||
|
Intent i = new Intent(getApplicationContext(), MANAGE_ACCOUNT_ACTIVITY);
|
||||||
|
i.putExtra("show_nav_bar", true);
|
||||||
|
startActivity(i);
|
||||||
|
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
default ->
|
||||||
|
throw new IllegalStateException("Unexpected value: " + item.getItemId());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -432,6 +463,24 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean navigationBarVisible() {
|
||||||
|
return findViewById(R.id.bottom_navigation).getVisibility() == View.VISIBLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean showNavigationBar() {
|
||||||
|
if (!getBooleanPreference("show_nav_bar", R.bool.show_nav_bar)) {
|
||||||
|
findViewById(R.id.bottom_navigation).setVisibility(View.GONE);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
findViewById(R.id.bottom_navigation).setVisibility(View.VISIBLE);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hideNavigationBar() {
|
||||||
|
findViewById(R.id.bottom_navigation).setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public View getFragmentHostView() {
|
public View getFragmentHostView() {
|
||||||
if (binding.secondaryFragment != null) {
|
if (binding.secondaryFragment != null) {
|
||||||
|
@ -611,6 +660,9 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
|
||||||
this.mSkipBackgroundBinding = false;
|
this.mSkipBackgroundBinding = false;
|
||||||
}
|
}
|
||||||
mRedirectInProcess.set(false);
|
mRedirectInProcess.set(false);
|
||||||
|
|
||||||
|
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation);
|
||||||
|
bottomNavigationView.setSelectedItemId(R.id.chats);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -422,6 +422,21 @@ public class ConversationsOverviewFragment extends XmppFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPrepareOptionsMenu(Menu menu) {
|
||||||
|
super.onPrepareOptionsMenu(menu);
|
||||||
|
|
||||||
|
boolean navBarVisible = activity instanceof ConversationsActivity && ((ConversationsActivity) activity).navigationBarVisible();
|
||||||
|
MenuItem manageAccount = menu.findItem(R.id.action_account);
|
||||||
|
MenuItem manageAccounts = menu.findItem(R.id.action_accounts);
|
||||||
|
if (navBarVisible) {
|
||||||
|
manageAccount.setVisible(false);
|
||||||
|
manageAccounts.setVisible(false);
|
||||||
|
} else {
|
||||||
|
AccountUtils.showHideMenuItems(menu);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
|
@ -429,6 +444,16 @@ public class ConversationsOverviewFragment extends XmppFragment {
|
||||||
if (activity.xmppConnectionService != null) {
|
if (activity.xmppConnectionService != null) {
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (activity instanceof ConversationsActivity) {
|
||||||
|
boolean showed = ((ConversationsActivity) activity).showNavigationBar();
|
||||||
|
|
||||||
|
if (showed) {
|
||||||
|
this.binding.fab.setVisibility(View.GONE);
|
||||||
|
} else {
|
||||||
|
this.binding.fab.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
package eu.siacs.conversations.ui;
|
package eu.siacs.conversations.ui;
|
||||||
|
|
||||||
|
import static android.view.View.VISIBLE;
|
||||||
|
|
||||||
|
import static eu.siacs.conversations.utils.AccountUtils.MANAGE_ACCOUNT_ACTIVITY;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
|
@ -63,6 +67,7 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||||
import androidx.viewpager.widget.PagerAdapter;
|
import androidx.viewpager.widget.PagerAdapter;
|
||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
|
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||||
import com.google.android.material.textfield.TextInputLayout;
|
import com.google.android.material.textfield.TextInputLayout;
|
||||||
import com.leinardi.android.speeddial.SpeedDialActionItem;
|
import com.leinardi.android.speeddial.SpeedDialActionItem;
|
||||||
import com.leinardi.android.speeddial.SpeedDialView;
|
import com.leinardi.android.speeddial.SpeedDialView;
|
||||||
|
@ -374,6 +379,30 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
BottomNavigationView bottomNavigationView=findViewById(R.id.bottom_navigation);
|
||||||
|
bottomNavigationView.setOnItemSelectedListener(item -> {
|
||||||
|
|
||||||
|
switch (item.getItemId()) {
|
||||||
|
case R.id.chats -> {
|
||||||
|
startActivity(new Intent(getApplicationContext(), ConversationsActivity.class));
|
||||||
|
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case R.id.contactslist -> {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case R.id.manageaccounts -> {
|
||||||
|
Intent i = new Intent(getApplicationContext(), MANAGE_ACCOUNT_ACTIVITY);
|
||||||
|
i.putExtra("show_nav_bar", true);
|
||||||
|
startActivity(i);
|
||||||
|
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
default ->
|
||||||
|
throw new IllegalStateException("Unexpected value: " + item.getItemId());
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void inflateFab(final SpeedDialView speedDialView, final @MenuRes int menuRes) {
|
private void inflateFab(final SpeedDialView speedDialView, final @MenuRes int menuRes) {
|
||||||
|
@ -430,6 +459,15 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
|
||||||
}
|
}
|
||||||
mConferenceAdapter.refreshSettings();
|
mConferenceAdapter.refreshSettings();
|
||||||
mContactsAdapter.refreshSettings();
|
mContactsAdapter.refreshSettings();
|
||||||
|
|
||||||
|
BottomNavigationView bottomNavigationView=findViewById(R.id.bottom_navigation);
|
||||||
|
bottomNavigationView.setSelectedItemId(R.id.contactslist);
|
||||||
|
|
||||||
|
if (getBooleanPreference("show_nav_bar", R.bool.show_nav_bar) && getIntent().getBooleanExtra("show_nav_bar", false)) {
|
||||||
|
bottomNavigationView.setVisibility(VISIBLE);
|
||||||
|
} else {
|
||||||
|
bottomNavigationView.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -769,6 +807,22 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
|
||||||
return super.onCreateOptionsMenu(menu);
|
return super.onCreateOptionsMenu(menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||||
|
boolean res = super.onPrepareOptionsMenu(menu);
|
||||||
|
boolean navBarVisible = binding.bottomNavigation.getVisibility() == VISIBLE;
|
||||||
|
MenuItem manageAccount = menu.findItem(R.id.action_account);
|
||||||
|
MenuItem manageAccounts = menu.findItem(R.id.action_accounts);
|
||||||
|
if (navBarVisible) {
|
||||||
|
manageAccount.setVisible(false);
|
||||||
|
manageAccounts.setVisible(false);
|
||||||
|
} else {
|
||||||
|
AccountUtils.showHideMenuItems(menu);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
if (MenuDoubleTabUtil.shouldIgnoreTap()) {
|
if (MenuDoubleTabUtil.shouldIgnoreTap()) {
|
||||||
|
@ -916,8 +970,9 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
boolean openConversations = !createdByViewIntent && !xmppConnectionService.isConversationsListEmpty(null);
|
boolean openConversations = !createdByViewIntent && !xmppConnectionService.isConversationsListEmpty(null);
|
||||||
actionBar.setDisplayHomeAsUpEnabled(openConversations);
|
boolean showNavBar = binding.bottomNavigation.getVisibility() == VISIBLE;
|
||||||
actionBar.setDisplayHomeAsUpEnabled(openConversations);
|
actionBar.setDisplayHomeAsUpEnabled(openConversations && !showNavBar);
|
||||||
|
actionBar.setDisplayHomeAsUpEnabled(openConversations && !showNavBar);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1149,6 +1204,9 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
|
||||||
Intent intent = new Intent(this, ConversationsActivity.class);
|
Intent intent = new Intent(this, ConversationsActivity.class);
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
|
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
|
if (binding.bottomNavigation.getVisibility() == VISIBLE) {
|
||||||
|
overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
8
src/main/res/animator/fade_in.xml
Normal file
8
src/main/res/animator/fade_in.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:duration="200"
|
||||||
|
android:fromAlpha="0.0"
|
||||||
|
android:interpolator="@android:anim/accelerate_interpolator"
|
||||||
|
android:toAlpha="1.0" />
|
||||||
|
</set>
|
15
src/main/res/animator/fade_left_in.xml
Normal file
15
src/main/res/animator/fade_left_in.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:duration="200"
|
||||||
|
android:shareInterpolator="@android:anim/accelerate_decelerate_interpolator">
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="translationX"
|
||||||
|
android:valueFrom="-200"
|
||||||
|
android:valueTo="0"
|
||||||
|
android:valueType="floatType" />
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="alpha"
|
||||||
|
android:valueFrom="0"
|
||||||
|
android:valueTo="1"
|
||||||
|
android:valueType="floatType" />
|
||||||
|
</set>
|
15
src/main/res/animator/fade_left_out.xml
Normal file
15
src/main/res/animator/fade_left_out.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:duration="200"
|
||||||
|
android:shareInterpolator="@android:anim/accelerate_decelerate_interpolator">
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="translationX"
|
||||||
|
android:valueFrom="0"
|
||||||
|
android:valueTo="-200"
|
||||||
|
android:valueType="floatType" />
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="alpha"
|
||||||
|
android:valueFrom="1"
|
||||||
|
android:valueTo="0"
|
||||||
|
android:valueType="floatType" />
|
||||||
|
</set>
|
8
src/main/res/animator/fade_out.xml
Normal file
8
src/main/res/animator/fade_out.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:duration="200"
|
||||||
|
android:fromAlpha="1.0"
|
||||||
|
android:interpolator="@android:anim/anticipate_interpolator"
|
||||||
|
android:toAlpha="0.0" />
|
||||||
|
</set>
|
15
src/main/res/animator/fade_right_in.xml
Normal file
15
src/main/res/animator/fade_right_in.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:duration="200"
|
||||||
|
android:shareInterpolator="@android:anim/accelerate_decelerate_interpolator">
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="translationX"
|
||||||
|
android:valueFrom="200"
|
||||||
|
android:valueTo="0"
|
||||||
|
android:valueType="floatType" />
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="alpha"
|
||||||
|
android:valueFrom="0"
|
||||||
|
android:valueTo="1"
|
||||||
|
android:valueType="floatType" />
|
||||||
|
</set>
|
15
src/main/res/animator/fade_right_out.xml
Normal file
15
src/main/res/animator/fade_right_out.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:duration="200"
|
||||||
|
android:shareInterpolator="@android:anim/accelerate_decelerate_interpolator">
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="translationX"
|
||||||
|
android:valueFrom="0"
|
||||||
|
android:valueTo="200"
|
||||||
|
android:valueType="floatType" />
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="alpha"
|
||||||
|
android:valueFrom="1"
|
||||||
|
android:valueTo="0"
|
||||||
|
android:valueType="floatType" />
|
||||||
|
</set>
|
5
src/main/res/drawable/accounts_selected_black_24.xml
Normal file
5
src/main/res/drawable/accounts_selected_black_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM12,6c1.93,0 3.5,1.57 3.5,3.5S13.93,13 12,13s-3.5,-1.57 -3.5,-3.5S10.07,6 12,6zM12,20c-2.03,0 -4.43,-0.82 -6.14,-2.88C7.55,15.8 9.68,15 12,15s4.45,0.8 6.14,2.12C16.43,19.18 14.03,20 12,20z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/accounts_selected_white_24.xml
Normal file
5
src/main/res/drawable/accounts_selected_white_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM12,6c1.93,0 3.5,1.57 3.5,3.5S13.93,13 12,13s-3.5,-1.57 -3.5,-3.5S10.07,6 12,6zM12,20c-2.03,0 -4.43,-0.82 -6.14,-2.88C7.55,15.8 9.68,15 12,15s4.45,0.8 6.14,2.12C16.43,19.18 14.03,20 12,20z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/chat_selected_black_24.xml
Normal file
5
src/main/res/drawable/chat_selected_black_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:autoMirrored="true" android:height="24dp"
|
||||||
|
android:tint="#000000" android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM6,9h12v2L6,11L6,9zM14,14L6,14v-2h8v2zM18,8L6,8L6,6h12v2z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/chat_selected_white_24.xml
Normal file
5
src/main/res/drawable/chat_selected_white_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:autoMirrored="true" android:height="24dp"
|
||||||
|
android:tint="#FFFFFF" android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM6,9h12v2L6,11L6,9zM14,14L6,14v-2h8v2zM18,8L6,8L6,6h12v2z"/>
|
||||||
|
</vector>
|
6
src/main/res/drawable/ic_account_black_24dp.xml
Normal file
6
src/main/res/drawable/ic_account_black_24dp.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM7.35,18.5C8.66,17.56 10.26,17 12,17s3.34,0.56 4.65,1.5C15.34,19.44 13.74,20 12,20S8.66,19.44 7.35,18.5zM18.14,17.12L18.14,17.12C16.45,15.8 14.32,15 12,15s-4.45,0.8 -6.14,2.12l0,0C4.7,15.73 4,13.95 4,12c0,-4.42 3.58,-8 8,-8s8,3.58 8,8C20,13.95 19.3,15.73 18.14,17.12z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12,6c-1.93,0 -3.5,1.57 -3.5,3.5S10.07,13 12,13s3.5,-1.57 3.5,-3.5S13.93,6 12,6zM12,11c-0.83,0 -1.5,-0.67 -1.5,-1.5S11.17,8 12,8s1.5,0.67 1.5,1.5S12.83,11 12,11z"/>
|
||||||
|
</vector>
|
6
src/main/res/drawable/ic_account_white_24dp.xml
Normal file
6
src/main/res/drawable/ic_account_white_24dp.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM7.35,18.5C8.66,17.56 10.26,17 12,17s3.34,0.56 4.65,1.5C15.34,19.44 13.74,20 12,20S8.66,19.44 7.35,18.5zM18.14,17.12L18.14,17.12C16.45,15.8 14.32,15 12,15s-4.45,0.8 -6.14,2.12l0,0C4.7,15.73 4,13.95 4,12c0,-4.42 3.58,-8 8,-8s8,3.58 8,8C20,13.95 19.3,15.73 18.14,17.12z"/>
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M12,6c-1.93,0 -3.5,1.57 -3.5,3.5S10.07,13 12,13s3.5,-1.57 3.5,-3.5S13.93,6 12,6zM12,11c-0.83,0 -1.5,-0.67 -1.5,-1.5S11.17,8 12,8s1.5,0.67 1.5,1.5S12.83,11 12,11z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/ic_group_selected_black_24.xml
Normal file
5
src/main/res/drawable/ic_group_selected_black_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/ic_group_selected_white_24.xml
Normal file
5
src/main/res/drawable/ic_group_selected_white_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/outline_chat_black_24.xml
Normal file
5
src/main/res/drawable/outline_chat_black_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:autoMirrored="true" android:height="24dp"
|
||||||
|
android:tint="#000000" android:viewportHeight="960"
|
||||||
|
android:viewportWidth="960" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M240,560L560,560L560,480L240,480L240,560ZM240,440L720,440L720,360L240,360L240,440ZM240,320L720,320L720,240L240,240L240,320ZM80,880L80,160Q80,127 103.5,103.5Q127,80 160,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,640Q880,673 856.5,696.5Q833,720 800,720L240,720L80,880ZM206,640L800,640Q800,640 800,640Q800,640 800,640L800,160Q800,160 800,160Q800,160 800,160L160,160Q160,160 160,160Q160,160 160,160L160,685L206,640ZM160,640L160,640L160,160Q160,160 160,160Q160,160 160,160L160,160Q160,160 160,160Q160,160 160,160L160,640Q160,640 160,640Q160,640 160,640L160,640Z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/outline_chat_white_24.xml
Normal file
5
src/main/res/drawable/outline_chat_white_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:autoMirrored="true" android:height="24dp"
|
||||||
|
android:tint="#FFFFFF" android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M4,4h16v12L5.17,16L4,17.17L4,4m0,-2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2L4,2zM6,12h8v2L6,14v-2zM6,9h12v2L6,11L6,9zM6,6h12v2L6,8L6,6z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/outline_group_black_24dp.xml
Normal file
5
src/main/res/drawable/outline_group_black_24dp.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M9,13.75c-2.34,0 -7,1.17 -7,3.5L2,19h14v-1.75c0,-2.33 -4.66,-3.5 -7,-3.5zM4.34,17c0.84,-0.58 2.87,-1.25 4.66,-1.25s3.82,0.67 4.66,1.25L4.34,17zM9,12c1.93,0 3.5,-1.57 3.5,-3.5S10.93,5 9,5 5.5,6.57 5.5,8.5 7.07,12 9,12zM9,7c0.83,0 1.5,0.67 1.5,1.5S9.83,10 9,10s-1.5,-0.67 -1.5,-1.5S8.17,7 9,7zM16.04,13.81c1.16,0.84 1.96,1.96 1.96,3.44L18,19h4v-1.75c0,-2.02 -3.5,-3.17 -5.96,-3.44zM15,12c1.93,0 3.5,-1.57 3.5,-3.5S16.93,5 15,5c-0.54,0 -1.04,0.13 -1.5,0.35 0.63,0.89 1,1.98 1,3.15s-0.37,2.26 -1,3.15c0.46,0.22 0.96,0.35 1.5,0.35z"/>
|
||||||
|
</vector>
|
5
src/main/res/drawable/outline_group_white_24.xml
Normal file
5
src/main/res/drawable/outline_group_white_24.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<vector android:height="24dp" android:tint="#FFFFFF"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M9,13.75c-2.34,0 -7,1.17 -7,3.5L2,19h14v-1.75c0,-2.33 -4.66,-3.5 -7,-3.5zM4.34,17c0.84,-0.58 2.87,-1.25 4.66,-1.25s3.82,0.67 4.66,1.25L4.34,17zM9,12c1.93,0 3.5,-1.57 3.5,-3.5S10.93,5 9,5 5.5,6.57 5.5,8.5 7.07,12 9,12zM9,7c0.83,0 1.5,0.67 1.5,1.5S9.83,10 9,10s-1.5,-0.67 -1.5,-1.5S8.17,7 9,7zM16.04,13.81c1.16,0.84 1.96,1.96 1.96,3.44L18,19h4v-1.75c0,-2.02 -3.5,-3.17 -5.96,-3.44zM15,12c1.93,0 3.5,-1.57 3.5,-3.5S16.93,5 15,5c-0.54,0 -1.04,0.13 -1.5,0.35 0.63,0.89 1,1.98 1,3.15s-0.37,2.26 -1,3.15c0.46,0.22 0.96,0.35 1.5,0.35z"/>
|
||||||
|
</vector>
|
|
@ -1,14 +1,21 @@
|
||||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:layout_above="@id/bottom_navigation"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<include android:id="@+id/toolbar"
|
<include
|
||||||
|
android:id="@+id/toolbar"
|
||||||
layout="@layout/toolbar" />
|
layout="@layout/toolbar" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/main_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
@ -22,7 +29,21 @@
|
||||||
android:id="@+id/secondary_fragment"
|
android:id="@+id/secondary_fragment"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="1618"/>
|
android:layout_weight="1618"
|
||||||
|
android:layout_marginBottom="70dp" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||||
|
android:id="@+id/bottom_navigation"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/nav_bar_height"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:background="?attr/color_background_secondary"
|
||||||
|
app:labelVisibilityMode="labeled"
|
||||||
|
app:menu="@menu/bottom_navigation_menu_chat"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
</layout>
|
</layout>
|
|
@ -27,11 +27,17 @@
|
||||||
~ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
~ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
~ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
~ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
-->
|
-->
|
||||||
<layout xmlns:android="http://schemas.android.com/apk/res/android">
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:layout_above="@id/bottom_navigation"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<include android:id="@+id/toolbar"
|
<include android:id="@+id/toolbar"
|
||||||
|
@ -42,4 +48,16 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||||
|
android:id="@+id/bottom_navigation"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/nav_bar_height"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:background="?attr/color_background_secondary"
|
||||||
|
app:labelVisibilityMode="labeled"
|
||||||
|
app:menu="@menu/bottom_navigation_menu_chat"
|
||||||
|
android:state_checked="true"
|
||||||
|
android:visibility="gone" />
|
||||||
|
</RelativeLayout>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
|
@ -1,8 +1,16 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="fill_parent"
|
android:layout_height="fill_parent"
|
||||||
android:background="?attr/color_background_primary"
|
android:background="?attr/color_background_primary"
|
||||||
|
android:layout_above="@id/bottom_navigation"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<include layout="@layout/toolbar" />
|
<include layout="@layout/toolbar" />
|
||||||
|
@ -16,3 +24,13 @@
|
||||||
</ListView>
|
</ListView>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||||
|
android:id="@+id/bottom_navigation"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/nav_bar_height"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:background="?attr/color_background_secondary"
|
||||||
|
app:labelVisibilityMode="labeled"
|
||||||
|
app:menu="@menu/bottom_navigation_menu_accounts" />
|
||||||
|
</RelativeLayout>
|
|
@ -5,6 +5,10 @@
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_above="@id/bottom_navigation">
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/toolbar"
|
android:id="@+id/toolbar"
|
||||||
|
@ -56,4 +60,14 @@
|
||||||
app:sdOverlayLayout="@id/overlay"
|
app:sdOverlayLayout="@id/overlay"
|
||||||
app:sdUseReverseAnimationOnClose="true" />
|
app:sdUseReverseAnimationOnClose="true" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||||
|
android:id="@+id/bottom_navigation"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/nav_bar_height"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:background="?attr/color_background_secondary"
|
||||||
|
app:labelVisibilityMode="labeled"
|
||||||
|
app:menu="@menu/bottom_navigation_menu_contacts" />
|
||||||
|
</RelativeLayout>
|
||||||
</layout>
|
</layout>
|
||||||
|
|
15
src/main/res/menu/bottom_navigation_menu_accounts.xml
Normal file
15
src/main/res/menu/bottom_navigation_menu_accounts.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:id="@+id/chats"
|
||||||
|
android:icon="?attr/ic_chat_unselected"
|
||||||
|
android:title="@string/chats"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/contactslist"
|
||||||
|
android:icon="?attr/ic_group_unselected"
|
||||||
|
android:title="@string/contacts"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/manageaccounts"
|
||||||
|
android:icon="?attr/ic_accounts_selected"
|
||||||
|
android:title="@string/accounts"/>
|
||||||
|
</menu>
|
15
src/main/res/menu/bottom_navigation_menu_chat.xml
Normal file
15
src/main/res/menu/bottom_navigation_menu_chat.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:id="@+id/chats"
|
||||||
|
android:icon="?attr/ic_chat_selected"
|
||||||
|
android:title="@string/chats"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/contactslist"
|
||||||
|
android:icon="?attr/ic_group_unselected"
|
||||||
|
android:title="@string/contacts"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/manageaccounts"
|
||||||
|
android:icon="?attr/ic_account"
|
||||||
|
android:title="@string/accounts"/>
|
||||||
|
</menu>
|
15
src/main/res/menu/bottom_navigation_menu_contacts.xml
Normal file
15
src/main/res/menu/bottom_navigation_menu_contacts.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:id="@+id/chats"
|
||||||
|
android:icon="?attr/ic_chat_unselected"
|
||||||
|
android:title="@string/chats"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/contactslist"
|
||||||
|
android:icon="?attr/ic_group_selected"
|
||||||
|
android:title="@string/contacts"/>
|
||||||
|
<item
|
||||||
|
android:id="@+id/manageaccounts"
|
||||||
|
android:icon="?attr/ic_account"
|
||||||
|
android:title="@string/accounts"/>
|
||||||
|
</menu>
|
|
@ -124,6 +124,13 @@
|
||||||
<attr name="icon_notifications_none" format="reference" />
|
<attr name="icon_notifications_none" format="reference" />
|
||||||
<attr name="icon_pinned_on_top" format="reference" />
|
<attr name="icon_pinned_on_top" format="reference" />
|
||||||
|
|
||||||
|
<attr name="ic_chat_unselected" format="reference" />
|
||||||
|
<attr name="ic_chat_selected" format="reference" />
|
||||||
|
<attr name="ic_account" format="reference" />
|
||||||
|
<attr name="ic_accounts_selected" format="reference" />
|
||||||
|
<attr name="ic_group_unselected" format="reference" />
|
||||||
|
<attr name="ic_group_selected" format="reference" />
|
||||||
|
|
||||||
<attr name="dialog_horizontal_padding" format="dimension" />
|
<attr name="dialog_horizontal_padding" format="dimension" />
|
||||||
<attr name="dialog_vertical_padding" format="dimension" />
|
<attr name="dialog_vertical_padding" format="dimension" />
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
<integer name="auto_accept_filesize">524288</integer>
|
<integer name="auto_accept_filesize">524288</integer>
|
||||||
<string name="picture_compression">auto</string>
|
<string name="picture_compression">auto</string>
|
||||||
<bool name="use_green_background">true</bool>
|
<bool name="use_green_background">true</bool>
|
||||||
|
<bool name="show_nav_bar">false</bool>
|
||||||
<string name="quick_action">recent</string>
|
<string name="quick_action">recent</string>
|
||||||
<bool name="show_dynamic_tags">false</bool>
|
<bool name="show_dynamic_tags">false</bool>
|
||||||
<bool name="group_by_tags">false</bool>
|
<bool name="group_by_tags">false</bool>
|
||||||
|
|
|
@ -56,6 +56,7 @@
|
||||||
<dimen name="bottom_filters_height_with_margin">98dp</dimen>
|
<dimen name="bottom_filters_height_with_margin">98dp</dimen>
|
||||||
<dimen name="bottom_editor_actions_shadow_height">180dp</dimen>
|
<dimen name="bottom_editor_actions_shadow_height">180dp</dimen>
|
||||||
<dimen name="full_brush_size">40dp</dimen>
|
<dimen name="full_brush_size">40dp</dimen>
|
||||||
|
<dimen name="nav_bar_height">56dp</dimen>
|
||||||
|
|
||||||
<dimen name="one_dp">1dp</dimen>
|
<dimen name="one_dp">1dp</dimen>
|
||||||
<dimen name="tiny_margin">2dp</dimen>
|
<dimen name="tiny_margin">2dp</dimen>
|
||||||
|
|
|
@ -597,6 +597,8 @@
|
||||||
<string name="pref_theme_automatic">Automatic</string>
|
<string name="pref_theme_automatic">Automatic</string>
|
||||||
<string name="pref_theme_light">Light</string>
|
<string name="pref_theme_light">Light</string>
|
||||||
<string name="pref_theme_dark">Dark</string>
|
<string name="pref_theme_dark">Dark</string>
|
||||||
|
<string name="pref_show_navigation_bar">Show navigation bar</string>
|
||||||
|
<string name="pref_show_navigation_bar_summary">Use alternative navigation way via navigation bar on the bottom of the screen</string>
|
||||||
<string name="pref_use_green_background">Green Background</string>
|
<string name="pref_use_green_background">Green Background</string>
|
||||||
<string name="pref_use_green_background_summary">Use green background for received messages</string>
|
<string name="pref_use_green_background_summary">Use green background for received messages</string>
|
||||||
<string name="pref_always_show_full_timestamps">Show full timestamps</string>
|
<string name="pref_always_show_full_timestamps">Show full timestamps</string>
|
||||||
|
@ -1086,4 +1088,6 @@
|
||||||
<string name="contact_tag_with_total">%1$s (%2$d)</string>
|
<string name="contact_tag_with_total">%1$s (%2$d)</string>
|
||||||
<string name="refresh_feature_discovery">Refresh Feature Discovery</string>
|
<string name="refresh_feature_discovery">Refresh Feature Discovery</string>
|
||||||
<string name="retract_message_alert_title">Do you really want to retract this message?</string>
|
<string name="retract_message_alert_title">Do you really want to retract this message?</string>
|
||||||
|
<string name="chats">Chats</string>
|
||||||
|
<string name="accounts">Accounts</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -143,6 +143,13 @@
|
||||||
<item name="icon_copy_bar" type="reference">@drawable/ic_content_copy_white_24dp</item>
|
<item name="icon_copy_bar" type="reference">@drawable/ic_content_copy_white_24dp</item>
|
||||||
<item name="icon_copy_bar_small" type="reference">@drawable/content_copy_12dp</item>
|
<item name="icon_copy_bar_small" type="reference">@drawable/content_copy_12dp</item>
|
||||||
|
|
||||||
|
<item name="ic_chat_unselected" type="reference">@drawable/outline_chat_black_24</item>
|
||||||
|
<item name="ic_chat_selected" type="reference">@drawable/chat_selected_black_24</item>
|
||||||
|
<item name="ic_account" type="reference">@drawable/ic_account_black_24dp</item>
|
||||||
|
<item name="ic_accounts_selected" type="reference">@drawable/accounts_selected_black_24</item>
|
||||||
|
<item name="ic_group_unselected" type="reference">@drawable/outline_group_black_24dp</item>
|
||||||
|
<item name="ic_group_selected" type="reference">@drawable/ic_group_selected_black_24</item>
|
||||||
|
|
||||||
<item name="icon_notifications" type="reference">@drawable/ic_notifications_black_24dp
|
<item name="icon_notifications" type="reference">@drawable/ic_notifications_black_24dp
|
||||||
</item>
|
</item>
|
||||||
<item name="icon_notifications_off" type="reference">
|
<item name="icon_notifications_off" type="reference">
|
||||||
|
@ -310,6 +317,13 @@
|
||||||
<item name="icon_copy_bar" type="reference">@drawable/ic_content_copy_white_24dp</item>
|
<item name="icon_copy_bar" type="reference">@drawable/ic_content_copy_white_24dp</item>
|
||||||
<item name="icon_copy_bar_small" type="reference">@drawable/content_copy_12dp_white</item>
|
<item name="icon_copy_bar_small" type="reference">@drawable/content_copy_12dp_white</item>
|
||||||
|
|
||||||
|
<item name="ic_chat_unselected" type="reference">@drawable/outline_chat_white_24</item>
|
||||||
|
<item name="ic_chat_selected" type="reference">@drawable/chat_selected_white_24</item>
|
||||||
|
<item name="ic_account" type="reference">@drawable/ic_account_white_24dp</item>
|
||||||
|
<item name="ic_accounts_selected" type="reference">@drawable/accounts_selected_white_24</item>
|
||||||
|
<item name="ic_group_unselected" type="reference">@drawable/outline_group_white_24</item>
|
||||||
|
<item name="ic_group_selected" type="reference">@drawable/ic_group_selected_white_24</item>
|
||||||
|
|
||||||
<item name="icon_notifications" type="reference">@drawable/ic_notifications_white_24dp
|
<item name="icon_notifications" type="reference">@drawable/ic_notifications_white_24dp
|
||||||
</item>
|
</item>
|
||||||
<item name="icon_notifications_off" type="reference">
|
<item name="icon_notifications_off" type="reference">
|
||||||
|
|
|
@ -178,6 +178,11 @@
|
||||||
android:title="@string/pref_accept_all_files_if_wifi" />
|
android:title="@string/pref_accept_all_files_if_wifi" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory android:title="@string/pref_ui_options">
|
<PreferenceCategory android:title="@string/pref_ui_options">
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="@bool/show_nav_bar"
|
||||||
|
android:key="show_nav_bar"
|
||||||
|
android:summary="@string/pref_show_navigation_bar_summary"
|
||||||
|
android:title="@string/pref_show_navigation_bar" />
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="@bool/use_green_background"
|
android:defaultValue="@bool/use_green_background"
|
||||||
android:key="use_green_background"
|
android:key="use_green_background"
|
||||||
|
|
Loading…
Reference in a new issue