2 * ownCloud Android client application
5 * Copyright (C) 2015 ownCloud Inc.
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2,
9 * as published by the Free Software Foundation.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 package com
.owncloud
.android
.ui
.activity
;
23 import android
.accounts
.Account
;
24 import android
.net
.Uri
;
25 import android
.os
.Bundle
;
26 import android
.support
.v4
.app
.Fragment
;
27 import android
.support
.v4
.app
.FragmentManager
;
28 import android
.support
.v4
.app
.FragmentTransaction
;
29 import android
.support
.v7
.app
.AppCompatActivity
;
30 import android
.support
.v7
.widget
.Toolbar
;
32 import com
.owncloud
.android
.R
;
33 import com
.owncloud
.android
.datamodel
.OCFile
;
34 import com
.owncloud
.android
.ui
.dialog
.LoadingDialog
;
35 import com
.owncloud
.android
.ui
.fragment
.SearchFragment
;
36 import com
.owncloud
.android
.ui
.fragment
.ShareFileFragment
;
39 * Activity for sharing files
42 public class ShareActivity
extends AppCompatActivity
43 implements ShareFileFragment
.OnShareFragmentInteractionListener
,
44 SearchFragment
.OnSearchFragmentInteractionListener
{
46 private static final String TAG_SHARE_FRAGMENT
= "SHARE_FRAGMENT";
47 private static final String TAG_SEARCH_FRAGMENT
= "SEARCH_USER_AND_GROUPS_FRAGMENT";
49 private static final String DIALOG_WAIT_LOAD_DATA
= "DIALOG_WAIT_LOAD_DATA";
51 private Account mAccount
;
54 private ShareFileFragment mShareFileFragment
;
55 private SearchFragment mSearchFragment
;
58 protected void onCreate(Bundle savedInstanceState
) {
59 super.onCreate(savedInstanceState
);
60 setContentView(R
.layout
.share_activity
);
62 FragmentTransaction ft
= getSupportFragmentManager().beginTransaction();
64 if (savedInstanceState
!= null
) {
65 mFile
= savedInstanceState
.getParcelable(FileActivity
.EXTRA_FILE
);
66 mAccount
= savedInstanceState
.getParcelable(FileActivity
.EXTRA_ACCOUNT
);
68 mShareFileFragment
= (ShareFileFragment
) getSupportFragmentManager().
69 getFragment(savedInstanceState
, TAG_SHARE_FRAGMENT
);
70 mSearchFragment
= (SearchFragment
) getSupportFragmentManager().
71 getFragment(savedInstanceState
, TAG_SEARCH_FRAGMENT
);
73 if (mShareFileFragment
!= null
){
74 ft
.replace(R
.id
.share_fragment_container
, mShareFileFragment
, TAG_SHARE_FRAGMENT
);
76 if (mSearchFragment
!= null
){
77 ft
.hide(mShareFileFragment
);
78 ft
.add(R
.id
.share_fragment_container
, mSearchFragment
, TAG_SEARCH_FRAGMENT
);
79 ft
.addToBackStack(TAG_SEARCH_FRAGMENT
);
86 mFile
= getIntent().getParcelableExtra(FileActivity
.EXTRA_FILE
);
87 mAccount
= getIntent().getParcelableExtra(FileActivity
.EXTRA_ACCOUNT
);
90 mShareFileFragment
= ShareFileFragment
.newInstance(mFile
, mAccount
);
91 ft
.replace(R
.id
.share_fragment_container
, mShareFileFragment
, TAG_SHARE_FRAGMENT
);
94 mSearchFragment
= null
;
100 protected void onSaveInstanceState(Bundle outState
) {
101 super.onSaveInstanceState(outState
);
102 outState
.putParcelable(FileActivity
.EXTRA_FILE
, mFile
);
103 outState
.putParcelable(FileActivity
.EXTRA_ACCOUNT
, mAccount
);
105 //Save the fragment's instance
106 getSupportFragmentManager().putFragment(outState
, TAG_SHARE_FRAGMENT
, mShareFileFragment
);
107 if (mSearchFragment
!= null
) {
108 getSupportFragmentManager().putFragment(outState
, TAG_SEARCH_FRAGMENT
, mSearchFragment
);
114 public void showSearchUsersAndGroups() {
115 FragmentTransaction ft
= getSupportFragmentManager().beginTransaction();
116 mSearchFragment
= SearchFragment
.newInstance(mFile
, mAccount
);
117 ft
.hide(mShareFileFragment
);
118 ft
.add(R
.id
.share_fragment_container
, mSearchFragment
, TAG_SEARCH_FRAGMENT
);
119 ft
.addToBackStack(TAG_SEARCH_FRAGMENT
);
124 public void onBackPressed() {
125 super.onBackPressed();
126 if (mSearchFragment
!= null
){
127 getSupportFragmentManager().popBackStackImmediate();
128 mSearchFragment
= null
;
133 public void onShareFragmentInteraction(Uri uri
) {
138 public void onSearchFragmentInteraction(Uri uri
) {
143 * Show waiting for loading data
145 public void showWaitingLoadDialog() {
147 LoadingDialog loading
= new LoadingDialog(
148 getResources().getString(R
.string
.common_loading
));
149 FragmentManager fm
= getSupportFragmentManager();
150 FragmentTransaction ft
= fm
.beginTransaction();
151 loading
.show(ft
, DIALOG_WAIT_LOAD_DATA
);
157 * Dismiss waiting for loading data
159 public void dismissWaitingLoadDialog(){
160 Fragment frag
= getSupportFragmentManager().findFragmentByTag(DIALOG_WAIT_LOAD_DATA
);
162 LoadingDialog loading
= (LoadingDialog
) frag
;