mirror of
				https://codeberg.org/tom79/Fedilab.git
				synced 2025-10-20 11:20:16 +03:00 
			
		
		
		
	Fix issue #27 - Enable custom tabs from settings to support autofill with password managers
This commit is contained in:
		
							parent
							
								
									cdeb2eb2db
								
							
						
					
					
						commit
						6d77ad0faf
					
				
					 3 changed files with 59 additions and 87 deletions
				
			
		|  | @ -150,8 +150,6 @@ public class LoginActivity extends BaseActivity { | |||
|         SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this); | ||||
|         boolean embedded_browser = sharedpreferences.getBoolean(getString(R.string.SET_EMBEDDED_BROWSER), true); | ||||
|         menu.findItem(R.id.action_custom_tabs).setChecked(!embedded_browser); | ||||
|        /* boolean security_provider = sharedpreferences.getBoolean(getString(R.string.SET_SECURITY_PROVIDER), true); | ||||
|         menu.findItem(R.id.action_provider).setChecked(security_provider);*/ | ||||
|         return true; | ||||
|     } | ||||
| 
 | ||||
|  | @ -162,14 +160,7 @@ public class LoginActivity extends BaseActivity { | |||
|         // as you specify a parent activity in AndroidManifest.xml. | ||||
|         int id = item.getItemId(); | ||||
| 
 | ||||
|         //noinspection SimplifiableIfStatement | ||||
|         if (id == R.id.action_about) { | ||||
|             //   Intent intent = new Intent(LoginActivity.this, AboutActivity.class); | ||||
|             //   startActivity(intent); | ||||
|         } else if (id == R.id.action_privacy) { | ||||
|             //   Intent intent = new Intent(LoginActivity.this, PrivacyActivity.class); | ||||
|             //    startActivity(intent); | ||||
|         } else if (id == R.id.action_proxy) { | ||||
|        if (id == R.id.action_proxy) { | ||||
|            Intent intent = new Intent(LoginActivity.this, ProxyActivity.class); | ||||
|            startActivity(intent); | ||||
|        } else if (id == R.id.action_custom_tabs) { | ||||
|  | @ -179,27 +170,6 @@ public class LoginActivity extends BaseActivity { | |||
|            editor.putBoolean(getString(R.string.SET_EMBEDDED_BROWSER), !item.isChecked()); | ||||
|            editor.apply(); | ||||
|            return false; | ||||
|         } else if (id == R.id.action_provider) { | ||||
|           /*  item.setChecked(!item.isChecked()); | ||||
|             SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); | ||||
|             SharedPreferences.Editor editor = sharedpreferences.edit(); | ||||
|             editor.putBoolean(getString(R.string.SET_SECURITY_PROVIDER), item.isChecked()); | ||||
|             editor.apply();*/ | ||||
|             return false; | ||||
|         } else if (id == R.id.action_import_data) { | ||||
|            /* if (ContextCompat.checkSelfPermission(LoginActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != | ||||
|                     PackageManager.PERMISSION_GRANTED) { | ||||
|                 ActivityCompat.requestPermissions(LoginActivity.this, | ||||
|                         new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, | ||||
|                         TootActivity.MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE); | ||||
|                 return true; | ||||
|             }*/ | ||||
|             Intent intent = new Intent(Intent.ACTION_GET_CONTENT); | ||||
|             intent.addCategory(Intent.CATEGORY_OPENABLE); | ||||
|             intent.setType("*/*"); | ||||
|             String[] mimetypes = {"*/*"}; | ||||
|             intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes); | ||||
|             startActivityForResult(intent, PICK_IMPORT); | ||||
|        } | ||||
|         return super.onOptionsItemSelected(item); | ||||
|     } | ||||
|  |  | |||
|  | @ -48,6 +48,7 @@ import java.net.URLEncoder; | |||
| 
 | ||||
| import app.fedilab.android.BaseMainActivity; | ||||
| import app.fedilab.android.R; | ||||
| import app.fedilab.android.activities.ProxyActivity; | ||||
| import app.fedilab.android.activities.WebviewConnectActivity; | ||||
| import app.fedilab.android.client.entities.Account; | ||||
| import app.fedilab.android.client.entities.InstanceSocial; | ||||
|  | @ -175,29 +176,20 @@ public class FragmentLoginMain extends Fragment { | |||
|         PopupMenu popupMenu = new PopupMenu(new ContextThemeWrapper(requireActivity(), Helper.popupStyle()), binding.menuIcon); | ||||
|         MenuInflater menuInflater = popupMenu.getMenuInflater(); | ||||
|         menuInflater.inflate(R.menu.main_login, popupMenu.getMenu()); | ||||
|         MenuItem customTabItem = popupMenu.getMenu().findItem(R.id.action_custom_tabs); | ||||
|         SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); | ||||
|         boolean embedded_browser = sharedpreferences.getBoolean(getString(R.string.SET_EMBEDDED_BROWSER), true); | ||||
|         customTabItem.setChecked(!embedded_browser); | ||||
|         popupMenu.setOnMenuItemClickListener(item -> { | ||||
|             int itemId = item.getItemId(); | ||||
|             if (itemId == R.id.action_about) { | ||||
|                 /* Todo: Open about page */ | ||||
|             } else if (itemId == R.id.action_privacy) { | ||||
|                 /* Todo: Open privacy page */ | ||||
|             } else if (itemId == R.id.action_proxy) { | ||||
|                 /* Todo: Open proxy settings */ | ||||
|             if (itemId == R.id.action_proxy) { | ||||
|                 Intent intent = new Intent(requireActivity(), ProxyActivity.class); | ||||
|                 startActivity(intent); | ||||
|             } else if (itemId == R.id.action_custom_tabs) { | ||||
|                 setMenuItemKeepOpen(item); | ||||
|                 /* Todo: Toggle custom tabs */ | ||||
|             } else if (itemId == R.id.action_import_data) { | ||||
|                 /* Todo: Import data */ | ||||
|             } else if (itemId == R.id.action_provider) { | ||||
|                 setMenuItemKeepOpen(item); | ||||
|                 /* Todo: Toggle security provider */ | ||||
|             } | ||||
|             return false; | ||||
|         }); | ||||
|         popupMenu.show(); | ||||
|     } | ||||
| 
 | ||||
|     private void setMenuItemKeepOpen(MenuItem item) { | ||||
|                 boolean checked = !embedded_browser; | ||||
|                 item.setChecked(!item.isChecked()); | ||||
|                 SharedPreferences.Editor editor = sharedpreferences.edit(); | ||||
|                 editor.putBoolean(getString(R.string.SET_EMBEDDED_BROWSER), checked); | ||||
|                 item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); | ||||
|                 item.setActionView(new View(requireContext())); | ||||
|                 item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() { | ||||
|  | @ -211,6 +203,11 @@ public class FragmentLoginMain extends Fragment { | |||
|                         return false; | ||||
|                     } | ||||
|                 }); | ||||
|                 editor.apply(); | ||||
|             } | ||||
|             return false; | ||||
|         }); | ||||
|         popupMenu.show(); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|  |  | |||
|  | @ -1,14 +1,17 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <menu xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     xmlns:app="http://schemas.android.com/apk/res-auto"> | ||||
|     <!-- | ||||
|      <item | ||||
|          android:id="@+id/action_about" | ||||
|          android:title="@string/action_about" | ||||
|          app:showAsAction="never" /> | ||||
| 
 | ||||
|      <item | ||||
|          android:id="@+id/action_privacy" | ||||
|          android:title="@string/action_privacy" | ||||
|          app:showAsAction="never" /> | ||||
|           --> | ||||
|     <item | ||||
|         android:id="@+id/action_proxy" | ||||
|         android:title="@string/proxy_set" | ||||
|  | @ -18,6 +21,7 @@ | |||
|         android:checkable="true" | ||||
|         android:title="@string/custom_tabs" | ||||
|         app:actionViewClass="android.widget.CheckBox" /> | ||||
|     <!-- | ||||
|    <item | ||||
|        android:id="@+id/action_import_data" | ||||
|        android:title="@string/import_data" | ||||
|  | @ -27,4 +31,5 @@ | |||
|        android:checkable="true" | ||||
|        android:title="@string/set_security_provider" | ||||
|        app:actionViewClass="android.widget.CheckBox" /> | ||||
|        --> | ||||
| </menu> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue