* moved advanced settings to own preference screen
* added setting to fake user agent (see https://plus.google.com/u/0/104992284359985480029/posts/9mPFLPKjgvL) * bumped version number
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
package com.cradle.iitc_mobile.fragments;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
@ -9,6 +10,13 @@ import android.preference.ListPreference;
|
||||
import android.preference.Preference;
|
||||
import android.preference.Preference.OnPreferenceChangeListener;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewParent;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.cradle.iitc_mobile.R;
|
||||
|
||||
@ -60,4 +68,55 @@ public class MainSettings extends PreferenceFragment {
|
||||
+ " " + pref_iitc_source.getText();
|
||||
pref_iitc_source.setSummary(pref_iitc_source_sum);
|
||||
}
|
||||
|
||||
// we want a home button + HomeAsUpEnabled in nested preferences
|
||||
// for some odd reasons android is not able to do this by default
|
||||
// so we need some additional hacks...
|
||||
// thx to http://stackoverflow.com/a/16800527/2638486 !!
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
|
||||
if (preference.getTitle().toString().equals(getString(R.string.pref_advanced_options)))
|
||||
initializeActionBar((PreferenceScreen) preference);
|
||||
return super.onPreferenceTreeClick(preferenceScreen, preference);
|
||||
}
|
||||
|
||||
// Apply custom home button area click listener to close the PreferenceScreen
|
||||
// because PreferenceScreens are dialogs which swallow
|
||||
// events instead of passing to the activity
|
||||
// Related Issue: https://code.google.com/p/android/issues/detail?id=4611
|
||||
public static void initializeActionBar(PreferenceScreen preferenceScreen) {
|
||||
final Dialog dialog = preferenceScreen.getDialog();
|
||||
|
||||
if (dialog != null) {
|
||||
dialog.getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
View homeBtn = dialog.findViewById(android.R.id.home);
|
||||
|
||||
if (homeBtn != null) {
|
||||
View.OnClickListener dismissDialogClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
};
|
||||
|
||||
ViewParent homeBtnContainer = homeBtn.getParent();
|
||||
|
||||
// The home button is an ImageView inside a FrameLayout
|
||||
if (homeBtnContainer instanceof FrameLayout) {
|
||||
ViewGroup containerParent = (ViewGroup) homeBtnContainer.getParent();
|
||||
|
||||
if (containerParent instanceof LinearLayout) {
|
||||
// This view also contains the title text, set the whole view as clickable
|
||||
((LinearLayout) containerParent).setOnClickListener(dismissDialogClickListener);
|
||||
} else {
|
||||
// Just set it on the home button
|
||||
((FrameLayout) homeBtnContainer).setOnClickListener(dismissDialogClickListener);
|
||||
}
|
||||
} else {
|
||||
homeBtn.setOnClickListener(dismissDialogClickListener);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user