OSDN Git Service

Make the project build with and target API 11
authorSteven Luo <steven+android@steven676.net>
Sat, 14 Jan 2012 12:23:58 +0000 (04:23 -0800)
committerJack Palevich <jackpal@google.com>
Mon, 16 Jan 2012 15:47:44 +0000 (07:47 -0800)
* Update project.properties to build with API 11
* Update AndroidManifest.xml to indicate that we target API 11
* Uncomment API 11+ specific material in EmulatorView
* Add compatibility class for Activity methods new in API 11
* Call invalidateOptionsMenu() where necessary

Signed-off-by: Jack Palevich <jackpal@google.com>
AndroidManifest.xml
project.properties
src/jackpal/androidterm/EmulatorView.java
src/jackpal/androidterm/Term.java
src/jackpal/androidterm/compat/ActivityCompat.java [new file with mode: 0644]

index 8fd8976..b8db85b 100644 (file)
@@ -23,6 +23,6 @@
                 android:label="@string/window_list" />
         <service android:name="TermService" />
     </application>
-    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="10" />
+    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="11" />
     <uses-feature android:name="android.hardware.touchscreen" android:required="false" />
 </manifest>
index f049142..d79abae 100644 (file)
@@ -8,4 +8,4 @@
 # project structure.
 
 # Project target.
-target=android-10
+target=android-11
index 793f419..3ecb6d8 100644 (file)
@@ -41,6 +41,7 @@ import android.view.MotionEvent;
 import android.view.View;
 import android.view.inputmethod.BaseInputConnection;
 import android.view.inputmethod.CompletionInfo;
+import android.view.inputmethod.CorrectionInfo;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.ExtractedText;
 import android.view.inputmethod.ExtractedTextRequest;
@@ -460,14 +461,12 @@ public class EmulatorView extends View implements GestureDetector.OnGestureListe
                 return true;
             }
 
-            /** API Level 11, we are currently at API level 10, so don't use this.
             public boolean commitCorrection (CorrectionInfo correctionInfo) {
                 if (TermDebug.LOG_IME) {
                     Log.w(TAG, "commitCorrection");
                 }
                 return true;
             }
-            */
 
             public boolean commitText(CharSequence text, int newCursorPosition) {
                 if (TermDebug.LOG_IME) {
index b9da426..ec7e429 100644 (file)
@@ -51,6 +51,7 @@ import android.view.inputmethod.InputMethodManager;
 import android.widget.FrameLayout;
 import android.widget.Toast;
 
+import jackpal.androidterm.compat.ActivityCompat;
 import jackpal.androidterm.compat.AndroidCompat;
 import jackpal.androidterm.model.UpdateCallback;
 import jackpal.androidterm.session.TermSession;
@@ -673,6 +674,7 @@ public class Term extends Activity implements UpdateCallback {
         } else {
             mWakeLock.acquire();
         }
+        ActivityCompat.invalidateOptionsMenu(this);
     }
 
     private void doToggleWifiLock() {
@@ -681,5 +683,6 @@ public class Term extends Activity implements UpdateCallback {
         } else {
             mWifiLock.acquire();
         }
+        ActivityCompat.invalidateOptionsMenu(this);
     }
 }
diff --git a/src/jackpal/androidterm/compat/ActivityCompat.java b/src/jackpal/androidterm/compat/ActivityCompat.java
new file mode 100644 (file)
index 0000000..97c3fcc
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2011 Steven Luo
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package jackpal.androidterm.compat;
+
+import android.app.Activity;
+
+/**
+ * Compatibility class for android.app.Activity
+ */
+public class ActivityCompat {
+    private static class Api11OrLater {
+        public static void invalidateOptionsMenu(Activity activity) {
+            activity.invalidateOptionsMenu();
+        }
+    }
+
+    public static void invalidateOptionsMenu(Activity activity) {
+        if (AndroidCompat.SDK >= 11) {
+            Api11OrLater.invalidateOptionsMenu(activity);
+        }
+    }
+}