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

Commit dc5935b3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes Ic084d903,I9cb063a9,I8c0abf9f

* changes:
  Use CallLogConfig for enabling new peer.
  Turn on transcription when existing dialer user accepts ToS and transcription is available.
  Turn off transcription when user declines tos (existing dialer user)
parents 0aac9909 bb4c1be2
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -23,8 +23,8 @@ import android.content.SharedPreferences.Editor;
import android.support.annotation.Nullable;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.inject.ApplicationContext;
import com.android.dialer.storage.StorageComponent;
import com.android.dialer.storage.Unencrypted;
import com.android.dialer.strictmode.StrictModeUtils;
import javax.inject.Inject;

@@ -49,14 +49,14 @@ import javax.inject.Inject;
 *     /data/user_de/0/com.android.dialer/shared_prefs/com.android.dialer_preferences.xml
 * </pre>
 */
class SharedPrefConfigProvider implements ConfigProvider {
public class SharedPrefConfigProvider implements ConfigProvider {
  private static final String PREF_PREFIX = "config_provider_prefs_";

  private final Context appContext;
  private final SharedPreferences sharedPreferences;

  @Inject
  SharedPrefConfigProvider(@ApplicationContext Context appContext) {
    this.appContext = appContext;
  SharedPrefConfigProvider(@Unencrypted SharedPreferences sharedPreferences) {
    this.sharedPreferences = sharedPreferences;
  }

  /** Service to write values into {@link SharedPrefConfigProvider} using adb. */
@@ -93,25 +93,29 @@ class SharedPrefConfigProvider implements ConfigProvider {
    }
  }

  /** Set a boolean config value. */
  public void putBoolean(String key, boolean value) {
    sharedPreferences.edit().putBoolean(PREF_PREFIX + key, value).apply();
  }

  @Override
  public String getString(String key, String defaultValue) {
    // Reading shared prefs on the main thread is generally safe since a single instance is cached.
    return StrictModeUtils.bypass(
        () -> getSharedPrefs(appContext).getString(PREF_PREFIX + key, defaultValue));
        () -> sharedPreferences.getString(PREF_PREFIX + key, defaultValue));
  }

  @Override
  public long getLong(String key, long defaultValue) {
    // Reading shared prefs on the main thread is generally safe since a single instance is cached.
    return StrictModeUtils.bypass(
        () -> getSharedPrefs(appContext).getLong(PREF_PREFIX + key, defaultValue));
    return StrictModeUtils.bypass(() -> sharedPreferences.getLong(PREF_PREFIX + key, defaultValue));
  }

