diff --git a/res/values/strings.xml b/res/values/strings.xml index 71f4e148d9d..1ac6437720d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -11763,12 +11763,6 @@ Temporarily turned on due to Battery Saver - - Supported apps will also switch to dark theme - - - Got it - Try Dark theme diff --git a/src/com/android/settings/display/DarkUIInfoDialogFragment.java b/src/com/android/settings/display/DarkUIInfoDialogFragment.java deleted file mode 100644 index ce517e8db23..00000000000 --- a/src/com/android/settings/display/DarkUIInfoDialogFragment.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 2019 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.display; - -import android.app.Dialog; -import android.app.UiModeManager; -import android.app.settings.SettingsEnums; -import android.content.Context; -import android.content.DialogInterface; -import android.os.Bundle; -import android.provider.Settings; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; - -import com.android.settings.R; -import com.android.settings.core.instrumentation.InstrumentedDialogFragment; - -public class DarkUIInfoDialogFragment extends InstrumentedDialogFragment - implements DialogInterface.OnClickListener{ - - @Override - public int getMetricsCategory() { - return SettingsEnums.DIALOG_DARK_UI_INFO; - } - - @NonNull - @Override - public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { - Context context = getContext(); - AlertDialog.Builder dialog = new AlertDialog.Builder(context); - LayoutInflater inflater = LayoutInflater.from(dialog.getContext()); - View titleView = inflater.inflate(R.layout.settings_dialog_title, null); - ((ImageView) titleView.findViewById(R.id.settings_icon)) - .setImageDrawable(context.getDrawable(R.drawable.dark_theme)); - ((TextView) titleView.findViewById(R.id.settings_title)).setText(R.string.dark_ui_mode); - - dialog.setCustomTitle(titleView) - .setMessage(R.string.dark_ui_settings_dark_summary) - .setPositiveButton( - R.string.dark_ui_settings_dialog_acknowledge, - this); - return dialog.create(); - } - - @Override - public void onDismiss(@NonNull DialogInterface dialog) { - enableDarkTheme(); - super.onDismiss(dialog); - } - - @Override - public void onClick(DialogInterface dialogInterface, int i) { - // We have to manually dismiss the dialog because changing night mode causes it to - // recreate itself. - dialogInterface.dismiss(); - enableDarkTheme(); - } - - private void enableDarkTheme() { - final Context context = getContext(); - if (context != null) { - Settings.Secure.putInt(context.getContentResolver(), - Settings.Secure.DARK_MODE_DIALOG_SEEN, - DarkUIPreferenceController.DIALOG_SEEN); - context.getSystemService(UiModeManager.class) - .setNightMode(UiModeManager.MODE_NIGHT_YES); - } - } -} diff --git a/src/com/android/settings/display/DarkUIPreferenceController.java b/src/com/android/settings/display/DarkUIPreferenceController.java index d07410ee271..f1bbfcd47b7 100644 --- a/src/com/android/settings/display/DarkUIPreferenceController.java +++ b/src/com/android/settings/display/DarkUIPreferenceController.java @@ -23,10 +23,8 @@ import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; import android.os.PowerManager; -import android.provider.Settings; import androidx.annotation.VisibleForTesting; -import androidx.fragment.app.Fragment; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -39,7 +37,6 @@ import com.android.settingslib.core.lifecycle.events.OnStop; public class DarkUIPreferenceController extends TogglePreferenceController implements LifecycleObserver, OnStart, OnStop { - public static final String DARK_MODE_PREFS = "dark_mode_prefs"; public static final String PREF_DARK_MODE_DIALOG_SEEN = "dark_mode_dialog_seen"; public static final int DIALOG_SEEN = 1; @@ -48,9 +45,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple private UiModeManager mUiModeManager; private PowerManager mPowerManager; - private Context mContext; - - private Fragment mFragment; private BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override @@ -61,7 +55,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple public DarkUIPreferenceController(Context context, String key) { super(context, key); - mContext = context; mUiModeManager = context.getSystemService(UiModeManager.class); mPowerManager = context.getSystemService(PowerManager.class); } @@ -86,12 +79,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple @Override public boolean setChecked(boolean isChecked) { - final boolean dialogSeen = - Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.DARK_MODE_DIALOG_SEEN, 0) == DIALOG_SEEN; - if (!dialogSeen && isChecked) { - showDarkModeDialog(); - } return mUiModeManager.setNightModeActivated(isChecked); } @@ -100,13 +87,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple return R.string.menu_key_display; } - private void showDarkModeDialog() { - final DarkUIInfoDialogFragment frag = new DarkUIInfoDialogFragment(); - if (mFragment != null && mFragment.getFragmentManager() != null) { - frag.show(mFragment.getFragmentManager(), getClass().getName()); - } - } - @VisibleForTesting void updateEnabledStateIfNeeded() { if (mPreference == null) { @@ -133,11 +113,6 @@ public class DarkUIPreferenceController extends TogglePreferenceController imple new IntentFilter(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED)); } - // used by AccessibilitySettings - public void setParentFragment(Fragment fragment) { - mFragment = fragment; - } - @Override public void onStop() { mContext.unregisterReceiver(mReceiver); diff --git a/tests/robotests/src/com/android/settings/display/DarkUIInfoDialogFragmentTest.java b/tests/robotests/src/com/android/settings/display/DarkUIInfoDialogFragmentTest.java deleted file mode 100644 index f90c5901a2e..00000000000 --- a/tests/robotests/src/com/android/settings/display/DarkUIInfoDialogFragmentTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2019 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.display; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -import android.content.Context; -import android.content.DialogInterface; -import android.content.SharedPreferences; -import android.provider.Settings; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; - -@RunWith(RobolectricTestRunner.class) -public class DarkUIInfoDialogFragmentTest { - private DarkUIInfoDialogFragment mFragment; - @Mock - private DialogInterface dialog; - - - @Before - public void setup() { - MockitoAnnotations.initMocks(this); - mFragment = spy(new DarkUIInfoDialogFragment()); - } - - @Test - public void dialogDismissedOnConfirmation() { - doReturn(RuntimeEnvironment.application).when(mFragment).getContext(); - SharedPreferences prefs = RuntimeEnvironment.application.getSharedPreferences( - DarkUIPreferenceController.DARK_MODE_PREFS, - Context.MODE_PRIVATE); - assertThat(prefs.getBoolean(DarkUIPreferenceController.PREF_DARK_MODE_DIALOG_SEEN, false)) - .isFalse(); - mFragment.onClick(dialog, DialogInterface.BUTTON_POSITIVE); - verify(dialog, times(1)).dismiss(); - assertThat(Settings.Secure.getInt(RuntimeEnvironment.application.getContentResolver(), - Settings.Secure.DARK_MODE_DIALOG_SEEN, -1)).isEqualTo(1); - } -} diff --git a/tests/robotests/src/com/android/settings/display/DarkUIPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/DarkUIPreferenceControllerTest.java index 9924cb4b628..9a24d32a739 100644 --- a/tests/robotests/src/com/android/settings/display/DarkUIPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/DarkUIPreferenceControllerTest.java @@ -16,35 +16,33 @@ package com.android.settings.display; +import static com.google.common.truth.Truth.assertThat; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; + import android.content.Context; -import androidx.fragment.app.Fragment; + import com.android.settings.display.darkmode.DarkModePreference; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.spy; - @RunWith(RobolectricTestRunner.class) public class DarkUIPreferenceControllerTest { private DarkUIPreferenceController mController; private Context mContext; - @Mock - private Fragment mFragment; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mController = spy(new DarkUIPreferenceController(mContext, "dark_ui_mode")); - mController.setParentFragment(mFragment); mController.mPreference = new DarkModePreference(mContext, null /* AttributeSet attrs */); mController.onStart(); }