Simplified data log manager using radio button to select and deselect different parts of the UI

This commit is contained in:
Graham Jones
2022-02-05 22:31:28 +00:00
parent 4fb83d04c9
commit b53e646cb5
4 changed files with 243 additions and 62 deletions

View File

@@ -6,18 +6,25 @@ import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.IBinder;
import android.support.v4.view.MenuCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewConfiguration;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.SimpleAdapter;
import android.widget.TextView;
@@ -25,6 +32,7 @@ import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -42,6 +50,11 @@ public class LogManagerControlActivity extends AppCompatActivity {
private Integer mUiTimerPeriodFast = 2000; // 2 seconds - we use fast updating while UI is blank and we are waiting for first data
private Integer mUiTimerPeriodSlow = 60000; // 60 seconds - once data has been received and UI populated we only update once per minute.
private Integer UI_MODE_LOCAL = 0;
private Integer UI_MODE_SHARED = 1;
private Integer mUiMode = UI_MODE_SHARED;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.v(TAG, "onCreate()");
@@ -52,15 +65,34 @@ public class LogManagerControlActivity extends AppCompatActivity {
setContentView(R.layout.activity_log_manager_control);
/* Force display of overflow menu - from stackoverflow
* "how to force use of..."
*/
try {
Log.v(TAG, "trying menubar fiddle...");
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField =
ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
Log.v(TAG, "menuKeyField is not null - configuring....");
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
} else {
Log.v(TAG, "menuKeyField is null - doing nothing...");
}
} catch (Exception e) {
Log.v(TAG, "menubar fiddle exception: " + e.toString());
}
Button authBtn =
(Button) findViewById(R.id.auth_button);
authBtn.setOnClickListener(onAuth);
Button pruneBtn =
(Button) findViewById(R.id.pruneDatabaseBtn);
pruneBtn.setOnClickListener(onPruneBtn);
Button reportSeizureBtn =
(Button) findViewById(R.id.reportSeizureBtn);
reportSeizureBtn.setOnClickListener(onReportSeizureBtn);
//Button pruneBtn =
// (Button) findViewById(R.id.pruneDatabaseBtn);
//pruneBtn.setOnClickListener(onPruneBtn);
//Button reportSeizureBtn =
// (Button) findViewById(R.id.reportSeizureBtn);
//reportSeizureBtn.setOnClickListener(onReportSeizureBtn);
Button remoteDbBtn =
(Button) findViewById(R.id.refresh_button);
remoteDbBtn.setOnClickListener(onRefreshBtn);
@@ -72,6 +104,18 @@ public class LogManagerControlActivity extends AppCompatActivity {
lv.setOnItemClickListener(onRemoteEventListClick);
}
/**
* Create Action Bar
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Log.i(TAG, "onCreateOptionsMenu()");
getMenuInflater().inflate(R.menu.log_manager_activity_menu, menu);
MenuCompat.setGroupDividerEnabled(menu, true);
return true;
}
@Override
protected void onStart() {
Log.v(TAG, "onStart()");
@@ -254,6 +298,79 @@ public class LogManagerControlActivity extends AppCompatActivity {
}
} //updateUi();
public void onRadioButtonClicked(View view) {
LinearLayout localDataLl = (LinearLayout) findViewById(R.id.local_data_ll);;
LinearLayout sharedDataLl = (LinearLayout) findViewById(R.id.shared_data_ll);;;
// Is the button now checked?
boolean checked = ((RadioButton) view).isChecked();
// Check which radio button was clicked
switch(view.getId()) {
case R.id.local_data_rb:
if (checked) {
// Switch to the local data view
localDataLl.setVisibility(View.VISIBLE);
sharedDataLl.setVisibility(View.GONE);
}
break;
case R.id.shared_data_rb:
if (checked) {
// Switch to the local data view
localDataLl.setVisibility(View.GONE);
sharedDataLl.setVisibility(View.VISIBLE);
}
break;
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Log.i(TAG, "onOptionsItemSelected() : " + item.getItemId() + " selected");
switch (item.getItemId()) {
case R.id.action_authenticate_api:
Log.i(TAG, "action_autheticate_api");
try {
Intent i = new Intent(
getApplicationContext(),
AuthenticateActivity.class);
this.startActivity(i);
} catch (Exception ex) {
Log.i(TAG, "exception starting export activity " + ex.toString());
}
return true;
case R.id.pruneDatabaseMenuItem:
Log.i(TAG, "action_pruneDatabase");
onPruneBtn.onClick(null);
return true;
case R.id.action_report_seizure:
Log.i(TAG, "action_report_seizure");
try {
Intent intent = new Intent(
getApplicationContext(),
ReportSeizureActivity.class);
this.startActivity(intent);
} catch (Exception ex) {
Log.i(TAG, "exception starting Report Seizure activity " + ex.toString());
}
return true;
case R.id.action_settings:
Log.i(TAG, "action_settings");
try {
Intent prefsIntent = new Intent(
getApplicationContext(),
PrefActivity.class);
this.startActivity(prefsIntent);
} catch (Exception ex) {
Log.i(TAG, "exception starting settings activity " + ex.toString());
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
View.OnClickListener onAuth =
new View.OnClickListener() {