diff --git a/app/release/release/fmtBeta0.9.5v18.aab b/app/release/release/fmtBeta0.9.5v18.aab new file mode 100644 index 0000000..fb0edf9 Binary files /dev/null and b/app/release/release/fmtBeta0.9.5v18.aab differ diff --git a/app/src/main/java/com/uam/wmi/findmytutor/activity/BlackList.java b/app/src/main/java/com/uam/wmi/findmytutor/activity/BlackList.java index 6f7e27a..607c7c5 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/activity/BlackList.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/activity/BlackList.java @@ -1,10 +1,12 @@ package com.uam.wmi.findmytutor.activity; +import android.annotation.SuppressLint; import android.os.Bundle; import android.support.design.widget.CoordinatorLayout; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.ActionBar; +import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.DefaultItemAnimator; import android.support.v7.widget.LinearLayoutManager; @@ -12,20 +14,30 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.util.Log; +import android.view.LayoutInflater; import android.view.View; +import android.widget.Button; +import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.jakewharton.retrofit2.adapter.rxjava2.HttpException; +import com.mapbox.geojson.Point; +import com.mapbox.mapboxsdk.geometry.LatLng; import com.uam.wmi.findmytutor.R; import com.uam.wmi.findmytutor.adapters.BlackListAdapter; +import com.uam.wmi.findmytutor.model.PredefinedCoordViewModel; +import com.uam.wmi.findmytutor.model.StudentIdModel; import com.uam.wmi.findmytutor.model.User; +import com.uam.wmi.findmytutor.model.UserResponseModel; import com.uam.wmi.findmytutor.network.ApiClient; +import com.uam.wmi.findmytutor.service.PredefinedStatusesService; import com.uam.wmi.findmytutor.service.UserService; import com.uam.wmi.findmytutor.utils.MyDividerItemDecoration; import com.uam.wmi.findmytutor.utils.PrefUtils; import com.uam.wmi.findmytutor.utils.RecyclerTouchListener; import com.uam.wmi.findmytutor.utils.RestApiHelper; +import com.uam.wmi.findmytutor.utils.SharingLevel; import java.util.ArrayList; import java.util.List; @@ -49,6 +61,9 @@ public class BlackList extends AppCompatActivity { @BindView(R.id.black_list_empty_text_view) TextView noNotesView; + @BindView(R.id.add_to_black_list_fab) + FloatingActionButton addToBlackListFab; + private BlackListAdapter mAdapter; private List blacklistedUsers = new ArrayList<>(); @@ -92,7 +107,9 @@ public class BlackList extends AppCompatActivity { })); - fetchBlackListedUsers(PrefUtils.getUserId(getApplicationContext())); + addToBlackListFab.setOnClickListener(this::showFabDialog); + + fetchBlackListedUsers(PrefUtils.getUserId(getApplicationContext())); } private void fetchBlackListedUsers(String userId) { @@ -103,9 +120,12 @@ public class BlackList extends AppCompatActivity { .subscribeWith(new DisposableSingleObserver>() { @Override public void onSuccess(List users) { + blacklistedUsers.addAll(users); mAdapter.notifyDataSetChanged(); Log.e("BLACKLIST","fetch success"); + Snackbar.make(getWindow().getDecorView().getRootView(), "fetch success", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); toggleEmptyNotes(); } @@ -117,6 +137,61 @@ public class BlackList extends AppCompatActivity { ); } + + private void showFabDialog(View v){ + LayoutInflater layoutInflaterAndroid = LayoutInflater.from(getApplicationContext()); + @SuppressLint("InflateParams") View view = layoutInflaterAndroid.inflate(R.layout.black_list_fab_modal, null); + AlertDialog.Builder alertDialogBuilderUserInput = new android.support.v7.app.AlertDialog.Builder(this); + + alertDialogBuilderUserInput.setView(view).setPositiveButton(getApplicationContext().getString(R.string.modal_location_send), null); + + alertDialogBuilderUserInput + .setPositiveButton(R.string.add, null) + .setNegativeButton(R.string.cancel, null); + + final AlertDialog alertDialog = alertDialogBuilderUserInput.create(); + + EditText modalUserInput = view.findViewById(R.id.black_list_modal_input); + + alertDialog.setOnShowListener(dialogInterface -> { + Button sendButton = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE); + + Button dismissButton = alertDialog.getButton(AlertDialog.BUTTON_NEGATIVE); + + dismissButton.setOnClickListener(view1 -> alertDialog.dismiss()); + + sendButton.setOnClickListener(view1 -> { + String body = modalUserInput.getText().toString(); + + if (TextUtils.isEmpty(body)) { + Toast.makeText(getApplicationContext(), "Co tu napisac?", Toast.LENGTH_SHORT).show(); + modalUserInput.requestFocus(); + } else { +// send4Location(body, latLng); + sendUserToBlacklist(body); + alertDialog.dismiss(); + } + }); + }); + + alertDialog.show(); + } + + private void sendUserToBlacklist(String body) { + + UserService userService = ApiClient.getClient(getApplicationContext()).create(UserService.class); + StudentIdModel studentIdModel = new StudentIdModel(body); + Toast.makeText(getApplicationContext(), body, Toast.LENGTH_SHORT).show(); + //TODO subscribe Completable #how to do that? +// disposable.add( +// userService.addStudentToBlacklist(PrefUtils.getUserId(getApplicationContext()), studentIdModel) +// .observeOn(AndroidSchedulers.mainThread()) +// +// +// ); + } + + private void showError(Throwable e) { String message; diff --git a/app/src/main/java/com/uam/wmi/findmytutor/model/StudentIdModel.java b/app/src/main/java/com/uam/wmi/findmytutor/model/StudentIdModel.java index 3eea407..7c0f8a2 100644 --- a/app/src/main/java/com/uam/wmi/findmytutor/model/StudentIdModel.java +++ b/app/src/main/java/com/uam/wmi/findmytutor/model/StudentIdModel.java @@ -18,6 +18,14 @@ public class StudentIdModel extends BaseResponse{ @SerializedName("ldapLogin") private String ldapLogin = null; + /** + * + * @param studentId + */ + public StudentIdModel(String studentId){ + this.studentId = studentId; + } + public StudentIdModel studentId(String studentId) { this.studentId = studentId; return this; diff --git a/app/src/main/res/layout/activity_black_list.xml b/app/src/main/res/layout/activity_black_list.xml index e626095..2795643 100644 --- a/app/src/main/res/layout/activity_black_list.xml +++ b/app/src/main/res/layout/activity_black_list.xml @@ -67,7 +67,7 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index bac8b17..70085da 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -206,12 +206,15 @@ Zarówno manualne lokalizacje jak i statusy możesz dodać do listy, które potem możesz wybrać w wygodny sposób. - W tym panelu znajduje się listę profesorów. + W tym panelu znajduje się lista profesorów. Ich status symbolizowany jest przez kolorowe kropki: - użytkownik jest obecnie online - użytkownik jest obecnie offline - użytkownik jest nieaktywny (nie udostępnił żadnych danych o lokalizacji od conajmniej tygodnia) + Dodaj + Index użytkownika + Dodaj użytkownika do Blacklsi diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ad700bb..1fe443d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -294,6 +294,8 @@ - user is inactive (didn’t share any localization data since 7 days) BlackList + User index + Add user to Blacklist "Material is the metaphor.\n\n" @@ -383,5 +385,6 @@ "For example, position the FAB to one side of stream of a cards so the FAB won’t interfere " "when a user tries to pick up one of cards.\n\n" + Add