package com.xabber.android.ui.activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.xabber.android.R;
import com.xabber.android.data.log.LogManager;
import com.xabber.android.ui.adapter.LogFilesAdapter;
import com.xabber.android.ui.color.BarPainter;
import com.xabber.android.ui.helper.ToolbarHelper;
public class LogActivity extends ManagedActivity implements Toolbar.OnMenuItemClickListener {
public static final int LOG_MENU = R.menu.toolbar_log;
RecyclerView recyclerView;
private LogFilesAdapter logFilesAdapter;
public static Intent createIntent(Context context) {
return new Intent(context, LogActivity.class);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log);
Toolbar toolbar = ToolbarHelper.setUpDefaultToolbar(this, getString(R.string.debug_log_files_activity_title));
BarPainter barPainter = new BarPainter(this, toolbar);
barPainter.setDefaultColor();
toolbar.inflateMenu(LOG_MENU);
toolbar.setOnMenuItemClickListener(this);
recyclerView = (RecyclerView) findViewById(R.id.activity_log_recycler_view);
logFilesAdapter = new LogFilesAdapter();
recyclerView.setAdapter(logFilesAdapter);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);
updateFileList(logFilesAdapter);
}
private void updateFileList(LogFilesAdapter logFilesAdapter) {
logFilesAdapter.setFiles(LogManager.getLogFiles());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater=getMenuInflater();
inflater.inflate(LOG_MENU, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_clear_log:
new AlertDialog.Builder(this)
.setTitle("Clear old logs")
.setMessage("Are you sure you want to delete all old log file (current log file will remain)?")
.setPositiveButton("Clear", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
clearLog();
updateFileList(logFilesAdapter);
}
})
.setNegativeButton(android.R.string.cancel, null)
.show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private void clearLog() {
LogManager.clearLogs();
}
@Override
public boolean onMenuItemClick(MenuItem item) {
return onOptionsItemSelected(item);
}
}