diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2022-03-15 12:52:00 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2022-03-15 12:52:00 +0300 |
commit | f176bdff4c38cc54e78e4e59dd3280249911bb07 (patch) | |
tree | f0cff5b0de5b9b4c46e680027b90a34793f0d486 | |
parent | 84baa17a62e39aa7bc05f9685faa65ca18128e16 (diff) |
Support for watches without sensors
-rw-r--r-- | app/build.gradle | 2 | ||||
-rw-r--r-- | app/src/main/AndroidManifest.xml | 5 | ||||
-rw-r--r-- | app/src/main/java/com/clusterrr/hexeditorwatchface/SettingsMenuAdapter.java | 26 |
3 files changed, 23 insertions, 10 deletions
diff --git a/app/build.gradle b/app/build.gradle index 5b62b2b..fc619e1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,7 +9,7 @@ android { applicationId "com.clusterrr.hexeditorwatchface" minSdk 30 targetSdk 32 - versionCode 1 + versionCode 2 versionName "1.0" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ad40590..ff85b44 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,13 +9,12 @@ <uses-permission android:name="com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA" />
<uses-feature android:name="android.hardware.type.watch" />
- <uses-feature android:name="android.hardware.sensor.stepcounter" android:required="true" />
- <uses-feature android:name="android.hardware.sensor.heartrate" android:required="true" />
<application
android:allowBackup="true"
android:label="@string/app_name"
- android:supportsRtl="true">
+ android:supportsRtl="true"
+ android:icon="@drawable/icon">
<meta-data
android:name="com.google.android.wearable.standalone"
diff --git a/app/src/main/java/com/clusterrr/hexeditorwatchface/SettingsMenuAdapter.java b/app/src/main/java/com/clusterrr/hexeditorwatchface/SettingsMenuAdapter.java index c953726..f6b1f76 100644 --- a/app/src/main/java/com/clusterrr/hexeditorwatchface/SettingsMenuAdapter.java +++ b/app/src/main/java/com/clusterrr/hexeditorwatchface/SettingsMenuAdapter.java @@ -1,7 +1,10 @@ package com.clusterrr.hexeditorwatchface;
+import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
+import android.hardware.Sensor;
+import android.hardware.SensorManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -17,11 +20,13 @@ public class SettingsMenuAdapter extends RecyclerView.Adapter<SettingsMenuAdapte private final Setting[] mSettings;
private final AppCompatActivity mContext;
private final SettingsMenuAdapter.RecyclerViewHolder[] mHolders;
+ private final SensorManager mSensorManager;
public SettingsMenuAdapter(AppCompatActivity context, Setting[] settings) {
- this.mContext = context;
+ mContext = context;
mSettings = settings;
- this.mHolders = new SettingsMenuAdapter.RecyclerViewHolder[settings.length + 1];
+ mHolders = new SettingsMenuAdapter.RecyclerViewHolder[settings.length + 1];
+ mSensorManager = ((SensorManager)context.getSystemService(Context.SENSOR_SERVICE));
}
public void updateHolder(int pos)
@@ -44,7 +49,7 @@ public class SettingsMenuAdapter extends RecyclerView.Adapter<SettingsMenuAdapte holder.menuItemSettingRadio.setVisibility(View.GONE);
holder.menuItemSettingExplanation.setVisibility(View.GONE);
} else {
- // Show some explanation
+ // Show some explanation
holder.menuItemSettingKey.setText("Explanation");
holder.menuItemSettingValue.setText("");
@@ -57,10 +62,19 @@ public class SettingsMenuAdapter extends RecyclerView.Adapter<SettingsMenuAdapte holder.menuItemSettingRadio.setVisibility(View.GONE);
holder.menuItemSettingExplanation.setVisibility(View.VISIBLE);
}
+ boolean enabled = true;
+ if ((pos == SettingsActivity.PREF_KEY_VIGNETTING) && !res.getBoolean(R.bool.is_round))
+ enabled = false;
+ if ((pos == SettingsActivity.PREF_KEY_HEART_RATE) &&
+ (mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE) == null))
+ enabled = false;
+ if ((pos == SettingsActivity.PREF_KEY_STEPS) &&
+ (mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) == null))
+ enabled = false;
// Disable vignetting for rectangular screens
- holder.menuContainer.setEnabled(res.getBoolean(R.bool.is_round) || pos != SettingsActivity.PREF_KEY_VIGNETTING);
- holder.menuItemSettingKey.setEnabled(res.getBoolean(R.bool.is_round) || pos != SettingsActivity.PREF_KEY_VIGNETTING);
- holder.menuItemSettingValue.setEnabled(res.getBoolean(R.bool.is_round) || pos != SettingsActivity.PREF_KEY_VIGNETTING);
+ holder.menuContainer.setEnabled(enabled);
+ holder.menuItemSettingKey.setEnabled(enabled);
+ holder.menuItemSettingValue.setEnabled(enabled);
}
@NonNull
|