package me.devsaki.hentoid.activities;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import me.devsaki.hentoid.abstracts.BaseActivity;
import me.devsaki.hentoid.database.domains.Content;
import me.devsaki.hentoid.enums.Site;
import me.devsaki.hentoid.util.Helper;
import me.devsaki.hentoid.util.LogHelper;
import static me.devsaki.hentoid.util.Helper.DURATION.LONG;
/**
* Created by avluis on 05/11/2016.
* Responsible for resolving intents and sending them where appropriate
*/
public class IntentActivity extends BaseActivity {
private static final String TAG = LogHelper.makeLogTag(IntentActivity.class);
private static final String HITOMI = "hitomi.la";
private static final String NHENTAI = "nhentai.net";
private static final String TSUMINO = "www.tsumino.com";
private static final String ASMHENTAI = "asmhentai.com";
private static final String HENTAICAFE = "hentai.cafe";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
Bundle extras = intent.getExtras() != null ? intent.getExtras() : null;
Uri data = null;
if (Intent.ACTION_VIEW.equals(action)) {
LogHelper.d(TAG, "ACTION_VIEW Intent received.");
data = intent.getData();
} else if (Intent.ACTION_SEND.equals(action) & type != null & extras != null) {
LogHelper.d(TAG, "ACTION_SEND Intent received.");
data = Uri.parse(intent.getStringExtra(Intent.EXTRA_TEXT));
}
processIntent(data);
finish();
}
private void processIntent(Uri data) {
Site site = null;
String parsedString = null;
String toParse;
if (data != null) {
LogHelper.d(TAG, "Uri: " + data);
toParse = data.getPath();
switch (data.getHost()) {
case HITOMI:
site = Site.HITOMI;
parsedString = toParse.replace("/galleries", "");
break;
case NHENTAI:
site = Site.NHENTAI;
parsedString = toParse.replace("/g", "");
break;
case TSUMINO:
site = Site.TSUMINO;
parsedString = toParse.replace("/Book/Info", "");
break;
case ASMHENTAI:
site = Site.ASMHENTAI;
parsedString = toParse.replace("/g", "").concat("/"); // '/' required
break;
case HENTAICAFE:
site = Site.HENTAICAFE;
String path = data.toString();
parsedString = path.contains("/?p=") ? path.replace(Site.HENTAICAFE.getUrl(),
"") : toParse;
break;
default:
LogHelper.d(TAG, "Unknown host!");
site = null;
break;
}
}
if (site != null) {
Content content = new Content();
content.setSite(site);
content.setUrl(parsedString);
Helper.viewContent(this, content);
} else {
Helper.toast(this, "Can't do anything with this, sorry!", LONG);
}
}
}