mirror of
https://github.com/vernu/textbee.git
synced 2026-04-18 13:58:38 -04:00
register device on server with key and fcm token
This commit is contained in:
@@ -43,4 +43,6 @@ dependencies {
|
||||
implementation 'com.google.firebase:firebase-messaging-directboot'
|
||||
|
||||
implementation 'com.google.code.gson:gson:2.9.0'
|
||||
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
|
||||
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
||||
}
|
||||
14
app/src/main/java/com/vernu/sms/GatewayApiService.java
Normal file
14
app/src/main/java/com/vernu/sms/GatewayApiService.java
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.vernu.sms;
|
||||
|
||||
import com.vernu.sms.dtos.UpdateFCMTokenInputDTO;
|
||||
import com.vernu.sms.dtos.UpdateFCMTokenResponseDTO;
|
||||
|
||||
import retrofit2.Call;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Path;
|
||||
|
||||
public interface GatewayApiService {
|
||||
@POST("gateway/devices/{deviceId}/updateFCMToken")
|
||||
Call<UpdateFCMTokenResponseDTO> updateFCMToken(@Path("deviceId") String deviceId, @Body() UpdateFCMTokenInputDTO body);
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import android.Manifest;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
@@ -19,9 +20,18 @@ import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
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.helpers.SharedPreferenceHelper;
|
||||
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
import retrofit2.Retrofit;
|
||||
import retrofit2.converter.gson.GsonConverterFactory;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
private Context mContext;
|
||||
@@ -63,20 +73,49 @@ public class MainActivity extends AppCompatActivity {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
String newKey = gatewayKeyEditText.getText().toString();
|
||||
SharedPreferenceHelper.setSharedPreferenceString(mContext, "GATEWAY_KEY", newKey);
|
||||
|
||||
FirebaseMessaging.getInstance().getToken()
|
||||
.addOnCompleteListener(new OnCompleteListener<String>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<String> task) {
|
||||
if (!task.isSuccessful()) {
|
||||
Snackbar.make(view, "Failed to obtain FCM Token :(", Snackbar.LENGTH_LONG).show();
|
||||
return;
|
||||
}
|
||||
String token = task.getResult();
|
||||
Toast.makeText(MainActivity.this, token, Toast.LENGTH_SHORT).show();
|
||||
fcmTokenEditText.setText(token);
|
||||
Retrofit retrofit = new Retrofit.Builder()
|
||||
.baseUrl("https://vernu-sms.herokuapp.com/api/v1/")
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.build();
|
||||
|
||||
GatewayApiService service = retrofit.create(GatewayApiService.class);
|
||||
Call<UpdateFCMTokenResponseDTO> apiCall = service.updateFCMToken(newKey, new UpdateFCMTokenInputDTO(token));
|
||||
apiCall.enqueue(new Callback<UpdateFCMTokenResponseDTO>() {
|
||||
@Override
|
||||
public void onResponse(Call<UpdateFCMTokenResponseDTO> call, Response<UpdateFCMTokenResponseDTO> response) {
|
||||
|
||||
if (response.isSuccessful()) {
|
||||
SharedPreferenceHelper.setSharedPreferenceString(mContext, "GATEWAY_KEY", newKey);
|
||||
Log.e("API_RESP", response.toString());
|
||||
Snackbar.make(view, "DONE :)", Snackbar.LENGTH_LONG).show();
|
||||
|
||||
} else {
|
||||
Snackbar.make(view, response.message(), Snackbar.LENGTH_LONG).show();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<UpdateFCMTokenResponseDTO> call, Throwable t) {
|
||||
Snackbar.make(view, "An error occured :(", Snackbar.LENGTH_LONG).show();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.vernu.sms.dtos;
|
||||
|
||||
public class UpdateFCMTokenInputDTO {
|
||||
public String fcmToken;
|
||||
|
||||
public UpdateFCMTokenInputDTO(String fcmToken) {
|
||||
this.fcmToken = fcmToken;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.vernu.sms.dtos;
|
||||
|
||||
public class UpdateFCMTokenResponseDTO {
|
||||
public boolean success;
|
||||
public Object data;
|
||||
public String error;
|
||||
}
|
||||
@@ -7,40 +7,40 @@ public class SharedPreferenceHelper {
|
||||
private final static String PREF_FILE = "PREF";
|
||||
|
||||
|
||||
public static void setSharedPreferenceString(Context context, String key, String value){
|
||||
public static void setSharedPreferenceString(Context context, String key, String value) {
|
||||
SharedPreferences settings = context.getSharedPreferences(PREF_FILE, 0);
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
editor.putString(key, value);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static void setSharedPreferenceInt(Context context, String key, int value){
|
||||
public static void setSharedPreferenceInt(Context context, String key, int value) {
|
||||
SharedPreferences settings = context.getSharedPreferences(PREF_FILE, 0);
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
editor.putInt(key, value);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static void setSharedPreferenceBoolean(Context context, String key, boolean value){
|
||||
public static void setSharedPreferenceBoolean(Context context, String key, boolean value) {
|
||||
SharedPreferences settings = context.getSharedPreferences(PREF_FILE, 0);
|
||||
SharedPreferences.Editor editor = settings.edit();
|
||||
editor.putBoolean(key, value);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static String getSharedPreferenceString(Context context, String key, String defValue){
|
||||
public static String getSharedPreferenceString(Context context, String key, String defValue) {
|
||||
SharedPreferences settings = context.getSharedPreferences(PREF_FILE, 0);
|
||||
return settings.getString(key, defValue);
|
||||
}
|
||||
|
||||
|
||||
static int getSharedPreferenceInt(Context context, String key, int defValue){
|
||||
static int getSharedPreferenceInt(Context context, String key, int defValue) {
|
||||
SharedPreferences settings = context.getSharedPreferences(PREF_FILE, 0);
|
||||
return settings.getInt(key, defValue);
|
||||
}
|
||||
|
||||
|
||||
static boolean getSharedPreferenceBoolean(Context context, String key, boolean defValue){
|
||||
static boolean getSharedPreferenceBoolean(Context context, String key, boolean defValue) {
|
||||
SharedPreferences settings = context.getSharedPreferences(PREF_FILE, 0);
|
||||
return settings.getBoolean(key, defValue);
|
||||
}
|
||||
|
||||
@@ -51,6 +51,8 @@
|
||||
android:ems="10"
|
||||
android:gravity="start|top"
|
||||
android:inputType="textMultiLine"
|
||||
android:enabled="false"
|
||||
android:hint="FCM Token"
|
||||
app:layout_constraintEnd_toEndOf="@+id/gatewayKeyEditText"
|
||||
app:layout_constraintStart_toStartOf="@+id/gatewayKeyEditText"
|
||||
app:layout_constraintTop_toBottomOf="@+id/gatewayKeyEditText" />
|
||||
|
||||
Reference in New Issue
Block a user