mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 06:17:57 +01:00 
			
		
		
		
	Convert remaining Java files (#2435)
This commit is contained in:
		| @@ -1,139 +0,0 @@ | ||||
| package eu.kanade.tachiyomi.ui.base.controller; | ||||
|  | ||||
| import android.app.Dialog; | ||||
| import android.content.DialogInterface; | ||||
| import android.os.Bundle; | ||||
| import androidx.annotation.NonNull; | ||||
| import androidx.annotation.Nullable; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import android.view.ViewGroup; | ||||
|  | ||||
| import com.bluelinelabs.conductor.RestoreViewOnCreateController; | ||||
| import com.bluelinelabs.conductor.Router; | ||||
| import com.bluelinelabs.conductor.RouterTransaction; | ||||
| import com.bluelinelabs.conductor.changehandler.SimpleSwapChangeHandler; | ||||
|  | ||||
| /** | ||||
|  * A controller that displays a dialog window, floating on top of its activity's window. | ||||
|  * This is a wrapper over {@link Dialog} object like {@link android.app.DialogFragment}. | ||||
|  * | ||||
|  * <p>Implementations should override this class and implement {@link #onCreateDialog(Bundle)} to create a custom dialog, such as an {@link android.app.AlertDialog} | ||||
|  */ | ||||
| public abstract class DialogController extends RestoreViewOnCreateController { | ||||
|  | ||||
|     private static final String SAVED_DIALOG_STATE_TAG = "android:savedDialogState"; | ||||
|  | ||||
|     private Dialog dialog; | ||||
|     private boolean dismissed; | ||||
|  | ||||
|     /** | ||||
|      * Convenience constructor for use when no arguments are needed. | ||||
|      */ | ||||
|     protected DialogController() { | ||||
|         super(null); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Constructor that takes arguments that need to be retained across restarts. | ||||
|      * | ||||
|      * @param args Any arguments that need to be retained. | ||||
|      */ | ||||
|     protected DialogController(@Nullable Bundle args) { | ||||
|         super(args); | ||||
|     } | ||||
|  | ||||
|     @NonNull | ||||
|     @Override | ||||
|     final protected View onCreateView(@NonNull LayoutInflater inflater, @NonNull ViewGroup container, @Nullable Bundle savedViewState) { | ||||
|         dialog = onCreateDialog(savedViewState); | ||||
|         //noinspection ConstantConditions | ||||
|         dialog.setOwnerActivity(getActivity()); | ||||
|         dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { | ||||
|             @Override | ||||
|             public void onDismiss(DialogInterface dialog) { | ||||
|                 dismissDialog(); | ||||
|             } | ||||
|         }); | ||||
|         if (savedViewState != null) { | ||||
|             Bundle dialogState = savedViewState.getBundle(SAVED_DIALOG_STATE_TAG); | ||||
|             if (dialogState != null) { | ||||
|                 dialog.onRestoreInstanceState(dialogState); | ||||
|             } | ||||
|         } | ||||
|         return new View(getActivity());//stub view | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onSaveViewState(@NonNull View view, @NonNull Bundle outState) { | ||||
|         super.onSaveViewState(view, outState); | ||||
|         Bundle dialogState = dialog.onSaveInstanceState(); | ||||
|         outState.putBundle(SAVED_DIALOG_STATE_TAG, dialogState); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onAttach(@NonNull View view) { | ||||
|         super.onAttach(view); | ||||
|         dialog.show(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onDetach(@NonNull View view) { | ||||
|         super.onDetach(view); | ||||
|         dialog.hide(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void onDestroyView(@NonNull View view) { | ||||
|         super.onDestroyView(view); | ||||
|         dialog.setOnDismissListener(null); | ||||
|         dialog.dismiss(); | ||||
|         dialog = null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Display the dialog, create a transaction and pushing the controller. | ||||
|      * @param router The router on which the transaction will be applied | ||||
|      */ | ||||
|     public void showDialog(@NonNull Router router) { | ||||
|         showDialog(router, null); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Display the dialog, create a transaction and pushing the controller. | ||||
|      * @param router The router on which the transaction will be applied | ||||
|      * @param tag The tag for this controller | ||||
|      */ | ||||
|     public void showDialog(@NonNull Router router, @Nullable String tag) { | ||||
|         dismissed = false; | ||||
|         router.pushController(RouterTransaction.with(this) | ||||
|                 .pushChangeHandler(new SimpleSwapChangeHandler(false)) | ||||
|                 .popChangeHandler(new SimpleSwapChangeHandler(false)) | ||||
|                 .tag(tag)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Dismiss the dialog and pop this controller | ||||
|      */ | ||||
|     public void dismissDialog() { | ||||
|         if (dismissed) { | ||||
|             return; | ||||
|         } | ||||
|         getRouter().popController(this); | ||||
|         dismissed = true; | ||||
|     } | ||||
|  | ||||
|     @Nullable | ||||
|     protected Dialog getDialog() { | ||||
|         return dialog; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Build your own custom Dialog container such as an {@link android.app.AlertDialog} | ||||
|      * | ||||
|      * @param savedViewState A bundle for the view's state, which would have been created in {@link #onSaveViewState(View, Bundle)} or {@code null} if no saved state exists. | ||||
|      * @return Return a new Dialog instance to be displayed by the Controller | ||||
|      */ | ||||
|     @NonNull | ||||
|     protected abstract Dialog onCreateDialog(@Nullable Bundle savedViewState); | ||||
| } | ||||
| @@ -0,0 +1,118 @@ | ||||
| package eu.kanade.tachiyomi.ui.base.controller | ||||
|  | ||||
| import android.app.Dialog | ||||
| import android.os.Bundle | ||||
| import android.view.LayoutInflater | ||||
| import android.view.View | ||||
| import android.view.ViewGroup | ||||
| import com.bluelinelabs.conductor.RestoreViewOnCreateController | ||||
| import com.bluelinelabs.conductor.Router | ||||
| import com.bluelinelabs.conductor.RouterTransaction | ||||
| import com.bluelinelabs.conductor.changehandler.SimpleSwapChangeHandler | ||||
|  | ||||
| /** | ||||
|  * A controller that displays a dialog window, floating on top of its activity's window. | ||||
|  * This is a wrapper over [Dialog] object like [android.app.DialogFragment]. | ||||
|  * | ||||
|  * | ||||
|  * Implementations should override this class and implement [.onCreateDialog] to create a custom dialog, such as an [android.app.AlertDialog] | ||||
|  */ | ||||
| abstract class DialogController : RestoreViewOnCreateController { | ||||
|  | ||||
|     protected var dialog: Dialog? = null | ||||
|         private set | ||||
|  | ||||
|     private var dismissed = false | ||||
|  | ||||
|     /** | ||||
|      * Convenience constructor for use when no arguments are needed. | ||||
|      */ | ||||
|     protected constructor() : super(null) | ||||
|  | ||||
|     /** | ||||
|      * Constructor that takes arguments that need to be retained across restarts. | ||||
|      * | ||||
|      * @param args Any arguments that need to be retained. | ||||
|      */ | ||||
|     protected constructor(args: Bundle?) : super(args) | ||||
|  | ||||
|     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup, savedViewState: Bundle?): View { | ||||
|         dialog = onCreateDialog(savedViewState) | ||||
|         dialog!!.ownerActivity = activity | ||||
|         dialog!!.setOnDismissListener { dismissDialog() } | ||||
|         if (savedViewState != null) { | ||||
|             val dialogState = savedViewState.getBundle(SAVED_DIALOG_STATE_TAG) | ||||
|             if (dialogState != null) { | ||||
|                 dialog!!.onRestoreInstanceState(dialogState) | ||||
|             } | ||||
|         } | ||||
|         return View(activity) //stub view | ||||
|     } | ||||
|  | ||||
|     override fun onSaveViewState(view: View, outState: Bundle) { | ||||
|         super.onSaveViewState(view, outState) | ||||
|         val dialogState = dialog!!.onSaveInstanceState() | ||||
|         outState.putBundle(SAVED_DIALOG_STATE_TAG, dialogState) | ||||
|     } | ||||
|  | ||||
|     override fun onAttach(view: View) { | ||||
|         super.onAttach(view) | ||||
|         dialog!!.show() | ||||
|     } | ||||
|  | ||||
|     override fun onDetach(view: View) { | ||||
|         super.onDetach(view) | ||||
|         dialog!!.hide() | ||||
|     } | ||||
|  | ||||
|     override fun onDestroyView(view: View) { | ||||
|         super.onDestroyView(view) | ||||
|         dialog!!.setOnDismissListener(null) | ||||
|         dialog!!.dismiss() | ||||
|         dialog = null | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Display the dialog, create a transaction and pushing the controller. | ||||
|      * @param router The router on which the transaction will be applied | ||||
|      */ | ||||
|     open fun showDialog(router: Router) { | ||||
|         showDialog(router, null) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Display the dialog, create a transaction and pushing the controller. | ||||
|      * @param router The router on which the transaction will be applied | ||||
|      * @param tag The tag for this controller | ||||
|      */ | ||||
|     fun showDialog(router: Router, tag: String?) { | ||||
|         dismissed = false | ||||
|         router.pushController(RouterTransaction.with(this) | ||||
|                 .pushChangeHandler(SimpleSwapChangeHandler(false)) | ||||
|                 .popChangeHandler(SimpleSwapChangeHandler(false)) | ||||
|                 .tag(tag)) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Dismiss the dialog and pop this controller | ||||
|      */ | ||||
|     fun dismissDialog() { | ||||
|         if (dismissed) { | ||||
|             return | ||||
|         } | ||||
|         router.popController(this) | ||||
|         dismissed = true | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Build your own custom Dialog container such as an [android.app.AlertDialog] | ||||
|      * | ||||
|      * @param savedViewState A bundle for the view's state, which would have been created in [.onSaveViewState] or `null` if no saved state exists. | ||||
|      * @return Return a new Dialog instance to be displayed by the Controller | ||||
|      */ | ||||
|     protected abstract fun onCreateDialog(savedViewState: Bundle?): Dialog | ||||
|  | ||||
|     companion object { | ||||
|         private const val SAVED_DIALOG_STATE_TAG = "android:savedDialogState" | ||||
|     } | ||||
| } | ||||
| @@ -13,7 +13,7 @@ abstract class NucleusController<P : Presenter<*>>(val bundle: Bundle? = null) : | ||||
|     private val delegate = NucleusConductorDelegate(this) | ||||
|  | ||||
|     val presenter: P | ||||
|         get() = delegate.presenter | ||||
|         get() = delegate.presenter!! | ||||
|  | ||||
|     init { | ||||
|         addLifecycleListener(NucleusConductorLifecycleListener(delegate)) | ||||
|   | ||||
| @@ -1,61 +0,0 @@ | ||||
| package eu.kanade.tachiyomi.ui.base.presenter; | ||||
|  | ||||
| import android.os.Bundle; | ||||
| import androidx.annotation.Nullable; | ||||
|  | ||||
| import nucleus.factory.PresenterFactory; | ||||
| import nucleus.presenter.Presenter; | ||||
|  | ||||
| public class NucleusConductorDelegate<P extends Presenter> { | ||||
|  | ||||
|     @Nullable private P presenter; | ||||
|     @Nullable private Bundle bundle; | ||||
|  | ||||
|     private PresenterFactory<P> factory; | ||||
|  | ||||
|     public NucleusConductorDelegate(PresenterFactory<P> creator) { | ||||
|         this.factory = creator; | ||||
|     } | ||||
|  | ||||
|     public P getPresenter() { | ||||
|         if (presenter == null) { | ||||
|             presenter = factory.createPresenter(); | ||||
|             presenter.create(bundle); | ||||
|             bundle = null; | ||||
|         } | ||||
|         return presenter; | ||||
|     } | ||||
|  | ||||
|     Bundle onSaveInstanceState() { | ||||
|         Bundle bundle = new Bundle(); | ||||
| //        getPresenter(); // Workaround a crash related to saving instance state with child routers | ||||
|         if (presenter != null) { | ||||
|             presenter.save(bundle); | ||||
|         } | ||||
|         return bundle; | ||||
|     } | ||||
|  | ||||
|     void onRestoreInstanceState(Bundle presenterState) { | ||||
|         bundle = presenterState; | ||||
|     } | ||||
|  | ||||
|     void onTakeView(Object view) { | ||||
|         getPresenter(); | ||||
|         if (presenter != null) { | ||||
|             //noinspection unchecked | ||||
|             presenter.takeView(view); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void onDropView() { | ||||
|         if (presenter != null) { | ||||
|             presenter.dropView(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void onDestroy() { | ||||
|         if (presenter != null) { | ||||
|             presenter.destroy(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,45 @@ | ||||
| package eu.kanade.tachiyomi.ui.base.presenter | ||||
|  | ||||
| import android.os.Bundle | ||||
| import nucleus.factory.PresenterFactory | ||||
| import nucleus.presenter.Presenter | ||||
|  | ||||
| class NucleusConductorDelegate<P : Presenter<*>>(private val factory: PresenterFactory<P>) { | ||||
|  | ||||
|     var presenter: P? = null | ||||
|         get() { | ||||
|             if (field == null) { | ||||
|                 field = factory.createPresenter() | ||||
|                 field!!.create(bundle) | ||||
|                 bundle = null | ||||
|             } | ||||
|             return field | ||||
|         } | ||||
|  | ||||
|     private var bundle: Bundle? = null | ||||
|  | ||||
|     fun onSaveInstanceState(): Bundle { | ||||
|         val bundle = Bundle() | ||||
|         //        getPresenter(); // Workaround a crash related to saving instance state with child routers | ||||
|         presenter?.save(bundle) | ||||
|         return bundle | ||||
|     } | ||||
|  | ||||
|     fun onRestoreInstanceState(presenterState: Bundle?) { | ||||
|         bundle = presenterState | ||||
|     } | ||||
|  | ||||
|     @Suppress("TYPE_MISMATCH") | ||||
|     fun onTakeView(view: Any) { | ||||
|         presenter?.takeView(view) | ||||
|     } | ||||
|  | ||||
|     fun onDropView() { | ||||
|         presenter?.dropView() | ||||
|     } | ||||
|  | ||||
|     fun onDestroy() { | ||||
|         presenter?.destroy() | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,44 +0,0 @@ | ||||
| package eu.kanade.tachiyomi.ui.base.presenter; | ||||
|  | ||||
| import android.os.Bundle; | ||||
| import androidx.annotation.NonNull; | ||||
| import android.view.View; | ||||
|  | ||||
| import com.bluelinelabs.conductor.Controller; | ||||
|  | ||||
| public class NucleusConductorLifecycleListener extends Controller.LifecycleListener { | ||||
|  | ||||
|     private static final String PRESENTER_STATE_KEY = "presenter_state"; | ||||
|  | ||||
|     private NucleusConductorDelegate delegate; | ||||
|  | ||||
|     public NucleusConductorLifecycleListener(NucleusConductorDelegate delegate) { | ||||
|         this.delegate = delegate; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void postCreateView(@NonNull Controller controller, @NonNull View view) { | ||||
|         delegate.onTakeView(controller); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void preDestroyView(@NonNull Controller controller, @NonNull View view) { | ||||
|         delegate.onDropView(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void preDestroy(@NonNull Controller controller) { | ||||
|         delegate.onDestroy(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onSaveInstanceState(@NonNull Controller controller, @NonNull Bundle outState) { | ||||
|         outState.putBundle(PRESENTER_STATE_KEY, delegate.onSaveInstanceState()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void onRestoreInstanceState(@NonNull Controller controller, @NonNull Bundle savedInstanceState) { | ||||
|         delegate.onRestoreInstanceState(savedInstanceState.getBundle(PRESENTER_STATE_KEY)); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,33 @@ | ||||
| package eu.kanade.tachiyomi.ui.base.presenter | ||||
|  | ||||
| import android.os.Bundle | ||||
| import android.view.View | ||||
| import com.bluelinelabs.conductor.Controller | ||||
|  | ||||
| class NucleusConductorLifecycleListener(private val delegate: NucleusConductorDelegate<*>) : Controller.LifecycleListener() { | ||||
|  | ||||
|     override fun postCreateView(controller: Controller, view: View) { | ||||
|         delegate.onTakeView(controller) | ||||
|     } | ||||
|  | ||||
|     override fun preDestroyView(controller: Controller, view: View) { | ||||
|         delegate.onDropView() | ||||
|     } | ||||
|  | ||||
|     override fun preDestroy(controller: Controller) { | ||||
|         delegate.onDestroy() | ||||
|     } | ||||
|  | ||||
|     override fun onSaveInstanceState(controller: Controller, outState: Bundle) { | ||||
|         outState.putBundle(PRESENTER_STATE_KEY, delegate.onSaveInstanceState()) | ||||
|     } | ||||
|  | ||||
|     override fun onRestoreInstanceState(controller: Controller, savedInstanceState: Bundle) { | ||||
|         delegate.onRestoreInstanceState(savedInstanceState.getBundle(PRESENTER_STATE_KEY)) | ||||
|     } | ||||
|  | ||||
|     companion object { | ||||
|         private const val PRESENTER_STATE_KEY = "presenter_state" | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -62,7 +62,7 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() { | ||||
|     /** | ||||
|      * The maximum bitmap size supported by the device. | ||||
|      */ | ||||
|     val maxBitmapSize by lazy { GLUtil.getMaxTextureSize() } | ||||
|     val maxBitmapSize by lazy { GLUtil.maxTextureSize } | ||||
|  | ||||
|     /** | ||||
|      * Viewer used to display the pages (pager, webtoon, ...). | ||||
|   | ||||
| @@ -1,54 +0,0 @@ | ||||
| package eu.kanade.tachiyomi.util; | ||||
|  | ||||
| import javax.microedition.khronos.egl.EGL10; | ||||
| import javax.microedition.khronos.egl.EGLConfig; | ||||
| import javax.microedition.khronos.egl.EGLContext; | ||||
| import javax.microedition.khronos.egl.EGLDisplay; | ||||
|  | ||||
| public final class GLUtil { | ||||
|  | ||||
|     private GLUtil() throws InstantiationException { | ||||
|         throw new InstantiationException("This class is not for instantiation"); | ||||
|     } | ||||
|  | ||||
|     public static int getMaxTextureSize() { | ||||
|         // Safe minimum default size | ||||
|         final int IMAGE_MAX_BITMAP_DIMENSION = 2048; | ||||
|  | ||||
|         // Get EGL Display | ||||
|         EGL10 egl = (EGL10) EGLContext.getEGL(); | ||||
|         EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); | ||||
|  | ||||
|         // Initialise | ||||
|         int[] version = new int[2]; | ||||
|         egl.eglInitialize(display, version); | ||||
|  | ||||
|         // Query total number of configurations | ||||
|         int[] totalConfigurations = new int[1]; | ||||
|         egl.eglGetConfigs(display, null, 0, totalConfigurations); | ||||
|  | ||||
|         // Query actual list configurations | ||||
|         EGLConfig[] configurationsList = new EGLConfig[totalConfigurations[0]]; | ||||
|         egl.eglGetConfigs(display, configurationsList, totalConfigurations[0], totalConfigurations); | ||||
|  | ||||
|         int[] textureSize = new int[1]; | ||||
|         int maximumTextureSize = 0; | ||||
|  | ||||
|         // Iterate through all the configurations to located the maximum texture size | ||||
|         for (int i = 0; i < totalConfigurations[0]; i++) { | ||||
|             // Only need to check for width since opengl textures are always squared | ||||
|             egl.eglGetConfigAttrib(display, configurationsList[i], EGL10.EGL_MAX_PBUFFER_WIDTH, textureSize); | ||||
|  | ||||
|             // Keep track of the maximum texture size | ||||
|             if (maximumTextureSize < textureSize[0]) | ||||
|                 maximumTextureSize = textureSize[0]; | ||||
|         } | ||||
|  | ||||
|         // Release | ||||
|         egl.eglTerminate(display); | ||||
|  | ||||
|         // Return largest texture size found, or default | ||||
|         return Math.max(maximumTextureSize, IMAGE_MAX_BITMAP_DIMENSION); | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										54
									
								
								app/src/main/java/eu/kanade/tachiyomi/util/GLUtil.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								app/src/main/java/eu/kanade/tachiyomi/util/GLUtil.kt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,54 @@ | ||||
| package eu.kanade.tachiyomi.util | ||||
|  | ||||
| import javax.microedition.khronos.egl.EGL10 | ||||
| import javax.microedition.khronos.egl.EGLConfig | ||||
| import javax.microedition.khronos.egl.EGLContext | ||||
| import kotlin.math.max | ||||
|  | ||||
| class GLUtil private constructor() { | ||||
|     companion object { | ||||
|         // Safe minimum default size | ||||
|         private const val IMAGE_MAX_BITMAP_DIMENSION = 2048 | ||||
|  | ||||
|         val maxTextureSize: Int | ||||
|             get() { | ||||
|                 // Get EGL Display | ||||
|                 val egl = EGLContext.getEGL() as EGL10 | ||||
|                 val display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY) | ||||
|  | ||||
|                 // Initialise | ||||
|                 val version = IntArray(2) | ||||
|                 egl.eglInitialize(display, version) | ||||
|  | ||||
|                 // Query total number of configurations | ||||
|                 val totalConfigurations = IntArray(1) | ||||
|                 egl.eglGetConfigs(display, null, 0, totalConfigurations) | ||||
|  | ||||
|                 // Query actual list configurations | ||||
|                 val configurationsList = arrayOfNulls<EGLConfig>(totalConfigurations[0]) | ||||
|                 egl.eglGetConfigs(display, configurationsList, totalConfigurations[0], totalConfigurations) | ||||
|  | ||||
|                 val textureSize = IntArray(1) | ||||
|                 var maximumTextureSize = 0 | ||||
|  | ||||
|                 // Iterate through all the configurations to located the maximum texture size | ||||
|                 for (i in 0 until totalConfigurations[0]) { | ||||
|                     // Only need to check for width since opengl textures are always squared | ||||
|                     egl.eglGetConfigAttrib(display, configurationsList[i], EGL10.EGL_MAX_PBUFFER_WIDTH, textureSize) | ||||
|  | ||||
|                     // Keep track of the maximum texture size | ||||
|                     if (maximumTextureSize < textureSize[0]) maximumTextureSize = textureSize[0] | ||||
|                 } | ||||
|  | ||||
|                 // Release | ||||
|                 egl.eglTerminate(display) | ||||
|  | ||||
|                 // Return largest texture size found, or default | ||||
|                 return max(maximumTextureSize, IMAGE_MAX_BITMAP_DIMENSION) | ||||
|             } | ||||
|     } | ||||
|  | ||||
|     init { | ||||
|         throw InstantiationException("This class is not for instantiation") | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user