Merge "Implement shared preference to maintain data for previous activity when user is moved to home screen and again come to current activity" into main
diff --git a/testapps/TestSatelliteApp/res/layout/activity_Datagram.xml b/testapps/TestSatelliteApp/res/layout/activity_Datagram.xml
index cf1265d..9e53f41 100644
--- a/testapps/TestSatelliteApp/res/layout/activity_Datagram.xml
+++ b/testapps/TestSatelliteApp/res/layout/activity_Datagram.xml
@@ -117,5 +117,12 @@
android:capitalize="characters"
android:textColor="@android:color/holo_blue_light"
android:textSize="15dp" />
+ <TextView
+ android:id="@+id/showErrorStatus"
+ android:layout_width="400dp"
+ android:layout_height="50dp"
+ android:capitalize="characters"
+ android:textColor="@android:color/holo_blue_light"
+ android:textSize="15dp" />
</LinearLayout>
</LinearLayout>
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Datagram.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Datagram.java
index dfa15f3..599f08b 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Datagram.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Datagram.java
@@ -27,6 +27,7 @@
import android.app.Activity;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.telephony.satellite.PointingInfo;
import android.telephony.satellite.SatelliteDatagram;
@@ -34,6 +35,7 @@
import android.telephony.satellite.SatelliteManager;
import android.telephony.satellite.SatelliteStateCallback;
import android.telephony.satellite.SatelliteTransmissionUpdateCallback;
+import android.telephony.satellite.stub.SatelliteError;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
@@ -49,7 +51,7 @@
*/
public class Datagram extends Activity {
- private static final String TAG = "DatagramSaloni";
+ private static final String TAG = "Datagram";
private static final int MAX_NUMBER_OF_STORED_STATES = 3;
private int mTransferState;
private int mModemState;
@@ -63,6 +65,11 @@
private SatelliteTransmissionUpdateCallbackTestApp mCallback;
private android.telephony.satellite.stub.SatelliteDatagram mReceivedDatagram;
+ private String mShowSatelliteModemStateTransition;
+ private String mShowDatagramSendStateTransition;
+ private String mShowDatagramReceiveStateTransition;
+ private static final long TIMEOUT = 3000;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -122,6 +129,7 @@
if (mModemStateQueue.size() > MAX_NUMBER_OF_STORED_STATES) {
mModemStateQueue.removeFirst();
}
+ mShowSatelliteModemStateTransition = getSatelliteModemStateTransition(mModemStateQueue);
Log.d(TAG, "onSatelliteModemStateChanged in TestApp: state=" + mModemState);
}
}
@@ -139,6 +147,7 @@
if (mSendQueue.size() > MAX_NUMBER_OF_STORED_STATES) {
mSendQueue.removeFirst();
}
+ mShowDatagramSendStateTransition = getTransferStateTransition(mSendQueue);
Log.d(TAG, "onSendDatagramStateChanged in TestApp: state =" + mTransferState
+ ", sendPendingCount =" + sendPendingCount + ", errorCode=" + errorCode);
}
@@ -151,68 +160,110 @@
if (mReceiveQueue.size() > MAX_NUMBER_OF_STORED_STATES) {
mReceiveQueue.removeFirst();
}
+ mShowDatagramReceiveStateTransition = getTransferStateTransition(mReceiveQueue);
Log.d(TAG, "onReceiveDatagramStateChanged in TestApp: state=" + mTransferState
+ ", receivePendingCount=" + receivePendingCount + ", errorCode=" + errorCode);
}
}
private void startSatelliteTransmissionUpdatesApp(View view) {
+ TextView textView = findViewById(R.id.text_id);
LinkedBlockingQueue<Integer> error = new LinkedBlockingQueue<>(1);
mSatelliteManager.requestSatelliteEnabled(true, true, Runnable::run, error::offer);
- mSatelliteManager.startSatelliteTransmissionUpdates(Runnable::run, error::offer, mCallback);
+ TextView showErrorStatusTextView = findViewById(R.id.showErrorStatus);
try {
- Integer value = error.poll(1000, TimeUnit.MILLISECONDS);
- TextView textView = findViewById(R.id.text_id);
- if (value == 0) {
- textView.setText("startSatelliteTransmissionUpdates is Successful");
- } else {
- textView.setText("Status for startSatelliteTransmissionUpdates : "
+ Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
+ if (value == null) {
+ showErrorStatusTextView.setText("Timed out to enable the satellite");
+ return;
+ } else if (value != SatelliteError.ERROR_NONE) {
+ showErrorStatusTextView.setText("Failed to enable satellite, error = "
+ SatelliteErrorUtils.mapError(value));
+ return;
}
} catch (InterruptedException e) {
- Log.e(TAG, "exception caught =" + e);
+ showErrorStatusTextView.setText("Enable SatelliteService exception caught = " + e);
+ return;
+ }
+ error.clear();
+ mSatelliteManager.startSatelliteTransmissionUpdates(Runnable::run, error::offer, mCallback);
+ try {
+ Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
+ if (value == null) {
+ textView.setText("Timed out to startSatelliteTransmissionUpdates");
+ } else if (value != SatelliteError.ERROR_NONE) {
+ textView.setText("Failed to startSatelliteTransmissionUpdates with error = "
+ + SatelliteErrorUtils.mapError(value));
+ } else {
+ textView.setText("startSatelliteTransmissionUpdates is successful");
+ }
+ } catch (InterruptedException e) {
+ textView.setText("startSatelliteTransmissionUpdates exception caught =" + e);
}
}
private void stopSatelliteTransmissionUpdatesApp(View view) {
+ TextView textView = findViewById(R.id.text_id);
LinkedBlockingQueue<Integer> error = new LinkedBlockingQueue<>(1);
mSatelliteManager.stopSatelliteTransmissionUpdates(mCallback, Runnable::run, error::offer);
try {
- Integer value = error.poll(1000, TimeUnit.MILLISECONDS);
- TextView textView = findViewById(R.id.text_id);
- if (value == 0) {
- textView.setText("stopSatelliteTransmissionUpdates is Successful");
- } else {
- textView.setText("Status for stopSatelliteTransmissionUpdates : "
+ Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
+ if (value == null) {
+ textView.setText("Timed out to stopSatelliteTransmissionUpdates");
+ } else if (value != SatelliteError.ERROR_NONE) {
+ textView.setText("Failed to stopSatelliteTransmissionUpdates with error = "
+ SatelliteErrorUtils.mapError(value));
+ } else {
+ textView.setText("stopSatelliteTransmissionUpdates is successful");
}
} catch (InterruptedException e) {
- Log.e(TAG, "exception caught =" + e);
+ textView.setText("stopSatelliteTransmissionUpdates exception caught =" + e);
}
}
private void pollPendingSatelliteDatagramsApp(View view) {
- mSatelliteManager.onDeviceAlignedWithSatellite(true);
- SatelliteTestApp.getTestSatelliteService().sendOnPendingDatagrams();
- /*SatelliteTestApp.getTestSatelliteService().sendOnSatelliteDatagramReceived(
- mReceivedDatagram, 0);*/
LinkedBlockingQueue<Integer> resultListener = new LinkedBlockingQueue<>(1);
+ TextView showErrorStatusTextView = findViewById(R.id.showErrorStatus);
+ TextView textView = findViewById(R.id.text_id);
+ mSatelliteManager.onDeviceAlignedWithSatellite(true);
+ if (SatelliteTestApp.getTestSatelliteService() != null) {
+ SatelliteTestApp.getTestSatelliteService().sendOnPendingDatagrams();
+ }
mSatelliteManager.requestSatelliteEnabled(true, true, Runnable::run, resultListener::offer);
+ try {
+ Integer value = resultListener.poll(TIMEOUT, TimeUnit.MILLISECONDS);
+ if (value == null) {
+ showErrorStatusTextView.setText("Timed out to enable the satellite");
+ return;
+ } else if (value != SatelliteError.ERROR_NONE) {
+ showErrorStatusTextView.setText("Failed to enable satellite, error = "
+ + SatelliteErrorUtils.mapError(value));
+ return;
+ }
+ resultListener.clear();
+ Log.d(TAG, "Poll to check queue is cleared = "
+ + resultListener.poll(TIMEOUT, TimeUnit.MILLISECONDS));
+ } catch (InterruptedException e) {
+ showErrorStatusTextView.setText("Enable SatelliteService exception caught = " + e);
+ return;
+ }
mSatelliteManager.pollPendingSatelliteDatagrams(Runnable::run, resultListener::offer);
try {
- Integer value = resultListener.poll(1000, TimeUnit.MILLISECONDS);
- TextView textView = findViewById(R.id.text_id);
- if (value == 0) {
- textView.setText("pollPendingSatelliteDatagrams is Successful");
- } else {
- textView.setText("Status for pollPendingSatelliteDatagrams : "
+ Integer value = resultListener.poll(TIMEOUT, TimeUnit.MILLISECONDS);
+ if (value == null) {
+ textView.setText("Timed out for poll message");
+ } else if (value != SatelliteError.ERROR_NONE) {
+ textView.setText("Failed to pollPendingSatelliteDatagrams with error = "
+ SatelliteErrorUtils.mapError(value));
+ } else {
+ textView.setText("pollPendingSatelliteDatagrams is successful");
}
} catch (InterruptedException e) {
- Log.e(TAG, "exception caught =" + e);
+ textView.setText("pollPendingSatelliteDatagrams exception caught =" + e);
}
}
private void sendSatelliteDatagramApp(View view) {
+ TextView textView = findViewById(R.id.text_id);
mSatelliteManager.onDeviceAlignedWithSatellite(true);
LinkedBlockingQueue<Integer> resultListener = new LinkedBlockingQueue<>(1);
String mText = "This is a test datagram message";
@@ -220,16 +271,17 @@
mSatelliteManager.sendSatelliteDatagram(SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE,
datagram, true, Runnable::run, resultListener::offer);
try {
- Integer value = resultListener.poll(1000, TimeUnit.MILLISECONDS);
- TextView textView = findViewById(R.id.text_id);
- if (value == 0) {
- textView.setText("sendSatelliteDatagram is Successful");
- } else {
- textView.setText("Status for sendSatelliteDatagram : "
+ Integer value = resultListener.poll(TIMEOUT, TimeUnit.MILLISECONDS);
+ if (value == null) {
+ textView.setText("Timed out for sendSatelliteDatagram");
+ } else if (value != SatelliteError.ERROR_NONE) {
+ textView.setText("Failed to sendSatelliteDatagram with error = "
+ SatelliteErrorUtils.mapError(value));
+ } else {
+ textView.setText("sendSatelliteDatagram is successful");
}
} catch (InterruptedException e) {
- Log.e(TAG, "exception caught =" + e);
+ textView.setText("sendSatelliteDatagram exception caught =" + e);
}
}
@@ -254,13 +306,13 @@
private void showDatagramSendStateTransitionApp(View view) {
TextView textView = findViewById(R.id.text_id);
textView.setText("Last datagram send state transition is : "
- + getTransferStateTransition(mSendQueue));
+ + mShowDatagramSendStateTransition);
}
private void showDatagramReceiveStateTransitionApp(View view) {
TextView textView = findViewById(R.id.text_id);
textView.setText("Last datagram receive state transition is : "
- + getTransferStateTransition(mReceiveQueue));
+ + mShowDatagramReceiveStateTransition);
}
private void registerForSatelliteModemStateChangedApp(View view) {
@@ -283,8 +335,8 @@
private void showSatelliteModemStateTransitionApp(View view) {
TextView textView = findViewById(R.id.text_id);
- textView.setText("Last modem transition state is: "
- + getSatelliteModemStateTransition(mModemStateQueue));
+ textView.setText(
+ "Last modem transition state is: " + mShowSatelliteModemStateTransition);
}
private String getSatelliteModemStateName(@SatelliteManager.SatelliteModemState int state) {
@@ -343,4 +395,46 @@
}
return sb.toString();
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ SharedPreferences sh = getSharedPreferences("TestSatelliteSharedPref", MODE_PRIVATE);
+ String modemStateTransition = sh.getString("modem_state",
+ mShowSatelliteModemStateTransition);
+ String datagramSendStateTransition = sh.getString("datagram_send_state",
+ mShowDatagramSendStateTransition);
+ String datagramReceiveStateTransition = sh.getString("datagram_receive_state",
+ mShowDatagramReceiveStateTransition);
+
+ // Setting the fetched data
+ mShowSatelliteModemStateTransition = modemStateTransition;
+ mShowDatagramSendStateTransition = datagramSendStateTransition;
+ mShowDatagramReceiveStateTransition = datagramReceiveStateTransition;
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ SharedPreferences sharedPreferences = getSharedPreferences("TestSatelliteSharedPref",
+ MODE_PRIVATE);
+ SharedPreferences.Editor myEdit = sharedPreferences.edit();
+
+ myEdit.putString("modem_state", mShowSatelliteModemStateTransition);
+ myEdit.putString("datagram_send_state", mShowDatagramSendStateTransition);
+ myEdit.putString("datagram_receive_state", mShowDatagramReceiveStateTransition);
+ myEdit.apply();
+ }
+
+ protected void onDestroy() {
+ super.onDestroy();
+ SharedPreferences sharedPreferences = getSharedPreferences("TestSatelliteSharedPref",
+ MODE_PRIVATE);
+ final SharedPreferences.Editor sharedPrefsEditor = sharedPreferences.edit();
+
+ sharedPrefsEditor.remove("modem_state");
+ sharedPrefsEditor.remove("datagram_send_state");
+ sharedPrefsEditor.remove("datagram_receive_state");
+ sharedPrefsEditor.commit();
+ }
}
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Provisioning.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Provisioning.java
index 4f6f7c7..5f25dee 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Provisioning.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/Provisioning.java
@@ -18,11 +18,13 @@
import android.app.Activity;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.CancellationSignal;
import android.os.OutcomeReceiver;
import android.telephony.satellite.SatelliteManager;
import android.telephony.satellite.SatelliteProvisionStateCallback;
+import android.telephony.satellite.stub.SatelliteError;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
@@ -43,6 +45,7 @@
private SatelliteManager mSatelliteManager;
private SatelliteProvisionStateCallbackTestApp mCallback;
+ private static final long TIMEOUT = 3000;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -82,6 +85,7 @@
}
private void provisionSatelliteServiceApp(View view) {
+ TextView textView = findViewById(R.id.text_id);
CancellationSignal cancellationSignal = new CancellationSignal();
LinkedBlockingQueue<Integer> error = new LinkedBlockingQueue<>(1);
String mText = "This is test provision data.";
@@ -89,26 +93,37 @@
mSatelliteManager.provisionSatelliteService("SATELLITE_TOKEN", testProvisionData,
cancellationSignal, Runnable::run, error::offer);
try {
- Integer value = error.poll(1000, TimeUnit.MILLISECONDS);
- TextView textView = findViewById(R.id.text_id);
- textView.setText("Status for provisionSatelliteService : "
- + SatelliteErrorUtils.mapError(value));
+ Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
+ if (value == null) {
+ textView.setText("Timed out to provision the satellite");
+ } else if (value != SatelliteError.ERROR_NONE) {
+ textView.setText("Failed to provision SatelliteService with error = "
+ + SatelliteErrorUtils.mapError(value));
+ } else {
+ textView.setText("Successfully provisioned the satellite");
+ }
} catch (InterruptedException e) {
- Log.e(TAG, "exception caught =" + e);
+ textView.setText("Provision SatelliteService exception caught =" + e);
}
}
private void deprovisionSatelliteServiceApp(View view) {
+ TextView textView = findViewById(R.id.text_id);
LinkedBlockingQueue<Integer> error = new LinkedBlockingQueue<>(1);
mSatelliteManager.deprovisionSatelliteService("SATELLITE_TOKEN", Runnable::run,
error::offer);
try {
- Integer value = error.poll(1000, TimeUnit.MILLISECONDS);
- TextView textView = findViewById(R.id.text_id);
- textView.setText("Status for deprovisionSatelliteService : "
- + SatelliteErrorUtils.mapError(value));
+ Integer value = error.poll(TIMEOUT, TimeUnit.MILLISECONDS);
+ if (value == null) {
+ textView.setText("Timed out to deprovision the satellite");
+ } else if (value != SatelliteError.ERROR_NONE) {
+ textView.setText("Failed to deprovision SatelliteService with error = "
+ + SatelliteErrorUtils.mapError(value));
+ } else {
+ textView.setText("Successfully deprovisioned the satellite");
+ }
} catch (InterruptedException e) {
- Log.e(TAG, "exception caught =" + e);
+ textView.setText("Deprovision SatelliteService exception caught =" + e);
}
}
@@ -154,4 +169,40 @@
TextView textView = findViewById(R.id.text_id);
textView.setText("Current Provision State is " + mProvisioned);
}
+
+ // Fetch the stored data in onResume()
+ // Because this is what will be called when the app opens again
+ @Override
+ protected void onResume() {
+ super.onResume();
+ // Fetching the stored data from the SharedPreference
+ SharedPreferences sh = getSharedPreferences("MySharedPref", MODE_PRIVATE);
+ boolean isProvisioned = sh.getBoolean("provision_state", mProvisioned);
+
+ // Setting the fetched data
+ mProvisioned = isProvisioned;
+ }
+
+ // Store the data in the SharedPreference in the onPause() method
+ // When the user closes the application onPause() will be called and data will be stored
+ @Override
+ protected void onPause() {
+ super.onPause();
+ // Creating a shared pref object with a file name "MySharedPref" in private mode
+ SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref", MODE_PRIVATE);
+ SharedPreferences.Editor myEdit = sharedPreferences.edit();
+
+ // write all the data entered by the user in SharedPreference and apply
+ myEdit.putBoolean("provision_state", mProvisioned);
+ myEdit.apply();
+ }
+
+ protected void onDestroy() {
+ super.onDestroy();
+ SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref", MODE_PRIVATE);
+
+ final SharedPreferences.Editor sharedPrefsEditor = sharedPreferences.edit();
+ sharedPrefsEditor.remove("provision_state");
+ sharedPrefsEditor.commit();
+ }
}
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
index f7c13d4..a4c0a83 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
@@ -174,8 +174,7 @@
@Override
public void requestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode,
@NonNull IIntegerConsumer errorCallback) {
- logd("requestSatelliteEnabled: mErrorCode=" + mErrorCode + " enable = " + enableSatellite
- + "mIsCellularModemEnabledMode = " + mIsCellularModemEnabledMode);
+ logd("requestSatelliteEnabled: mErrorCode=" + mErrorCode + " enable = " + enableSatellite);
if (mErrorCode != SatelliteError.ERROR_NONE) {
runWithExecutor(() -> errorCallback.accept(mErrorCode));
return;
@@ -184,7 +183,6 @@
if (enableSatellite) {
enableSatellite(errorCallback);
} else {
- mIsCellularModemEnabledMode = false;
disableSatellite(errorCallback);
}
}