Browse Source

include device info (brand, model,...) when hitting updateDevice endpoint

pull/1/head
isra el 4 years ago
parent
commit
9145e67430
  1. 10
      app/src/main/java/com/vernu/sms/GatewayApiService.java
  2. 24
      app/src/main/java/com/vernu/sms/activities/MainActivity.java
  3. 110
      app/src/main/java/com/vernu/sms/dtos/UpdateDeviceInputDTO.java
  4. 2
      app/src/main/java/com/vernu/sms/dtos/UpdateDeviceResponseDTO.java
  5. 9
      app/src/main/java/com/vernu/sms/dtos/UpdateFCMTokenInputDTO.java

10
app/src/main/java/com/vernu/sms/GatewayApiService.java

@ -1,14 +1,14 @@
package com.vernu.sms;
import com.vernu.sms.dtos.UpdateFCMTokenInputDTO;
import com.vernu.sms.dtos.UpdateFCMTokenResponseDTO;
import com.vernu.sms.dtos.UpdateDeviceInputDTO;
import com.vernu.sms.dtos.UpdateDeviceResponseDTO;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.POST;
import retrofit2.http.PATCH;
import retrofit2.http.Path;
public interface GatewayApiService {
@POST("gateway/devices/{deviceId}/updateFCMToken")
Call<UpdateFCMTokenResponseDTO> updateFCMToken(@Path("deviceId") String deviceId, @Body() UpdateFCMTokenInputDTO body);
@PATCH("gateway/devices/{deviceId}")
Call<UpdateDeviceResponseDTO> updateFCMToken(@Path("deviceId") String deviceId, @Body() UpdateDeviceInputDTO body);
}

24
app/src/main/java/com/vernu/sms/activities/MainActivity.java

@ -8,6 +8,7 @@ import androidx.core.content.ContextCompat;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
@ -22,8 +23,8 @@ import com.google.android.material.snackbar.Snackbar;
import com.google.firebase.messaging.FirebaseMessaging;
import com.vernu.sms.GatewayApiService;
import com.vernu.sms.R;
import com.vernu.sms.dtos.UpdateFCMTokenInputDTO;
import com.vernu.sms.dtos.UpdateFCMTokenResponseDTO;
import com.vernu.sms.dtos.UpdateDeviceInputDTO;
import com.vernu.sms.dtos.UpdateDeviceResponseDTO;
import com.vernu.sms.helpers.SharedPreferenceHelper;
import retrofit2.Call;
@ -94,10 +95,21 @@ public class MainActivity extends AppCompatActivity {
.build();
GatewayApiService service = retrofit.create(GatewayApiService.class);
Call<UpdateFCMTokenResponseDTO> apiCall = service.updateFCMToken(newKey, new UpdateFCMTokenInputDTO(token));
apiCall.enqueue(new Callback<UpdateFCMTokenResponseDTO>() {
UpdateDeviceInputDTO updateDeviceInput = new UpdateDeviceInputDTO();
updateDeviceInput.setEnabled(true);
updateDeviceInput.setBrand(Build.BRAND);
updateDeviceInput.setManufacturer(Build.MANUFACTURER);
updateDeviceInput.setModel(Build.MODEL);
updateDeviceInput.setBuildId(Build.ID);
updateDeviceInput.setOs(Build.VERSION.BASE_OS);
Call<UpdateDeviceResponseDTO> apiCall = service.updateFCMToken(newKey, updateDeviceInput);
apiCall.enqueue(new Callback<UpdateDeviceResponseDTO>() {
@Override
public void onResponse(Call<UpdateFCMTokenResponseDTO> call, Response<UpdateFCMTokenResponseDTO> response) {
public void onResponse(Call<UpdateDeviceResponseDTO> call, Response<UpdateDeviceResponseDTO> response) {
if (response.isSuccessful()) {
SharedPreferenceHelper.setSharedPreferenceString(mContext, "GATEWAY_KEY", newKey);
@ -112,7 +124,7 @@ public class MainActivity extends AppCompatActivity {
}
@Override
public void onFailure(Call<UpdateFCMTokenResponseDTO> call, Throwable t) {
public void onFailure(Call<UpdateDeviceResponseDTO> call, Throwable t) {
Snackbar.make(view, "An error occured :(", Snackbar.LENGTH_LONG).show();
updateKeyButton.setEnabled(true);
updateKeyButton.setText("Update");

110
app/src/main/java/com/vernu/sms/dtos/UpdateDeviceInputDTO.java

@ -0,0 +1,110 @@
package com.vernu.sms.dtos;
public class UpdateDeviceInputDTO {
private String fcmToken;
private boolean enabled;
private String brand;
private String manufacturer;
private String model;
private String serial;
private String buildId;
private String os;
private String osVersion;
private String appVersionName;
private String appVersionCode;
public UpdateDeviceInputDTO() {
}
public UpdateDeviceInputDTO(String fcmToken) {
this.fcmToken = fcmToken;
}
public String getFcmToken() {
return fcmToken;
}
public void setFcmToken(String fcmToken) {
this.fcmToken = fcmToken;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getSerial() {
return serial;
}
public void setSerial(String serial) {
this.serial = serial;
}
public String getBuildId() {
return buildId;
}
public void setBuildId(String buildId) {
this.buildId = buildId;
}
public String getOs() {
return os;
}
public void setOs(String os) {
this.os = os;
}
public String getOsVersion() {
return osVersion;
}
public void setOsVersion(String osVersion) {
this.osVersion = osVersion;
}
public String getAppVersionName() {
return appVersionName;
}
public void setAppVersionName(String appVersionName) {
this.appVersionName = appVersionName;
}
public String getAppVersionCode() {
return appVersionCode;
}
public void setAppVersionCode(String appVersionCode) {
this.appVersionCode = appVersionCode;
}
}

2
app/src/main/java/com/vernu/sms/dtos/UpdateFCMTokenResponseDTO.java → app/src/main/java/com/vernu/sms/dtos/UpdateDeviceResponseDTO.java

@ -1,6 +1,6 @@
package com.vernu.sms.dtos;
public class UpdateFCMTokenResponseDTO {
public class UpdateDeviceResponseDTO {
public boolean success;
public Object data;
public String error;

9
app/src/main/java/com/vernu/sms/dtos/UpdateFCMTokenInputDTO.java

@ -1,9 +0,0 @@
package com.vernu.sms.dtos;
public class UpdateFCMTokenInputDTO {
public String fcmToken;
public UpdateFCMTokenInputDTO(String fcmToken) {
this.fcmToken = fcmToken;
}
}
Loading…
Cancel
Save