Fix issue #27 - Enable custom tabs from settings to support autofill with password managers

pull/95/head
Thomas 3 years ago
parent cdeb2eb2db
commit 6d77ad0faf

@ -150,8 +150,6 @@ public class LoginActivity extends BaseActivity {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
boolean embedded_browser = sharedpreferences.getBoolean(getString(R.string.SET_EMBEDDED_BROWSER), true); boolean embedded_browser = sharedpreferences.getBoolean(getString(R.string.SET_EMBEDDED_BROWSER), true);
menu.findItem(R.id.action_custom_tabs).setChecked(!embedded_browser); 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; return true;
} }
@ -162,14 +160,7 @@ public class LoginActivity extends BaseActivity {
// as you specify a parent activity in AndroidManifest.xml. // as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId(); int id = item.getItemId();
//noinspection SimplifiableIfStatement if (id == R.id.action_proxy) {
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) {
Intent intent = new Intent(LoginActivity.this, ProxyActivity.class); Intent intent = new Intent(LoginActivity.this, ProxyActivity.class);
startActivity(intent); startActivity(intent);
} else if (id == R.id.action_custom_tabs) { } 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.putBoolean(getString(R.string.SET_EMBEDDED_BROWSER), !item.isChecked());
editor.apply(); editor.apply();
return false; 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); return super.onOptionsItemSelected(item);
} }

@ -48,6 +48,7 @@ import java.net.URLEncoder;
import app.fedilab.android.BaseMainActivity; import app.fedilab.android.BaseMainActivity;
import app.fedilab.android.R; import app.fedilab.android.R;
import app.fedilab.android.activities.ProxyActivity;
import app.fedilab.android.activities.WebviewConnectActivity; import app.fedilab.android.activities.WebviewConnectActivity;
import app.fedilab.android.client.entities.Account; import app.fedilab.android.client.entities.Account;
import app.fedilab.android.client.entities.InstanceSocial; 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); PopupMenu popupMenu = new PopupMenu(new ContextThemeWrapper(requireActivity(), Helper.popupStyle()), binding.menuIcon);
MenuInflater menuInflater = popupMenu.getMenuInflater(); MenuInflater menuInflater = popupMenu.getMenuInflater();
menuInflater.inflate(R.menu.main_login, popupMenu.getMenu()); 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 -> { popupMenu.setOnMenuItemClickListener(item -> {
int itemId = item.getItemId(); int itemId = item.getItemId();
if (itemId == R.id.action_about) { if (itemId == R.id.action_proxy) {
/* Todo: Open about page */ Intent intent = new Intent(requireActivity(), ProxyActivity.class);
} else if (itemId == R.id.action_privacy) { startActivity(intent);
/* Todo: Open privacy page */
} else if (itemId == R.id.action_proxy) {
/* Todo: Open proxy settings */
} else if (itemId == R.id.action_custom_tabs) { } else if (itemId == R.id.action_custom_tabs) {
setMenuItemKeepOpen(item); boolean checked = !embedded_browser;
/* Todo: Toggle custom tabs */ item.setChecked(!item.isChecked());
} else if (itemId == R.id.action_import_data) { SharedPreferences.Editor editor = sharedpreferences.edit();
/* Todo: Import data */ editor.putBoolean(getString(R.string.SET_EMBEDDED_BROWSER), checked);
} else if (itemId == R.id.action_provider) {
setMenuItemKeepOpen(item);
/* Todo: Toggle security provider */
}
return false;
});
popupMenu.show();
}
private void setMenuItemKeepOpen(MenuItem item) {
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
item.setActionView(new View(requireContext())); item.setActionView(new View(requireContext()));
item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() { item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@ -211,6 +203,11 @@ public class FragmentLoginMain extends Fragment {
return false; return false;
} }
}); });
editor.apply();
}
return false;
});
popupMenu.show();
} }
@Override @Override

@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" <menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<!--
<item <item
android:id="@+id/action_about" android:id="@+id/action_about"
android:title="@string/action_about" android:title="@string/action_about"
app:showAsAction="never" /> app:showAsAction="never" />
<item <item
android:id="@+id/action_privacy" android:id="@+id/action_privacy"
android:title="@string/action_privacy" android:title="@string/action_privacy"
app:showAsAction="never" /> app:showAsAction="never" />
-->
<item <item
android:id="@+id/action_proxy" android:id="@+id/action_proxy"
android:title="@string/proxy_set" android:title="@string/proxy_set"
@ -18,6 +21,7 @@
android:checkable="true" android:checkable="true"
android:title="@string/custom_tabs" android:title="@string/custom_tabs"
app:actionViewClass="android.widget.CheckBox" /> app:actionViewClass="android.widget.CheckBox" />
<!--
<item <item
android:id="@+id/action_import_data" android:id="@+id/action_import_data"
android:title="@string/import_data" android:title="@string/import_data"
@ -27,4 +31,5 @@
android:checkable="true" android:checkable="true"
android:title="@string/set_security_provider" android:title="@string/set_security_provider"
app:actionViewClass="android.widget.CheckBox" /> app:actionViewClass="android.widget.CheckBox" />
-->
</menu> </menu>

Loading…
Cancel
Save