-->
<bool name="config_use_legacy_suggestion">true</bool>
+ <!-- Whether or not homepage should display user's account avatar -->
+ <bool name="config_show_avatar_in_homepage">false</bool>
+
<!-- Whether or not TopLevelSettings should force rounded icon for injected tiles -->
<bool name="config_force_rounded_icon_TopLevelSettings">true</bool>
import android.accounts.Account;
import android.content.Context;
+import android.util.Log;
import android.widget.ImageView;
import androidx.annotation.VisibleForTesting;
* in {@link SettingsHomepageActivity}.
*/
public class AvatarViewMixin implements LifecycleObserver {
- private Context mContext;
- private ImageView mAvatarView;
+ private static final String TAG = "AvatarViewMixin";
+
+ private final Context mContext;
+ private final ImageView mAvatarView;
public AvatarViewMixin(Context context, ImageView avatarView) {
mContext = context.getApplicationContext();
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onStart() {
+ if (!mContext.getResources().getBoolean(R.bool.config_show_avatar_in_homepage)) {
+ Log.d(TAG, "Feature disabled. Skipping");
+ return;
+ }
if (hasAccount()) {
//TODO(b/117509285): To migrate account icon on search bar
} else {
<bool name="config_disable_uninstall_update">true</bool>
<bool name="config_show_device_name">false</bool>
<bool name="config_use_legacy_suggestion">false</bool>
+ <bool name="config_show_avatar_in_homepage">true</bool>
<!-- Whether or not extra preview panels should be used for screen zoom setting. -->
<bool name="config_enable_extra_screen_zoom_preview">false</bool>
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
}
@Test
+ public void onStart_configDisabled_doNothing() {
+ final AvatarViewMixin mixin = spy(new AvatarViewMixin(mContext, mImageView));
+ mixin.onStart();
+
+ verify(mixin, never()).hasAccount();
+ }
+
+ @Test
+ @Config(qualifiers = "mcc999")
public void onStart_useMockAvatarViewMixin_shouldBeExecuted() {
final AvatarViewMixin mockAvatar = spy(new AvatarViewMixin(mContext, mImageView));
settingsHomepageActivity.getLifecycle().addObserver(mockAvatar);
controller.start();
- verify(mockAvatar).onStart();
+ verify(mockAvatar).hasAccount();
}
@Implements(AccountFeatureProviderImpl.class)