@@ -45,8 +45,8 @@ public abstract class SelectAppFragment extends Fragment implements View.OnClick
45
45
46
46
private EditText mCurrentSelectedPackage ;
47
47
private EditText mNewSelectedPackage ;
48
- private ListView mAppList ;
49
- private ArrayList <String > mAppPackages ;
48
+ private ListView mAppListView ;
49
+ private List <String > mAppPackages ;
50
50
51
51
@ Override
52
52
public void onResume () {
@@ -57,7 +57,7 @@ public void onResume() {
57
57
@ Override
58
58
public void onCreate (Bundle savedInstanceState ) {
59
59
super .onCreate (savedInstanceState );
60
- mAppPackages = new ArrayList < String > ();
60
+ mAppPackages = createAppList ();
61
61
}
62
62
63
63
@ Override
@@ -67,32 +67,32 @@ public View onCreateView(LayoutInflater layoutInflater, ViewGroup container,
67
67
68
68
mCurrentSelectedPackage = (EditText ) view .findViewById (R .id .selected_package_current );
69
69
mNewSelectedPackage = (EditText ) view .findViewById (R .id .selected_package_new );
70
- mAppList = (ListView ) view .findViewById (R .id .select_app_list );
71
- populateApps ();
72
-
70
+ mAppListView = (ListView ) view .findViewById (R .id .select_app_list );
71
+ AppInfoArrayAdapter appInfoArrayAdapter = new AppInfoArrayAdapter (getActivity (),
72
+ R .id .pkg_name , mAppPackages , true );
73
+ mAppListView .setAdapter (appInfoArrayAdapter );
73
74
view .findViewById (R .id .selected_package_set ).setOnClickListener (this );
74
75
view .findViewById (R .id .selected_package_clear ).setOnClickListener (this );
75
- mAppList .setOnItemClickListener (this );
76
-
76
+ mAppListView .setOnItemClickListener (this );
77
77
return view ;
78
78
}
79
79
80
- private void populateApps () {
80
+ /**
81
+ * @return a list of apps that users are allowed to select from.
82
+ */
83
+ protected List <String > createAppList () {
84
+ List <String > appList = new ArrayList <>();
81
85
PackageManager pm = getActivity ().getPackageManager ();
82
86
List <ApplicationInfo > allApps = pm .getInstalledApplications (0 /* No flag */ );
83
87
Collections .sort (allApps , new ApplicationInfo .DisplayNameComparator (pm ));
84
- mAppPackages .clear ();
85
88
for (ApplicationInfo info : allApps ) {
86
89
if ((pm .getLaunchIntentForPackage (info .packageName )) != null ) {
87
- mAppPackages .add (info .packageName );
90
+ appList .add (info .packageName );
88
91
}
89
92
}
90
- AppInfoArrayAdapter appInfoArrayAdapter = new AppInfoArrayAdapter (getActivity (),
91
- R .id .pkg_name , mAppPackages , true );
92
- mAppList .setAdapter (appInfoArrayAdapter );
93
+ return appList ;
93
94
}
94
95
95
-
96
96
@ Override
97
97
public void onClick (View v ) {
98
98
switch (v .getId ()) {
0 commit comments