mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-11-22 14:47:29 +00:00
Fix DM fragments, comment out deprecated activities
This commit is contained in:
parent
290ed50287
commit
cc9348d8c5
@ -8,6 +8,7 @@ import androidx.core.app.NotificationManagerCompat;
|
|||||||
import androidx.multidex.MultiDexApplication;
|
import androidx.multidex.MultiDexApplication;
|
||||||
|
|
||||||
import com.facebook.drawee.backends.pipeline.Fresco;
|
import com.facebook.drawee.backends.pipeline.Fresco;
|
||||||
|
import com.facebook.imagepipeline.core.ImagePipelineConfig;
|
||||||
|
|
||||||
import java.net.CookieHandler;
|
import java.net.CookieHandler;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@ -36,7 +37,12 @@ public final class InstaGrabberApplication extends MultiDexApplication {
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
Fresco.initialize(this);
|
final ImagePipelineConfig imagePipelineConfig = ImagePipelineConfig
|
||||||
|
.newBuilder(this)
|
||||||
|
// .setMainDiskCacheConfig(diskCacheConfig)
|
||||||
|
.setDownsampleEnabled(true)
|
||||||
|
.build();
|
||||||
|
Fresco.initialize(this, imagePipelineConfig);
|
||||||
|
|
||||||
if (BuildConfig.DEBUG) {
|
if (BuildConfig.DEBUG) {
|
||||||
try {
|
try {
|
||||||
@ -74,8 +80,8 @@ public final class InstaGrabberApplication extends MultiDexApplication {
|
|||||||
if (datetimeParser == null)
|
if (datetimeParser == null)
|
||||||
datetimeParser = new SimpleDateFormat(
|
datetimeParser = new SimpleDateFormat(
|
||||||
settingsHelper.getBoolean(Constants.CUSTOM_DATE_TIME_FORMAT_ENABLED) ?
|
settingsHelper.getBoolean(Constants.CUSTOM_DATE_TIME_FORMAT_ENABLED) ?
|
||||||
settingsHelper.getString(Constants.CUSTOM_DATE_TIME_FORMAT) :
|
settingsHelper.getString(Constants.CUSTOM_DATE_TIME_FORMAT) :
|
||||||
settingsHelper.getString(Constants.DATE_TIME_FORMAT), LocaleUtils.getCurrentLocale());
|
settingsHelper.getString(Constants.DATE_TIME_FORMAT), LocaleUtils.getCurrentLocale());
|
||||||
|
|
||||||
settingsHelper.putString(Constants.DEVICE_UUID, UUID.randomUUID().toString());
|
settingsHelper.putString(Constants.DEVICE_UUID, UUID.randomUUID().toString());
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,94 +1,94 @@
|
|||||||
package awais.instagrabber.activities;
|
// package awais.instagrabber.activities;
|
||||||
|
//
|
||||||
import android.os.Bundle;
|
// import android.os.Bundle;
|
||||||
import android.view.View;
|
// import android.view.View;
|
||||||
import android.widget.TextView;
|
// import android.widget.TextView;
|
||||||
|
//
|
||||||
import androidx.annotation.NonNull;
|
// import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
// import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.widget.AppCompatImageView;
|
// import androidx.appcompat.widget.AppCompatImageView;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
// import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
// import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||||
import androidx.navigation.NavController;
|
// import androidx.navigation.NavController;
|
||||||
import androidx.navigation.NavDestination;
|
// import androidx.navigation.NavDestination;
|
||||||
import androidx.navigation.Navigation;
|
// import androidx.navigation.Navigation;
|
||||||
import androidx.navigation.ui.AppBarConfiguration;
|
// import androidx.navigation.ui.AppBarConfiguration;
|
||||||
import androidx.navigation.ui.NavigationUI;
|
// import androidx.navigation.ui.NavigationUI;
|
||||||
|
//
|
||||||
import awais.instagrabber.R;
|
// import awais.instagrabber.R;
|
||||||
import awais.instagrabber.databinding.ActivityDirectMessagesBinding;
|
// import awais.instagrabber.databinding.ActivityDirectMessagesBinding;
|
||||||
import awais.instagrabber.fragments.directmessages.DirectMessageThreadFragmentArgs;
|
// import awais.instagrabber.fragments.directmessages.DirectMessageThreadFragmentArgs;
|
||||||
import awais.instagrabber.utils.Constants;
|
// import awais.instagrabber.utils.Constants;
|
||||||
import static awais.instagrabber.utils.Utils.settingsHelper;
|
// import static awais.instagrabber.utils.Utils.settingsHelper;
|
||||||
|
//
|
||||||
@Deprecated
|
// @Deprecated
|
||||||
public class DirectMessagesActivity extends BaseLanguageActivity implements NavController.OnDestinationChangedListener {
|
// public class DirectMessagesActivity extends BaseLanguageActivity implements NavController.OnDestinationChangedListener {
|
||||||
|
//
|
||||||
private TextView toolbarTitle;
|
// private TextView toolbarTitle;
|
||||||
private AppCompatImageView dmInfo, dmSeen;
|
// private AppCompatImageView dmInfo, dmSeen;
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
// protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
// super.onCreate(savedInstanceState);
|
||||||
final ActivityDirectMessagesBinding binding = ActivityDirectMessagesBinding.inflate(getLayoutInflater());
|
// final ActivityDirectMessagesBinding binding = ActivityDirectMessagesBinding.inflate(getLayoutInflater());
|
||||||
final CoordinatorLayout root = binding.getRoot();
|
// final CoordinatorLayout root = binding.getRoot();
|
||||||
setContentView(root);
|
// setContentView(root);
|
||||||
|
//
|
||||||
toolbarTitle = binding.toolbarTitle;
|
// toolbarTitle = binding.toolbarTitle;
|
||||||
|
//
|
||||||
final Toolbar toolbar = binding.toolbar;
|
// final Toolbar toolbar = binding.toolbar;
|
||||||
setSupportActionBar(toolbar);
|
// setSupportActionBar(toolbar);
|
||||||
|
//
|
||||||
dmInfo = binding.dmInfo;
|
// dmInfo = binding.dmInfo;
|
||||||
dmSeen = binding.dmSeen;
|
// dmSeen = binding.dmSeen;
|
||||||
|
//
|
||||||
final NavController navController = Navigation.findNavController(this, R.id.direct_messages_nav_host_fragment);
|
// final NavController navController = Navigation.findNavController(this, R.id.direct_messages_nav_host_fragment);
|
||||||
navController.addOnDestinationChangedListener(this);
|
// navController.addOnDestinationChangedListener(this);
|
||||||
final AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build();
|
// final AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build();
|
||||||
NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration);
|
// NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Override
|
// @Override
|
||||||
public void onDestinationChanged(@NonNull final NavController controller,
|
// public void onDestinationChanged(@NonNull final NavController controller,
|
||||||
@NonNull final NavDestination destination,
|
// @NonNull final NavDestination destination,
|
||||||
@Nullable final Bundle arguments) {
|
// @Nullable final Bundle arguments) {
|
||||||
switch (destination.getId()) {
|
// switch (destination.getId()) {
|
||||||
case R.id.directMessagesInboxFragment:
|
// case R.id.directMessagesInboxFragment:
|
||||||
setToolbarTitle(R.string.action_dms);
|
// setToolbarTitle(R.string.action_dms);
|
||||||
dmInfo.setVisibility(View.GONE);
|
// dmInfo.setVisibility(View.GONE);
|
||||||
dmSeen.setVisibility(View.GONE);
|
// dmSeen.setVisibility(View.GONE);
|
||||||
return;
|
// return;
|
||||||
case R.id.directMessagesThreadFragment:
|
// case R.id.directMessagesThreadFragment:
|
||||||
if (arguments == null) {
|
// if (arguments == null) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
final String title = DirectMessageThreadFragmentArgs.fromBundle(arguments).getTitle();
|
// final String title = DirectMessageThreadFragmentArgs.fromBundle(arguments).getTitle();
|
||||||
setToolbarTitle(title);
|
// setToolbarTitle(title);
|
||||||
dmInfo.setVisibility(View.VISIBLE);
|
// dmInfo.setVisibility(View.VISIBLE);
|
||||||
dmSeen.setVisibility(settingsHelper.getBoolean(Constants.DM_MARK_AS_SEEN) ? View.GONE : View.VISIBLE);
|
// dmSeen.setVisibility(settingsHelper.getBoolean(Constants.DM_MARK_AS_SEEN) ? View.GONE : View.VISIBLE);
|
||||||
return;
|
// return;
|
||||||
case R.id.directMessagesSettingsFragment:
|
// case R.id.directMessagesSettingsFragment:
|
||||||
if (arguments == null) {
|
// if (arguments == null) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
setToolbarTitle(R.string.action_settings);
|
// setToolbarTitle(R.string.action_settings);
|
||||||
dmInfo.setVisibility(View.GONE);
|
// dmInfo.setVisibility(View.GONE);
|
||||||
dmSeen.setVisibility(View.GONE);
|
// dmSeen.setVisibility(View.GONE);
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
private void setToolbarTitle(final String text) {
|
// private void setToolbarTitle(final String text) {
|
||||||
if (toolbarTitle == null) {
|
// if (toolbarTitle == null) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
toolbarTitle.setText(text);
|
// toolbarTitle.setText(text);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
private void setToolbarTitle(final int resourceId) {
|
// private void setToolbarTitle(final int resourceId) {
|
||||||
if (toolbarTitle == null) {
|
// if (toolbarTitle == null) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
toolbarTitle.setText(resourceId);
|
// toolbarTitle.setText(resourceId);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
@ -50,7 +50,8 @@ public class MainActivity extends BaseLanguageActivity {
|
|||||||
R.id.locationFragment,
|
R.id.locationFragment,
|
||||||
R.id.savedViewerFragment,
|
R.id.savedViewerFragment,
|
||||||
R.id.commentsViewerFragment,
|
R.id.commentsViewerFragment,
|
||||||
R.id.followViewerFragment);
|
R.id.followViewerFragment,
|
||||||
|
R.id.directMessagesSettingsFragment);
|
||||||
private static final List<Integer> REMOVE_COLLAPSING_TOOLBAR_SCROLL_DESTINATIONS = Collections.singletonList(R.id.commentsViewerFragment);
|
private static final List<Integer> REMOVE_COLLAPSING_TOOLBAR_SCROLL_DESTINATIONS = Collections.singletonList(R.id.commentsViewerFragment);
|
||||||
private ActivityMainBinding binding;
|
private ActivityMainBinding binding;
|
||||||
private LiveData<NavController> currentNavControllerLiveData;
|
private LiveData<NavController> currentNavControllerLiveData;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -76,9 +76,10 @@ public final class NotificationsViewer extends BaseLanguageActivity implements S
|
|||||||
final DialogInterface.OnClickListener profileDialogListener = (dialog, which) -> {
|
final DialogInterface.OnClickListener profileDialogListener = (dialog, which) -> {
|
||||||
if (which == 0)
|
if (which == 0)
|
||||||
searchUsername(notificationModel.getUsername());
|
searchUsername(notificationModel.getUsername());
|
||||||
else if (which == 1 && commentDialogList.length == 2)
|
else if (which == 1 && commentDialogList.length == 2) {
|
||||||
startActivity(new Intent(getApplicationContext(), PostViewer.class)
|
// startActivity(new Intent(getApplicationContext(), PostViewer.class)
|
||||||
.putExtra(Constants.EXTRAS_POST, new PostModel(notificationModel.getShortcode(), false)));
|
// .putExtra(Constants.EXTRAS_POST, new PostModel(notificationModel.getShortcode(), false)));
|
||||||
|
}
|
||||||
else if (which == 1) new ProfileAction().execute("/approve/");
|
else if (which == 1) new ProfileAction().execute("/approve/");
|
||||||
else if (which == 2) new ProfileAction().execute("/ignore/");
|
else if (which == 2) new ProfileAction().execute("/ignore/");
|
||||||
};
|
};
|
||||||
@ -123,7 +124,7 @@ public final class NotificationsViewer extends BaseLanguageActivity implements S
|
|||||||
|
|
||||||
|
|
||||||
private void searchUsername(final String text) {
|
private void searchUsername(final String text) {
|
||||||
startActivity(new Intent(getApplicationContext(), ProfileViewer.class).putExtra(Constants.EXTRAS_USERNAME, text));
|
// startActivity(new Intent(getApplicationContext(), ProfileViewer.class).putExtra(Constants.EXTRAS_USERNAME, text));
|
||||||
}
|
}
|
||||||
|
|
||||||
class ProfileAction extends AsyncTask<String, Void, Void> {
|
class ProfileAction extends AsyncTask<String, Void, Void> {
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,7 @@
|
|||||||
package awais.instagrabber.adapters.viewholder;
|
package awais.instagrabber.adapters.viewholder;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.net.Uri;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
@ -8,7 +9,11 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.core.text.HtmlCompat;
|
import androidx.core.text.HtmlCompat;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.facebook.drawee.backends.pipeline.Fresco;
|
||||||
import com.facebook.drawee.view.SimpleDraweeView;
|
import com.facebook.drawee.view.SimpleDraweeView;
|
||||||
|
import com.facebook.imagepipeline.common.ResizeOptions;
|
||||||
|
import com.facebook.imagepipeline.request.ImageRequest;
|
||||||
|
import com.facebook.imagepipeline.request.ImageRequestBuilder;
|
||||||
|
|
||||||
import awais.instagrabber.R;
|
import awais.instagrabber.R;
|
||||||
import awais.instagrabber.databinding.LayoutDmInboxItemBinding;
|
import awais.instagrabber.databinding.LayoutDmInboxItemBinding;
|
||||||
@ -50,14 +55,27 @@ public final class DirectMessageInboxItemViewHolder extends RecyclerView.ViewHol
|
|||||||
multipleProfilePics[i].setImageURI(users[i].getSdProfilePic());
|
multipleProfilePics[i].setImageURI(users[i].getSdProfilePic());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
binding.ivProfilePic.setVisibility(View.VISIBLE);
|
final String uriString = users.length == 1 ? users[0].getSdProfilePic() : null;
|
||||||
multipleProfilePicsContainer.setVisibility(View.GONE);
|
if (uriString == null) {
|
||||||
binding.ivProfilePic.setImageURI(users.length == 1 ? users[0].getSdProfilePic() : null);
|
binding.ivProfilePic.setVisibility(View.GONE);
|
||||||
|
} else {
|
||||||
|
binding.ivProfilePic.setVisibility(View.VISIBLE);
|
||||||
|
multipleProfilePicsContainer.setVisibility(View.GONE);
|
||||||
|
final ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uriString))
|
||||||
|
.setResizeOptions(new ResizeOptions(50, 50))
|
||||||
|
.build();
|
||||||
|
binding.ivProfilePic.setController(
|
||||||
|
Fresco.newDraweeControllerBuilder()
|
||||||
|
.setOldController(binding.ivProfilePic.getController())
|
||||||
|
.setImageRequest(request)
|
||||||
|
.build()
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
binding.tvUsername.setText(model.getThreadTitle());
|
binding.tvUsername.setText(model.getThreadTitle());
|
||||||
final DirectItemModel lastItemModel = itemModels[itemModels.length - 1];
|
final DirectItemModel lastItemModel = itemModels[itemModels.length - 1];
|
||||||
final DirectItemType itemType = lastItemModel.getItemType();
|
final DirectItemType itemType = lastItemModel.getItemType();
|
||||||
binding.notTextType.setVisibility(itemType != DirectItemType.TEXT ? View.VISIBLE : View.GONE);
|
// binding.notTextType.setVisibility(itemType != DirectItemType.TEXT ? View.VISIBLE : View.GONE);
|
||||||
final Context context = itemView.getContext();
|
final Context context = itemView.getContext();
|
||||||
final CharSequence messageText;
|
final CharSequence messageText;
|
||||||
switch (itemType) {
|
switch (itemType) {
|
||||||
|
@ -21,8 +21,6 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import awais.instagrabber.R;
|
import awais.instagrabber.R;
|
||||||
import awais.instagrabber.activities.MainActivity;
|
|
||||||
import awais.instagrabber.activities.MainActivityBackup;
|
|
||||||
import awais.instagrabber.adapters.SimpleAdapter;
|
import awais.instagrabber.adapters.SimpleAdapter;
|
||||||
import awais.instagrabber.utils.Constants;
|
import awais.instagrabber.utils.Constants;
|
||||||
import awais.instagrabber.utils.DataBox;
|
import awais.instagrabber.utils.DataBox;
|
||||||
@ -113,10 +111,10 @@ public final class QuickAccessDialog extends BottomSheetDialogFragment implement
|
|||||||
else Utils.showImportExportDialog(v.getContext());
|
else Utils.showImportExportDialog(v.getContext());
|
||||||
|
|
||||||
} else if (tag instanceof DataBox.FavoriteModel) {
|
} else if (tag instanceof DataBox.FavoriteModel) {
|
||||||
if (MainActivityBackup.scanHack != null) {
|
// if (MainActivityBackup.scanHack != null) {
|
||||||
MainActivityBackup.scanHack.onResult(((DataBox.FavoriteModel) tag).getQuery());
|
// MainActivityBackup.scanHack.onResult(((DataBox.FavoriteModel) tag).getQuery());
|
||||||
dismiss();
|
// dismiss();
|
||||||
}
|
// }
|
||||||
|
|
||||||
} else if (tag instanceof DataBox.CookieModel) {
|
} else if (tag instanceof DataBox.CookieModel) {
|
||||||
final DataBox.CookieModel cookieModel = (DataBox.CookieModel) tag;
|
final DataBox.CookieModel cookieModel = (DataBox.CookieModel) tag;
|
||||||
@ -140,8 +138,8 @@ public final class QuickAccessDialog extends BottomSheetDialogFragment implement
|
|||||||
Utils.dataBox.delFavorite(favoriteModel);
|
Utils.dataBox.delFavorite(favoriteModel);
|
||||||
favoritesAdapter.setItems(Utils.dataBox.getAllFavorites());
|
favoritesAdapter.setItems(Utils.dataBox.getAllFavorites());
|
||||||
})
|
})
|
||||||
.setNegativeButton(R.string.no, null).setMessage(getString(R.string.quick_access_confirm_delete,
|
.setNegativeButton(R.string.no, null).setMessage(getString(R.string.quick_access_confirm_delete,
|
||||||
favoriteModel.getQuery())).show();
|
favoriteModel.getQuery())).show();
|
||||||
|
|
||||||
} else if (tag instanceof DataBox.CookieModel) {
|
} else if (tag instanceof DataBox.CookieModel) {
|
||||||
final DataBox.CookieModel cookieModel = (DataBox.CookieModel) tag;
|
final DataBox.CookieModel cookieModel = (DataBox.CookieModel) tag;
|
||||||
@ -153,8 +151,8 @@ public final class QuickAccessDialog extends BottomSheetDialogFragment implement
|
|||||||
Utils.dataBox.delUserCookie(cookieModel);
|
Utils.dataBox.delUserCookie(cookieModel);
|
||||||
rvQuickAccess.findViewWithTag(cookieModel).setVisibility(View.GONE);
|
rvQuickAccess.findViewWithTag(cookieModel).setVisibility(View.GONE);
|
||||||
})
|
})
|
||||||
.setNegativeButton(R.string.no, null).setMessage(getString(R.string.quick_access_confirm_delete,
|
.setNegativeButton(R.string.no, null).setMessage(getString(R.string.quick_access_confirm_delete,
|
||||||
cookieModel.getUsername())).show();
|
cookieModel.getUsername())).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -187,11 +187,6 @@ public class HashTagFragment extends Fragment {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (checkAndResetAction()) return;
|
if (checkAndResetAction()) return;
|
||||||
// startActivity(new Intent(requireContext(), PostViewer.class)
|
|
||||||
// .putExtra(Constants.EXTRAS_INDEX, position)
|
|
||||||
// .putExtra(Constants.EXTRAS_POST, postModel)
|
|
||||||
// .putExtra(Constants.EXTRAS_USER, hashtag)
|
|
||||||
// .putExtra(Constants.EXTRAS_TYPE, PostItemType.MAIN));
|
|
||||||
final List<PostModel> postModels = postsViewModel.getList().getValue();
|
final List<PostModel> postModels = postsViewModel.getList().getValue();
|
||||||
if (postModels == null || postModels.size() == 0) return;
|
if (postModels == null || postModels.size() == 0) return;
|
||||||
if (postModels.get(0) == null) return;
|
if (postModels.get(0) == null) return;
|
||||||
|
@ -209,12 +209,6 @@ public class LocationFragment extends Fragment {
|
|||||||
idsOrShortCodes,
|
idsOrShortCodes,
|
||||||
isId);
|
isId);
|
||||||
NavHostFragment.findNavController(this).navigate(action);
|
NavHostFragment.findNavController(this).navigate(action);
|
||||||
// startActivity(new Intent(requireContext(), PostViewer.class)
|
|
||||||
// .putExtra(Constants.EXTRAS_INDEX, position)
|
|
||||||
// .putExtra(Constants.EXTRAS_POST, postModel)
|
|
||||||
// .putExtra(Constants.EXTRAS_USER, locationId)
|
|
||||||
// .putExtra(Constants.EXTRAS_TYPE, PostItemType.MAIN));
|
|
||||||
|
|
||||||
}, (model, position) -> {
|
}, (model, position) -> {
|
||||||
if (!postsAdapter.isSelecting()) {
|
if (!postsAdapter.isSelecting()) {
|
||||||
checkAndResetAction();
|
checkAndResetAction();
|
||||||
|
@ -355,8 +355,6 @@ public class StoryViewerFragment extends Fragment {
|
|||||||
idsOrShortCodes,
|
idsOrShortCodes,
|
||||||
isId);
|
isId);
|
||||||
NavHostFragment.findNavController(this).navigate(action);
|
NavHostFragment.findNavController(this).navigate(action);
|
||||||
// startActivity(new Intent(requireContext(), PostViewer.class)
|
|
||||||
// .putExtra(Constants.EXTRAS_POST, new PostModel(, ));
|
|
||||||
});
|
});
|
||||||
final View.OnClickListener storyActionListener = v -> {
|
final View.OnClickListener storyActionListener = v -> {
|
||||||
final Object tag = v.getTag();
|
final Object tag = v.getTag();
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package awais.instagrabber.fragments.directmessages;
|
package awais.instagrabber.fragments.directmessages;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.DialogInterface;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
@ -35,7 +35,6 @@ import java.util.List;
|
|||||||
|
|
||||||
import awais.instagrabber.BuildConfig;
|
import awais.instagrabber.BuildConfig;
|
||||||
import awais.instagrabber.R;
|
import awais.instagrabber.R;
|
||||||
import awais.instagrabber.activities.ProfileViewer;
|
|
||||||
import awais.instagrabber.adapters.DirectMessageMembersAdapter;
|
import awais.instagrabber.adapters.DirectMessageMembersAdapter;
|
||||||
import awais.instagrabber.asyncs.direct_messages.DirectMessageInboxThreadFetcher;
|
import awais.instagrabber.asyncs.direct_messages.DirectMessageInboxThreadFetcher;
|
||||||
import awais.instagrabber.databinding.FragmentDirectMessagesSettingsBinding;
|
import awais.instagrabber.databinding.FragmentDirectMessagesSettingsBinding;
|
||||||
@ -46,20 +45,23 @@ import awais.instagrabber.utils.Constants;
|
|||||||
import awais.instagrabber.utils.Utils;
|
import awais.instagrabber.utils.Utils;
|
||||||
|
|
||||||
public class DirectMessageSettingsFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
|
public class DirectMessageSettingsFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
|
||||||
private static final String TAG = "DirectMessagesSettingsFrag";
|
private static final String TAG = "DirectMsgsSettingsFrag";
|
||||||
|
|
||||||
private FragmentActivity fragmentActivity;
|
private FragmentActivity fragmentActivity;
|
||||||
private RecyclerView userList, leftUserList;
|
private RecyclerView userList;
|
||||||
|
private RecyclerView leftUserList;
|
||||||
private EditText titleText;
|
private EditText titleText;
|
||||||
private View leftTitle;
|
private View leftTitle;
|
||||||
private AppCompatImageView titleSend;
|
private AppCompatImageView titleSend;
|
||||||
private AppCompatButton btnLeave;
|
private AppCompatButton btnLeave;
|
||||||
private LinearLayoutManager layoutManager, layoutManagerDos;
|
private LinearLayoutManager layoutManager;
|
||||||
|
private LinearLayoutManager layoutManagerDos;
|
||||||
private String threadId, threadTitle;
|
private String threadId, threadTitle;
|
||||||
private final String cookie = Utils.settingsHelper.getString(Constants.COOKIE);
|
private final String cookie = Utils.settingsHelper.getString(Constants.COOKIE);
|
||||||
private boolean amAdmin;
|
private boolean amAdmin;
|
||||||
private AsyncTask<Void, Void, InboxThreadModel> currentlyRunning;
|
private AsyncTask<Void, Void, InboxThreadModel> currentlyRunning;
|
||||||
private DirectMessageMembersAdapter memberAdapter, leftAdapter;
|
private DirectMessageMembersAdapter memberAdapter;
|
||||||
|
private DirectMessageMembersAdapter leftAdapter;
|
||||||
private View.OnClickListener clickListener, basicClickListener;
|
private View.OnClickListener clickListener, basicClickListener;
|
||||||
|
|
||||||
private final FetchListener<InboxThreadModel> fetchListener = new FetchListener<InboxThreadModel>() {
|
private final FetchListener<InboxThreadModel> fetchListener = new FetchListener<InboxThreadModel>() {
|
||||||
@ -69,8 +71,13 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr
|
|||||||
@Override
|
@Override
|
||||||
public void onResult(final InboxThreadModel threadModel) {
|
public void onResult(final InboxThreadModel threadModel) {
|
||||||
final List<Long> adminList = Arrays.asList(threadModel.getAdmins());
|
final List<Long> adminList = Arrays.asList(threadModel.getAdmins());
|
||||||
amAdmin = adminList.contains(Long.parseLong(Utils.getUserIdFromCookie(cookie)));
|
final String userIdFromCookie = Utils.getUserIdFromCookie(cookie);
|
||||||
memberAdapter = new DirectMessageMembersAdapter(threadModel.getUsers(), adminList, requireContext(), amAdmin ? clickListener : basicClickListener);
|
if (userIdFromCookie == null) return;
|
||||||
|
amAdmin = adminList.contains(Long.parseLong(userIdFromCookie));
|
||||||
|
memberAdapter = new DirectMessageMembersAdapter(threadModel.getUsers(),
|
||||||
|
adminList,
|
||||||
|
requireContext(),
|
||||||
|
amAdmin ? clickListener : basicClickListener);
|
||||||
userList.setAdapter(memberAdapter);
|
userList.setAdapter(memberAdapter);
|
||||||
if (threadModel.getLeftUsers() != null && threadModel.getLeftUsers().length > 0) {
|
if (threadModel.getLeftUsers() != null && threadModel.getLeftUsers().length > 0) {
|
||||||
leftTitle.setVisibility(View.VISIBLE);
|
leftTitle.setVisibility(View.VISIBLE);
|
||||||
@ -84,15 +91,12 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr
|
|||||||
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
fragmentActivity = requireActivity();
|
fragmentActivity = requireActivity();
|
||||||
|
|
||||||
basicClickListener = v -> {
|
basicClickListener = v -> {
|
||||||
final Object tag = v.getTag();
|
final Object tag = v.getTag();
|
||||||
if (tag instanceof ProfileModel) {
|
if (tag instanceof ProfileModel) {
|
||||||
ProfileModel model = (ProfileModel) tag;
|
ProfileModel model = (ProfileModel) tag;
|
||||||
startActivity(
|
// startActivity(new Intent(requireContext(), ProfileViewer.class)
|
||||||
new Intent(requireContext(), ProfileViewer.class)
|
// .putExtra(Constants.EXTRAS_USERNAME, model.getUsername()));
|
||||||
.putExtra(Constants.EXTRAS_USERNAME, model.getUsername())
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -101,28 +105,25 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr
|
|||||||
if (tag instanceof ProfileModel) {
|
if (tag instanceof ProfileModel) {
|
||||||
ProfileModel model = (ProfileModel) tag;
|
ProfileModel model = (ProfileModel) tag;
|
||||||
if (!amAdmin || model.getId().equals(Utils.getUserIdFromCookie(cookie))) {
|
if (!amAdmin || model.getId().equals(Utils.getUserIdFromCookie(cookie))) {
|
||||||
startActivity(
|
// startActivity(new Intent(requireContext(), ProfileViewer.class)
|
||||||
new Intent(requireContext(), ProfileViewer.class)
|
// .putExtra(Constants.EXTRAS_USERNAME, model.getUsername()));
|
||||||
.putExtra(Constants.EXTRAS_USERNAME, model.getUsername())
|
} else {
|
||||||
);
|
final ArrayAdapter<String> adapter = new ArrayAdapter<>(requireContext(), android.R.layout.simple_list_item_1, new String[]{
|
||||||
}
|
getString(R.string.open_profile),
|
||||||
else {
|
getString(R.string.dms_action_kick),
|
||||||
new AlertDialog.Builder(requireContext()).setAdapter(
|
});
|
||||||
new ArrayAdapter<>(requireContext(), android.R.layout.simple_list_item_1, new String[]{
|
final DialogInterface.OnClickListener clickListener = (d, w) -> {
|
||||||
getString(R.string.open_profile),
|
if (w == 0) {
|
||||||
getString(R.string.dms_action_kick),
|
// startActivity(new Intent(requireContext(), ProfileViewer.class)
|
||||||
}),
|
// .putExtra(Constants.EXTRAS_USERNAME, model.getUsername()));
|
||||||
(d,w) -> {
|
} else if (w == 1) {
|
||||||
if (w == 0)
|
new ChangeSettings().execute("remove_users", model.getId());
|
||||||
startActivity(
|
onRefresh();
|
||||||
new Intent(requireContext(), ProfileViewer.class)
|
}
|
||||||
.putExtra(Constants.EXTRAS_USERNAME, model.getUsername())
|
};
|
||||||
);
|
new AlertDialog.Builder(requireContext())
|
||||||
else if (w == 1) {
|
.setAdapter(adapter, clickListener)
|
||||||
new ChangeSettings().execute("remove_users", model.getId());
|
.show();
|
||||||
onRefresh();
|
|
||||||
}
|
|
||||||
}).show();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -146,7 +147,9 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
if (getArguments() == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
threadId = DirectMessageSettingsFragmentArgs.fromBundle(getArguments()).getThreadId();
|
threadId = DirectMessageSettingsFragmentArgs.fromBundle(getArguments()).getThreadId();
|
||||||
threadTitle = DirectMessageSettingsFragmentArgs.fromBundle(getArguments()).getTitle();
|
threadTitle = DirectMessageSettingsFragmentArgs.fromBundle(getArguments()).getTitle();
|
||||||
binding.swipeRefreshLayout.setEnabled(false);
|
binding.swipeRefreshLayout.setEnabled(false);
|
||||||
@ -185,11 +188,9 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr
|
|||||||
btnLeave = binding.btnLeave;
|
btnLeave = binding.btnLeave;
|
||||||
btnLeave.setOnClickListener(v -> {
|
btnLeave.setOnClickListener(v -> {
|
||||||
new AlertDialog.Builder(requireContext()).setTitle(R.string.dms_action_leave_question)
|
new AlertDialog.Builder(requireContext()).setTitle(R.string.dms_action_leave_question)
|
||||||
.setPositiveButton(R.string.yes, (x,y) -> {
|
.setPositiveButton(R.string.yes, (x, y) -> new ChangeSettings().execute("leave"))
|
||||||
new ChangeSettings().execute("leave");
|
.setNegativeButton(R.string.no, null)
|
||||||
})
|
.show();
|
||||||
.setNegativeButton(R.string.no, null)
|
|
||||||
.show();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
currentlyRunning = new DirectMessageInboxThreadFetcher(threadId, null, null, fetchListener).execute();
|
currentlyRunning = new DirectMessageInboxThreadFetcher(threadId, null, null, fetchListener).execute();
|
||||||
@ -207,7 +208,9 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr
|
|||||||
try {
|
try {
|
||||||
currentlyRunning.cancel(true);
|
currentlyRunning.cancel(true);
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
if (BuildConfig.DEBUG) Log.e(TAG, "", e);
|
if (BuildConfig.DEBUG) {
|
||||||
|
Log.e(TAG, "", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -219,14 +222,14 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr
|
|||||||
protected Void doInBackground(String... rawAction) {
|
protected Void doInBackground(String... rawAction) {
|
||||||
action = rawAction[0];
|
action = rawAction[0];
|
||||||
if (rawAction.length == 2) argument = rawAction[1];
|
if (rawAction.length == 2) argument = rawAction[1];
|
||||||
final String url = "https://i.instagram.com/api/v1/direct_v2/threads/"+threadId+"/"+action+"/";
|
final String url = "https://i.instagram.com/api/v1/direct_v2/threads/" + threadId + "/" + action + "/";
|
||||||
try {
|
try {
|
||||||
String urlParameters = "_csrftoken=" + cookie.split("csrftoken=")[1].split(";")[0]
|
String urlParameters = "_csrftoken=" + cookie.split("csrftoken=")[1].split(";")[0]
|
||||||
+"&_uuid=" + Utils.settingsHelper.getString(Constants.DEVICE_UUID);
|
+ "&_uuid=" + Utils.settingsHelper.getString(Constants.DEVICE_UUID);
|
||||||
if (action.equals("update_title"))
|
if (action.equals("update_title"))
|
||||||
urlParameters += "&title=" + URLEncoder.encode(titleText.getText().toString(), "UTF-8")
|
urlParameters += "&title=" + URLEncoder.encode(titleText.getText().toString(), "UTF-8")
|
||||||
.replaceAll("\\+", "%20").replaceAll("%21", "!").replaceAll("%27", "'")
|
.replaceAll("\\+", "%20").replaceAll("%21", "!").replaceAll("%27", "'")
|
||||||
.replaceAll("%28", "(").replaceAll("%29", ")").replaceAll("%7E", "~");
|
.replaceAll("%28", "(").replaceAll("%29", ")").replaceAll("%7E", "~");
|
||||||
else if (action.startsWith("remove_users"))
|
else if (action.startsWith("remove_users"))
|
||||||
urlParameters += ("&user_ids=[" + argument + "]");
|
urlParameters += ("&user_ids=[" + argument + "]");
|
||||||
final HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection();
|
final HttpURLConnection urlConnection = (HttpURLConnection) new URL(url).openConnection();
|
||||||
@ -260,16 +263,13 @@ public class DirectMessageSettingsFragment extends Fragment implements SwipeRefr
|
|||||||
titleSend.setVisibility(View.GONE);
|
titleSend.setVisibility(View.GONE);
|
||||||
titleText.clearFocus();
|
titleText.clearFocus();
|
||||||
DirectMessageThreadFragment.hasSentSomething = true;
|
DirectMessageThreadFragment.hasSentSomething = true;
|
||||||
}
|
} else if (action.equals("leave")) {
|
||||||
else if (action.equals("leave")) {
|
|
||||||
DirectMessageInboxFragment.refreshPlease = true;
|
DirectMessageInboxFragment.refreshPlease = true;
|
||||||
NavHostFragment.findNavController(DirectMessageSettingsFragment.this).popBackStack(R.id.directMessagesInboxFragment, false);
|
NavHostFragment.findNavController(DirectMessageSettingsFragment.this).popBackStack(R.id.directMessagesInboxFragment, false);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
DirectMessageThreadFragment.hasSentSomething = true;
|
DirectMessageThreadFragment.hasSentSomething = true;
|
||||||
}
|
}
|
||||||
}
|
} else Toast.makeText(requireContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
|
||||||
else Toast.makeText(requireContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import android.os.Handler;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -25,7 +26,6 @@ import androidx.appcompat.app.ActionBar;
|
|||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentContainerView;
|
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
@ -50,7 +50,6 @@ import java.util.LinkedList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import awais.instagrabber.R;
|
import awais.instagrabber.R;
|
||||||
import awais.instagrabber.activities.PostViewer;
|
|
||||||
import awais.instagrabber.adapters.DirectMessageItemsAdapter;
|
import awais.instagrabber.adapters.DirectMessageItemsAdapter;
|
||||||
import awais.instagrabber.asyncs.ImageUploader;
|
import awais.instagrabber.asyncs.ImageUploader;
|
||||||
import awais.instagrabber.asyncs.direct_messages.DirectMessageInboxThreadFetcher;
|
import awais.instagrabber.asyncs.direct_messages.DirectMessageInboxThreadFetcher;
|
||||||
@ -60,7 +59,6 @@ import awais.instagrabber.databinding.FragmentDirectMessagesThreadBinding;
|
|||||||
import awais.instagrabber.interfaces.FetchListener;
|
import awais.instagrabber.interfaces.FetchListener;
|
||||||
import awais.instagrabber.interfaces.MentionClickListener;
|
import awais.instagrabber.interfaces.MentionClickListener;
|
||||||
import awais.instagrabber.models.ImageUploadOptions;
|
import awais.instagrabber.models.ImageUploadOptions;
|
||||||
import awais.instagrabber.models.PostModel;
|
|
||||||
import awais.instagrabber.models.ProfileModel;
|
import awais.instagrabber.models.ProfileModel;
|
||||||
import awais.instagrabber.models.direct_messages.DirectItemModel;
|
import awais.instagrabber.models.direct_messages.DirectItemModel;
|
||||||
import awais.instagrabber.models.direct_messages.InboxThreadModel;
|
import awais.instagrabber.models.direct_messages.InboxThreadModel;
|
||||||
@ -76,14 +74,16 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
private static final int PICK_IMAGE = 100;
|
private static final int PICK_IMAGE = 100;
|
||||||
|
|
||||||
private AppCompatActivity fragmentActivity;
|
private AppCompatActivity fragmentActivity;
|
||||||
private String threadId, threadTitle, cursor, lastMessage;
|
private String threadId;
|
||||||
|
private String threadTitle;
|
||||||
|
private String cursor;
|
||||||
|
private String lastMessage;
|
||||||
private final String cookie = Utils.settingsHelper.getString(Constants.COOKIE);
|
private final String cookie = Utils.settingsHelper.getString(Constants.COOKIE);
|
||||||
private final String myId = Utils.getUserIdFromCookie(cookie);
|
private final String myId = Utils.getUserIdFromCookie(cookie);
|
||||||
private FragmentDirectMessagesThreadBinding binding;
|
private FragmentDirectMessagesThreadBinding binding;
|
||||||
private DirectItemModelListViewModel listViewModel;
|
private DirectItemModelListViewModel listViewModel;
|
||||||
private DirectItemModel directItemModel;
|
private DirectItemModel directItemModel;
|
||||||
private RecyclerView messageList;
|
private RecyclerView messageList;
|
||||||
// private AppCompatImageView dmInfo, dmSeen;
|
|
||||||
private boolean hasDeletedSomething;
|
private boolean hasDeletedSomething;
|
||||||
private boolean hasOlder = true;
|
private boolean hasOlder = true;
|
||||||
public static boolean hasSentSomething;
|
public static boolean hasSentSomething;
|
||||||
@ -158,6 +158,8 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
binding.swipeRefreshLayout.setRefreshing(false);
|
binding.swipeRefreshLayout.setRefreshing(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
private LinearLayout root;
|
||||||
|
private boolean shouldRefresh = true;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
||||||
@ -166,27 +168,29 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
if (hasSentSomething) {
|
|
||||||
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull final LayoutInflater inflater,
|
public View onCreateView(@NonNull final LayoutInflater inflater,
|
||||||
final ViewGroup container,
|
final ViewGroup container,
|
||||||
final Bundle savedInstanceState) {
|
final Bundle savedInstanceState) {
|
||||||
binding = FragmentDirectMessagesThreadBinding.inflate(inflater, container, false);
|
if (root != null) {
|
||||||
final FragmentContainerView containerTwo = (FragmentContainerView) container.getParent();
|
shouldRefresh = false;
|
||||||
// dmInfo = containerTwo.findViewById(R.id.dmInfo);
|
|
||||||
// dmSeen = containerTwo.findViewById(R.id.dmSeen);
|
|
||||||
final LinearLayout root = binding.getRoot();
|
|
||||||
listViewModel = new ViewModelProvider(fragmentActivity).get(DirectItemModelListViewModel.class);
|
|
||||||
if (getArguments() == null) {
|
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
binding = FragmentDirectMessagesThreadBinding.inflate(inflater, container, false);
|
||||||
|
root = binding.getRoot();
|
||||||
|
return root;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewCreated(@NonNull final View view, @Nullable final Bundle savedInstanceState) {
|
||||||
|
if (!shouldRefresh) return;
|
||||||
|
init();
|
||||||
|
shouldRefresh = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
listViewModel = new ViewModelProvider(fragmentActivity).get(DirectItemModelListViewModel.class);
|
||||||
|
if (getArguments() == null) return;
|
||||||
if (!DirectMessageThreadFragmentArgs.fromBundle(getArguments()).getThreadId().equals(threadId)) {
|
if (!DirectMessageThreadFragmentArgs.fromBundle(getArguments()).getThreadId().equals(threadId)) {
|
||||||
listViewModel.empty();
|
listViewModel.empty();
|
||||||
threadId = DirectMessageThreadFragmentArgs.fromBundle(getArguments()).getThreadId();
|
threadId = DirectMessageThreadFragmentArgs.fromBundle(getArguments()).getThreadId();
|
||||||
@ -203,25 +207,14 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
binding.image.setOnClickListener(clickListener);
|
binding.image.setOnClickListener(clickListener);
|
||||||
final LinearLayoutManager layoutManager = new LinearLayoutManager(requireContext());
|
final LinearLayoutManager layoutManager = new LinearLayoutManager(requireContext());
|
||||||
layoutManager.setReverseLayout(true);
|
layoutManager.setReverseLayout(true);
|
||||||
// layoutManager.setStackFromEnd(true);
|
|
||||||
messageList.setLayoutManager(layoutManager);
|
messageList.setLayoutManager(layoutManager);
|
||||||
messageList.addOnScrollListener(new RecyclerLazyLoader(layoutManager, (page, totalItemsCount) -> {
|
messageList.addOnScrollListener(new RecyclerLazyLoader(layoutManager, (page, totalItemsCount) -> {
|
||||||
if (Utils.isEmpty(cursor) || !hasOlder) {
|
if (Utils.isEmpty(cursor) || !hasOlder) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, cursor, fetchListener).execute(); // serial because we don't want messages to be randomly ordered
|
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, cursor, fetchListener)
|
||||||
|
.execute(); // serial because we don't want messages to be randomly ordered
|
||||||
}));
|
}));
|
||||||
// dmInfo.setOnClickListener(v -> {
|
|
||||||
// final NavDirections action =
|
|
||||||
// DirectMessageThreadFragmentDirections.actionDMThreadFragmentToDMSettingsFragment(threadId, threadTitle);
|
|
||||||
// NavHostFragment.findNavController(DirectMessageThreadFragment.this).navigate(action);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// dmSeen.setOnClickListener(v -> {
|
|
||||||
// new ThreadAction().execute("seen", lastMessage);
|
|
||||||
// dmSeen.setVisibility(View.GONE);
|
|
||||||
// });
|
|
||||||
|
|
||||||
final DialogInterface.OnClickListener onDialogListener = (dialogInterface, which) -> {
|
final DialogInterface.OnClickListener onDialogListener = (dialogInterface, which) -> {
|
||||||
if (which == 0) {
|
if (which == 0) {
|
||||||
final DirectItemType itemType = directItemModel.getItemType();
|
final DirectItemType itemType = directItemModel.getItemType();
|
||||||
@ -248,11 +241,12 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
final ProfileModel user = getUser(directItemModel.getUserId());
|
final ProfileModel user = getUser(directItemModel.getUserId());
|
||||||
final DirectItemModel.DirectItemMediaModel selectedItem =
|
final DirectItemModel.DirectItemMediaModel selectedItem =
|
||||||
itemType == DirectItemType.MEDIA ? directItemModel.getMediaModel() : directItemModel.getRavenMediaModel().getMedia();
|
itemType == DirectItemType.MEDIA ? directItemModel.getMediaModel() : directItemModel.getRavenMediaModel().getMedia();
|
||||||
final String url = selectedItem.getMediaType() == MediaItemType.MEDIA_TYPE_VIDEO ? selectedItem.getVideoUrl() : selectedItem.getThumbUrl();
|
final String url = selectedItem.getMediaType() == MediaItemType.MEDIA_TYPE_VIDEO
|
||||||
|
? selectedItem.getVideoUrl()
|
||||||
|
: selectedItem.getThumbUrl();
|
||||||
if (url == null) {
|
if (url == null) {
|
||||||
Toast.makeText(requireContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), R.string.downloader_unknown_error, Toast.LENGTH_SHORT).show();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Utils.dmDownload(requireContext(), user.getUsername(), DownloadMethod.DOWNLOAD_DIRECT, selectedItem);
|
Utils.dmDownload(requireContext(), user.getUsername(), DownloadMethod.DOWNLOAD_DIRECT, selectedItem);
|
||||||
Toast.makeText(requireContext(), R.string.downloader_downloading_media, Toast.LENGTH_SHORT).show();
|
Toast.makeText(requireContext(), R.string.downloader_downloading_media, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
@ -283,7 +277,7 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
searchUsername(directItemModel.getText().toString().split("@")[1].split(" ")[0]);
|
searchUsername(directItemModel.getText().toString().split("@")[1].split(" ")[0]);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Log.d("austin_debug", "unsupported type " + itemType);
|
Log.d(TAG, "unsupported type " + itemType);
|
||||||
}
|
}
|
||||||
} else if (which == 1) {
|
} else if (which == 1) {
|
||||||
sendText(null, directItemModel.getItemId(), directItemModel.isLiked());
|
sendText(null, directItemModel.getItemId(), directItemModel.isLiked());
|
||||||
@ -350,9 +344,22 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
messageList.setAdapter(adapter);
|
messageList.setAdapter(adapter);
|
||||||
listViewModel.getList().observe(fragmentActivity, adapter::submitList);
|
listViewModel.getList().observe(fragmentActivity, adapter::submitList);
|
||||||
if (listViewModel.isEmpty()) {
|
if (listViewModel.isEmpty()) {
|
||||||
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener)
|
||||||
|
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
if (hasSentSomething) {
|
||||||
|
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener)
|
||||||
|
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
}
|
||||||
|
final ActionBar actionBar = fragmentActivity.getSupportActionBar();
|
||||||
|
if (actionBar != null) {
|
||||||
|
actionBar.setTitle(threadTitle);
|
||||||
}
|
}
|
||||||
return root;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -361,6 +368,27 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
item.setVisible(false);
|
item.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateOptionsMenu(@NonNull final Menu menu, @NonNull final MenuInflater inflater) {
|
||||||
|
inflater.inflate(R.menu.dm_thread_menu, menu);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(@NonNull final MenuItem item) {
|
||||||
|
final int itemId = item.getItemId();
|
||||||
|
switch (itemId) {
|
||||||
|
case R.id.info:
|
||||||
|
final NavDirections action = DirectMessageThreadFragmentDirections.actionDMThreadFragmentToDMSettingsFragment(threadId, threadTitle);
|
||||||
|
NavHostFragment.findNavController(this).navigate(action);
|
||||||
|
return true;
|
||||||
|
case R.id.mark_as_seen:
|
||||||
|
new ThreadAction().execute("seen", lastMessage);
|
||||||
|
item.setVisible(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
@ -409,7 +437,8 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
DirectMessageInboxFragment.refreshPlease = true;
|
DirectMessageInboxFragment.refreshPlease = true;
|
||||||
hasSentSomething = true;
|
hasSentSomething = true;
|
||||||
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener)
|
||||||
|
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,7 +462,9 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
// Broadcast
|
// Broadcast
|
||||||
final DirectThreadBroadcaster.ImageBroadcastOptions options = new DirectThreadBroadcaster.ImageBroadcastOptions(true, uploadId);
|
final DirectThreadBroadcaster.ImageBroadcastOptions options = new DirectThreadBroadcaster.ImageBroadcastOptions(true, uploadId);
|
||||||
hasSentSomething = true;
|
hasSentSomething = true;
|
||||||
broadcast(options, broadcastResponse -> new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR));
|
broadcast(options,
|
||||||
|
broadcastResponse -> new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener)
|
||||||
|
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR));
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
Log.e(TAG, "Error parsing json response", e);
|
Log.e(TAG, "Error parsing json response", e);
|
||||||
}
|
}
|
||||||
@ -446,7 +477,8 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void broadcast(final DirectThreadBroadcaster.BroadcastOptions broadcastOptions, final DirectThreadBroadcaster.OnBroadcastCompleteListener listener) {
|
private void broadcast(final DirectThreadBroadcaster.BroadcastOptions broadcastOptions,
|
||||||
|
final DirectThreadBroadcaster.OnBroadcastCompleteListener listener) {
|
||||||
final DirectThreadBroadcaster broadcaster = new DirectThreadBroadcaster(threadId);
|
final DirectThreadBroadcaster broadcaster = new DirectThreadBroadcaster(threadId);
|
||||||
broadcaster.setOnTaskCompleteListener(listener);
|
broadcaster.setOnTaskCompleteListener(listener);
|
||||||
broadcaster.execute(broadcastOptions);
|
broadcaster.execute(broadcastOptions);
|
||||||
@ -529,7 +561,8 @@ public class DirectMessageThreadFragment extends Fragment {
|
|||||||
protected void onPostExecute(Void result) {
|
protected void onPostExecute(Void result) {
|
||||||
if (hasDeletedSomething) {
|
if (hasDeletedSomething) {
|
||||||
directItemModel = null;
|
directItemModel = null;
|
||||||
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
new DirectMessageInboxThreadFetcher(threadId, UserInboxDirection.OLDER, null, fetchListener)
|
||||||
|
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,10 +202,6 @@ public class DiscoverFragment extends Fragment {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (checkAndResetAction()) return;
|
if (checkAndResetAction()) return;
|
||||||
// startActivity(new Intent(requireContext(), PostViewer.class)
|
|
||||||
// .putExtra(Constants.EXTRAS_INDEX, position)
|
|
||||||
// .putExtra(Constants.EXTRAS_TYPE, PostItemType.DISCOVER)
|
|
||||||
// .putExtra(Constants.EXTRAS_POST, new PostModel(model.getShortCode(), false)));
|
|
||||||
final List<DiscoverItemModel> discoverItemModels = discoverItemViewModel.getList().getValue();
|
final List<DiscoverItemModel> discoverItemModels = discoverItemViewModel.getList().getValue();
|
||||||
if (discoverItemModels == null || discoverItemModels.size() == 0) return;
|
if (discoverItemModels == null || discoverItemModels.size() == 0) return;
|
||||||
if (discoverItemModels.get(0) == null) return;
|
if (discoverItemModels.get(0) == null) return;
|
||||||
|
@ -12,6 +12,8 @@ import android.text.style.StyleSpan;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.ActionMode;
|
import android.view.ActionMode;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -179,12 +181,14 @@ public class ProfileFragment extends Fragment {
|
|||||||
action.setUsername("@" + text);
|
action.setUsername("@" + text);
|
||||||
NavHostFragment.findNavController(this).navigate(action);
|
NavHostFragment.findNavController(this).navigate(action);
|
||||||
};
|
};
|
||||||
|
private MenuItem favMenuItem;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
fragmentActivity = (MainActivity) requireActivity();
|
fragmentActivity = (MainActivity) requireActivity();
|
||||||
friendshipService = FriendshipService.getInstance();
|
friendshipService = FriendshipService.getInstance();
|
||||||
|
setHasOptionsMenu(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -225,6 +229,12 @@ public class ProfileFragment extends Fragment {
|
|||||||
shouldRefresh = false;
|
shouldRefresh = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateOptionsMenu(@NonNull final Menu menu, @NonNull final MenuInflater inflater) {
|
||||||
|
inflater.inflate(R.menu.profile_menu, menu);
|
||||||
|
favMenuItem = menu.findItem(R.id.favourites);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
@ -289,6 +299,12 @@ public class ProfileFragment extends Fragment {
|
|||||||
private void fetchProfileDetails() {
|
private void fetchProfileDetails() {
|
||||||
new ProfileFetcher(username.substring(1), profileModel -> {
|
new ProfileFetcher(username.substring(1), profileModel -> {
|
||||||
this.profileModel = profileModel;
|
this.profileModel = profileModel;
|
||||||
|
final String userIdFromCookie = Utils.getUserIdFromCookie(cookie);
|
||||||
|
final boolean isSelf = isLoggedIn
|
||||||
|
&& profileModel != null
|
||||||
|
&& userIdFromCookie != null
|
||||||
|
&& userIdFromCookie.equals(profileModel.getId());
|
||||||
|
favMenuItem.setVisible(isSelf);
|
||||||
setProfileDetails();
|
setProfileDetails();
|
||||||
|
|
||||||
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
@ -423,8 +439,8 @@ public class ProfileFragment extends Fragment {
|
|||||||
span.setSpan(new StyleSpan(Typeface.BOLD), 0, followingCountStrLen, 0);
|
span.setSpan(new StyleSpan(Typeface.BOLD), 0, followingCountStrLen, 0);
|
||||||
binding.mainFollowing.setText(span);
|
binding.mainFollowing.setText(span);
|
||||||
|
|
||||||
binding.mainFullName.setText(Utils.isEmpty(profileModel.getName()) ? profileModel
|
binding.mainFullName.setText(Utils.isEmpty(profileModel.getName()) ? profileModel.getUsername()
|
||||||
.getUsername() : profileModel.getName());
|
: profileModel.getName());
|
||||||
|
|
||||||
CharSequence biography = profileModel.getBiography();
|
CharSequence biography = profileModel.getBiography();
|
||||||
binding.mainBiography.setCaptionIsExpandable(true);
|
binding.mainBiography.setCaptionIsExpandable(true);
|
||||||
@ -455,13 +471,10 @@ public class ProfileFragment extends Fragment {
|
|||||||
|
|
||||||
if (isLoggedIn) {
|
if (isLoggedIn) {
|
||||||
final View.OnClickListener followClickListener = v -> {
|
final View.OnClickListener followClickListener = v -> {
|
||||||
// startActivity(new Intent(requireContext(), FollowViewerFragment.class)
|
final NavDirections action = ProfileFragmentDirections.actionProfileFragmentToFollowViewerFragment(
|
||||||
// .putExtra(Constants.EXTRAS_FOLLOWERS, v == binding.mainFollowers)
|
profileId,
|
||||||
// .putExtra(Constants.EXTRAS_NAME, profileModel.getUsername())
|
v == binding.mainFollowers,
|
||||||
// .putExtra(Constants.EXTRAS_ID, profileId));
|
profileModel.getUsername());
|
||||||
final NavDirections action = ProfileFragmentDirections.actionProfileFragmentToFollowViewerFragment(profileId,
|
|
||||||
v == binding.mainFollowers,
|
|
||||||
profileModel.getUsername());
|
|
||||||
NavHostFragment.findNavController(this).navigate(action);
|
NavHostFragment.findNavController(this).navigate(action);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -8,10 +8,14 @@
|
|||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
android:id="@+id/profile_pic_container"
|
||||||
android:layout_width="@dimen/simple_item_picture_size"
|
android:layout_width="@dimen/simple_item_picture_size"
|
||||||
android:layout_height="@dimen/simple_item_picture_size"
|
android:layout_height="@dimen/simple_item_picture_size"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:padding="4dp">
|
android:padding="4dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
<com.facebook.drawee.view.SimpleDraweeView
|
<com.facebook.drawee.view.SimpleDraweeView
|
||||||
android:id="@+id/ivProfilePic"
|
android:id="@+id/ivProfilePic"
|
||||||
@ -24,7 +28,8 @@
|
|||||||
android:id="@+id/multi_pic_container"
|
android:id="@+id/multi_pic_container"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<com.facebook.drawee.view.SimpleDraweeView
|
<com.facebook.drawee.view.SimpleDraweeView
|
||||||
android:layout_width="@dimen/simple_item_picture_size_half"
|
android:layout_width="@dimen/simple_item_picture_size_half"
|
||||||
@ -49,74 +54,67 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/tvUsername"
|
||||||
android:layout_height="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_gravity="center"
|
android:layout_height="0dp"
|
||||||
android:orientation="vertical"
|
android:ellipsize="marquee"
|
||||||
android:padding="8dp">
|
android:gravity="bottom"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/tvComment"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/tvDate"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/profile_pic_container"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:text="username" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tvUsername"
|
android:id="@+id/tvDate"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:ellipsize="marquee"
|
android:ellipsize="marquee"
|
||||||
android:gravity="center_vertical"
|
android:gravity="bottom|end"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
|
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textStyle="italic"
|
||||||
android:textStyle="bold"
|
app:layout_constraintBottom_toTopOf="@id/tvComment"
|
||||||
app:layout_constraintEnd_toStartOf="@id/tvDate"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toEndOf="@id/tvUsername"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
tools:text="username" />
|
tools:text="long date................................" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<!--<androidx.appcompat.widget.AppCompatImageView-->
|
||||||
android:id="@+id/tvDate"
|
<!-- android:id="@+id/notTextType"-->
|
||||||
android:layout_width="0dp"
|
<!-- android:layout_width="4dp"-->
|
||||||
android:layout_height="0dp"
|
<!-- android:layout_height="4dp"-->
|
||||||
android:ellipsize="marquee"
|
<!-- android:layout_gravity="center_vertical"-->
|
||||||
android:gravity="center_vertical|end"
|
<!-- android:layout_marginEnd="4dp"-->
|
||||||
android:singleLine="true"
|
<!-- android:layout_marginRight="4dp"-->
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
|
<!-- android:visibility="gone"-->
|
||||||
android:textStyle="italic"
|
<!-- app:tint="@color/feed_text_primary_color" />-->
|
||||||
app:layout_constraintBottom_toTopOf="@id/comment_container"
|
<!--<FrameLayout-->
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
<!-- android:id="@+id/comment_container"-->
|
||||||
app:layout_constraintStart_toEndOf="@id/tvUsername"
|
<!-- android:layout_width="0dp"-->
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
tools:text="long date................................" />
|
<!-- android:orientation="horizontal">-->
|
||||||
|
|
||||||
<LinearLayout
|
<!-- -->
|
||||||
android:id="@+id/comment_container"
|
<!--</FrameLayout>-->
|
||||||
android:layout_width="0dp"
|
<awais.instagrabber.customviews.RamboTextView
|
||||||
android:layout_height="wrap_content"
|
android:id="@+id/tvComment"
|
||||||
android:orientation="horizontal"
|
android:layout_width="0dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
android:layout_height="0dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
android:layout_gravity="center_vertical"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
android:autoLink="web|email"
|
||||||
app:layout_constraintTop_toBottomOf="@id/tvUsername">
|
android:ellipsize="end"
|
||||||
|
android:linksClickable="true"
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
|
||||||
android:id="@+id/notTextType"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
android:layout_width="4dp"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:layout_height="4dp"
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
android:layout_gravity="center_vertical"
|
app:layout_constraintStart_toEndOf="@id/profile_pic_container"
|
||||||
android:layout_marginEnd="4dp"
|
app:layout_constraintTop_toBottomOf="@id/tvUsername"
|
||||||
android:layout_marginRight="4dp"
|
tools:text="comment" />
|
||||||
android:visibility="gone"
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
app:srcCompat="@android:drawable/ic_notification_overlay"
|
|
||||||
app:tint="@color/feed_text_primary_color" />
|
|
||||||
|
|
||||||
<awais.instagrabber.customviews.RamboTextView
|
|
||||||
android:id="@+id/tvComment"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_gravity="center_vertical"
|
|
||||||
android:autoLink="web|email"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:linksClickable="true"
|
|
||||||
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
|
|
||||||
tools:text="comment" />
|
|
||||||
</LinearLayout>
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
</LinearLayout>
|
|
14
app/src/main/res/menu/dm_thread_menu.xml
Normal file
14
app/src/main/res/menu/dm_thread_menu.xml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<item
|
||||||
|
android:id="@+id/info"
|
||||||
|
android:icon="@drawable/ic_outline_info_24"
|
||||||
|
android:title="@string/dm_thread_info"
|
||||||
|
app:showAsAction="always" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/mark_as_seen"
|
||||||
|
android:icon="@drawable/ic_outline_views_24"
|
||||||
|
android:title="@string/mark_as_seen"
|
||||||
|
app:showAsAction="ifRoom" />
|
||||||
|
</menu>
|
@ -1,12 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu>
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
<!--<item-->
|
||||||
<item
|
<!-- android:id="@+id/favourites"-->
|
||||||
android:id="@+id/favourites"
|
<!-- android:enabled="true"-->
|
||||||
android:enabled="true"
|
<!-- android:icon="@drawable/ic_star_24"-->
|
||||||
android:icon="@drawable/ic_star_24"
|
<!-- android:title="@string/title_favorites"-->
|
||||||
android:title="@string/title_favorites"
|
<!-- app:showAsAction="ifRoom" />-->
|
||||||
app:showAsAction="ifRoom" />
|
|
||||||
|
|
||||||
<!--<item-->
|
<!--<item-->
|
||||||
<!-- android:id="@+id/direct_messages"-->
|
<!-- android:id="@+id/direct_messages"-->
|
||||||
|
12
app/src/main/res/menu/profile_menu.xml
Normal file
12
app/src/main/res/menu/profile_menu.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<item
|
||||||
|
android:id="@+id/favourites"
|
||||||
|
android:enabled="true"
|
||||||
|
android:icon="@drawable/ic_star_24"
|
||||||
|
android:title="@string/title_favorites"
|
||||||
|
android:visible="false"
|
||||||
|
app:showAsAction="ifRoom" />
|
||||||
|
|
||||||
|
</menu>
|
@ -249,4 +249,6 @@
|
|||||||
<string name="relogin">Relogin</string>
|
<string name="relogin">Relogin</string>
|
||||||
<string name="relogin_summary">Refresh your cookies if facing any issues</string>
|
<string name="relogin_summary">Refresh your cookies if facing any issues</string>
|
||||||
<string name="logout_success">Successfully logged out!</string>
|
<string name="logout_success">Successfully logged out!</string>
|
||||||
|
<string name="dm_thread_info">Info</string>
|
||||||
|
<string name="mark_as_seen">Mark as seen</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue
Block a user