From eb3b7c58646b5434a41a6d51a2d70932cf559ab6 Mon Sep 17 00:00:00 2001 From: Lyndon Date: Mon, 6 Nov 2017 10:53:35 +0100 Subject: [PATCH 1/6] Login --- .../app/src/main/AndroidManifest.xml | 3 ++- .../ownchat/page/chat/BaseChatActivity.java | 3 +++ .../ownchat/page/login/LoginActivity.java | 2 -- .../ownchat/page/sharing/SharingActivity.java | 2 +- .../page/sharing/SharingContactsAdapter.java | 4 +--- .../ownchat/page/sharing/SharingPresenter.java | 15 --------------- 6 files changed, 7 insertions(+), 22 deletions(-) diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml index a1f9a1f..1e01959 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml @@ -27,8 +27,9 @@ + diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java index fe9c141..22fab3d 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java @@ -623,6 +623,9 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha @Override public void onBackPressed() { + mIsComingFromSharingActivity.set(false); + mSelectedFilePath.delete(); + startActivity(new Intent(this, MainActivity.class)); } } \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginActivity.java index d8bf93c..0a8eee9 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginActivity.java @@ -22,8 +22,6 @@ import android.support.annotation.StringRes; import android.support.design.widget.Snackbar; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; -import android.text.Editable; -import android.util.Log; import android.view.View; import android.view.inputmethod.EditorInfo; import android.widget.Button; diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java index b2eab7c..f0b38af 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java @@ -88,7 +88,7 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S mContactsRecyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(this).colorResId(R.color.colorFill).build()); mContactsRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - mContactsAdapter = new SharingContactsAdapter(this, mUserIdPreference.get()); + mContactsAdapter = new SharingContactsAdapter(this); mContactsRecyclerView.setAdapter(mContactsAdapter); setToolBar(); diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingContactsAdapter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingContactsAdapter.java index e97c6e7..2dfb482 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingContactsAdapter.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingContactsAdapter.java @@ -29,7 +29,6 @@ public class SharingContactsAdapter extends RecyclerView.Adapter mGroups; private SharingContactsAdapter.OnOpenClickListener mItemClickListener; - private long mUserId; interface OnOpenClickListener { void onOpenGroupMessage(Group group); @@ -37,10 +36,9 @@ public class SharingContactsAdapter extends RecyclerView.Adapter(); - mUserId = userId; } void setGroups(ArrayList groups) { diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingPresenter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingPresenter.java index 835bb57..336a2df 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingPresenter.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingPresenter.java @@ -69,21 +69,6 @@ public class SharingPresenter extends MVPAbstractPresenter implemen @Named(AppPrefsConstants.USER_ID) LongPreference mUserIdReference; - @Inject - @Named(AppPrefsConstants.AVATAR) - StringPreference mAvatarPreference; - - @Inject - @Named(AppPrefsConstants.NAME) - StringPreference mProfileNamePreference; - - @Inject - @Named(AppPrefsConstants.UPLOAD_MAX_SIZE) - LongPreference mUploadMaxSizePreference; - - @Inject - RealmProvider mRealmProvider; - @Inject SharingPresenter() {} From ff088cb2e47598ad786c43f49bfb28d7224e9c3d Mon Sep 17 00:00:00 2001 From: Lyndon Date: Mon, 6 Nov 2017 13:13:53 +0100 Subject: [PATCH 2/6] . --- .../bewoplaner-chat-android/app/build.gradle | 1 + .../app/src/main/AndroidManifest.xml | 14 ++++++++++---- .../ownchat/BewoplanerApplication.java | 19 +++++++++++++++++++ .../data/firebase/HandleMessagesService.java | 3 ++- .../firebase/ReplyNotificationReceiver.java | 3 ++- .../ownchat/page/login/LoginPresenter.java | 1 - .../ownchat/page/main/MainActivity.java | 1 - .../app/src/main/res/values/strings.xml | 2 ++ .../bewoplaner-chat-android/build.gradle | 5 ++--- 9 files changed, 38 insertions(+), 11 deletions(-) diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle b/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle index 74289b8..412ea2a 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle @@ -114,6 +114,7 @@ dependencies { annotationProcessor 'com.google.dagger:dagger-compiler:2.7' provided 'javax.annotation:jsr250-api:1.0' implementation files('libs/sanselan-0_97-android-1.0.0.jar') + compile 'com.firebase:firebase-jobdispatcher:0.5.2' } task adp2upload(type: Exec, dependsOn: "build") { diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml index 1e01959..cf15c0b 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml @@ -17,7 +17,6 @@ android:supportsRtl="true" android:theme="@style/AppTheme"> @@ -29,7 +28,6 @@ @@ -70,7 +68,8 @@ android:name="io.fabric.ApiKey" android:value="1dcc8d0ead50f1b328778876834fea3392c6fc22" /> - + @@ -78,12 +77,19 @@ - + + + = Build.VERSION_CODES.O) { + NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + String channelId = getString(R.string.default_notification_channel_id); + + if(manager != null && manager.getNotificationChannel(channelId) == null) { + NotificationChannel channel = new NotificationChannel(channelId, + getString(R.string.default_notification_channel_id), + NotificationManager.IMPORTANCE_DEFAULT); + channel.setDescription(getString(R.string.default_notification_channel_id)); + + manager.createNotificationChannel(channel); + } + } } private void buildGraphAndInject() { diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/HandleMessagesService.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/HandleMessagesService.java index d396c70..aa3e7d6 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/HandleMessagesService.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/HandleMessagesService.java @@ -144,7 +144,7 @@ public class HandleMessagesService extends FirebaseMessagingService { bitmapToDisplay = BitmapFactory.decodeResource(context.getResources(), R.drawable.avatar); } - NotificationCompat.Builder builder = new NotificationCompat.Builder(context) + NotificationCompat.Builder builder = new NotificationCompat.Builder(context, getString(R.string.default_notification_channel_id)) .setSmallIcon(getNotificationIcon()) .setContentTitle(setNotificationTitle(message, message.numberOfGroupUsers)) .setContentText(getTextFromNotification(message)) @@ -180,6 +180,7 @@ public class HandleMessagesService extends FirebaseMessagingService { false, mUserIdReference.get(), false); + storeMessageLocally(message); storeGroupLocally(groupId, message); } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/ReplyNotificationReceiver.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/ReplyNotificationReceiver.java index 9550fce..c346d94 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/ReplyNotificationReceiver.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/ReplyNotificationReceiver.java @@ -1,5 +1,6 @@ package de.beyondsoft.ownchat.data.firebase; +import de.beyondsoft.ownchat.BewoplanerApplication; import de.beyondsoft.ownchat.R; import de.beyondsoft.ownchat.data.AppPrefsConstants; import de.beyondsoft.ownchat.data.api.common.ErrorHandlingResponseConverter; @@ -99,7 +100,7 @@ public class ReplyNotificationReceiver extends BroadcastReceiver { private void updateNotificationOnReply(Context context, String replyMessage, int groupId) { NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context); - NotificationCompat.Builder builder = new NotificationCompat.Builder(context) + NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "ownChat") .setSmallIcon(HandleMessagesService.getNotificationIcon()) .setColor(ContextCompat.getColor(context, R.color.colorDefaultBright)) .setContentTitle(context.getResources().getString(R.string.chat_you_name)) diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginPresenter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginPresenter.java index 89436d4..6ca6654 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginPresenter.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginPresenter.java @@ -47,7 +47,6 @@ import io.realm.Realm; import rx.Observable; import rx.Subscriber; import rx.Subscription; -import rx.functions.Func1; import rx.schedulers.Schedulers; /** diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/main/MainActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/main/MainActivity.java index f6c8c20..e1fc9b9 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/main/MainActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/main/MainActivity.java @@ -39,7 +39,6 @@ import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; -import android.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/strings.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/strings.xml index 65b44bd..aa77178 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/strings.xml +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/strings.xml @@ -88,4 +88,6 @@ Die Datei, die Sie versuchen hochzuladen, ist zu groß Datei teilen + ownChat + \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/build.gradle b/BeWoPlanerChat/bewoplaner-chat-android/build.gradle index 4414c47..3e37a24 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/build.gradle +++ b/BeWoPlanerChat/bewoplaner-chat-android/build.gradle @@ -3,16 +3,15 @@ buildscript { repositories { jcenter() + google() } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' - //classpath 'me.tatarka:gradle-retrolambda:3.3.0' - //classpath 'me.tatarka.retrolambda.projectlombok:lombok.ast:0.2.3.a2' classpath 'io.realm:realm-gradle-plugin:2.2.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files - classpath 'com.google.gms:google-services:3.0.0' + classpath 'com.google.gms:google-services:3.1.1' } } From 5e0a3a8d6532e250af5c44ebd797944c3a3e5170 Mon Sep 17 00:00:00 2001 From: Lyndon Date: Mon, 6 Nov 2017 18:14:34 +0100 Subject: [PATCH 3/6] When a conversation was already open it affected the file sharing process. --- .../ownchat/page/chat/BaseChatActivity.java | 16 ++++++++++++++++ .../ownchat/page/chat/GroupChatActivity.java | 16 ++++++++++++++++ .../ownchat/page/chat/SingleChatActivity.java | 16 ++++++++++++++++ .../FileConfirmationActivity.java | 8 ++++---- .../ownchat/page/sharing/SharingActivity.java | 19 +++++++++++++++++-- 5 files changed, 69 insertions(+), 6 deletions(-) diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java index 22fab3d..d838737 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java @@ -628,4 +628,20 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha startActivity(new Intent(this, MainActivity.class)); } + + @Override + protected void onNewIntent(Intent intent) { + boolean test = intent.getBooleanExtra("TEST_EXTRA", false); + + if(test) { + Group group = intent.getParcelableExtra(GROUP_ARG); + + if(group != null) { + finish(); + startActivity(intent); + } + } + + super.onNewIntent(intent); + } } \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java index d21efab..64694b7 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java @@ -122,6 +122,22 @@ public class GroupChatActivity extends BaseChatActivity { startActivity(ChatMembersActivity.createIntent(this, mGroup)); } +// @Override +// protected void onNewIntent(Intent intent) { +// boolean test = intent.getBooleanExtra("TEST_EXTRA", false); +// +// if(test) { +// Group group = intent.getParcelableExtra(GROUP_ARG); +// +// if(group != null) { +// finish(); +// startActivity(intent); +// } +// } +// +// super.onNewIntent(intent); +// } + @Override protected BaseChatAdapter getAdapter() { return new GroupChatAdapter(mUserIdPreference.get()); diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/SingleChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/SingleChatActivity.java index dccbd86..1a21882 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/SingleChatActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/SingleChatActivity.java @@ -62,6 +62,22 @@ public class SingleChatActivity extends BaseChatActivity { } } +// @Override +// protected void onNewIntent(Intent intent) { +// boolean test = intent.getBooleanExtra("TEST_EXTRA", false); +// +// if(test) { +// Group group = intent.getParcelableExtra(GROUP_ARG); +// +// if(group != null) { +// finish(); +// startActivity(intent); +// } +// } +// +// super.onNewIntent(intent); +// } + @Override protected void onResume() { if (!mChatPresenter.isAttached()) { diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationActivity.java index b23e906..af92a0f 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationActivity.java @@ -19,6 +19,9 @@ import com.bumptech.glide.request.target.GlideDrawableImageViewTarget; import butterknife.OnClick; import de.beyondsoft.ownchat.R; +import de.beyondsoft.ownchat.data.AppPrefsConstants; +import de.beyondsoft.ownchat.data.prefs.BooleanPreference; +import de.beyondsoft.ownchat.data.prefs.StringPreference; import de.beyondsoft.ownchat.di.InjectionHelper; import de.beyondsoft.ownchat.model.Group; import de.beyondsoft.ownchat.utils.Constants; @@ -27,6 +30,7 @@ import de.beyondsoft.ownchat.utils.FileUtils; import java.io.File; import javax.inject.Inject; +import javax.inject.Named; import butterknife.BindView; import butterknife.ButterKnife; @@ -172,8 +176,4 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC public void showError(String message) { } - - public File getFile(Uri fileUri) { - return FileUtils.getFile(this, fileUri); - } } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java index f0b38af..502ffc0 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java @@ -141,13 +141,20 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S @Override public void onOpenGroupMessage(Group group) { - startActivity(GroupChatActivity.createIntent(this, group)); + Intent intent = GroupChatActivity.createIntent(this, group); + intent.putExtra("TEST_EXTRA", true); + + startActivity(intent); finishAffinity(); } @Override public void onOpenPrivateMessage(Group contact) { - startActivity(SingleChatActivity.createIntent(this, contact)); + Intent intent = SingleChatActivity.createIntent(this, contact); + + intent.putExtra("TEST_EXTRA", true); + + startActivity(intent); finishAffinity(); } @@ -170,4 +177,12 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S public void setGroups(ArrayList groups) { mContactsAdapter.setGroups(groups); } + + @Override + protected void onDestroy() { + mIsComingFromSharingActivity.set(false); + mSelectedFilePath.delete(); + + super.onDestroy(); + } } From 34fc1c29f61ce6127e9e6e91a3555bc2ed95a757 Mon Sep 17 00:00:00 2001 From: Lyndon Date: Mon, 6 Nov 2017 18:14:54 +0100 Subject: [PATCH 4/6] When a conversation was already open it affected the file sharing process. --- .../ownchat/page/chat/GroupChatActivity.java | 16 ---------------- .../ownchat/page/chat/SingleChatActivity.java | 16 ---------------- 2 files changed, 32 deletions(-) diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java index 64694b7..d21efab 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java @@ -122,22 +122,6 @@ public class GroupChatActivity extends BaseChatActivity { startActivity(ChatMembersActivity.createIntent(this, mGroup)); } -// @Override -// protected void onNewIntent(Intent intent) { -// boolean test = intent.getBooleanExtra("TEST_EXTRA", false); -// -// if(test) { -// Group group = intent.getParcelableExtra(GROUP_ARG); -// -// if(group != null) { -// finish(); -// startActivity(intent); -// } -// } -// -// super.onNewIntent(intent); -// } - @Override protected BaseChatAdapter getAdapter() { return new GroupChatAdapter(mUserIdPreference.get()); diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/SingleChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/SingleChatActivity.java index 1a21882..dccbd86 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/SingleChatActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/SingleChatActivity.java @@ -62,22 +62,6 @@ public class SingleChatActivity extends BaseChatActivity { } } -// @Override -// protected void onNewIntent(Intent intent) { -// boolean test = intent.getBooleanExtra("TEST_EXTRA", false); -// -// if(test) { -// Group group = intent.getParcelableExtra(GROUP_ARG); -// -// if(group != null) { -// finish(); -// startActivity(intent); -// } -// } -// -// super.onNewIntent(intent); -// } - @Override protected void onResume() { if (!mChatPresenter.isAttached()) { From 07737782dd10c868a1df946e9f32051d5d8d9c6c Mon Sep 17 00:00:00 2001 From: Lyndon Date: Mon, 6 Nov 2017 19:23:02 +0100 Subject: [PATCH 5/6] When a conversation was already open it affected the file sharing process. --- .../ownchat/BewoplanerApplication.java | 4 +- .../ownchat/page/chat/BaseChatActivity.java | 11 +++-- .../page/common/PermissionDeniedListener.java | 9 ++++ .../common/RuntimePermissionActivity.java | 40 ++++++++++++++++++ .../ownchat/page/sharing/SharingActivity.java | 42 ++++++++++++------- 5 files changed, 81 insertions(+), 25 deletions(-) create mode 100644 BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/common/PermissionDeniedListener.java diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/BewoplanerApplication.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/BewoplanerApplication.java index 77c60e5..ba3de8a 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/BewoplanerApplication.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/BewoplanerApplication.java @@ -42,9 +42,7 @@ public class BewoplanerApplication extends Application { String channelId = getString(R.string.default_notification_channel_id); if(manager != null && manager.getNotificationChannel(channelId) == null) { - NotificationChannel channel = new NotificationChannel(channelId, - getString(R.string.default_notification_channel_id), - NotificationManager.IMPORTANCE_DEFAULT); + NotificationChannel channel = new NotificationChannel(channelId, getString(R.string.default_notification_channel_id), NotificationManager.IMPORTANCE_HIGH); channel.setDescription(getString(R.string.default_notification_channel_id)); manager.createNotificationChannel(channel); diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java index d838737..10a340b 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java @@ -228,10 +228,12 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha mBaseChatAdapter.addMessages(messages); } - private void shareFile(int requestCode) { + private void shareFile() { mIsComingFromSharingActivity.set(false); - final Uri uri = Uri.parse(mSelectedFilePath.get()); + String path = mSelectedFilePath.get(); + + final Uri uri = Uri.parse(path); final File file = FileUtils.getFile(this, uri); String filePath = file.getPath(); @@ -294,10 +296,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha mBaseChatAdapter.setLoading(false); if(mIsComingFromSharingActivity.get()) { - requestAppPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, - R.string.permission_storage_explained, - STORAGE_REQUEST_CODE, - this::shareFile); + shareFile(); } } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/common/PermissionDeniedListener.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/common/PermissionDeniedListener.java new file mode 100644 index 0000000..36050e9 --- /dev/null +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/common/PermissionDeniedListener.java @@ -0,0 +1,9 @@ +package de.beyondsoft.ownchat.page.common; + +/** + * Created by Lyndon on 06-Nov-2017. + */ + +public interface PermissionDeniedListener { + void onPermissionDenied(int requestCode); +} diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/common/RuntimePermissionActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/common/RuntimePermissionActivity.java index fecc19f..6d140c8 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/common/RuntimePermissionActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/common/RuntimePermissionActivity.java @@ -26,6 +26,7 @@ public abstract class RuntimePermissionActivity extends AppCompatActivity { private SparseIntArray mErrorString; private PermissionGrantedListener mPermissionGrantedListener; + private PermissionDeniedListener mPermissionDeniedListener; @Override public void onCreate(@Nullable Bundle savedInstanceState) { @@ -69,6 +70,45 @@ public abstract class RuntimePermissionActivity extends AppCompatActivity { } } + public void requestAppPermissions(final String[] requestedPermissions, + final int stringId, + final int requestCode, + @NonNull PermissionGrantedListener permissionGrantedListener, + @NonNull PermissionDeniedListener permissionDeniedListener) { + mPermissionGrantedListener = permissionGrantedListener; + mPermissionDeniedListener = permissionDeniedListener; + + mErrorString.put(requestCode, stringId); + + int permissionCheck = PackageManager.PERMISSION_GRANTED; + boolean shouldShowRequestPermissionRationale = false; + + for (String permission : requestedPermissions) { + permissionCheck = permissionCheck + ContextCompat.checkSelfPermission(this, permission); + shouldShowRequestPermissionRationale = shouldShowRequestPermissionRationale || ActivityCompat.shouldShowRequestPermissionRationale(this, permission); + } + +// if(permissionCheck == PackageManager.PERMISSION_DENIED) { +// mPermissionDeniedListener.onPermissionDenied(requestCode); +// return; +// } + + if (permissionCheck != PackageManager.PERMISSION_GRANTED) { + if (shouldShowRequestPermissionRationale) { + Dialog dialog = DialogHandler.createNoTitleDialog(this, + stringId, + true, + R.string.permission_grant, + (dialogInterface, i) -> requestPermissionCorrectly(requestedPermissions, requestCode)); + dialog.show(); + } else { + requestPermissionCorrectly(requestedPermissions, requestCode); + } + } else { + mPermissionGrantedListener.onPermissionsGranted(requestCode); + } + } + protected void requestPermissionCorrectly(String[] requestedPermissions, int requestCode) { ActivityCompat.requestPermissions(this, requestedPermissions, requestCode); } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java index 502ffc0..394a1f3 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java @@ -1,5 +1,6 @@ package de.beyondsoft.ownchat.page.sharing; +import android.Manifest; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -30,7 +31,10 @@ 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.common.RuntimePermissionActivity; +import de.beyondsoft.ownchat.page.contacts.ContactsFragment; import de.beyondsoft.ownchat.page.login.LoginActivity; +import de.beyondsoft.ownchat.page.main.MainActivity; import de.beyondsoft.ownchat.utils.ui.EmptyLayout; import de.beyondsoft.ownchat.utils.ui.HorizontalDividerItemDecoration; @@ -38,7 +42,7 @@ import de.beyondsoft.ownchat.utils.ui.HorizontalDividerItemDecoration; * Created by Lyndon on 03-Nov-2017. */ -public class SharingActivity extends AppCompatActivity implements SharingView, SharingContactsAdapter.OnOpenClickListener { +public class SharingActivity extends RuntimePermissionActivity implements SharingView, SharingContactsAdapter.OnOpenClickListener { @Inject SharingPresenter mSharingPresenter; @@ -73,9 +77,10 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S private SharingView.Callback mCallback; private SharingContactsAdapter mContactsAdapter; private Snackbar mSnackbar; + private Intent mIntent; @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { + public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sharing); @@ -85,20 +90,33 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S mSharingPresenter.attachView(this); + setToolBar(); + + mIntent = getIntent(); + + requestAppPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, + R.string.permission_storage_explained, + 777, + this::shareFile); + } + + private void returnToContactList(int requestCode) { + startActivity(new Intent(this, MainActivity.class)); + finishAffinity(); + } + + private void shareFile(int requestCode) { mContactsRecyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(this).colorResId(R.color.colorFill).build()); mContactsRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mContactsAdapter = new SharingContactsAdapter(this); mContactsRecyclerView.setAdapter(mContactsAdapter); - setToolBar(); - - Intent intent = getIntent(); - String action = intent.getAction(); - String type = intent.getType(); + String action = mIntent.getAction(); + String type = mIntent.getType(); if (Intent.ACTION_SEND.equals(action) && type != null) { - handleSendFile(intent); + handleSendFile(mIntent); } } @@ -177,12 +195,4 @@ public class SharingActivity extends AppCompatActivity implements SharingView, S public void setGroups(ArrayList groups) { mContactsAdapter.setGroups(groups); } - - @Override - protected void onDestroy() { - mIsComingFromSharingActivity.set(false); - mSelectedFilePath.delete(); - - super.onDestroy(); - } } From 7cd5ff902b56e6bc8889dbdcbb542699b845fb12 Mon Sep 17 00:00:00 2001 From: Lyndon Date: Mon, 6 Nov 2017 22:17:45 +0100 Subject: [PATCH 6/6] When a conversation was already open it affected the file sharing process. --- .../ownchat/page/sharing/SharingActivity.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java index 394a1f3..e74f58e 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java @@ -13,6 +13,7 @@ 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 java.util.ArrayList; @@ -22,6 +23,7 @@ import javax.inject.Named; import butterknife.BindView; import butterknife.ButterKnife; +import butterknife.OnClick; import de.beyondsoft.ownchat.R; import de.beyondsoft.ownchat.data.AppPrefsConstants; import de.beyondsoft.ownchat.data.prefs.BooleanPreference; @@ -50,10 +52,6 @@ public class SharingActivity extends RuntimePermissionActivity implements Sharin @Named(AppPrefsConstants.LOGIN_TOKEN) StringPreference mLoginTokenPreference; - @Inject - @Named(AppPrefsConstants.USER_ID) - LongPreference mUserIdPreference; - @BindView(R.id.sharing_contacts_recycler_view) RecyclerView mContactsRecyclerView; @@ -101,6 +99,8 @@ public class SharingActivity extends RuntimePermissionActivity implements Sharin } private void returnToContactList(int requestCode) { + mSelectedFilePath.delete(); + mIsComingFromSharingActivity.set(false); startActivity(new Intent(this, MainActivity.class)); finishAffinity(); } @@ -195,4 +195,9 @@ public class SharingActivity extends RuntimePermissionActivity implements Sharin public void setGroups(ArrayList groups) { mContactsAdapter.setGroups(groups); } + + @OnClick(R.id.chat_toolbar_back_arrow) + public void onBackArrowClick(View view) { + returnToContactList(0); + } }