mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
Fossil Q: Move notifications configuration to dedicated top-level device preference
This commit is contained in:
committed by
Arjan Schrijver
parent
7735b2d795
commit
7420876a88
@@ -968,7 +968,7 @@
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".devices.qhybrid.QHybridConfigActivity"
|
||||
android:name=".devices.qhybrid.QHybridNotificationsConfigActivity"
|
||||
android:label="@string/qhybrid_title_watchface"
|
||||
android:exported="true"
|
||||
android:parentActivityName=".activities.devicesettings.DeviceSettingsActivity" />
|
||||
@@ -976,7 +976,7 @@
|
||||
android:name=".devices.qhybrid.QHybridAppChooserActivity"
|
||||
android:label="@string/qhybrid_title_apps"
|
||||
android:exported="true"
|
||||
android:parentActivityName=".devices.qhybrid.QHybridConfigActivity" />
|
||||
android:parentActivityName=".devices.qhybrid.QHybridNotificationsConfigActivity" />
|
||||
<activity
|
||||
android:name=".devices.qhybrid.HRConfigActivity"
|
||||
android:label="@string/qhybrid_title_watchface"
|
||||
|
||||
+1
-1
@@ -267,10 +267,10 @@ public class QHybridCoordinator extends AbstractBLEDeviceCoordinator {
|
||||
// Q Hybrid watches, without eInk screen
|
||||
if (!isHybridHR(device)) {
|
||||
final List<Integer> generic = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.GENERIC);
|
||||
generic.add(R.xml.devicesettings_fossilqhybrid_legacy);
|
||||
generic.add(R.xml.devicesettings_qhybrid);
|
||||
generic.add(R.xml.devicesettings_fossilhybridhr_vibration);
|
||||
generic.add(R.xml.devicesettings_fossilhybridhr_calibration);
|
||||
deviceSpecificSettings.addRootScreen(R.xml.devicesettings_qhybrid_notifications);
|
||||
final List<Integer> developer = deviceSpecificSettings.addRootScreen(DeviceSpecificSettingsScreen.DEVELOPER);
|
||||
developer.add(R.xml.devicesettings_fossilhybrids_dev);
|
||||
return deviceSpecificSettings;
|
||||
|
||||
+13
-20
@@ -51,13 +51,12 @@ import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||
import nodomain.freeyourgadget.gadgetbridge.activities.AbstractGBActivity;
|
||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||
import nodomain.freeyourgadget.gadgetbridge.model.ItemWithDetails;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.qhybrid.QHybridSupport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.NotificationUtils;
|
||||
|
||||
public class QHybridConfigActivity extends AbstractGBActivity {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(QHybridConfigActivity.class);
|
||||
public class QHybridNotificationsConfigActivity extends AbstractGBActivity {
|
||||
private static final Logger LOG = LoggerFactory.getLogger(QHybridNotificationsConfigActivity.class);
|
||||
|
||||
PackageAdapter adapter;
|
||||
ArrayList<NotificationConfiguration> list;
|
||||
@@ -80,9 +79,9 @@ public class QHybridConfigActivity extends AbstractGBActivity {
|
||||
return;
|
||||
}
|
||||
|
||||
setContentView(R.layout.activity_qhybrid_settings);
|
||||
setContentView(R.layout.activity_qhybrid_apps_notifications);
|
||||
|
||||
setTitle(R.string.preferences_qhybrid_settings);
|
||||
setTitle(R.string.pref_header_notifications);
|
||||
|
||||
ListView appList = findViewById(R.id.qhybrid_appList);
|
||||
|
||||
@@ -97,13 +96,13 @@ public class QHybridConfigActivity extends AbstractGBActivity {
|
||||
list.add(null);
|
||||
appList.setAdapter(adapter = new PackageAdapter(this, R.layout.qhybrid_package_settings_item, list));
|
||||
appList.setOnItemLongClickListener((adapterView, view, i, l) -> {
|
||||
PopupMenu menu = new PopupMenu(QHybridConfigActivity.this, view);
|
||||
PopupMenu menu = new PopupMenu(QHybridNotificationsConfigActivity.this, view);
|
||||
menu.getMenu().add(0, 0, 0, "edit");
|
||||
menu.getMenu().add(0, 1, 1, "delete");
|
||||
menu.setOnMenuItemClickListener(menuItem -> {
|
||||
switch (menuItem.getItemId()) {
|
||||
case 0: {
|
||||
TimePicker picker = new TimePicker(QHybridConfigActivity.this, (NotificationConfiguration) adapterView.getItemAtPosition(i));
|
||||
TimePicker picker = new TimePicker(QHybridNotificationsConfigActivity.this, (NotificationConfiguration) adapterView.getItemAtPosition(i));
|
||||
picker.finishListener = (success, config) -> {
|
||||
setControl(false, null);
|
||||
if (success) {
|
||||
@@ -111,15 +110,15 @@ public class QHybridConfigActivity extends AbstractGBActivity {
|
||||
helper.saveNotificationConfiguration(config);
|
||||
final Intent intent = new Intent(QHybridSupport.QHYBRID_COMMAND_NOTIFICATION_CONFIG_CHANGED);
|
||||
intent.putExtra(GBDevice.EXTRA_DEVICE, device);
|
||||
LocalBroadcastManager.getInstance(QHybridConfigActivity.this).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(QHybridNotificationsConfigActivity.this).sendBroadcast(intent);
|
||||
} catch (Exception e) {
|
||||
GB.toast("error saving notification", Toast.LENGTH_SHORT, GB.ERROR, e);
|
||||
}
|
||||
refreshList();
|
||||
}
|
||||
};
|
||||
picker.handsListener = QHybridConfigActivity.this::setHands;
|
||||
picker.vibrationListener = QHybridConfigActivity.this::vibrate;
|
||||
picker.handsListener = QHybridNotificationsConfigActivity.this::setHands;
|
||||
picker.vibrationListener = QHybridNotificationsConfigActivity.this::vibrate;
|
||||
setControl(true, picker.getSettings());
|
||||
break;
|
||||
}
|
||||
@@ -128,7 +127,7 @@ public class QHybridConfigActivity extends AbstractGBActivity {
|
||||
helper.deleteNotificationConfiguration((NotificationConfiguration) adapterView.getItemAtPosition(i));
|
||||
final Intent intent = new Intent(QHybridSupport.QHYBRID_COMMAND_NOTIFICATION_CONFIG_CHANGED);
|
||||
intent.putExtra(GBDevice.EXTRA_DEVICE, device);
|
||||
LocalBroadcastManager.getInstance(QHybridConfigActivity.this).sendBroadcast(intent);
|
||||
LocalBroadcastManager.getInstance(QHybridNotificationsConfigActivity.this).sendBroadcast(intent);
|
||||
} catch (Exception e) {
|
||||
GB.toast("error deleting setting", Toast.LENGTH_SHORT, GB.ERROR, e);
|
||||
}
|
||||
@@ -146,16 +145,10 @@ public class QHybridConfigActivity extends AbstractGBActivity {
|
||||
Intent notificationIntent = new Intent(QHybridSupport.QHYBRID_COMMAND_NOTIFICATION);
|
||||
notificationIntent.putExtra(GBDevice.EXTRA_DEVICE, device);
|
||||
notificationIntent.putExtra("CONFIG", (NotificationConfiguration) adapterView.getItemAtPosition(i));
|
||||
LocalBroadcastManager.getInstance(QHybridConfigActivity.this).sendBroadcast(notificationIntent);
|
||||
LocalBroadcastManager.getInstance(QHybridNotificationsConfigActivity.this).sendBroadcast(notificationIntent);
|
||||
});
|
||||
}
|
||||
|
||||
@NonNull
|
||||
private String getDeviceInfoDetails(final String name) {
|
||||
ItemWithDetails deviceInfo = device.getDeviceInfo(name);
|
||||
return deviceInfo != null ? deviceInfo.getDetails() : "";
|
||||
}
|
||||
|
||||
private void setControl(boolean control, NotificationConfiguration config) {
|
||||
if (hasControl == control) return;
|
||||
Intent intent = new Intent(control ? QHybridSupport.QHYBRID_COMMAND_CONTROL : QHybridSupport.QHYBRID_COMMAND_UNCONTROL);
|
||||
@@ -232,11 +225,11 @@ public class QHybridConfigActivity extends AbstractGBActivity {
|
||||
NotificationConfiguration settings = getItem(position);
|
||||
|
||||
if (settings == null) {
|
||||
Button addButton = new Button(QHybridConfigActivity.this);
|
||||
Button addButton = new Button(QHybridNotificationsConfigActivity.this);
|
||||
addButton.setText("+");
|
||||
addButton.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
addButton.setOnClickListener(view1 -> {
|
||||
final Intent appChooserIntent = new Intent(QHybridConfigActivity.this, QHybridAppChooserActivity.class);
|
||||
final Intent appChooserIntent = new Intent(QHybridNotificationsConfigActivity.this, QHybridAppChooserActivity.class);
|
||||
appChooserIntent.putExtra(GBDevice.EXTRA_DEVICE, device);
|
||||
startActivityForResult(appChooserIntent, REQUEST_CODE_ADD_APP);
|
||||
});
|
||||
+2
-2
@@ -39,10 +39,10 @@ public class QHybridSettingsCustomizer implements DeviceSpecificSettingsCustomiz
|
||||
public void customizeSettings(final DeviceSpecificSettingsHandler handler, final Prefs prefs, final String rootKey) {
|
||||
handler.addPreferenceHandlerFor("use_activity_hand_as_notification_counter");
|
||||
|
||||
final Preference legacyPref = handler.findPreference("pref_key_qhybrid_legacy");
|
||||
final Preference legacyPref = handler.findPreference("notifications");
|
||||
if (legacyPref != null) {
|
||||
legacyPref.setOnPreferenceClickListener(preference -> {
|
||||
final Intent intent = new Intent(handler.getContext(), QHybridConfigActivity.class);
|
||||
final Intent intent = new Intent(handler.getContext(), QHybridNotificationsConfigActivity.class);
|
||||
intent.putExtra(GBDevice.EXTRA_DEVICE, handler.getDevice());
|
||||
handler.getContext().startActivity(intent);
|
||||
return true;
|
||||
|
||||
@@ -2294,8 +2294,6 @@
|
||||
<string name="menuitem_wechat_pay">WeChat Pay</string>
|
||||
<string name="menuitem_cards">Cards</string>
|
||||
<string name="menuitem_mi_ai">MI AI</string>
|
||||
<string name="preferences_qhybrid_settings">Q Hybrid Settings</string>
|
||||
<string name="preferences_qhybrid_settings_summary">Legacy settings for Q Hybrid watches</string>
|
||||
<string name="menuitem_music">Music</string>
|
||||
<string name="menuitem_more">More</string>
|
||||
<string name="menuitem_nfc">NFC</string>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_settings"
|
||||
android:key="pref_key_qhybrid_legacy"
|
||||
android:summary="@string/preferences_qhybrid_settings_summary"
|
||||
android:title="@string/preferences_qhybrid_settings" />
|
||||
|
||||
</androidx.preference.PreferenceScreen>
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<Preference
|
||||
android:key="notifications"
|
||||
android:title="@string/pref_header_notifications"
|
||||
android:icon="@drawable/ic_notifications" />
|
||||
|
||||
</androidx.preference.PreferenceScreen>
|
||||
Reference in New Issue
Block a user