summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Scott <olivercscott@gmail.com>2020-12-28 22:18:05 -0500
committerAli B <abittin@gmail.com>2021-06-07 10:57:46 +0300
commit98cac140d0e1a2eb92656f07a00c23bee959b7ac (patch)
tree21a0842b27a3b5b8edb348c0b6377541da103bc4
parent582e6cf35c614510482fc2e7ab82d146528bb7b4 (diff)
Add button to setup eSIM on missing SIM page
Change-Id: I61072d392a4eff5e5223782c2bda8c0d3ca45d1f
-rw-r--r--res/layout/sim_missing_page.xml18
-rw-r--r--res/values/strings.xml3
-rw-r--r--src/com/aicp/setupwizard/SetupWizardApp.java2
-rw-r--r--src/com/aicp/setupwizard/SimMissingActivity.java38
4 files changed, 59 insertions, 2 deletions
diff --git a/res/layout/sim_missing_page.xml b/res/layout/sim_missing_page.xml
index 6ad2cfc..745975d 100644
--- a/res/layout/sim_missing_page.xml
+++ b/res/layout/sim_missing_page.xml
@@ -54,6 +54,24 @@
android:src="@drawable/sim"/>
</LinearLayout>
+
+ <Button
+ android:id="@+id/setup_euicc"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|right"
+ android:layout_marginRight="@dimen/location_text_margin_right"
+ android:background="@color/accent"
+ android:ellipsize="end"
+ android:gravity="center"
+ android:maxLines="1"
+ android:paddingLeft="@dimen/content_margin_left"
+ android:paddingRight="@dimen/location_text_margin_right"
+ android:text="@string/setup_euicc"
+ android:textAllCaps="true"
+ android:textColor="@color/white"
+ android:textSize="16sp" />
+
</FrameLayout>
<com.google.android.setupdesign.view.NavigationBar
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4eb37ad..e0d132f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -106,4 +106,7 @@
<string name="update_recovery_description">Updates Recovery on first boot subsequent to every update.</string>
<string name="update_recovery_warning">Recovery will be updated as soon as you finish the setup. If you wish to keep it intact, disable this feature.</string>
<string name="update_recovery_setting">Update Recovery alongside the OS</string>
+
+ <!-- eSIM setup -->
+ <string name="setup_euicc">Setup eSIM</string>
</resources>
diff --git a/src/com/aicp/setupwizard/SetupWizardApp.java b/src/com/aicp/setupwizard/SetupWizardApp.java
index 91e0b25..b7d63ef 100644
--- a/src/com/aicp/setupwizard/SetupWizardApp.java
+++ b/src/com/aicp/setupwizard/SetupWizardApp.java
@@ -70,6 +70,8 @@ public class SetupWizardApp extends Application {
public static final int REQUEST_CODE_SETUP_BLUETOOTH= 5;
public static final int REQUEST_CODE_SETUP_BIOMETRIC = 7;
public static final int REQUEST_CODE_SETUP_LOCKSCREEN = 9;
+// public static final int REQUEST_CODE_RESTORE = 10;
+ public static final int REQUEST_CODE_SETUP_EUICC = 11;
public static final int RADIO_READY_TIMEOUT = 10 * 1000;
diff --git a/src/com/aicp/setupwizard/SimMissingActivity.java b/src/com/aicp/setupwizard/SimMissingActivity.java
index 70c5c6f..3e2e398 100644
--- a/src/com/aicp/setupwizard/SimMissingActivity.java
+++ b/src/com/aicp/setupwizard/SimMissingActivity.java
@@ -17,14 +17,26 @@
package com.aicp.setupwizard;
+import android.content.Context;
+import android.content.Intent;
import android.os.Bundle;
+import android.service.euicc.EuiccService;
+import android.telephony.euicc.EuiccManager;
+import android.util.Log;
+import android.view.View;
import android.widget.ImageView;
import com.google.android.setupcompat.util.ResultCodes;
import com.aicp.setupwizard.util.PhoneMonitor;
-public class SimMissingActivity extends BaseSetupWizardActivity {
+import static android.service.euicc.EuiccService.ACTION_PROVISION_EMBEDDED_SUBSCRIPTION;
+import static android.telephony.euicc.EuiccManager.EXTRA_FORCE_PROVISION;
+import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_FIRST_RUN;
+import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SETUP_FLOW;
+import static org.lineageos.setupwizard.SetupWizardApp.REQUEST_CODE_SETUP_EUICC;
+
+public class SimMissingActivity extends SubBaseActivity {
public static final String TAG = SimMissingActivity.class.getSimpleName();
@@ -44,7 +56,7 @@ public class SimMissingActivity extends BaseSetupWizardActivity {
setNextText(R.string.skip);
final int simLocation = getResources().getInteger(
R.integer.sim_image_type);
- ImageView simLogo = ((ImageView)findViewById(R.id.sim_slot_image));
+ ImageView simLogo = ((ImageView) findViewById(R.id.sim_slot_image));
switch (simLocation) {
case SIM_SIDE:
simLogo.setImageResource(R.drawable.sim_side);
@@ -59,6 +71,17 @@ public class SimMissingActivity extends BaseSetupWizardActivity {
}
@Override
+ protected void onStartSubactivity() {
+ setNextAllowed(true);
+ EuiccManager euiccManager = (EuiccManager) getSystemService(Context.EUICC_SERVICE);
+ if (euiccManager.isEnabled()) {
+ findViewById(R.id.setup_euicc).setOnClickListener(v -> launchEuiccSetup());
+ } else {
+ findViewById(R.id.setup_euicc).setVisibility(View.GONE);
+ }
+ }
+
+ @Override
public void onNavigateNext() {
if (mPhoneMonitor.simMissing()) {
nextAction(ResultCodes.RESULT_SKIP);
@@ -82,4 +105,15 @@ public class SimMissingActivity extends BaseSetupWizardActivity {
return R.drawable.ic_sim;
}
+ private void launchEuiccSetup() {
+ Intent intent = new Intent(ACTION_PROVISION_EMBEDDED_SUBSCRIPTION);
+ intent.putExtra(EXTRA_FORCE_PROVISION, true);
+ intent.putExtra(EXTRA_IS_FIRST_RUN, true);
+ intent.putExtra(EXTRA_IS_SETUP_FLOW, true);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startSubactivity(intent, REQUEST_CODE_SETUP_EUICC);
+ } else {
+ Log.e(TAG, "No activity available to handle " + intent.getAction());
+ }
+ }
}