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

Commit 0ff107e3 authored by Fabrice Di Meglio's avatar Fabrice Di Meglio Committed by Android (Google) Code Review
Browse files

Merge "Fix bug #16703191 APN settings shows back button even when you intent into it" into lmp-dev

parents a7f8addd 61a1fec4
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -295,10 +295,11 @@
            </intent-filter>
        </activity-alias>

        <activity android:name="ApnSettings"
        <activity android:name="Settings$ApnSettingsActivity"
                android:label="@string/apn_settings"
                android:configChanges="orientation|keyboardHidden|screenSize"
                android:launchMode="singleTask"
                android:taskAffinity="com.android.settings"
                android:configChanges="orientation|keyboardHidden|screenSize"
                android:parentActivityName="Settings$WirelessSettingsActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
@@ -308,6 +309,8 @@
            </intent-filter>
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                android:value="true" />
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                       android:value="com.android.settings.ApnSettings" />
        </activity>

        <activity android:name="Settings$BluetoothSettingsActivity"
+0 −39
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
 * Copyright (C) 2014 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.
 */
-->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:id="@+id/listContainer"
             android:layout_width="match_parent"
             android:layout_height="match_parent">

        <ListView android:id="@android:id/list"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:drawSelectorOnTop="false"
                android:scrollbarStyle="insideOverlay"
                android:background="@android:color/white"
                android:cacheColorHint="@android:color/white"
                android:fadingEdgeLength="16dip" />

        <TextView android:id="@android:id/empty"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="@string/apn_settings_not_available"
                android:textAppearance="?android:attr/textAppearanceMedium" />
</FrameLayout>
 No newline at end of file
+2 −0
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical">

+46 −33
Original line number Diff line number Diff line
@@ -39,8 +39,12 @@ import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.provider.Telephony;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.android.internal.telephony.Phone;
@@ -50,7 +54,7 @@ import com.android.internal.telephony.TelephonyProperties;

import java.util.ArrayList;

public class ApnSettings extends PreferenceActivity implements
public class ApnSettings extends SettingsPreferenceFragment implements
        Preference.OnPreferenceChangeListener {
    static final String TAG = "ApnSettings";

@@ -121,33 +125,47 @@ public class ApnSettings extends PreferenceActivity implements
    }

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

        mUm = (UserManager) getSystemService(Context.USER_SERVICE);

        mMobileStateFilter = new IntentFilter(
                TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);

        setHasOptionsMenu(true);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        TextView empty = (TextView) getView().findViewById(android.R.id.empty);
        if (empty != null) {
            empty.setText(R.string.apn_settings_not_available);
            getListView().setEmptyView(empty);
        }

        if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
            mUnavailable = true;
            setContentView(R.layout.apn_disallowed_preference_screen);
            setPreferenceScreen(new PreferenceScreen(getActivity(), null));
            return;
        }

        addPreferencesFromResource(R.xml.apn_settings);
        getListView().setItemsCanFocus(true);

        mMobileStateFilter = new IntentFilter(
                TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
        getListView().setItemsCanFocus(true);
    }

    @Override
    protected void onResume() {
    public void onResume() {
        super.onResume();

        if (mUnavailable) {
            return;
        }

        registerReceiver(mMobileStateReceiver, mMobileStateFilter);
        getActivity().registerReceiver(mMobileStateReceiver, mMobileStateFilter);

        if (!mRestoreDefaultApnMode) {
            fillList();
@@ -157,18 +175,18 @@ public class ApnSettings extends PreferenceActivity implements
    }

    @Override
    protected void onPause() {
    public void onPause() {
        super.onPause();

        if (mUnavailable) {
            return;
        }

        unregisterReceiver(mMobileStateReceiver);
        getActivity().unregisterReceiver(mMobileStateReceiver);
    }

    @Override
    protected void onDestroy() {
    public void onDestroy() {
        super.onDestroy();

        if (mRestoreDefaultApnThread != null) {
@@ -199,7 +217,7 @@ public class ApnSettings extends PreferenceActivity implements
                String key = cursor.getString(ID_INDEX);
                String type = cursor.getString(TYPES_INDEX);

                ApnPreference pref = new ApnPreference(this);
                ApnPreference pref = new ApnPreference(getActivity());

                pref.setKey(key);
                pref.setTitle(name);
@@ -228,8 +246,8 @@ public class ApnSettings extends PreferenceActivity implements
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        if (!mUnavailable) {
            menu.add(0, MENU_NEW, 0,
                    getResources().getString(R.string.menu_new))
                    .setIcon(android.R.drawable.ic_menu_add)
@@ -237,7 +255,9 @@ public class ApnSettings extends PreferenceActivity implements
            menu.add(0, MENU_RESTORE, 0,
                    getResources().getString(R.string.menu_restore))
                    .setIcon(android.R.drawable.ic_menu_upload);
        return true;
        }

        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
@@ -329,9 +349,9 @@ public class ApnSettings extends PreferenceActivity implements
                    fillList();
                    getPreferenceScreen().setEnabled(true);
                    mRestoreDefaultApnMode = false;
                    dismissDialog(DIALOG_RESTORE_DEFAULTAPN);
                    removeDialog(DIALOG_RESTORE_DEFAULTAPN);
                    Toast.makeText(
                        ApnSettings.this,
                        getActivity(),
                        getResources().getString(
                                R.string.restore_default_apn_completed),
                        Toast.LENGTH_LONG).show();
@@ -362,20 +382,13 @@ public class ApnSettings extends PreferenceActivity implements
    }

    @Override
    protected Dialog onCreateDialog(int id) {
    public Dialog onCreateDialog(int id) {
        if (id == DIALOG_RESTORE_DEFAULTAPN) {
            ProgressDialog dialog = new ProgressDialog(this);
            ProgressDialog dialog = new ProgressDialog(getActivity());
            dialog.setMessage(getResources().getString(R.string.restore_default_apn));
            dialog.setCancelable(false);
            return dialog;
        }
        return null;
    }

    @Override
    protected void onPrepareDialog(int id, Dialog dialog) {
        if (id == DIALOG_RESTORE_DEFAULTAPN) {
            getPreferenceScreen().setEnabled(false);
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -100,5 +100,6 @@ public class Settings extends SettingsActivity {
    public static class QuickLaunchSettingsActivity extends SettingsActivity { /* empty */ }

    public static class TopLevelSettings extends SettingsActivity { /* empty */ }
    public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
}
Loading