Aegis/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java

100 lines
3.1 KiB
Java
Raw Normal View History

package com.beemdevelopment.aegis.ui;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
2020-08-13 18:16:23 +02:00
import android.view.View;
import com.beemdevelopment.aegis.R;
import com.beemdevelopment.aegis.ui.views.GroupAdapter;
import java.text.Collator;
import java.util.ArrayList;
import java.util.TreeSet;
2018-12-16 23:08:53 +01:00
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public class GroupManagerActivity extends AegisActivity implements GroupAdapter.Listener {
private GroupAdapter _adapter;
private TreeSet<String> _groups;
2020-08-13 18:16:23 +02:00
private RecyclerView _slotsView;
private View _emptyStateView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_groups);
Intent intent = getIntent();
_groups = new TreeSet<>(Collator.getInstance());
_groups.addAll(intent.getStringArrayListExtra("groups"));
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
// set up the recycler view
_adapter = new GroupAdapter(this);
2020-08-13 18:16:23 +02:00
_slotsView= findViewById(R.id.list_slots);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
2020-08-13 18:16:23 +02:00
_slotsView.setLayoutManager(layoutManager);
_slotsView.setAdapter(_adapter);
_slotsView.setNestedScrollingEnabled(false);
for (String group : _groups) {
_adapter.addGroup(group);
}
2020-08-13 18:16:23 +02:00
_emptyStateView = findViewById(R.id.vEmptyList);
updateEmptyState();
}
private void updateEmptyState() {
if (_adapter.getItemCount() > 0) {
_slotsView.setVisibility(View.VISIBLE);
_emptyStateView.setVisibility(View.GONE);
} else {
_slotsView.setVisibility(View.GONE);
_emptyStateView.setVisibility(View.VISIBLE);
}
}
@Override
public void onRemoveGroup(String group) {
2018-12-16 23:08:53 +01:00
Dialogs.showSecureDialog(new AlertDialog.Builder(this)
.setTitle(R.string.remove_group)
.setMessage(R.string.remove_group_description)
.setPositiveButton(android.R.string.yes, (dialog, whichButton) -> {
_groups.remove(group);
2018-12-16 23:08:53 +01:00
_adapter.removeGroup(group);
2020-08-13 18:16:23 +02:00
updateEmptyState();
2018-12-16 23:08:53 +01:00
})
.setNegativeButton(android.R.string.no, null)
.create());
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("groups", new ArrayList<>(_groups));
setResult(RESULT_OK, intent);
finish();
}
}