From: masensio Date: Mon, 19 Oct 2015 11:52:58 +0000 (+0200) Subject: Add unshare with user option to share with view X-Git-Tag: oc-android-1.9^2~30^2~49 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/fff362d103fdcff8e78aa5a7e51957d997ce5f73 Add unshare with user option to share with view --- diff --git a/res/layout/share_user_item.xml b/res/layout/share_user_item.xml index 1a9077bb..e360d1d4 100644 --- a/res/layout/share_user_item.xml +++ b/res/layout/share_user_item.xml @@ -20,14 +20,33 @@ android:layout_height="match_parent" android:orientation="vertical"> - + android:orientation="horizontal" + android:weightSum="1" + android:longClickable="true"> + + + + mShares; + private ImageView mUnshareButton; + public ShareUserListAdapter(Context context, int resource, ArrayListshares) { super(context, resource); mContext= context; @@ -65,10 +67,9 @@ public class ShareUserListAdapter extends ArrayAdapter { } @Override - public View getView(int position, View convertView, ViewGroup parent) { + public View getView(final int position, View convertView, ViewGroup parent) { LayoutInflater inflator = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); -// View rowView = inflater.inflate(R.layout.row_estacion, parent, false); View view = inflator.inflate(R.layout.share_user_item, parent, false); if (mShares != null && mShares.size() > position) { @@ -76,12 +77,28 @@ public class ShareUserListAdapter extends ArrayAdapter { TextView userName = (TextView) view.findViewById(R.id.userOrGroupName); String name = share.getSharedWithDisplayName(); - if (share.getShareType() == ShareType.GROUP){ + if (share.getShareType() == ShareType.GROUP) { name = name + "(group)"; } userName.setText(name); - } + mUnshareButton = (ImageView) view.findViewById(R.id.unshareButton); + mUnshareButton.setVisibility(View.GONE); + mUnshareButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // TODO: Unshare + + Log_OC.d("TAG - ShareUserListAdapter", "TODO Unshare - " + + mShares.get(position).getSharedWithDisplayName()); + } + }); + + + } return view; } + + + } diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 5dfa6a5f..599959d1 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -53,8 +53,8 @@ import com.owncloud.android.ui.dialog.RemoveFileDialogFragment; import com.owncloud.android.ui.dialog.RenameFileDialogFragment; import com.owncloud.android.ui.preview.PreviewImageFragment; import com.owncloud.android.ui.preview.PreviewMediaFragment; -import com.owncloud.android.utils.FileStorageUtils; import com.owncloud.android.ui.preview.PreviewTextFragment; +import com.owncloud.android.utils.FileStorageUtils; import java.io.File; diff --git a/src/com/owncloud/android/ui/fragment/ShareFileFragment.java b/src/com/owncloud/android/ui/fragment/ShareFileFragment.java index 90304d25..4546cc00 100644 --- a/src/com/owncloud/android/ui/fragment/ShareFileFragment.java +++ b/src/com/owncloud/android/ui/fragment/ShareFileFragment.java @@ -21,46 +21,35 @@ package com.owncloud.android.ui.fragment; import android.accounts.Account; -import android.accounts.AuthenticatorException; -import android.accounts.OperationCanceledException; import android.app.Activity; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import android.widget.AdapterView; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; -import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.datamodel.ThumbnailsCacheManager; -import com.owncloud.android.lib.common.OwnCloudAccount; -import com.owncloud.android.lib.common.OwnCloudClient; -import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; -import com.owncloud.android.lib.common.accounts.AccountUtils; import com.owncloud.android.lib.common.operations.RemoteOperationResult; -import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.lib.resources.shares.OCShare; import com.owncloud.android.lib.resources.shares.ShareType; -import com.owncloud.android.operations.GetSharesForFileOperation; -import com.owncloud.android.ui.activity.FileActivity; import com.owncloud.android.ui.activity.ShareActivity; -import com.owncloud.android.ui.adapter.LocalFileListAdapter; import com.owncloud.android.ui.adapter.ShareUserListAdapter; -import com.owncloud.android.utils.CopyTmpFileAsyncTask; import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.GetShareWithUserAsyncTask; import com.owncloud.android.utils.MimetypeIconUtil; -import java.io.IOException; import java.util.ArrayList; /** @@ -74,7 +63,7 @@ import java.util.ArrayList; * create an instance of this fragment. */ public class ShareFileFragment extends Fragment - implements GetShareWithUserAsyncTask.OnGetSharesWithUserTaskListener{ + implements GetShareWithUserAsyncTask.OnGetSharesWithUserTaskListener, View.OnTouchListener { private static final String TAG = ShareFileFragment.class.getSimpleName(); // the fragment initialization parameters @@ -172,7 +161,7 @@ public class ShareFileFragment extends Fragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - getShares(mFile); + getShares(); } // TODO: Rename method, update argument and hook method into UI event @@ -200,26 +189,14 @@ public class ShareFileFragment extends Fragment } // Get users and groups to fill the "share with" list - private void getShares(OCFile file){ + private void getShares(){ mShares = new ArrayList<>(); - RemoteOperationResult result = null; - - // Show loading - // TODO: Activate loading -// ( (ShareActivity) getActivity()).showWaitingLoadDialog(); // Get Users and Groups - GetShareWithUserAsyncTask getTask = new GetShareWithUserAsyncTask(this); FileDataStorageManager fileDataStorageManager = new FileDataStorageManager(mAccount, getActivity().getContentResolver()); mShares = fileDataStorageManager.getSharesWithForAFile(mFile.getRemotePath(), mAccount.name); -// Object[] params = { mFile, mAccount, fileDataStorageManager}; -// getTask.execute(params); - -// // Remove loading -// ((ShareActivity) getActivity()).dismissWaitingLoadDialog(); - // Update list of users/groups updateListOfUserGroups(); } @@ -260,12 +237,38 @@ public class ShareFileFragment extends Fragment usersList.setVisibility(View.VISIBLE); usersList.setAdapter(mUserGroupsAdapter); + // Add unshare options + registerLongClickListener(usersList); + } else { noShares.setVisibility(View.VISIBLE); usersList.setVisibility(View.GONE); } } + private void registerLongClickListener(final ListView listView) { + listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { + @Override + public boolean onItemLongClick(AdapterView parent, View view, int position, + long id) { + // Show unshare button + ImageView unshareButton = (ImageView) view.findViewById(R.id.unshareButton); + if (unshareButton.getVisibility() == View.GONE) { + unshareButton.setVisibility(View.VISIBLE); + } else { + unshareButton.setVisibility(View.GONE); + } + return false; + } + }); + } + + @Override + public boolean onTouch(View v, MotionEvent event) { + return false; + } + + // TODO: review if it is necessary /** * This interface must be implemented by activities that contain this