mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-11-22 22:57:29 +00:00
post likes viewer
This commit is contained in:
parent
49f41f4654
commit
ae27d5d57a
45
app/src/main/java/awais/instagrabber/adapters/LikesAdapter.java
Executable file
45
app/src/main/java/awais/instagrabber/adapters/LikesAdapter.java
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
package awais.instagrabber.adapters;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import awais.instagrabber.adapters.viewholder.FollowsViewHolder;
|
||||||
|
import awais.instagrabber.databinding.ItemFollowBinding;
|
||||||
|
import awais.instagrabber.models.ProfileModel;
|
||||||
|
|
||||||
|
public final class LikesAdapter extends RecyclerView.Adapter<FollowsViewHolder> {
|
||||||
|
private final List<ProfileModel> profileModels;
|
||||||
|
private final View.OnClickListener onClickListener;
|
||||||
|
|
||||||
|
public LikesAdapter(final List<ProfileModel> profileModels,
|
||||||
|
final View.OnClickListener onClickListener) {
|
||||||
|
this.profileModels = profileModels;
|
||||||
|
this.onClickListener = onClickListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public FollowsViewHolder onCreateViewHolder(@NonNull final ViewGroup parent, final int viewType) {
|
||||||
|
final LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
|
||||||
|
final ItemFollowBinding binding = ItemFollowBinding.inflate(layoutInflater, parent, false);
|
||||||
|
return new FollowsViewHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull final FollowsViewHolder holder, final int position) {
|
||||||
|
final ProfileModel model = profileModels.get(position);
|
||||||
|
holder.bind(model, null, onClickListener);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemCount() {
|
||||||
|
return profileModels.size();
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package awais.instagrabber.adapters.viewholder;
|
package awais.instagrabber.adapters.viewholder;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
@ -22,6 +23,7 @@ public final class FollowsViewHolder extends RecyclerView.ViewHolder {
|
|||||||
public void bind(final ProfileModel model,
|
public void bind(final ProfileModel model,
|
||||||
final List<Long> admins,
|
final List<Long> admins,
|
||||||
final View.OnClickListener onClickListener) {
|
final View.OnClickListener onClickListener) {
|
||||||
|
Log.d("austin_debug", "bind "+model);
|
||||||
if (model == null) return;
|
if (model == null) return;
|
||||||
itemView.setTag(model);
|
itemView.setTag(model);
|
||||||
itemView.setOnClickListener(onClickListener);
|
itemView.setOnClickListener(onClickListener);
|
||||||
|
@ -0,0 +1,118 @@
|
|||||||
|
package awais.instagrabber.fragments;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
import android.os.AsyncTask;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.appcompat.widget.LinearLayoutCompat;
|
||||||
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
|
import androidx.navigation.NavDirections;
|
||||||
|
import androidx.navigation.fragment.NavHostFragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||||
|
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import awais.instagrabber.BuildConfig;
|
||||||
|
import awais.instagrabber.R;
|
||||||
|
import awais.instagrabber.adapters.LikesAdapter;
|
||||||
|
import awais.instagrabber.databinding.FragmentLikesBinding;
|
||||||
|
import awais.instagrabber.models.ProfileModel;
|
||||||
|
import awais.instagrabber.utils.Constants;
|
||||||
|
import awais.instagrabber.utils.TextUtils;
|
||||||
|
import awais.instagrabber.utils.Utils;
|
||||||
|
import awais.instagrabber.webservices.MediaService;
|
||||||
|
import awais.instagrabber.webservices.ServiceCallback;
|
||||||
|
|
||||||
|
public final class LikesViewerFragment extends BottomSheetDialogFragment implements SwipeRefreshLayout.OnRefreshListener {
|
||||||
|
private static final String TAG = "LikesViewerFragment";
|
||||||
|
|
||||||
|
private final String cookie = Utils.settingsHelper.getString(Constants.COOKIE);
|
||||||
|
|
||||||
|
private LikesAdapter likesAdapter;
|
||||||
|
private FragmentLikesBinding binding;
|
||||||
|
private LinearLayoutManager layoutManager;
|
||||||
|
private Resources resources;
|
||||||
|
private AppCompatActivity fragmentActivity;
|
||||||
|
private LinearLayoutCompat root;
|
||||||
|
private MediaService mediaService;
|
||||||
|
private String postId;
|
||||||
|
|
||||||
|
private final ServiceCallback<List<ProfileModel>> cb = new ServiceCallback<List<ProfileModel>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(final List<ProfileModel> result) {
|
||||||
|
final LikesAdapter likesAdapter = new LikesAdapter(result, v -> {
|
||||||
|
final Object tag = v.getTag();
|
||||||
|
if (tag instanceof ProfileModel) {
|
||||||
|
ProfileModel model = (ProfileModel) tag;
|
||||||
|
final Bundle bundle = new Bundle();
|
||||||
|
bundle.putString("username", "@" + model.getUsername());
|
||||||
|
NavHostFragment.findNavController(LikesViewerFragment.this).navigate(R.id.action_global_profileFragment, bundle);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
binding.rvLikes.setAdapter(likesAdapter);
|
||||||
|
binding.rvLikes.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||||
|
binding.swipeRefreshLayout.setRefreshing(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(final Throwable t) {
|
||||||
|
Log.e(TAG, "Error", t);
|
||||||
|
try {
|
||||||
|
final Context context = getContext();
|
||||||
|
Toast.makeText(context, t.getMessage(), Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
catch (Exception e) {}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
fragmentActivity = (AppCompatActivity) getActivity();
|
||||||
|
mediaService = MediaService.getInstance();
|
||||||
|
// setHasOptionsMenu(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable final Bundle savedInstanceState) {
|
||||||
|
binding = FragmentLikesBinding.inflate(getLayoutInflater());
|
||||||
|
binding.swipeRefreshLayout.setEnabled(false);
|
||||||
|
binding.swipeRefreshLayout.setNestedScrollingEnabled(false);
|
||||||
|
root = binding.getRoot();
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewCreated(@NonNull final View view, @Nullable final Bundle savedInstanceState) {
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRefresh() {
|
||||||
|
mediaService.fetchLikes(postId, cb);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
if (getArguments() == null) return;
|
||||||
|
final LikesViewerFragmentArgs fragmentArgs = LikesViewerFragmentArgs.fromBundle(getArguments());
|
||||||
|
postId = fragmentArgs.getPostId();
|
||||||
|
binding.swipeRefreshLayout.setOnRefreshListener(this);
|
||||||
|
binding.swipeRefreshLayout.setRefreshing(true);
|
||||||
|
resources = getResources();
|
||||||
|
onRefresh();
|
||||||
|
}
|
||||||
|
}
|
@ -535,7 +535,12 @@ public class PostViewV2Fragment extends SharedElementTransitionDialogFragment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
binding.like.setOnLongClickListener(v -> {
|
binding.like.setOnLongClickListener(v -> {
|
||||||
Utils.displayToastAboveView(context, v, getString(R.string.like_without_count));
|
final NavController navController = getNavController();
|
||||||
|
if (navController != null) {
|
||||||
|
final Bundle bundle = new Bundle();
|
||||||
|
bundle.putString("postId", feedModel.getPostId());
|
||||||
|
navController.navigate(R.id.action_global_likesViewerFragment, bundle);
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,15 @@ import java.util.Map;
|
|||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.FieldMap;
|
import retrofit2.http.FieldMap;
|
||||||
import retrofit2.http.FormUrlEncoded;
|
import retrofit2.http.FormUrlEncoded;
|
||||||
|
import retrofit2.http.GET;
|
||||||
import retrofit2.http.Header;
|
import retrofit2.http.Header;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
import retrofit2.http.Path;
|
import retrofit2.http.Path;
|
||||||
|
|
||||||
public interface MediaRepository {
|
public interface MediaRepository {
|
||||||
|
@GET("/api/v1/media/{mediaId}/likers/")
|
||||||
|
Call<String> fetchLikes(@Header("User-Agent") final String userAgent,
|
||||||
|
@Path("mediaId") final String mediaId);
|
||||||
|
|
||||||
@FormUrlEncoded
|
@FormUrlEncoded
|
||||||
@POST("/api/v1/media/{mediaId}/{action}/")
|
@POST("/api/v1/media/{mediaId}/{action}/")
|
||||||
|
@ -5,15 +5,18 @@ import android.util.Log;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import awais.instagrabber.models.ProfileModel;
|
||||||
import awais.instagrabber.repositories.MediaRepository;
|
import awais.instagrabber.repositories.MediaRepository;
|
||||||
import awais.instagrabber.utils.Constants;
|
import awais.instagrabber.utils.Constants;
|
||||||
import awais.instagrabber.utils.Utils;
|
import awais.instagrabber.utils.Utils;
|
||||||
@ -277,4 +280,48 @@ public class MediaService extends BaseService {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void fetchLikes(final String mediaId,
|
||||||
|
@NonNull final ServiceCallback<List<ProfileModel>> callback) {
|
||||||
|
final Call<String> likesRequest = repository.fetchLikes(Constants.I_USER_AGENT, mediaId);
|
||||||
|
likesRequest.enqueue(new Callback<String>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NonNull final Call<String> call, @NonNull final Response<String> response) {
|
||||||
|
final String body = response.body();
|
||||||
|
if (body == null) {
|
||||||
|
Log.e(TAG, "Error occurred while fetching likes of "+mediaId);
|
||||||
|
callback.onSuccess(null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
final JSONObject data = new JSONObject(body);
|
||||||
|
final JSONArray users = data.getJSONArray("users");
|
||||||
|
final int usersLen = users.length();
|
||||||
|
final List<ProfileModel> userModels = new ArrayList<>();
|
||||||
|
for (int j = 0; j < usersLen; ++j) {
|
||||||
|
final JSONObject userObject = users.getJSONObject(j);
|
||||||
|
userModels.add(new ProfileModel(userObject.optBoolean("is_private"),
|
||||||
|
false,
|
||||||
|
userObject.optBoolean("is_verified"),
|
||||||
|
String.valueOf(userObject.get("pk")),
|
||||||
|
userObject.getString("username"),
|
||||||
|
userObject.optString("full_name"),
|
||||||
|
null, null,
|
||||||
|
userObject.getString("profile_pic_url"),
|
||||||
|
null, 0, 0, 0, false, false, false, false, false));
|
||||||
|
}
|
||||||
|
callback.onSuccess(userModels);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
// Log.e(TAG, "Error parsing body", e);
|
||||||
|
callback.onFailure(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NonNull final Call<String> call, @NonNull final Throwable t) {
|
||||||
|
Log.e(TAG, "Error getting likes", t);
|
||||||
|
callback.onFailure(t);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
21
app/src/main/res/layout/fragment_likes.xml
Normal file
21
app/src/main/res/layout/fragment_likes.xml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
|
||||||
|
android:id="@+id/swipeRefreshLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rvLikes"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:clipToPadding="false" />
|
||||||
|
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
@ -63,6 +63,17 @@
|
|||||||
app:nullable="false" />
|
app:nullable="false" />
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
<include app:graph="@navigation/likes_nav_graph" />
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_likesViewerFragment"
|
||||||
|
app:destination="@id/likes_nav_graph">
|
||||||
|
<argument
|
||||||
|
android:name="postId"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="false" />
|
||||||
|
</action>
|
||||||
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/directMessagesInboxFragment"
|
android:id="@+id/directMessagesInboxFragment"
|
||||||
android:name="awais.instagrabber.fragments.directmessages.DirectMessageInboxFragment"
|
android:name="awais.instagrabber.fragments.directmessages.DirectMessageInboxFragment"
|
||||||
|
@ -57,6 +57,17 @@
|
|||||||
app:nullable="false" />
|
app:nullable="false" />
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
<include app:graph="@navigation/likes_nav_graph" />
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_likesViewerFragment"
|
||||||
|
app:destination="@id/likes_nav_graph">
|
||||||
|
<argument
|
||||||
|
android:name="postId"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="false" />
|
||||||
|
</action>
|
||||||
|
|
||||||
<include app:graph="@navigation/notification_viewer_nav_graph" />
|
<include app:graph="@navigation/notification_viewer_nav_graph" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
|
@ -57,6 +57,17 @@
|
|||||||
app:nullable="false" />
|
app:nullable="false" />
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
<include app:graph="@navigation/likes_nav_graph" />
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_likesViewerFragment"
|
||||||
|
app:destination="@id/likes_nav_graph">
|
||||||
|
<argument
|
||||||
|
android:name="postId"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="false" />
|
||||||
|
</action>
|
||||||
|
|
||||||
<include app:graph="@navigation/notification_viewer_nav_graph" />
|
<include app:graph="@navigation/notification_viewer_nav_graph" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
|
@ -24,6 +24,17 @@
|
|||||||
app:nullable="false" />
|
app:nullable="false" />
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
<include app:graph="@navigation/likes_nav_graph" />
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_likesViewerFragment"
|
||||||
|
app:destination="@id/likes_nav_graph">
|
||||||
|
<argument
|
||||||
|
android:name="postId"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="false" />
|
||||||
|
</action>
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_profileFragment"
|
android:id="@+id/action_global_profileFragment"
|
||||||
app:destination="@id/profile_nav_graph">
|
app:destination="@id/profile_nav_graph">
|
||||||
|
40
app/src/main/res/navigation/likes_nav_graph.xml
Normal file
40
app/src/main/res/navigation/likes_nav_graph.xml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/likes_nav_graph"
|
||||||
|
app:startDestination="@id/likesViewerFragment">
|
||||||
|
|
||||||
|
<!--<include app:graph="@navigation/hashtag_nav_graph" />-->
|
||||||
|
|
||||||
|
<!--<include app:graph="@navigation/profile_nav_graph" />-->
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_profileFragment"
|
||||||
|
app:destination="@id/profile_nav_graph">
|
||||||
|
<argument
|
||||||
|
android:name="username"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="true" />
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<dialog
|
||||||
|
android:id="@+id/likesViewerFragment"
|
||||||
|
android:name="awais.instagrabber.fragments.LikesViewerFragment"
|
||||||
|
android:label="Comments"
|
||||||
|
tools:layout="@layout/fragment_likes">
|
||||||
|
<argument
|
||||||
|
android:name="postId"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="false" />
|
||||||
|
</dialog>
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_likesViewerFragment"
|
||||||
|
app:destination="@id/likesViewerFragment">
|
||||||
|
<argument
|
||||||
|
android:name="postId"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="false" />
|
||||||
|
</action>
|
||||||
|
</navigation>
|
@ -24,6 +24,17 @@
|
|||||||
app:nullable="false" />
|
app:nullable="false" />
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
<include app:graph="@navigation/likes_nav_graph" />
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_likesViewerFragment"
|
||||||
|
app:destination="@id/likes_nav_graph">
|
||||||
|
<argument
|
||||||
|
android:name="postId"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="false" />
|
||||||
|
</action>
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_profileFragment"
|
android:id="@+id/action_global_profileFragment"
|
||||||
app:destination="@id/profile_nav_graph">
|
app:destination="@id/profile_nav_graph">
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
<include app:graph="@navigation/hashtag_nav_graph" />
|
<include app:graph="@navigation/hashtag_nav_graph" />
|
||||||
<include app:graph="@navigation/location_nav_graph" />
|
<include app:graph="@navigation/location_nav_graph" />
|
||||||
<include app:graph="@navigation/comments_nav_graph" />
|
<include app:graph="@navigation/comments_nav_graph" />
|
||||||
|
<include app:graph="@navigation/likes_nav_graph" />
|
||||||
<include app:graph="@navigation/notification_viewer_nav_graph" />
|
<include app:graph="@navigation/notification_viewer_nav_graph" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
app:destination="@id/notificationsViewer" />
|
app:destination="@id/notificationsViewer" />
|
||||||
|
|
||||||
<include app:graph="@navigation/comments_nav_graph" />
|
<include app:graph="@navigation/comments_nav_graph" />
|
||||||
|
<include app:graph="@navigation/likes_nav_graph" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_global_commentsViewerFragment"
|
android:id="@+id/action_global_commentsViewerFragment"
|
||||||
|
@ -24,6 +24,18 @@
|
|||||||
app:nullable="false" />
|
app:nullable="false" />
|
||||||
</action>
|
</action>
|
||||||
|
|
||||||
|
<include app:graph="@navigation/likes_nav_graph" />
|
||||||
|
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_global_likesViewerFragment"
|
||||||
|
app:destination="@id/likes_nav_graph">
|
||||||
|
<argument
|
||||||
|
android:name="postId"
|
||||||
|
app:argType="string"
|
||||||
|
app:nullable="false" />
|
||||||
|
</action>
|
||||||
|
|
||||||
|
|
||||||
<include app:graph="@navigation/hashtag_nav_graph" />
|
<include app:graph="@navigation/hashtag_nav_graph" />
|
||||||
|
|
||||||
<action
|
<action
|
||||||
|
Loading…
Reference in New Issue
Block a user