forked from mirrors/Fedilab
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,45 +160,17 @@ 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) {
|
||||
Intent intent = new Intent(LoginActivity.this, ProxyActivity.class);
|
||||
startActivity(intent);
|
||||
} else if (id == R.id.action_custom_tabs) {
|
||||
item.setChecked(!item.isChecked());
|
||||
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
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);
|
||||
}
|
||||
if (id == R.id.action_proxy) {
|
||||
Intent intent = new Intent(LoginActivity.this, ProxyActivity.class);
|
||||
startActivity(intent);
|
||||
} else if (id == R.id.action_custom_tabs) {
|
||||
item.setChecked(!item.isChecked());
|
||||
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
|
||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||
editor.putBoolean(getString(R.string.SET_EMBEDDED_BROWSER), !item.isChecked());
|
||||
editor.apply();
|
||||
return false;
|
||||
}
|
||||
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,44 +176,40 @@ 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 */
|
||||
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() {
|
||||
@Override
|
||||
public boolean onMenuItemActionExpand(MenuItem item) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemActionCollapse(MenuItem item) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
editor.apply();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
popupMenu.show();
|
||||
}
|
||||
|
||||
private void setMenuItemKeepOpen(MenuItem item) {
|
||||
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
|
||||
item.setActionView(new View(requireContext()));
|
||||
item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
|
||||
@Override
|
||||
public boolean onMenuItemActionExpand(MenuItem item) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMenuItemActionCollapse(MenuItem item) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
|
|
|
@ -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_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,13 +21,15 @@
|
|||
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"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_provider"
|
||||
android:checkable="true"
|
||||
android:title="@string/set_security_provider"
|
||||
app:actionViewClass="android.widget.CheckBox" />
|
||||
<!--
|
||||
<item
|
||||
android:id="@+id/action_import_data"
|
||||
android:title="@string/import_data"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_provider"
|
||||
android:checkable="true"
|
||||
android:title="@string/set_security_provider"
|
||||
app:actionViewClass="android.widget.CheckBox" />
|
||||
-->
|
||||
</menu>
|
||||
|
|
Loading…
Reference in a new issue