summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnthony Hugh <ahugh@google.com>2015-09-16 17:51:10 -0700
committerAnthony Hugh <ahugh@google.com>2015-09-17 10:44:12 -0700
commit736c82ba577f8f972ea4277357ae440b192dcd13 (patch)
treef4ced1548148c2b69a033907485259e56694593f
parent1a61dfd0af382e64ecd6ff91361036b22fcf52e9 (diff)
downloadandroid_packages_apps_PackageInstaller-736c82ba577f8f972ea4277357ae440b192dcd13.tar.gz
android_packages_apps_PackageInstaller-736c82ba577f8f972ea4277357ae440b192dcd13.tar.bz2
android_packages_apps_PackageInstaller-736c82ba577f8f972ea4277357ae440b192dcd13.zip
Permissions Settings UI updates
Changes: - Moved non-system permission groups to the end of the list - Updated "disabled" look to match non-center looked - Fixed state string alpha to match other alphas when not centered - Minor code clean ups BUG: 24132393 BUG: 24132470 BUG: 24131983 Change-Id: I65a64d59e6fff8e0cbdaaa3da4e4a79987d6e624
-rw-r--r--res/layout-watch/permissions_settings_item.xml7
-rw-r--r--res/values-watch/colors.xml2
-rw-r--r--src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java26
-rw-r--r--src/com/android/packageinstaller/permission/ui/wear/TitledSettingsFragment.java23
-rw-r--r--src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java36
-rw-r--r--src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java23
6 files changed, 63 insertions, 54 deletions
diff --git a/res/layout-watch/permissions_settings_item.xml b/res/layout-watch/permissions_settings_item.xml
index 1c57fd81..1dc4abf7 100644
--- a/res/layout-watch/permissions_settings_item.xml
+++ b/res/layout-watch/permissions_settings_item.xml
@@ -27,17 +27,18 @@
android:fontFamily="sans-serif-condensed-light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textColor="#FFFFFFFF"
+ android:textColor="@color/permissions_settings_item_color"
android:textSize="14sp"
android:maxLines="2"
android:ellipsize="end"/>
<TextView
android:id="@+id/state"
+ android:alpha="0.5"
+ android:fontFamily="sans-serif-condensed-light"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:textColor="@color/permissions_settings_item_color"
android:textSize="14sp"
- android:textColor="#FFFFFFFF"
- android:fontFamily="sans-serif-condensed-light"
android:maxLines="1"
android:ellipsize="end"/>
</LinearLayout>
diff --git a/res/values-watch/colors.xml b/res/values-watch/colors.xml
index 39c3eb48..b81d6e3b 100644
--- a/res/values-watch/colors.xml
+++ b/res/values-watch/colors.xml
@@ -22,6 +22,8 @@
<color name="grant_permissions_white_text_alpha_100">@color/off_white</color>
<color name="grant_permissions_white_text_alpha_70">#b2eeeeee</color>
+ <color name="permissions_settings_item_color">#FFFFFFFF</color>
+
<color name="off_white">#ffeeeeee</color>
<color name="primary_text_light">#424242</color>
diff --git a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
index 9e54c7d5..1969c20d 100644
--- a/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
+++ b/src/com/android/packageinstaller/permission/ui/wear/AppPermissionsFragmentWear.java
@@ -66,7 +66,6 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
arguments.putString(Intent.EXTRA_PACKAGE_NAME, packageName);
fragment.setArguments(arguments);
return fragment;
-
}
@Override
@@ -126,11 +125,11 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
super.onViewCreated(view, savedInstanceState);
if (mAppPermissions != null) {
initializeLayout(mAdapter);
- bindUi(mAppPermissions.getPackageInfo());
+ bindHeader(mAppPermissions.getPackageInfo());
}
}
- private void bindUi(PackageInfo packageInfo) {
+ private void bindHeader(PackageInfo packageInfo) {
Activity activity = getActivity();
PackageManager pm = activity.getPackageManager();
ApplicationInfo appInfo = packageInfo.applicationInfo;
@@ -141,6 +140,8 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
private void initializePermissionGroupList() {
final String packageName = mAppPermissions.getPackageInfo().packageName;
List<AppPermissionGroup> groups = mAppPermissions.getPermissionGroups();
+ List<SettingsAdapter.Setting<AppPermissionGroup>> nonSystemGroups = new ArrayList<>();
+
final int count = groups.size();
for (int i = 0; i < count; ++i) {
final AppPermissionGroup group = groups.get(i);
@@ -148,12 +149,27 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
continue;
}
+ boolean isPlatform = group.getDeclaringPackage().equals(Utils.OS_PKG);
+
SettingsAdapter.Setting<AppPermissionGroup> setting =
new SettingsAdapter.Setting<AppPermissionGroup>(
group.getLabel(),
getPermissionGroupIcon(group),
i);
setting.data = group;
+
+ // The UI shows System settings first, then non-system settings
+ if (isPlatform) {
+ mAdapter.addSetting(setting);
+ } else {
+ nonSystemGroups.add(setting);
+ }
+ }
+
+ // Now add the non-system settings to the end of the list
+ final int nonSystemCount = nonSystemGroups.size();
+ for (int i = 0; i < nonSystemCount; ++i) {
+ final SettingsAdapter.Setting<AppPermissionGroup> setting = nonSystemGroups.get(i);
mAdapter.addSetting(setting);
}
}
@@ -161,7 +177,7 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
@Override
public void onPause() {
super.onPause();
- logToggledGroups();
+ logAndClearToggledGroups();
}
@Override
@@ -247,7 +263,7 @@ public final class AppPermissionsFragmentWear extends TitledSettingsFragment {
}
}
- private void logToggledGroups() {
+ private void logAndClearToggledGroups() {
if (mToggledGroups != null) {
String packageName = mAppPermissions.getPackageInfo().packageName;
SafetyNetLogger.logPermissionsToggled(packageName, mToggledGroups);
diff --git a/src/com/android/packageinstaller/permission/ui/wear/TitledSettingsFragment.java b/src/com/android/packageinstaller/permission/ui/wear/TitledSettingsFragment.java
index a738decd..64f42d0d 100644
--- a/src/com/android/packageinstaller/permission/ui/wear/TitledSettingsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/wear/TitledSettingsFragment.java
@@ -48,10 +48,9 @@ public abstract class TitledSettingsFragment extends Fragment implements
protected TextView mHeader;
protected WearableListView mWheel;
- private static boolean sInitialized;
- private static int sCharLimitShortTitle;
- private static int sCharLimitLine;
- private static int mChinOffset;
+ private int mCharLimitShortTitle;
+ private int mCharLimitLine;
+ private int mChinOffset;
private TextWatcher mHeaderTextWatcher = new TextWatcher() {
@Override
@@ -64,7 +63,6 @@ public abstract class TitledSettingsFragment extends Fragment implements
public void afterTextChanged(Editable editable) {
adjustHeaderSize();
}
-
};
private void adjustHeaderTranslation() {
@@ -88,11 +86,8 @@ public abstract class TitledSettingsFragment extends Fragment implements
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (!sInitialized) {
- sCharLimitShortTitle = getResources().getInteger(R.integer.short_title_length);
- sCharLimitLine = getResources().getInteger(R.integer.char_limit_per_line);
- sInitialized = true;
- }
+ mCharLimitShortTitle = getResources().getInteger(R.integer.short_title_length);
+ mCharLimitLine = getResources().getInteger(R.integer.char_limit_per_line);
}
@Override
@@ -142,7 +137,7 @@ public abstract class TitledSettingsFragment extends Fragment implements
positionOnCircular(getContext(), mHeader, mWheel);
}
- public static void positionOnCircular(Context context, View header, final ViewGroup wheel) {
+ public void positionOnCircular(Context context, View header, final ViewGroup wheel) {
if (ViewUtils.getIsCircular(context)) {
FrameLayout.LayoutParams params =
(FrameLayout.LayoutParams) header.getLayoutParams();
@@ -196,7 +191,7 @@ public abstract class TitledSettingsFragment extends Fragment implements
private void adjustHeaderSize() {
int length = mHeader.length();
- if (length <= sCharLimitShortTitle) {
+ if (length <= mCharLimitShortTitle) {
mHeader.setTextSize(TypedValue.COMPLEX_UNIT_PX,
getResources().getDimensionPixelSize(
R.dimen.setting_short_header_text_size));
@@ -206,7 +201,7 @@ public abstract class TitledSettingsFragment extends Fragment implements
R.dimen.setting_long_header_text_size));
}
- boolean singleLine = length <= sCharLimitLine;
+ boolean singleLine = length <= mCharLimitLine;
float height = getResources().getDimension(R.dimen.settings_header_base_height);
if (!singleLine) {
@@ -236,6 +231,4 @@ public abstract class TitledSettingsFragment extends Fragment implements
}
mHeader.setLayoutParams(params);
}
-
-
}
diff --git a/src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java b/src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java
index 1e6a3795..69629f01 100644
--- a/src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java
+++ b/src/com/android/packageinstaller/permission/ui/wear/settings/PermissionsSettingsAdapter.java
@@ -18,23 +18,14 @@ package com.android.packageinstaller.permission.ui.wear.settings;
import android.content.Context;
import android.content.res.Resources;
-import android.support.wearable.view.CircledImageView;
import android.support.wearable.view.WearableListView;
-import android.text.SpannableStringBuilder;
-import android.text.Spanned;
-import android.text.style.TextAppearanceSpan;
-import android.util.Log;
-import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.FrameLayout;
import android.widget.TextView;
import com.android.packageinstaller.R;
import com.android.packageinstaller.permission.model.AppPermissionGroup;
-import java.util.ArrayList;
-
public final class PermissionsSettingsAdapter extends SettingsAdapter<AppPermissionGroup> {
private Resources mRes;
@@ -45,7 +36,7 @@ public final class PermissionsSettingsAdapter extends SettingsAdapter<AppPermiss
@Override
public WearableListView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- return new PermissionsViewHolder(new SettingsAdapter.SettingsItem(parent.getContext()));
+ return new PermissionsViewHolder(new PermissionsSettingsItem(parent.getContext()));
}
@Override
@@ -81,5 +72,30 @@ public final class PermissionsSettingsAdapter extends SettingsAdapter<AppPermiss
state = (TextView) view.findViewById(R.id.state);
}
}
+
+ private class PermissionsSettingsItem extends SettingsItem {
+ private final TextView mState;
+ private final float mCenteredAlpha = 1.0f;
+ private final float mNonCenteredAlpha = 0.5f;
+
+ public PermissionsSettingsItem (Context context) {
+ super(context);
+ mState = (TextView) findViewById(R.id.state);
+ }
+
+ @Override
+ public void onCenterPosition(boolean animate) {
+ mImage.setAlpha(mImage.isEnabled() ? mCenteredAlpha : mNonCenteredAlpha);
+ mText.setAlpha(mText.isEnabled() ? mCenteredAlpha : mNonCenteredAlpha);
+ mState.setAlpha(mState.isEnabled() ? mCenteredAlpha : mNonCenteredAlpha);
+ }
+
+ @Override
+ public void onNonCenterPosition(boolean animate) {
+ mImage.setAlpha(mNonCenteredAlpha);
+ mText.setAlpha(mNonCenteredAlpha);
+ mState.setAlpha(mNonCenteredAlpha);
+ }
+ }
}
diff --git a/src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java b/src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java
index 2ef7a2a4..baf1a2b4 100644
--- a/src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java
+++ b/src/com/android/packageinstaller/permission/ui/wear/settings/SettingsAdapter.java
@@ -19,9 +19,6 @@ package com.android.packageinstaller.permission.ui.wear.settings;
import android.content.Context;
import android.support.wearable.view.CircledImageView;
import android.support.wearable.view.WearableListView;
-import android.text.SpannableStringBuilder;
-import android.text.Spanned;
-import android.text.style.TextAppearanceSpan;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
@@ -41,22 +38,6 @@ public class SettingsAdapter<T> extends WearableListView.Adapter {
private static final String TAG = "SettingsAdapter";
private final Context mContext;
- protected static CharSequence generateLabelWithState(
- Context context, int labelId, boolean enabled) {
- return generateLabelWithState(context, labelId, R.string.generic_enabled, enabled);
- }
-
- protected static CharSequence generateLabelWithState(
- Context context, int labelId, int onId, boolean enabled) {
- SpannableStringBuilder ssb = new SpannableStringBuilder(context.getString(labelId));
- ssb.append('\n');
- ssb.append(
- context.getString(enabled ? onId : R.string.generic_disabled),
- new TextAppearanceSpan(context, R.style.TextAppearance_Settings_Label_Large),
- Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- return ssb;
- }
-
public static final class Setting<S> {
public static final int ID_INVALID = -1;
@@ -240,8 +221,8 @@ public class SettingsAdapter<T> extends WearableListView.Adapter {
protected class SettingsItem extends FrameLayout implements ExtendedOnCenterProximityListener {
- private final CircledImageView mImage;
- private final TextView mText;
+ protected final CircledImageView mImage;
+ protected final TextView mText;
public SettingsItem(Context context) {
super(context);