import android.accounts.Account;
import android.app.Activity;
+import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
+import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v7.widget.AppCompatButton;
import android.view.LayoutInflater;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
+import android.widget.ListAdapter;
import android.widget.ListView;
+import android.widget.ScrollView;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import com.owncloud.android.authentication.AccountUtils;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.files.FileOperationsHelper;
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.utils.MimetypeIconUtil;
import java.text.SimpleDateFormat;
+
import java.util.ArrayList;
import java.util.Date;
private static final String TAG = ShareFileFragment.class.getSimpleName();
- // the fragment initialization parameters
+ /** The fragment initialization parameters */
private static final String ARG_FILE = "FILE";
private static final String ARG_ACCOUNT = "ACCOUNT";
+// /** Tag for dialog */
+// private static final String FTAG_CHOOSER_DIALOG = "CHOOSER_DIALOG";
+
/** File to share, received as a parameter in construction time */
private OCFile mFile;
}
if (isChecked) {
ExpirationDatePickerDialogFragment dialog =
- ExpirationDatePickerDialogFragment.newInstance(mFile);
+ ExpirationDatePickerDialogFragment.newInstance(mFile, -1);
dialog.show(
getActivity().getSupportFragmentManager(),
ExpirationDatePickerDialogFragment.DATE_PICKER_DIALOG
} else {
((FileActivity) getActivity()).getFileOperationsHelper().
- setExpirationDateToShareViaLink(mFile, -1, -1, -1);
+ setExpirationDateToShareViaLink(mFile, -1);
}
// undo the toggle to grant the view will be correct if the dialog is cancelled
@Override
public void onClick(View expirationView) {
if (mPublicShare != null && mPublicShare.getExpirationDate() > 0) {
+ long chosenDateInMillis = -1;
+ if (mPublicShare != null) {
+ chosenDateInMillis = mPublicShare.getExpirationDate();
+ }
ExpirationDatePickerDialogFragment dialog =
- ExpirationDatePickerDialogFragment.newInstance(mFile);
- // TODO set the current chosen value in the dialog
+ ExpirationDatePickerDialogFragment.newInstance(
+ mFile,
+ chosenDateInMillis
+ );
dialog.show(
getActivity().getSupportFragmentManager(),
ExpirationDatePickerDialogFragment.DATE_PICKER_DIALOG
noShares.setVisibility(View.GONE);
usersList.setVisibility(View.VISIBLE);
usersList.setAdapter(mUserGroupsAdapter);
-
+ setListViewHeightBasedOnChildren(usersList);
} else {
noShares.setVisibility(View.VISIBLE);
usersList.setVisibility(View.GONE);
}
+
+ // Set Scroll to initial position
+ ScrollView scrollView = (ScrollView) getView().findViewById(R.id.shareScroll);
+ scrollView.scrollTo(0, 0);
}
@Override
}
getExpirationDateSection().setVisibility(View.VISIBLE);
getPasswordSection().setVisibility(View.VISIBLE);
- getGetLinkButton().setVisibility(View.VISIBLE);
+ // GetLink button
+ AppCompatButton getLinkButton = getGetLinkButton();
+ getLinkButton.setVisibility(View.VISIBLE);
+ getLinkButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ //GetLink from the server and show ShareLinkToDialog
+ ((FileActivity) getActivity()).getFileOperationsHelper().
+ getFileWithLink(mFile);
+
+ }
+ });
/// update state of expiration date switch and message depending on expiration date
/// update state of expiration date switch and message depending on expiration date
return (AppCompatButton) getView().findViewById(R.id.shareViewLinkGetLinkButton);
}
-
+ public static void setListViewHeightBasedOnChildren(ListView listView) {
+ ListAdapter listAdapter = listView.getAdapter();
+ if (listAdapter == null) {
+ return;
+ }
+ int desiredWidth = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.MeasureSpec.AT_MOST);
+ int totalHeight = 0;
+ View view = null;
+ for (int i = 0; i < listAdapter.getCount(); i++) {
+ view = listAdapter.getView(i, view, listView);
+ if (i == 0) {
+ view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, ViewGroup.LayoutParams.WRAP_CONTENT));
+ }
+ view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED);
+ totalHeight += view.getMeasuredHeight();
+ }
+ ViewGroup.LayoutParams params = listView.getLayoutParams();
+ params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
+ listView.setLayoutParams(params);
+ listView.requestLayout();
+ }
+
/**
* This interface must be implemented by activities that contain this
* fragment to allow an interaction in this fragment to be communicated