Sharing is now fully implemented

This commit is contained in:
staccatomamba
2017-11-05 01:27:38 +01:00
parent 2b3c6545f7
commit a3f8cb4c0f
5 changed files with 28 additions and 61 deletions

View File

@@ -171,8 +171,6 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
showLoading();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(mKeyboardListener);
}
private void setupRecyclerView() {
@@ -238,7 +236,6 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
String filePath = file.getPath();
mSelectedFilePath.delete();
String test = mSelectedFilePath.get();
if (Build.VERSION.SDK_INT >= 19) {
final int takeFlags = (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

View File

@@ -3,13 +3,16 @@ package de.beyondsoft.ownchat.page.contacts;
import de.beyondsoft.ownchat.R;
import de.beyondsoft.ownchat.data.AppPrefsConstants;
import de.beyondsoft.ownchat.data.events.GroupUpdatedEvent;
import de.beyondsoft.ownchat.data.prefs.BooleanPreference;
import de.beyondsoft.ownchat.data.prefs.LongPreference;
import de.beyondsoft.ownchat.data.prefs.StringPreference;
import de.beyondsoft.ownchat.di.InjectionHelper;
import de.beyondsoft.ownchat.model.Group;
import de.beyondsoft.ownchat.model.Message;
import de.beyondsoft.ownchat.page.chat.GroupChatActivity;
import de.beyondsoft.ownchat.page.chat.SingleChatActivity;
import de.beyondsoft.ownchat.page.common.BaseFragment;
import de.beyondsoft.ownchat.page.sharing.SharingActivity;
import de.beyondsoft.ownchat.utils.Constants;
import de.beyondsoft.ownchat.utils.ui.EmptyLayout;
import de.beyondsoft.ownchat.utils.ui.HorizontalDividerItemDecoration;
@@ -73,6 +76,14 @@ public class ContactsFragment extends BaseFragment
@Named(AppPrefsConstants.USER_ID)
LongPreference mUserIdPreference;
@Inject
@Named(AppPrefsConstants.IS_COMING_FROM_SHARING_ACTIVITY)
BooleanPreference mIsComingFromSharingActivity;
@Inject
@Named(AppPrefsConstants.PATH_TO_FILE_TO_SHARE)
StringPreference mSelectedFilePath;
private Callback mCallback;
private ContactsAdapter mContactsAdapter;
private RecyclerView.ItemDecoration mHorizontalDividerItemDecoration;
@@ -83,6 +94,10 @@ public class ContactsFragment extends BaseFragment
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
if(mIsComingFromSharingActivity.get() && mSelectedFilePath.get() != null) {
startActivity(new Intent(getActivity(), SharingActivity.class));
}
}
@Override
@@ -107,8 +122,7 @@ public class ContactsFragment extends BaseFragment
IntentFilter filter = new IntentFilter(Constants.NOTIFICATION_BROADCAST);
getActivity().registerReceiver(mReceiver, filter);
mHorizontalDividerItemDecoration = new HorizontalDividerItemDecoration.Builder(getActivity())
.colorResId(R.color.colorFill).build();
mHorizontalDividerItemDecoration = new HorizontalDividerItemDecoration.Builder(getActivity()).colorResId(R.color.colorFill).build();
mContactsRecyclerView.addItemDecoration(mHorizontalDividerItemDecoration);
mContactsRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));

View File

@@ -1,6 +1,5 @@
package de.beyondsoft.ownchat.page.sharing;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
@@ -13,11 +12,8 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
import javax.inject.Inject;
@@ -34,9 +30,7 @@ import de.beyondsoft.ownchat.di.InjectionHelper;
import de.beyondsoft.ownchat.model.Group;
import de.beyondsoft.ownchat.page.chat.GroupChatActivity;
import de.beyondsoft.ownchat.page.chat.SingleChatActivity;
import de.beyondsoft.ownchat.page.fileconfirmation.FileConfirmationActivity;
import de.beyondsoft.ownchat.utils.Constants;
import de.beyondsoft.ownchat.utils.FileUtils;
import de.beyondsoft.ownchat.page.login.LoginActivity;
import de.beyondsoft.ownchat.utils.ui.EmptyLayout;
import de.beyondsoft.ownchat.utils.ui.HorizontalDividerItemDecoration;
@@ -45,11 +39,13 @@ import de.beyondsoft.ownchat.utils.ui.HorizontalDividerItemDecoration;
*/
public class SharingActivity extends AppCompatActivity implements SharingView, SharingContactsAdapter.OnOpenClickListener {
private final static int CONFIRM_FILE = 666;
@Inject
SharingPresenter mSharingPresenter;
@Inject
@Named(AppPrefsConstants.LOGIN_TOKEN)
StringPreference mLoginTokenPreference;
@Inject
@Named(AppPrefsConstants.USER_ID)
LongPreference mUserIdPreference;
@@ -117,6 +113,11 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S
if (fileUri != null) {
mSelectedFilePath.set(fileUri.toString());
mIsComingFromSharingActivity.set(true);
if (!mLoginTokenPreference.isSet()) {
startActivity(new Intent(this, LoginActivity.class));
finishAffinity();
}
}
}
@@ -141,35 +142,13 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S
@Override
public void onOpenGroupMessage(Group group) {
startActivity(GroupChatActivity.createIntent(this, group));
finishAffinity();
}
@Override
public void onOpenPrivateMessage(Group contact) {
startActivity(SingleChatActivity.createIntent(this, contact));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK) {
return;
}
if (null == data) {
return;
}
if(requestCode == CONFIRM_FILE) {
String filePath = data.getStringExtra(Constants.FILE_PATH);
String fileMessageText = data.getStringExtra(Constants.FILE_MESSAGE_TEXT);
if (!mSharingPresenter.isAttached()) {
mSharingPresenter.attachView(this);
}
mCallback.sendFile(Uri.fromFile(new File(filePath)), fileMessageText);
}
finishAffinity();
}
@Override
@@ -191,14 +170,4 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S
public void setGroups(ArrayList<Group> groups) {
mContactsAdapter.setGroups(groups);
}
@Override
public File getFile(Uri fileUri) {
return FileUtils.getFile(this, fileUri);
}
@Override
public void showToastMessage(@StringRes int message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}

View File

@@ -165,11 +165,6 @@ public class SharingPresenter extends MVPAbstractPresenter<SharingView> implemen
.subscribe(this::loadGroupsFromDBSuccessful, this::loadGroupsError);
}
@Override
public void sendFile(Uri fileUri, String messageText) {
}
private void loadGroupsFromDBSuccessful(ArrayList<Group> groups) {
if (!isAttached()) {
return;

View File

@@ -1,9 +1,7 @@
package de.beyondsoft.ownchat.page.sharing;
import android.net.Uri;
import android.support.annotation.StringRes;
import java.io.File;
import java.util.ArrayList;
import de.beyondsoft.ownchat.model.Group;
@@ -24,15 +22,9 @@ public interface SharingView extends MVPView {
void showError(@StringRes int message);
File getFile(Uri fileUri);
void showToastMessage(@StringRes int message);
interface Callback {
void loadGroups();
void loadGroupsFromDB();
void sendFile(Uri fileUri, String messageText);
}
}