Major UI and UX update
This commit is contained in:
@@ -14,6 +14,7 @@ import android.text.format.Time;
|
|||||||
|
|
||||||
public class FragmentCommon extends FragmentOsdBaseClass {
|
public class FragmentCommon extends FragmentOsdBaseClass {
|
||||||
String TAG = "FragmentCommon";
|
String TAG = "FragmentCommon";
|
||||||
|
private long mUiAlarmStartMillis = 0;
|
||||||
|
|
||||||
public FragmentCommon() {
|
public FragmentCommon() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
@@ -79,6 +80,13 @@ public class FragmentCommon extends FragmentOsdBaseClass {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
private String formatDuration(long elapsedMillis) {
|
||||||
|
long totalSeconds = elapsedMillis / 1000;
|
||||||
|
long minutes = totalSeconds / 60;
|
||||||
|
long seconds = totalSeconds % 60;
|
||||||
|
|
||||||
|
return String.format("%02d:%02d", minutes, seconds);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void updateUi() {
|
protected void updateUi() {
|
||||||
@@ -107,10 +115,23 @@ public class FragmentCommon extends FragmentOsdBaseClass {
|
|||||||
|
|
||||||
|
|
||||||
tv = (TextView) mRootView.findViewById(R.id.alarmTv);
|
tv = (TextView) mRootView.findViewById(R.id.alarmTv);
|
||||||
|
TextView durationTv = (TextView) mRootView.findViewById(R.id.seizureDurationTv);
|
||||||
|
|
||||||
|
boolean seizureAlarmActive = mConnection.mSdServer.mSdData.alarmStanding;
|
||||||
|
boolean fallAlarmActive = mConnection.mSdServer.mSdData.fallAlarmStanding;
|
||||||
|
|
||||||
|
if (!seizureAlarmActive && !fallAlarmActive) {
|
||||||
|
mUiAlarmStartMillis = 0;
|
||||||
|
if (durationTv != null) {
|
||||||
|
durationTv.setVisibility(View.GONE);
|
||||||
|
durationTv.setText("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((mConnection.mSdServer.mSdData.alarmState == 0)
|
if ((mConnection.mSdServer.mSdData.alarmState == 0)
|
||||||
&& !mConnection.mSdServer.mSdData.alarmStanding
|
&& !seizureAlarmActive
|
||||||
&& !mConnection.mSdServer.mSdData.fallAlarmStanding) {
|
&& !fallAlarmActive) {
|
||||||
tv.setText(getString(R.string.okBtnTxt));
|
tv.setText("Monitoring active");
|
||||||
tv.setBackgroundColor(okColour);
|
tv.setBackgroundColor(okColour);
|
||||||
tv.setTextColor(okTextColour);
|
tv.setTextColor(okTextColour);
|
||||||
}
|
}
|
||||||
@@ -126,13 +147,25 @@ public class FragmentCommon extends FragmentOsdBaseClass {
|
|||||||
tv.setBackgroundColor(warnColour);
|
tv.setBackgroundColor(warnColour);
|
||||||
tv.setTextColor(warnTextColour);
|
tv.setTextColor(warnTextColour);
|
||||||
}
|
}
|
||||||
if (mConnection.mSdServer.mSdData.alarmStanding) {
|
if (seizureAlarmActive) {
|
||||||
tv.setText(getString(R.string.Alarm) + "\n" + mConnection.mSdServer.mSdData.alarmCause);
|
if (mUiAlarmStartMillis == 0) {
|
||||||
|
mUiAlarmStartMillis = System.currentTimeMillis();
|
||||||
|
}
|
||||||
|
|
||||||
|
tv.setText("SEIZURE DETECTED");
|
||||||
tv.setBackgroundColor(alarmColour);
|
tv.setBackgroundColor(alarmColour);
|
||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
|
|
||||||
|
if (durationTv != null) {
|
||||||
|
long elapsedMillis = System.currentTimeMillis() - mUiAlarmStartMillis;
|
||||||
|
durationTv.setText("Seizure duration: " + formatDuration(elapsedMillis));
|
||||||
|
durationTv.setVisibility(View.VISIBLE);
|
||||||
|
durationTv.setBackgroundColor(alarmColour);
|
||||||
|
durationTv.setTextColor(alarmTextColour);
|
||||||
}
|
}
|
||||||
if (mConnection.mSdServer.mSdData.fallAlarmStanding) {
|
}
|
||||||
tv.setText(R.string.Fall);
|
if (fallAlarmActive) {
|
||||||
|
tv.setText("FALL DETECTED");
|
||||||
tv.setBackgroundColor(alarmColour);
|
tv.setBackgroundColor(alarmColour);
|
||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,6 +89,33 @@ public class FragmentOsdAlg extends FragmentOsdBaseClass {
|
|||||||
pbDrawable = mContext.getDrawable(R.drawable.progress_bar_red);
|
pbDrawable = mContext.getDrawable(R.drawable.progress_bar_red);
|
||||||
pb.setProgressDrawable(pbDrawable);
|
pb.setProgressDrawable(pbDrawable);
|
||||||
|
|
||||||
|
TextView currentHrTv = (TextView) mRootView.findViewById(R.id.osd_current_hr_tv);
|
||||||
|
TextView avgHrTv = (TextView) mRootView.findViewById(R.id.osd_avg_hr_tv);
|
||||||
|
TextView hrStatusTv = (TextView) mRootView.findViewById(R.id.osd_hr_status_tv);
|
||||||
|
|
||||||
|
if (currentHrTv != null && avgHrTv != null && hrStatusTv != null) {
|
||||||
|
short currentHr = (short) mConnection.mSdServer.mSdData.mHR;
|
||||||
|
short avgHr = (short) mConnection.mSdServer.mSdData.mAdaptiveHrAverage;
|
||||||
|
|
||||||
|
if (currentHr > 0) {
|
||||||
|
currentHrTv.setText(currentHr + " bpm");
|
||||||
|
avgHrTv.setText(avgHr + " bpm");
|
||||||
|
|
||||||
|
if (mConnection.mSdServer.mSdData.mAdaptiveHrAlarmStanding) {
|
||||||
|
hrStatusTv.setText("Heart-rate alarm active");
|
||||||
|
hrStatusTv.setTextColor(Color.RED);
|
||||||
|
} else {
|
||||||
|
hrStatusTv.setText("Heart rate normal");
|
||||||
|
hrStatusTv.setTextColor(Color.WHITE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
currentHrTv.setText("-- bpm");
|
||||||
|
avgHrTv.setText("Avg --");
|
||||||
|
hrStatusTv.setText("Waiting for heart-rate data");
|
||||||
|
hrStatusTv.setTextColor(Color.GRAY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
((TextView) mRootView.findViewById(R.id.spectrumTv)).setText(getString(R.string.SpectrumRatioEquals) + specRatio +
|
((TextView) mRootView.findViewById(R.id.spectrumTv)).setText(getString(R.string.SpectrumRatioEquals) + specRatio +
|
||||||
" (" + getString(R.string.Threshold) + "=" + mConnection.mSdServer.mSdData.alarmRatioThresh + ")");
|
" (" + getString(R.string.Threshold) + "=" + mConnection.mSdServer.mSdData.alarmRatioThresh + ")");
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ import androidx.fragment.app.Fragment;
|
|||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||||
import androidx.viewpager2.widget.ViewPager2;
|
import androidx.viewpager2.widget.ViewPager2;
|
||||||
|
import androidx.appcompat.app.ActionBar;
|
||||||
|
import android.view.Gravity;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
@@ -87,6 +89,27 @@ public class MainActivity2 extends AppCompatActivity {
|
|||||||
mUtil.writeToSysLogFile("MainActivity2.onCreate()");
|
mUtil.writeToSysLogFile("MainActivity2.onCreate()");
|
||||||
mContext = this;
|
mContext = this;
|
||||||
mHandler = new Handler();
|
mHandler = new Handler();
|
||||||
|
|
||||||
|
ActionBar actionBar = getSupportActionBar();
|
||||||
|
if (actionBar != null) {
|
||||||
|
TextView title = new TextView(this);
|
||||||
|
title.setText("FLOGA");
|
||||||
|
title.setTextColor(Color.BLACK);
|
||||||
|
title.setTextSize(22);
|
||||||
|
title.setGravity(Gravity.CENTER);
|
||||||
|
title.setPadding(48, 0, 0, 0);
|
||||||
|
title.setTypeface(null, android.graphics.Typeface.BOLD);
|
||||||
|
|
||||||
|
ActionBar.LayoutParams params = new ActionBar.LayoutParams(
|
||||||
|
ActionBar.LayoutParams.MATCH_PARENT,
|
||||||
|
ActionBar.LayoutParams.MATCH_PARENT,
|
||||||
|
Gravity.CENTER
|
||||||
|
);
|
||||||
|
|
||||||
|
actionBar.setDisplayShowTitleEnabled(false);
|
||||||
|
actionBar.setDisplayShowCustomEnabled(true);
|
||||||
|
actionBar.setCustomView(title, params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -112,8 +135,7 @@ public class MainActivity2 extends AppCompatActivity {
|
|||||||
|
|
||||||
TextView tv;
|
TextView tv;
|
||||||
tv = (TextView) findViewById(R.id.versionTv);
|
tv = (TextView) findViewById(R.id.versionTv);
|
||||||
String versionName = mUtil.getAppVersionName();
|
tv.setText("FLOGA");
|
||||||
tv.setText(getString(R.string.AppTitleText) + " " + versionName);
|
|
||||||
tv.setBackgroundColor(okColour);
|
tv.setBackgroundColor(okColour);
|
||||||
tv.setTextColor(okTextColour);
|
tv.setTextColor(okTextColour);
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ import android.view.WindowManager;
|
|||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import androidx.appcompat.app.ActionBar;
|
||||||
|
import android.view.Gravity;
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
@@ -134,6 +136,26 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
Log.i(TAG, "onCreate()");
|
Log.i(TAG, "onCreate()");
|
||||||
setContentView(R.layout.startup_activity);
|
setContentView(R.layout.startup_activity);
|
||||||
|
ActionBar actionBar = getSupportActionBar();
|
||||||
|
if (actionBar != null) {
|
||||||
|
TextView title = new TextView(this);
|
||||||
|
title.setText("FLOGA");
|
||||||
|
title.setTextColor(Color.BLACK);
|
||||||
|
title.setTextSize(22);
|
||||||
|
title.setGravity(Gravity.CENTER);
|
||||||
|
title.setPadding(48, 0, 0, 0);
|
||||||
|
title.setTypeface(null, android.graphics.Typeface.BOLD);
|
||||||
|
|
||||||
|
ActionBar.LayoutParams params = new ActionBar.LayoutParams(
|
||||||
|
ActionBar.LayoutParams.MATCH_PARENT,
|
||||||
|
ActionBar.LayoutParams.MATCH_PARENT,
|
||||||
|
Gravity.CENTER
|
||||||
|
);
|
||||||
|
|
||||||
|
actionBar.setDisplayShowTitleEnabled(false);
|
||||||
|
actionBar.setDisplayShowCustomEnabled(true);
|
||||||
|
actionBar.setCustomView(title, params);
|
||||||
|
}
|
||||||
|
|
||||||
// Set our custom uncaught exception handler to report issues.
|
// Set our custom uncaught exception handler to report issues.
|
||||||
//Thread.setDefaultUncaughtExceptionHandler(new OsdUncaughtExceptionHandler(StartupActivity.this));
|
//Thread.setDefaultUncaughtExceptionHandler(new OsdUncaughtExceptionHandler(StartupActivity.this));
|
||||||
@@ -269,7 +291,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
String versionName = mUtil.getAppVersionName();
|
String versionName = mUtil.getAppVersionName();
|
||||||
tv = (TextView) findViewById(R.id.appNameTv);
|
tv = (TextView) findViewById(R.id.appNameTv);
|
||||||
tv.setText("OpenSeizureDetector V" + versionName);
|
tv.setText("Seizure monitoring");
|
||||||
|
|
||||||
// Display the DataSource name
|
// Display the DataSource name
|
||||||
SharedPreferences SP = PreferenceManager
|
SharedPreferences SP = PreferenceManager
|
||||||
@@ -285,6 +307,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
} else {
|
} else {
|
||||||
tv.setText(String.format("%s = %s", getString(R.string.DataSource), mSdDataSourceName));
|
tv.setText(String.format("%s = %s", getString(R.string.DataSource), mSdDataSourceName));
|
||||||
}
|
}
|
||||||
|
setStartupStatus("Checking app setup...");
|
||||||
|
|
||||||
|
|
||||||
if (mUtil.isServerRunning()) {
|
if (mUtil.isServerRunning()) {
|
||||||
@@ -346,6 +369,12 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
* If everything is ok, we close this activity and open the main user interface
|
* If everything is ok, we close this activity and open the main user interface
|
||||||
* activity.
|
* activity.
|
||||||
*/
|
*/
|
||||||
|
private void setStartupStatus(String message) {
|
||||||
|
TextView statusTv = (TextView) findViewById(R.id.startupCurrentStatusTv);
|
||||||
|
if (statusTv != null) {
|
||||||
|
statusTv.setText(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
final Runnable serverStatusRunnable = new Runnable() {
|
final Runnable serverStatusRunnable = new Runnable() {
|
||||||
public void run() {
|
public void run() {
|
||||||
Boolean allOk = true;
|
Boolean allOk = true;
|
||||||
@@ -438,6 +467,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
pb.setIndeterminate(true);
|
pb.setIndeterminate(true);
|
||||||
allOk = false;
|
allOk = false;
|
||||||
|
setStartupStatus("Waiting for required permissions...");
|
||||||
requestPermissions(StartupActivity.this);
|
requestPermissions(StartupActivity.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -466,6 +496,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server));
|
pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||||
pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server));
|
pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||||
|
setStartupStatus("Starting monitoring service...");
|
||||||
mMode = MODE_START_SERVER;
|
mMode = MODE_START_SERVER;
|
||||||
} else {
|
} else {
|
||||||
tv.setText(getString(R.string.ServerRunningOK));
|
tv.setText(getString(R.string.ServerRunningOK));
|
||||||
@@ -500,6 +531,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
tv.setBackgroundColor(alarmColour);
|
tv.setBackgroundColor(alarmColour);
|
||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
pb.setIndeterminate(true);
|
pb.setIndeterminate(true);
|
||||||
|
setStartupStatus("Connecting to monitoring service...");
|
||||||
allOk = false;
|
allOk = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -517,6 +549,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
tv.setBackgroundColor(alarmColour);
|
tv.setBackgroundColor(alarmColour);
|
||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
pb.setIndeterminate(true);
|
pb.setIndeterminate(true);
|
||||||
|
setStartupStatus("Waiting for watch connection...");
|
||||||
allOk = false;
|
allOk = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -535,6 +568,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
tv.setBackgroundColor(alarmColour);
|
tv.setBackgroundColor(alarmColour);
|
||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
pb.setIndeterminate(true);
|
pb.setIndeterminate(true);
|
||||||
|
setStartupStatus("Waiting for detector data...");
|
||||||
allOk = false;
|
allOk = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -553,6 +587,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
tv.setBackgroundColor(alarmColour);
|
tv.setBackgroundColor(alarmColour);
|
||||||
tv.setTextColor(alarmTextColour);
|
tv.setTextColor(alarmTextColour);
|
||||||
pb.setIndeterminate(true);
|
pb.setIndeterminate(true);
|
||||||
|
setStartupStatus("Waiting for detector data...");
|
||||||
allOk = false;
|
allOk = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -563,6 +598,7 @@ public class StartupActivity extends AppCompatActivity {
|
|||||||
if (!mDialogDisplayed && !mBatteryOptDialogDisplayed) {
|
if (!mDialogDisplayed && !mBatteryOptDialogDisplayed) {
|
||||||
if (!mStartedMainActivity) {
|
if (!mStartedMainActivity) {
|
||||||
Log.i(TAG, "serverStatusRunnable() - starting main activity...");
|
Log.i(TAG, "serverStatusRunnable() - starting main activity...");
|
||||||
|
setStartupStatus("Ready. Opening dashboard...");
|
||||||
mUtil.writeToSysLogFile("StartupActivity.serverStatusRunnable - all checks ok - starting main activity.");
|
mUtil.writeToSysLogFile("StartupActivity.serverStatusRunnable - all checks ok - starting main activity.");
|
||||||
try {
|
try {
|
||||||
Boolean useNewUi = SP.getBoolean("UseNewUi", true);
|
Boolean useNewUi = SP.getBoolean("UseNewUi", true);
|
||||||
|
|||||||
@@ -18,8 +18,8 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/versionTv"
|
android:id="@+id/versionTv"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="0dp"
|
||||||
android:text="@string/app_name" />
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
|
||||||
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
|||||||
@@ -3,42 +3,92 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:background="#101418"
|
||||||
tools:context=".FragmentOsdBaseClass">
|
tools:context=".FragmentOsdBaseClass">
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:background="@color/okBackgroundColor"
|
android:paddingStart="16dp"
|
||||||
>
|
android:paddingEnd="16dp"
|
||||||
|
android:paddingTop="14dp"
|
||||||
|
android:paddingBottom="12dp">
|
||||||
|
|
||||||
|
<!-- Main alarm/status card -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/alarmTv"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="96dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingStart="16dp"
|
||||||
|
android:paddingEnd="16dp"
|
||||||
|
android:text="---"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="30sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/seizureDurationTv"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text=""
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<!-- Simple user-facing status area.
|
||||||
|
Java still writes technical text here for now; we will simplify
|
||||||
|
the text in a later Java-only pass. -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/dashboardStatusCard"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:background="#1B222A"
|
||||||
|
android:padding="14dp"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/serverStatusTv"
|
android:id="@+id/serverStatusTv"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="---" />
|
android:text="---"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/dataSourceInfoTv"
|
android:id="@+id/dataSourceInfoTv"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="---" />
|
android:layout_marginTop="6dp"
|
||||||
|
android:text="---"
|
||||||
|
android:textColor="#B8C1CC"
|
||||||
|
android:textSize="15sp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/data_time_tv"
|
android:id="@+id/data_time_tv"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="---" />
|
android:layout_marginTop="6dp"
|
||||||
|
android:text="---"
|
||||||
|
android:textColor="#8E99A6"
|
||||||
|
android:textSize="13sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Keep algorithm views available for Java, but hide them from the
|
||||||
|
normal user dashboard for now. -->
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/statusLayout"
|
android:id="@+id/statusLayout"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/algsTv"
|
android:id="@+id/algsTv"
|
||||||
@@ -75,56 +125,45 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="---" />
|
android:text="---" />
|
||||||
|
|
||||||
<!--<TextView
|
|
||||||
android:id="@+id/fallAlgTv"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text=""
|
|
||||||
android:visibility="gone"/>
|
|
||||||
-->
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<TextView
|
<!-- Action buttons -->
|
||||||
android:id="@+id/alarmTv"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="---"
|
|
||||||
android:textSize="32sp" />
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/dashboardActionButtons"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:baselineAligned="false">
|
android:layout_marginTop="14dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/acceptAlarmButton"
|
android:id="@+id/acceptAlarmButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="52dp"
|
||||||
android:layout_weight="1"
|
android:text="@string/AcceptAlarmBtnTxt"
|
||||||
android:text="@string/AcceptAlarmBtnTxt" />
|
android:textSize="15sp" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/cancelAudibleButton"
|
android:id="@+id/cancelAudibleButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="52dp"
|
||||||
android:layout_weight="1"
|
android:layout_marginTop="8dp"
|
||||||
android:text="@string/CancelAudibleButtonTxt" />
|
android:text="@string/CancelAudibleButtonTxt"
|
||||||
|
android:textSize="15sp" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/manualAlarmButton"
|
android:id="@+id/manualAlarmButton"
|
||||||
android:layout_width="0dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="56dp"
|
||||||
android:layout_weight="1"
|
android:layout_marginTop="8dp"
|
||||||
android:backgroundTint="#ff0000"
|
android:backgroundTint="#C62828"
|
||||||
android:text="@string/ManualAlarmBtnTxt" />
|
android:text="@string/ManualAlarmBtnTxt"
|
||||||
</LinearLayout>
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
@@ -3,69 +3,228 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:background="#101418"
|
||||||
tools:context=".FragmentOsdBaseClass">
|
tools:context=".FragmentOsdBaseClass">
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:background="@color/okBackgroundColor">
|
android:paddingStart="14dp"
|
||||||
|
android:paddingEnd="14dp"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/fragment_osdalg_tv2"
|
android:id="@+id/fragment_osdalg_tv2"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="@color/okTextColor"
|
android:gravity="center"
|
||||||
android:text="OSD Algorithm Status" />
|
android:text="Detection status"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="21sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<!-- First row: motion power and spectrum ratio -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<!-- Motion power card -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginEnd="5dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center"
|
||||||
|
android:background="#1B222A"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Motion power"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/powerTv"
|
android:id="@+id/powerTv"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="@color/okTextColor"
|
android:layout_marginTop="8dp"
|
||||||
android:text="---" />
|
android:gravity="center"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:text="---"
|
||||||
|
android:textColor="#B8C1CC"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/powerProgressBar"
|
android:id="@+id/powerProgressBar"
|
||||||
style="?android:attr/progressBarStyleHorizontal"
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="6dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:minHeight="6dp"
|
||||||
|
android:maxHeight="6dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Spectrum card -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginStart="5dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center"
|
||||||
|
android:background="#1B222A"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:minHeight="20dp" />
|
android:gravity="center"
|
||||||
|
android:text="Spectrum"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/spectrumTv"
|
android:id="@+id/spectrumTv"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textColor="@color/okTextColor"
|
android:layout_marginTop="8dp"
|
||||||
android:text="---" />
|
android:gravity="center"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:text="---"
|
||||||
|
android:textColor="#B8C1CC"
|
||||||
|
android:textSize="12sp" />
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/spectrumProgressBar"
|
android:id="@+id/spectrumProgressBar"
|
||||||
style="?android:attr/progressBarStyleHorizontal"
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="6dp"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
android:indeterminate="false"
|
android:indeterminate="false"
|
||||||
android:minHeight="20dp" />
|
android:minHeight="6dp"
|
||||||
|
android:maxHeight="6dp" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Second row: current HR and average HR -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/hrStatusCard"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<!-- Current HR card -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginEnd="5dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center"
|
||||||
|
android:background="#1B222A"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Current HR"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/osd_current_hr_tv"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="-- bpm"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Average HR card -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:layout_marginStart="5dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center"
|
||||||
|
android:background="#1B222A"
|
||||||
|
android:padding="10dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Average HR"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="15sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/osd_avg_hr_tv"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="-- bpm"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="25sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- Kept for Java compatibility, hidden from this simplified page. -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/osd_hr_status_tv"
|
||||||
|
android:layout_width="1dp"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:text="Waiting for heart-rate data" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/pSeizureTvM2"
|
android:id="@+id/pSeizureTvM2"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="1dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="1dp"
|
||||||
android:text="@string/seizure_probability"
|
android:visibility="gone"
|
||||||
android:textColor="@color/okTextColor" />
|
android:text="@string/seizure_probability" />
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/pSeizureProgressBarM2"
|
android:id="@+id/pSeizureProgressBarM2"
|
||||||
style="?android:attr/progressBarStyleHorizontal"
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="1dp"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="1dp"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
<com.github.mikephil.charting.charts.BarChart
|
<com.github.mikephil.charting.charts.BarChart
|
||||||
android:id="@+id/chart1"
|
android:id="@+id/chart1"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="1dp"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="1dp"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
@@ -2,181 +2,240 @@
|
|||||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent"
|
||||||
|
android:background="#101418"
|
||||||
|
android:fillViewport="true">
|
||||||
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
tools:context="uk.org.openseizuredetector.StartupActivity"
|
tools:context="uk.org.openseizuredetector.StartupActivity"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:paddingStart="20dp"
|
||||||
|
android:paddingEnd="20dp"
|
||||||
|
android:paddingTop="32dp"
|
||||||
|
android:paddingBottom="24dp">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/imageView"
|
android:id="@+id/imageView"
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="72dp"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:contentDescription="@string/app_name"
|
||||||
app:srcCompat="@drawable/star_of_life_48x48" />
|
app:srcCompat="@drawable/star_of_life_48x48" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textAppearance="?android:attr/textAppearanceLarge"
|
|
||||||
android:text="OpenSeizureDetector"
|
|
||||||
android:id="@+id/appNameTv"
|
android:id="@+id/appNameTv"
|
||||||
android:layout_gravity="center_horizontal" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
android:layout_marginTop="14dp"
|
||||||
android:text="@string/StartingTitle"
|
android:text="FLOGA"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="30sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
android:id="@+id/dataSourceTextView"
|
android:id="@+id/dataSourceTextView"
|
||||||
android:layout_gravity="center_horizontal" />
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/StartingTitle"
|
||||||
|
android:textColor="#B8C1CC"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
|
||||||
<LinearLayout
|
<TextView
|
||||||
android:orientation="horizontal"
|
android:id="@+id/startupMessageTv"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="5dp"
|
android:layout_marginTop="24dp"
|
||||||
android:layout_marginRight="5dp"
|
android:gravity="center"
|
||||||
android:text="Help"
|
android:text="Getting monitoring ready..."
|
||||||
android:id="@+id/instructionsButton"
|
android:textColor="@android:color/white"
|
||||||
android:layout_gravity="center_horizontal" />
|
android:textSize="22sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<Button
|
<ProgressBar
|
||||||
android:layout_width="0dp"
|
android:id="@+id/startupLoadingProgressBar"
|
||||||
android:layout_weight="1"
|
style="?android:attr/progressBarStyleHorizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="6dp"
|
||||||
|
android:layout_marginTop="18dp"
|
||||||
|
android:indeterminate="true" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/startupCurrentStatusTv"
|
||||||
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="5dp"
|
android:layout_marginTop="14dp"
|
||||||
android:layout_marginRight="5dp"
|
android:gravity="center"
|
||||||
android:text="Trouble-\nshooting"
|
android:text="Starting..."
|
||||||
android:id="@+id/troubleshootingButton"
|
android:textColor="#B8C1CC"
|
||||||
android:layout_gravity="center_horizontal" />
|
android:textSize="15sp" />
|
||||||
|
|
||||||
<Button
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginLeft="5dp"
|
|
||||||
android:layout_marginRight="5dp"
|
|
||||||
android:text="@string/edit_settings"
|
|
||||||
android:id="@+id/settingsButton"
|
|
||||||
android:layout_gravity="center_horizontal" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/startupChecklistContainer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="18dp"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:background="#1B222A"
|
||||||
android:layout_height="fill_parent">
|
android:padding="14dp"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="52dp"
|
||||||
>
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/progressBar1"
|
||||||
android:layout_height="match_parent"
|
android:layout_width="32dp"
|
||||||
android:id="@+id/progressBar1" />
|
android:layout_height="32dp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="fill_parent"
|
android:id="@+id/textItem1"
|
||||||
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:text="New Text"
|
android:text="Checking app permissions..."
|
||||||
android:id="@+id/textItem1" />
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="52dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:layout_width="wrap_content"
|
android:id="@+id/progressBar2"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="32dp"
|
||||||
android:id="@+id/progressBar2" />
|
android:layout_height="32dp" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="fill_parent"
|
android:id="@+id/textItem2"
|
||||||
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:text="New Text"
|
android:text="Starting monitoring service..."
|
||||||
android:id="@+id/textItem2" />
|
android:textColor="@android:color/white"
|
||||||
</LinearLayout>
|
android:textSize="16sp" />
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<ProgressBar
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/progressBar3" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:text="New Text"
|
|
||||||
android:id="@+id/textItem3" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="52dp"
|
||||||
<ProgressBar
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/progressBar5" />
|
|
||||||
<TextView
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:text="New Text"
|
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:id="@+id/textItem5" />
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progressBar3"
|
||||||
|
android:layout_width="32dp"
|
||||||
|
android:layout_height="32dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textItem3"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:text="Connecting to watch..."
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="52dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progressBar5"
|
||||||
|
android:layout_width="32dp"
|
||||||
|
android:layout_height="32dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textItem5"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:text="Waiting for detector data..."
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
|
android:id="@+id/installOsdAppButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/install_watch_app"
|
android:text="@string/install_watch_app"
|
||||||
android:id="@+id/installOsdAppButton" />
|
android:textSize="12sp" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="52dp"
|
||||||
<ProgressBar
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/progressBar6" />
|
|
||||||
<TextView
|
|
||||||
android:layout_width="fill_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:text="New Text"
|
android:orientation="horizontal">
|
||||||
android:autoLink="web"
|
|
||||||
android:id="@+id/textItem6" />
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progressBar6"
|
||||||
|
android:layout_width="32dp"
|
||||||
|
android:layout_height="32dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/textItem6"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:text="Loading detector settings..."
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:autoLink="web" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/startupHelpTitleTv"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="26dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Taking too long?"
|
||||||
|
android:textColor="#B8C1CC"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/settingsButton"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="52dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:text="@string/edit_settings"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/instructionsButton"
|
||||||
|
android:layout_width="1dp"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:visibility="invisible"
|
||||||
|
android:text="Help" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/troubleshootingButton"
|
||||||
|
android:layout_width="1dp"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:visibility="invisible"
|
||||||
|
android:text="Troubleshooting" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
Reference in New Issue
Block a user