Skip to content

Commit 3032a38

Browse files
share profile (unfinished)
1 parent 38cc804 commit 3032a38

File tree

2 files changed

+42
-28
lines changed

2 files changed

+42
-28
lines changed

app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import androidx.lifecycle.MutableLiveData;
3636
import androidx.lifecycle.Observer;
3737
import androidx.lifecycle.ViewModelProvider;
38+
import androidx.navigation.NavBackStackEntry;
3839
import androidx.navigation.NavController;
3940
import androidx.navigation.NavDirections;
4041
import androidx.navigation.fragment.NavHostFragment;
@@ -53,6 +54,7 @@
5354
import java.util.Set;
5455

5556
import awais.instagrabber.R;
57+
import awais.instagrabber.UserSearchNavGraphDirections;
5658
import awais.instagrabber.activities.MainActivity;
5759
import awais.instagrabber.adapters.FeedAdapterV2;
5860
import awais.instagrabber.adapters.HighlightsAdapter;
@@ -67,6 +69,8 @@
6769
import awais.instagrabber.dialogs.PostsLayoutPreferencesDialogFragment;
6870
import awais.instagrabber.dialogs.ProfilePicDialogFragment;
6971
import awais.instagrabber.fragments.PostViewV2Fragment;
72+
import awais.instagrabber.fragments.UserSearchFragment;
73+
import awais.instagrabber.fragments.UserSearchFragmentDirections;
7074
import awais.instagrabber.managers.DirectMessagesManager;
7175
import awais.instagrabber.managers.InboxManager;
7276
import awais.instagrabber.models.HighlightModel;
@@ -126,8 +130,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
126130
private HighlightsViewModel highlightsViewModel;
127131
private MenuItem blockMenuItem, restrictMenuItem, chainingMenuItem;
128132
private MenuItem muteStoriesMenuItem, mutePostsMenuItem, removeFollowerMenuItem;
129-
private MenuItem shareLinkMenuItem;
130-
// private MenuItem shareDmMenuItem;
133+
private MenuItem shareLinkMenuItem, shareDmMenuItem;
131134
private boolean accountIsUpdated = false;
132135
private boolean postsSetupDone = false;
133136
private Set<Media> selectedFeedModels;
@@ -141,7 +144,6 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe
141144
private ProfileFragmentViewModel viewModel;
142145
private String csrfToken;
143146
private String deviceUuid;
144-
private MutableLiveData<Object> backStackSavedStateCollectionLiveData;
145147
private MutableLiveData<Object> backStackSavedStateResultLiveData;
146148

147149
private final ServiceCallback<FriendshipChangeResponse> changeCb = new ServiceCallback<FriendshipChangeResponse>() {
@@ -334,7 +336,6 @@ public void onSelectionEnd() {
334336
}
335337
}
336338
// clear result
337-
backStackSavedStateCollectionLiveData.postValue(null);
338339
backStackSavedStateResultLiveData.postValue(null);
339340
};
340341

@@ -466,10 +467,10 @@ public void onCreateOptionsMenu(@NonNull final Menu menu, @NonNull final MenuInf
466467
if (shareLinkMenuItem != null) {
467468
shareLinkMenuItem.setVisible(profileModel != null && !TextUtils.isEmpty(profileModel.getUsername()));
468469
}
469-
// shareDmMenuItem = menu.findItem(R.id.share_dm);
470-
// if (shareDmMenuItem != null) {
471-
// shareDmMenuItem.setVisible(profileModel != null && profileModel.getPk() != 0L);
472-
// }
470+
shareDmMenuItem = menu.findItem(R.id.share_dm);
471+
if (shareDmMenuItem != null) {
472+
shareDmMenuItem.setVisible(profileModel != null && profileModel.getPk() != 0L);
473+
}
473474
}
474475

