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

Commit ed22b6e1 authored by Chaohui Wang's avatar Chaohui Wang
Browse files

Set placeholder summary for SettingsInjector

Currently, injected service could return null or empty string for summary, but it could cause settings item shift around on phone.
Use a not empty placeholder string could solve this issue.

Bug: 183471902
Test: On Pixel Phone
Change-Id: I14538f4038c5ddbf45b6d42ad0c00bab487e835a
parent c88a1ff3
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -410,6 +410,8 @@
    <string name="launch_defaults_none">No defaults set</string>
    <!-- DO NOT TRANSLATE Empty summary for dynamic preferences -->
    <string name="summary_empty" translatable="false"></string>
    <!-- DO NOT TRANSLATE Summary placeholder -->
    <string name="summary_placeholder" translatable="false">&#160;</string>
    <!-- Text-To-Speech (TTS) settings --><skip />
    <!-- Name of the TTS package as listed by the package manager. -->
    <string name="tts_settings">Text-to-speech settings</string>
+12 −6
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.os.Messenger;
import android.os.SystemClock;
import android.os.UserHandle;
import android.os.UserManager;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.AttributeSet;
@@ -449,17 +450,22 @@ public class SettingsInjector {
            if (setting == null) {
                return;
            }
            final Preference preference = setting.preference;
            Bundle bundle = msg.getData();
            boolean enabled = bundle.getBoolean(SettingInjectorService.ENABLED_KEY, true);
            String summary = bundle.getString(SettingInjectorService.SUMMARY_KEY, null);
            if (Log.isLoggable(TAG, Log.DEBUG)) {
                Log.d(TAG, setting + ": received " + msg + ", bundle: " + bundle);
            }
            boolean enabled = bundle.getBoolean(SettingInjectorService.ENABLED_KEY, true);
            String summary = bundle.getString(SettingInjectorService.SUMMARY_KEY);
            final Preference preference = setting.preference;
            if (TextUtils.isEmpty(summary)) {
                // Set a placeholder summary when received empty summary from injected service.
                // This is necessary to avoid preference height change.
                preference.setSummary(R.string.summary_placeholder);
            } else {
                preference.setSummary(summary);
            }
            preference.setEnabled(enabled);
            mHandler.sendMessage(
                    mHandler.obtainMessage(WHAT_RECEIVED_STATUS, setting));
            mHandler.sendMessage(mHandler.obtainMessage(WHAT_RECEIVED_STATUS, setting));
        }
    }