From 3418543c31c4b28d8a143dbfa399dba4ce8c5f4b Mon Sep 17 00:00:00 2001 From: Andreas Shimokawa Date: Tue, 14 Jun 2016 20:04:54 +0200 Subject: [PATCH] play around with fragments --- .../AbstractAppManagerFragment.java | 23 +++++++++++++------ .../appmanager/AppManagerActivity.java | 17 ++++++++------ .../AppManagerFragmentInstalledApps.java | 8 +++++++ ...AppManagerFragmentInstalledWatchfaces.java | 8 +++++++ .../adapter/GBDeviceAppAdapter.java | 1 + .../gadgetbridge/impl/GBDeviceApp.java | 1 + 6 files changed, 44 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerFragmentInstalledApps.java create mode 100644 app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerFragmentInstalledWatchfaces.java diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AbstractAppManagerFragment.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AbstractAppManagerFragment.java index 3442e5f0e..96a73192a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AbstractAppManagerFragment.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AbstractAppManagerFragment.java @@ -40,7 +40,7 @@ import nodomain.freeyourgadget.gadgetbridge.util.PebbleUtils; import nodomain.freeyourgadget.gadgetbridge.util.Prefs; -public class AbstractAppManagerFragment extends Fragment { +public abstract class AbstractAppManagerFragment extends Fragment { public static final String ACTION_REFRESH_APPLIST = "nodomain.freeyourgadget.gadgetbridge.appmanager.action.refresh_applist"; private static final Logger LOG = LoggerFactory.getLogger(AbstractAppManagerFragment.class); @@ -83,12 +83,12 @@ public class AbstractAppManagerFragment extends Fragment { private Prefs prefs; - private final List appList = new ArrayList<>(); + protected final List appList = new ArrayList<>(); private GBDeviceAppAdapter mGBDeviceAppAdapter; private GBDeviceApp selectedApp = null; private GBDevice mGBDevice = null; - private List getSystemApps() { + protected List getSystemApps() { List systemApps = new ArrayList<>(); if (prefs.getBoolean("pebble_force_untested", false)) { systemApps.add(new GBDeviceApp(UUID.fromString("4dab81a6-d2fc-458a-992c-7a1f3b96a970"), "Sports (System)", "Pebble Inc.", "", GBDeviceApp.Type.APP_SYSTEM)); @@ -101,7 +101,13 @@ public class AbstractAppManagerFragment extends Fragment { return systemApps; } - private List getCachedApps() { + protected List getSystemWatchfaces() { + List systemWatchfaces = new ArrayList<>(); + systemWatchfaces.add(new GBDeviceApp(UUID.fromString("8f3c8686-31a1-4f5f-91f5-01600c9bdc59"), "Tic Toc (System)", "Pebble Inc.", "", GBDeviceApp.Type.WATCHFACE_SYSTEM)); + return systemWatchfaces; + } + + protected List getCachedApps() { List cachedAppList = new ArrayList<>(); File cachePath; try { @@ -134,13 +140,16 @@ public class AbstractAppManagerFragment extends Fragment { return cachedAppList; } + public void refreshList() { + } + @Override public void onCreate(@Nullable Bundle savedInstanceState) { + mGBDevice = ((AppManagerActivity) getActivity()).getGBDevice(); + prefs = GBApplication.getPrefs(); - appList.addAll(getCachedApps()); - - appList.addAll(getSystemApps()); + refreshList(); IntentFilter filter = new IntentFilter(); filter.addAction(GBApplication.ACTION_QUIT); filter.addAction(ACTION_REFRESH_APPLIST); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerActivity.java index 31310dc59..f153b2de0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerActivity.java @@ -14,6 +14,10 @@ import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice; public class AppManagerActivity extends AbstractGBFragmentActivity { private GBDevice mGBDevice = null; + public GBDevice getGBDevice() { + return mGBDevice; + } + @Override protected void onCreate(Bundle savedInstanceState) { @@ -50,12 +54,11 @@ public class AppManagerActivity extends AbstractGBFragmentActivity { // getItem is called to instantiate the fragment for the given page. switch (position) { case 0: + return new AppManagerFragmentCache(); case 1: + return new AppManagerFragmentInstalledApps(); case 2: - AbstractAppManagerFragment fragment = new AbstractAppManagerFragment(); - Bundle bundle = new Bundle(); - bundle.putParcelable("GBDevice", mGBDevice); - return fragment; + return new AppManagerFragmentInstalledWatchfaces(); } return null; } @@ -69,11 +72,11 @@ public class AppManagerActivity extends AbstractGBFragmentActivity { public CharSequence getPageTitle(int position) { switch (position) { case 0: - return "test"; + return "Apps in cache"; case 1: - return "for"; + return "Installed apps"; case 2: - return "me"; + return "Installed watchfaces"; case 3: } return super.getPageTitle(position); diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerFragmentInstalledApps.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerFragmentInstalledApps.java new file mode 100644 index 000000000..02ea0720f --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerFragmentInstalledApps.java @@ -0,0 +1,8 @@ +package nodomain.freeyourgadget.gadgetbridge.activities.appmanager; + +public class AppManagerFragmentInstalledApps extends AbstractAppManagerFragment { + @Override + public void refreshList() { + appList.addAll(getSystemApps()); + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerFragmentInstalledWatchfaces.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerFragmentInstalledWatchfaces.java new file mode 100644 index 000000000..58b59250e --- /dev/null +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/appmanager/AppManagerFragmentInstalledWatchfaces.java @@ -0,0 +1,8 @@ +package nodomain.freeyourgadget.gadgetbridge.activities.appmanager; + +public class AppManagerFragmentInstalledWatchfaces extends AbstractAppManagerFragment { + @Override + public void refreshList() { + appList.addAll(getSystemWatchfaces()); + } +} diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAppAdapter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAppAdapter.java index d4ae263f3..2d78deff9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAppAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBDeviceAppAdapter.java @@ -58,6 +58,7 @@ public class GBDeviceAppAdapter extends ArrayAdapter { deviceImageView.setImageResource(R.drawable.ic_activitytracker); break; case APP_SYSTEM: + case WATCHFACE_SYSTEM: deviceImageView.setImageResource(R.drawable.ic_systemapp); break; case WATCHFACE: diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceApp.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceApp.java index f55876453..5cbd0fab0 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceApp.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/impl/GBDeviceApp.java @@ -89,6 +89,7 @@ public class GBDeviceApp { public enum Type { UNKNOWN, WATCHFACE, + WATCHFACE_SYSTEM, APP_GENERIC, APP_ACTIVITYTRACKER, APP_SYSTEM,