diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0edf9dc7..21545841 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -49,22 +49,7 @@ android:label="@string/new_post" android:theme="@style/AppTheme.NoActionBar" android:screenOrientation="portrait" > - - - - - - - - - diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/ShareActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/ShareActivity.java index 3b42a725..095f4cc5 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/ShareActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/ShareActivity.java @@ -20,6 +20,9 @@ package com.github.dfa.diaspora_android.activity; import android.annotation.SuppressLint; +import android.annotation.TargetApi; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Build; @@ -207,37 +210,76 @@ public class ShareActivity extends MainActivity { public void onPageFinished(WebView view, String url) { - if (extras.containsKey(Intent.EXTRA_TEXT)) { - final String extraText = (String) extras.get(Intent.EXTRA_TEXT); + final String extraText = (String) extras.get(Intent.EXTRA_TEXT); + final String extraSubject = (String) extras.get(Intent.EXTRA_SUBJECT); - webView.setWebViewClient(new WebViewClient() { - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { + final CharSequence[] options2 = {getString(R.string.new_post1), getString(R.string.new_post2)}; + if (Helpers.isOnline(ShareActivity.this)) { + new AlertDialog.Builder(ShareActivity.this) + .setItems(options2, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int item) { + if (options2[item].equals(getString(R.string.new_post1))) - finish(); + webView.setWebViewClient(new WebViewClient() { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { - Intent i = new Intent(ShareActivity.this, MainActivity.class); - i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(i); - overridePendingTransition(0, 0); + finish(); - return false; - } - }); + Intent i = new Intent(ShareActivity.this, MainActivity.class); + i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(i); + overridePendingTransition(0, 0); - webView.loadUrl("javascript:(function() { " + - "document.getElementsByTagName('textarea')[0].style.height='110px'; " + - "document.getElementsByTagName('textarea')[0].innerHTML = '> " + - String.format("%s %s'; ", extraText, getString(R.string.shared_by_diaspora_android)) + - " if(document.getElementById(\"main_nav\")) {" + - " document.getElementById(\"main_nav\").parentNode.removeChild(" + - " document.getElementById(\"main_nav\"));" + - " } else if (document.getElementById(\"main-nav\")) {" + - " document.getElementById(\"main-nav\").parentNode.removeChild(" + - " document.getElementById(\"main-nav\"));" + - " }" + - "})();"); + return false; + } + }); + + webView.loadUrl("javascript:(function() { " + + "document.getElementsByTagName('textarea')[0].style.height='110px'; " + + "document.getElementsByTagName('textarea')[0].innerHTML = '> " + + String.format("%s %s'; ", extraText, getString(R.string.shared_by_diaspora_android)) + + " if(document.getElementById(\"main_nav\")) {" + + " document.getElementById(\"main_nav\").parentNode.removeChild(" + + " document.getElementById(\"main_nav\"));" + + " } else if (document.getElementById(\"main-nav\")) {" + + " document.getElementById(\"main-nav\").parentNode.removeChild(" + + " document.getElementById(\"main-nav\"));" + + " }" + + "})();"); + if (options2[item].equals(getString(R.string.new_post2))) + webView.setWebViewClient(new WebViewClient() { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + finish(); + + Intent i = new Intent(ShareActivity.this, MainActivity.class); + i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(i); + overridePendingTransition(0, 0); + + return false; + } + }); + + webView.loadUrl("javascript:(function() { " + + "document.getElementsByTagName('textarea')[0].style.height='110px'; " + + "document.getElementsByTagName('textarea')[0].innerHTML = '**" + extraSubject + "** " + + String.format("%s %s'; ", extraText, getString(R.string.shared_by_diaspora_android)) + + " if(document.getElementById(\"main_nav\")) {" + + " document.getElementById(\"main_nav\").parentNode.removeChild(" + + " document.getElementById(\"main_nav\"));" + + " } else if (document.getElementById(\"main-nav\")) {" + + " document.getElementById(\"main-nav\").parentNode.removeChild(" + + " document.getElementById(\"main-nav\"));" + + " }" + + "})();"); + } + }).show(); + } else { + Snackbar.make(swipeRefreshLayout, R.string.no_internet, Snackbar.LENGTH_LONG).show(); } } }); @@ -302,7 +344,7 @@ public class ShareActivity extends MainActivity { int id = item.getItemId(); if (id == R.id.action_exit) { - moveTaskToBack(true); + finish(); } return super.onOptionsItemSelected(item); @@ -319,7 +361,7 @@ public class ShareActivity extends MainActivity { .setAction(R.string.yes, new View.OnClickListener() { @Override public void onClick(View view) { - moveTaskToBack(true); + finish(); } }); snackbar.show(); diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/ShareActivity2.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/ShareActivity2.java deleted file mode 100644 index 1d69ea04..00000000 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/ShareActivity2.java +++ /dev/null @@ -1,339 +0,0 @@ -/* - This file is part of the Diaspora Native WebApp. - - Diaspora Native WebApp is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Diaspora Native WebApp is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with the Diaspora Native WebApp. - - If not, see . - */ - -package com.github.dfa.diaspora_android.activity; - -import android.annotation.SuppressLint; -import android.content.Intent; -import android.net.Uri; -import android.os.Build; -import android.os.Bundle; -import android.os.Environment; -import android.provider.MediaStore; -import android.support.design.widget.Snackbar; -import android.support.v4.widget.SwipeRefreshLayout; -import android.support.v7.widget.Toolbar; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.webkit.ValueCallback; -import android.webkit.WebChromeClient; -import android.webkit.WebSettings; -import android.webkit.WebView; -import android.webkit.WebViewClient; -import android.widget.ProgressBar; - -import com.github.dfa.diaspora_android.App; -import com.github.dfa.diaspora_android.R; -import com.github.dfa.diaspora_android.util.Helpers; - -import java.io.File; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; - -public class ShareActivity2 extends MainActivity { - - private static final String TAG = "Diaspora Share"; - private WebView webView; - private String podDomain; - private ValueCallback mFilePathCallback; - private String mCameraPhotoPath; - private com.getbase.floatingactionbutton.FloatingActionsMenu fab; - private ProgressBar progressBar; - private SwipeRefreshLayout swipeView; - - @SuppressLint("SetJavaScriptEnabled") - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - setContentView(R.layout.activity_main); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - progressBar = (ProgressBar) findViewById(R.id.progressBar); - - swipeView = (SwipeRefreshLayout) findViewById(R.id.swipe); - swipeView.setEnabled(false); - - toolbar.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (Helpers.isOnline(ShareActivity2.this)) { - Intent intent = new Intent(ShareActivity2.this, MainActivity.class); - startActivityForResult(intent, 100); - overridePendingTransition(0, 0); - } else { - Snackbar.make(swipeView, R.string.no_internet, Snackbar.LENGTH_LONG).show(); - } - } - }); - - - podDomain = ((App) getApplication()).getSettings().getPodDomain(); - - fab = (com.getbase.floatingactionbutton.FloatingActionsMenu) findViewById(R.id.fab_expand_menu_button); - fab.setVisibility(View.GONE); - - webView = (WebView) findViewById(R.id.webView); - webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); - - WebSettings wSettings = webView.getSettings(); - wSettings.setJavaScriptEnabled(true); - wSettings.setBuiltInZoomControls(true); - - if (Build.VERSION.SDK_INT >= 21) - wSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); - - /* - * WebViewClient - */ - webView.setWebViewClient(new WebViewClient() { - public boolean shouldOverrideUrlLoading(WebView view, String url) { - Log.d(TAG, url); - if (!url.contains(podDomain)) { - Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - startActivity(i); - return true; - } - return false; - - } - - public void onPageFinished(WebView view, String url) { - Log.i(TAG, "Finished loading URL: " + url); - } - }); - - - /* - * WebChromeClient - */ - webView.setWebChromeClient(new WebChromeClient() { - - public void onProgressChanged(WebView wv, int progress) { - progressBar.setProgress(progress); - - if (progress > 0 && progress <= 60) { - Helpers.getNotificationCount(wv); - } - - if (progress > 60) { - Helpers.hideTopBar(wv); - } - - if (progress == 100) { - progressBar.setVisibility(View.GONE); - } else { - progressBar.setVisibility(View.VISIBLE); - } - } - - @Override - public boolean onShowFileChooser(WebView webView, ValueCallback filePathCallback, FileChooserParams fileChooserParams) { - if (mFilePathCallback != null) mFilePathCallback.onReceiveValue(null); - - mFilePathCallback = filePathCallback; - - Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - if (takePictureIntent.resolveActivity(getPackageManager()) != null) { - // Create the File where the photo should go - File photoFile = null; - try { - photoFile = createImageFile(); - takePictureIntent.putExtra("PhotoPath", mCameraPhotoPath); - } catch (IOException ex) { - // Error occurred while creating the File - Snackbar.make(getWindow().findViewById(R.id.drawer_layout), "Unable to get image", Snackbar.LENGTH_SHORT).show(); - } - - // Continue only if the File was successfully created - if (photoFile != null) { - mCameraPhotoPath = "file:" + photoFile.getAbsolutePath(); - takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, - Uri.fromFile(photoFile)); - } else { - takePictureIntent = null; - } - } - - Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT); - contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE); - contentSelectionIntent.setType("image/*"); - - Intent[] intentArray; - if (takePictureIntent != null) { - intentArray = new Intent[]{takePictureIntent}; - } else { - intentArray = new Intent[0]; - } - - Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER); - chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent); - chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser"); - chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray); - - startActivityForResult(chooserIntent, INPUT_FILE_REQUEST_CODE); - - return true; - } - }); - - - Intent intent = getIntent(); - final Bundle extras = intent.getExtras(); - String action = intent.getAction(); - - if (Intent.ACTION_SEND.equals(action)) { - webView.setWebViewClient(new WebViewClient() { - - public void onPageFinished(WebView view, String url) { - - if (extras.containsKey(Intent.EXTRA_TEXT) && extras.containsKey(Intent.EXTRA_SUBJECT)) { - final String extraText = (String) extras.get(Intent.EXTRA_TEXT); - final String extraSubject = (String) extras.get(Intent.EXTRA_SUBJECT); - - webView.setWebViewClient(new WebViewClient() { - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { - - finish(); - - Intent i = new Intent(ShareActivity2.this, MainActivity.class); - i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(i); - overridePendingTransition(0, 0); - - return false; - } - }); - - webView.loadUrl("javascript:(function() { " + - "document.getElementsByTagName('textarea')[0].style.height='110px'; " + - "document.getElementsByTagName('textarea')[0].innerHTML = '**[" + extraSubject + "]** " + extraText + " *[shared with #DiasporaWebApp]*'; " + - " if(document.getElementById(\"main_nav\")) {" + - " document.getElementById(\"main_nav\").parentNode.removeChild(" + - " document.getElementById(\"main_nav\"));" + - " } else if (document.getElementById(\"main-nav\")) {" + - " document.getElementById(\"main-nav\").parentNode.removeChild(" + - " document.getElementById(\"main-nav\"));" + - " }" + - "})();"); - - } - } - }); - } - - if (savedInstanceState == null) { - if (Helpers.isOnline(ShareActivity2.this)) { - webView.loadUrl("https://" + podDomain + "/status_messages/new"); - } else { - Snackbar.make(getWindow().findViewById(R.id.drawer_layout), R.string.no_internet, Snackbar.LENGTH_SHORT).show(); - } - } - - } - - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode != INPUT_FILE_REQUEST_CODE || mFilePathCallback == null) { - super.onActivityResult(requestCode, resultCode, data); - return; - } - Uri[] results = null; - if (resultCode == RESULT_OK) { - if (data == null) { - if (mCameraPhotoPath != null) { - results = new Uri[]{Uri.parse(mCameraPhotoPath)}; - } - } else { - String dataString = data.getDataString(); - if (dataString != null) { - results = new Uri[]{Uri.parse(dataString)}; - } - } - } - - mFilePathCallback.onReceiveValue(results); - mFilePathCallback = null; - } - - private File createImageFile() throws IOException { - String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); - String imageFileName = "JPEG_" + timeStamp + "_"; - File storageDir = Environment.getExternalStoragePublicDirectory( - Environment.DIRECTORY_PICTURES); - return File.createTempFile( - imageFileName, /* prefix */ - ".jpg", /* suffix */ - storageDir /* directory */ - ); - } - - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.menu_compose, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - - if (id == R.id.action_exit) { - moveTaskToBack(true); - } - - return super.onOptionsItemSelected(item); - } - - @Override - public void onBackPressed() { - fab.collapse(); - if (webView.canGoBack()) { - webView.goBack(); - setTitle(R.string.app_name); - Snackbar snackbar = Snackbar - .make(swipeView, R.string.confirm_exit, Snackbar.LENGTH_LONG) - .setAction(R.string.yes, new View.OnClickListener() { - @Override - public void onClick(View view) { - moveTaskToBack(true); - } - }); - snackbar.show(); - } else { - Snackbar snackbar = Snackbar - .make(swipeView, R.string.confirm_exit, Snackbar.LENGTH_LONG) - .setAction(R.string.yes, new View.OnClickListener() { - @Override - public void onClick(View view) { - finish(); - } - }); - snackbar.show(); - } - } - -} \ No newline at end of file