]> git.eshelyaron.com Git - emacs.git/commitdiff
Update Android port
authorPo Lu <luangruo@yahoo.com>
Wed, 1 Mar 2023 04:00:46 +0000 (12:00 +0800)
committerPo Lu <luangruo@yahoo.com>
Wed, 1 Mar 2023 04:00:46 +0000 (12:00 +0800)
* java/Makefile.in (ETAGS, clean): New rules to generate tags.
* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity):
* java/org/gnu/emacs/EmacsApplication.java (EmacsApplication):
* java/org/gnu/emacs/EmacsContextMenu.java (EmacsContextMenu):
* java/org/gnu/emacs/EmacsCopyArea.java (EmacsCopyArea):
* java/org/gnu/emacs/EmacsDialog.java (EmacsDialog)::(dialog.
Then):
* java/org/gnu/emacs/EmacsDocumentsProvider.java
(EmacsDocumentsProvider):
* java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine):
* java/org/gnu/emacs/EmacsDrawPoint.java (EmacsDrawPoint):
* java/org/gnu/emacs/EmacsDrawRectangle.java
(EmacsDrawRectangle):
* java/org/gnu/emacs/EmacsFillPolygon.java (EmacsFillPolygon):
* java/org/gnu/emacs/EmacsFillRectangle.java
(EmacsFillRectangle):
* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection):
* java/org/gnu/emacs/EmacsNative.java (EmacsNative):
* java/org/gnu/emacs/EmacsNoninteractive.java
(EmacsNoninteractive):
* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity):
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
* java/org/gnu/emacs/EmacsPreferencesActivity.java
(EmacsPreferencesActivity):
* java/org/gnu/emacs/EmacsSdk11Clipboard.java
(EmacsSdk11Clipboard):
* java/org/gnu/emacs/EmacsSdk23FontDriver.java
(EmacsSdk23FontDriver):
* java/org/gnu/emacs/EmacsSdk8Clipboard.java
(EmacsSdk8Clipboard):
* java/org/gnu/emacs/EmacsService.java (EmacsService):
* java/org/gnu/emacs/EmacsSurfaceView.java (EmacsSurfaceView)
(buffers):
* java/org/gnu/emacs/EmacsView.java (EmacsView, ViewGroup):
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow, drawables):
* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
(EmacsWindowAttachmentManager): Make classes final where
appropriate.

27 files changed:
java/Makefile.in
java/org/gnu/emacs/EmacsActivity.java
java/org/gnu/emacs/EmacsApplication.java
java/org/gnu/emacs/EmacsContextMenu.java
java/org/gnu/emacs/EmacsCopyArea.java
java/org/gnu/emacs/EmacsDialog.java
java/org/gnu/emacs/EmacsDocumentsProvider.java
java/org/gnu/emacs/EmacsDrawLine.java
java/org/gnu/emacs/EmacsDrawPoint.java
java/org/gnu/emacs/EmacsDrawRectangle.java
java/org/gnu/emacs/EmacsFillPolygon.java
java/org/gnu/emacs/EmacsFillRectangle.java
java/org/gnu/emacs/EmacsGC.java
java/org/gnu/emacs/EmacsInputConnection.java
java/org/gnu/emacs/EmacsNative.java
java/org/gnu/emacs/EmacsNoninteractive.java
java/org/gnu/emacs/EmacsOpenActivity.java
java/org/gnu/emacs/EmacsPixmap.java
java/org/gnu/emacs/EmacsPreferencesActivity.java
java/org/gnu/emacs/EmacsSdk11Clipboard.java
java/org/gnu/emacs/EmacsSdk23FontDriver.java
java/org/gnu/emacs/EmacsSdk8Clipboard.java
java/org/gnu/emacs/EmacsService.java
java/org/gnu/emacs/EmacsSurfaceView.java
java/org/gnu/emacs/EmacsView.java
java/org/gnu/emacs/EmacsWindow.java
java/org/gnu/emacs/EmacsWindowAttachmentManager.java

