feat: screensaver configurable timeout + fix gitignore (exclude kiosk build artifacts)
@@ -33,3 +33,14 @@ Thumbs.db
|
|||||||
|
|
||||||
# Raw screenshots (working folder, not for distribution)
|
# Raw screenshots (working folder, not for distribution)
|
||||||
/screenshots/
|
/screenshots/
|
||||||
|
|
||||||
|
# Android kiosk build artifacts (generated by Gradle — not source)
|
||||||
|
evershelf-kiosk/.gradle/
|
||||||
|
evershelf-kiosk/app/build/
|
||||||
|
evershelf-kiosk/build/
|
||||||
|
evershelf-scale-gateway/app/build/
|
||||||
|
evershelf-scale-gateway/build/
|
||||||
|
evershelf-kiosk/local.properties
|
||||||
|
data/error_reports.log
|
||||||
|
data/latest_release_cache.json
|
||||||
|
data/food_facts_cache.json
|
||||||
|
|||||||
@@ -2078,6 +2078,7 @@ function getServerSettings(): void {
|
|||||||
'scale_gateway_url' => env('SCALE_GATEWAY_URL', ''),
|
'scale_gateway_url' => env('SCALE_GATEWAY_URL', ''),
|
||||||
'meal_plan_enabled' => env('MEAL_PLAN_ENABLED', 'false') === 'true',
|
'meal_plan_enabled' => env('MEAL_PLAN_ENABLED', 'false') === 'true',
|
||||||
'screensaver_enabled' => env('SCREENSAVER_ENABLED', 'false') === 'true',
|
'screensaver_enabled' => env('SCREENSAVER_ENABLED', 'false') === 'true',
|
||||||
|
'screensaver_timeout' => (int)env('SCREENSAVER_TIMEOUT', '5'),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2127,7 +2128,8 @@ function saveSettings(): void {
|
|||||||
];
|
];
|
||||||
// Integer keys
|
// Integer keys
|
||||||
$intMap = [
|
$intMap = [
|
||||||
'default_persons' => 'DEFAULT_PERSONS',
|
'default_persons' => 'DEFAULT_PERSONS',
|
||||||
|
'screensaver_timeout' => 'SCREENSAVER_TIMEOUT',
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($keyMap as $inKey => $envKey) {
|
foreach ($keyMap as $inKey => $envKey) {
|
||||||
|
|||||||
|
After Width: | Height: | Size: 315 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 450 KiB |
|
After Width: | Height: | Size: 393 KiB |
|
After Width: | Height: | Size: 115 KiB |
@@ -1878,7 +1878,7 @@ async function syncSettingsFromDB() {
|
|||||||
'camera_facing','scale_enabled','scale_gateway_url',
|
'camera_facing','scale_enabled','scale_gateway_url',
|
||||||
'meal_plan_enabled','tts_enabled','tts_url','tts_token',
|
'meal_plan_enabled','tts_enabled','tts_url','tts_token',
|
||||||
'tts_method','tts_auth_type','tts_content_type','tts_payload_key',
|
'tts_method','tts_auth_type','tts_content_type','tts_payload_key',
|
||||||
'screensaver_enabled'];
|
'screensaver_enabled','screensaver_timeout'];
|
||||||
for (const key of serverKeys) {
|
for (const key of serverKeys) {
|
||||||
if (serverSettings[key] !== undefined && serverSettings[key] !== null && serverSettings[key] !== '') {
|
if (serverSettings[key] !== undefined && serverSettings[key] !== null && serverSettings[key] !== '') {
|
||||||
s[key] = serverSettings[key];
|
s[key] = serverSettings[key];
|
||||||
@@ -1910,6 +1910,8 @@ async function loadSettingsUI() {
|
|||||||
document.getElementById('setting-pref-zerowaste').checked = !!s.pref_zerowaste;
|
document.getElementById('setting-pref-zerowaste').checked = !!s.pref_zerowaste;
|
||||||
const ssEl = document.getElementById('setting-screensaver-enabled');
|
const ssEl = document.getElementById('setting-screensaver-enabled');
|
||||||
if (ssEl) ssEl.checked = s.screensaver_enabled === true;
|
if (ssEl) ssEl.checked = s.screensaver_enabled === true;
|
||||||
|
const ssTimeout = document.getElementById('setting-screensaver-timeout');
|
||||||
|
if (ssTimeout) ssTimeout.value = String(s.screensaver_timeout || 5);
|
||||||
document.getElementById('setting-dietary').value = s.dietary || '';
|
document.getElementById('setting-dietary').value = s.dietary || '';
|
||||||
// Camera
|
// Camera
|
||||||
const cameraSelect = document.getElementById('setting-camera-facing');
|
const cameraSelect = document.getElementById('setting-camera-facing');
|
||||||
@@ -2312,6 +2314,8 @@ async function saveSettings() {
|
|||||||
// Screensaver
|
// Screensaver
|
||||||
const ssEl = document.getElementById('setting-screensaver-enabled');
|
const ssEl = document.getElementById('setting-screensaver-enabled');
|
||||||
if (ssEl) s.screensaver_enabled = ssEl.checked;
|
if (ssEl) s.screensaver_enabled = ssEl.checked;
|
||||||
|
const ssTimeoutEl = document.getElementById('setting-screensaver-timeout');
|
||||||
|
if (ssTimeoutEl) s.screensaver_timeout = parseInt(ssTimeoutEl.value, 10) || 5;
|
||||||
// Meal plan enabled toggle
|
// Meal plan enabled toggle
|
||||||
const mpEnabledEl = document.getElementById('setting-meal-plan-enabled');
|
const mpEnabledEl = document.getElementById('setting-meal-plan-enabled');
|
||||||
if (mpEnabledEl) s.meal_plan_enabled = mpEnabledEl.checked;
|
if (mpEnabledEl) s.meal_plan_enabled = mpEnabledEl.checked;
|
||||||
@@ -11710,12 +11714,16 @@ let _screensaverClockInterval = null;
|
|||||||
let _screensaverFactInterval = null;
|
let _screensaverFactInterval = null;
|
||||||
let _screensaverData = null; // cached data for fact generation
|
let _screensaverData = null; // cached data for fact generation
|
||||||
const SCREENSAVER_FACT_DURATION = 5 * 60 * 1000; // 5 minutes per fact
|
const SCREENSAVER_FACT_DURATION = 5 * 60 * 1000; // 5 minutes per fact
|
||||||
const INACTIVITY_TIMEOUT = 5 * 60 * 1000; // 5 minutes
|
|
||||||
|
function _screensaverTimeoutMs() {
|
||||||
|
const mins = parseInt(getSettings().screensaver_timeout || 5, 10);
|
||||||
|
return (isNaN(mins) || mins < 1 ? 5 : mins) * 60 * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
function resetInactivityTimer() {
|
function resetInactivityTimer() {
|
||||||
if (_screensaverActive) return; // don't reset while screensaver is showing
|
if (_screensaverActive) return; // don't reset while screensaver is showing
|
||||||
clearTimeout(_inactivityTimer);
|
clearTimeout(_inactivityTimer);
|
||||||
_inactivityTimer = setTimeout(activateScreensaver, INACTIVITY_TIMEOUT);
|
_inactivityTimer = setTimeout(activateScreensaver, _screensaverTimeoutMs());
|
||||||
}
|
}
|
||||||
|
|
||||||
function activateScreensaver() {
|
function activateScreensaver() {
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
#Mon Apr 20 17:42:13 UTC 2026
|
|
||||||
gradle.version=8.4
|
|
||||||
@@ -1,297 +0,0 @@
|
|||||||
// Generated by view binder compiler. Do not edit!
|
|
||||||
package it.dadaloop.evershelf.kiosk.databinding;
|
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.webkit.WebView;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.FrameLayout;
|
|
||||||
import android.widget.ImageButton;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.ScrollView;
|
|
||||||
import android.widget.TextView;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.viewbinding.ViewBinding;
|
|
||||||
import androidx.viewbinding.ViewBindings;
|
|
||||||
import com.google.android.material.button.MaterialButton;
|
|
||||||
import it.dadaloop.evershelf.kiosk.R;
|
|
||||||
import java.lang.NullPointerException;
|
|
||||||
import java.lang.Override;
|
|
||||||
import java.lang.String;
|
|
||||||
|
|
||||||
public final class ActivityKioskBinding implements ViewBinding {
|
|
||||||
@NonNull
|
|
||||||
private final FrameLayout rootView;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnFinish;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnGetStarted;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final ImageButton btnSettings;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnSkipScale;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnStep2Back;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnStep2Next;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnStep3Back;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnTestUrl;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final LinearLayout scaleStatusCard;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final TextView scaleStatusDetail;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final TextView scaleStatusIcon;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final TextView scaleStatusText;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final LinearLayout splashContainer;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final LinearLayout step1;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final LinearLayout step2;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final LinearLayout step3;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final LinearLayout stepIndicator;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final TextView urlStatus;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final WebView webView;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final ScrollView wizardContainer;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final TextView wizardTitle;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final EditText wizardUrl;
|
|
||||||
|
|
||||||
private ActivityKioskBinding(@NonNull FrameLayout rootView, @NonNull MaterialButton btnFinish,
|
|
||||||
@NonNull MaterialButton btnGetStarted, @NonNull ImageButton btnSettings,
|
|
||||||
@NonNull MaterialButton btnSkipScale, @NonNull MaterialButton btnStep2Back,
|
|
||||||
@NonNull MaterialButton btnStep2Next, @NonNull MaterialButton btnStep3Back,
|
|
||||||
@NonNull MaterialButton btnTestUrl, @NonNull LinearLayout scaleStatusCard,
|
|
||||||
@NonNull TextView scaleStatusDetail, @NonNull TextView scaleStatusIcon,
|
|
||||||
@NonNull TextView scaleStatusText, @NonNull LinearLayout splashContainer,
|
|
||||||
@NonNull LinearLayout step1, @NonNull LinearLayout step2, @NonNull LinearLayout step3,
|
|
||||||
@NonNull LinearLayout stepIndicator, @NonNull TextView urlStatus, @NonNull WebView webView,
|
|
||||||
@NonNull ScrollView wizardContainer, @NonNull TextView wizardTitle,
|
|
||||||
@NonNull EditText wizardUrl) {
|
|
||||||
this.rootView = rootView;
|
|
||||||
this.btnFinish = btnFinish;
|
|
||||||
this.btnGetStarted = btnGetStarted;
|
|
||||||
this.btnSettings = btnSettings;
|
|
||||||
this.btnSkipScale = btnSkipScale;
|
|
||||||
this.btnStep2Back = btnStep2Back;
|
|
||||||
this.btnStep2Next = btnStep2Next;
|
|
||||||
this.btnStep3Back = btnStep3Back;
|
|
||||||
this.btnTestUrl = btnTestUrl;
|
|
||||||
this.scaleStatusCard = scaleStatusCard;
|
|
||||||
this.scaleStatusDetail = scaleStatusDetail;
|
|
||||||
this.scaleStatusIcon = scaleStatusIcon;
|
|
||||||
this.scaleStatusText = scaleStatusText;
|
|
||||||
this.splashContainer = splashContainer;
|
|
||||||
this.step1 = step1;
|
|
||||||
this.step2 = step2;
|
|
||||||
this.step3 = step3;
|
|
||||||
this.stepIndicator = stepIndicator;
|
|
||||||
this.urlStatus = urlStatus;
|
|
||||||
this.webView = webView;
|
|
||||||
this.wizardContainer = wizardContainer;
|
|
||||||
this.wizardTitle = wizardTitle;
|
|
||||||
this.wizardUrl = wizardUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NonNull
|
|
||||||
public FrameLayout getRoot() {
|
|
||||||
return rootView;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public static ActivityKioskBinding inflate(@NonNull LayoutInflater inflater) {
|
|
||||||
return inflate(inflater, null, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public static ActivityKioskBinding inflate(@NonNull LayoutInflater inflater,
|
|
||||||
@Nullable ViewGroup parent, boolean attachToParent) {
|
|
||||||
View root = inflater.inflate(R.layout.activity_kiosk, parent, false);
|
|
||||||
if (attachToParent) {
|
|
||||||
parent.addView(root);
|
|
||||||
}
|
|
||||||
return bind(root);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public static ActivityKioskBinding bind(@NonNull View rootView) {
|
|
||||||
// The body of this method is generated in a way you would not otherwise write.
|
|
||||||
// This is done to optimize the compiled bytecode for size and performance.
|
|
||||||
int id;
|
|
||||||
missingId: {
|
|
||||||
id = R.id.btnFinish;
|
|
||||||
MaterialButton btnFinish = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnFinish == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnGetStarted;
|
|
||||||
MaterialButton btnGetStarted = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnGetStarted == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnSettings;
|
|
||||||
ImageButton btnSettings = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnSettings == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnSkipScale;
|
|
||||||
MaterialButton btnSkipScale = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnSkipScale == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnStep2Back;
|
|
||||||
MaterialButton btnStep2Back = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnStep2Back == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnStep2Next;
|
|
||||||
MaterialButton btnStep2Next = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnStep2Next == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnStep3Back;
|
|
||||||
MaterialButton btnStep3Back = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnStep3Back == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnTestUrl;
|
|
||||||
MaterialButton btnTestUrl = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnTestUrl == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.scaleStatusCard;
|
|
||||||
LinearLayout scaleStatusCard = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (scaleStatusCard == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.scaleStatusDetail;
|
|
||||||
TextView scaleStatusDetail = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (scaleStatusDetail == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.scaleStatusIcon;
|
|
||||||
TextView scaleStatusIcon = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (scaleStatusIcon == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.scaleStatusText;
|
|
||||||
TextView scaleStatusText = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (scaleStatusText == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.splashContainer;
|
|
||||||
LinearLayout splashContainer = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (splashContainer == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.step1;
|
|
||||||
LinearLayout step1 = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (step1 == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.step2;
|
|
||||||
LinearLayout step2 = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (step2 == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.step3;
|
|
||||||
LinearLayout step3 = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (step3 == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.stepIndicator;
|
|
||||||
LinearLayout stepIndicator = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (stepIndicator == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.urlStatus;
|
|
||||||
TextView urlStatus = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (urlStatus == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.webView;
|
|
||||||
WebView webView = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (webView == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.wizardContainer;
|
|
||||||
ScrollView wizardContainer = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (wizardContainer == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.wizardTitle;
|
|
||||||
TextView wizardTitle = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (wizardTitle == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.wizardUrl;
|
|
||||||
EditText wizardUrl = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (wizardUrl == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ActivityKioskBinding((FrameLayout) rootView, btnFinish, btnGetStarted, btnSettings,
|
|
||||||
btnSkipScale, btnStep2Back, btnStep2Next, btnStep3Back, btnTestUrl, scaleStatusCard,
|
|
||||||
scaleStatusDetail, scaleStatusIcon, scaleStatusText, splashContainer, step1, step2, step3,
|
|
||||||
stepIndicator, urlStatus, webView, wizardContainer, wizardTitle, wizardUrl);
|
|
||||||
}
|
|
||||||
String missingId = rootView.getResources().getResourceName(id);
|
|
||||||
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
// Generated by view binder compiler. Do not edit!
|
|
||||||
package it.dadaloop.evershelf.kiosk.databinding;
|
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.EditText;
|
|
||||||
import android.widget.ImageButton;
|
|
||||||
import android.widget.ScrollView;
|
|
||||||
import android.widget.TextView;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.viewbinding.ViewBinding;
|
|
||||||
import androidx.viewbinding.ViewBindings;
|
|
||||||
import com.google.android.material.button.MaterialButton;
|
|
||||||
import it.dadaloop.evershelf.kiosk.R;
|
|
||||||
import java.lang.NullPointerException;
|
|
||||||
import java.lang.Override;
|
|
||||||
import java.lang.String;
|
|
||||||
|
|
||||||
public final class ActivitySettingsBinding implements ViewBinding {
|
|
||||||
@NonNull
|
|
||||||
private final ScrollView rootView;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final ImageButton btnBack;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnRunWizard;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnSave;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final MaterialButton btnTestConnection;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final TextView scaleDeviceInfo;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final TextView scaleGatewayStatus;
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public final EditText urlEdit;
|
|
||||||
|
|
||||||
private ActivitySettingsBinding(@NonNull ScrollView rootView, @NonNull ImageButton btnBack,
|
|
||||||
@NonNull MaterialButton btnRunWizard, @NonNull MaterialButton btnSave,
|
|
||||||
@NonNull MaterialButton btnTestConnection, @NonNull TextView scaleDeviceInfo,
|
|
||||||
@NonNull TextView scaleGatewayStatus, @NonNull EditText urlEdit) {
|
|
||||||
this.rootView = rootView;
|
|
||||||
this.btnBack = btnBack;
|
|
||||||
this.btnRunWizard = btnRunWizard;
|
|
||||||
this.btnSave = btnSave;
|
|
||||||
this.btnTestConnection = btnTestConnection;
|
|
||||||
this.scaleDeviceInfo = scaleDeviceInfo;
|
|
||||||
this.scaleGatewayStatus = scaleGatewayStatus;
|
|
||||||
this.urlEdit = urlEdit;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NonNull
|
|
||||||
public ScrollView getRoot() {
|
|
||||||
return rootView;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public static ActivitySettingsBinding inflate(@NonNull LayoutInflater inflater) {
|
|
||||||
return inflate(inflater, null, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public static ActivitySettingsBinding inflate(@NonNull LayoutInflater inflater,
|
|
||||||
@Nullable ViewGroup parent, boolean attachToParent) {
|
|
||||||
View root = inflater.inflate(R.layout.activity_settings, parent, false);
|
|
||||||
if (attachToParent) {
|
|
||||||
parent.addView(root);
|
|
||||||
}
|
|
||||||
return bind(root);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public static ActivitySettingsBinding bind(@NonNull View rootView) {
|
|
||||||
// The body of this method is generated in a way you would not otherwise write.
|
|
||||||
// This is done to optimize the compiled bytecode for size and performance.
|
|
||||||
int id;
|
|
||||||
missingId: {
|
|
||||||
id = R.id.btnBack;
|
|
||||||
ImageButton btnBack = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnBack == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnRunWizard;
|
|
||||||
MaterialButton btnRunWizard = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnRunWizard == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnSave;
|
|
||||||
MaterialButton btnSave = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnSave == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.btnTestConnection;
|
|
||||||
MaterialButton btnTestConnection = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (btnTestConnection == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.scaleDeviceInfo;
|
|
||||||
TextView scaleDeviceInfo = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (scaleDeviceInfo == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.scaleGatewayStatus;
|
|
||||||
TextView scaleGatewayStatus = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (scaleGatewayStatus == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
id = R.id.urlEdit;
|
|
||||||
EditText urlEdit = ViewBindings.findChildViewById(rootView, id);
|
|
||||||
if (urlEdit == null) {
|
|
||||||
break missingId;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ActivitySettingsBinding((ScrollView) rootView, btnBack, btnRunWizard, btnSave,
|
|
||||||
btnTestConnection, scaleDeviceInfo, scaleGatewayStatus, urlEdit);
|
|
||||||
}
|
|
||||||
String missingId = rootView.getResources().getResourceName(id);
|
|
||||||
throw new NullPointerException("Missing required view with ID: ".concat(missingId));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
#- File Locator -
|
|
||||||
listingFile=../../../outputs/apk/debug/output-metadata.json
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
appMetadataVersion=1.1
|
|
||||||
androidGradlePluginVersion=8.2.2
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"version": 3,
|
|
||||||
"artifactType": {
|
|
||||||
"type": "COMPATIBLE_SCREEN_MANIFEST",
|
|
||||||
"kind": "Directory"
|
|
||||||
},
|
|
||||||
"applicationId": "it.dadaloop.evershelf.kiosk",
|
|
||||||
"variantName": "debug",
|
|
||||||
"elements": []
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_kiosk" modulePackage="it.dadaloop.evershelf.kiosk" filePath="app/src/main/res/layout/activity_kiosk.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout"><Targets><Target tag="layout/activity_kiosk_0" view="FrameLayout"><Expressions/><location startLine="1" startOffset="0" endLine="427" endOffset="13"/></Target><Target id="@+id/splashContainer" view="LinearLayout"><Expressions/><location startLine="7" startOffset="4" endLine="43" endOffset="18"/></Target><Target id="@+id/wizardContainer" view="ScrollView"><Expressions/><location startLine="46" startOffset="4" endLine="403" endOffset="16"/></Target><Target id="@+id/stepIndicator" view="LinearLayout"><Expressions/><location startLine="64" startOffset="12" endLine="70" endOffset="42"/></Target><Target id="@+id/step1" view="LinearLayout"><Expressions/><location startLine="73" startOffset="12" endLine="162" endOffset="26"/></Target><Target id="@+id/wizardTitle" view="TextView"><Expressions/><location startLine="88" startOffset="16" endLine="98" endOffset="56"/></Target><Target id="@+id/btnGetStarted" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="154" startOffset="16" endLine="161" endOffset="54"/></Target><Target id="@+id/step2" view="LinearLayout"><Expressions/><location startLine="165" startOffset="12" endLine="283" endOffset="26"/></Target><Target id="@+id/wizardUrl" view="EditText"><Expressions/><location startLine="208" startOffset="16" endLine="220" endOffset="56"/></Target><Target id="@+id/urlStatus" view="TextView"><Expressions/><location startLine="222" startOffset="16" endLine="229" endOffset="56"/></Target><Target id="@+id/btnTestUrl" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="231" startOffset="16" endLine="241" endOffset="56"/></Target><Target id="@+id/btnStep2Back" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="260" startOffset="20" endLine="271" endOffset="57"/></Target><Target id="@+id/btnStep2Next" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="273" startOffset="20" endLine="281" endOffset="58"/></Target><Target id="@+id/step3" view="LinearLayout"><Expressions/><location startLine="286" startOffset="12" endLine="400" endOffset="26"/></Target><Target id="@+id/scaleStatusCard" view="LinearLayout"><Expressions/><location startLine="321" startOffset="16" endLine="357" endOffset="30"/></Target><Target id="@+id/scaleStatusIcon" view="TextView"><Expressions/><location startLine="330" startOffset="20" endLine="337" endOffset="59"/></Target><Target id="@+id/scaleStatusText" view="TextView"><Expressions/><location startLine="339" startOffset="20" endLine="347" endOffset="59"/></Target><Target id="@+id/scaleStatusDetail" view="TextView"><Expressions/><location startLine="349" startOffset="20" endLine="356" endOffset="50"/></Target><Target id="@+id/btnStep3Back" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="366" startOffset="20" endLine="377" endOffset="57"/></Target><Target id="@+id/btnFinish" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="379" startOffset="20" endLine="387" endOffset="58"/></Target><Target id="@+id/btnSkipScale" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="390" startOffset="16" endLine="399" endOffset="53"/></Target><Target id="@+id/webView" view="WebView"><Expressions/><location startLine="406" startOffset="4" endLine="410" endOffset="35"/></Target><Target id="@+id/btnSettings" view="ImageButton"><Expressions/><location startLine="413" startOffset="4" endLine="425" endOffset="35"/></Target></Targets></Layout>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_settings" modulePackage="it.dadaloop.evershelf.kiosk" filePath="app/src/main/res/layout/activity_settings.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.ScrollView"><Targets><Target tag="layout/activity_settings_0" view="ScrollView"><Expressions/><location startLine="1" startOffset="0" endLine="194" endOffset="12"/></Target><Target id="@+id/btnBack" view="ImageButton"><Expressions/><location startLine="21" startOffset="12" endLine="29" endOffset="49"/></Target><Target id="@+id/urlEdit" view="EditText"><Expressions/><location startLine="67" startOffset="12" endLine="79" endOffset="52"/></Target><Target id="@+id/btnTestConnection" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="81" startOffset="12" endLine="90" endOffset="45"/></Target><Target id="@+id/scaleGatewayStatus" view="TextView"><Expressions/><location startLine="127" startOffset="16" endLine="133" endOffset="45"/></Target><Target id="@+id/scaleDeviceInfo" view="TextView"><Expressions/><location startLine="136" startOffset="12" endLine="142" endOffset="41"/></Target><Target id="@+id/btnRunWizard" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="164" startOffset="12" endLine="173" endOffset="45"/></Target><Target id="@+id/btnSave" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="183" startOffset="8" endLine="191" endOffset="48"/></Target></Targets></Layout>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_kiosk" modulePackage="it.dadaloop.evershelf.kiosk" filePath="app/src/main/res/layout/activity_kiosk.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.FrameLayout"><Targets><Target tag="layout/activity_kiosk_0" view="FrameLayout"><Expressions/><location startLine="1" startOffset="0" endLine="427" endOffset="13"/></Target><Target id="@+id/splashContainer" view="LinearLayout"><Expressions/><location startLine="7" startOffset="4" endLine="43" endOffset="18"/></Target><Target id="@+id/wizardContainer" view="ScrollView"><Expressions/><location startLine="46" startOffset="4" endLine="403" endOffset="16"/></Target><Target id="@+id/stepIndicator" view="LinearLayout"><Expressions/><location startLine="64" startOffset="12" endLine="70" endOffset="42"/></Target><Target id="@+id/step1" view="LinearLayout"><Expressions/><location startLine="73" startOffset="12" endLine="162" endOffset="26"/></Target><Target id="@+id/wizardTitle" view="TextView"><Expressions/><location startLine="88" startOffset="16" endLine="98" endOffset="56"/></Target><Target id="@+id/btnGetStarted" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="154" startOffset="16" endLine="161" endOffset="54"/></Target><Target id="@+id/step2" view="LinearLayout"><Expressions/><location startLine="165" startOffset="12" endLine="283" endOffset="26"/></Target><Target id="@+id/wizardUrl" view="EditText"><Expressions/><location startLine="208" startOffset="16" endLine="220" endOffset="56"/></Target><Target id="@+id/urlStatus" view="TextView"><Expressions/><location startLine="222" startOffset="16" endLine="229" endOffset="56"/></Target><Target id="@+id/btnTestUrl" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="231" startOffset="16" endLine="241" endOffset="56"/></Target><Target id="@+id/btnStep2Back" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="260" startOffset="20" endLine="271" endOffset="57"/></Target><Target id="@+id/btnStep2Next" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="273" startOffset="20" endLine="281" endOffset="58"/></Target><Target id="@+id/step3" view="LinearLayout"><Expressions/><location startLine="286" startOffset="12" endLine="400" endOffset="26"/></Target><Target id="@+id/scaleStatusCard" view="LinearLayout"><Expressions/><location startLine="321" startOffset="16" endLine="357" endOffset="30"/></Target><Target id="@+id/scaleStatusIcon" view="TextView"><Expressions/><location startLine="330" startOffset="20" endLine="337" endOffset="59"/></Target><Target id="@+id/scaleStatusText" view="TextView"><Expressions/><location startLine="339" startOffset="20" endLine="347" endOffset="59"/></Target><Target id="@+id/scaleStatusDetail" view="TextView"><Expressions/><location startLine="349" startOffset="20" endLine="356" endOffset="50"/></Target><Target id="@+id/btnStep3Back" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="366" startOffset="20" endLine="377" endOffset="57"/></Target><Target id="@+id/btnFinish" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="379" startOffset="20" endLine="387" endOffset="58"/></Target><Target id="@+id/btnSkipScale" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="390" startOffset="16" endLine="399" endOffset="53"/></Target><Target id="@+id/webView" view="WebView"><Expressions/><location startLine="406" startOffset="4" endLine="410" endOffset="35"/></Target><Target id="@+id/btnSettings" view="ImageButton"><Expressions/><location startLine="413" startOffset="4" endLine="425" endOffset="35"/></Target></Targets></Layout>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?><Layout layout="activity_settings" modulePackage="it.dadaloop.evershelf.kiosk" filePath="app/src/main/res/layout/activity_settings.xml" directory="layout" isMerge="false" isBindingData="false" rootNodeType="android.widget.ScrollView"><Targets><Target tag="layout/activity_settings_0" view="ScrollView"><Expressions/><location startLine="1" startOffset="0" endLine="194" endOffset="12"/></Target><Target id="@+id/btnBack" view="ImageButton"><Expressions/><location startLine="21" startOffset="12" endLine="29" endOffset="49"/></Target><Target id="@+id/urlEdit" view="EditText"><Expressions/><location startLine="67" startOffset="12" endLine="79" endOffset="52"/></Target><Target id="@+id/btnTestConnection" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="81" startOffset="12" endLine="90" endOffset="45"/></Target><Target id="@+id/scaleGatewayStatus" view="TextView"><Expressions/><location startLine="127" startOffset="16" endLine="133" endOffset="45"/></Target><Target id="@+id/scaleDeviceInfo" view="TextView"><Expressions/><location startLine="136" startOffset="12" endLine="142" endOffset="41"/></Target><Target id="@+id/btnRunWizard" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="164" startOffset="12" endLine="173" endOffset="45"/></Target><Target id="@+id/btnSave" view="com.google.android.material.button.MaterialButton"><Expressions/><location startLine="183" startOffset="8" endLine="191" endOffset="48"/></Target></Targets></Layout>
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
2
|
|
||||||