From d3e12b883f6ef83316e5004cb85cf8ef26ea280b Mon Sep 17 00:00:00 2001 From: Andy Scherzinger Date: Fri, 11 Sep 2015 14:37:11 +0200 Subject: [PATCH] initial implementaion for click events + using the import icon for upload from other apps, also fixed the checkboxes for hdpi/mdpi --- res/drawable-hdpi/ic_checkbox_blank_outline.png | Bin 463 -> 376 bytes res/drawable-hdpi/ic_checkbox_marked.png | Bin 697 -> 498 bytes res/drawable-hdpi/ic_import.png | Bin 0 -> 344 bytes res/drawable-mdpi/ic_checkbox_blank_outline.png | Bin 0 -> 237 bytes res/drawable-mdpi/ic_checkbox_marked.png | Bin 0 -> 342 bytes res/drawable-mdpi/ic_import.png | Bin 0 -> 256 bytes res/drawable-xhdpi/ic_import.png | Bin 0 -> 404 bytes res/drawable-xxhdpi/ic_import.png | Bin 0 -> 556 bytes res/layout/list_fragment.xml | 7 +- .../android/ui/activity/FileDisplayActivity.java | 2 +- .../android/ui/fragment/ExtendedListFragment.java | 2 + .../android/ui/fragment/OCFileListFragment.java | 88 +++++++++++++++++++++ 12 files changed, 93 insertions(+), 6 deletions(-) create mode 100644 res/drawable-hdpi/ic_import.png create mode 100644 res/drawable-mdpi/ic_checkbox_blank_outline.png create mode 100644 res/drawable-mdpi/ic_checkbox_marked.png create mode 100644 res/drawable-mdpi/ic_import.png create mode 100644 res/drawable-xhdpi/ic_import.png create mode 100644 res/drawable-xxhdpi/ic_import.png diff --git a/res/drawable-hdpi/ic_checkbox_blank_outline.png b/res/drawable-hdpi/ic_checkbox_blank_outline.png index 198568dea06ccf8c881b114e228a10885caa1ec7..164dcb537a6ad624e756ab9569bdac63f0298e1e 100644 GIT binary patch delta 337 zcmV-X0j~bf1NZ_ViBL{Q4GJ0x0000DNk~Le0000a0000a2nGNE0O0_bn2{keeKLdV;in;V=C{Jnk9Wuxo5_0`BtvZ7V?F! z08Bb=MzxqPo?3-m;l>2tJC*?ee<<{EIbVMKuie!T38b&kcwr-ubz+GezyJWKd;oA- zNL91gH!THd?<2P zxaY)g4&p*pcdbGJVavaCG$c6eupwXdLgUMRb5hlzM5L-`GT=m%p1w{;Cn1DfAUz}` jAbg9+=2(tUGr-TCmrII^fq{Y7)59eQNSlE$2OE&=am~6rQPHR#EW+UT_QV+m2F55) z7srr{dv9+U`W-e9Irj0rCC{52pA|_7FHUGWd{Hq_xOq}iXm!#8^~45l10y4Y1!c*} z=^u@~Sya26xjf!Ezc*Lw`|@wqouh11g1l-MZG3%dlMT~`^JkLx{|r7hgX6){%vtIT zAFn4~yA`Yy#b9wl@Jf9$=YvDl^}in*Jio))AkE*Oj&mukbhyNeBvc{B9SbXw+8a&>Ou;|+GMfi_o4 zYv(UswQ7}ln%v%dJ#m^nZJvu0FJ;Uyky7hLXVxJJ=ak$Map;$nV+J>I#Ggc? z1OU#IB;AHGL0g!1FYu%z#sIuifO27u0U6zpq8L-qa&tpWzTSl}CZN@tf2lKz1`Agt zz6MnoV^pE^W=x_{l7X^$Y`an{Kso@&<3LcBAX$6vBbxrR=Q4|qWJ;5!_yVZ%yJt50000MOB z05$+l?a0gk00KlwL_t(&-tF2kOB-Pv$MN6)&VZxhP>>EqGKf=$wn*vVB1lW2r?cn_ zs4t-6a6?I6Kz#wFtBnU8630T9Vk4Op2hmNZ;GhX5>D|9WQ%p7Y^q$Mz{V(!-=jVBN zK3vFM@*H3?nM|geDC)R*XKU8Ce}ieT6?IO+I}O{@U=w2-iVG78n|HQm z0nA7X6wUPZs0Ztg@s#w=|Cefymd-+>lz|D=zK1Ys1dJkqs&QuL6h;jSe}ct>-O@$N zDmVaYx+~-m_6N1^m74%?xZ`#%+gA>V_C^@?FY0d(A53XKpXLZQ7`3qOj<>G69+;O# z5SA<|C$QvEIe?{u8WtA&=9xAsHjF^kfKddfkw;WqSgmChoP*uc1qH#PJ}!NfK8$GZ zvVG+o?zkNQ*!Rj!JzO>@e|;G4-YlczvP0>^n3r1DU2kFC9oNHUi_(Y1!ex(&2h+mI zpyIPn$;0|^kKecxQYc{9Z$$;JV0X^In2Hg3ZL!}K9&A>*jYEW3=7d3Sjl1Q~j z)jzECbY=4d`90M<{ZT0u5%LCs>Z8a^cniRn77WPm?Je}R2<5@~`O&wN>A4qm0zC&X uDXr;s#^BX@rK~)GxwkK{m`o;|k1|%Oc%$NbB*pj^6U4S$Y{B+)352QE?JR*yM zvQ&rUPlPeufHm>3$&Rv8Rh;NW|f{(*yaM6$D($r5?-P>i!n|*GO)0 zdvL$uU&CV)8oD=KGx=TDSUTe@LzhM0XJwCTD(sV#PaEo)zE*Df)#T*#>qhxR0h7)X zmscbP0l+XkKQow@L literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_checkbox_blank_outline.png b/res/drawable-mdpi/ic_checkbox_blank_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..d4ca47c66a3992444b1ff5012d6de20456e653ec GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE(}6TtKSPDj(q%wSg{O;Sh{y4_Q#bN9Cm6N(4lzlc&jLD{1b-UvN7muWoBk(}6TtKSPDj(q%x-Lr)jS5Rc<;r&tR$8Hl*%8|gWxZ(`vJOYBtT zzM$*DY_^MS`hk?3*j829k{!IyZZ-%VbFjNmxcbT7GnU1(8M4(5{hI!v;GXdY>xQ+; z>(ws2{JO(-H)D8iTmi$4tv&fa9yId*(Qn=z#HLx&Ey*&4JC4oegqT2pUWKT)=4@7} zKMxY8Ea|yvuJJ|Nct@B+i_Zrm2958H{bmz_%$mYCYHe)JX6;erUaS(T`t8F-Hs?-m z83wcD(_u`S>%|#1wEA=Xn)EJ**<5Hx)9y20#U;7#85@YUDJfhKba>0SKKhu{=Ng8P X)%o2EGTO3$o@MZK^>bP0l+XkKo#l2~ literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_import.png b/res/drawable-mdpi/ic_import.png new file mode 100644 index 0000000000000000000000000000000000000000..3bc69d1bffb6dd6d61a84c4215ca3e88d288132a GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE(}6TtKSPDj(q%wSx2KC^h{y4_Q%(yuDDbc@PL>RFQJ&Vgm8o`( zxb08R4x_^d%T-jo;}|B!-{s_RSQN*}A?8pfVn0Qffk9?&{IlM*y5`IcH@>LsW)AEO zkFM4#U=L)Rx?MGj@tz{T{+%%Em{>7M#??aC8Ox>Tchxg}cxGCE^77Fr!HG95Hzd7G l5ET3yZlnEv=YFfpZ2vb}G0mT4;tg~bgQu&X%Q~loCIGANPA32W literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_import.png b/res/drawable-xhdpi/ic_import.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2f72ea3927c77c2dfed1a14b2ea4b695c898b9 GIT binary patch literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7a$D;Kb?2i11Zh|kH}&m z?E%JaC$sH9f@KAc=|CE+pW)oQo^S>RMtM&c$B>MBZ)a=_WHID%oiC9j(Xmr%$BbtR zN=pP*G#H)GXpmrwXH>fRps#WB6WiNdUy^SAI)CrxSE)%Vo|Bd|t;!4e8X4OCZMn`~ zvuQa=9QDk57_T>9f6Ki?c;feD*Yvi|d1@`}JDB9MU8l+ZVAE6MU=R`98Kb>`o!Mno z^0fzV(<@t?CNpie+}W_|-uY?2WM42O*KTgv9`FB9t=uJQvb0|VoBPZ!6Kid%1Q@AhSO6mff4Jdu^LiETxrJB#ZK zwgn6>;x}Rg7)>06Q*2x~O&VMoP6|BWi0pZO^sel`$^Gf?)Yo5|ws*mlATQ0OQ-WTt z-+ZT4vBmd+kOlL%#@zRbbzk^wn71F;I43$ItCYX8g~+aSU$Dw!FH@-VE6EjHLGK-odTeb_+n@U&$AViiA+7klGtb}E$JTti ztGjg}bEEMkiG~FazVE(tjKRcw^UUkdoY{+x7UuTet`YQkKfk%Fpo(4V*h`>6e(N2s z7F4mU>Uzu-lKps^g)O7$!I!KnB>m17zq&6wvF%^zVOvI5p#T*SvBdM(ELQD*M=U4x zf9$@(YWaSF_ + fab:fab_colorPressed="@color/owncloud_blue"/> \ No newline at end of file diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 85711d78..7d7cea1e 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -149,7 +149,7 @@ public class FileDisplayActivity extends HookActivity private boolean mSyncInProgress = false; private static String DIALOG_UNTRUSTED_CERT = "DIALOG_UNTRUSTED_CERT"; - private static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER"; + public static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER"; private static String DIALOG_UPLOAD_SOURCE = "DIALOG_UPLOAD_SOURCE"; private static String DIALOG_CERT_NOT_SAVED = "DIALOG_CERT_NOT_SAVED"; diff --git a/src/com/owncloud/android/ui/fragment/ExtendedListFragment.java b/src/com/owncloud/android/ui/fragment/ExtendedListFragment.java index 2ca2cc3b..900fde98 100644 --- a/src/com/owncloud/android/ui/fragment/ExtendedListFragment.java +++ b/src/com/owncloud/android/ui/fragment/ExtendedListFragment.java @@ -22,6 +22,7 @@ package com.owncloud.android.ui.fragment; import java.util.ArrayList; +import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; @@ -45,6 +46,7 @@ import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.ui.ExtendedListView; import com.owncloud.android.ui.activity.OnEnforceableRefreshListener; import com.owncloud.android.ui.adapter.FileListListAdapter; +import com.owncloud.android.ui.dialog.CreateFolderDialogFragment; import third_parties.in.srain.cube.GridViewWithHeaderAndFooter; diff --git a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java index 02bd845d..bca191a4 100644 --- a/src/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -24,6 +24,7 @@ package com.owncloud.android.ui.fragment; import android.app.Activity; import android.content.Intent; +import android.os.Build; import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.view.ContextMenu; @@ -34,6 +35,7 @@ import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.PopupMenu; +import android.widget.Toast; import com.owncloud.android.R; import com.owncloud.android.authentication.AccountUtils; @@ -46,11 +48,14 @@ import com.owncloud.android.ui.activity.FileActivity; import com.owncloud.android.ui.activity.FileDisplayActivity; import com.owncloud.android.ui.activity.FolderPickerActivity; import com.owncloud.android.ui.activity.OnEnforceableRefreshListener; +import com.owncloud.android.ui.activity.UploadFilesActivity; import com.owncloud.android.ui.adapter.FileListListAdapter; import com.owncloud.android.ui.dialog.ConfirmationDialogFragment; +import com.owncloud.android.ui.dialog.CreateFolderDialogFragment; import com.owncloud.android.ui.dialog.FileActionsDialogFragment; import com.owncloud.android.ui.dialog.RemoveFileDialogFragment; import com.owncloud.android.ui.dialog.RenameFileDialogFragment; +import com.owncloud.android.ui.dialog.UploadSourceDialogFragment; import com.owncloud.android.ui.preview.PreviewImageFragment; import com.owncloud.android.ui.preview.PreviewMediaFragment; import com.owncloud.android.utils.FileStorageUtils; @@ -75,6 +80,8 @@ public class OCFileListFragment extends ExtendedListFragment implements FileActi private static final String KEY_FILE = MY_PACKAGE + ".extra.FILE"; + private static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER"; + private FileFragment.ContainerActivity mContainerActivity; private OCFile mFile = null; @@ -144,8 +151,89 @@ public class OCFileListFragment extends ExtendedListFragment implements FileActi setListAdapter(mAdapter); registerLongClickListener(); + registerFabListeners(); } + private void registerFabListeners() { + registerFabUploadListeners(); + registerFabMkDirListeners(); + registerFabUploadFromAppListeners(); + } + + private void registerFabUploadListeners() { + getFabUpload().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent action = new Intent(getActivity(), UploadFilesActivity.class); + action.putExtra( + UploadFilesActivity.EXTRA_ACCOUNT, + ((FileActivity) getActivity()).getAccount() + ); + getActivity().startActivityForResult(action, UploadSourceDialogFragment.ACTION_SELECT_MULTIPLE_FILES); + getFabMain().collapse(); + } + }); + + getFabUpload().setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + Toast.makeText(getActivity(), R.string.actionbar_upload, Toast.LENGTH_SHORT).show(); + return true; + } + }); + } + + private void registerFabMkDirListeners() { + getFabMkdir().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CreateFolderDialogFragment dialog = + CreateFolderDialogFragment.newInstance(mFile); + dialog.show(getActivity().getSupportFragmentManager(), FileDisplayActivity.DIALOG_CREATE_FOLDER); + getFabMain().collapse(); + } + }); + + getFabMkdir().setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + Toast.makeText(getActivity(), R.string.actionbar_mkdir, Toast.LENGTH_SHORT).show(); + return true; + } + }); + } + + private void registerFabUploadFromAppListeners() { + getFabUploadFromApp().setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent action = new Intent(Intent.ACTION_GET_CONTENT); + action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE); + + //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+, Jelly Bean + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { + action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); + } + + getActivity().startActivityForResult( + Intent.createChooser(action, getString(R.string.upload_chooser_title)), + UploadSourceDialogFragment.ACTION_SELECT_CONTENT_FROM_APPS + ); + getFabMain().collapse(); + } + }); + + getFabUploadFromApp().setOnLongClickListener(new View.OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + Toast.makeText(getActivity(), + R.string.actionbar_upload_from_apps, + Toast.LENGTH_SHORT).show(); + return true; + } + }); + } + private void registerLongClickListener() { getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { public boolean onItemLongClick(AdapterView arg0, View v, -- 2.11.0