index 7ba05f6c9a310b8e4af127111fe9e6b771329739..bff021752c71a1a34d0f8854164d72650c2be551 100644 (file)
@@ -281,9 +281,23 @@ $(APK_NAME): classes.dex emacs.apk-in emacs.keystore
        $(AM_V_SILENT) $(APKSIGNER) $(SIGN_EMACS_V2) $@
        $(AM_V_SILENT) rm -f $@.unaligned *.idsig
 
+# TAGS generation.
+
+ETAGS = $(top_builddir)/lib-src/etags
+
+$(ETAGS): FORCE
+       $(MAKE) -C ../lib-src $(notdir $@)
+
+tagsfiles = $(JAVA_FILES) $(RESOURCE_FILE)
+
+.PHONY: tags FORCE
+tags: TAGS
+TAGS: $(ETAGS) $(tagsfiles)
+       $(AM_V_GEN) $(ETAGS) $(tagsfiles)
+
 clean:
        rm -f *.apk emacs.apk-in *.dex *.unaligned *.class *.idsig
-       rm -rf install-temp $(RESOURCE_FILE)
+       rm -rf install-temp $(RESOURCE_FILE) TAGS
        find . -name '*.class' -delete
 
 maintainer-clean distclean bootstrap-clean: clean
index 7e09e60898404d95d0e171af0caacb1a89f1309f..0ee8c2398997de37dc05874738872ccddfcab391 100644 (file)
@@ -108,7 +108,7 @@ public class EmacsActivity extends Activity
   }
 
   @Override
-  public void
+  public final void
   detachWindow ()
   {
     syncFullscreenWith (null);
@@ -131,7 +131,7 @@ public class EmacsActivity extends Activity
   }
 
   @Override
-  public void
+  public final void
   attachWindow (EmacsWindow child)
   {
     Log.d (TAG, "attachWindow: " + child);
@@ -161,21 +161,21 @@ public class EmacsActivity extends Activity
   }
 
   @Override
-  public void
+  public final void
   destroy ()
   {
     finish ();
   }
 
   @Override
-  public EmacsWindow
+  public final EmacsWindow
   getAttachedWindow ()
   {
     return window;
   }
 
   @Override
-  public void
+  public final void
   onCreate (Bundle savedInstanceState)
   {
     FrameLayout.LayoutParams params;
@@ -238,7 +238,7 @@ public class EmacsActivity extends Activity
   }
 
   @Override
