Skip to content

Commit

Permalink
Make nav header display functional
Browse files Browse the repository at this point in the history
  • Loading branch information
teccheck committed May 5, 2021
1 parent 5157a85 commit 5c118b6
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
Expand All @@ -27,6 +26,7 @@
import java.util.List;

import io.github.storagereloaded.android.R;
import io.github.storagereloaded.android.db.entity.DatabaseEntity;
import io.github.storagereloaded.android.db.entity.ItemEntity;
import io.github.storagereloaded.android.viewmodel.DatabaseViewModel;

Expand All @@ -35,6 +35,8 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
Toolbar toolbar;
DrawerLayout drawer;
LinearLayout noDatabaseLayout;
TextView navHeaderTitle;
TextView navHeaderSubtitle;
RecyclerView recyclerView;
RecyclerTestAdapter adapter;
int databaseId = -1;
Expand All @@ -53,6 +55,10 @@ protected void onCreate(Bundle savedInstanceState) {
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

View navHeader = navigationView.getHeaderView(0);
navHeaderTitle = navHeader.findViewById(R.id.nav_header_database_title);
navHeaderSubtitle = navHeader.findViewById(R.id.nav_header_database_subtitle);

recyclerView = findViewById(R.id.item_list);
adapter = new MainActivity.RecyclerTestAdapter((index, itemId) -> {
Intent intent = new Intent(this, ItemViewActivity.class);
Expand Down Expand Up @@ -87,25 +93,16 @@ protected void onResume() {
// If onActivityResult delivered a databaseId
if (this.databaseId != -1) {
viewModel.setDatabaseId(this.databaseId);
viewModel.getDatabase().observe(this, databaseEntity -> {
if (databaseEntity != null) {
toolbar.setTitle(databaseEntity.getName());
}
});

viewModel.getItems().observe(this, items -> {
if (items != null)
adapter.setItems(items);
});

viewModel.getDatabase().observe(this, this::displayDatabase);
viewModel.getItems().observe(this, this::displayItems);
return;
}

// Get the first available database if none was selected
viewModel.getDatabases().observe(this, databases -> {
if (databases != null) {

if(databases.isEmpty()){
if (databases.isEmpty()) {
// Show the "no database" text and button
recyclerView.setVisibility(View.GONE);
noDatabaseLayout.setVisibility(View.VISIBLE);
Expand All @@ -117,20 +114,30 @@ protected void onResume() {

int databaseId = databases.get(0).getId();
viewModel.setDatabaseId(databaseId);
viewModel.getDatabase().observe(this, databaseEntity -> {
if (databaseEntity != null) {
toolbar.setTitle(databaseEntity.getName());
}
});

viewModel.getItems().observe(this, items -> {
if (items != null)
adapter.setItems(items);
});
viewModel.getDatabase().observe(this, this::displayDatabase);
viewModel.getItems().observe(this, this::displayItems);
}
});
}

private void displayDatabase(DatabaseEntity databaseEntity) {
if (databaseEntity != null) {
toolbar.setTitle(databaseEntity.getName());
navHeaderTitle.setText(databaseEntity.getName());
} else {
navHeaderTitle.setText("");
}
}

private void displayItems(List<ItemEntity> items) {
if (items != null) {
adapter.setItems(items);
navHeaderSubtitle.setText(getString(R.string.nav_header_subtitle, items.size()));
} else {
navHeaderSubtitle.setText("");
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<string name="nav_header_app">StoRe</string>
<string name="nav_header_server">Server Adresse</string>
<string name="nav_header_title">Ausgewählte Datenbank</string>
<string name="nav_header_subtitle">128 Einträge</string>
<string name="nav_header_subtitle">%1$d Einträge</string>
<string name="nav_header_desc">Navigation header</string>

<string name="nav_database">Datenbank</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<string name="nav_header_app">StoRe</string>
<string name="nav_header_server">Server Address</string>
<string name="nav_header_title">Selected Database</string>
<string name="nav_header_subtitle">128 Entries</string>
<string name="nav_header_subtitle">%1$d Entries</string>
<string name="nav_header_desc">Navigation header</string>

<string name="nav_database">Database</string>
Expand Down

0 comments on commit 5c118b6

Please sign in to comment.