From e936774fa30c4500a164ecb2f790b901663681b4 Mon Sep 17 00:00:00 2001 From: Johnson Lu Date: Mon, 22 Oct 2018 16:23:54 +0800 Subject: [PATCH 1/4] Adjust Wifi Privacy preference. Show Wifi MAC Randomization preference in both "Add network" and "Join Network" flows. Bug: 1227787 Test: RunSettingsRoboTests Change-Id: Iff422eb870e661ceda5ae04f55de802a91f08aeb --- .../android/settings/wifi/WifiConfigController.java | 13 +++++++++++++ src/com/android/settings/wifi/WifiDialog.java | 9 --------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java index d6c1931c511..4b93fc1796d 100644 --- a/src/com/android/settings/wifi/WifiConfigController.java +++ b/src/com/android/settings/wifi/WifiConfigController.java @@ -41,6 +41,7 @@ import android.text.Editable; import android.text.InputType; import android.text.TextUtils; import android.text.TextWatcher; +import android.util.FeatureFlagUtils; import android.util.Log; import android.view.KeyEvent; import android.view.View; @@ -155,6 +156,7 @@ public class WifiConfigController implements TextWatcher, private Spinner mProxySettingsSpinner; private Spinner mMeteredSettingsSpinner; private Spinner mHiddenSettingsSpinner; + private Spinner mPrivacySettingsSpinner; private TextView mHiddenWarningView; private TextView mProxyHostView; private TextView mProxyPortView; @@ -220,6 +222,12 @@ public class WifiConfigController implements TextWatcher, mSharedCheckBox = (CheckBox) mView.findViewById(R.id.shared); mMeteredSettingsSpinner = mView.findViewById(R.id.metered_settings); mHiddenSettingsSpinner = mView.findViewById(R.id.hidden_settings); + mPrivacySettingsSpinner = mView.findViewById(R.id.privacy_settings); + if (FeatureFlagUtils.isEnabled(mContext, + com.android.settings.core.FeatureFlags.WIFI_MAC_RANDOMIZATION)) { + View privacySettingsLayout = mView.findViewById(R.id.privacy_settings_fields); + privacySettingsLayout.setVisibility(View.VISIBLE); + } mHiddenSettingsSpinner.setOnItemSelectedListener(this); mHiddenWarningView = mView.findViewById(R.id.hidden_settings_warning); mHiddenWarningView.setVisibility( @@ -261,6 +269,7 @@ public class WifiConfigController implements TextWatcher, mHiddenSettingsSpinner.setSelection(config.hiddenSSID ? HIDDEN_NETWORK : NOT_HIDDEN_NETWORK); + //TODO(b/117957974): set MAC randomization value to mPrivacySettingsSpinner if (config.getIpAssignment() == IpAssignment.STATIC) { mIpSettingsSpinner.setSelection(STATIC_IP); showAdvancedFields = true; @@ -702,6 +711,10 @@ public class WifiConfigController implements TextWatcher, config.meteredOverride = mMeteredSettingsSpinner.getSelectedItemPosition(); } + if (mPrivacySettingsSpinner != null) { + //TODO(b/117957974): set MAC randomization value to WifiConfiguration + } + return config; } diff --git a/src/com/android/settings/wifi/WifiDialog.java b/src/com/android/settings/wifi/WifiDialog.java index b5bd32068de..2b8fb2d3236 100644 --- a/src/com/android/settings/wifi/WifiDialog.java +++ b/src/com/android/settings/wifi/WifiDialog.java @@ -19,7 +19,6 @@ package com.android.settings.wifi; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; -import android.util.FeatureFlagUtils; import android.view.View; import android.widget.Button; @@ -94,14 +93,6 @@ public class WifiDialog extends AlertDialog implements WifiConfigUiBase, if (mAccessPoint == null) { mController.hideForgetButton(); } - - if (FeatureFlagUtils.isEnabled(getContext(), - com.android.settings.core.FeatureFlags.WIFI_MAC_RANDOMIZATION)) { - View view = mView.findViewById(R.id.privacy_settings_fields); - if (view != null) { - view.setVisibility(View.VISIBLE); - } - } } public void onRestoreInstanceState(Bundle savedInstanceState) { From db556612712556b1cd2d2a183fa0c40f45c7337e Mon Sep 17 00:00:00 2001 From: Raff Tsai Date: Sat, 20 Oct 2018 23:59:52 +0800 Subject: [PATCH 2/4] Change homepage layout - merge PersonalSettingsFragment and TopLevelSettings together Bug: 118224579 Test: manual Change-Id: Ieee50a22babb25023e2a1767793e220862a38363 --- res/layout/condition_header.xml | 2 +- res/layout/condition_tile.xml | 2 +- res/layout/settings_homepage.xml | 41 ++++++++++- res/layout/settings_homepage_container.xml | 54 +++++--------- res/values/dimens.xml | 3 + res/values/strings.xml | 5 ++ .../homepage/ContextualCardsAdapter.java | 1 - .../homepage/SettingsHomepageActivity.java | 47 ++---------- .../SettingsHomepageActivityTest.java | 71 ------------------- 9 files changed, 73 insertions(+), 153 deletions(-) delete mode 100644 tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java diff --git a/res/layout/condition_header.xml b/res/layout/condition_header.xml index f2143193ace..e33157e717e 100644 --- a/res/layout/condition_header.xml +++ b/res/layout/condition_header.xml @@ -26,7 +26,7 @@ diff --git a/res/layout/settings_homepage.xml b/res/layout/settings_homepage.xml index 83c771c3302..0ba36096672 100644 --- a/res/layout/settings_homepage.xml +++ b/res/layout/settings_homepage.xml @@ -15,8 +15,43 @@ limitations under the License. --> - + android:layout_height="wrap_content" + android:orientation="vertical"> + + + + + + + + + + + + diff --git a/res/layout/settings_homepage_container.xml b/res/layout/settings_homepage_container.xml index ba8b48adb03..78ec39f8416 100644 --- a/res/layout/settings_homepage_container.xml +++ b/res/layout/settings_homepage_container.xml @@ -15,44 +15,28 @@ limitations under the License. --> - + android:layout_height="match_parent"> - - - - - - - - - - - - + android:orientation="vertical" + android:descendantFocusability="blocksDescendants"> - + + + + + + + + diff --git a/res/values/dimens.xml b/res/values/dimens.xml index edece3cb930..dc39475d66e 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -311,6 +311,7 @@ 10dp 5dp + 36dp 24dp @@ -357,4 +358,6 @@ 24dp + + diff --git a/res/values/strings.xml b/res/values/strings.xml index c81920e08de..a842d36d1dd 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -10271,4 +10271,9 @@ Medical info, emergency contacts + + + See more + + See less diff --git a/src/com/android/settings/homepage/ContextualCardsAdapter.java b/src/com/android/settings/homepage/ContextualCardsAdapter.java index 8e6f805c9f8..4144d4da6d8 100644 --- a/src/com/android/settings/homepage/ContextualCardsAdapter.java +++ b/src/com/android/settings/homepage/ContextualCardsAdapter.java @@ -17,7 +17,6 @@ package com.android.settings.homepage; import android.content.Context; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; diff --git a/src/com/android/settings/homepage/SettingsHomepageActivity.java b/src/com/android/settings/homepage/SettingsHomepageActivity.java index bfd8c4d1f12..c6040f608c4 100644 --- a/src/com/android/settings/homepage/SettingsHomepageActivity.java +++ b/src/com/android/settings/homepage/SettingsHomepageActivity.java @@ -22,7 +22,6 @@ import android.os.Bundle; import android.util.FeatureFlagUtils; import android.widget.Toolbar; -import androidx.annotation.VisibleForTesting; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -32,13 +31,10 @@ import com.android.settings.core.FeatureFlags; import com.android.settings.core.SettingsBaseActivity; import com.android.settings.overlay.FeatureFactory; -import com.google.android.material.bottomnavigation.BottomNavigationView; - public class SettingsHomepageActivity extends SettingsBaseActivity { - @VisibleForTesting - static final String PERSONAL_SETTINGS_TAG = "personal_settings"; - private static final String ALL_SETTINGS_TAG = "all_settings"; + private static final String SUGGESTION_TAG = "suggestion"; + private static final String MAIN_TAG = "main"; @Override protected void onCreate(Bundle savedInstanceState) { @@ -58,49 +54,18 @@ public class SettingsHomepageActivity extends SettingsBaseActivity { FeatureFactory.getFactory(this).getSearchFeatureProvider() .initSearchToolbar(this, toolbar); - final BottomNavigationView navigation = findViewById(R.id.bottom_nav); - navigation.setOnNavigationItemSelectedListener(item -> { - switch (item.getItemId()) { - case R.id.homepage_personal_settings: - switchFragment(new PersonalSettingsFragment(), PERSONAL_SETTINGS_TAG, - ALL_SETTINGS_TAG); - return true; - - case R.id.homepage_all_settings: - switchFragment(new TopLevelSettings(), ALL_SETTINGS_TAG, - PERSONAL_SETTINGS_TAG); - return true; - } - return false; - }); - - if (savedInstanceState == null) { - // savedInstanceState is null, this is first load. - // Default to open contextual cards. - switchFragment(new PersonalSettingsFragment(), PERSONAL_SETTINGS_TAG, - ALL_SETTINGS_TAG); - } + showFragment(new PersonalSettingsFragment(), R.id.suggestion_content, SUGGESTION_TAG); + showFragment(new TopLevelSettings(), R.id.main_content, MAIN_TAG); } public static boolean isDynamicHomepageEnabled(Context context) { return FeatureFlagUtils.isEnabled(context, FeatureFlags.DYNAMIC_HOMEPAGE); } - private void switchFragment(Fragment fragment, String showFragmentTag, String hideFragmentTag) { + private void showFragment(Fragment fragment, int id, String tag) { final FragmentManager fragmentManager = getSupportFragmentManager(); final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); - - final Fragment hideFragment = fragmentManager.findFragmentByTag(hideFragmentTag); - if (hideFragment != null) { - fragmentTransaction.hide(hideFragment); - } - - Fragment showFragment = fragmentManager.findFragmentByTag(showFragmentTag); - if (showFragment == null) { - fragmentTransaction.add(R.id.main_content, fragment, showFragmentTag); - } else { - fragmentTransaction.show(showFragment); - } + fragmentTransaction.add(id, fragment, tag); fragmentTransaction.commit(); } } \ No newline at end of file diff --git a/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java b/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java deleted file mode 100644 index 89ec476ed4c..00000000000 --- a/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2018 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. - */ - -package com.android.settings.homepage; - -import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; - -import static com.android.settings.homepage.SettingsHomepageActivity.PERSONAL_SETTINGS_TAG; - -import static com.google.common.truth.Truth.assertThat; - -import android.content.Context; -import android.content.Intent; -import android.support.test.InstrumentationRegistry; -import android.support.test.runner.AndroidJUnit4; -import android.util.FeatureFlagUtils; - -import androidx.fragment.app.Fragment; - -import com.android.settings.core.FeatureFlags; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -@RunWith(AndroidJUnit4.class) -public class SettingsHomepageActivityTest { - - private Context mContext; - private SettingsHomepageActivity mActivity; - - @Before - public void setUp() { - mContext = InstrumentationRegistry.getTargetContext(); - FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DYNAMIC_HOMEPAGE, true); - } - - @After - public void tearDown() { - FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DYNAMIC_HOMEPAGE, false); - } - - @Test - public void launchHomepage_shouldOpenPersonalSettings() { - final Intent intent = new Intent().setClass(mContext, SettingsHomepageActivity.class) - .addFlags(FLAG_ACTIVITY_NEW_TASK); - - mActivity = (SettingsHomepageActivity) InstrumentationRegistry.getInstrumentation() - .startActivitySync(intent); - - final Fragment fragment = mActivity.getSupportFragmentManager() - .findFragmentByTag(PERSONAL_SETTINGS_TAG); - - assertThat(fragment).isInstanceOf(PersonalSettingsFragment.class); - } - -} From 3accbd1e6d82f8428d4615a8670834e6fbdac20a Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Tue, 23 Oct 2018 13:33:04 -0700 Subject: [PATCH 3/4] Remove calling to deprecated API. Bug: 117860032 Test: robotests Change-Id: I98b464b33c1f7f5aca6a002284247d36131c16e4 --- src/com/android/settings/wifi/WifiSettings.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 12ca26a7e6d..4837a88d8e9 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -1095,7 +1095,7 @@ public class WifiSettings extends RestrictedSettingsFragment protected void connect(final WifiConfiguration config, boolean isSavedNetwork) { // Log subtype if configuration is a saved network. - mMetricsFeatureProvider.action(getVisibilityLogger(), MetricsEvent.ACTION_WIFI_CONNECT, + mMetricsFeatureProvider.action(getContext(), MetricsEvent.ACTION_WIFI_CONNECT, isSavedNetwork); mWifiManager.connect(config, mConnectListener); mClickedConnect = true; @@ -1110,7 +1110,7 @@ public class WifiSettings extends RestrictedSettingsFragment @VisibleForTesting void handleAddNetworkRequest(int result, Intent data) { - if(result == Activity.RESULT_OK) { + if (result == Activity.RESULT_OK) { handleAddNetworkSubmitEvent(data); } mWifiTracker.resumeScanning(); From cdfa5bb3782277b8b5f186fd5c4acdb12ea27714 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Mon, 22 Oct 2018 16:10:41 -0700 Subject: [PATCH 4/4] Refactor Cdma preference in ECM When phone is in ECM mode and Cdma preference is clicked, it should first pop up ECM exit dialog. If user click yes, then it should launch normal dialog. This CL create a Cdma preference to stop launch normal dialog when in ECM mode. Bug: 114749736 Test: RunSettingsRoboTests Change-Id: Iba887d9fc49770b21cf0421ecc0120d63da43ef9 --- res/xml/network_setting_fragment.xml | 4 +- .../telephony/MobileNetworkFragment.java | 83 +++++++------------ .../cdma/CdmaBasePreferenceController.java | 3 + .../telephony/cdma/CdmaListPreference.java | 46 ++++++++++ .../CdmaSubscriptionPreferenceController.java | 8 -- .../CdmaSystemSelectPreferenceController.java | 6 -- .../cdma/CdmaListPreferenceTest.java | 71 ++++++++++++++++ 7 files changed, 153 insertions(+), 68 deletions(-) create mode 100644 src/com/android/settings/network/telephony/cdma/CdmaListPreference.java create mode 100644 tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaListPreferenceTest.java diff --git a/res/xml/network_setting_fragment.xml b/res/xml/network_setting_fragment.xml index 43cadab7671..f6b8bed0a89 100644 --- a/res/xml/network_setting_fragment.xml +++ b/res/xml/network_setting_fragment.xml @@ -99,7 +99,7 @@ - -