From: David A. Velasco Date: Wed, 28 Oct 2015 15:18:20 +0000 (+0100) Subject: Fixed NPE on list of shares in SearchShareesFragment; and some clean-up X-Git-Tag: oc-android-1.9^2~30^2~6 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/d4df65d7c737993231fc8e774adfd5766adaf484 Fixed NPE on list of shares in SearchShareesFragment; and some clean-up --- diff --git a/src/com/owncloud/android/ui/activity/ShareActivity.java b/src/com/owncloud/android/ui/activity/ShareActivity.java index 13c4b754..9d4a769e 100644 --- a/src/com/owncloud/android/ui/activity/ShareActivity.java +++ b/src/com/owncloud/android/ui/activity/ShareActivity.java @@ -147,9 +147,9 @@ public class ShareActivity extends FileActivity } @Override - public void showSearchUsersAndGroups(ArrayList shares) { + public void showSearchUsersAndGroups() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - mSearchFragment = SearchShareesFragment.newInstance(getFile(), getAccount(), shares); + mSearchFragment = SearchShareesFragment.newInstance(getFile(), getAccount()); ft.hide(mShareFileFragment); ft.add(R.id.share_fragment_container, mSearchFragment, TAG_SEARCH_FRAGMENT); ft.addToBackStack(TAG_SEARCH_FRAGMENT); diff --git a/src/com/owncloud/android/ui/fragment/SearchShareesFragment.java b/src/com/owncloud/android/ui/fragment/SearchShareesFragment.java index 7bbdf01d..01c47287 100644 --- a/src/com/owncloud/android/ui/fragment/SearchShareesFragment.java +++ b/src/com/owncloud/android/ui/fragment/SearchShareesFragment.java @@ -60,11 +60,11 @@ public class SearchShareesFragment extends Fragment implements ShareUserListAdap // the fragment initialization parameters private static final String ARG_FILE = "FILE"; private static final String ARG_ACCOUNT = "ACCOUNT"; - private static final String ARG_SHARES = "SHARES"; // Parameters private OCFile mFile; private Account mAccount; + private ArrayList mShares; private ShareUserListAdapter mUserGroupsAdapter = null; @@ -73,18 +73,15 @@ public class SearchShareesFragment extends Fragment implements ShareUserListAdap /** * Public factory method to create new SearchShareesFragment instances. * - * @param fileToShare An {@link OCFile} to show in the fragment + * @param fileToShare An {@link OCFile} to be shared * @param account An ownCloud account - * @param * @return A new instance of fragment SearchShareesFragment. */ - // TODO: Rename and change types and number of parameters - public static SearchShareesFragment newInstance(OCFile fileToShare, Account account, ArrayList shares) { + public static SearchShareesFragment newInstance(OCFile fileToShare, Account account) { SearchShareesFragment fragment = new SearchShareesFragment(); Bundle args = new Bundle(); args.putParcelable(ARG_FILE, fileToShare); args.putParcelable(ARG_ACCOUNT, account); - args.putParcelableArrayList(ARG_SHARES, shares); fragment.setArguments(args); return fragment; } @@ -99,7 +96,6 @@ public class SearchShareesFragment extends Fragment implements ShareUserListAdap if (getArguments() != null) { mFile = getArguments().getParcelable(ARG_FILE); mAccount = getArguments().getParcelable(ARG_ACCOUNT); - mShares = getArguments().getParcelableArrayList(ARG_SHARES); } } @@ -134,18 +130,19 @@ public class SearchShareesFragment extends Fragment implements ShareUserListAdap } }); - // Show data: Fill in list of users and groups - ListView usersList = (ListView) view.findViewById(R.id.searchUsersListView); - mUserGroupsAdapter = new ShareUserListAdapter(getActivity().getApplicationContext(), - R.layout.share_user_item, mShares, this); - if (mShares.size() > 0) { - usersList.setVisibility(View.VISIBLE); - usersList.setAdapter(mUserGroupsAdapter); - } - return view; } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + // Load data into the list + refreshUsersOrGroupsListFromDB(); + } + + /** * Get users and groups fromn the DB to fill in the "share with" list */ diff --git a/src/com/owncloud/android/ui/fragment/ShareFileFragment.java b/src/com/owncloud/android/ui/fragment/ShareFileFragment.java index 70517672..5ee2a87c 100644 --- a/src/com/owncloud/android/ui/fragment/ShareFileFragment.java +++ b/src/com/owncloud/android/ui/fragment/ShareFileFragment.java @@ -2,6 +2,7 @@ * ownCloud Android client application * * @author masensio + * @author David A. Velasco * Copyright (C) 2015 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify @@ -142,7 +143,7 @@ public class ShareFileFragment extends Fragment boolean shareWithUsersEnable = AccountUtils.hasSearchUsersSupport(mAccount); if (shareWithUsersEnable) { // Show Search Fragment - mListener.showSearchUsersAndGroups(mShares); + mListener.showSearchUsersAndGroups(); } else { String message = getString(R.string.share_sharee_unavailable); Toast.makeText(getActivity(), message, Toast.LENGTH_LONG).show(); @@ -157,8 +158,13 @@ public class ShareFileFragment extends Fragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - // Load data to the list (start process with an Async Task) - mListener.refreshUsersOrGroupsListFromServer(); + // Load data into the list + refreshUsersOrGroupsListFromDB(); + + // Request for a refresh of the data through the server (starts an Async Task) + if (mListener != null) { + mListener.refreshUsersOrGroupsListFromServer(); + } } @Override @@ -192,8 +198,12 @@ public class ShareFileFragment extends Fragment private void updateListOfUserGroups() { // Update list of users/groups - mUserGroupsAdapter = new ShareUserListAdapter(getActivity().getApplicationContext(), - R.layout.share_user_item, mShares, this); + mUserGroupsAdapter = new ShareUserListAdapter( + getActivity(), + R.layout.share_user_item, + mShares, + this + ); // Show data TextView noShares = (TextView) getView().findViewById(R.id.shareNoUsers); @@ -229,7 +239,7 @@ public class ShareFileFragment extends Fragment * >Communicating with Other Fragments for more information. */ public interface OnShareFragmentInteractionListener { - void showSearchUsersAndGroups(ArrayList shares); + void showSearchUsersAndGroups(); void refreshUsersOrGroupsListFromServer(); void unshareWith(OCShare share); }