Rearrange a few settings into System category page.

- Use activity-alias to define which activity shows up in what category.
  We choose activity-alias because it creates a reference to UI we need
  without having to define a new set of intent-filter and/or category
  keys. This reduces maintainence in the long run. We should merge
  metadata from activity-alias into targetActivity when cleaning up.

- Created new System dashboard activity that hosts all system category
  tiles dynamically, and a static tile for checking system update.

Bug: 31781480
Test: manual
Test: make RunSettingsRoboTests -j40
Change-Id: Ia2d762e3e1aebd17423a395c5e6c286dc3326492
This commit is contained in:
Fan Zhang
2016-09-29 14:37:14 -07:00
parent 9fc9f0f177
commit cc335d9509
11 changed files with 398 additions and 15 deletions

View File

@@ -0,0 +1,78 @@
/**
* Copyright (C) 2016 The Android Open Source 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.settings.dashboard.conditional;
import android.content.Context;
import android.support.v7.preference.PreferenceViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import com.android.settings.TestConfig;
import com.android.settings.dashboard.DashboardTilePreference;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import static com.google.common.truth.Truth.assertThat;
@RunWith(RobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DashboardTilePreferenceTest {
private ShadowApplication mShadowApplication;
private Context mContext;
private PreferenceViewHolder mHolder;
private DashboardTilePreference mPreference;
@Before
public void setUp() {
mShadowApplication = ShadowApplication.getInstance();
mContext = mShadowApplication.getApplicationContext();
mPreference = new DashboardTilePreference(mContext);
LayoutInflater inflater = LayoutInflater.from(mContext);
final View view = inflater.inflate(mPreference.getLayoutResource(),
new LinearLayout(mContext), false);
mHolder = new PreferenceViewHolder(view);
}
@Test
public void setHasDivider_shouldShowDivider() {
mPreference.setDividerAllowedAbove(true);
mPreference.setDividerAllowedBelow(true);
mPreference.onBindViewHolder(mHolder);
assertThat(mHolder.isDividerAllowedAbove()).isTrue();
assertThat(mHolder.isDividerAllowedBelow()).isTrue();
}
@Test
public void setHasNoDivider_shouldHideDivider() {
mPreference.setDividerAllowedAbove(false);
mPreference.setDividerAllowedBelow(false);
mPreference.onBindViewHolder(mHolder);
assertThat(mHolder.isDividerAllowedAbove()).isFalse();
assertThat(mHolder.isDividerAllowedBelow()).isFalse();
}
}