diff options
author | Keyvan Amiri <keyvana@google.com> | 2016-04-13 22:49:55 -0700 |
---|---|---|
committer | Keyvan Amiri <keyvana@google.com> | 2016-04-14 11:25:13 -0700 |
commit | b22473b280b2b893167ffaae24e9b1c43d343a3f (patch) | |
tree | 909c57d46c739e13221714eec4b895721fc15eae /src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java | |
parent | 68aee0afc31a0971e817e882d9e71abcc5833e81 (diff) | |
download | android_packages_apps_PackageInstaller-b22473b280b2b893167ffaae24e9b1c43d343a3f.tar.gz android_packages_apps_PackageInstaller-b22473b280b2b893167ffaae24e9b1c43d343a3f.tar.bz2 android_packages_apps_PackageInstaller-b22473b280b2b893167ffaae24e9b1c43d343a3f.zip |
Reworked permission UI on TV into the new side-panel leanback style
Reworked all the permission UIs on TV to mesh with the rest of the
settings rendered as leanback-styled side panels with title bars.
The permissions consist of the following components:
* Each individual app permission listing
** Listing of all the permissions together with the apps using
those permissions
Bug: 27344882
Bug: 22481180
Change-Id: I4ab05efd9a4ea6fab7971b89f13d65591a2be8ee
Diffstat (limited to 'src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java | 53 |
1 files changed, 33 insertions, 20 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java index 53b23a21..7b2ff566 100644 --- a/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java @@ -28,25 +28,27 @@ import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.graphics.Color; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.provider.Settings; import android.support.v14.preference.SwitchPreference; +import android.support.v17.leanback.widget.VerticalGridView; import android.support.v7.preference.Preference; import android.support.v7.preference.Preference.OnPreferenceChangeListener; import android.support.v7.preference.Preference.OnPreferenceClickListener; import android.support.v7.preference.PreferenceScreen; +import android.support.v7.preference.PreferenceViewHolder; +import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; -import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; - import com.android.packageinstaller.R; import com.android.packageinstaller.permission.model.AppPermissionGroup; import com.android.packageinstaller.permission.model.AppPermissions; @@ -103,6 +105,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader return; } + mAppPermissions = new AppPermissions(activity, packageInfo, null, true, new Runnable() { @Override public void run() { @@ -176,25 +179,18 @@ public final class AppPermissionsFragment extends SettingsWithHeader Drawable icon = appInfo.loadIcon(pm); CharSequence label = appInfo.loadLabel(pm); - fragment.setHeader(icon, label, infoIntent); + fragment.setHeader(icon, label, infoIntent, fragment.getString( + R.string.app_permissions_decor_title)); + } - ActionBar ab = activity.getActionBar(); - if (ab != null) { - ab.setTitle(R.string.app_permissions); - } + @Override + protected void updateHeader() { - ViewGroup rootView = (ViewGroup) fragment.getView(); - ImageView iconView = (ImageView) rootView.findViewById(R.id.lb_icon); - if (iconView != null) { - iconView.setImageDrawable(icon); - } - TextView titleView = (TextView) rootView.findViewById(R.id.lb_title); - if (titleView != null) { - titleView.setText(R.string.app_permissions); - } - TextView breadcrumbView = (TextView) rootView.findViewById(R.id.lb_breadcrumb); - if (breadcrumbView != null) { - breadcrumbView.setText(label); + super.updateHeader(); + Preference headerLineTwo = getPreferenceScreen().findPreference(HEADER_PREFERENCE_KEY); + if (headerLineTwo != null) { + headerLineTwo.setTitle(mLabel); + headerLineTwo.setIcon(mIcon); } } @@ -207,6 +203,22 @@ public final class AppPermissionsFragment extends SettingsWithHeader PreferenceScreen screen = getPreferenceScreen(); screen.removeAll(); + // Setting the second-line header that contains the app banner icon and its name. + // The styling used is the same as a leanback preference with a customized background color. + Preference headerLineTwo = new Preference(context) { + @Override + public void onBindViewHolder(PreferenceViewHolder holder) { + super.onBindViewHolder(holder); + holder.itemView.setBackgroundColor( + getResources().getColor(R.color.lb_header_banner_color)); + } + }; + headerLineTwo.setKey(HEADER_PREFERENCE_KEY); + headerLineTwo.setSelectable(false); + headerLineTwo.setTitle(mLabel); + headerLineTwo.setIcon(mIcon); + screen.addPreference(headerLineTwo); + if (mExtraScreen != null) { mExtraScreen.removeAll(); } @@ -379,7 +391,8 @@ public final class AppPermissionsFragment extends SettingsWithHeader public void onCreate(Bundle savedInstanceState) { mOuterFragment = (AppPermissionsFragment) getTargetFragment(); super.onCreate(savedInstanceState); - setHeader(mOuterFragment.mIcon, mOuterFragment.mLabel, mOuterFragment.mInfoIntent); + setHeader(mOuterFragment.mIcon, mOuterFragment.mLabel, mOuterFragment.mInfoIntent, + null); setHasOptionsMenu(true); } |