summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKeyvan Amiri <keyvana@google.com>2016-11-24 00:09:09 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-11-24 00:09:09 +0000
commit18817ebb897bdb971bf2eaed74496d8716b78f6f (patch)
tree40bfcea8a19d89e2087428c886f7b280430cedd4 /src
parent59541acfd9517d6917a3ac7c6a262f09b6aa3042 (diff)
parent6dfb1f6553b753bf3b94cf2d67f6434649004c0f (diff)
downloadandroid_packages_apps_PackageInstaller-18817ebb897bdb971bf2eaed74496d8716b78f6f.tar.gz
android_packages_apps_PackageInstaller-18817ebb897bdb971bf2eaed74496d8716b78f6f.tar.bz2
android_packages_apps_PackageInstaller-18817ebb897bdb971bf2eaed74496d8716b78f6f.zip
DO NOT MERGE Reworked additional permissions fragment for each app
am: 6dfb1f6553 Change-Id: I78ed7c841680ed3d82835bca2394384311e6d8b1
Diffstat (limited to 'src')
-rw-r--r--src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java75
1 files changed, 45 insertions, 30 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java
index be7d159c..26467de9 100644
--- a/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java
+++ b/src/com/android/packageinstaller/permission/ui/television/AppPermissionsFragment.java
@@ -33,7 +33,6 @@ 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;
@@ -48,7 +47,9 @@ import android.view.View;
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;
import com.android.packageinstaller.permission.ui.ReviewPermissionsActivity;
@@ -182,17 +183,6 @@ public final class AppPermissionsFragment extends SettingsWithHeader
R.string.app_permissions_decor_title));
}
- @Override
- protected void updateHeader() {
-
- super.updateHeader();
- Preference headerLineTwo = getPreferenceScreen().findPreference(HEADER_PREFERENCE_KEY);
- if (headerLineTwo != null) {
- headerLineTwo.setTitle(mLabel);
- headerLineTwo.setIcon(mIcon);
- }
- }
-
private void loadPreferences() {
Context context = getPreferenceManager().getContext();
if (context == null) {
@@ -201,25 +191,11 @@ 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);
+ screen.addPreference(createHeaderLineTwoPreference(context));
if (mExtraScreen != null) {
mExtraScreen.removeAll();
+ mExtraScreen = null;
}
final Preference extraPerms = new Preference(context);
@@ -253,6 +229,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader
} else {
if (mExtraScreen == null) {
mExtraScreen = getPreferenceManager().createPreferenceScreen(context);
+ mExtraScreen.addPreference(createHeaderLineTwoPreference(context));
}
mExtraScreen.addPreference(preference);
}
@@ -281,6 +258,30 @@ public final class AppPermissionsFragment extends SettingsWithHeader
setLoading(false /* loading */, true /* animate */);
}
+ /**
+ * Creates a heading below decor_title and above the rest of the preferences. This heading
+ * displays the app name and banner icon. It's used in both system and additional permissions
+ * fragments for each app. The styling used is the same as a leanback preference with a
+ * customized background color
+ * @param context The context the preferences created on
+ * @return The preference header to be inserted as the first preference in the list.
+ */
+ private Preference createHeaderLineTwoPreference(Context context) {
+ 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);
+ return headerLineTwo;
+ }
+
@Override
public boolean onPreferenceChange(final Preference preference, Object newValue) {
String groupName = preference.getKey();
@@ -390,8 +391,6 @@ public final class AppPermissionsFragment extends SettingsWithHeader
public void onCreate(Bundle savedInstanceState) {
mOuterFragment = (AppPermissionsFragment) getTargetFragment();
super.onCreate(savedInstanceState);
- setHeader(mOuterFragment.mIcon, mOuterFragment.mLabel, mOuterFragment.mInfoIntent,
- null);
setHasOptionsMenu(true);
}
@@ -407,6 +406,22 @@ public final class AppPermissionsFragment extends SettingsWithHeader
bindUi(this, getPackageInfo(getActivity(), packageName));
}
+ private static void bindUi(SettingsWithHeader fragment, PackageInfo packageInfo) {
+ Activity activity = fragment.getActivity();
+ PackageManager pm = activity.getPackageManager();
+ ApplicationInfo appInfo = packageInfo.applicationInfo;
+ Intent infoIntent = null;
+ if (!activity.getIntent().getBooleanExtra(EXTRA_HIDE_INFO_BUTTON, false)) {
+ infoIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
+ .setData(Uri.fromParts("package", packageInfo.packageName, null));
+ }
+
+ Drawable icon = appInfo.loadIcon(pm);
+ CharSequence label = appInfo.loadLabel(pm);
+ fragment.setHeader(icon, label, infoIntent, fragment.getString(
+ R.string.additional_permissions_decor_title));
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {