79 lines
2.6 KiB
Java
79 lines
2.6 KiB
Java
package org.microg.nlp.app.tools.ui;
|
|
|
|
import android.os.Bundle;
|
|
import android.view.MenuItem;
|
|
import android.view.ViewGroup;
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.fragment.app.Fragment;
|
|
import androidx.fragment.app.FragmentTransaction;
|
|
import org.microg.nlp.app.R;
|
|
|
|
public abstract class AbstractSettingsActivity extends AppCompatActivity {
|
|
protected boolean showHomeAsUp = false;
|
|
protected int preferencesResource = 0;
|
|
private ViewGroup customBarContainer;
|
|
protected int customBarLayout = 0;
|
|
protected SwitchBar switchBar;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.settings_activity);
|
|
if (showHomeAsUp) {
|
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
|
}
|
|
|
|
switchBar = (SwitchBar) findViewById(R.id.switch_bar);
|
|
|
|
customBarContainer = (ViewGroup) findViewById(R.id.custom_bar);
|
|
if (customBarLayout != 0) {
|
|
customBarContainer.addView(getLayoutInflater().inflate(customBarLayout, customBarContainer, false));
|
|
}
|
|
|
|
getSupportFragmentManager().beginTransaction()
|
|
.replace(R.id.content_wrapper, getFragment())
|
|
.commit();
|
|
}
|
|
|
|
public void setCustomBarLayout(int layout) {
|
|
customBarLayout = layout;
|
|
if (customBarContainer != null) {
|
|
customBarContainer.removeAllViews();
|
|
customBarContainer.addView(getLayoutInflater().inflate(customBarLayout, customBarContainer, false));
|
|
}
|
|
}
|
|
|
|
public SwitchBar getSwitchBar() {
|
|
return switchBar;
|
|
}
|
|
|
|
public void replaceFragment(Fragment fragment) {
|
|
getSupportFragmentManager().beginTransaction()
|
|
.addToBackStack("root")
|
|
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
|
.replace(R.id.content_wrapper, fragment)
|
|
.commit();
|
|
}
|
|
|
|
@Override
|
|
public boolean onOptionsItemSelected(MenuItem item) {
|
|
if (item.getItemId() == android.R.id.home) {
|
|
finish();
|
|
return true;
|
|
}
|
|
return super.onOptionsItemSelected(item);
|
|
}
|
|
|
|
protected Fragment getFragment() {
|
|
if (preferencesResource == 0) {
|
|
throw new IllegalStateException("Neither preferencesResource given, nor overriden getFragment()");
|
|
}
|
|
ResourceSettingsFragment fragment = new ResourceSettingsFragment();
|
|
Bundle b = new Bundle();
|
|
b.putInt(ResourceSettingsFragment.EXTRA_PREFERENCE_RESOURCE, preferencesResource);
|
|
fragment.setArguments(b);
|
|
return fragment;
|
|
}
|
|
}
|