package xyz.klinker.blur.addons.settings;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Point;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.Spanned;
import android.view.Display;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import xyz.klinker.blur.R;
import xyz.klinker.blur.addons.adapter.ChangelogAdapter;
import xyz.klinker.blur.addons.adapter.FaqAdapter;
import xyz.klinker.blur.addons.utils.XmlChangelogUtils;
import xyz.klinker.blur.addons.utils.XmlCreditsUtils;
import xyz.klinker.blur.addons.utils.XmlFaqUtils;
public class GetHelpActivity extends SettingsPopupActivity {
private static final int CHANGELOG = 0;
private static final int FAQ = 1;
private static final int CONTACT_US = 2;
private static final int BETA_COMMUNITY = 3;
private static final int WEBSITE = 4;
private static final int YOUTUBE = 5;
private static final int CREDITS = 6;
private static final int PRIVACY_POLICY = 7;
private static final int TWITTER = 0;
private static final int GOOGLE_PLUS = 1;
private static final int EMAIL = 2;
private static final String TWITTER_LINK = "https://twitter.com/lukeklinker";
private static final String[] EMAIL_ADDRESS = new String[] {"luke@klinkerapps.com"};
private static final String WEBSITE_LINK = "http://klinkerapps.com";
private static final String YOUTUBE_LINK = "http://youtu.be/HD66-8a3J1w";
private static final String GOOGLE_PLUS_LINK = "https://plus.google.com/communities/111855545153586177337";
private static final String PRIVACY_POLICY_LINK = "http://privacy.klinkerapps.com";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(android.R.layout.list_content);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.get_help_options, android.R.layout.simple_list_item_1);
ListView list = (ListView) findViewById(android.R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
switch (i) {
case CHANGELOG:
showChangelog();
break;
case FAQ:
showFAQDialog();
break;
case CONTACT_US:
new AlertDialog.Builder(context)
.setTitle(R.string.faq)
.setMessage(R.string.faq_first)
.setPositiveButton(R.string.view_faq, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showFAQDialog();
}
})
.setNegativeButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showContactUsDialog();
}
})
.create()
.show();
break;
case BETA_COMMUNITY:
Intent beta = new Intent(Intent.ACTION_VIEW);
beta.setData(Uri.parse(GOOGLE_PLUS_LINK));
startActivity(beta);
break;
case WEBSITE:
Intent web = new Intent(Intent.ACTION_VIEW);
web.setData(Uri.parse(WEBSITE_LINK));
startActivity(web);
break;
case YOUTUBE:
Intent youtube = new Intent(Intent.ACTION_VIEW);
youtube.setData(Uri.parse(YOUTUBE_LINK));
startActivity(youtube);
break;
case CREDITS:
showCreditsDialog();
break;
case PRIVACY_POLICY:
Intent privacy = new Intent(Intent.ACTION_VIEW);
privacy.setData(Uri.parse(PRIVACY_POLICY_LINK));
startActivity(privacy);
break;
}
}
});
}
@Override
public void setXML() {
// do nothing here, we don't want an xml
}
private void showFAQDialog() {
final ListView list = new ListView(context);
list.setDividerHeight(0);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int height = size.y;
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height - 200);
list.setLayoutParams(params);
new AsyncTask<Spanned[], Void, XmlFaqUtils.FAQ[]>() {
@Override
public XmlFaqUtils.FAQ[] doInBackground(Spanned[]... params) {
return XmlFaqUtils.parse(context);
}
@Override
public void onPostExecute(XmlFaqUtils.FAQ[] result) {
list.setAdapter(new FaqAdapter(context, result));
}
}.execute();
new AlertDialog.Builder(context)
.setTitle(R.string.faq)
.setView(list)
.setPositiveButton(R.string.ok, null)
.show();
}
private void showCreditsDialog() {
final ListView list = new ListView(context);
list.setDividerHeight(0);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int height = size.y;
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height - 200);
list.setLayoutParams(params);
new AsyncTask<Spanned[], Void, Spanned[]>() {
@Override
public Spanned[] doInBackground(Spanned[]... params) {
return XmlCreditsUtils.parse(context);
}
@Override
public void onPostExecute(Spanned[] result) {
list.setAdapter(new ChangelogAdapter(context, result));
}
}.execute();
new AlertDialog.Builder(context)
.setTitle(R.string.credits)
.setView(list)
.setPositiveButton(R.string.ok, null)
.show();
}
private void showChangelog() {
final ListView list = new ListView(context);
list.setDividerHeight(0);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int height = size.y;
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height - 200);
list.setLayoutParams(params);
new AsyncTask<Spanned[], Void, Spanned[]>() {
@Override
public Spanned[] doInBackground(Spanned[]... params) {
return XmlChangelogUtils.parse(context);
}
@Override
public void onPostExecute(Spanned[] result) {
list.setAdapter(new ChangelogAdapter(context, result));
}
}.execute();
new AlertDialog.Builder(context)
.setTitle(R.string.changelog)
.setView(list)
.setPositiveButton(R.string.ok, null)
.show();
}
private void showContactUsDialog() {
new AlertDialog.Builder(context)
.setItems(R.array.contact_us_items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent();
switch(which) {
case TWITTER:
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(TWITTER_LINK));
break;
case GOOGLE_PLUS:
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(GOOGLE_PLUS_LINK));
break;
case EMAIL:
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(Intent.EXTRA_EMAIL, EMAIL_ADDRESS);
intent.putExtra(Intent.EXTRA_SUBJECT, "Blur - A Launcher Replacement");
break;
}
if (intent != null) {
startActivity(intent);
} else {
Toast.makeText(context, R.string.coming_soon, Toast.LENGTH_SHORT).show();
}
}
})
.create()
.show();
}
}