misp-bump/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java

130 lines
4.2 KiB
Java
Raw Normal View History

2019-05-29 14:52:00 +02:00
package lu.circl.mispbump.activities;
2019-05-27 16:06:07 +02:00
2019-07-24 12:16:51 +02:00
2019-05-27 16:06:07 +02:00
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityOptionsCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
2019-05-27 16:06:07 +02:00
2019-06-04 20:48:24 +02:00
import java.util.List;
2019-05-29 14:52:00 +02:00
import lu.circl.mispbump.R;
2019-06-19 17:24:00 +02:00
import lu.circl.mispbump.adapters.UploadInfoAdapter;
2019-05-27 16:06:07 +02:00
import lu.circl.mispbump.auxiliary.PreferenceManager;
2019-06-19 17:24:00 +02:00
import lu.circl.mispbump.interfaces.OnRecyclerItemClickListener;
2019-06-04 20:48:24 +02:00
import lu.circl.mispbump.models.UploadInformation;
2019-05-27 16:06:07 +02:00
2019-07-24 12:16:51 +02:00
2019-05-27 16:06:07 +02:00
public class HomeActivity extends AppCompatActivity {
private List<UploadInformation> uploadInformationList;
private PreferenceManager preferenceManager;
2019-06-19 17:24:00 +02:00
private RecyclerView recyclerView;
private UploadInfoAdapter uploadInfoAdapter;
private TextView emptyRecyclerView;
2019-06-04 20:48:24 +02:00
2019-05-27 16:06:07 +02:00
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
2019-06-04 20:48:24 +02:00
preferenceManager = PreferenceManager.getInstance(this);
initViews();
2019-06-19 17:24:00 +02:00
initRecyclerView();
2019-06-11 14:52:41 +02:00
}
2019-05-27 16:06:07 +02:00
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
2019-05-27 16:06:07 +02:00
@Override
public boolean onOptionsItemSelected(MenuItem item) {
2019-07-23 23:04:07 +02:00
if (item.getItemId() == R.id.menu_settings) {
startActivity(new Intent(HomeActivity.this, PreferenceActivity.class));
return true;
}
if (item.getItemId() == R.id.menu_profile) {
startActivity(new Intent(HomeActivity.this, ProfileActivity.class));
return true;
}
// invoke superclass to handle unrecognized item (eg. homeAsUp)
return super.onOptionsItemSelected(item);
}
@Override
protected void onResume() {
super.onResume();
Log.d("DEBUG", "onResume()");
refreshRecyclerView();
}
private void initViews() {
emptyRecyclerView = findViewById(R.id.empty);
2019-05-27 16:06:07 +02:00
2019-06-11 14:52:41 +02:00
Toolbar myToolbar = findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
2019-05-27 16:06:07 +02:00
FloatingActionButton syncFab = findViewById(R.id.home_fab);
syncFab.setOnClickListener(new View.OnClickListener() {
2019-06-19 17:24:00 +02:00
@Override
public void onClick(View v) {
startActivity(new Intent(HomeActivity.this, ExchangeActivity.class));
2019-06-19 17:24:00 +02:00
}
});
}
private void initRecyclerView() {
2019-06-11 14:52:41 +02:00
recyclerView = findViewById(R.id.recyclerView);
2019-06-19 17:24:00 +02:00
recyclerView.setLayoutManager(new LinearLayoutManager(HomeActivity.this));
uploadInfoAdapter = new UploadInfoAdapter(HomeActivity.this);
uploadInfoAdapter.setOnRecyclerPositionClickListener(onRecyclerItemClickListener());
2019-06-19 17:24:00 +02:00
recyclerView.setAdapter(uploadInfoAdapter);
2019-06-04 20:48:24 +02:00
}
2019-06-19 17:24:00 +02:00
private void refreshRecyclerView() {
uploadInformationList = preferenceManager.getUploadInformationList();
2019-05-27 16:06:07 +02:00
if (uploadInformationList.isEmpty()) {
emptyRecyclerView.setVisibility(View.VISIBLE);
2019-06-11 14:52:41 +02:00
recyclerView.setVisibility(View.GONE);
} else {
emptyRecyclerView.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
uploadInfoAdapter.setItems(uploadInformationList);
2019-06-11 14:52:41 +02:00
}
2019-06-19 17:24:00 +02:00
}
private OnRecyclerItemClickListener<Integer> onRecyclerItemClickListener() {
return new OnRecyclerItemClickListener<Integer>() {
@Override
public void onClick(View v, Integer index) {
Intent i = new Intent(HomeActivity.this, UploadInfoActivity.class);
i.putExtra(UploadInfoActivity.EXTRA_UPLOAD_INFO_UUID, uploadInformationList.get(index).getUuid());
2019-06-11 14:52:41 +02:00
ActivityOptionsCompat options = ActivityOptionsCompat.makeClipRevealAnimation(v.findViewById(R.id.rootLayout), (int) v.getX(), (int) v.getY(), v.getWidth(), v.getHeight());
startActivity(i, options.toBundle());
}
};
2019-06-04 20:48:24 +02:00
}
2019-05-27 16:06:07 +02:00
}