new helper activities for Apps and Bridge setup
This commit is contained in:
		
							parent
							
								
									150488dd9c
								
							
						
					
					
						commit
						84932594ce
					
				|  | @ -8,8 +8,7 @@ | ||||||
|         android:id="@+id/diaglog" |         android:id="@+id/diaglog" | ||||||
| 		android:layout_width="fill_parent"  | 		android:layout_width="fill_parent"  | ||||||
| 		android:layout_height="wrap_content" | 		android:layout_height="wrap_content" | ||||||
| 			android:paddingTop="15px" | 		android:textAppearance="?android:attr/textAppearanceMedium" | ||||||
| 			android:paddingLeft="15px" | 		android:layout_margin="9dp" | ||||||
| 			android:textStyle="bold" | 		/> | ||||||
| 			android:textColor="#00ff00" />	 | </ScrollView> | ||||||
| 	</ScrollView>			 |  | ||||||
|  | @ -0,0 +1,34 @@ | ||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | 
 | ||||||
|  | <ScrollView android:id="@+id/aboutscrollview"  | ||||||
|  |     xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  | 	android:orientation="vertical" | ||||||
|  | 	android:layout_width="match_parent"  | ||||||
|  | 	android:layout_height="fill_parent">     | ||||||
|  | 	<LinearLayout | ||||||
|  | 	    android:orientation="vertical" | ||||||
|  | 	    android:layout_width="fill_parent" | ||||||
|  | 	    android:layout_height="fill_parent"> | ||||||
|  | 	    <TextView android:text="Apps Mode" | ||||||
|  | 			android:layout_width="fill_parent"  | ||||||
|  | 			android:layout_height="wrap_content"		 | ||||||
|  | 			android:paddingTop="15px" | ||||||
|  | 			android:paddingLeft="15px" | ||||||
|  | 			android:textStyle="bold" | ||||||
|  | 			android:textColor="#00ff00" />	 | ||||||
|  | 			<TextView android:text="" | ||||||
|  | 			android:layout_width="fill_parent"  | ||||||
|  | 			android:layout_height="wrap_content" | ||||||
|  | 			android:autoLink="web" | ||||||
|  | 			android:textColorLink="#ffffff" | ||||||
|  | 			android:paddingLeft="15px"		 | ||||||
|  | 			android:textColor="#ffffff" /> | ||||||
|  | 			 | ||||||
|  | 			 <Button android:id="@+id/btnActivateVPN"  | ||||||
|  |            android:layout_width="wrap_content"  | ||||||
|  |            android:layout_height="wrap_content"  | ||||||
|  |             android:text="Activate"         | ||||||
|  |             android:layout_margin="0sp"/> | ||||||
|  | 			 | ||||||
|  | 		</LinearLayout> | ||||||
|  | 	</ScrollView> | ||||||
|  | @ -318,4 +318,16 @@ | ||||||
|   <string name="restart_orbot_to_use_this_bridge_">"Restart Orbot to use these bridges: "</string> |   <string name="restart_orbot_to_use_this_bridge_">"Restart Orbot to use these bridges: "</string> | ||||||
|    |    | ||||||
|   <string name="menu_qr">QR Codes</string> |   <string name="menu_qr">QR Codes</string> | ||||||
|  |    | ||||||
|  |   <string name="if_your_mobile_network_actively_blocks_tor_you_can_use_a_tor_bridge_to_access_the_network_another_way_to_get_bridges_is_to_send_an_email_to_bridges_torproject_org_please_note_that_you_must_send_the_email_using_an_address_from_one_of_the_following_email_providers_riseup_gmail_or_yahoo_">If your mobile network actively blocks Tor, you can use a Tor Bridge to access the network.\n\nYou can get a bridge address from https://bridges.torproject.org or scan a bridge QR code from a friend.\n\nAnother way to get bridges is to send an email to bridges@torproject.org. Please note that you must send the email using an address from one of the following email providers: Riseup, Gmail or Yahoo.</string> | ||||||
|  |    | ||||||
|  |   <string name="bridge_mode">Bridge Mode</string> | ||||||
|  |    | ||||||
|  |   <string name="get_bridges">Get Bridges</string> | ||||||
|  |    | ||||||
|  |   <string name="activate">Activate</string> | ||||||
|  |    | ||||||
|  |   <string name="apps_mode">Apps Mode</string> | ||||||
|  |    | ||||||
|  |   <string name="you_can_enable_all_apps_on_your_device_to_run_through_the_tor_network_using_the_vpn_feature_of_android_">You can enable all apps on your device to run through the Tor network using the VPN feature of Android.</string> | ||||||
| </resources> | </resources> | ||||||
|  |  | ||||||
|  | @ -16,6 +16,7 @@ public interface OrbotConstants { | ||||||
| 	//path to check Tor against | 	//path to check Tor against | ||||||
| 	public final static String URL_TOR_CHECK = "https://check.torproject.org"; | 	public final static String URL_TOR_CHECK = "https://check.torproject.org"; | ||||||
| 	 | 	 | ||||||
|  |     public final static String URL_TOR_BRIDGES = "https://bridges.torproject.org"; | ||||||
|      |      | ||||||
|     public final static String NEWLINE = "\n"; |     public final static String NEWLINE = "\n"; | ||||||
|      |      | ||||||
|  |  | ||||||
|  | @ -15,7 +15,6 @@ import org.torproject.android.service.TorServiceUtils; | ||||||
| import org.torproject.android.settings.SettingsPreferences; | import org.torproject.android.settings.SettingsPreferences; | ||||||
| import org.torproject.android.ui.ImageProgressView; | import org.torproject.android.ui.ImageProgressView; | ||||||
| import org.torproject.android.ui.Rotate3dAnimation; | import org.torproject.android.ui.Rotate3dAnimation; | ||||||
| import org.torproject.android.ui.wizard.ChooseLocaleWizardActivity; |  | ||||||
| import org.torproject.android.ui.wizard.PromoAppsActivity; | import org.torproject.android.ui.wizard.PromoAppsActivity; | ||||||
| 
 | 
 | ||||||
| import android.annotation.TargetApi; | import android.annotation.TargetApi; | ||||||
|  | @ -267,7 +266,7 @@ public class OrbotMainActivity extends Activity implements OrbotConstants, OnLon | ||||||
| 			public void onClick(View v) { | 			public void onClick(View v) { | ||||||
| 
 | 
 | ||||||
| 				if (mBtnVPN.isChecked()) | 				if (mBtnVPN.isChecked()) | ||||||
| 					startVpnService(); | 					promptStartVpnService(); | ||||||
| 				else | 				else | ||||||
| 					stopVpnService(); | 					stopVpnService(); | ||||||
| 				 | 				 | ||||||
|  | @ -286,11 +285,8 @@ public class OrbotMainActivity extends Activity implements OrbotConstants, OnLon | ||||||
| 			@Override | 			@Override | ||||||
| 			public void onClick(View v) { | 			public void onClick(View v) { | ||||||
| 
 | 
 | ||||||
| 				Editor edit = mPrefs.edit(); | 				promptSetupBridges (); | ||||||
| 				edit.putBoolean("pref_bridges_enabled", mBtnBridges.isChecked()); |  | ||||||
| 				edit.commit(); |  | ||||||
| 				 | 				 | ||||||
| 				updateSettings(); |  | ||||||
| 				 | 				 | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
|  | @ -842,10 +838,8 @@ public class OrbotMainActivity extends Activity implements OrbotConstants, OnLon | ||||||
| 					 | 					 | ||||||
| 					setNewBridges(results); | 					setNewBridges(results); | ||||||
| 					 | 					 | ||||||
| 					 |  | ||||||
| 				} catch (UnsupportedEncodingException e) { | 				} catch (UnsupportedEncodingException e) { | ||||||
| 					// TODO Auto-generated catch block | 					Log.e(TAG,"unsupported",e); | ||||||
| 					e.printStackTrace(); |  | ||||||
| 				} | 				} | ||||||
|         	} |         	} | ||||||
|         	 |         	 | ||||||
|  | @ -853,6 +847,109 @@ public class OrbotMainActivity extends Activity implements OrbotConstants, OnLon | ||||||
|          |          | ||||||
|     } |     } | ||||||
|      |      | ||||||
|  |     public void promptSetupBridges () | ||||||
|  |     { | ||||||
|  |     	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.if_your_mobile_network_actively_blocks_tor_you_can_use_a_tor_bridge_to_access_the_network_another_way_to_get_bridges_is_to_send_an_email_to_bridges_torproject_org_please_note_that_you_must_send_the_email_using_an_address_from_one_of_the_following_email_providers_riseup_gmail_or_yahoo_);     | ||||||
|  |          | ||||||
|  |         if (mBtnBridges.isChecked()) | ||||||
|  |         { | ||||||
|  | 	        new AlertDialog.Builder(this) | ||||||
|  | 	        .setTitle(R.string.bridge_mode) | ||||||
|  | 	        .setView(view) | ||||||
|  | 	        .setNeutralButton(R.string.get_bridges, new Dialog.OnClickListener () | ||||||
|  | 	        { | ||||||
|  | 	 | ||||||
|  | 				@Override | ||||||
|  | 				public void onClick(DialogInterface dialog, int which) { | ||||||
|  | 					 | ||||||
|  | 					openBrowser(URL_TOR_BRIDGES); | ||||||
|  | 	 | ||||||
|  | 				} | ||||||
|  | 	 | ||||||
|  | 	       	  | ||||||
|  | 	        }) | ||||||
|  | 	        .setPositiveButton(R.string.activate, new Dialog.OnClickListener () | ||||||
|  | 	        { | ||||||
|  | 	 | ||||||
|  | 				@Override | ||||||
|  | 				public void onClick(DialogInterface dialog, int which) { | ||||||
|  | 					 | ||||||
|  | 					enableBridges (true); | ||||||
|  | 					 | ||||||
|  | 				} | ||||||
|  | 	 | ||||||
|  | 	       	  | ||||||
|  | 	        }) | ||||||
|  | 	        .setNegativeButton(android.R.string.cancel, new Dialog.OnClickListener() | ||||||
|  | 	        { | ||||||
|  | 	        	@Override | ||||||
|  | 				public void onClick(DialogInterface dialog, int which) { | ||||||
|  | 					 | ||||||
|  | 	            	mBtnBridges.setChecked(false); | ||||||
|  | 					 | ||||||
|  | 				} | ||||||
|  | 	        }) | ||||||
|  | 	        .show(); | ||||||
|  |         } | ||||||
|  |         else | ||||||
|  |         { | ||||||
|  |         	enableBridges(false); | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     private void enableBridges (boolean enable) | ||||||
|  |     { | ||||||
|  | 
 | ||||||
|  | 		Editor edit = mPrefs.edit(); | ||||||
|  | 		edit.putBoolean("pref_bridges_enabled", enable); | ||||||
|  | 		edit.commit(); | ||||||
|  | 		 | ||||||
|  | 		updateSettings(); | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     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) | ||||||
|  |          .setTitle(R.string.apps_mode) | ||||||
|  |          .setView(view) | ||||||
|  |          .setPositiveButton(R.string.activate, new Dialog.OnClickListener () | ||||||
|  |          { | ||||||
|  | 
 | ||||||
|  | 			@Override | ||||||
|  | 			public void onClick(DialogInterface dialog, int which) { | ||||||
|  | 				 | ||||||
|  | 				startVpnService(); | ||||||
|  | 				 | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  |         	  | ||||||
|  |          }) | ||||||
|  |          .setNegativeButton(android.R.string.cancel, new Dialog.OnClickListener () | ||||||
|  |          { | ||||||
|  | 
 | ||||||
|  | 			@Override | ||||||
|  | 			public void onClick(DialogInterface dialog, int which) { | ||||||
|  | 				 | ||||||
|  | 				mBtnVPN.setChecked(false); | ||||||
|  | 				 | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  |         	  | ||||||
|  |          }) | ||||||
|  |          .show(); | ||||||
|  |     } | ||||||
|  |      | ||||||
|     @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) |     @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) | ||||||
|     public void startVpnService () |     public void startVpnService () | ||||||
|     { |     { | ||||||
|  |  | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | package org.torproject.android.ui; | ||||||
|  | 
 | ||||||
|  | public class BridgeSetupActivity { | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | package org.torproject.android.ui; | ||||||
|  | 
 | ||||||
|  | public class VPNSetupActivity { | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue