Implemented GoogleMainActivity.
This Activity is only visible if you flip the flag in the AndroidManifest.
Bug: 72525324
Test: implemented
PiperOrigin-RevId: 184719387
Change-Id: I88d7ee1be537cbe5aa5cd4ee5a8f84d56bddb757
diff --git a/java/com/android/dialer/configprovider/ConfigProviderComponent.java b/java/com/android/dialer/configprovider/ConfigProviderComponent.java
index e26a5cf..10d52e7 100644
--- a/java/com/android/dialer/configprovider/ConfigProviderComponent.java
+++ b/java/com/android/dialer/configprovider/ConfigProviderComponent.java
@@ -26,6 +26,7 @@
public abstract class ConfigProviderComponent {
@NonNull
+ @Deprecated // Use ConfigProviderBindings instead
public abstract ConfigProvider getConfigProvider();
public static ConfigProviderComponent get(Context context) {
diff --git a/java/com/android/dialer/main/Main.java b/java/com/android/dialer/main/Main.java
index 14ac7e4..e7295f1 100644
--- a/java/com/android/dialer/main/Main.java
+++ b/java/com/android/dialer/main/Main.java
@@ -20,8 +20,11 @@
/** Used to display the main activity for Dialer. This hosts favorites, dial pad, search, etc... */
public interface Main {
+
boolean isNewUiEnabled(Context context);
// TODO(38502365): Remove this when we're ready to launch the new UI. */
void createNewUiLauncherShortcut(Context context);
+
+ void disableComponentForTesting(Context context);
}
diff --git a/java/com/android/dialer/main/impl/MainActivity.java b/java/com/android/dialer/main/impl/MainActivity.java
index 85f9c9f..ac2cb38 100644
--- a/java/com/android/dialer/main/impl/MainActivity.java
+++ b/java/com/android/dialer/main/impl/MainActivity.java
@@ -21,7 +21,7 @@
import android.os.Bundle;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderComponent;
+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;
@@ -31,7 +31,7 @@
/** This is the main activity for dialer. It hosts favorites, call log, search, dialpad, etc... */
// TODO(calderwoodra): Do not extend TransactionSafeActivity after new SpeedDial is launched
-public final class MainActivity extends TransactionSafeActivity
+public class MainActivity extends TransactionSafeActivity
implements MainActivityPeer.PeerSupplier,
// TODO(calderwoodra): remove these 2 interfaces when we migrate to new speed dial fragment
InteractionErrorListener,
@@ -45,9 +45,7 @@
/** Returns intent that will open MainActivity to the specified tab. */
public static Intent getShowTabIntent(Context context, @TabIndex int tabIndex) {
- if (ConfigProviderComponent.get(context)
- .getConfigProvider()
- .getBoolean("nui_peer_enabled", false)) {
+ if (ConfigProviderBindings.get(context).getBoolean("nui_peer_enabled", false)) {
// TODO(calderwoodra): implement this in NewMainActivityPeer
return null;
}
@@ -68,16 +66,19 @@
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LogUtil.enterBlock("MainActivity.onCreate");
- if (ConfigProviderComponent.get(this)
- .getConfigProvider()
- .getBoolean("nui_peer_enabled", false)) {
- activePeer = new NewMainActivityPeer(this);
- } else {
- activePeer = new OldMainActivityPeer(this);
- }
+ // If peer was set by the super, don't reset it.
+ activePeer = getNewPeer();
activePeer.onActivityCreate(savedInstanceState);
}
+ protected MainActivityPeer getNewPeer() {
+ if (ConfigProviderBindings.get(this).getBoolean("nui_peer_enabled", false)) {
+ return new NewMainActivityPeer(this);
+ } else {
+ return new OldMainActivityPeer(this);
+ }
+ }
+
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
diff --git a/java/com/android/dialer/main/impl/MainImpl.java b/java/com/android/dialer/main/impl/MainImpl.java
index e6d9a43..1cd457c 100644
--- a/java/com/android/dialer/main/impl/MainImpl.java
+++ b/java/com/android/dialer/main/impl/MainImpl.java
@@ -66,6 +66,16 @@
PackageManager.DONT_KILL_APP);
}
+ @Override
+ public void disableComponentForTesting(Context context) {
+ context
+ .getPackageManager()
+ .setComponentEnabledSetting(
+ new ComponentName(context, MainActivity.class),
+ PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+ PackageManager.DONT_KILL_APP);
+ }
+
@TargetApi(VERSION_CODES.O)
private static void createLauncherShortcutO(Context context) {
ShortcutInfoCompat shortcutInfo =