Add support for Android 12 recents URL sharing

This commit is contained in:
tehcneko committed 2021-07-21 12:39:05 +08:00
1 parent d3810aa537
commit 436bc9ff39
4 files changed
+61

No files matched your search

@@ -21,6 +21,7 @@ import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.annotation.SuppressLint;
import android.app.assist.AssistContent;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
@@ -1248,4 +1249,27 @@ public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChan
}
}
}
@Nullable
private String getGalleryDetailUrl() {
long gid;
String token;
if (mGalleryInfo != null) {
gid = mGalleryInfo.gid;
token = mGalleryInfo.token;
} else {
return null;
}
return EhUrl.getGalleryDetailUrl(gid, token, 0, false);
}
@Override
public void onProvideAssistContent(AssistContent outContent) {
super.onProvideAssistContent(outContent);
String url = getGalleryDetailUrl();
if (url != null) {
outContent.setWebUri(Uri.parse(url));
}
}
}
@@ -21,6 +21,7 @@ import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.app.DownloadManager;
import android.app.assist.AssistContent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -2219,4 +2220,14 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
EhApplication.getEhClient(context).execute(request);
}
}
@Override
public void onProvideAssistContent(AssistContent outContent) {
super.onProvideAssistContent(outContent);
String url = getGalleryDetailUrl(false);
if (url != null) {
outContent.setWebUri(Uri.parse(url));
}
}
}
@@ -16,6 +16,7 @@
package com.hippo.scene;
import android.app.assist.AssistContent;
import android.os.Bundle;
import android.view.View;
@@ -104,6 +105,10 @@ public class SceneFragment extends Fragment {
finish();
}
public void onProvideAssistContent(AssistContent outContent) {
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
@@ -16,6 +16,7 @@
package com.hippo.scene;
import android.app.assist.AssistContent;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
@@ -589,6 +590,26 @@ public abstract class StageActivity extends EhActivity {
scene.onBackPressed();
}
@Override
public void onProvideAssistContent(AssistContent outContent) {
super.onProvideAssistContent(outContent);
int size = mSceneTagList.size();
String tag = mSceneTagList.get(size - 1);
SceneFragment scene;
Fragment fragment = getSupportFragmentManager().findFragmentByTag(tag);
if (fragment == null) {
Log.e(TAG, "onProvideAssistContent: Can't find scene by tag: " + tag);
return;
}
if (!(fragment instanceof SceneFragment)) {
Log.e(TAG, "onProvideAssistContent: The fragment is not SceneFragment");
return;
}
scene = (SceneFragment) fragment;
scene.onProvideAssistContent(outContent);
}
public SceneFragment findSceneByTag(String tag) {
FragmentManager fragmentManager = getSupportFragmentManager();
Fragment fragment = fragmentManager.findFragmentByTag(tag);