11307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringertpackage com.android.launcher3; 21307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert 31307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringertimport android.content.ComponentName; 41307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringertimport android.text.TextUtils; 51307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringertimport android.util.Log; 61307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert 71307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringertpublic abstract class AppFilter { 81307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert 91307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert private static final boolean DBG = false; 101307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert private static final String TAG = "AppFilter"; 111307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert 121307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert public abstract boolean shouldShowApp(ComponentName app); 131307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert 141307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert public static AppFilter loadByName(String className) { 151307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert if (TextUtils.isEmpty(className)) return null; 161307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert if (DBG) Log.d(TAG, "Loading AppFilter: " + className); 171307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert try { 181307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert Class<?> cls = Class.forName(className); 191307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert return (AppFilter) cls.newInstance(); 201307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert } catch (ClassNotFoundException e) { 211307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert Log.e(TAG, "Bad AppFilter class", e); 221307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert return null; 231307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert } catch (InstantiationException e) { 241307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert Log.e(TAG, "Bad AppFilter class", e); 251307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert return null; 261307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert } catch (IllegalAccessException e) { 271307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert Log.e(TAG, "Bad AppFilter class", e); 281307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert return null; 291307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert } catch (ClassCastException e) { 301307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert Log.e(TAG, "Bad AppFilter class", e); 311307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert return null; 321307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert } 331307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert } 341307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert 351307f63f8a93541bf6e2d29c11fab69778a25e42Bjorn Bringert} 36