package com.anysoftkeyboard.ui.settings;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.menny.android.anysoftkeyboard.R;
import net.evendanan.pushingpixels.FragmentChauffeurActivity;
import java.util.Calendar;
public class AboutAnySoftKeyboardFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.about_anysoftkeyboard, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
TextView copyright = (TextView) view.findViewById(R.id.about_copyright);
copyright.setText(getString(R.string.about_copyright_text, Calendar.getInstance().get(Calendar.YEAR)));
String appVersionName = "";
int appVersionNumber = 0;
try {
PackageInfo info = view.getContext().getPackageManager().getPackageInfo(view.getContext().getPackageName(), 0);
appVersionName = info.versionName;
appVersionNumber = info.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
TextView version = (TextView)view.findViewById(R.id.about_app_version);
version.setText(getString(R.string.version_text, appVersionName, appVersionNumber));
view.findViewById(R.id.about_donate_paypal).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9989122
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.donation_link)));
getActivity().startActivity(intent);
}
});
}
@Override
public void onStart() {
super.onStart();
getActivity().setTitle(R.string.ime_name);
}
@Override
public void onViewStateRestored(Bundle savedInstanceState) {
super.onViewStateRestored(savedInstanceState);
TextView additionalSoftware = (TextView)getView().findViewById(R.id.about_legal_stuff_link);
SpannableStringBuilder sb = new SpannableStringBuilder(additionalSoftware.getText());
sb.clearSpans();//removing any previously (from instance-state) set click spans.
sb.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
FragmentChauffeurActivity activity = (FragmentChauffeurActivity)getActivity();
activity.addFragmentToUi(new AdditionalSoftwareLicensesFragment(),
FragmentChauffeurActivity.FragmentUiContext.DeeperExperience);
}
},
0, additionalSoftware.getText().length(),
Spanned.SPAN_INCLUSIVE_INCLUSIVE);
additionalSoftware.setMovementMethod(LinkMovementMethod.getInstance());
additionalSoftware.setText(sb);
}
public static class AdditionalSoftwareLicensesFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.additional_software_licenses, container, false);
}
@Override
public void onStart() {
super.onStart();
getActivity().setTitle(R.string.about_additional_software_licenses);
}
}
}