summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHai Zhang <zhanghai@google.com>2019-06-17 12:07:31 -0700
committerHai Zhang <zhanghai@google.com>2019-06-17 21:29:08 +0000
commitd971c365a9269c6b42ae4743d1f51972468410d0 (patch)
tree25b87a52192211eb64f780faff0ff5a530f83a80
parent2556c5c7878e809d3f856ff2e969a3041d57d748 (diff)
downloadandroid_packages_apps_PackageInstaller-d971c365a9269c6b42ae4743d1f51972468410d0.tar.gz
android_packages_apps_PackageInstaller-d971c365a9269c6b42ae4743d1f51972468410d0.tar.bz2
android_packages_apps_PackageInstaller-d971c365a9269c6b42ae4743d1f51972468410d0.zip
Fix candidate apps appearing after footer.
The footer should always be removed before being added again, and the order must be reset as well to allow orderingAsAdded to work. Fixes: 135463572 Test: manual Change-Id: I46441f829645223ea93cadaa3ecb9ac36b0a9bdd
-rw-r--r--src/com/android/packageinstaller/role/ui/DefaultAppChildFragment.java5
-rw-r--r--src/com/android/packageinstaller/role/ui/DefaultAppListChildFragment.java7
-rw-r--r--src/com/android/packageinstaller/role/ui/SpecialAppAccessChildFragment.java5
-rw-r--r--src/com/android/packageinstaller/role/ui/SpecialAppAccessListChildFragment.java2
4 files changed, 17 insertions, 2 deletions
diff --git a/src/com/android/packageinstaller/role/ui/DefaultAppChildFragment.java b/src/com/android/packageinstaller/role/ui/DefaultAppChildFragment.java
index 927a266b..1ceb8a39 100644
--- a/src/com/android/packageinstaller/role/ui/DefaultAppChildFragment.java
+++ b/src/com/android/packageinstaller/role/ui/DefaultAppChildFragment.java
@@ -128,10 +128,15 @@ public class DefaultAppChildFragment<PF extends PreferenceFragmentCompat
preferenceFragment.setPreferenceScreen(preferenceScreen);
} else {
oldDescriptionPreference = preferenceScreen.findPreference(PREFERENCE_KEY_DESCRIPTION);
+ if (oldDescriptionPreference != null) {
+ preferenceScreen.removePreference(oldDescriptionPreference);
+ oldDescriptionPreference.setOrder(Preference.DEFAULT_ORDER);
+ }
for (int i = preferenceScreen.getPreferenceCount() - 1; i >= 0; --i) {
Preference preference = preferenceScreen.getPreference(i);
preferenceScreen.removePreference(preference);
+ preference.setOrder(Preference.DEFAULT_ORDER);
oldPreferences.put(preference.getKey(), preference);
}
}
diff --git a/src/com/android/packageinstaller/role/ui/DefaultAppListChildFragment.java b/src/com/android/packageinstaller/role/ui/DefaultAppListChildFragment.java
index 06af0e48..53264a1b 100644
--- a/src/com/android/packageinstaller/role/ui/DefaultAppListChildFragment.java
+++ b/src/com/android/packageinstaller/role/ui/DefaultAppListChildFragment.java
@@ -117,6 +117,7 @@ public class DefaultAppListChildFragment<PF extends PreferenceFragmentCompat
if (oldWorkPreferenceCategory != null) {
clearPreferences(oldWorkPreferenceCategory, oldWorkPreferences);
preferenceScreen.removePreference(oldWorkPreferenceCategory);
+ oldWorkPreferenceCategory.setOrder(Preference.DEFAULT_ORDER);
}
clearPreferences(preferenceScreen, oldPreferences);
}
@@ -143,9 +144,11 @@ public class DefaultAppListChildFragment<PF extends PreferenceFragmentCompat
private static void clearPreferences(@NonNull PreferenceGroup preferenceGroup,
@NonNull ArrayMap<String, Preference> oldPreferences) {
for (int i = preferenceGroup.getPreferenceCount() - 1; i >= 0; --i) {
- Preference Preference = preferenceGroup.getPreference(i);
+ Preference preference = preferenceGroup.getPreference(i);
- oldPreferences.put(Preference.getKey(), Preference);
+ preferenceGroup.removePreference(preference);
+ preference.setOrder(Preference.DEFAULT_ORDER);
+ oldPreferences.put(preference.getKey(), preference);
}
}
diff --git a/src/com/android/packageinstaller/role/ui/SpecialAppAccessChildFragment.java b/src/com/android/packageinstaller/role/ui/SpecialAppAccessChildFragment.java
index 1ba9df4d..24227a4a 100644
--- a/src/com/android/packageinstaller/role/ui/SpecialAppAccessChildFragment.java
+++ b/src/com/android/packageinstaller/role/ui/SpecialAppAccessChildFragment.java
@@ -116,10 +116,15 @@ public class SpecialAppAccessChildFragment<PF extends PreferenceFragmentCompat
preferenceFragment.setPreferenceScreen(preferenceScreen);
} else {
oldDescriptionPreference = preferenceScreen.findPreference(PREFERENCE_KEY_DESCRIPTION);
+ if (oldDescriptionPreference != null) {
+ preferenceScreen.removePreference(oldDescriptionPreference);
+ oldDescriptionPreference.setOrder(Preference.DEFAULT_ORDER);
+ }
for (int i = preferenceScreen.getPreferenceCount() - 1; i >= 0; --i) {
Preference preference = preferenceScreen.getPreference(i);
preferenceScreen.removePreference(preference);
+ preference.setOrder(Preference.DEFAULT_ORDER);
oldPreferences.put(preference.getKey(), preference);
}
}
diff --git a/src/com/android/packageinstaller/role/ui/SpecialAppAccessListChildFragment.java b/src/com/android/packageinstaller/role/ui/SpecialAppAccessListChildFragment.java
index 2f9eb2d8..32620d34 100644
--- a/src/com/android/packageinstaller/role/ui/SpecialAppAccessListChildFragment.java
+++ b/src/com/android/packageinstaller/role/ui/SpecialAppAccessListChildFragment.java
@@ -85,6 +85,8 @@ public class SpecialAppAccessListChildFragment<PF extends PreferenceFragmentComp
for (int i = preferenceScreen.getPreferenceCount() - 1; i >= 0; --i) {
Preference preference = preferenceScreen.getPreference(i);
+ preferenceScreen.removePreference(preference);
+ preference.setOrder(Preference.DEFAULT_ORDER);
oldPreferences.put(preference.getKey(), preference);
}
}