1
0
Fork 0
mirror of https://github.com/gsantner/dandelion synced 2025-09-15 13:19:42 +02:00
This commit is contained in:
vanitasvitae 2016-12-17 11:17:08 +00:00 committed by GitHub
commit bf3c9cd125
4 changed files with 93 additions and 11 deletions

View file

@ -1008,6 +1008,7 @@ public class MainActivity extends ThemedActivity
snackbarNoInternet.show(); snackbarNoInternet.show();
} }
} }
break;
case R.id.nav_activities: { case R.id.nav_activities: {
if (WebHelper.isOnline(MainActivity.this)) { if (WebHelper.isOnline(MainActivity.this)) {

View file

@ -74,8 +74,14 @@ public class UpdateTitleReceiver extends BroadcastReceiver {
setTitle(R.string.nav_mentions); setTitle(R.string.nav_mentions);
} else if (subUrl.startsWith(DiasporaUrlHelper.SUBURL_PUBLIC)) { } else if (subUrl.startsWith(DiasporaUrlHelper.SUBURL_PUBLIC)) {
setTitle(R.string.public_); setTitle(R.string.public_);
} else if (urls.getManageContactsUrl().equals(url)) {
setTitle(R.string.contacts);
} else if (urls.getManageTagsUrl().equals(url)) {
setTitle(R.string.pref_title__manage_tags);
} else if (urls.isAspectUrl(url)) { } else if (urls.isAspectUrl(url)) {
setTitle(urls.getAspectNameFromUrl(url, app)); setTitle(urls.getAspectNameFromUrl(url, app));
} else if (urls.getReportsUrl().equals(url)) {
setTitle(R.string.nav_reports);
} }
} else { } else {
AppLog.spam(this, "onReceive()- Invalid url: " + url); AppLog.spam(this, "onReceive()- Invalid url: " + url);

View file

@ -0,0 +1,74 @@
package com.github.dfa.diaspora_android.service;
import android.app.DownloadManager;
import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment;
import android.os.Looper;
import android.os.StrictMode;
import android.widget.Toast;
import com.github.dfa.diaspora_android.R;
import com.github.dfa.diaspora_android.util.AppLog;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
/**
* Created by vanitas on 06.11.16.
*/
public class SaveImageTask extends AsyncTask<String, Void, String> {
protected Context context;
public void setContext(Context context) {
this.context = context;
}
protected String doInBackground(String... urls) {
String url = urls[0];
if (url != null) {
Uri source = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(source);
URL sourceUrl;
InputStream is;
byte[] a = new byte[8];
String extension = ".png";
try {
sourceUrl = new URL(source.toString());
is = sourceUrl.openStream();
is.read(a);
is.close();
AppLog.d(this, "Array: " + new String(a));
//JPG
if (new String(a).startsWith(new String(new byte[]{-1, -40}))) {
AppLog.d(this, "is jpg");
extension = ".jpg";
} else
//GIF
if (new String(a).startsWith("GIF")) {
AppLog.d(this, "is gif");
extension = ".gif";
} else {
AppLog.d(this, "is SPARTAAAA! (GIF)");
}
} catch (IOException ignored) {
}
File destinationFile = new File(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/"
+ System.currentTimeMillis() + extension);
request.setDestinationUri(Uri.fromFile(destinationFile));
((DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE)).enqueue(request);
return destinationFile.getAbsolutePath();
}
return null;
}
@Override
protected void onPostExecute(String s) {
Toast.makeText(context, context.getString(R.string.share__toast_saved_image_to_location)+" "+s, Toast.LENGTH_LONG).show();
}
}

View file

@ -30,18 +30,27 @@ import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.net.Uri; import android.net.Uri;
import android.os.AsyncTask;
import android.os.Environment; import android.os.Environment;
import android.os.StrictMode;
import android.support.v4.content.LocalBroadcastManager; import android.support.v4.content.LocalBroadcastManager;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.ContextMenu; import android.view.ContextMenu;
import android.view.MenuItem; import android.view.MenuItem;
import android.widget.Toast; import android.widget.Toast;
import com.github.dfa.diaspora_android.App;
import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.R;
import com.github.dfa.diaspora_android.activity.MainActivity; import com.github.dfa.diaspora_android.activity.MainActivity;
import com.github.dfa.diaspora_android.service.ImageDownloadTask; import com.github.dfa.diaspora_android.service.ImageDownloadTask;
import com.github.dfa.diaspora_android.service.SaveImageTask;
import com.github.dfa.diaspora_android.util.AppLog;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
/** /**
* Subclass of WebView which adds a context menu for long clicks on images or links to share, save * Subclass of WebView which adds a context menu for long clicks on images or links to share, save
@ -107,17 +116,9 @@ public class ContextMenuWebView extends NestedWebView {
} }
} }
if (writeToStoragePermitted) { if (writeToStoragePermitted) {
if (url != null) { SaveImageTask saveTask = new SaveImageTask();
Uri source = Uri.parse(url); saveTask.setContext(context);
DownloadManager.Request request = new DownloadManager.Request(source); saveTask.execute(url);
File destinationFile = new File(Environment.getExternalStorageDirectory() + "/Pictures/Diaspora/"
+ System.currentTimeMillis() + ".png");
request.setDestinationUri(Uri.fromFile(destinationFile));
((DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE)).enqueue(request);
Toast.makeText(context, context.getText(R.string.share__toast_saved_image_to_location) + " " +
destinationFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
}
} }
} }
break; break;