commit e25dc08fe527d478d83a6ee84ddcf4bc2b2a2812 Author: Nathan Freitas nathan@freitas.net Date: Thu Apr 3 23:23:20 2014 -0400
fixes the menus for appcompat library --- res/menu/main.xml | 19 +++---- src/org/torproject/android/Orbot.java | 89 +++++++++++++++++++++++++++++++-- 2 files changed, 95 insertions(+), 13 deletions(-)
diff --git a/res/menu/main.xml b/res/menu/main.xml index 4b98c27..4f6e877 100755 --- a/res/menu/main.xml +++ b/res/menu/main.xml @@ -17,26 +17,27 @@ * limitations under the License. */ --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> - +<menu xmlns:yourapp="http://schemas.android.com/apk/res-auto" + xmlns:android="http://schemas.android.com/apk/res/android%22%3E + <item android:id="@+id/menu_start" android:title="@string/menu_start" android:icon="@drawable/ic_action_start" - android:showAsAction="ifRoom" - + yourapp:showAsAction="ifRoom" + yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
<item android:id="@+id/menu_settings" android:title="@string/menu_settings" android:icon="@drawable/ic_action_settings" - android:showAsAction="always" + yourapp:showAsAction="always" />
<item android:id="@+id/menu_verify_list" android:title="@string/menu_verify" android:icon="@drawable/ic_action_browse" - android:showAsAction="always" + yourapp:showAsAction="always" > <menu> <item android:id="@+id/menu_verify" @@ -54,21 +55,21 @@ <item android:id="@+id/menu_about" android:title="@string/menu_about" android:icon="@drawable/ic_menu_about" - android:showAsAction="ifRoom" + yourapp:showAsAction="ifRoom"
/>
<item android:id="@+id/menu_wizard" android:title="@string/menu_wizard" android:icon="@drawable/ic_menu_goto" - android:showAsAction="ifRoom" + yourapp:showAsAction="ifRoom"
/>
<item android:id="@+id/menu_exit" android:title="@string/menu_exit" android:icon="@drawable/ic_menu_exit" - android:showAsAction="ifRoom" + yourapp:showAsAction="ifRoom"
/>
diff --git a/src/org/torproject/android/Orbot.java b/src/org/torproject/android/Orbot.java index f63ecd8..f48e0a9 100644 --- a/src/org/torproject/android/Orbot.java +++ b/src/org/torproject/android/Orbot.java @@ -3,6 +3,8 @@
package org.torproject.android;
+import static org.torproject.android.TorConstants.TAG; + import java.util.Locale;
import org.torproject.android.service.ITorService; @@ -34,6 +36,7 @@ import android.os.IBinder; import android.os.Message; import android.os.RemoteException; import android.support.v7.app.ActionBarActivity; +import android.support.v7.view.ActionMode; import android.text.ClipboardManager; import android.text.Layout; import android.text.method.ScrollingMovementMethod; @@ -188,9 +191,87 @@ public class Orbot extends ActionBarActivity implements TorConstants, OnLongClic
mItemOnOff = menu.getItem(0);
+ /* + startSupportActionMode(new ActionMode.Callback() { + @Override + public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { + // Inflate our menu from a resource file + // actionMode.getMenuInflater().inflate(R.menu.action_mode_main, menu); + + // Return true so that the action mode is shown + return true; + } + + @Override + public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { + // As we do not need to modify the menu before displayed, we return false. + return false; + } + + @Override + public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { + // Similar to menu handling in Activity.onOptionsItemSelected() + switch (menuItem.getItemId()) { + case R.id.menu_start: + try + { + + if (mService == null) + { + + } + else if (mService.getStatus() == TorServiceConstants.STATUS_OFF) + { + if (mItemOnOff != null) + mItemOnOff.setTitle(R.string.menu_stop); + startTor(); + + } + else + { + if (mItemOnOff != null) + mItemOnOff.setTitle(R.string.menu_start); + stopTor(); + + } + + } + catch (RemoteException re) + { + Log.w(TAG, "Unable to start/top Tor from menu UI", re); + } + return true; + case R.id.menu_settings: + showSettings(); + return true; + case R.id.menu_wizard: + startWizard(); + return true; + case R.id.menu_verify: + doTorCheck(); + return true; + case R.id.menu_exit: + doExit(); + return true; + case R.id.menu_about: + showAbout(); + return true; + } + + return false; + } + + @Override + public void onDestroyActionMode(ActionMode actionMode) { + // Allows you to be notified when the action mode is dismissed + } + });*/ + return true; }
+ +
private void showAbout () { @@ -214,10 +295,11 @@ public class Orbot extends ActionBarActivity implements TorConstants, OnLongClic .setView(view) .show(); } - /** - public boolean onMenuItemSelected(int featureId, MenuItem item) { + + @Override + public boolean onOptionsItemSelected(MenuItem item) {
- super.onMenuItemSelected(featureId, item); + super.onOptionsItemSelected(item);
if (item.getItemId() == R.id.menu_start) { @@ -278,7 +360,6 @@ public class Orbot extends ActionBarActivity implements TorConstants, OnLongClic
return true; } - */
/** * This is our attempt to REALLY exit Orbot, and stop the background service