package de.robv.android.xposed.installer;
import android.app.Fragment;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.afollestad.materialdialogs.MaterialDialog;
import de.psdev.licensesdialog.LicensesDialog;
import de.psdev.licensesdialog.licenses.ApacheSoftwareLicense20;
import de.psdev.licensesdialog.licenses.MITLicense;
import de.psdev.licensesdialog.licenses.SILOpenFontLicense11;
import de.psdev.licensesdialog.model.Notice;
import de.psdev.licensesdialog.model.Notices;
import de.robv.android.xposed.installer.util.NavUtil;
import de.robv.android.xposed.installer.util.ThemeUtil;
public class AboutActivity extends XposedBaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ThemeUtil.setTheme(this);
setContentView(R.layout.activity_container);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
ActionBar ab = getSupportActionBar();
if (ab != null) {
ab.setTitle(R.string.nav_item_about);
ab.setDisplayHomeAsUpEnabled(true);
}
setFloating(toolbar, R.string.nav_item_about);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction().add(R.id.container, new AboutFragment()).commit();
}
}
public static class AboutFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.tab_about, container, false);
View developersView = v.findViewById(R.id.developersView);
View licensesView = v.findViewById(R.id.licensesView);
View translatorsView = v.findViewById(R.id.translatorsView);
View sourceCodeView = v.findViewById(R.id.sourceCodeView);
String packageName = getActivity().getPackageName();
String translator = getResources().getString(R.string.translator);
try {
String version = getActivity().getPackageManager().getPackageInfo(packageName, 0).versionName;
((TextView) v.findViewById(R.id.app_version)).setText(version);
} catch (NameNotFoundException ignored) {
}
licensesView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
createLicenseDialog();
}
});
developersView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MaterialDialog dialog = new MaterialDialog.Builder(getActivity())
.title(R.string.about_developers_label)
.content(R.string.about_developers)
.positiveText(android.R.string.ok)
.show();
((TextView) dialog.findViewById(R.id.md_content)).setMovementMethod(LinkMovementMethod.getInstance());
}
});
sourceCodeView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
NavUtil.startURL(getActivity(), getString(R.string.about_source));
}
});
if (translator.isEmpty()) {
translatorsView.setVisibility(View.GONE);
}
return v;
}
private void createLicenseDialog() {
Notices notices = new Notices();
notices.addNotice(new Notice("material-dialogs", "https://github.com/afollestad/material-dialogs", "Copyright (c) 2014-2016 Aidan Michael Follestad", new MITLicense()));
notices.addNotice(new Notice("StickyListHeaders", "https://github.com/emilsjolander/StickyListHeaders", "Emil Sjölander", new ApacheSoftwareLicense20()));
notices.addNotice(new Notice("PreferenceFragment-Compat", "https://github.com/Machinarius/PreferenceFragment-Compat", "machinarius", new ApacheSoftwareLicense20()));
notices.addNotice(new Notice("libsuperuser", "https://github.com/Chainfire/libsuperuser", "Copyright (C) 2012-2015 Jorrit \"Chainfire\" Jongma", new ApacheSoftwareLicense20()));
notices.addNotice(new Notice("picasso", "https://github.com/square/picasso", "Copyright 2013 Square, Inc.", new ApacheSoftwareLicense20()));
notices.addNotice(new Notice("materialdesignicons", "http://materialdesignicons.com", "Copyright (c) 2014, Austin Andrews", new SILOpenFontLicense11()));
new LicensesDialog.Builder(getActivity())
.setNotices(notices)
.setIncludeOwnLicense(true)
.build()
.show();
}
}
}