From ac3efa249db6d07816861d40d587e0b87465d631 Mon Sep 17 00:00:00 2001 From: Muhammad Ibrahim Rahman <muhammad_ibrahim.rahman@mailbox.tu-dresden.de> Date: Thu, 8 Aug 2019 01:58:03 +0200 Subject: [PATCH] Add an Openlicht URL preference --- mobile/build.gradle | 3 --- .../openhab/habdroid/ui/PreferencesActivity.java | 3 +++ .../habdroid/ui/RecognitionsActivity.java | 2 +- .../org/openhab/habdroid/ui/WidgetAdapter.java | 6 ++++++ .../org/openhab/habdroid/util/Constants.java | 1 + .../habdroid/util/RetrofitClientInstance.java | 16 +++++++++++++--- mobile/src/main/res/values/strings.xml | 2 ++ .../res/xml/openlicht_connection_preferences.xml | 11 +++++++++++ mobile/src/main/res/xml/preferences.xml | 7 +++++++ 9 files changed, 44 insertions(+), 7 deletions(-) create mode 100644 mobile/src/main/res/xml/openlicht_connection_preferences.xml diff --git a/mobile/build.gradle b/mobile/build.gradle index 0500571d..62b76970 100644 --- a/mobile/build.gradle +++ b/mobile/build.gradle @@ -122,9 +122,6 @@ dependencies { exclude group: 'com.intellij', module: 'annotations' } - // MaterialDialogs - implementation 'com.afollestad.material-dialogs:core:2.0.0-beta4' - // Google Maps fullImplementation 'com.google.android.gms:play-services-maps:12.0.1' // GCM diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java index 91b0d124..4fac42a0 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java @@ -25,6 +25,8 @@ import android.preference.PreferenceScreen; import android.text.TextUtils; import android.util.Log; import android.view.MenuItem; +import android.widget.EditText; + import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; import androidx.annotation.StringRes; @@ -227,6 +229,7 @@ public class PreferencesActivity extends AppCompatActivity { final Preference localConnPref = findPreference(Constants.SUBSCREEN_LOCAL_CONNECTION); final Preference remoteConnPref = findPreference(Constants.SUBSCREEN_REMOTE_CONNECTION); + final Preference openlichtConnPref = findPreference(Constants.PREFERENCE_OPENLICHT_URL); final Preference themePref = findPreference(Constants.PREFERENCE_THEME); final Preference clearCachePref = findPreference(Constants.PREFERENCE_CLEAR_CACHE); final Preference clearDefaultSitemapPref = diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java b/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java index cd222572..f3bdc065 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java @@ -62,7 +62,7 @@ public class RecognitionsActivity extends AppCompatActivity{ progressDialog.show(); // Interface for the RetrofitInstance - GetDataService service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class); + GetDataService service = RetrofitClientInstance.getRetrofitInstance(this).create(GetDataService.class); Call<List<Recognitions>> call = service.getAllRecognitions(); call.enqueue(new Callback<List<Recognitions>>() { diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java b/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java index 2618679b..0c8b8f92 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java @@ -1066,15 +1066,21 @@ public class WidgetAdapter extends RecyclerView.Adapter<WidgetAdapter.ViewHolder float[] initialColor = mBoundItem.stateAsHsv(); if (initialColor != null) { colorPicker.setColor(Color.HSVToColor(initialColor)); + } new AlertDialog.Builder(contentView.getContext()) .setView(contentView) .setNegativeButton(R.string.close, null) .show(); + + ArrayList list = new ArrayList(); + list.add(Color.HSVToColor(initialColor)); + } } + public static class MjpegVideoViewHolder extends ViewHolder { private final ImageView mImageView; private MjpegStreamer mStreamer; diff --git a/mobile/src/main/java/org/openhab/habdroid/util/Constants.java b/mobile/src/main/java/org/openhab/habdroid/util/Constants.java index 6f622852..9ee7d48e 100644 --- a/mobile/src/main/java/org/openhab/habdroid/util/Constants.java +++ b/mobile/src/main/java/org/openhab/habdroid/util/Constants.java @@ -19,6 +19,7 @@ public class Constants { public static final String PREFERENCE_SITEMAP_LABEL = "default_openhab_sitemap_label"; public static final String PREFERENCE_REMOTE_URL = "default_openhab_alturl"; public static final String PREFERENCE_LOCAL_URL = "default_openhab_url"; + public static final String PREFERENCE_OPENLICHT_URL = "default_openlicht_url"; public static final String PREFERENCE_THEME = "default_openhab_theme"; public static final String PREFERENCE_ANIMATION = "default_openhab_animation"; public static final String PREFERENCE_DEMOMODE = "default_openhab_demomode"; diff --git a/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java b/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java index 24460184..581fe0cc 100644 --- a/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java +++ b/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java @@ -1,8 +1,15 @@ package org.openhab.habdroid.util; +import android.app.Activity; +import android.content.SharedPreferences; +import android.preference.PreferenceActivity; +import android.preference.PreferenceManager; + import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; +import static android.content.Context.MODE_PRIVATE; + /* * OpenLicht * Use Retrofit to call the API @@ -12,12 +19,15 @@ import retrofit2.converter.gson.GsonConverterFactory; public class RetrofitClientInstance { private static Retrofit retrofit; - private static final String BASE_URL = "http://10.0.2.2:5000"; - public static Retrofit getRetrofitInstance() { +// private static final String BASE_URL = "http://10.0.2.2:5000"; + + public static Retrofit getRetrofitInstance(Activity activity) { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity); + String openlichtUrl = preferences.getString("default_openlicht_url", null); if (retrofit == null) { retrofit = new Retrofit.Builder() - .baseUrl(BASE_URL) + .baseUrl(openlichtUrl) .addConverterFactory(GsonConverterFactory.create()) .build(); } diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml index 2ec1e451..154be608 100644 --- a/mobile/src/main/res/values/strings.xml +++ b/mobile/src/main/res/values/strings.xml @@ -58,6 +58,7 @@ <string name="settings_current_default_sitemap">Current default Sitemap: %1$s</string> <string name="settings_openhab_alt_connection">Remote</string> <string name="settings_openhab_connection">Local</string> + <string name="settings_openlicht_connection">Openlicht</string> <string name="settings_notification_vibration">Notification vibration</string> <string name="settings_notification_vibration_off">Off</string> <string name="settings_notification_vibration_short">Short</string> @@ -69,6 +70,7 @@ <string name="settings_notification_vibration_value_twice" translatable="false">twice</string> <string name="settings_connection_summary">Connected to %s</string> <string name="settings_insecure_connection_summary">Insecurely connected to %s</string> + <string name="settings_openlicht_connection_summary">Set your Openlicht URL here</string> <!-- App messages strings --> <string name="title_voice_widget">openHAB voice commands</string> diff --git a/mobile/src/main/res/xml/openlicht_connection_preferences.xml b/mobile/src/main/res/xml/openlicht_connection_preferences.xml new file mode 100644 index 00000000..485e371f --- /dev/null +++ b/mobile/src/main/res/xml/openlicht_connection_preferences.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" + android:title="@string/settings_openhab_alt_connection"> + <org.openhab.habdroid.ui.widget.UrlInputPreference + android:defaultValue="@string/empty_string" + android:inputType="textNoSuggestions" + android:key="default_openhab_alturl" + android:summary="@string/settings_openhab_alturl_summary" + android:title="@string/settings_openhab_alturl" + android:icon="@drawable/ic_earth_grey_24dp" /> +</PreferenceScreen> \ No newline at end of file diff --git a/mobile/src/main/res/xml/preferences.xml b/mobile/src/main/res/xml/preferences.xml index 962af85b..6827efdc 100644 --- a/mobile/src/main/res/xml/preferences.xml +++ b/mobile/src/main/res/xml/preferences.xml @@ -20,6 +20,13 @@ android:title="@string/settings_openhab_alt_connection" android:dependency="default_openhab_demomode" android:icon="@drawable/ic_tree_grey_24dp" /> + <EditTextPreference + android:defaultValue="@string/empty_string" + android:inputType="textUri" + android:key="default_openlicht_url" + android:summary="@string/settings_openlicht_connection_summary" + android:title="@string/settings_openlicht_connection" + android:icon="@drawable/ic_earth_grey_24dp" /> <org.openhab.habdroid.ui.widget.SslClientCertificatePreference android:defaultValue="@string/settings_openhab_none" android:key="default_openhab_sslclientcert" -- GitLab