-  public void
+  public final void
   onWindowFocusChanged (boolean isFocused)
   {
     Log.d (TAG, ("onWindowFocusChanged: "
@@ -256,7 +256,7 @@ public class EmacsActivity extends Activity
   }
 
   @Override
-  public void
+  public final void
   onPause ()
   {
     isPaused = true;
@@ -266,7 +266,7 @@ public class EmacsActivity extends Activity
   }
 
   @Override
-  public void
+  public final void
   onResume ()
   {
     isPaused = false;
@@ -279,7 +279,7 @@ public class EmacsActivity extends Activity
   }
 
   @Override
-  public void
+  public final void
   onContextMenuClosed (Menu menu)
   {
     Log.d (TAG, "onContextMenuClosed: " + menu);
@@ -298,7 +298,7 @@ public class EmacsActivity extends Activity
   }
 
   @SuppressWarnings ("deprecation")
-  public void
+  public final void
   syncFullscreenWith (EmacsWindow emacsWindow)
   {
     WindowInsetsController controller;
@@ -372,7 +372,7 @@ public class EmacsActivity extends Activity
   }
 
   @Override
-  public void
+  public final void
   onAttachedToWindow ()
   {
     super.onAttachedToWindow ();
index 6a065165eb11b89fb005f2cf15a372cb3d9ea935..1009972174451a82115798e0962c40ac3c63ee4f 100644 (file)
@@ -27,7 +27,7 @@ import android.content.Context;
 import android.app.Application;
 import android.util.Log;
 
-public class EmacsApplication extends Application
+public final class EmacsApplication extends Application
 {
   private static final String TAG = "EmacsApplication";
 
index 6b3ae0c6de933f14aa1a43f742ab77143f1638e8..0de292af21a932e4eb969be8d7b4169148985c5c 100644 (file)
@@ -42,7 +42,7 @@ import android.widget.PopupMenu;
    Android menu, which can be turned into a popup (or other kind of)
    menu.  */
 
-public class EmacsContextMenu
+public final class EmacsContextMenu
 {
   private static final String TAG = "EmacsContextMenu";
 
index 1daa219054298f9f251cd9a4c3844f7f0423268a..f69b0cde866946da90e847c1d04ca90c833b1f65 100644 (file)
@@ -27,7 +27,7 @@ import android.graphics.PorterDuffXfermode;
 import android.graphics.Rect;
 import android.graphics.Xfermode;
 
-public class EmacsCopyArea
+public final class EmacsCopyArea
 {
   private static Xfermode overAlu;
 
index 9f9124ce99cf73fde12b108ca78ad05ef1aeb102..80a5e5f736974f3273dbbd5e23dd22fc20a0ac7a 100644 (file)
@@ -38,7 +38,7 @@ import android.view.ViewGroup;
    describes a single alert dialog.  Then, `inflate' turns it into
    AlertDialog.  */
 
-public class EmacsDialog implements DialogInterface.OnDismissListener
+public final class EmacsDialog implements DialogInterface.OnDismissListener
 {
   private static final String TAG = "EmacsDialog";
 
index 3c3c7ead3c5f157facd2a469aa59b7dabbf7eabc..901c3b909e06fcf31b16f73f1afd9de9fe9c9acd 100644 (file)
@@ -48,7 +48,7 @@ import java.io.IOException;
 
    This functionality is only available on Android 19 and later.  */
 
-public class EmacsDocumentsProvider extends DocumentsProvider
+public final class EmacsDocumentsProvider extends DocumentsProvider
 {
   /* Home directory.  This is the directory whose contents are
      initially returned to requesting applications.  */
index c6e5123bfcadc5bdef52ca6fa4a2ad0aabd5ec78..0b23138a36c5fa53479681cb00dc8ea1441b91ae 100644 (file)
@@ -29,7 +29,7 @@ import android.graphics.PorterDuffXfermode;
 import android.graphics.Rect;
 import android.graphics.Xfermode;
 
-public class EmacsDrawLine
+public final class EmacsDrawLine
 {
   public static void
   perform (EmacsDrawable drawable, EmacsGC gc,
index 3bc7be17961af590bf1debcc4457a690c5be8c90..de8ddf09cc4d9616dbf0e1d60d01f69d9e52748f 100644 (file)
@@ -19,7 +19,7 @@ along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
 
 package org.gnu.emacs;
 
-public class EmacsDrawPoint
+public final class EmacsDrawPoint
 {
   public static void
   perform (EmacsDrawable drawable,
index 695a8c6ea4467974b65ed059d6d893de2795d215..ce5e94e4a766b0e47c57d8032f489edd071e984a 100644 (file)
@@ -27,7 +27,7 @@ import android.graphics.RectF;
 
 import android.util.Log;
 
-public class EmacsDrawRectangle
+public final class EmacsDrawRectangle
 {
   public static void
   perform (EmacsDrawable drawable, EmacsGC gc,
index 22e2dd0d8a9c1b24d9850d4b3a87789e8b6a2340..d55a0b3aca8a15fc0ba8fcc2665cf5414ac85770 100644 (file)
@@ -29,7 +29,7 @@ import android.graphics.Point;
 import android.graphics.Rect;
 import android.graphics.RectF;
 
-public class EmacsFillPolygon
+public final class EmacsFillPolygon
 {
   public static void
   perform (EmacsDrawable drawable, EmacsGC gc, Point points[])
index aed0a540c8f8b7f17ca91083b5ea6cf2a24de847..4a0478b446f8fd98100d00f6b2755b52db83be16 100644 (file)
@@ -26,7 +26,7 @@ import android.graphics.Rect;
 
 import android.util.Log;
 
-public class EmacsFillRectangle
+public final class EmacsFillRectangle
 {
   public static void
   perform (EmacsDrawable drawable, EmacsGC gc,
index bdc27a1ca5b7f7767c59dcdd44ac2f02e1707eab..a7467cb9bd08ba51d9beb5087f6a0be69d0af093 100644 (file)
@@ -29,7 +29,7 @@ import android.graphics.Xfermode;
 /* X like graphics context structures.  Keep the enums in synch with
    androidgui.h! */
 
-public class EmacsGC extends EmacsHandleObject
+public final class EmacsGC extends EmacsHandleObject
 {
   public static final int GC_COPY = 0;
   public static final int GC_XOR  = 1;
index 834c2226c82418c1f0d72fa8ef36cc51e0b2588c..ed64c368857e31c0b4568a8379f985d2a0eb3fd4 100644 (file)
@@ -36,7 +36,7 @@ import android.util.Log;
 
    See EmacsEditable for more details.  */
 
-public class EmacsInputConnection extends BaseInputConnection
+public final class EmacsInputConnection extends BaseInputConnection
 {
   private static final String TAG = "EmacsInputConnection";
   private EmacsView view;
@@ -243,6 +243,15 @@ public class EmacsInputConnection extends BaseInputConnection
     return super.sendKeyEvent (key);
   }
 
+  @Override
+  public boolean
+  deleteSurroundingTextInCodePoints (int beforeLength, int afterLength)
+  {
+    /* This can be implemented the same way as
+       deleteSurroundingText.  */
+    return this.deleteSurroundingText (beforeLength, afterLength);
+  }
+
 \f
   /* Override functions which are not implemented.  */
 
index f0917a68120530bba0a96fc1acb774f87ff1f554..b12053530905dd55423ce854f6b8f966c3d4a7e2 100644 (file)
@@ -25,7 +25,7 @@ import android.content.res.AssetManager;
 import android.view.inputmethod.ExtractedText;
 import android.view.inputmethod.ExtractedTextRequest;
 
-public class EmacsNative
+public final class EmacsNative
 {
   /* List of native libraries that must be loaded during class
      initialization.  */
index 30901edb75fa7cf0dc2061b481eb302e262e1f42..f365037b311aff8c38f910c28f1623033b5490c3 100644 (file)
@@ -44,7 +44,7 @@ import java.lang.reflect.Method;
    initializes Emacs.  */
 
 @SuppressWarnings ("unchecked")
-public class EmacsNoninteractive
+public final class EmacsNoninteractive
 {
   private static String
   getLibraryDirectory (Context context)
index 87ce454a81607d01a580d49c52a8b77ffb64dd1c..fddd5331d2f026c1f0654f569b59a4855a5ef7f1 100644 (file)
@@ -68,7 +68,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 
-public class EmacsOpenActivity extends Activity
+public final class EmacsOpenActivity extends Activity
   implements DialogInterface.OnClickListener
 {
   private static final String TAG = "EmacsOpenActivity";
index a83d8f25542172efba576fc4db0264b12ad739ee..eb011bc5e65436b2f31165d2d3662b7f1a1bfe8d 100644 (file)
@@ -29,7 +29,7 @@ import android.os.Build;
 
 /* Drawable backed by bitmap.  */
 
-public class EmacsPixmap extends EmacsHandleObject
+public final class EmacsPixmap extends EmacsHandleObject
   implements EmacsDrawable
 {
   /* The depth of the bitmap.  This is not actually used, just defined
index 85639fe92364d5b167a20650e0542eeaac18c781..70934fa4bd42551583f26b7529d0ac0d43a5697a 100644 (file)
@@ -42,7 +42,7 @@ import android.preference.*;
    Unfortunately, there is no alternative that looks the same way.  */
 
 @SuppressWarnings ("deprecation")
-public class EmacsPreferencesActivity extends PreferenceActivity
+public final class EmacsPreferencesActivity extends PreferenceActivity
 {
   /* Restart Emacs with -Q.  Call EmacsThread.exit to kill Emacs now, and
      tell the system to EmacsActivity with some parameters later.  */
index ea35a4632997793a8f995e4389ab24c2820a0251..a05184513cdd596e37221c38b51eae42c57cd8a6 100644 (file)
@@ -32,7 +32,7 @@ import java.io.UnsupportedEncodingException;
 /* This class implements EmacsClipboard for Android 3.0 and later
    systems.  */
 
-public class EmacsSdk11Clipboard extends EmacsClipboard
+public final class EmacsSdk11Clipboard extends EmacsClipboard
   implements ClipboardManager.OnPrimaryClipChangedListener
 {
   private static final String TAG = "EmacsSdk11Clipboard";
index 11e128d57695ede735f5445d66d67649f038b3ec..aaba8dbd16605624b7a2e619a13660b185f321d8 100644 (file)
@@ -22,7 +22,7 @@ package org.gnu.emacs;
 import android.graphics.Paint;
 import android.graphics.Rect;
 
-public class EmacsSdk23FontDriver extends EmacsSdk7FontDriver
+public final class EmacsSdk23FontDriver extends EmacsSdk7FontDriver
 {
   private void
   textExtents1 (Sdk7FontObject font, int code, FontMetrics metrics,
index 34e66912562983e7e469ae37a25a651b8019b543..818a722a908a9ebee5ce630c643873a94d15384d 100644 (file)
@@ -31,7 +31,7 @@ import java.io.UnsupportedEncodingException;
    similarly old systems.  */
 
 @SuppressWarnings ("deprecation")
-public class EmacsSdk8Clipboard extends EmacsClipboard
+public final class EmacsSdk8Clipboard extends EmacsClipboard
 {
   private static final String TAG = "EmacsSdk8Clipboard";
   private ClipboardManager manager;
index 7f4f75b5147822a7a21c3966822cbe85e568d19a..e61d9487375ce063cbb988ad84388e2e09f8ef73 100644 (file)
@@ -82,7 +82,7 @@ class Holder<T>
 /* EmacsService is the service that starts the thread running Emacs
    and handles requests by that Emacs instance.  */
 
-public class EmacsService extends Service
+public final class EmacsService extends Service
 {
   public static final String TAG = "EmacsService";
   public static final int MAX_PENDING_REQUESTS = 256;
index 62e927094e4e5140f1128a52d2e5c16b3e42d96d..e0411f7f8b3c29a5bbd3bc296bdf6a88bae02ce9 100644 (file)
@@ -35,7 +35,7 @@ import java.lang.ref.WeakReference;
    own back buffers, which use too much memory (up to 96 MB for a
    single frame.) */
 
-public class EmacsSurfaceView extends View
+public final class EmacsSurfaceView extends View
 {
   private static final String TAG = "EmacsSurfaceView";
   private EmacsView view;
index 89f526853b20aa11e05f0ab70c6c2f30d1b54a46..d2330494bc7ab2b3264fbb95323c28ee7fe9b5ed 100644 (file)
@@ -51,7 +51,7 @@ import android.util.Log;
 
    It is also a ViewGroup, as it also lays out children.  */
 
-public class EmacsView extends ViewGroup
+public final class EmacsView extends ViewGroup
 {
   public static final String TAG = "EmacsView";
 
index 90fc4c441989b232ff587586c73676e707e28803..007a2a86e683b46496dfec6b995412f0ed96c99a 100644 (file)
@@ -59,7 +59,7 @@ import android.os.Build;
    Views are also drawables, meaning they can accept drawing
    requests.  */
 
-public class EmacsWindow extends EmacsHandleObject
+public final class EmacsWindow extends EmacsHandleObject
   implements EmacsDrawable
 {
   private static final String TAG = "EmacsWindow";
index 510300571b8095e8f052fc628decd5f0b516bed2..1548bf2808753e6c1edaac2fd9ba0e04fc6e2ec0 100644 (file)
@@ -50,7 +50,7 @@ import android.util.Log;
    Finally, every time a window is removed, the consumer is
    destroyed.  */
 
-public class EmacsWindowAttachmentManager
+public final class EmacsWindowAttachmentManager
 {
   public static EmacsWindowAttachmentManager MANAGER;
   private final static String TAG = "EmacsWindowAttachmentManager";