Open post from dm thread and handle ig links properly from within the app

This commit is contained in:
Ammar Githam 2020-09-07 22:44:56 +09:00
parent 0d7b5199ea
commit ccfaa1c397
3 changed files with 34 additions and 4 deletions

View File

@ -157,6 +157,12 @@ public class MainActivity extends BaseLanguageActivity {
return false;
}
@Override
protected void onNewIntent(final Intent intent) {
super.onNewIntent(intent);
handleIntent(intent);
}
private void setupSuggestions() {
suggestionsFetchHandler = new Handler();
suggestionAdapter = new SuggestionsAdapter(this, (type, query) -> {

View File

@ -29,6 +29,7 @@ import androidx.fragment.app.Fragment;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.NavController;
import androidx.navigation.NavDirections;
import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.LinearLayoutManager;
@ -223,11 +224,18 @@ public class DirectMessageThreadFragment extends Fragment {
case CLIP:
final long postId = directItemModel.getMediaModel().getPk();
final boolean isId = true;
// startActivity(new Intent(requireContext(), PostViewer.class)
// .putExtra(Constants.EXTRAS_POST, new PostModel(postId, false)));
final NavController navController = NavHostFragment.findNavController(this);
final NavDirections action = DirectMessageThreadFragmentDirections
.actionGlobalPostViewFragment(
0,
new String[]{String.valueOf(postId)},
isId
);
navController.navigate(action);
break;
case LINK:
Intent linkIntent = new Intent(Intent.ACTION_VIEW);
linkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP);
linkIntent.setData(Uri.parse(directItemModel.getLinkModel().getLinkContext().getLinkUrl()));
startActivity(linkIntent);
break;
@ -545,8 +553,8 @@ public class DirectMessageThreadFragment extends Fragment {
wr.close();
urlConnection.connect();
if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
if (action == "delete") hasDeletedSomething = true;
else if (action == "seen") DirectMessageInboxFragment.refreshPlease = true;
if (action.equals("delete")) hasDeletedSomething = true;
else if (action.equals("seen")) DirectMessageInboxFragment.refreshPlease = true;
}
urlConnection.disconnect();
} catch (Throwable ex) {

View File

@ -38,6 +38,22 @@
app:nullable="false" />
</action>
<include app:graph="@navigation/post_view_nav_graph" />
<action
android:id="@+id/action_global_postViewFragment"
app:destination="@id/post_view_nav_graph">
<argument
android:name="index"
app:argType="integer" />
<argument
android:name="idOrCodeArray"
app:argType="string[]" />
<argument
android:name="isId"
app:argType="boolean" />
</action>
<fragment
android:id="@+id/directMessagesInboxFragment"
android:name="awais.instagrabber.fragments.directmessages.DirectMessageInboxFragment"