Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tweak[UI] #6475

Merged
merged 2 commits into from
Jan 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion app_pojavlauncher/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@
</activity>
<activity
android:name=".LauncherActivity"
android:label="@string/app_short_name" />
android:label="@string/app_short_name"
android:windowSoftInputMode="adjustResize"/>
<activity
android:name=".ImportControlActivity"
android:configChanges="keyboard|keyboardHidden"
Expand Down
59 changes: 45 additions & 14 deletions app_pojavlauncher/src/main/java/com/kdt/mcgui/mcAccountSpinner.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.AppCompatSpinner;
import androidx.core.content.res.ResourcesCompat;

Expand Down Expand Up @@ -188,7 +189,10 @@ protected void onDraw(Canvas canvas) {
}

public void removeCurrentAccount(){
int position = getSelectedItemPosition();
removeAccount(getSelectedItemPosition());
}

private void removeAccount(int position) {
if(position == 0) return;
File accountFile = new File(Tools.DIR_ACCOUNT_NEW, mAccountList.get(position)+".json");
if(accountFile.exists()) accountFile.delete();
Expand Down Expand Up @@ -321,8 +325,9 @@ private void setImageFromSelectedAccount(){
BitmapDrawable oldBitmapDrawable = mHeadDrawable;

if(mSelectecAccount != null){
ExtendedTextView view = ((ExtendedTextView) getSelectedView());
if(view != null){
View layout = getSelectedView();
if(layout != null){
ExtendedTextView view = layout.findViewById(R.id.account_item);
Bitmap bitmap = mSelectecAccount.getSkinFace();
if(bitmap != null) {
mHeadDrawable = new BitmapDrawable(getResources(), bitmap);
Expand All @@ -339,8 +344,7 @@ private void setImageFromSelectedAccount(){
}
}


private static class AccountAdapter extends ArrayAdapter<String> {
private class AccountAdapter extends ArrayAdapter<String> {

private final HashMap<String, Drawable> mImageCache = new HashMap<>();
public AccountAdapter(@NonNull Context context, int resource, @NonNull String[] objects) {
Expand All @@ -349,20 +353,19 @@ public AccountAdapter(@NonNull Context context, int resource, @NonNull String[]

@Override
public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
return getView(position, convertView, parent);
}

@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
if(convertView == null){
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_minecraft_account, parent, false);
}
ExtendedTextView textview = (ExtendedTextView) convertView;

ExtendedTextView textview = convertView.findViewById(R.id.account_item);
ImageView deleteButton = convertView.findViewById(R.id.delete_account_button);
textview.setText(super.getItem(position));

// Handle the "Add account section"
if(position == 0) textview.setCompoundDrawables(ResourcesCompat.getDrawable(parent.getResources(), R.drawable.ic_add, null), null, null, null);
if(position == 0) {
textview.setCompoundDrawables(ResourcesCompat.getDrawable(parent.getResources(), R.drawable.ic_add, null), null, null, null);
deleteButton.setVisibility(View.GONE);
}
else {
String username = super.getItem(position);
Drawable accountHead = mImageCache.get(username);
Expand All @@ -371,9 +374,37 @@ public View getView(int position, View convertView, @NonNull ViewGroup parent) {
mImageCache.put(username, accountHead);
}
textview.setCompoundDrawables(accountHead, null, null, null);

deleteButton.setVisibility(View.VISIBLE);
deleteButton.setOnClickListener(v -> {
showDeleteDialog(getContext(), position);
});
}
return convertView;
}



@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View view = getDropDownView(position, convertView, parent);
view.findViewById(R.id.delete_account_button).setVisibility(View.GONE);
return view;
}

private void showDeleteDialog(Context context, int position) {
new AlertDialog.Builder(context)
.setMessage(R.string.warning_remove_account)
.setPositiveButton(android.R.string.cancel, null)
.setNeutralButton(R.string.global_delete, (dialog, which) -> {
onDetachedFromWindow();
removeAccount(position);
})
.show();
}
}



}
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public class LauncherActivity extends BaseActivity {

private mcAccountSpinner mAccountSpinner;
private FragmentContainerView mFragmentView;
private ImageButton mSettingsButton, mDeleteAccountButton;
private ImageButton mSettingsButton;
private ProgressLayout mProgressLayout;
private ProgressServiceKeeper mProgressServiceKeeper;
private ModloaderInstallTracker mInstallTracker;
Expand Down Expand Up @@ -101,13 +101,6 @@ public void onFragmentResumed(@NonNull FragmentManager fm, @NonNull Fragment f)
}
};

/* Listener for account deletion */
private final View.OnClickListener mAccountDeleteButtonListener = v -> new AlertDialog.Builder(this)
.setMessage(R.string.warning_remove_account)
.setPositiveButton(android.R.string.cancel, null)
.setNeutralButton(R.string.global_delete, (dialog, which) -> mAccountSpinner.removeCurrentAccount())
.show();

private final ExtraListener<Boolean> mLaunchGameListener = (key, value) -> {
if(mProgressLayout.hasProcesses()){
Toast.makeText(this, R.string.tasks_ongoing, Toast.LENGTH_LONG).show();
Expand Down Expand Up @@ -200,7 +193,6 @@ protected void onCreate(Bundle savedInstanceState) {
ProgressKeeper.addTaskCountListener((mProgressServiceKeeper = new ProgressServiceKeeper(this)));

mSettingsButton.setOnClickListener(mSettingButtonListener);
mDeleteAccountButton.setOnClickListener(mAccountDeleteButtonListener);
ProgressKeeper.addTaskCountListener(mProgressLayout);
ExtraCore.addExtraListener(ExtraConstants.BACK_PREFERENCE, mBackPreferenceListener);
ExtraCore.addExtraListener(ExtraConstants.SELECT_AUTH_METHOD, mSelectAuthMethod);
Expand Down Expand Up @@ -343,7 +335,6 @@ public void askForNotificationPermission(Runnable onSuccessRunnable) {
private void bindViews(){
mFragmentView = findViewById(R.id.container_fragment);
mSettingsButton = findViewById(R.id.setting_button);
mDeleteAccountButton = findViewById(R.id.delete_account_button);
mAccountSpinner = findViewById(R.id.account_spinner);
mProgressLayout = findViewById(R.id.progress_layout);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<ImageButton
android:id="@+id/delete_account_button"
android:layout_width="@dimen/_52sdp"
android:layout_height="@dimen/_42sdp"
android:background="?attr/selectableItemBackground"
android:src="@drawable/ic_menu_delete_forever"
android:scaleType="fitCenter"


app:layout_constraintEnd_toStartOf="@id/setting_button"
app:layout_constraintTop_toTopOf="parent" />

<!-- Holding most of the dynamic content -->
<androidx.fragment.app.FragmentContainerView
Expand Down
13 changes: 0 additions & 13 deletions app_pojavlauncher/src/main/res/layout/activity_pojav_launcher.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,6 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<ImageButton
android:id="@+id/delete_account_button"
android:layout_width="@dimen/_52sdp"
android:layout_height="@dimen/_52sdp"
android:background="?attr/selectableItemBackground"
android:src="@drawable/ic_menu_delete_forever"
android:scaleType="fitCenter"
android:paddingVertical="@dimen/_8sdp"


app:layout_constraintEnd_toStartOf="@id/setting_button"
app:layout_constraintTop_toTopOf="parent" />

<!-- Holding most of the dynamic content -->
<androidx.fragment.app.FragmentContainerView
android:id="@+id/container_fragment"
Expand Down
40 changes: 31 additions & 9 deletions app_pojavlauncher/src/main/res/layout/item_minecraft_account.xml
Original file line number Diff line number Diff line change
@@ -1,17 +1,39 @@
<fr.spse.extended_view.ExtendedTextView
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="@dimen/_52sdp"
android:layout_width="match_parent"
android:textSize="@dimen/_16ssp"
android:gravity="center_vertical"
android:drawablePadding="@dimen/_6sdp"
android:paddingStart="@dimen/_8sdp"
app:drawableStartSize="@dimen/_30sdp"
android:orientation="horizontal">

tools:text="HELLO THERE"
tools:drawableStart="@mipmap/ic_launcher"
<fr.spse.extended_view.ExtendedTextView
android:id="@+id/account_item"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"

tools:ignore="RtlSymmetry" />
android:textSize="@dimen/_16ssp"
android:gravity="center_vertical"
android:drawablePadding="@dimen/_6sdp"
android:paddingStart="@dimen/_8sdp"
app:drawableStartSize="@dimen/_30sdp"

tools:text="HELLO THERE"
tools:drawableStart="@mipmap/ic_launcher"


tools:ignore="RtlSymmetry" />

<!-- Fun fact, if I put an Image button, the spinner fails to put an onclick listener on the extended view -->
<ImageView
android:id="@+id/delete_account_button"
android:layout_width="@dimen/_52sdp"
android:layout_height="match_parent"
android:background="?attr/selectableItemBackground"
android:src="@drawable/ic_menu_delete_forever"

android:padding="@dimen/padding_moderate"
/>

</LinearLayout>

Loading