1df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh/* 2df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * Copyright (C) 2015 The Android Open Source Project 3df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * 4df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * Licensed under the Apache License, Version 2.0 (the "License"); 5df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * you may not use this file except in compliance with the License. 6df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * You may obtain a copy of the License at 7df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * 8df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * http://www.apache.org/licenses/LICENSE-2.0 9df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * 10df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * Unless required by applicable law or agreed to in writing, software 11df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * distributed under the License is distributed on an "AS IS" BASIS, 12df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * See the License for the specific language governing permissions and 14df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh * limitations under the License. 15df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh */ 16df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 17df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughpackage com.android.packageinstaller.permission.ui.wear.settings; 18df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 19df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughimport android.content.Context; 20df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughimport android.content.res.Resources; 21df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughimport android.support.wearable.view.WearableListView; 22df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughimport android.view.View; 23df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughimport android.view.ViewGroup; 24df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughimport android.widget.TextView; 25df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 26df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughimport com.android.packageinstaller.R; 27df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughimport com.android.packageinstaller.permission.model.AppPermissionGroup; 28df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 29df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hughpublic final class PermissionsSettingsAdapter extends SettingsAdapter<AppPermissionGroup> { 30df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh private Resources mRes; 31df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 32df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh public PermissionsSettingsAdapter(Context context) { 33df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh super(context, R.layout.permissions_settings_item); 34df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh mRes = context.getResources(); 35df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } 36df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 37df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh @Override 38df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh public WearableListView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 39736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh return new PermissionsViewHolder(new PermissionsSettingsItem(parent.getContext())); 40df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } 41df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 42df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh @Override 43df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh public void onBindViewHolder(WearableListView.ViewHolder holder, int position) { 44df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh super.onBindViewHolder(holder, position); 45df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh PermissionsViewHolder viewHolder = (PermissionsViewHolder) holder; 46df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh AppPermissionGroup group = get(position).data; 47df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 48df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh if (group.isPolicyFixed()) { 49df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.imageView.setEnabled(false); 50df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.textView.setEnabled(false); 51df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.state.setEnabled(false); 52df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.state.setText( 53df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh mRes.getString(R.string.permission_summary_enforced_by_policy)); 54df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } else { 55df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.imageView.setEnabled(true); 56df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.textView.setEnabled(true); 57df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.state.setEnabled(true); 58df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 59df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh if (group.areRuntimePermissionsGranted()) { 60df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.state.setText(R.string.generic_enabled); 61df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } else { 62df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh viewHolder.state.setText(R.string.generic_disabled); 63df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } 64df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } 65df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } 66df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 67df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh private static final class PermissionsViewHolder extends SettingsAdapter.SettingsItemHolder { 68df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh public final TextView state; 69df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 70df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh public PermissionsViewHolder(View view) { 71df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh super(view); 72df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh state = (TextView) view.findViewById(R.id.state); 73df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } 74df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh } 75736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh 76736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh private class PermissionsSettingsItem extends SettingsItem { 77736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh private final TextView mState; 78736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh private final float mCenteredAlpha = 1.0f; 79736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh private final float mNonCenteredAlpha = 0.5f; 806161f39f583cf202969125757d78010bdc06457cAnthony Hugh 81736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh public PermissionsSettingsItem (Context context) { 82736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh super(context); 83736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh mState = (TextView) findViewById(R.id.state); 84736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh } 85736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh 86736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh @Override 87736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh public void onCenterPosition(boolean animate) { 88736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh mImage.setAlpha(mImage.isEnabled() ? mCenteredAlpha : mNonCenteredAlpha); 89736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh mText.setAlpha(mText.isEnabled() ? mCenteredAlpha : mNonCenteredAlpha); 90736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh mState.setAlpha(mState.isEnabled() ? mCenteredAlpha : mNonCenteredAlpha); 91736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh } 92736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh 93736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh @Override 94736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh public void onNonCenterPosition(boolean animate) { 95736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh mImage.setAlpha(mNonCenteredAlpha); 96736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh mText.setAlpha(mNonCenteredAlpha); 97736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh mState.setAlpha(mNonCenteredAlpha); 98736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh } 99736c82ba577f8f972ea4277357ae440b192dcd13Anthony Hugh } 100df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh} 101df4d4542c2cf2fa0a7539412af2a99d60b1c2a15Anthony Hugh 102