New about dialog for IITCm
This commit is contained in:
@ -1,44 +1,41 @@
|
||||
package com.cradle.iitc_mobile;
|
||||
|
||||
import android.app.AlertDialog.Builder;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.DialogInterface.OnClickListener;
|
||||
import android.preference.DialogPreference;
|
||||
import android.preference.Preference;
|
||||
import android.text.Html;
|
||||
import android.text.method.LinkMovementMethod;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class IITC_AboutDialogPreference extends DialogPreference {
|
||||
|
||||
private final Context mContext;
|
||||
public class IITC_AboutDialogPreference extends Preference {
|
||||
private String mBuildVersion = "";
|
||||
private String mIitcVersion = "";
|
||||
|
||||
public IITC_AboutDialogPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
/*
|
||||
* start an about-dialog...I found no better way for clickable
|
||||
* links in a TextView then using Html.fromHtml...Linkify is just broken and
|
||||
* does not understand html href tags...so let's tag the @string/about_msg
|
||||
* with CDATA and use Html.fromHtml(...) for clickable hrefs with tags.
|
||||
*/
|
||||
@Override
|
||||
protected void onPrepareDialogBuilder(Builder builder) {
|
||||
final TextView message = new TextView(mContext);
|
||||
String about_msg = mContext.getText(R.string.pref_about_msg).toString();
|
||||
message.setText(Html.fromHtml(about_msg));
|
||||
message.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
builder.setView(message).setTitle(R.string.about)
|
||||
.setIcon(android.R.drawable.ic_dialog_info)
|
||||
.setNeutralButton(R.string.close, new OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
}
|
||||
});
|
||||
super.onPrepareDialogBuilder(builder);
|
||||
public View getView(View convertView, ViewGroup parent) {
|
||||
/*
|
||||
* I found no better way for clickable links in a TextView then using Html.fromHtml(). Linkify
|
||||
* is just broken and does not understand html href tags, so let's tag the @string/about_msg
|
||||
* with CDATA and use Html.fromHtml() for clickable hrefs with tags.
|
||||
*/
|
||||
final TextView tv = new TextView(getContext());
|
||||
String text = getContext().getText(R.string.pref_about_text).toString();
|
||||
text = String.format(text, mBuildVersion, mIitcVersion);
|
||||
|
||||
tv.setText(Html.fromHtml(text));
|
||||
tv.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
||||
return tv;
|
||||
}
|
||||
|
||||
public void setVersions(String iitcVersion, String buildVersion) {
|
||||
mIitcVersion = iitcVersion;
|
||||
mBuildVersion = buildVersion;
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,6 @@ import android.preference.PreferenceManager;
|
||||
import android.util.Log;
|
||||
import android.webkit.SslErrorHandler;
|
||||
import android.webkit.WebResourceResponse;
|
||||
import android.webkit.WebSettings;
|
||||
import android.webkit.WebView;
|
||||
import android.webkit.WebViewClient;
|
||||
import android.widget.Toast;
|
||||
|
@ -6,66 +6,53 @@ import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.os.Bundle;
|
||||
import android.preference.EditTextPreference;
|
||||
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.IITC_AboutDialogPreference;
|
||||
import com.cradle.iitc_mobile.R;
|
||||
|
||||
public class MainSettings extends PreferenceFragment {
|
||||
|
||||
private String mIitcVersion;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mIitcVersion = getArguments().getString("iitc_version");
|
||||
|
||||
addPreferencesFromResource(R.xml.preferences);
|
||||
|
||||
// set build version
|
||||
ListPreference pref_build_version = (ListPreference) findPreference("pref_build_version");
|
||||
// set versions
|
||||
String iitcVersion = getArguments().getString("iitc_version");
|
||||
String buildVersion = "unknown";
|
||||
|
||||
PackageManager pm = getActivity().getPackageManager();
|
||||
String version = "unknown";
|
||||
try {
|
||||
PackageInfo info = pm.getPackageInfo(
|
||||
getActivity().getPackageName(), 0);
|
||||
version = info.versionName;
|
||||
PackageInfo info = pm.getPackageInfo(getActivity().getPackageName(), 0);
|
||||
buildVersion = info.versionName;
|
||||
} catch (NameNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
pref_build_version.setSummary(version);
|
||||
|
||||
// set iitc version
|
||||
ListPreference pref_iitc_version = (ListPreference) findPreference("pref_iitc_version");
|
||||
pref_iitc_version.setSummary(mIitcVersion);
|
||||
IITC_AboutDialogPreference pref_about = (IITC_AboutDialogPreference) findPreference("pref_about");
|
||||
pref_about.setVersions(iitcVersion, buildVersion);
|
||||
|
||||
// set iitc source
|
||||
EditTextPreference pref_iitc_source = (EditTextPreference) findPreference("pref_iitc_source");
|
||||
pref_iitc_source
|
||||
.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference,
|
||||
Object newValue) {
|
||||
preference.setSummary(getString(R.string.pref_select_iitc_sum) +
|
||||
" " + newValue);
|
||||
// TODO: update mIitcVersion when iitc source has
|
||||
// changed
|
||||
return true;
|
||||
}
|
||||
});
|
||||
pref_iitc_source.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
preference.setSummary(getString(R.string.pref_select_iitc_sum) + " " + newValue);
|
||||
// TODO: update mIitcVersion when iitc source has changed
|
||||
return true;
|
||||
}
|
||||
});
|
||||
// first init of summary
|
||||
String pref_iitc_source_sum = getString(R.string.pref_select_iitc_sum)
|
||||
+ " " + pref_iitc_source.getText();
|
||||
String pref_iitc_source_sum = getString(R.string.pref_select_iitc_sum) + " " + pref_iitc_source.getText();
|
||||
pref_iitc_source.setSummary(pref_iitc_source_sum);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user