mirror of
https://github.com/etesync/android
synced 2025-07-03 13:22:37 +00:00
135 lines
5.6 KiB
Java
135 lines
5.6 KiB
Java
/*
|
||
* Copyright © 2013 – 2015 Ricki Hirner (bitfire web engineering).
|
||
* All rights reserved. This program and the accompanying materials
|
||
* are made available under the terms of the GNU Public License v3.0
|
||
* which accompanies this distribution, and is available at
|
||
* http://www.gnu.org/licenses/gpl.html
|
||
*/
|
||
package at.bitfire.davdroid.ui;
|
||
|
||
import android.app.Activity;
|
||
import android.content.Intent;
|
||
import android.net.Uri;
|
||
import android.os.Build;
|
||
import android.os.Bundle;
|
||
import android.provider.Settings;
|
||
import android.text.Html;
|
||
import android.text.method.LinkMovementMethod;
|
||
import android.view.Menu;
|
||
import android.view.MenuInflater;
|
||
import android.view.MenuItem;
|
||
import android.view.View;
|
||
import android.widget.TextView;
|
||
|
||
import at.bitfire.davdroid.BuildConfig;
|
||
import at.bitfire.davdroid.Constants;
|
||
import at.bitfire.davdroid.R;
|
||
import at.bitfire.davdroid.ui.settings.SettingsActivity;
|
||
import at.bitfire.davdroid.ui.setup.AddAccountActivity;
|
||
import lombok.Getter;
|
||
|
||
public class MainActivity extends Activity {
|
||
|
||
private static final String libraries =
|
||
"· <a href=\"https://commons.apache.org/\">Apache Commons</a> – <a href=\"https://www.apache.org/licenses/\">Apache License, Version 2.0</a><br/>" +
|
||
"· <a href=\"http://www.xbill.org/dnsjava/\">dnsjava</a> – <a href=\"http://www.xbill.org/dnsjava/dnsjava-current/LICENSE\">BSD License</a><br/>" +
|
||
"· <a href=\"https://github.com/mangstadt/ez-vcard\">ez-vcard</a> – <a href=\"http://opensource.org/licenses/BSD-3-Clause\">New BSD License</a><br/>" +
|
||
"· <a href=\"https://github.com/ical4j/ical4j\">iCal4j</a> – <a href=\"https://github.com/ical4j/ical4j/blob/master/LICENSE\">New BSD License</a><br/>" +
|
||
"· <a href=\"https://github.com/ge0rg/MemorizingTrustManager\">MemorizingTrustManager</a> – <a href=\"https://raw.githubusercontent.com/ge0rg/MemorizingTrustManager/master/LICENSE.txt\">MIT License</a><br/>" +
|
||
"· <a href=\"https://square.github.io/okhttp/\">okhttp</a> – <a href=\"https://square.github.io/okhttp/#license\">Apache License, Version 2.0</a><br/>" +
|
||
"· <a href=\"https://projectlombok.org/\">Project Lombok</a> – <a href=\"http://opensource.org/licenses/mit-license.php\">MIT License</a><br/>" +
|
||
"· <a href=\"https://commons.apache.org/\">SLF4j</a> (Simple Logging Facade for Java) – <a href=\"http://www.slf4j.org/license.html\">MIT License</a>";
|
||
|
||
@Override
|
||
protected void onCreate(Bundle savedInstanceState) {
|
||
super.onCreate(savedInstanceState);
|
||
|
||
setContentView(R.layout.main_activity);
|
||
|
||
TextView tv = (TextView)findViewById(R.id.text_store_specific);
|
||
final String installedFrom = installedFrom();
|
||
if (installedFrom == null || installedFrom.startsWith("org.fdroid")) {
|
||
if (savedInstanceState == null)
|
||
new DonateDialogFragment().show(getFragmentManager(), "donate");
|
||
} else if ("com.android.vending".equals(installedFrom))
|
||
setHtmlText(R.id.text_store_specific, R.string.main_play_workaround_html);
|
||
|
||
setPlainText(R.id.text_welcome, R.string.main_welcome, BuildConfig.VERSION_NAME);
|
||
setHtmlText(R.id.text_what_is_davdroid, R.string.main_what_is_davdroid_html);
|
||
setHtmlText(R.id.text_how_to_setup, R.string.main_how_to_setup_html);
|
||
setHtmlText(R.id.text_support, R.string.main_support_html);
|
||
setHtmlText(R.id.text_open_source_disclaimer, R.string.main_open_source_disclaimer_html);
|
||
setHtmlText(R.id.text_license, R.string.main_license_html);
|
||
setPlainText(R.id.text_libraries_heading, R.string.main_used_libraries_heading);
|
||
setHtmlText(R.id.text_libraries_list, libraries);
|
||
}
|
||
|
||
private void setPlainText(int viewId, int stringId, Object... args) {
|
||
TextView tv = (TextView)findViewById(viewId);
|
||
tv.setVisibility(View.VISIBLE);
|
||
tv.setText(getString(stringId, args));
|
||
}
|
||
|
||
private void setHtmlText(int viewId, int stringId, Object... args) {
|
||
TextView tv = (TextView)findViewById(viewId);
|
||
tv.setVisibility(View.VISIBLE);
|
||
tv.setText(trim(Html.fromHtml(getString(stringId, args))));
|
||
tv.setMovementMethod(LinkMovementMethod.getInstance());
|
||
}
|
||
|
||
private void setHtmlText(int viewId, String html) {
|
||
TextView tv = (TextView)findViewById(viewId);
|
||
tv.setVisibility(View.VISIBLE);
|
||
tv.setText(trim(Html.fromHtml(html)));
|
||
tv.setMovementMethod(LinkMovementMethod.getInstance());
|
||
}
|
||
|
||
private CharSequence trim(CharSequence text) {
|
||
while (text.charAt(text.length() - 1) == '\n') {
|
||
text = text.subSequence(0, text.length() - 1);
|
||
}
|
||
return text;
|
||
}
|
||
|
||
|
||
@Override
|
||
public boolean onCreateOptionsMenu(Menu menu) {
|
||
MenuInflater inflater = getMenuInflater();
|
||
inflater.inflate(R.menu.main_activity, menu);
|
||
return true;
|
||
}
|
||
|
||
|
||
public void addAccount(MenuItem item) {
|
||
startActivity(new Intent(this, AddAccountActivity.class));
|
||
}
|
||
|
||
public void showDebugInfo(MenuItem item) {
|
||
startActivity(new Intent(this, DebugInfoActivity.class));
|
||
}
|
||
|
||
public void showSettings(MenuItem item) {
|
||
startActivity(new Intent(this, SettingsActivity.class));
|
||
}
|
||
|
||
public void showSyncSettings(MenuItem item) {
|
||
Intent intent = new Intent(Settings.ACTION_SYNC_SETTINGS);
|
||
startActivity(intent);
|
||
}
|
||
|
||
public void showWebsite(MenuItem item) {
|
||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||
intent.setData(Constants.webUri);
|
||
startActivity(intent);
|
||
}
|
||
|
||
|
||
private String installedFrom() {
|
||
try {
|
||
return getPackageManager().getInstallerPackageName("at.bitfire.davdroid");
|
||
} catch(IllegalArgumentException e) {
|
||
return null;
|
||
}
|
||
}
|
||
}
|