475476
@Override
@@ -582,21 +583,20 @@ public boolean onOptionsItemSelected(@NonNull final MenuItem item) {
582583
startActivity(Intent.createChooser(sharingIntent, null));
583584
return true;
584585
} else if (itemId == R.id.share_dm) {
585-
// final UserSearchNavGraphDirections.ActionGlobalUserSearch actionGlobalUserSearch = UserSearchFragmentDirections
586-
// .actionGlobalUserSearch()
587-
// .setTitle(getString(R.string.share))
588-
// .setActionLabel(getString(R.string.send))
589-
// .setShowGroups(true)
590-
// .setMultiple(true)
591-
// .setSearchMode(UserSearchFragment.SearchMode.RAVEN);
592-
// final NavController navController = NavHostFragment.findNavController(ProfileFragment.this);
593-
// try {
594-
// navController.navigate(actionGlobalUserSearch);
595-
// } catch (Exception e) {
596-
// Log.e(TAG, "setupShare: ", e);
597-
// }
598-
// return true;
599-
return false;
586+
final UserSearchNavGraphDirections.ActionGlobalUserSearch actionGlobalUserSearch = UserSearchFragmentDirections
587+
.actionGlobalUserSearch()
588+
.setTitle(getString(R.string.share))
589+
.setActionLabel(getString(R.string.send))
590+
.setShowGroups(true)
591+
.setMultiple(true)
592+
.setSearchMode(UserSearchFragment.SearchMode.RAVEN);
593+
final NavController navController = NavHostFragment.findNavController(ProfileFragment.this);
594+
try {
595+
navController.navigate(actionGlobalUserSearch);
596+
} catch (Exception e) {
597+
Log.e(TAG, "setupShare: ", e);
598+
}
599+
return true;
600600
}
601601
return super.onOptionsItemSelected(item);
602602
}
@@ -608,6 +608,17 @@ public void onRefresh() {
608608
fetchProfileDetails();
609609
}
610610

611+
@Override
612+
public void onResume() {
613+
super.onResume();
614+
final NavController navController = NavHostFragment.findNavController(this);
615+
final NavBackStackEntry backStackEntry = navController.getCurrentBackStackEntry();
616+
if (backStackEntry != null) {
617+
backStackSavedStateResultLiveData = backStackEntry.getSavedStateHandle().getLiveData("result");
618+
backStackSavedStateResultLiveData.observe(getViewLifecycleOwner(), backStackSavedStateObserver);
619+
}
620+
}
621+
611622
@Override
612623
public void onDestroy() {
613624
super.onDestroy();
@@ -1061,9 +1072,9 @@ private void setupButtons(final long profileId) {
10611072
if (shareLinkMenuItem != null) {
10621073
shareLinkMenuItem.setVisible(!TextUtils.isEmpty(profileModel.getUsername()));
10631074
}
1064-
// if (shareDmMenuItem != null) {
1065-
// shareDmMenuItem.setVisible(profileModel.getPk() != 0L);
1066-
// }
1075+
if (shareDmMenuItem != null) {
1076+
shareDmMenuItem.setVisible(profileModel.getPk() != 0L);
1077+
}
10671078
}
10681079
}
10691080

app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import awais.instagrabber.managers.DirectMessagesManager
1111
import awais.instagrabber.models.HighlightModel
1212
import awais.instagrabber.models.Resource
1313
import awais.instagrabber.models.StoryModel
14+
import awais.instagrabber.models.enums.BroadcastItemType
1415
import awais.instagrabber.models.enums.FavoriteType
1516
import awais.instagrabber.repositories.requests.StoryViewerOptions
1617
import awais.instagrabber.repositories.responses.User
@@ -212,14 +213,16 @@ class ProfileFragmentViewModel(
212213
if (messageManager == null) {
213214
messageManager = DirectMessagesManager
214215
}
215-
// messageManager?.sendMedia(result, mediaId, BroadcastItemType.PROFILE, viewModelScope)
216+
val mediaId = profile.value?.data?.pk ?: return
217+
messageManager?.sendMedia(result, mediaId.toString(10), BroadcastItemType.PROFILE, viewModelScope)
216218
}
217219

218220
fun shareDm(recipients: Set<RankedRecipient>) {
219221
if (messageManager == null) {
220222
messageManager = DirectMessagesManager
221223
}
222-
// messageManager?.sendMedia(recipients, mediaId, BroadcastItemType.PROFILE, viewModelScope)
224+
val mediaId = profile.value?.data?.pk ?: return
225+
messageManager?.sendMedia(recipients, mediaId.toString(10), BroadcastItemType.PROFILE, viewModelScope)
223226
}
224227
}
225228

0 commit comments

Comments
 (0)