diff options
| author | Oliver Scott <olivercscott@gmail.com> | 2020-12-28 22:18:05 -0500 |
|---|---|---|
| committer | Ali B <abittin@gmail.com> | 2021-06-07 10:57:46 +0300 |
| commit | 98cac140d0e1a2eb92656f07a00c23bee959b7ac (patch) | |
| tree | 21a0842b27a3b5b8edb348c0b6377541da103bc4 | |
| parent | 582e6cf35c614510482fc2e7ab82d146528bb7b4 (diff) | |
Add button to setup eSIM on missing SIM page
Change-Id: I61072d392a4eff5e5223782c2bda8c0d3ca45d1f
| -rw-r--r-- | res/layout/sim_missing_page.xml | 18 | ||||
| -rw-r--r-- | res/values/strings.xml | 3 | ||||
| -rw-r--r-- | src/com/aicp/setupwizard/SetupWizardApp.java | 2 | ||||
| -rw-r--r-- | src/com/aicp/setupwizard/SimMissingActivity.java | 38 |
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()); + } + } } |
