Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 736c82ba authored by Anthony Hugh's avatar Anthony Hugh
Browse files

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
parent 1a61dfd0
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -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>
+2 −0
Original line number Diff line number Diff line
@@ -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>
+21 −5
Original line number Diff line number Diff line
@@ -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);
+8 −15
Original line number Diff line number Diff line
@@ -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);
    }


}
+26 −10
Original line number Diff line number Diff line
@@ -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);
        }
    }
}
Loading