mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-01-27 10:04:45 +01:00
Add option to view instance of users/communities
This Commit adds an option to view the details of a users/communities instance, just like the instance info accessible from the navigation bar. #204
This commit is contained in:
parent
42af7ee315
commit
06315c55ad
@ -50,9 +50,12 @@ import io.noties.markwon.MarkwonConfiguration;
|
|||||||
import io.noties.markwon.MarkwonPlugin;
|
import io.noties.markwon.MarkwonPlugin;
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
import io.noties.markwon.recycler.MarkwonAdapter;
|
import io.noties.markwon.recycler.MarkwonAdapter;
|
||||||
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class InstanceInfoActivity extends BaseActivity {
|
public class InstanceInfoActivity extends BaseActivity {
|
||||||
|
|
||||||
|
public static final String INSTANCE_INFO_DOMAIN = "instance_info_domain";
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("default")
|
@Named("default")
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
@ -93,6 +96,8 @@ public class InstanceInfoActivity extends BaseActivity {
|
|||||||
private MarkwonAdapter mMarkwonAdapter;
|
private MarkwonAdapter mMarkwonAdapter;
|
||||||
private Markwon mPostDetailMarkwon;
|
private Markwon mPostDetailMarkwon;
|
||||||
private AdminRecyclerViewAdapter mAdminAdapter;
|
private AdminRecyclerViewAdapter mAdminAdapter;
|
||||||
|
private Retrofit mRetrofit;
|
||||||
|
private String mInstanceDomain;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
@ -105,6 +110,21 @@ public class InstanceInfoActivity extends BaseActivity {
|
|||||||
setContentView(view);
|
setContentView(view);
|
||||||
setSupportActionBar(mInstanceInfoActivityViewBinding.toolbarInstanceInfoActivity);
|
setSupportActionBar(mInstanceInfoActivityViewBinding.toolbarInstanceInfoActivity);
|
||||||
|
|
||||||
|
if (savedInstanceState != null) {
|
||||||
|
mInstanceDomain = savedInstanceState.getString(INSTANCE_INFO_DOMAIN);
|
||||||
|
} else {
|
||||||
|
mInstanceDomain = getIntent().getStringExtra(INSTANCE_INFO_DOMAIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mInstanceDomain == null) {
|
||||||
|
mRetrofit = mRetorifitHolder.getRetrofit();
|
||||||
|
} else {
|
||||||
|
String originalBaseUrl = mRetorifitHolder.getBaseURL();
|
||||||
|
mRetorifitHolder.setBaseURL("https://" + mInstanceDomain);
|
||||||
|
mRetrofit = mRetorifitHolder.getRetrofit();
|
||||||
|
mRetorifitHolder.setBaseURL(originalBaseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
setUpBindings();
|
setUpBindings();
|
||||||
applyCustomTheme();
|
applyCustomTheme();
|
||||||
|
|
||||||
@ -169,7 +189,7 @@ public class InstanceInfoActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void fetchInstanceInfo() {
|
private void fetchInstanceInfo() {
|
||||||
FetchSiteInfo.fetchSiteInfo(mRetorifitHolder.getRetrofit(), null, new FetchSiteInfo.FetchSiteInfoListener() {
|
FetchSiteInfo.fetchSiteInfo(mRetrofit, null, new FetchSiteInfo.FetchSiteInfoListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onFetchSiteInfoSuccess(SiteInfo siteInfo, MyUserInfo myUserInfo) {
|
public void onFetchSiteInfoSuccess(SiteInfo siteInfo, MyUserInfo myUserInfo) {
|
||||||
mLoadingConstraintLayout.setVisibility(View.GONE);
|
mLoadingConstraintLayout.setVisibility(View.GONE);
|
||||||
@ -264,4 +284,16 @@ public class InstanceInfoActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onSaveInstanceState(@NonNull Bundle outState) {
|
||||||
|
super.onSaveInstanceState(outState);
|
||||||
|
outState.putString(INSTANCE_INFO_DOMAIN, mInstanceDomain);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onRestoreInstanceState(@NonNull Bundle savedInstanceState) {
|
||||||
|
super.onRestoreInstanceState(savedInstanceState);
|
||||||
|
mInstanceDomain = savedInstanceState.getString(INSTANCE_INFO_DOMAIN);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1321,6 +1321,11 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
|
|||||||
} else if (itemId == R.id.action_add_to_home_screen_view_subreddit_detail_activity) {
|
} else if (itemId == R.id.action_add_to_home_screen_view_subreddit_detail_activity) {
|
||||||
Bitmap icon = subredditIconBitmap == null ? decodeResource(getResources(), R.drawable.subreddit_default_icon) : subredditIconBitmap;
|
Bitmap icon = subredditIconBitmap == null ? decodeResource(getResources(), R.drawable.subreddit_default_icon) : subredditIconBitmap;
|
||||||
return ShortcutManager.requestPinShortcut(this, qualifiedName, icon);
|
return ShortcutManager.requestPinShortcut(this, qualifiedName, icon);
|
||||||
|
} else if (itemId == R.id.action_view_instance_view_subreddit_detail_activity) {
|
||||||
|
String instance = communityData.getActorId().split("/")[2];
|
||||||
|
Intent intent = new Intent(this,InstanceInfoActivity.class);
|
||||||
|
intent.putExtra(InstanceInfoActivity.INSTANCE_INFO_DOMAIN, instance);
|
||||||
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1323,6 +1323,11 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
|
|||||||
Toast.makeText(ViewUserDetailActivity.this, R.string.unblock_user_failed, Toast.LENGTH_SHORT).show();
|
Toast.makeText(ViewUserDetailActivity.this, R.string.unblock_user_failed, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else if (itemId == R.id.action_view_instance_view_user_detail_activity) {
|
||||||
|
String instance = mUserData.getActorId().split("/")[2];
|
||||||
|
Intent intent = new Intent(this, InstanceInfoActivity.class);
|
||||||
|
intent.putExtra(InstanceInfoActivity.INSTANCE_INFO_DOMAIN, instance);
|
||||||
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package eu.toldi.infinityforlemmy.adapters;
|
package eu.toldi.infinityforlemmy.adapters;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.content.Intent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -20,6 +22,7 @@ import butterknife.ButterKnife;
|
|||||||
import eu.toldi.infinityforlemmy.R;
|
import eu.toldi.infinityforlemmy.R;
|
||||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||||
import eu.toldi.infinityforlemmy.activities.BaseActivity;
|
import eu.toldi.infinityforlemmy.activities.BaseActivity;
|
||||||
|
import eu.toldi.infinityforlemmy.activities.InstanceInfoActivity;
|
||||||
import eu.toldi.infinityforlemmy.blockedinstances.BlockedInstanceData;
|
import eu.toldi.infinityforlemmy.blockedinstances.BlockedInstanceData;
|
||||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
@ -145,9 +148,16 @@ public class BlockedInstancesRecyclerViewAdapter extends RecyclerView.Adapter<Re
|
|||||||
iconUrl = mBlockedInstanceData.get(viewHolder.getBindingAdapterPosition() - offset).getIcon();
|
iconUrl = mBlockedInstanceData.get(viewHolder.getBindingAdapterPosition() - offset).getIcon();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (itemClickListener == null) {
|
|
||||||
// TODO: 2020-07-29 Add instance view page
|
((InstanceViewHolder) viewHolder).itemView.setOnClickListener(view -> {
|
||||||
}
|
if (mBlockedInstanceData != null) {
|
||||||
|
BlockedInstanceData instanceData = mBlockedInstanceData.get(viewHolder.getBindingAdapterPosition());
|
||||||
|
Intent intent = new Intent(mActivity, InstanceInfoActivity.class);
|
||||||
|
intent.putExtra(InstanceInfoActivity.INSTANCE_INFO_DOMAIN, instanceData.getDomain());
|
||||||
|
mActivity.startActivity(intent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
if (iconUrl == null || iconUrl.equals("")) {
|
if (iconUrl == null || iconUrl.equals("")) {
|
||||||
((InstanceViewHolder) viewHolder).iconGifImageView.setVisibility(View.GONE);
|
((InstanceViewHolder) viewHolder).iconGifImageView.setVisibility(View.GONE);
|
||||||
|
@ -60,9 +60,9 @@
|
|||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_go_to_wiki_view_subreddit_detail_activity"
|
android:id="@+id/action_view_instance_view_subreddit_detail_activity"
|
||||||
android:orderInCategory="9"
|
android:orderInCategory="9"
|
||||||
android:title="@string/action_go_to_wiki"
|
android:title="@string/view_instance"
|
||||||
app:showAsAction="never" />
|
app:showAsAction="never" />
|
||||||
|
|
||||||
<item
|
<item
|
||||||
|
@ -60,4 +60,9 @@
|
|||||||
android:id="@+id/action_edit_profile_view_user_detail_activity"
|
android:id="@+id/action_edit_profile_view_user_detail_activity"
|
||||||
android:orderInCategory="11"
|
android:orderInCategory="11"
|
||||||
android:title="@string/action_edit_profile" />
|
android:title="@string/action_edit_profile" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_view_instance_view_user_detail_activity"
|
||||||
|
android:orderInCategory="12"
|
||||||
|
android:title="@string/view_instance" />
|
||||||
</menu>
|
</menu>
|
||||||
|
@ -1325,4 +1325,5 @@
|
|||||||
<string name="sort_new_comments">New Comments</string>
|
<string name="sort_new_comments">New Comments</string>
|
||||||
<string name="instances">Instances</string>
|
<string name="instances">Instances</string>
|
||||||
<string name="no_blocked_instances">No blocked instances</string>
|
<string name="no_blocked_instances">No blocked instances</string>
|
||||||
|
<string name="view_instance">View Instance</string>
|
||||||
</resources>
|
</resources>
|
Loading…
x
Reference in New Issue
Block a user