Loading src/com/android/contacts/model/Sources.java +26 −8 Original line number Diff line number Diff line Loading @@ -95,6 +95,10 @@ public class Sources extends BroadcastReceiver implements OnAccountsUpdateListen filter.addAction(Intent.ACTION_PACKAGE_CHANGED); filter.addDataScheme("package"); mApplicationContext.registerReceiver(this, filter); IntentFilter sdFilter = new IntentFilter(); sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE); sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE); mApplicationContext.registerReceiver(this, sdFilter); // Request updates when locale is changed so that the order of each field will // be able to be changed on the locale change. Loading Loading @@ -123,8 +127,20 @@ public class Sources extends BroadcastReceiver implements OnAccountsUpdateListen if (Intent.ACTION_PACKAGE_REMOVED.equals(action) || Intent.ACTION_PACKAGE_ADDED.equals(action) || Intent.ACTION_PACKAGE_CHANGED.equals(action)) { || Intent.ACTION_PACKAGE_CHANGED.equals(action) || Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action) || Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) { String[] pkgList = null; // Handle applications on sdcard. if (Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action) || Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) { pkgList = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST); } else { final String packageName = intent.getData().getSchemeSpecificPart(); pkgList = new String[] { packageName }; } if (pkgList != null) { for (String packageName : pkgList) { final boolean knownPackage = mKnownPackages.contains(packageName); if (knownPackage) { // Invalidate cache of existing source Loading @@ -133,6 +149,8 @@ public class Sources extends BroadcastReceiver implements OnAccountsUpdateListen // Unknown source, so reload from scratch queryAccounts(); } } } } else if (Intent.ACTION_LOCALE_CHANGED.equals(action)) { invalidateAllCache(); } Loading Loading
src/com/android/contacts/model/Sources.java +26 −8 Original line number Diff line number Diff line Loading @@ -95,6 +95,10 @@ public class Sources extends BroadcastReceiver implements OnAccountsUpdateListen filter.addAction(Intent.ACTION_PACKAGE_CHANGED); filter.addDataScheme("package"); mApplicationContext.registerReceiver(this, filter); IntentFilter sdFilter = new IntentFilter(); sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE); sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE); mApplicationContext.registerReceiver(this, sdFilter); // Request updates when locale is changed so that the order of each field will // be able to be changed on the locale change. Loading Loading @@ -123,8 +127,20 @@ public class Sources extends BroadcastReceiver implements OnAccountsUpdateListen if (Intent.ACTION_PACKAGE_REMOVED.equals(action) || Intent.ACTION_PACKAGE_ADDED.equals(action) || Intent.ACTION_PACKAGE_CHANGED.equals(action)) { || Intent.ACTION_PACKAGE_CHANGED.equals(action) || Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action) || Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) { String[] pkgList = null; // Handle applications on sdcard. if (Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE.equals(action) || Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE.equals(action)) { pkgList = intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST); } else { final String packageName = intent.getData().getSchemeSpecificPart(); pkgList = new String[] { packageName }; } if (pkgList != null) { for (String packageName : pkgList) { final boolean knownPackage = mKnownPackages.contains(packageName); if (knownPackage) { // Invalidate cache of existing source Loading @@ -133,6 +149,8 @@ public class Sources extends BroadcastReceiver implements OnAccountsUpdateListen // Unknown source, so reload from scratch queryAccounts(); } } } } else if (Intent.ACTION_LOCALE_CHANGED.equals(action)) { invalidateAllCache(); } Loading