X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/905b68b4ec886cff35799c0e0604383d9f1d245b..de93a66763e92c48c14e7dc09dc7852b91534d2d:/src/com/owncloud/android/ui/activity/ShareActivity.java diff --git a/src/com/owncloud/android/ui/activity/ShareActivity.java b/src/com/owncloud/android/ui/activity/ShareActivity.java index 674ceefc..d7c7261f 100644 --- a/src/com/owncloud/android/ui/activity/ShareActivity.java +++ b/src/com/owncloud/android/ui/activity/ShareActivity.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 @@ -21,14 +22,21 @@ package com.owncloud.android.ui.activity; import android.accounts.Account; +import android.app.SearchManager; +import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; -import android.support.v7.widget.Toolbar; +import android.widget.Toast; import com.owncloud.android.R; import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.lib.common.utils.Log_OC; +import com.owncloud.android.providers.UsersAndGroupsSearchProvider; +import com.owncloud.android.ui.dialog.LoadingDialog; import com.owncloud.android.ui.fragment.SearchFragment; import com.owncloud.android.ui.fragment.ShareFileFragment; @@ -36,15 +44,16 @@ import com.owncloud.android.ui.fragment.ShareFileFragment; * Activity for sharing files */ -public class ShareActivity extends AppCompatActivity +public class ShareActivity extends FileActivity implements ShareFileFragment.OnShareFragmentInteractionListener, SearchFragment.OnSearchFragmentInteractionListener { + private static final String TAG = ShareActivity.class.getSimpleName(); + private static final String TAG_SHARE_FRAGMENT = "SHARE_FRAGMENT"; private static final String TAG_SEARCH_FRAGMENT = "SEARCH_USER_AND_GROUPS_FRAGMENT"; - private Account mAccount; - private OCFile mFile; + private static final String DIALOG_WAIT_LOAD_DATA = "DIALOG_WAIT_LOAD_DATA"; private ShareFileFragment mShareFileFragment; private SearchFragment mSearchFragment; @@ -53,14 +62,10 @@ public class ShareActivity extends AppCompatActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.share_activity); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); if (savedInstanceState != null) { - mFile = savedInstanceState.getParcelable(FileActivity.EXTRA_FILE); - mAccount = savedInstanceState.getParcelable(FileActivity.EXTRA_ACCOUNT); mShareFileFragment = (ShareFileFragment) getSupportFragmentManager(). getFragment(savedInstanceState, TAG_SHARE_FRAGMENT); @@ -79,26 +84,61 @@ public class ShareActivity extends AppCompatActivity } } else { - // Read Extras - mFile = getIntent().getParcelableExtra(FileActivity.EXTRA_FILE); - mAccount = getIntent().getParcelableExtra(FileActivity.EXTRA_ACCOUNT); - // Add Share fragment - mShareFileFragment = ShareFileFragment.newInstance(mFile, mAccount); + mShareFileFragment = ShareFileFragment.newInstance(getFile(), getAccount()); ft.replace(R.id.share_fragment_container, mShareFileFragment, TAG_SHARE_FRAGMENT); ft.commit(); mSearchFragment = null; } + handleIntent(getIntent()); + } + + + @Override + protected void onNewIntent(Intent intent) { + setIntent(intent); + handleIntent(intent); + } + + + private void handleIntent(Intent intent) { + // Verify the action and get the query + if (Intent.ACTION_SEARCH.equals(intent.getAction())) { + String query = intent.getStringExtra(SearchManager.QUERY); + doMySearch(query); + + } else if (UsersAndGroupsSearchProvider.ACTION_SHARE_WITH.equals(intent.getAction())) { + Uri data = intent.getData(); + doShareWith( + data.getLastPathSegment(), + UsersAndGroupsSearchProvider.DATA_GROUP.equals(data.getAuthority()) + ); + + } else { + Log_OC.wtf(TAG, "Unexpected intent " + intent.toString()); + } + } + + private void doMySearch(String query) { + // TODO implement , or prevent that search may be sent without choosing from the suggestions list + Toast.makeText(this, "You want to search for [" + query + "]", Toast.LENGTH_SHORT).show(); + } + + private void doShareWith(String username, boolean isGroup) { + // TODO implement + if (isGroup) { + Toast.makeText(this, "You want to SHARE with GROUP [" + username + "]", Toast.LENGTH_SHORT).show(); + + } else { + Toast.makeText(this, "You want to SHARE with USER [" + username + "]", Toast.LENGTH_SHORT).show(); + } } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - outState.putParcelable(FileActivity.EXTRA_FILE, mFile); - outState.putParcelable(FileActivity.EXTRA_ACCOUNT, mAccount); - //Save the fragment's instance getSupportFragmentManager().putFragment(outState, TAG_SHARE_FRAGMENT, mShareFileFragment); if (mSearchFragment != null) { @@ -110,7 +150,7 @@ public class ShareActivity extends AppCompatActivity @Override public void showSearchUsersAndGroups() { FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - mSearchFragment = SearchFragment.newInstance(mFile, mAccount); + mSearchFragment = SearchFragment.newInstance(getFile(), getAccount()); ft.hide(mShareFileFragment); ft.add(R.id.share_fragment_container, mSearchFragment, TAG_SEARCH_FRAGMENT); ft.addToBackStack(TAG_SEARCH_FRAGMENT);