Sorting out extracts for shared URLs. Almost got it working, just one little step to work out.

This commit is contained in:
PhotonQyv 2017-09-01 18:11:30 +01:00
parent e27cd6a147
commit ef23418bb3
2 changed files with 43 additions and 10 deletions

View File

@ -40,6 +40,7 @@ import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.text.Editable; import android.text.Editable;
import android.text.Html; import android.text.Html;
import android.text.TextUtils;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
@ -243,13 +244,6 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
sharedContent = b.getString("sharedContent", null); sharedContent = b.getString("sharedContent", null);
sharedSubject = b.getString("sharedSubject", null); sharedSubject = b.getString("sharedSubject", null);
// ACTION_SEND_TEXT route
if (sharedContent != null)
{
// Do Extract from URL here
final ParserUtils parser = new ParserUtils(this);
}
// ACTION_SEND route // ACTION_SEND route
if (b.getInt("uriNumber", 0) == 1) { if (b.getInt("uriNumber", 0) == 1) {
@ -307,7 +301,15 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
}}); }});
//TODO: In here is where I've grafted on the code from Tusky.
if( sharedContent != null ){ //Shared content if( sharedContent != null ){ //Shared content
// ParserUtils is a class I borrowed from Tusky.
final ParserUtils parser = new ParserUtils(this);
parser.putInClipboardManager(TootActivity.this, sharedContent);
String urlString = parser.getPastedURLText(TootActivity.this);
if( sharedSubject != null){ if( sharedSubject != null){
sharedContent = sharedSubject + "\n\n" + sharedContent; sharedContent = sharedSubject + "\n\n" + sharedContent;
} }
@ -317,7 +319,9 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
int charsInCw = 0; int charsInCw = 0;
int charsInToot = 0; int charsInToot = 0;
uploadSharedImage(sharedUri); if (!sharedUri.isEmpty()) {
uploadSharedImage(sharedUri);
}
boolean isAccountPrivate = account.isLocked(); boolean isAccountPrivate = account.isLocked();
if(isAccountPrivate){ if(isAccountPrivate){
@ -556,6 +560,16 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
mToast.show(); mToast.show();
} }
//TODO: This overload takes care of the single URL coming from a text share.
public void uploadSharedImage(Uri image)
{
if (image != null) {
ArrayList<Uri> uri = new ArrayList<>();
uri.add(image);
uploadSharedImage(uri);
}
}
// Handles uploading shared images // Handles uploading shared images
public void uploadSharedImage(ArrayList<Uri> uri) public void uploadSharedImage(ArrayList<Uri> uri)
{ {
@ -568,6 +582,9 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
break; break;
} }
// TODO: Work out what needs to be done to the URL from a text URL share to allow upload.
Toast.makeText(getApplicationContext(), "in upload: " + fileUri.toString(), Toast.LENGTH_SHORT).show();
picture_scrollview.setVisibility(View.VISIBLE); picture_scrollview.setVisibility(View.VISIBLE);
try { try {
@ -1322,8 +1339,23 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc
} }
} }
// TODO: These two methods are part of the interface for ParserUtils
/*
These two methods are added to handle the grafted on code from Tusky,
they are part of its interface.
*/
@Override @Override
public void onReceiveHeaderInfo(ParserUtils.HeaderInfo headerInfo) { public void onReceiveHeaderInfo(ParserUtils.HeaderInfo headerInfo) {
if (!TextUtils.isEmpty(headerInfo.title)) {
Toast.makeText(getApplicationContext(), headerInfo.title, Toast.LENGTH_SHORT).show();
if (!TextUtils.isEmpty(headerInfo.image)) {
Toast.makeText(getApplicationContext(), "We have an image", Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(), headerInfo.image, Toast.LENGTH_SHORT).show();
uploadSharedImage(Uri.parse(headerInfo.image));
}
}
} }
@Override @Override

View File

@ -19,7 +19,8 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import static com.keylesspalace.tusky.util.StringUtils.QUOTE;
// TODO: Borrowed wholesale from Tusky
/** /**
* Inspect and get the information from a URL. * Inspect and get the information from a URL.
@ -35,7 +36,7 @@ public class ParserUtils {
this.parserListener = parserListener; this.parserListener = parserListener;
} }
// ComposeActivity : EditText inside the onTextChanged // TootActivity : EditText inside the onTextChanged
public String getPastedURLText(Context context) { public String getPastedURLText(Context context) {
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
String pasteData; String pasteData;