refresh authlib injector account && upload authlib injector account skin
This commit is contained in:
parent
9ff0670847
commit
2b323fb98d
|
@ -358,9 +358,9 @@ public final class Accounts {
|
|||
// ==== authlib-injector ====
|
||||
private static AuthlibInjectorArtifactProvider createAuthlibInjectorArtifactProvider() {
|
||||
String authlibinjectorLocation = FCLPath.AUTHLIB_INJECTOR_PATH;
|
||||
if (authlibinjectorLocation == null) {
|
||||
if (!new File(authlibinjectorLocation).exists()) {
|
||||
return new AuthlibInjectorDownloader(
|
||||
new File(FCLPath.AUTHLIB_INJECTOR_PATH).toPath(),
|
||||
new File(authlibinjectorLocation).toPath(),
|
||||
DownloadProviders::getDownloadProvider) {
|
||||
@Override
|
||||
public Optional<AuthlibInjectorArtifactInfo> getArtifactInfoImmediately() {
|
||||
|
|
|
@ -10,6 +10,7 @@ import com.tungsten.fcl.R;
|
|||
import com.tungsten.fcl.setting.Accounts;
|
||||
import com.tungsten.fcl.ui.UIManager;
|
||||
import com.tungsten.fclcore.auth.Account;
|
||||
import com.tungsten.fclcore.auth.authlibinjector.AuthlibInjectorAccount;
|
||||
import com.tungsten.fclcore.fakefx.beans.binding.Bindings;
|
||||
import com.tungsten.fclcore.fakefx.collections.ObservableList;
|
||||
import com.tungsten.fclcore.task.Schedulers;
|
||||
|
@ -136,16 +137,38 @@ public class AccountListAdapter extends FCLAdapter {
|
|||
});
|
||||
viewHolder.skin.setOnClickListener(v -> {
|
||||
try {
|
||||
Task<?> uploadTask = Objects.requireNonNull(account.uploadSkin()).get();
|
||||
if (uploadTask != null) {
|
||||
viewHolder.skin.setVisibility(View.GONE);
|
||||
viewHolder.skinProgress.setVisibility(View.VISIBLE);
|
||||
uploadTask
|
||||
.whenComplete(Schedulers.androidUIThread(), ex -> {
|
||||
viewHolder.skin.setVisibility(View.VISIBLE);
|
||||
viewHolder.skinProgress.setVisibility(View.GONE);
|
||||
})
|
||||
.start();
|
||||
if (account.getAccount() instanceof AuthlibInjectorAccount) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
Task<?> uploadTask = Objects.requireNonNull(account.uploadSkin()).get();
|
||||
Schedulers.androidUIThread().execute(() -> {
|
||||
if (uploadTask != null) {
|
||||
viewHolder.skin.setVisibility(View.GONE);
|
||||
viewHolder.skinProgress.setVisibility(View.VISIBLE);
|
||||
uploadTask
|
||||
.whenComplete(Schedulers.androidUIThread(), ex -> {
|
||||
viewHolder.skin.setVisibility(View.VISIBLE);
|
||||
viewHolder.skinProgress.setVisibility(View.GONE);
|
||||
})
|
||||
.start();
|
||||
}
|
||||
});
|
||||
} catch (ExecutionException | InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}).start();
|
||||
} else {
|
||||
Task<?> uploadTask = Objects.requireNonNull(account.uploadSkin()).get();
|
||||
if (uploadTask != null) {
|
||||
viewHolder.skin.setVisibility(View.GONE);
|
||||
viewHolder.skinProgress.setVisibility(View.VISIBLE);
|
||||
uploadTask
|
||||
.whenComplete(Schedulers.androidUIThread(), ex -> {
|
||||
viewHolder.skin.setVisibility(View.VISIBLE);
|
||||
viewHolder.skinProgress.setVisibility(View.GONE);
|
||||
})
|
||||
.start();
|
||||
}
|
||||
}
|
||||
} catch (ExecutionException | InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
|
|
|
@ -168,7 +168,10 @@ public class AccountListItem {
|
|||
ArrayList<String> suffix = new ArrayList<>();
|
||||
suffix.add(".png");
|
||||
builder.setSuffix(suffix);
|
||||
builder.create().browse(MainActivity.getInstance(), RequestCodes.SELECT_SKIN_CODE, (requestCode, resultCode, data) -> {
|
||||
|
||||
CountDownLatch latch = new CountDownLatch(1);
|
||||
|
||||
Schedulers.androidUIThread().execute(() -> builder.create().browse(MainActivity.getInstance(), RequestCodes.SELECT_SKIN_CODE, (requestCode, resultCode, data) -> {
|
||||
if (requestCode == RequestCodes.SELECT_SKIN_CODE && resultCode == Activity.RESULT_OK && data != null) {
|
||||
String selectedFile = FileBrowser.getSelectedFiles(data).get(0);
|
||||
if (selectedFile == null) {
|
||||
|
@ -205,7 +208,14 @@ public class AccountListItem {
|
|||
} else {
|
||||
completableFuture.complete(null);
|
||||
}
|
||||
});
|
||||
latch.countDown();
|
||||
}));
|
||||
|
||||
try {
|
||||
latch.await();
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return completableFuture;
|
||||
}
|
||||
|
|
|
@ -15,6 +15,7 @@ import com.tungsten.fcl.setting.Accounts;
|
|||
import com.tungsten.fclcore.auth.authlibinjector.AuthlibInjectorServer;
|
||||
import com.tungsten.fclcore.fakefx.beans.InvalidationListener;
|
||||
import com.tungsten.fclcore.fakefx.collections.ObservableList;
|
||||
import com.tungsten.fclcore.task.Schedulers;
|
||||
import com.tungsten.fcllibrary.component.FCLAdapter;
|
||||
import com.tungsten.fcllibrary.component.view.FCLImageButton;
|
||||
import com.tungsten.fcllibrary.component.view.FCLTextView;
|
||||
|
@ -27,7 +28,7 @@ public class ServerListAdapter extends FCLAdapter {
|
|||
super(context);
|
||||
list = config().getAuthlibInjectorServers();
|
||||
|
||||
list.addListener((InvalidationListener) i -> notifyDataSetChanged());
|
||||
list.addListener((InvalidationListener) i -> Schedulers.androidUIThread().execute(this::notifyDataSetChanged));
|
||||
}
|
||||
|
||||
static class ViewHolder {
|
||||
|
|
Loading…
Reference in New Issue