From 220e2fc09e9cb62dfe859cf63b8fcca0f6d9bca4 Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Tue, 6 Feb 2018 12:12:49 -0800 Subject: 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 --- .../configprovider/ConfigProviderComponent.java | 1 + java/com/android/dialer/main/Main.java | 3 +++ .../com/android/dialer/main/impl/MainActivity.java | 23 +++++++++++----------- java/com/android/dialer/main/impl/MainImpl.java | 10 ++++++++++ 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/java/com/android/dialer/configprovider/ConfigProviderComponent.java b/java/com/android/dialer/configprovider/ConfigProviderComponent.java index e26a5cfe4..10d52e749 100644 --- a/java/com/android/dialer/configprovider/ConfigProviderComponent.java +++ b/java/com/android/dialer/configprovider/ConfigProviderComponent.java @@ -26,6 +26,7 @@ import dagger.Subcomponent; 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 14ac7e439..e7295f199 100644 --- a/java/com/android/dialer/main/Main.java +++ b/java/com/android/dialer/main/Main.java @@ -20,8 +20,11 @@ import android.content.Context; /** 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 85f9c9f4b..ac2cb389e 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.content.Intent; 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 @@ import com.android.dialer.util.TransactionSafeActivity; /** 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 @@ public final class MainActivity extends TransactionSafeActivity /** 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,14 +66,17 @@ public final class MainActivity extends TransactionSafeActivity 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); + // 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 { - activePeer = new OldMainActivityPeer(this); + return new OldMainActivityPeer(this); } - activePeer.onActivityCreate(savedInstanceState); } @Override diff --git a/java/com/android/dialer/main/impl/MainImpl.java b/java/com/android/dialer/main/impl/MainImpl.java index e6d9a43ef..1cd457c8a 100644 --- a/java/com/android/dialer/main/impl/MainImpl.java +++ b/java/com/android/dialer/main/impl/MainImpl.java @@ -66,6 +66,16 @@ final class MainImpl implements Main { 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 = -- cgit v1.2.3