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

Commit a46a8cab authored by Joel Beckmeyer's avatar Joel Beckmeyer Committed by Michael W
Browse files

Dialer: convert VoicemailSecretCodeActivity to androidx

* fixes Fragment$InstantiationException on launch. PreferenceActivity
  cannot instantiate PreferenceFragmentCompat due to it being a
  androidx.fragment.app.Fragment instead of the expected
  android.app.Fragment.
* also fix double listing of preferences in override screen.

Change-Id: Ibd9b1fe064cff23b81aca592bdde2b41c200b784
parent e657193a
Loading
Loading
Loading
Loading
+2 −14
Original line number Diff line number Diff line
@@ -54,10 +54,9 @@ public class ConfigOverrideFragment extends PreferenceFragmentCompat
  private static final String CONFIG_OVERRIDE_KEY_PREFIX = "vvm_config_override_key_";

  @Override
  public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
  public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    PreferenceManager.setDefaultValues(getActivity(), R.xml.vvm_config_override, false);
    addPreferencesFromResource(R.xml.vvm_config_override);
    setPreferencesFromResource(R.xml.vvm_config_override, rootKey);

    // add listener so the value of a EditTextPreference will be updated to the summary.
    for (int i = 0; i < getPreferenceScreen().getPreferenceCount(); i++) {
@@ -81,17 +80,6 @@ public class ConfigOverrideFragment extends PreferenceFragmentCompat
    }
  }

  @Override
  public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
      setPreferencesFromResource(R.xml.vvm_config_override, rootKey);

      for (int i = 0; i < getPreferenceScreen().getPreferenceCount(); i++) {
        Preference preference = getPreferenceScreen().getPreference(i);
        preference.setOnPreferenceChangeListener(this);
        updatePreference(preference);
      }
  }

  @Override
  public boolean onPreferenceTreeClick(Preference preference) {
      if (TextUtils.equals(
+11 −34
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 The Android Open Source Project
 * Copyright (C) 2023 The LineageOS Project
 * Copyright (C) 2024 The LineageOS Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -17,44 +17,21 @@

package com.android.voicemail.impl.configui;

import android.content.Intent;
import android.preference.PreferenceActivity;
import android.provider.VoicemailContract;
import android.os.Bundle;

import java.util.List;
import androidx.appcompat.app.AppCompatActivity;
import com.android.dialer.R;

/** Activity launched by simulator->voicemail, provides debug features. */
@SuppressWarnings("FragmentInjection") // not exported
public class VoicemailSecretCodeActivity extends PreferenceActivity {

  private Header syncHeader;

  @Override
  public void onBuildHeaders(List<Header> target) {
    super.onBuildHeaders(target);
    syncHeader = new Header();
    syncHeader.title = "Sync";
    target.add(syncHeader);

    Header configOverride = new Header();
    configOverride.fragment = ConfigOverrideFragment.class.getName();
    configOverride.title = "VVM config override";
    target.add(configOverride);
  }

  @Override
  public void onHeaderClick(Header header, int position) {
    if (header == syncHeader) {
      Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
      intent.setPackage(getPackageName());
      sendBroadcast(intent);
      return;
    }
    super.onHeaderClick(header, position);
  }
public class VoicemailSecretCodeActivity extends AppCompatActivity {

  @Override
  protected boolean isValidFragment(String fragmentName) {
    return true;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setTheme(R.style.SettingsStyle);
    getSupportFragmentManager().beginTransaction()
      .replace(android.R.id.content, new VoicemailSecretCodeFragment())
      .commit();
  }
}
+63 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The LineageOS 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.voicemail.impl.configui;

import android.os.Bundle;
import android.text.TextUtils;

import androidx.preference.Preference;
import androidx.preference.Preference.OnPreferenceClickListener;
import androidx.preference.PreferenceFragmentCompat;

import android.content.Intent;
import android.provider.VoicemailContract;

public class VoicemailSecretCodeFragment extends PreferenceFragmentCompat
    implements OnPreferenceClickListener {

  private Preference syncPreference;
  private Preference configOverridePreference;
  private static final String SYNC_KEY = "sync_preference";
  private static final String CONFIG_OVERRIDE_KEY =
    "config_override_preference";

  @Override
  public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    setPreferencesFromResource(R.xml.vvm_secret_main, rootKey);

    syncPreference = findPreference(SYNC_KEY);
    syncPreference.setOnPreferenceClickListener(this);

    configOverridePreference = findPreference(CONFIG_OVERRIDE_KEY);
    configOverridePreference.setOnPreferenceClickListener(this);
  }

  @Override
  public boolean onPreferenceClick(Preference preference) {
    if (TextUtils.equals(preference.getKey(), SYNC_KEY)) {
      Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
      intent.setPackage(requireContext().getPackageName());
      requireContext().sendBroadcast(intent);
    } else {
      getParentFragmentManager().beginTransaction()
        .replace(android.R.id.content, new ConfigOverrideFragment())
        .addToBackStack(null)
        .commit();
    }
    return true;
  }
}
+19 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2024 The LineageOS 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.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
  <string name="sync_preference_title">Sync</string>
  <string name="config_override_preference_title">VVM config override</string>
</resources>
+9 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
  <Preference
    android:key="sync_preference"
    android:title="@string/sync_preference_title" />
  <Preference
    android:key="config_override_preference"
    android:title="@string/config_override_preference_title" />
</PreferenceScreen>