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

Commit 0453d9de authored by SongFerngWang's avatar SongFerngWang Committed by Automerger Merge Worker
Browse files

switch SIM refactor to support MEP am: 59a6ecbd am: b29d670c

parents 57fbdab2 b29d670c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -690,12 +690,12 @@
        <activity android:name=".network.telephony.ToggleSubscriptionDialogActivity"
                  android:exported="false"
                  android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
                  android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight" />
                  android:theme="@style/Theme.AlertDialog"/>

        <activity android:name=".network.telephony.DeleteEuiccSubscriptionDialogActivity"
                  android:exported="false"
                  android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
                  android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight" />
                  android:theme="@style/Theme.AlertDialog"/>

        <activity
            android:name="Settings$TetherSettingsActivity"
@@ -4202,14 +4202,14 @@
            android:exported="false"
            android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
            android:launchMode="singleInstance"
            android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight" />
            android:theme="@style/Theme.AlertDialog"/>

        <activity
            android:name=".sim.DsdsDialogActivity"
            android:exported="false"
            android:permission="android.permission.WRITE_EMBEDDED_SUBSCRIPTIONS"
            android:launchMode="singleInstance"
            android:theme="@*android:style/Theme.DeviceDefault.Dialog.Alert.DayNight" />
            android:theme="@style/Theme.AlertDialog"/>

        <service android:name=".sim.SimNotificationService"
                 android:permission="android.permission.BIND_JOB_SERVICE" />
+57 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2021 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    style="@style/Theme.Material3.DayNight.Dialog.Alert">
        <TextView
            android:id="@+id/msg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
        <ListView
            android:id="@+id/carrier_list"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:minWidth="56dp"
            android:gravity="start|top"
            android:orientation="horizontal"
            android:paddingEnd="12dp"
            android:paddingTop="16dp"
            android:paddingBottom="4dp"
            android:baselineAligned="true">
                <ImageView
                    android:src="@drawable/ic_info_outline_24dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:tint="?android:attr/textColorTertiary"/>

                <TextView
                    android:id="@+id/info_outline"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:paddingTop="16dp"
                    android:paddingBottom="8dp"
                    android:text="@string/sim_action_switch_sub_dialog_info_outline_for_turning_off"
                    android:textColor="?android:attr/textColorSecondary" />
        </LinearLayout>
</LinearLayout>
 No newline at end of file
+6 −5
Original line number Diff line number Diff line
@@ -16,13 +16,14 @@

package com.android.settings.network.telephony;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.TextUtils;

import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;

