Disable clipboard check if the top scene is solid

This commit is contained in:
seven332 committed 2018-06-25 14:53:33 +08:00
1 parent 66cab7b41e
commit e558be2b89
2 files changed
+38 -9

No files matched your search

@@ -85,6 +85,7 @@ import com.hippo.util.PermissionRequester;
import com.hippo.widget.LoadImageView;
import com.hippo.yorozuya.IOUtils;
import com.hippo.yorozuya.ResourcesUtils;
import com.hippo.yorozuya.SimpleHandler;
import com.hippo.yorozuya.ViewUtils;
import java.io.File;
import java.io.FileOutputStream;
@@ -408,18 +409,38 @@ public final class MainActivity extends StageActivity
checkClipboardUrl();
}
private String getTextFromClipboard() {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard != null) {
ClipData clip = clipboard.getPrimaryClip();
if (clip != null && clip.getItemCount() > 0) {
return clip.getItemAt(0).getText().toString();
}
}
return null;
@Override
protected void onTransactScene() {
super.onTransactScene();
checkClipboardUrl();
}
private void checkClipboardUrl() {
SimpleHandler.getInstance().postDelayed(() -> {
if (!isSolid()) {
checkClipboardUrlInternal();
}
}, 300);
}
private boolean isSolid() {
Class<?> topClass = getTopSceneClass();
return topClass == null || SolidScene.class.isAssignableFrom(topClass);
}
private String getTextFromClipboard() {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard != null) {
ClipData clip = clipboard.getPrimaryClip();
if (clip != null && clip.getItemCount() > 0) {
return clip.getItemAt(0).getText().toString();
}
}
return null;
}
private void checkClipboardUrlInternal() {
String text = getTextFromClipboard();
int hashCode = text != null ? text.hashCode() : 0;
@@ -231,6 +231,9 @@ public abstract class StageActivity extends EhActivity {
protected void onUnregister() {
}
protected void onTransactScene() {
}
public int getStageId() {
return mStageId;
}
@@ -311,6 +314,7 @@ public abstract class StageActivity extends EhActivity {
// Commit
transaction.commitAllowingStateLoss();
onTransactScene();
// New arguments
if (args != null && fragment instanceof SceneFragment) {
@@ -384,6 +388,7 @@ public abstract class StageActivity extends EhActivity {
// Commit
transaction.commitAllowingStateLoss();
onTransactScene();
// Check request
if (announcer.requestFrom != null) {
@@ -460,6 +465,7 @@ public abstract class StageActivity extends EhActivity {
// Commit
transaction.commitAllowingStateLoss();
onTransactScene();
if (!createNewScene && args != null) {
// TODO Call onNewArguments when view created ?
@@ -538,6 +544,7 @@ public abstract class StageActivity extends EhActivity {
}
transaction.remove(scene);
transaction.commitAllowingStateLoss();
onTransactScene();
// Remove tag
mSceneTagList.remove(index);
@@ -562,6 +569,7 @@ public abstract class StageActivity extends EhActivity {
transaction.detach(fragment);
transaction.attach(fragment);
transaction.commitAllowingStateLoss();
onTransactScene();
}
@Override