Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55ded566 authored by SongFerng Wang's avatar SongFerng Wang Committed by Android (Google) Code Review
Browse files

Merge "stop show preferred SIM card dialog during sim switch" into tm-dev

parents d3754562 c389149f
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
@@ -16,8 +16,12 @@

package com.android.settings.network.telephony;

import static android.content.Context.MODE_PRIVATE;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.telephony.SubscriptionManager;
import android.util.Log;

import androidx.fragment.app.FragmentActivity;

@@ -27,14 +31,27 @@ public class SubscriptionActionDialogActivity extends FragmentActivity {
    private static final String TAG = "SubscriptionActionDialogActivity";
    // Arguments
    protected static final String ARG_SUB_ID = "sub_id";

    protected SubscriptionManager mSubscriptionManager;

    public static final String SIM_ACTION_DIALOG_PREFS = "sim_action_dialog_prefs";
    // Shared preference keys
    public static final String KEY_PROGRESS_STATE = "progress_state";
    public static final int PROGRESS_IS_NOT_SHOWING = 0;
    public static final int PROGRESS_IS_SHOWING = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mSubscriptionManager = getSystemService(SubscriptionManager.class);
        setProgressState(PROGRESS_IS_NOT_SHOWING);
    }


    @Override
    public void finish() {
        setProgressState(PROGRESS_IS_NOT_SHOWING);
        super.finish();
    }

    /**
@@ -44,11 +61,13 @@ public class SubscriptionActionDialogActivity extends FragmentActivity {
     */
    protected void showProgressDialog(String message) {
        ProgressDialogFragment.show(getFragmentManager(), message, null);
        setProgressState(PROGRESS_IS_SHOWING);
    }

    /** Dismisses the loading dialog. */
    protected void dismissProgressDialog() {
        ProgressDialogFragment.dismiss(getFragmentManager());
        setProgressState(PROGRESS_IS_NOT_SHOWING);
    }

    /**
@@ -60,4 +79,10 @@ public class SubscriptionActionDialogActivity extends FragmentActivity {
    protected void showErrorDialog(String title, String message) {
        AlertDialogFragment.show(this, title, message);
    }

    protected void setProgressState(int state) {
        final SharedPreferences prefs = getSharedPreferences(SIM_ACTION_DIALOG_PREFS, MODE_PRIVATE);
        prefs.edit().putInt(KEY_PROGRESS_STATE, state).apply();
        Log.i(TAG, "setProgressState:" + state);
    }
}
+19 −0
Original line number Diff line number Diff line
@@ -16,8 +16,11 @@

package com.android.settings.sim;

import static android.content.Context.MODE_PRIVATE;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
@@ -32,6 +35,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;

import com.android.settings.R;
import com.android.settings.network.telephony.SubscriptionActionDialogActivity;

import java.util.List;

@@ -60,6 +64,7 @@ public class SimDialogActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getWindow().addSystemFlags(
                WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
        showOrUpdateDialog();
@@ -72,6 +77,13 @@ public class SimDialogActivity extends FragmentActivity {
        showOrUpdateDialog();
    }

    private int getProgressState() {
        final SharedPreferences prefs = getSharedPreferences(
                SubscriptionActionDialogActivity.SIM_ACTION_DIALOG_PREFS, MODE_PRIVATE);
        return prefs.getInt(SubscriptionActionDialogActivity.KEY_PROGRESS_STATE,
                SubscriptionActionDialogActivity.PROGRESS_IS_NOT_SHOWING);
    }

    private void showOrUpdateDialog() {
        final int dialogType = getIntent().getIntExtra(DIALOG_TYPE_KEY, INVALID_PICK);

@@ -80,6 +92,13 @@ public class SimDialogActivity extends FragmentActivity {
            return;
        }

        if (dialogType == PREFERRED_PICK
                && getProgressState() == SubscriptionActionDialogActivity.PROGRESS_IS_SHOWING) {
            Log.d(TAG, "Finish the sim dialog since the sim action dialog is showing the progress");
            finish();
            return;
        }

        final String tag = Integer.toString(dialogType);
        final FragmentManager fragmentManager = getSupportFragmentManager();
        SimDialogFragment fragment = (SimDialogFragment) fragmentManager.findFragmentByTag(tag);