/** Fragment to show an alert dialog which only has the positive button. */
public class AlertDialogFragment extends BaseDialogFragment
        implements DialogInterface.OnClickListener {
@@ -37,13 +38,13 @@ public class AlertDialogFragment extends BaseDialogFragment
     * @param title
     * @param msg
     */
    public static void show(Activity activity, String title, String msg) {
    public static void show(FragmentActivity activity, String title, String msg) {
        AlertDialogFragment fragment = new AlertDialogFragment();
        Bundle arguments = new Bundle();
        arguments.putString(ARG_TITLE, title);
        arguments.putString(ARG_MSG, msg);
        fragment.setArguments(arguments);
        fragment.show(activity.getFragmentManager(), TAG);
        fragment.show(activity.getSupportFragmentManager(), TAG);
    }

    @Override
@@ -55,7 +56,7 @@ public class AlertDialogFragment extends BaseDialogFragment
        if (!TextUtils.isEmpty(getArguments().getString(ARG_MSG))) {
            builder.setMessage(getArguments().getString(ARG_MSG));
        }
        return builder.show();
        return builder.create();
    }

    @Override
+2 −2
Original line number Diff line number Diff line
@@ -17,11 +17,11 @@
package com.android.settings.network.telephony;

import android.app.Activity;
import android.app.DialogFragment;
import android.app.Fragment;
import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;

/**
 * Base dialog fragment class with the functionality to make a fragment or an activity as a listener
+80 −8
Original line number Diff line number Diff line
@@ -16,13 +16,24 @@

package com.android.settings.network.telephony;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;

import com.android.settings.R;

import java.util.ArrayList;

/** Fragment to show a confirm dialog. The caller should implement onConfirmListener. */
public class ConfirmDialogFragment extends BaseDialogFragment
@@ -32,6 +43,7 @@ public class ConfirmDialogFragment extends BaseDialogFragment
    private static final String ARG_MSG = "msg";
    private static final String ARG_POS_BUTTON_STRING = "pos_button_string";
    private static final String ARG_NEG_BUTTON_STRING = "neg_button_string";
    private static final String ARG_LIST = "list";

    /**
     * Interface defining the method that will be invoked when the user has done with the dialog.
@@ -51,7 +63,7 @@ public class ConfirmDialogFragment extends BaseDialogFragment

    /** Displays a confirmation dialog which has confirm and cancel buttons. */
    public static <T> void show(
            Activity activity,
            FragmentActivity activity,
            Class<T> callbackInterfaceClass,
            int tagInCaller,
            String title,
@@ -66,7 +78,29 @@ public class ConfirmDialogFragment extends BaseDialogFragment
        arguments.putString(ARG_NEG_BUTTON_STRING, negButtonString);
        setListener(activity, null, callbackInterfaceClass, tagInCaller, arguments);
        fragment.setArguments(arguments);
        fragment.show(activity.getFragmentManager(), TAG);
        fragment.show(activity.getSupportFragmentManager(), TAG);
    }

    /** Displays a confirmation dialog which has confirm and cancel buttons and carrier list.*/
    public static <T> void show(
            FragmentActivity activity,
            Class<T> callbackInterfaceClass,
            int tagInCaller,
            String title,
            String msg,
            String posButtonString,
            String negButtonString,
            ArrayList<String> list) {
        ConfirmDialogFragment fragment = new ConfirmDialogFragment();
        Bundle arguments = new Bundle();
        arguments.putString(ARG_TITLE, title);
        arguments.putCharSequence(ARG_MSG, msg);
        arguments.putString(ARG_POS_BUTTON_STRING, posButtonString);
        arguments.putString(ARG_NEG_BUTTON_STRING, negButtonString);
        arguments.putStringArrayList(ARG_LIST, list);
        setListener(activity, null, callbackInterfaceClass, tagInCaller, arguments);
        fragment.setArguments(arguments);
        fragment.show(activity.getSupportFragmentManager(), TAG);
    }

    @Override
@@ -75,18 +109,56 @@ public class ConfirmDialogFragment extends BaseDialogFragment
        String message = getArguments().getString(ARG_MSG);
        String posBtnString = getArguments().getString(ARG_POS_BUTTON_STRING);
        String negBtnString = getArguments().getString(ARG_NEG_BUTTON_STRING);
        ArrayList<String> list = getArguments().getStringArrayList(ARG_LIST);

        Log.i("Showing dialog with title = %s", title);
        Log.i(TAG, "Showing dialog with title =" + title);
        AlertDialog.Builder builder =
                new AlertDialog.Builder(getContext())
                        .setTitle(title)
                        .setPositiveButton(posBtnString, this)
                        .setNegativeButton(negBtnString, this);

        if (list != null && !list.isEmpty()) {
            Log.i(TAG, "list =" + list.toString());

            View content = LayoutInflater.from(getContext()).inflate(
                    R.layout.sim_confirm_dialog_multiple_enabled_profiles_supported, null);

            TextView dialogMessage = content.findViewById(R.id.msg);
            if (!TextUtils.isEmpty(message) && dialogMessage != null) {
                dialogMessage.setText(message);
            }

            final ArrayAdapter<String> arrayAdapterItems = new ArrayAdapter<String>(
                    getContext(), android.R.layout.select_dialog_item, list);
            final ListView lvItems = content.findViewById(R.id.carrier_list);
            if (lvItems != null) {
                lvItems.setAdapter(arrayAdapterItems);
                lvItems.setChoiceMode(ListView.CHOICE_MODE_NONE);
                lvItems.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position,
                            long id) {
                        Log.i(TAG, "list onClick =" + position);
                        Log.i(TAG, "list item =" + list.get(position));

                        if (position == list.size() - 1) {
                            // user select the "cancel" item;
                            informCaller(false, -1);
                        } else {
                            informCaller(true, position);
                        }
                    }
                });
            }
            builder.setView(content);
        } else {
            if (!TextUtils.isEmpty(message)) {
                builder.setMessage(message);
            }
        AlertDialog dialog = builder.show();
        }

        AlertDialog dialog = builder.create();
        dialog.setCanceledOnTouchOutside(false);
        return dialog;
    }
Loading