You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.4 KiB
73 lines
2.4 KiB
/* |
|
* Copyright 2014 A.C.R. Development |
|
*/ |
|
package acr.browser.lightning.activity; |
|
|
|
import android.os.Build; |
|
import android.os.Bundle; |
|
import android.support.annotation.NonNull; |
|
import android.support.v7.widget.Toolbar; |
|
import android.view.MenuItem; |
|
import android.view.View; |
|
import android.view.ViewGroup; |
|
import android.widget.LinearLayout; |
|
|
|
import com.anthonycr.grant.PermissionsManager; |
|
|
|
import java.util.ArrayList; |
|
import java.util.List; |
|
|
|
import acr.browser.lightning.R; |
|
|
|
public class SettingsActivity extends ThemableSettingsActivity { |
|
|
|
private static final List<String> mFragments = new ArrayList<>(); |
|
|
|
@Override |
|
protected void onCreate(Bundle savedInstanceState) { |
|
super.onCreate(savedInstanceState); |
|
// this is a workaround for the Toolbar in PreferenceActitivty |
|
ViewGroup root = (ViewGroup) findViewById(android.R.id.content); |
|
LinearLayout content = (LinearLayout) root.getChildAt(0); |
|
LinearLayout toolbarContainer = (LinearLayout) View.inflate(this, R.layout.toolbar_settings, null); |
|
|
|
root.removeAllViews(); |
|
toolbarContainer.addView(content); |
|
root.addView(toolbarContainer); |
|
|
|
// now we can set the Toolbar using AppCompatPreferenceActivity |
|
Toolbar toolbar = (Toolbar) toolbarContainer.findViewById(R.id.toolbar); |
|
setSupportActionBar(toolbar); |
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true); |
|
} |
|
|
|
@Override |
|
public void onBuildHeaders(List<Header> target) { |
|
loadHeadersFromResource(R.xml.preferences_headers, target); |
|
mFragments.clear(); |
|
for (Header header : target) { |
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { |
|
// Workaround for bug in the AppCompat support library |
|
header.iconRes = R.drawable.empty; |
|
} |
|
mFragments.add(header.fragment); |
|
} |
|
} |
|
|
|
@Override |
|
protected boolean isValidFragment(String fragmentName) { |
|
return mFragments.contains(fragmentName); |
|
} |
|
|
|
@Override |
|
public boolean onOptionsItemSelected(MenuItem item) { |
|
finish(); |
|
return true; |
|
} |
|
|
|
@Override |
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { |
|
PermissionsManager.getInstance().notifyPermissionsChange(permissions, grantResults); |
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
|
} |
|
}
|
|
|