Add delete contact funcionalityg
parent
5e4e1692e6
commit
a0cea8b8da
|
@ -60,7 +60,7 @@
|
|||
<ConfirmationsSetting value="0" id="Add" />
|
||||
<ConfirmationsSetting value="0" id="Remove" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
<component name="ProjectType">
|
||||
|
|
|
@ -12,6 +12,7 @@ public class NetworkingConstants {
|
|||
public static final String API_LOGOUT_ENDPOINT = "odjava";
|
||||
public static final String API_REGISTRATION_ENDPOINT = "dodaj";
|
||||
public static final String API_CONTACTS_ENDPOINT = "contacts";
|
||||
public static final String API_CONTACTS_DELETE_ENDPOINT = "contacts/{id}";
|
||||
public static final String API_PROFILE_ENDPOINT = "profile";
|
||||
public static final String API_PASSWORD_UPDATE_ENDPOINT = API_PROFILE_ENDPOINT + "/password";
|
||||
public static final String API_SEARCH_ENDPOINT = "search";
|
||||
|
|
|
@ -9,6 +9,8 @@ import retrofit2.http.Body;
|
|||
import retrofit2.http.DELETE;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Path;
|
||||
import retrofit2.http.Url;
|
||||
import rx.Observable;
|
||||
|
||||
/**
|
||||
|
@ -26,7 +28,7 @@ public interface ContactsAPI {
|
|||
@POST(NetworkingConstants.API_CONTACTS_ENDPOINT)
|
||||
Observable<Object> saveContact(@Body ContactRequest contactRequest);
|
||||
|
||||
@DELETE(NetworkingConstants.API_CONTACTS_ENDPOINT)
|
||||
Observable<Object> deleteContact(@Body ContactRequest contactRequest);
|
||||
@DELETE(NetworkingConstants.API_CONTACTS_DELETE_ENDPOINT)
|
||||
Observable<Object> deleteContact(@Path("id") String id);
|
||||
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ public class ContactsAPIService {
|
|||
}
|
||||
|
||||
public Observable<Object> deleteContact(ContactRequest request) {
|
||||
return RestClient.getInstance().getContactsAPI().deleteContact(request)
|
||||
return RestClient.getInstance().getContactsAPI().deleteContact(request.getUsername())
|
||||
.doOnError(handleApiErrors);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import android.util.Pair;
|
|||
import android.view.View;
|
||||
|
||||
import com.smarthomies.realtimetalk.RTTActivity;
|
||||
import com.smarthomies.realtimetalk.database.UserDAO;
|
||||
import com.smarthomies.realtimetalk.managers.AccountManager;
|
||||
import com.smarthomies.realtimetalk.managers.AuthenticationManager;
|
||||
import com.smarthomies.realtimetalk.managers.ContactsManager;
|
||||
|
@ -23,6 +24,7 @@ import com.smarthomies.realtimetalk.views.activities.SearchActivity;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import io.realm.Realm;
|
||||
import rx.Observable;
|
||||
import rx.Subscriber;
|
||||
import rx.Subscription;
|
||||
|
@ -140,6 +142,15 @@ public class MainViewModel extends BaseObservable {
|
|||
}
|
||||
|
||||
public void onLogoutDone() {
|
||||
Realm realm = null;
|
||||
try {
|
||||
realm = Realm.getDefaultInstance();
|
||||
new UserDAO().deleteAll(realm);
|
||||
} finally {
|
||||
if(realm != null) {
|
||||
realm.close();
|
||||
}
|
||||
}
|
||||
NavigationSubject.getInstance().onNext(new Pair<Class<? extends RTTActivity>, Bundle>(LoginActivity.class, null));
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import android.view.View;
|
|||
import android.widget.ImageView;
|
||||
|
||||
import com.smarthomies.realtimetalk.R;
|
||||
import com.smarthomies.realtimetalk.database.UserDAO;
|
||||
import com.smarthomies.realtimetalk.managers.ContactsManager;
|
||||
import com.smarthomies.realtimetalk.models.db.User;
|
||||
import com.smarthomies.realtimetalk.views.activities.CallActivity;
|
||||
|
@ -18,6 +19,8 @@ import com.squareup.picasso.Picasso;
|
|||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import io.realm.Realm;
|
||||
import rx.Observable;
|
||||
import rx.Subscriber;
|
||||
import rx.Subscription;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
|
@ -37,7 +40,7 @@ public class UserViewModel extends BaseObservable {
|
|||
}
|
||||
|
||||
public UserViewModel(User model) {
|
||||
this.model = model;
|
||||
setModel(model);
|
||||
}
|
||||
|
||||
public void setModel(User model) {
|
||||
|
@ -45,6 +48,21 @@ public class UserViewModel extends BaseObservable {
|
|||
if (model == null) {
|
||||
this.model = new User();
|
||||
}
|
||||
|
||||
Realm realm = null;
|
||||
try {
|
||||
realm = Realm.getDefaultInstance();
|
||||
if (new UserDAO().findUserById(realm, this.model.getId()) != null) {
|
||||
state.set(true);
|
||||
} else {
|
||||
state.set(false);
|
||||
}
|
||||
} finally {
|
||||
if(realm != null) {
|
||||
realm.close();
|
||||
}
|
||||
}
|
||||
|
||||
notifyChange();
|
||||
}
|
||||
|
||||
|
@ -71,8 +89,11 @@ public class UserViewModel extends BaseObservable {
|
|||
return new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
final Subscription subscription = new ContactsManager()
|
||||
.saveContact(model)
|
||||
Observable<Object> objectObservable = state.get()
|
||||
? new ContactsManager().deleteContact(model)
|
||||
: new ContactsManager().saveContact(model);
|
||||
|
||||
final Subscription subscription = objectObservable
|
||||
.delaySubscription(3000, TimeUnit.MILLISECONDS)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
|
@ -93,7 +114,8 @@ public class UserViewModel extends BaseObservable {
|
|||
});
|
||||
Log.d(TAG, "onClick: ");
|
||||
state.set(!state.get());
|
||||
Snackbar.make(v, model.getFirstName() + " " + model.getLastName() + " added to conctacts.", Snackbar.LENGTH_LONG)
|
||||
String action = state.get() ? "added" : "removed";
|
||||
Snackbar.make(v, model.getFirstName() + " " + model.getLastName() + " " + action + " to contacts.", Snackbar.LENGTH_LONG)
|
||||
.setDuration(3000)
|
||||
.setAction("Undo", new View.OnClickListener() {
|
||||
@Override
|
||||
|
|
Loading…
Reference in New Issue