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.
234 lines
7.0 KiB
234 lines
7.0 KiB
/* |
|
* Copyright 2014 A.C.R. Development |
|
*/ |
|
package acr.browser.lightning; |
|
|
|
import android.app.AlertDialog; |
|
import android.content.Context; |
|
import android.content.DialogInterface; |
|
import android.os.Bundle; |
|
import android.support.v7.widget.Toolbar; |
|
import android.view.MenuItem; |
|
import android.view.View; |
|
import android.view.View.OnClickListener; |
|
import android.widget.CheckBox; |
|
import android.widget.CompoundButton; |
|
import android.widget.CompoundButton.OnCheckedChangeListener; |
|
import android.widget.LinearLayout; |
|
import android.widget.RelativeLayout; |
|
import android.widget.TextView; |
|
|
|
public class AdvancedSettingsActivity extends ThemableSettingsActivity { |
|
|
|
private CheckBox cbAllowPopups, cbAllowCookies, cbAllowIncognitoCookies, cbRestoreTabs; |
|
private Context mContext; |
|
private TextView mRenderText; |
|
private TextView mUrlText; |
|
private CharSequence[] mUrlOptions; |
|
private PreferenceManager mPreferences; |
|
|
|
@Override |
|
protected void onCreate(Bundle savedInstanceState) { |
|
super.onCreate(savedInstanceState); |
|
setContentView(R.layout.advanced_settings); |
|
|
|
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); |
|
setSupportActionBar(toolbar); |
|
|
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true); |
|
|
|
mContext = this; |
|
initialize(); |
|
} |
|
|
|
@Override |
|
public boolean onOptionsItemSelected(MenuItem item) { |
|
finish(); |
|
return true; |
|
} |
|
|
|
private void initialize() { |
|
|
|
mPreferences = PreferenceManager.getInstance(); |
|
|
|
RelativeLayout rAllowPopups, rAllowCookies, rAllowIncognitoCookies, rRestoreTabs; |
|
LinearLayout lRenderPicker, lUrlContent; |
|
|
|
rAllowPopups = (RelativeLayout) findViewById(R.id.rAllowPopups); |
|
rAllowCookies = (RelativeLayout) findViewById(R.id.rAllowCookies); |
|
rAllowIncognitoCookies = (RelativeLayout) findViewById(R.id.rAllowIncognitoCookies); |
|
rRestoreTabs = (RelativeLayout) findViewById(R.id.rRestoreTabs); |
|
lRenderPicker = (LinearLayout) findViewById(R.id.layoutRendering); |
|
lUrlContent = (LinearLayout) findViewById(R.id.rUrlBarContents); |
|
|
|
cbAllowPopups = (CheckBox) findViewById(R.id.cbAllowPopups); |
|
cbAllowCookies = (CheckBox) findViewById(R.id.cbAllowCookies); |
|
cbAllowIncognitoCookies = (CheckBox) findViewById(R.id.cbAllowIncognitoCookies); |
|
cbRestoreTabs = (CheckBox) findViewById(R.id.cbRestoreTabs); |
|
|
|
cbAllowPopups.setChecked(mPreferences.getPopupsEnabled()); |
|
cbAllowCookies.setChecked(mPreferences.getCookiesEnabled()); |
|
cbAllowIncognitoCookies.setChecked(mPreferences.getIncognitoCookiesEnabled()); |
|
cbRestoreTabs.setChecked(mPreferences.getRestoreLostTabsEnabled()); |
|
|
|
mRenderText = (TextView) findViewById(R.id.renderText); |
|
mUrlText = (TextView) findViewById(R.id.urlText); |
|
|
|
switch (mPreferences.getRenderingMode()) { |
|
case 0: |
|
mRenderText.setText(mContext.getString(R.string.name_normal)); |
|
break; |
|
case 1: |
|
mRenderText.setText(mContext.getString(R.string.name_inverted)); |
|
break; |
|
case 2: |
|
mRenderText.setText(mContext.getString(R.string.name_grayscale)); |
|
break; |
|
case 3: |
|
mRenderText.setText(mContext.getString(R.string.name_inverted_grayscale)); |
|
break; |
|
} |
|
|
|
mUrlOptions = this.getResources().getStringArray(R.array.url_content_array); |
|
int option = mPreferences.getUrlBoxContentChoice(); |
|
mUrlText.setText(mUrlOptions[option]); |
|
|
|
LayoutClickListener listener = new LayoutClickListener(); |
|
CheckListener cListener = new CheckListener(); |
|
|
|
rAllowPopups.setOnClickListener(listener); |
|
rAllowCookies.setOnClickListener(listener); |
|
rAllowIncognitoCookies.setOnClickListener(listener); |
|
rRestoreTabs.setOnClickListener(listener); |
|
lRenderPicker.setOnClickListener(listener); |
|
lUrlContent.setOnClickListener(listener); |
|
|
|
cbAllowPopups.setOnCheckedChangeListener(cListener); |
|
cbAllowCookies.setOnCheckedChangeListener(cListener); |
|
cbAllowIncognitoCookies.setOnCheckedChangeListener(cListener); |
|
cbRestoreTabs.setOnCheckedChangeListener(cListener); |
|
|
|
} |
|
|
|
private class LayoutClickListener implements OnClickListener { |
|
|
|
@Override |
|
public void onClick(View v) { |
|
switch (v.getId()) { |
|
case R.id.rAllowPopups: |
|
cbAllowPopups.setChecked(!cbAllowPopups.isChecked()); |
|
break; |
|
case R.id.rAllowIncognitoCookies: |
|
cbAllowIncognitoCookies.setChecked(!cbAllowIncognitoCookies.isChecked()); |
|
break; |
|
case R.id.rAllowCookies: |
|
cbAllowCookies.setChecked(!cbAllowCookies.isChecked()); |
|
break; |
|
case R.id.rRestoreTabs: |
|
cbRestoreTabs.setChecked(!cbRestoreTabs.isChecked()); |
|
break; |
|
case R.id.layoutRendering: |
|
renderPicker(); |
|
break; |
|
case R.id.rUrlBarContents: |
|
urlBoxPicker(); |
|
break; |
|
} |
|
} |
|
|
|
} |
|
|
|
private class CheckListener implements OnCheckedChangeListener { |
|
|
|
@Override |
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { |
|
switch (buttonView.getId()) { |
|
case R.id.cbAllowPopups: |
|
mPreferences.setPopupsEnabled(isChecked); |
|
break; |
|
case R.id.cbAllowCookies: |
|
mPreferences.setCookiesEnabled(isChecked); |
|
break; |
|
case R.id.cbAllowIncognitoCookies: |
|
mPreferences.setIncognitoCookiesEnabled(isChecked); |
|
break; |
|
case R.id.cbRestoreTabs: |
|
mPreferences.setRestoreLostTabsEnabled(isChecked); |
|
break; |
|
} |
|
} |
|
|
|
} |
|
|
|
public void renderPicker() { |
|
|
|
AlertDialog.Builder picker = new AlertDialog.Builder(mContext); |
|
picker.setTitle(getResources().getString(R.string.rendering_mode)); |
|
CharSequence[] chars = { mContext.getString(R.string.name_normal), |
|
mContext.getString(R.string.name_inverted), |
|
mContext.getString(R.string.name_grayscale), |
|
mContext.getString(R.string.name_inverted_grayscale) }; |
|
|
|
int n = mPreferences.getRenderingMode(); |
|
|
|
picker.setSingleChoiceItems(chars, n, new DialogInterface.OnClickListener() { |
|
|
|
@Override |
|
public void onClick(DialogInterface dialog, int which) { |
|
mPreferences.setRenderingMode(which); |
|
switch (which) { |
|
case 0: |
|
mRenderText.setText(mContext.getString(R.string.name_normal)); |
|
break; |
|
case 1: |
|
mRenderText.setText(mContext.getString(R.string.name_inverted)); |
|
break; |
|
case 2: |
|
mRenderText.setText(mContext.getString(R.string.name_grayscale)); |
|
break; |
|
case 3: |
|
mRenderText.setText(mContext.getString(R.string.name_inverted_grayscale)); |
|
break; |
|
} |
|
} |
|
}); |
|
picker.setNeutralButton(getResources().getString(R.string.action_ok), |
|
new DialogInterface.OnClickListener() { |
|
|
|
@Override |
|
public void onClick(DialogInterface dialog, int which) { |
|
|
|
} |
|
}); |
|
picker.show(); |
|
} |
|
|
|
public void urlBoxPicker() { |
|
|
|
AlertDialog.Builder picker = new AlertDialog.Builder(mContext); |
|
picker.setTitle(getResources().getString(R.string.url_contents)); |
|
|
|
int n = mPreferences.getUrlBoxContentChoice(); |
|
|
|
picker.setSingleChoiceItems(mUrlOptions, n, new DialogInterface.OnClickListener() { |
|
|
|
@Override |
|
public void onClick(DialogInterface dialog, int which) { |
|
mPreferences.setUrlBoxContentChoice(which); |
|
if (which < mUrlOptions.length) { |
|
mUrlText.setText(mUrlOptions[which]); |
|
} |
|
} |
|
}); |
|
picker.setNeutralButton(getResources().getString(R.string.action_ok), |
|
new DialogInterface.OnClickListener() { |
|
|
|
@Override |
|
public void onClick(DialogInterface dialog, int which) { |
|
|
|
} |
|
}); |
|
picker.show(); |
|
} |
|
|
|
}
|
|
|