diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml index 526b4c2..a2d7c21 100644 --- a/android/.idea/gradle.xml +++ b/android/.idea/gradle.xml @@ -13,7 +13,6 @@ - diff --git a/android/.idea/vcs.xml b/android/.idea/vcs.xml index 94a25f7..6c0b863 100644 --- a/android/.idea/vcs.xml +++ b/android/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/android/app/src/main/java/com/vernu/sms/activities/MainActivity.java b/android/app/src/main/java/com/vernu/sms/activities/MainActivity.java index 95a325d..2146f7e 100644 --- a/android/app/src/main/java/com/vernu/sms/activities/MainActivity.java +++ b/android/app/src/main/java/com/vernu/sms/activities/MainActivity.java @@ -1,6 +1,5 @@ package com.vernu.sms.activities; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; @@ -17,19 +16,17 @@ import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; -import android.widget.CompoundButton; import android.widget.EditText; import android.widget.ImageButton; import android.widget.Switch; import android.widget.TextView; import android.widget.Toast; -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.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; +import com.vernu.sms.BuildConfig; import com.vernu.sms.services.GatewayApiService; import com.vernu.sms.R; import com.vernu.sms.dtos.RegisterDeviceInputDTO; @@ -57,8 +54,7 @@ public class MainActivity extends AppCompatActivity { private static final int SEND_SMS_PERMISSION_REQUEST_CODE = 0; private static final int SCAN_QR_REQUEST_CODE = 49374; - private static final String API_BASE_URL = "https://api.sms.real.et/api/v1/"; - + private static final String API_BASE_URL = BuildConfig.DEBUG ? "http://192.168.1.100:3006/api/v1/" : "https://api.sms.real.et/api/v1/"; private String deviceId = null; @@ -97,82 +93,61 @@ public class MainActivity extends AppCompatActivity { grantSMSPermissionBtn.setEnabled(false); grantSMSPermissionBtn.setText("SMS Permission Granted"); } else { - grantSMSPermissionBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - handleSMSRequestPermission(view); - } - }); + grantSMSPermissionBtn.setOnClickListener(view -> handleSMSRequestPermission(view)); } - copyDeviceIdImgBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); - ClipData clip = ClipData.newPlainText("Device ID", deviceId); - clipboard.setPrimaryClip(clip); - Snackbar.make(view, "Copied", Snackbar.LENGTH_LONG).show(); - } + copyDeviceIdImgBtn.setOnClickListener(view -> { + ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); + ClipData clip = ClipData.newPlainText("Device ID", deviceId); + clipboard.setPrimaryClip(clip); + Snackbar.make(view, "Copied", Snackbar.LENGTH_LONG).show(); }); apiKeyEditText.setText(SharedPreferenceHelper.getSharedPreferenceString(mContext, "API_KEY", "")); gatewaySwitch.setChecked(SharedPreferenceHelper.getSharedPreferenceBoolean(mContext, "GATEWAY_ENABLED", false)); - gatewaySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton compoundButton, boolean isCheked) { - View view = compoundButton.getRootView(); - compoundButton.setEnabled(false); - String key = apiKeyEditText.getText().toString(); - + gatewaySwitch.setOnCheckedChangeListener((compoundButton, isCheked) -> { + View view = compoundButton.getRootView(); + compoundButton.setEnabled(false); + String key = apiKeyEditText.getText().toString(); - RegisterDeviceInputDTO registerDeviceInput = new RegisterDeviceInputDTO(); - registerDeviceInput.setEnabled(isCheked); - Call apiCall = gatewayApiService.updateDevice(deviceId, key, registerDeviceInput); - apiCall.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { + RegisterDeviceInputDTO registerDeviceInput = new RegisterDeviceInputDTO(); + registerDeviceInput.setEnabled(isCheked); - if (response.isSuccessful()) { - SharedPreferenceHelper.setSharedPreferenceBoolean(mContext, "GATEWAY_ENABLED", isCheked); - Snackbar.make(view, "Gateway " + (isCheked ? "enabled" : "disabled"), Snackbar.LENGTH_LONG).show(); - - } else { - Snackbar.make(view, response.message(), Snackbar.LENGTH_LONG).show(); - } - - compoundButton.setEnabled(true); + Call apiCall = gatewayApiService.updateDevice(deviceId, key, registerDeviceInput); + apiCall.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + + if (response.isSuccessful()) { + Snackbar.make(view, "Gateway " + (isCheked ? "enabled" : "disabled"), Snackbar.LENGTH_LONG).show(); + SharedPreferenceHelper.setSharedPreferenceBoolean(mContext, "GATEWAY_ENABLED", isCheked); + compoundButton.setChecked(Boolean.TRUE.equals(response.body().data.get("enabled"))); + } else { + Snackbar.make(view, response.message(), Snackbar.LENGTH_LONG).show(); } + compoundButton.setEnabled(true); + } - @Override - public void onFailure(Call call, Throwable t) { - Snackbar.make(view, "An error occured :(", Snackbar.LENGTH_LONG).show(); - compoundButton.setEnabled(true); + @Override + public void onFailure(Call call, Throwable t) { + Snackbar.make(view, "An error occured :(", Snackbar.LENGTH_LONG).show(); + compoundButton.setEnabled(true); - } - }); + } + }); - } }); - registerDeviceBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - handleRegisterDevice(); + registerDeviceBtn.setOnClickListener(view -> handleRegisterDevice()); - } - }); - - scanQRBtn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - IntentIntegrator intentIntegrator = new IntentIntegrator(MainActivity.this); - intentIntegrator.setPrompt("Go to vernu-sms.vercel.app/dashboard and click Register Device to generate QR Code"); - intentIntegrator.setRequestCode(SCAN_QR_REQUEST_CODE); - intentIntegrator.initiateScan(); - } + scanQRBtn.setOnClickListener(view -> { + IntentIntegrator intentIntegrator = new IntentIntegrator(MainActivity.this); + intentIntegrator.setPrompt("Go to vernu-sms.vercel.app/dashboard and click Register Device to generate QR Code"); + intentIntegrator.setRequestCode(SCAN_QR_REQUEST_CODE); + intentIntegrator.initiateScan(); }); @@ -202,55 +177,54 @@ public class MainActivity extends AppCompatActivity { View view = findViewById(R.id.registerDeviceBtn); FirebaseMessaging.getInstance().getToken() - .addOnCompleteListener(new OnCompleteListener() { - @Override - public void onComplete(@NonNull Task task) { - if (!task.isSuccessful()) { - Snackbar.make(view, "Failed to obtain FCM Token :(", Snackbar.LENGTH_LONG).show(); + .addOnCompleteListener(task -> { + if (!task.isSuccessful()) { + Snackbar.make(view, "Failed to obtain FCM Token :(", Snackbar.LENGTH_LONG).show(); + registerDeviceBtn.setEnabled(true); + registerDeviceBtn.setText("Update"); + return; + } + String token = task.getResult(); + fcmTokenEditText.setText(token); + + RegisterDeviceInputDTO registerDeviceInput = new RegisterDeviceInputDTO(); + registerDeviceInput.setEnabled(true); + registerDeviceInput.setFcmToken(token); + registerDeviceInput.setBrand(Build.BRAND); + registerDeviceInput.setManufacturer(Build.MANUFACTURER); + registerDeviceInput.setModel(Build.MODEL); + registerDeviceInput.setBuildId(Build.ID); + registerDeviceInput.setOs(Build.VERSION.BASE_OS); + + + Call apiCall = gatewayApiService.registerDevice(newKey, registerDeviceInput); + apiCall.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + + if (response.isSuccessful()) { + SharedPreferenceHelper.setSharedPreferenceString(mContext, "API_KEY", newKey); + Log.e("API_RESP", response.toString()); + Snackbar.make(view, "Device Registration Successful :)", Snackbar.LENGTH_LONG).show(); + deviceId = response.body().data.get("_id").toString(); + deviceIdTxt.setText(deviceId); + SharedPreferenceHelper.setSharedPreferenceString(mContext, "DEVICE_ID", deviceId); + + } else { + Snackbar.make(view, response.message(), Snackbar.LENGTH_LONG).show(); + } registerDeviceBtn.setEnabled(true); registerDeviceBtn.setText("Update"); - return; } - String token = task.getResult(); - fcmTokenEditText.setText(token); - - RegisterDeviceInputDTO registerDeviceInput = new RegisterDeviceInputDTO(); - registerDeviceInput.setEnabled(true); - registerDeviceInput.setFcmToken(token); - registerDeviceInput.setBrand(Build.BRAND); - registerDeviceInput.setManufacturer(Build.MANUFACTURER); - registerDeviceInput.setModel(Build.MODEL); - registerDeviceInput.setBuildId(Build.ID); - registerDeviceInput.setOs(Build.VERSION.BASE_OS); - - - Call apiCall = gatewayApiService.registerDevice(newKey, registerDeviceInput); - apiCall.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - - if (response.isSuccessful()) { - SharedPreferenceHelper.setSharedPreferenceString(mContext, "API_KEY", newKey); - Log.e("API_RESP", response.toString()); - Snackbar.make(view, "Device Registration Successful :)", Snackbar.LENGTH_LONG).show(); - SharedPreferenceHelper.setSharedPreferenceString(mContext, "DEVICE_ID", response.body().data.get("_id").toString()); - - } else { - Snackbar.make(view, response.message(), Snackbar.LENGTH_LONG).show(); - } - registerDeviceBtn.setEnabled(true); - registerDeviceBtn.setText("Update"); - } - @Override - public void onFailure(Call call, Throwable t) { - Snackbar.make(view, "An error occured :(", Snackbar.LENGTH_LONG).show(); - registerDeviceBtn.setEnabled(true); - registerDeviceBtn.setText("Update"); + @Override + public void onFailure(Call call, Throwable t) { + Snackbar.make(view, "An error occured :(", Snackbar.LENGTH_LONG).show(); + registerDeviceBtn.setEnabled(true); + registerDeviceBtn.setText("Update"); - } - }); - } + } + }); }); }