From 5a5541d346bb2ca9e1c7876af2b8f1c1095b9a47 Mon Sep 17 00:00:00 2001 From: "jm.pascal" Date: Tue, 15 Jan 2013 15:48:24 +0100 Subject: [PATCH 1/3] MOBILE-1246 / MOBILE-1190 : disable interaction on folder associated activity --- .../mobile/android/application/MainActivity.java | 5 ++++- .../fragments/activities/ActivitiesFragment.java | 10 ++++------ .../application/loaders/NodeLoaderCallback.java | 4 ++++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/MainActivity.java b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/MainActivity.java index abab4cc1..1bbb41e1 100644 --- a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/MainActivity.java +++ b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/MainActivity.java @@ -406,7 +406,10 @@ else if (intent.getCategories().contains(IntentIntegrator.CATEGORY_OAUTH)) } else { - addNavigationFragment((Folder) currentNode); + // Uncomment this part to enable quick access to specific + // folder. + // NB : Issue can occurs with top quick navigation dropdown. + // addNavigationFragment((Folder) currentNode); } return; } diff --git a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/activities/ActivitiesFragment.java b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/activities/ActivitiesFragment.java index 8ee0fb39..6c14a63a 100644 --- a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/activities/ActivitiesFragment.java +++ b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/activities/ActivitiesFragment.java @@ -17,12 +17,8 @@ ******************************************************************************/ package org.alfresco.mobile.android.application.fragments.activities; -import java.util.ArrayList; - -import org.alfresco.mobile.android.api.asynchronous.LoaderResult; import org.alfresco.mobile.android.api.constants.CloudConstant; import org.alfresco.mobile.android.api.model.ActivityEntry; -import org.alfresco.mobile.android.api.model.PagingResult; import org.alfresco.mobile.android.application.MenuActionItem; import org.alfresco.mobile.android.application.R; import org.alfresco.mobile.android.application.exception.CloudExceptionUtils; @@ -31,11 +27,11 @@ import org.alfresco.mobile.android.application.loaders.NodeLoader; import org.alfresco.mobile.android.application.loaders.NodeLoaderCallback; import org.alfresco.mobile.android.application.utils.SessionUtils; +import org.alfresco.mobile.android.ui.activitystream.ActivityEventAdapter; import org.alfresco.mobile.android.ui.activitystream.ActivityStreamFragment; import org.alfresco.mobile.android.ui.fragments.BaseListAdapter; import android.app.LoaderManager; -import android.content.Loader; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -44,7 +40,6 @@ public class ActivitiesFragment extends ActivityStreamFragment implements RefreshFragment { - public static final String TAG = "ActivitiesFragment"; public ActivitiesFragment() @@ -81,6 +76,9 @@ public void onListItemClick(ListView l, View v, int position, long id) { ActivityEntry item = (ActivityEntry) l.getItemAtPosition(position); + if (item.getType() != null && item.getType().startsWith(ActivityEventAdapter.PREFIX_DATALIST) + || item.getType().startsWith(ActivityEventAdapter.PREFIX_FOLDER)) { return; } + // Inconsistency between cloud and on premise. String identifier = item.getData(CloudConstant.NODEREF_VALUE); if (identifier == null) diff --git a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/loaders/NodeLoaderCallback.java b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/loaders/NodeLoaderCallback.java index b0307d8a..274c666d 100644 --- a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/loaders/NodeLoaderCallback.java +++ b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/loaders/NodeLoaderCallback.java @@ -81,9 +81,13 @@ public void onCancel(DialogInterface dialog) }); if (session != null) + { return new NodeLoader(activity, session, url); + } else + { return new NodeLoader(activity, accounts, url); + } } @Override From 7b4422531865b332876f1bd0d4dd592fcd1664a6 Mon Sep 17 00:00:00 2001 From: "jm.pascal" Date: Tue, 15 Jan 2013 22:10:33 +0100 Subject: [PATCH 2/3] MOBILE-1193 / MOBILE-1195 : Upload refresh --- .../fragments/properties/DetailsFragment.java | 80 +++++++++---------- .../properties/UpdateContentLoader.java | 18 +++-- 2 files changed, 46 insertions(+), 52 deletions(-) diff --git a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/properties/DetailsFragment.java b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/properties/DetailsFragment.java index 87e14f5b..5562400f 100644 --- a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/properties/DetailsFragment.java +++ b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/properties/DetailsFragment.java @@ -56,6 +56,7 @@ import android.app.Activity; import android.app.AlertDialog; import android.app.DialogFragment; +import android.app.Fragment; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; @@ -453,9 +454,15 @@ public void onClick(DialogInterface dialog, int item) { UpdateContentCallback up = new UpdateContentCallback(alfSession, getActivity(), (Document) node, dlFile); - up.setOnUpdateListener(listener); - getLoaderManager().initLoader(UpdateContentLoader.ID, null, up); - getLoaderManager().getLoader(UpdateContentLoader.ID).forceLoad(); + up.setOnUpdateListener(updateListener); + if (getLoaderManager().getLoader(UpdateContentLoader.ID) == null) + { + getLoaderManager().initLoader(UpdateContentLoader.ID, null, up); + } + else + { + getLoaderManager().restartLoader(UpdateContentLoader.ID, null, up); + } dialog.dismiss(); } }); @@ -479,9 +486,15 @@ public void onClick(DialogInterface dialog, int item) File f = new File(ActionManager.getPath(getActivity(), data.getData())); UpdateContentCallback up = new UpdateContentCallback(alfSession, getActivity(), (Document) node, f); - up.setOnUpdateListener(listener); - getLoaderManager().initLoader(UpdateContentLoader.ID, null, up); - getLoaderManager().getLoader(UpdateContentLoader.ID).forceLoad(); + up.setOnUpdateListener(updateListener); + if (getLoaderManager().getLoader(UpdateContentLoader.ID) == null) + { + getLoaderManager().initLoader(UpdateContentLoader.ID, null, up); + } + else + { + getLoaderManager().restartLoader(UpdateContentLoader.ID, null, up); + } } else { @@ -498,20 +511,9 @@ public void onClick(DialogInterface dialog, int item) } } - private OnNodeUpdateListener saveBackListener = new OnNodeUpdateListener() + private OnNodeUpdateListener updateListener = new OnNodeUpdateListener() { - @Override - public void afterUpdate(Node node) - { - ((MainActivity) getActivity()).setCurrentNode(node); - ActionManager.actionRefresh(DetailsFragment.this, IntentIntegrator.CATEGORY_REFRESH_ALL, - PublicIntent.NODE_TYPE); - MessengerManager.showToast(getActivity(), - node.getName() + " " + getResources().getString(R.string.save_back_sucess)); - refreshThumbnail(node); - } - - boolean hasWaiting = false; + public boolean hasWaiting = false; @Override public void beforeUpdate(Node node) @@ -524,35 +526,25 @@ public void beforeUpdate(Node node) } @Override - public void onExeceptionDuringUpdate(Exception e) + public void afterUpdate(Node node) { - ActionManager.actionDisplayError(DetailsFragment.this, e); - } - }; - - private OnNodeUpdateListener listener = new OnNodeUpdateListener() - { - public boolean hasWaiting = false; - @Override - public void beforeUpdate(Node node) - { - if (!hasWaiting && getFragmentManager().findFragmentByTag(WaitingDialogFragment.TAG) == null) + DetailsFragment lf = (DetailsFragment) getFragmentManager().findFragmentByTag(DetailsFragment.TAG); + if (lf != null) { - new WaitingDialogFragment().show(getFragmentManager(), WaitingDialogFragment.TAG); + Node n = (Node) lf.getArguments().get(ARGUMENT_NODE); + if (n != null + && NodeRefUtils.getCleanIdentifier(n.getIdentifier()).equals( + NodeRefUtils.getCleanIdentifier(node.getIdentifier()))) + { + ((MainActivity) getActivity()).setCurrentNode(node); + ActionManager.actionRefresh(DetailsFragment.this, IntentIntegrator.CATEGORY_REFRESH_ALL, + PublicIntent.NODE_TYPE); + MessengerManager.showToast(getActivity(), + node.getName() + " " + getResources().getString(R.string.update_sucess)); + refreshThumbnail(node); + } } - hasWaiting = true; - } - - @Override - public void afterUpdate(Node node) - { - ((MainActivity) getActivity()).setCurrentNode(node); - ActionManager.actionRefresh(DetailsFragment.this, IntentIntegrator.CATEGORY_REFRESH_ALL, - PublicIntent.NODE_TYPE); - MessengerManager.showToast(getActivity(), - node.getName() + " " + getResources().getString(R.string.update_sucess)); - refreshThumbnail(node); } @Override diff --git a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/properties/UpdateContentLoader.java b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/properties/UpdateContentLoader.java index d185835a..0ed0e3e4 100644 --- a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/properties/UpdateContentLoader.java +++ b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/properties/UpdateContentLoader.java @@ -97,9 +97,18 @@ public LoaderResult loadInBackground() } catch (Exception e) { + Log.e(TAG, Log.getStackTraceString(e)); if (idpwc == null) { - idpwc = cmisDoc.checkOut().getId(); + try + { + idpwc = cmisDoc.checkOut().getId(); + } + catch (Exception ee) + { + Log.e(TAG, Log.getStackTraceString(ee)); + throw ee; + } } } @@ -124,14 +133,7 @@ public LoaderResult loadInBackground() resultNode = (Document) session.getServiceRegistry().getDocumentFolderService() .getNodeByIdentifier(cmisDoc.getId()); - - /* - * resultNode = - * session.getServiceRegistry().getDocumentFolderService() - * .updateContent(document, contentFile); - */ } - } catch (Exception e) { From cce75b520f419a56719b26028d2cd9863bd9c8a9 Mon Sep 17 00:00:00 2001 From: "jm.pascal" Date: Wed, 16 Jan 2013 13:50:39 +0100 Subject: [PATCH 3/3] MOBILE-1192 : Video disabled on HC devices. --- .../fragments/browser/ChildrenBrowserFragment.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/browser/ChildrenBrowserFragment.java b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/browser/ChildrenBrowserFragment.java index e6df1496..529565ca 100644 --- a/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/browser/ChildrenBrowserFragment.java +++ b/alfresco-mobile-android/src/org/alfresco/mobile/android/application/fragments/browser/ChildrenBrowserFragment.java @@ -48,6 +48,7 @@ import org.alfresco.mobile.android.application.fragments.actions.NodeActions.onFinishModeListerner; import org.alfresco.mobile.android.application.intent.IntentIntegrator; import org.alfresco.mobile.android.application.manager.ActionManager; +import org.alfresco.mobile.android.application.utils.AndroidVersion; import org.alfresco.mobile.android.application.utils.SessionUtils; import org.alfresco.mobile.android.intent.PublicIntent; import org.alfresco.mobile.android.ui.documentfolder.NavigationFragment; @@ -479,8 +480,13 @@ public static void getMenu(AlfrescoSession session, Menu menu, Folder parentFold devCaptureMenu.add(Menu.NONE, MenuActionItem.MENU_DEVICE_CAPTURE_CAMERA_PHOTO, Menu.FIRST + MenuActionItem.MENU_DEVICE_CAPTURE_CAMERA_PHOTO, R.string.take_photo); - devCaptureMenu.add(Menu.NONE, MenuActionItem.MENU_DEVICE_CAPTURE_CAMERA_VIDEO, Menu.FIRST - + MenuActionItem.MENU_DEVICE_CAPTURE_CAMERA_VIDEO, R.string.make_video); + + if (AndroidVersion.isICSOrAbove()) + { + devCaptureMenu.add(Menu.NONE, MenuActionItem.MENU_DEVICE_CAPTURE_CAMERA_VIDEO, Menu.FIRST + + MenuActionItem.MENU_DEVICE_CAPTURE_CAMERA_VIDEO, R.string.make_video); + } + devCaptureMenu.add(Menu.NONE, MenuActionItem.MENU_DEVICE_CAPTURE_MIC_AUDIO, Menu.FIRST + MenuActionItem.MENU_DEVICE_CAPTURE_MIC_AUDIO, R.string.record_audio); devCaptureMenu.add(Menu.NONE, MenuActionItem.MENU_UPLOAD, Menu.FIRST + MenuActionItem.MENU_UPLOAD,