  @Override
  public boolean getBoolean(String key, boolean defaultValue) {
    // Reading shared prefs on the main thread is generally safe since a single instance is cached.
    return StrictModeUtils.bypass(
        () -> getSharedPrefs(appContext).getBoolean(PREF_PREFIX + key, defaultValue));
        () -> sharedPreferences.getBoolean(PREF_PREFIX + key, defaultValue));
  }

  private static SharedPreferences getSharedPrefs(Context appContext) {
+4 −1
Original line number Diff line number Diff line
@@ -16,14 +16,17 @@

package com.android.dialer.configprovider;

import com.android.dialer.storage.StorageModule;
import dagger.Binds;
import dagger.Module;
import javax.inject.Singleton;

/** Dagger module providing {@link ConfigProvider} based on shared preferences. */
@Module
@Module(includes = StorageModule.class)
public abstract class SharedPrefConfigProviderModule {

  private SharedPrefConfigProviderModule() {}

  @Binds
  @Singleton
  abstract ConfigProvider to(SharedPrefConfigProvider impl);
+3 −3
Original line number Diff line number Diff line
@@ -21,9 +21,9 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;
import com.android.dialer.blockreportspam.ShowBlockReportSpamDialogReceiver;
import com.android.dialer.calllog.config.CallLogConfigComponent;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.configprovider.ConfigProviderBindings;
import com.android.dialer.interactions.PhoneNumberInteraction.DisambigDialogDismissedListener;
import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorCode;
import com.android.dialer.interactions.PhoneNumberInteraction.InteractionErrorListener;
@@ -53,7 +53,7 @@ public class MainActivity extends TransactionSafeActivity

  /** Returns intent that will open MainActivity to the specified tab. */
  public static Intent getShowTabIntent(Context context, @TabIndex int tabIndex) {
    if (ConfigProviderBindings.get(context).getBoolean("nui_peer_enabled", false)) {
    if (CallLogConfigComponent.get(context).callLogConfig().isNewPeerEnabled()) {
      // TODO(calderwoodra): implement this in NewMainActivityPeer
      return null;
    }
@@ -82,7 +82,7 @@ public class MainActivity extends TransactionSafeActivity
  }

  protected MainActivityPeer getNewPeer() {
    if (ConfigProviderBindings.get(this).getBoolean("nui_peer_enabled", false)) {
    if (CallLogConfigComponent.get(this).callLogConfig().isNewPeerEnabled()) {
      return new NewMainActivityPeer(this);
    } else {
      return new OldMainActivityPeer(this);
+16 −17
Original line number Diff line number Diff line
@@ -22,8 +22,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.annotation.Nullable;
import android.telecom.PhoneAccountHandle;
@@ -40,11 +38,9 @@ import android.view.View.OnClickListener;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.telephony.TelephonyManagerCompat;
import com.android.dialer.configprovider.ConfigProviderBindings;
import com.android.dialer.constants.Constants;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.voicemail.listui.error.VoicemailErrorMessage.Action;
import com.android.dialer.voicemail.settings.VoicemailSettingsFragment;
import com.android.voicemail.VisualVoicemailTypeExtensions;
import com.android.voicemail.VoicemailClient;
import com.android.voicemail.VoicemailComponent;
@@ -129,19 +125,16 @@ public class VoicemailTosMessageCreator {
            getExistingUserTosTitle(),
            getExistingUserTosMessageText(),
            new Action(
                context.getString(R.string.dialer_terms_and_conditions_existing_user_setings),
                context.getString(R.string.dialer_terms_and_conditions_existing_user_decline),
                new OnClickListener() {
                  @Override
                  public void onClick(View v) {
                    LogUtil.i("VoicemailTosMessageCreator.getPromoMessage", "open settings");
                    Intent intent =
                        new Intent(Intent.ACTION_VIEW)
                            .setComponent(
                                new ComponentName(context, Constants.get().getSettingsActivity()))
                            .setData(
                                Uri.fromParts(
                                    "header", VoicemailSettingsFragment.class.getName(), null));
                    context.startActivity(intent);
                    LogUtil.i(
                        "VoicemailTosMessageCreator.getPromoMessage", "declined transcription");
                    VoicemailClient voicemailClient =
                        VoicemailComponent.get(context).getVoicemailClient();
                    voicemailClient.setVoicemailTranscriptionEnabled(
                        context, status.getPhoneAccountHandle(), false);
                  }
                }),
            new Action(
@@ -150,6 +143,12 @@ public class VoicemailTosMessageCreator {
                  @Override
                  public void onClick(View v) {
                    LogUtil.i("VoicemailTosMessageCreator.getPromoMessage", "acknowledge clicked");
                    if (isVoicemailTranscriptionAvailable()) {
                      VoicemailComponent.get(context)
                          .getVoicemailClient()
                          .setVoicemailTranscriptionEnabled(
                              context, status.getPhoneAccountHandle(), true);
                    }
                    // Feature acknowledgement also means accepting TOS
                    recordTosAcceptance();
                    recordFeatureAcknowledgement();
@@ -228,9 +227,9 @@ public class VoicemailTosMessageCreator {
  }

  private boolean isVoicemailTranscriptionAvailable() {
    return Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
        && ConfigProviderBindings.get(context)
            .getBoolean("voicemail_transcription_available", false);
    return VoicemailComponent.get(context)
        .getVoicemailClient()
        .isVoicemailTranscriptionAvailable(context, status.getPhoneAccountHandle());
  }

  private void showDeclineTosDialog(final PhoneAccountHandle handle) {
+1 −1
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ Si no acepta todos estos términos y condiciones, no use el buzón de voz visual
  <string name="dialer_terms_and_conditions_decline_spanish" translatable="false">Rechazar</string>

  <string name="dialer_terms_and_conditions_existing_user_ack">Ok, got it</string>
  <string name="dialer_terms_and_conditions_existing_user_setings">Settings</string>
  <string name="dialer_terms_and_conditions_existing_user_decline">No Thanks</string>

  <string name="terms_and_conditions_decline_dialog_title">Disable visual voicemail?</string>