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 f1f8e4dec3ee998546590a0d45434bdc8747eb35..72bb51e023123bea7edf9dc604e0e71f4d9a955a 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/PreferencesActivity.java @@ -231,6 +231,7 @@ public class PreferencesActivity extends AppCompatActivity { final Preference remoteConnPref = findPreference(Constants.SUBSCREEN_REMOTE_CONNECTION); final Preference themePref = findPreference(Constants.PREFERENCE_THEME); final Preference clearCachePref = findPreference(Constants.PREFERENCE_CLEAR_CACHE); + final Preference openLichtUrl = findPreference(Constants.PREFERENCE_OPENLICHT_URL); final Preference clearDefaultSitemapPref = findPreference(Constants.PREFERENCE_CLEAR_DEFAULT_SITEMAP); final Preference ringtonePref = findPreference(Constants.PREFERENCE_TONE); @@ -246,7 +247,14 @@ public class PreferencesActivity extends AppCompatActivity { clearDefaultSitemapPref.setSummary(getString( R.string.settings_current_default_sitemap, currentDefaultSitemapLabel)); } - + openLichtUrl.setOnPreferenceChangeListener((preference, newValue) -> { + if (!newValue.toString().isEmpty()) { + preference.setSummary(newValue.toString()); + return true; + } + return false; + }); + updateOpenLichtUrlPreference(openLichtUrl); updateConnectionSummary(Constants.SUBSCREEN_LOCAL_CONNECTION, Constants.PREFERENCE_LOCAL_URL, Constants.PREFERENCE_LOCAL_USERNAME, Constants.PREFERENCE_LOCAL_PASSWORD); @@ -390,6 +398,15 @@ public class PreferencesActivity extends AppCompatActivity { ? R.drawable.ic_smartphone_grey_24dp : R.drawable.ic_vibration_grey_24dp); } + private boolean updateOpenLichtUrlPreference(Preference pref) { + String currentUrl = getPreferenceString(Constants.PREFERENCE_OPENLICHT_URL, ""); + if (!currentUrl.isEmpty()) { + pref.setSummary(currentUrl); + return true; + } + return false; + } + private void updateConnectionSummary(String subscreenPrefKey, String urlPrefKey, String userPrefKey, String passwordPrefKey) { Preference pref = findPreference(subscreenPrefKey); 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 5455e68c069be455484d8087f56074eb26dc72cc..737100d71333aa48c78bcf49b2be25c50639396d 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/RecognitionsActivity.java @@ -75,26 +75,32 @@ public class RecognitionsActivity extends AppCompatActivity implements WidgetAda progressDialog.show(); // Interface for the RetrofitInstance - GetDataService service = RetrofitClientInstance.getRetrofitInstance(this).create(GetDataService.class); + try { + GetDataService service = RetrofitClientInstance.getRetrofitInstance(this).create(GetDataService.class); + Call<List<Recognition>> call = service.getAllRecognitions(); + call.enqueue(new Callback<List<Recognition>>() { - Call<List<Recognition>> call = service.getAllRecognitions(); - call.enqueue(new Callback<List<Recognition>>() { + @Override + public void onResponse(Call<List<Recognition>> call, Response<List<Recognition>> response) { - @Override - public void onResponse(Call<List<Recognition>> call, Response<List<Recognition>> response) { + progressDialog.dismiss(); + //generateDataList(response.body()); + generateCurrentActivity(response.body().get(0)); + generatePastActivities(response.body().subList(1, response.body().size())); + } + + @Override + public void onFailure(Call<List<Recognition>> call, Throwable t) { + progressDialog.dismiss(); + Toast.makeText(RecognitionsActivity.this, "Error loading Recognition. Please check your network connection.", Toast.LENGTH_SHORT).show(); + } + }); + } catch (IllegalArgumentException e) { + progressDialog.dismiss(); + Toast.makeText(this, e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); + } - progressDialog.dismiss(); - //generateDataList(response.body()); - generateCurrentActivity(response.body().get(0)); - generatePastActivities(response.body().subList(1, response.body().size())); - } - @Override - public void onFailure(Call<List<Recognition>> call, Throwable t) { - progressDialog.dismiss(); - Toast.makeText(RecognitionsActivity.this, "Error loading Recognition. Please check your network connection.", Toast.LENGTH_SHORT).show(); - } - }); } 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 cf2704ba52188f8f97cfdb94d016153cb60b0efa..cc07a3a417474b5cb646355b341c244deb6753b6 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/WidgetAdapter.java @@ -1000,7 +1000,7 @@ public class WidgetAdapter extends RecyclerView.Adapter<WidgetAdapter.ViewHolder private static void showSnackbar(View v, int delay) { mSnackbarHandler.removeCallbacksAndMessages(null); - final View currentView = v.getRootView().findFocus(); + final View currentView = v.getRootView(); mSnackbarHandler.postDelayed(() -> { Snackbar snackbar = Snackbar.make(currentView, "Manuelle Änderung als neuen Standardwert setzen?", Snackbar.LENGTH_LONG); snackbar.setAction("Setze als\nStandard", v1 -> { @@ -1047,7 +1047,7 @@ public class WidgetAdapter extends RecyclerView.Adapter<WidgetAdapter.ViewHolder if (v.getTag() instanceof String) { final String cmd = (String) v.getTag(); Util.sendItemCommand(mConnection.getAsyncHttpClient(), mBoundItem, cmd); - WidgetAdapter.showSnackbar(v, DELAY_SNACKBAR); + WidgetAdapter.showSnackbar(itemView, DELAY_SNACKBAR); } else { showColorPickerDialog(); } 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 1c73dc79522aba07ade1a62f1b12405c188cb33c..75bb74c436222daf842d04c7c169c8c23f213f76 100644 --- a/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java +++ b/mobile/src/main/java/org/openhab/habdroid/util/RetrofitClientInstance.java @@ -20,7 +20,7 @@ public class RetrofitClientInstance { public static Retrofit getRetrofitInstance(Activity activity) { SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity); String url = preferences.getString(Constants.PREFERENCE_OPENLICHT_URL, ""); - if (retrofit == null) { + if (retrofit == null || !retrofit.baseUrl().toString().equals(url)) { retrofit = new Retrofit.Builder() .baseUrl(url) .addConverterFactory(GsonConverterFactory.create())