Skip to content
Snippets Groups Projects
Commit 4676c6ab authored by Julian Catoni's avatar Julian Catoni
Browse files

Added setAsDefault functionality

parent b765f1bc
Branches
No related tags found
No related merge requests found
......@@ -19,6 +19,7 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.preference.PreferenceManager;
......@@ -55,17 +56,25 @@ import com.larswerkman.holocolorpicker.ColorPicker;
import com.larswerkman.holocolorpicker.SaturationBar;
import com.larswerkman.holocolorpicker.ValueBar;
import okhttp3.HttpUrl;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import org.openhab.habdroid.R;
import org.openhab.habdroid.core.connection.Connection;
import org.openhab.habdroid.model.Item;
import org.openhab.habdroid.model.LabeledValue;
import org.openhab.habdroid.model.Recognition;
import org.openhab.habdroid.model.Widget;
import org.openhab.habdroid.ui.widget.DividerItemDecoration;
import org.openhab.habdroid.ui.widget.ExtendedSpinner;
import org.openhab.habdroid.ui.widget.SegmentedControlButton;
import org.openhab.habdroid.ui.widget.WidgetImageView;
import org.openhab.habdroid.util.Constants;
import org.openhab.habdroid.util.GetDataService;
import org.openhab.habdroid.util.MjpegStreamer;
import org.openhab.habdroid.util.RetrofitClientInstance;
import org.openhab.habdroid.util.Util;
import java.util.ArrayList;
......@@ -998,12 +1007,30 @@ public class WidgetAdapter extends RecyclerView.Adapter<WidgetAdapter.ViewHolder
private final static Handler mSnackbarHandler = new Handler();
private final static int DELAY_SNACKBAR = 2000;
private static void showSnackbar(View v, int delay) {
private static void showSnackbar(View v, int delay, String identifier) {
mSnackbarHandler.removeCallbacksAndMessages(null);
final View currentView = v.getRootView();
Snackbar snackbar = Snackbar.make(currentView, "Manuelle Änderung als neuen Standardwert setzen?", Snackbar.LENGTH_LONG);
snackbar.setAction("Setze als\nStandard", v1 -> {
Toast.makeText(currentView.getContext(), "Änderung wurde als neuer Standardwert gesetzt!", Toast.LENGTH_SHORT).show();
try {
GetDataService service = RetrofitClientInstance.getRetrofitInstance(currentView.getContext()).create(GetDataService.class);
Call<ResponseBody> call = service.setNewDefaultValue(identifier);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
Toast.makeText(currentView.getContext(), "Success", Toast.LENGTH_LONG).show();
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
Toast.makeText(currentView.getContext(), "Failure", Toast.LENGTH_LONG).show();
}
});
} catch (IllegalArgumentException e) {
Toast.makeText(currentView.getContext(), e.getLocalizedMessage(), Toast.LENGTH_LONG).show();
}
});
mSnackbarHandler.postDelayed(() -> {
snackbar.show();
......@@ -1047,7 +1074,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(itemView, DELAY_SNACKBAR);
WidgetAdapter.showSnackbar(itemView, DELAY_SNACKBAR, mBoundItem.name());
} else {
showColorPickerDialog();
}
......@@ -1097,7 +1124,7 @@ public class WidgetAdapter extends RecyclerView.Adapter<WidgetAdapter.ViewHolder
.setView(contentView)
.setOnDismissListener(dialog -> {
if (mColorChanged) {
WidgetAdapter.showSnackbar(itemView, 0);
WidgetAdapter.showSnackbar(itemView, 0, mBoundItem.name());
mColorChanged = false;
}
})
......
......@@ -4,8 +4,11 @@ import org.openhab.habdroid.model.Recognition;
import java.util.List;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.PUT;
import retrofit2.http.Path;
/*
* OpenLicht
......@@ -18,6 +21,9 @@ public interface GetDataService {
@GET("/events/long")
Call<List<Recognition>> getAllRecognitions();
@PUT("/feedback/{identifier}/newDefault")
Call<ResponseBody> setNewDefaultValue(@Path("identifier") String identifier);
// @GET("/recognitions")
// Call<List<Recognition>> getAllRecognitions();
......
package org.openhab.habdroid.util;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
......@@ -17,7 +18,7 @@ public class RetrofitClientInstance {
private static Retrofit retrofit;
public static Retrofit getRetrofitInstance(Activity activity) {
public static Retrofit getRetrofitInstance(Context activity) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
String url = preferences.getString(Constants.PREFERENCE_OPENLICHT_URL, "");
if (retrofit == null || !retrofit.baseUrl().toString().equals(url)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment