fixes for VPN service UI to work on Android6
This commit is contained in:
		
							parent
							
								
									fe9119d66a
								
							
						
					
					
						commit
						d839b154a1
					
				|  | @ -62,7 +62,7 @@ | |||
|          --> | ||||
|       	<activity | ||||
| 			android:name=".service.DummyActivity" | ||||
| 			android:theme="@android:style/Theme.NoDisplay" | ||||
| 			android:theme="@android:style/Theme.Translucent" | ||||
| 			android:enabled="true" | ||||
| 			android:allowTaskReparenting="true" | ||||
| 			android:noHistory="true" | ||||
|  | @ -76,7 +76,7 @@ | |||
| 		 | ||||
|       	<activity | ||||
| 			android:name=".vpn.VPNEnableActivity" android:label="@string/app_name" android:exported="false" | ||||
| 			android:theme="@android:style/Theme.NoDisplay"			 | ||||
| 			android:theme="@android:style/Theme.Translucent"			 | ||||
| 			/>  | ||||
| 		 | ||||
| 			      	 | ||||
|  |  | |||
|  | @ -76,6 +76,11 @@ public class OrbotVpnService extends VpnService implements Handler.Callback { | |||
|      | ||||
|     private boolean isRestart = false; | ||||
|      | ||||
| 
 | ||||
|     static{ | ||||
|     	  System.loadLibrary("tun2socks"); | ||||
|     	} | ||||
|      | ||||
|     @Override | ||||
|     public int onStartCommand(Intent intent, int flags, int startId) { | ||||
| 
 | ||||
|  | @ -174,9 +179,6 @@ public class OrbotVpnService extends VpnService implements Handler.Callback { | |||
| 	public void onCreate() { | ||||
| 		super.onCreate(); | ||||
| 		 | ||||
| 		System.loadLibrary("tun2socks"); | ||||
| 		 | ||||
| 
 | ||||
| 		// Set the locale to English (or probably any other language that^M | ||||
|         // uses Hindu-Arabic (aka Latin) numerals).^M | ||||
|         // We have found that VpnService.Builder does something locale-dependent^M | ||||
|  |  | |||
|  | @ -18,6 +18,8 @@ import android.os.Handler; | |||
| import android.util.Log; | ||||
| import android.view.LayoutInflater; | ||||
| import android.view.View; | ||||
| import android.view.Window; | ||||
| import android.view.WindowManager; | ||||
| import android.widget.TextView; | ||||
| 
 | ||||
| /* | ||||
|  | @ -27,33 +29,45 @@ public class VPNEnableActivity extends Activity { | |||
| 	 | ||||
| 	private final static int REQUEST_VPN = 7777; | ||||
| 	private	Intent intent = null; | ||||
| 
 | ||||
| 	private boolean checkVpn = true; | ||||
| 	private Handler h = new Handler(); | ||||
| 	 | ||||
| 	@Override | ||||
| 	public void onCreate( Bundle icicle ) { | ||||
| 		 | ||||
| 		requestWindowFeature(Window.FEATURE_NO_TITLE); | ||||
|         //getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); | ||||
| 
 | ||||
| 		super.onCreate( icicle ); | ||||
| 
 | ||||
| 		Log.d("VPNEnableActivity","prompting user to start Orbot VPN"); | ||||
| 
 | ||||
| 		intent = VpnService.prepare(this); | ||||
| 		 | ||||
| 		if (intent != null) | ||||
| 			promptStartVpnService(); | ||||
| 		else | ||||
| 			startVpnService (); | ||||
| 	} | ||||
| 	 | ||||
| 	public void onResume () | ||||
| 	{ | ||||
| 		super.onResume(); | ||||
| 		 | ||||
| 		if (checkVpn) | ||||
| 		{ | ||||
| 			intent = VpnService.prepare(this); | ||||
| 			 | ||||
| 			if (intent != null) | ||||
| 				promptStartVpnService(); | ||||
| 			else | ||||
| 				startVpnService (); | ||||
| 			 | ||||
| 			checkVpn = false; | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public void promptStartVpnService () | ||||
|     { | ||||
|     	 LayoutInflater li = LayoutInflater.from(this); | ||||
|          View view = li.inflate(R.layout.layout_diag, null);  | ||||
|           | ||||
|          TextView versionName = (TextView)view.findViewById(R.id.diaglog); | ||||
|          versionName.setText(R.string.you_can_enable_all_apps_on_your_device_to_run_through_the_tor_network_using_the_vpn_feature_of_android_);     | ||||
|           | ||||
|          new AlertDialog.Builder(this) | ||||
|     	  | ||||
|          AlertDialog dialog = new AlertDialog.Builder(this) | ||||
|          .setTitle(getString(R.string.app_name) + ' ' + getString(R.string.apps_mode)) | ||||
|          .setView(view) | ||||
|          .setMessage(getString(R.string.you_can_enable_all_apps_on_your_device_to_run_through_the_tor_network_using_the_vpn_feature_of_android_)) | ||||
|          .setPositiveButton(R.string.activate, new Dialog.OnClickListener () | ||||
|          { | ||||
| 
 | ||||
|  | @ -73,11 +87,21 @@ public class VPNEnableActivity extends Activity { | |||
| 			@Override | ||||
| 			public void onClick(DialogInterface dialog, int which) { | ||||
| 				 | ||||
| 				finish(); | ||||
| 				 h.postDelayed(new Runnable () { | ||||
| 		            	 | ||||
| 		            	public void run () | ||||
| 		            	{ | ||||
| 		            		VPNEnableActivity.this.finish();	 | ||||
| 		            		 | ||||
| 		            	} | ||||
| 		            }, 100); | ||||
| 			} | ||||
|         	  | ||||
|          }) | ||||
|          .show(); | ||||
|          }).create(); | ||||
|           | ||||
|          dialog.show(); | ||||
|           | ||||
|           | ||||
|     } | ||||
| 	  | ||||
| 	private void startVpnService () | ||||
|  | @ -86,7 +110,7 @@ public class VPNEnableActivity extends Activity { | |||
|    		{ | ||||
|    			Log.d("VPNEnableActivity","VPN enabled, starting Tor..."); | ||||
|             sendIntentToService(TorServiceConstants.CMD_VPN); | ||||
|             /** | ||||
|              | ||||
|             Handler h = new Handler(); | ||||
|             h.postDelayed(new Runnable () { | ||||
|             	 | ||||
|  | @ -95,8 +119,7 @@ public class VPNEnableActivity extends Activity { | |||
|             		sendIntentToService(TorServiceConstants.ACTION_START);		 | ||||
|             		finish(); | ||||
|             	} | ||||
|             }, 1000); | ||||
|             */ | ||||
|             }, 100); | ||||
|             | ||||
|    			 | ||||
|    		} | ||||
|  | @ -116,16 +139,18 @@ public class VPNEnableActivity extends Activity { | |||
| 	        if (request == REQUEST_VPN && response == RESULT_OK) | ||||
| 	        { | ||||
| 	            sendIntentToService(TorServiceConstants.CMD_VPN);	     | ||||
| 	            Handler h = new Handler(); | ||||
| 	             | ||||
| 	            h.postDelayed(new Runnable () { | ||||
| 	            	 | ||||
| 	            	public void run () | ||||
| 	            	{ | ||||
| 	            		sendIntentToService(TorServiceConstants.ACTION_START);		 | ||||
| 	            		finish(); | ||||
| 	            		 finish(); | ||||
| 	            	} | ||||
| 	            }, 1000); | ||||
| 	             | ||||
| 	            | ||||
| 	             | ||||
| 	        } | ||||
| 	  } | ||||
| 	   | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue