From 84ff0a23e1fc7b16a4cebc9762fe2ff87788b69a Mon Sep 17 00:00:00 2001 From: Ammar Githam Date: Tue, 8 Sep 2020 21:27:04 +0900 Subject: [PATCH] Fix opening profile from dm settings view, removed various warnings --- .../DirectMessageSettingsFragment.java | 74 +++++++++---------- 1 file changed, 34 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageSettingsFragment.java b/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageSettingsFragment.java index 91e7f030..f065cb06 100644 --- a/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageSettingsFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/directmessages/DirectMessageSettingsFragment.java @@ -20,7 +20,6 @@ import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.AppCompatButton; import androidx.appcompat.widget.AppCompatImageView; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; import androidx.navigation.NavDirections; import androidx.navigation.fragment.NavHostFragment; import androidx.recyclerview.widget.LinearLayoutManager; @@ -39,7 +38,6 @@ import awais.instagrabber.R; import awais.instagrabber.adapters.DirectMessageMembersAdapter; import awais.instagrabber.asyncs.direct_messages.DirectMessageInboxThreadFetcher; import awais.instagrabber.databinding.FragmentDirectMessagesSettingsBinding; -import awais.instagrabber.fragments.PostViewFragmentDirections; import awais.instagrabber.interfaces.FetchListener; import awais.instagrabber.models.ProfileModel; import awais.instagrabber.models.direct_messages.InboxThreadModel; @@ -49,22 +47,17 @@ import awais.instagrabber.utils.Utils; public class DirectMessageSettingsFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener { private static final String TAG = "DirectMsgsSettingsFrag"; - private FragmentActivity fragmentActivity; private RecyclerView userList; private RecyclerView leftUserList; private EditText titleText; private View leftTitle; private AppCompatImageView titleSend; - private AppCompatButton btnLeave; - private LinearLayoutManager layoutManager; - private LinearLayoutManager layoutManagerDos; - private String threadId, threadTitle; + private String threadId; + private String threadTitle; private final String cookie = Utils.settingsHelper.getString(Constants.COOKIE); - private boolean amAdmin; private AsyncTask currentlyRunning; - private DirectMessageMembersAdapter memberAdapter; - private DirectMessageMembersAdapter leftAdapter; - private View.OnClickListener clickListener, basicClickListener; + private View.OnClickListener clickListener; + private View.OnClickListener basicClickListener; private final FetchListener fetchListener = new FetchListener() { @Override @@ -75,15 +68,16 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr final List adminList = Arrays.asList(threadModel.getAdmins()); final String userIdFromCookie = Utils.getUserIdFromCookie(cookie); if (userIdFromCookie == null) return; - amAdmin = adminList.contains(Long.parseLong(userIdFromCookie)); - memberAdapter = new DirectMessageMembersAdapter(threadModel.getUsers(), - adminList, - requireContext(), - amAdmin ? clickListener : basicClickListener); + final boolean amAdmin = adminList.contains(Long.parseLong(userIdFromCookie)); + final DirectMessageMembersAdapter memberAdapter = new DirectMessageMembersAdapter(threadModel.getUsers(), + adminList, + requireContext(), + amAdmin ? clickListener : basicClickListener); userList.setAdapter(memberAdapter); if (threadModel.getLeftUsers() != null && threadModel.getLeftUsers().length > 0) { leftTitle.setVisibility(View.VISIBLE); - leftAdapter = new DirectMessageMembersAdapter(threadModel.getLeftUsers(), null, requireContext(), basicClickListener); + final DirectMessageMembersAdapter leftAdapter = new DirectMessageMembersAdapter(threadModel.getLeftUsers(), null, requireContext(), + basicClickListener); leftUserList.setAdapter(leftAdapter); } } @@ -92,14 +86,12 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr @Override public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); - fragmentActivity = requireActivity(); basicClickListener = v -> { final Object tag = v.getTag(); if (tag instanceof ProfileModel) { ProfileModel model = (ProfileModel) tag; - /*final NavDirections action = PostViewFragmentDirections - .actionGlobalProfileFragment("@" + model.getUsername()); - NavHostFragment.findNavController(this).navigate(action);*/ + final NavDirections action = DirectMessageThreadFragmentDirections.actionGlobalProfileFragment("@" + model.getUsername()); + NavHostFragment.findNavController(this).navigate(action); } }; @@ -113,11 +105,10 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr }); final DialogInterface.OnClickListener clickListener = (d, w) -> { if (w == 0) { - /*final NavDirections action = PostViewFragmentDirections - .actionGlobalProfileFragment("@" + model.getUsername()); - NavHostFragment.findNavController(this).navigate(action);*/ + final NavDirections action = DirectMessageThreadFragmentDirections.actionGlobalProfileFragment("@" + model.getUsername()); + NavHostFragment.findNavController(this).navigate(action); } else if (w == 1) { - new ChangeSettings().execute("remove_users", model.getId()); + new ChangeSettings(titleText.getText().toString()).execute("remove_users", model.getId()); onRefresh(); } }; @@ -134,13 +125,13 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr final Bundle savedInstanceState) { final FragmentDirectMessagesSettingsBinding binding = FragmentDirectMessagesSettingsBinding.inflate(inflater, container, false); final LinearLayout root = binding.getRoot(); - layoutManager = new LinearLayoutManager(requireContext()) { + final LinearLayoutManager layoutManager = new LinearLayoutManager(requireContext()) { @Override public boolean canScrollVertically() { return false; } }; - layoutManagerDos = new LinearLayoutManager(requireContext()) { + final LinearLayoutManager layoutManagerDos = new LinearLayoutManager(requireContext()) { @Override public boolean canScrollVertically() { return false; @@ -167,9 +158,7 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr titleText.setText(threadTitle); titleSend = binding.titleSend; - titleSend.setOnClickListener(v -> { - new ChangeSettings().execute("update_title"); - }); + titleSend.setOnClickListener(v -> new ChangeSettings(titleText.getText().toString()).execute("update_title")); titleText.addTextChangedListener(new TextWatcher() { @Override @@ -184,13 +173,13 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr } }); - btnLeave = binding.btnLeave; - btnLeave.setOnClickListener(v -> { - new AlertDialog.Builder(requireContext()).setTitle(R.string.dms_action_leave_question) - .setPositiveButton(R.string.yes, (x, y) -> new ChangeSettings().execute("leave")) - .setNegativeButton(R.string.no, null) - .show(); - }); + final AppCompatButton btnLeave = binding.btnLeave; + btnLeave.setOnClickListener(v -> new AlertDialog.Builder(requireContext()) + .setTitle(R.string.dms_action_leave_question) + .setPositiveButton(R.string.yes, + (x, y) -> new ChangeSettings(titleText.getText().toString()).execute("leave")) + .setNegativeButton(R.string.no, null) + .show()); currentlyRunning = new DirectMessageInboxThreadFetcher(threadId, null, null, fetchListener).execute(); return root; @@ -217,6 +206,11 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr class ChangeSettings extends AsyncTask { String action, argument; boolean ok = false; + private String text; + + public ChangeSettings(final String text) { + this.text = text; + } protected Void doInBackground(String... rawAction) { action = rawAction[0]; @@ -225,11 +219,11 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr try { String urlParameters = "_csrftoken=" + cookie.split("csrftoken=")[1].split(";")[0] + "&_uuid=" + Utils.settingsHelper.getString(Constants.DEVICE_UUID); - if (action.equals("update_title")) - urlParameters += "&title=" + URLEncoder.encode(titleText.getText().toString(), "UTF-8") + if (action.equals("update_title")) { + urlParameters += "&title=" + URLEncoder.encode(text, "UTF-8") .replaceAll("\\+", "%20").replaceAll("%21", "!").replaceAll("%27", "'") .replaceAll("%28", "(").replaceAll("%29", ")").replaceAll("%7E", "~"); - else if (action.startsWith("remove_users")) + } else if (action.startsWith("remove_users")) urlParameters += ("&user_ids=[" + argument + "]"); final HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection(); urlConnection.setRequestMethod("POST");