diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 322280fe..e284792b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,7 +44,7 @@ android:name=".ui.activity.PlayActivity" android:screenOrientation="landscape" /> - - - - - headers) { - controller.boxTVRefreshInfo(playUrl); - if (mVideoView != null) { - mVideoView.release(); - mVideoView.setUrl(playUrl); - mVideoView.start(); - } - tryDismissParse(); - } - - @Override - public void fail() { - ProjectionPlayActivity.this.finish(); - tryDismissParse(); - } - });*/ - } - } - - @Override - public boolean dispatchKeyEvent(KeyEvent event) { - int keyCode = event.getKeyCode(); - int action = event.getAction(); - if (action == KeyEvent.ACTION_DOWN) { - if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT || keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { - controller.boxTVSlideStart(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT ? 1 : -1); - } else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE || (Hawk.get(HawkConfig.DEBUG_OPEN, false) && keyCode == KeyEvent.KEYCODE_0)) { - controller.boxTVTogglePlay(); - } - } else if (action == KeyEvent.ACTION_UP) { - if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT || keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { - controller.boxTVSlideStop(); - } - } - return super.dispatchKeyEvent(event); - } - - @Override - protected void onResume() { - super.onResume(); - if (mVideoView != null) { - mVideoView.resume(); - } - } - - - @Override - protected void onPause() { - super.onPause(); - if (mVideoView != null) { - mVideoView.pause(); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (mVideoView != null) { - mVideoView.release(); - mVideoView = null; - } - tryDismissParse(); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/ui/activity/PushActivity.java b/app/src/main/java/com/github/tvbox/osc/ui/activity/PushActivity.java new file mode 100644 index 00000000..4c96302c --- /dev/null +++ b/app/src/main/java/com/github/tvbox/osc/ui/activity/PushActivity.java @@ -0,0 +1,68 @@ +package com.github.tvbox.osc.ui.activity; + +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; +import android.content.Intent; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.github.tvbox.osc.R; +import com.github.tvbox.osc.base.BaseActivity; +import com.github.tvbox.osc.server.ControlManager; +import com.github.tvbox.osc.ui.tv.QRCodeGen; + +import me.jessyan.autosize.utils.AutoSizeUtils; + +public class PushActivity extends BaseActivity { + private ImageView ivQRCode; + private TextView tvAddress; + + @Override + protected int getLayoutResID() { + return R.layout.activity_push; + } + + @Override + protected void init() { + initView(); + initData(); + } + + private void initView() { + ivQRCode = findViewById(R.id.ivQRCode); + tvAddress = findViewById(R.id.tvAddress); + refreshQRCode(); + findViewById(R.id.pushLocal).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + try { + ClipboardManager manager = (ClipboardManager) PushActivity.this.getSystemService(Context.CLIPBOARD_SERVICE); + if (manager != null) { + if (manager.hasPrimaryClip() && manager.getPrimaryClip() != null && manager.getPrimaryClip().getItemCount() > 0) { + ClipData.Item addedText = manager.getPrimaryClip().getItemAt(0); + Intent newIntent = new Intent(mContext, DetailActivity.class); + newIntent.putExtra("id", addedText.getText().toString().trim()); + newIntent.putExtra("sourceKey", "push_agent"); + newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); + PushActivity.this.startActivity(newIntent); + } + } + } catch (Throwable th) { + + } + } + }); + } + + private void refreshQRCode() { + String address = ControlManager.get().getAddress(false); + tvAddress.setText(String.format("手机/电脑扫描上方二维码或者直接浏览器访问地址\n%s", address)); + ivQRCode.setImageBitmap(QRCodeGen.generateBitmap(address, AutoSizeUtils.mm2px(this, 300), AutoSizeUtils.mm2px(this, 300), 4)); + } + + private void initData() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java b/app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java index 6b217791..8512b19b 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/fragment/UserFragment.java @@ -12,6 +12,7 @@ import com.github.tvbox.osc.base.BaseLazyFragment; import com.github.tvbox.osc.event.ServerEvent; import com.github.tvbox.osc.ui.activity.HistoryActivity; import com.github.tvbox.osc.ui.activity.LivePlayActivity; +import com.github.tvbox.osc.ui.activity.PushActivity; import com.github.tvbox.osc.ui.activity.SearchActivity; import com.github.tvbox.osc.ui.activity.SettingActivity; import com.github.tvbox.osc.ui.adapter.HomeHotVodAdapter; @@ -42,6 +43,7 @@ public class UserFragment extends BaseLazyFragment implements View.OnClickListen private LinearLayout tvSearch; private LinearLayout tvSetting; private LinearLayout tvHistory; + private LinearLayout tvPush; public static UserFragment newInstance() { return new UserFragment(); @@ -59,20 +61,23 @@ public class UserFragment extends BaseLazyFragment implements View.OnClickListen tvSearch = findViewById(R.id.tvSearch); tvSetting = findViewById(R.id.tvSetting); tvHistory = findViewById(R.id.tvHistory); + tvPush = findViewById(R.id.tvPush); tvLive.setOnClickListener(this); tvSearch.setOnClickListener(this); tvSetting.setOnClickListener(this); tvHistory.setOnClickListener(this); + tvPush.setOnClickListener(this); tvLive.setOnFocusChangeListener(focusChangeListener); tvSearch.setOnFocusChangeListener(focusChangeListener); tvSetting.setOnFocusChangeListener(focusChangeListener); tvHistory.setOnFocusChangeListener(focusChangeListener); + tvPush.setOnFocusChangeListener(focusChangeListener); TvRecyclerView tvHotList = findViewById(R.id.tvHotList); HomeHotVodAdapter adapter = new HomeHotVodAdapter(); adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { @Override public void onItemClick(BaseQuickAdapter adapter, View view, int position) { - if(ApiConfig.get().getSourceBeanList().isEmpty()) + if (ApiConfig.get().getSourceBeanList().isEmpty()) return; String title = ((HomeHotVodAdapter.HotVod) adapter.getItem(position)).getName(); Intent newIntent = new Intent(mContext, SearchActivity.class); @@ -172,6 +177,8 @@ public class UserFragment extends BaseLazyFragment implements View.OnClickListen jumpActivity(SettingActivity.class); } else if (v.getId() == R.id.tvHistory) { jumpActivity(HistoryActivity.class); + } else if (v.getId() == R.id.tvPush) { + jumpActivity(PushActivity.class); } } diff --git a/app/src/main/java/com/github/tvbox/osc/ui/tv/QRCodeGen.java b/app/src/main/java/com/github/tvbox/osc/ui/tv/QRCodeGen.java index a770d810..df6866a9 100644 --- a/app/src/main/java/com/github/tvbox/osc/ui/tv/QRCodeGen.java +++ b/app/src/main/java/com/github/tvbox/osc/ui/tv/QRCodeGen.java @@ -17,11 +17,11 @@ import java.util.Map; * @description: */ public class QRCodeGen { - public static Bitmap generateBitmap(String content, int width, int height) { + public static Bitmap generateBitmap(String content, int width, int height, int padding) { QRCodeWriter qrCodeWriter = new QRCodeWriter(); Map hints = new HashMap<>(); hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); - hints.put(EncodeHintType.MARGIN, "0"); + hints.put(EncodeHintType.MARGIN, padding + ""); try { BitMatrix encode = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints); int[] pixels = new int[width * height]; @@ -40,4 +40,8 @@ public class QRCodeGen { } return null; } + + public static Bitmap generateBitmap(String content, int width, int height) { + return generateBitmap(content, width, height, 0); + } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_push.xml b/app/src/main/res/layout/activity_push.xml new file mode 100644 index 00000000..cb4a8c91 --- /dev/null +++ b/app/src/main/res/layout/activity_push.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + \ No newline at end of file