Merge pull request #274 from okcaptain/dev

update
pull/275/head^2
okcaptain 2 years ago committed by GitHub
commit 2ae77e7a5b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      app/build.gradle
  2. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  3. 14
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java
  4. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  5. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
  6. 10
      app/src/leanback/res/drawable/ic_home_lock.xml
  7. 36
      app/src/leanback/res/layout/activity_home.xml
  8. 58
      app/src/leanback/res/layout/activity_setting_custom.xml
  9. 13
      app/src/leanback/res/layout/view_widget_display.xml
  10. 16
      app/src/main/java/com/fongmi/android/tv/Setting.java
  11. 3
      app/src/main/res/values-zh-rCN/strings.xml
  12. 3
      app/src/main/res/values-zh-rTW/strings.xml
  13. 3
      app/src/main/res/values/strings.xml
  14. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  15. 9
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
  16. 10
      app/src/mobile/res/layout/dialog_control.xml
  17. 14
      app/src/mobile/res/layout/view_widget_display.xml

@ -11,7 +11,7 @@ android {
minSdk 21
targetSdk 28
versionCode 225
versionName "0207"
versionName "0212"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]

@ -20,6 +20,7 @@ import com.android.cast.dlna.dmr.DLNARendererService;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Product;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.Updater;
import com.fongmi.android.tv.api.config.LiveConfig;
import com.fongmi.android.tv.api.config.VodConfig;
@ -99,6 +100,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
Updater.get().release().start(this);
mResult = Result.empty();
Server.get().start();
setTitleView();
setRecyclerView();
setViewModel();
setAdapter();
@ -129,6 +131,10 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
}
private void setTitleView() {
mBinding.homeSiteLock.setVisibility(Setting.isHomeSiteLock() ? View.VISIBLE : View.GONE);
}
private void setRecyclerView() {
CustomSelector selector = new CustomSelector();
selector.addPresenter(Integer.class, new HeaderPresenter());
@ -352,6 +358,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public void showDialog() {
if (Setting.isHomeSiteLock()) return;
SiteDialog.create(this).show();
}
@ -438,6 +445,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
protected void onResume() {
super.onResume();
mClock.start();
setTitleView();
}
@Override

@ -43,8 +43,10 @@ public class SettingCustomActivity extends BaseActivity {
mBinding.displayTimeText.setText(getSwitch(Setting.isDisplayTime()));
mBinding.displayNetspeedText.setText(getSwitch(Setting.isDisplaySpeed()));
mBinding.displayDurationText.setText(getSwitch(Setting.isDisplayDuration()));
mBinding.displayMiniProgressText.setText(getSwitch(Setting.isDisplayMiniProgress()));
mBinding.speedText.setText(Setting.getPlaySpeed() + "x");
mBinding.fullscreenMenuKeyText.setText((fullscreenMenuKey = ResUtil.getStringArray(R.array.select_fullscreen_menu_key))[Setting.getFullscreenMenuKey()]);
mBinding.homeSiteLockText.setText(getSwitch(Setting.isHomeSiteLock()));
}
@Override
@ -55,9 +57,11 @@ public class SettingCustomActivity extends BaseActivity {
mBinding.displayTime.setOnClickListener(this::setDisplayTime);
mBinding.displayNetspeed.setOnClickListener(this::setDisplaySpeed);
mBinding.displayDuration.setOnClickListener(this::setDisplayDuration);
mBinding.displayMiniProgress.setOnClickListener(this::setDisplayMiniProgress);
mBinding.speed.setOnClickListener(this::setSpeed);
mBinding.speed.setOnLongClickListener(this::resetSpeed);
mBinding.fullscreenMenuKey.setOnClickListener(this::setfullscreenMenuKey);
mBinding.homeSiteLock.setOnClickListener(this::setHomeSiteLock);
}
private void setQuality(View view) {
@ -95,6 +99,11 @@ public class SettingCustomActivity extends BaseActivity {
mBinding.displayDurationText.setText(getSwitch(Setting.isDisplayDuration()));
}
private void setDisplayMiniProgress(View view) {
Setting.putDisplayMiniProgress(!Setting.isDisplayMiniProgress());
mBinding.displayMiniProgressText.setText(getSwitch(Setting.isDisplayMiniProgress()));
}
private void setSpeed(View view) {
float speed = Setting.getPlaySpeed();
float addon = speed >= 2 ? 1f : 0.25f;
@ -115,4 +124,9 @@ public class SettingCustomActivity extends BaseActivity {
mBinding.fullscreenMenuKeyText.setText(fullscreenMenuKey[index]);
}
private void setHomeSiteLock(View view) {
Setting.putHomeSiteLock(!Setting.isHomeSiteLock());
mBinding.homeSiteLockText.setText(getSwitch(Setting.isHomeSiteLock()));
}
}

@ -751,13 +751,15 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mBinding.display.time.setVisibility(Setting.isDisplayTime() || isVisible(mBinding.widget.info) ? View.VISIBLE : View.GONE);
mBinding.display.netspeed.setVisibility(Setting.isDisplaySpeed() && !isVisible(mBinding.control.getRoot()) ? View.VISIBLE : View.GONE);
mBinding.display.duration.setVisibility(Setting.isDisplayDuration() && !isVisible(mBinding.control.getRoot()) ? View.VISIBLE : View.GONE);
mBinding.display.progress.setVisibility(Setting.isDisplayMiniProgress() && !isVisible(mBinding.control.getRoot()) ? View.VISIBLE : View.GONE);
}
private void onTimeChangeDisplaySpeed() {
boolean visible = isVisible(mBinding.control.getRoot());
boolean visible = !isVisible(mBinding.control.getRoot());
long position = mPlayers.getPosition();
if (Setting.isDisplaySpeed() && !visible) Traffic.setSpeed(mBinding.display.netspeed);
if (Setting.isDisplayDuration() && !visible && position > 0) mBinding.display.duration.setText(mPlayers.getPositionTime(0) + "/" + mPlayers.getDurationTime());
if (Setting.isDisplaySpeed() && visible) Traffic.setSpeed(mBinding.display.netspeed);
if (Setting.isDisplayDuration() && visible && position > 0) mBinding.display.duration.setText(mPlayers.getPositionTime(0) + "/" + mPlayers.getDurationTime());
if (Setting.isDisplayMiniProgress() && visible && position > 0) mBinding.display.progress.setProgress((int)(position * 100 / mPlayers.getDuration()));
showDisplayInfo();
}

@ -12,6 +12,7 @@ import androidx.appcompat.widget.AppCompatTextView;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.impl.SiteCallback;
@ -53,6 +54,7 @@ public class CustomTitleView extends AppCompatTextView {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (Setting.isHomeSiteLock()) return false;
if (VodConfig.get().getSites().isEmpty()) return false;
if (hasEvent(event)) return onKeyDown(event);
else return super.dispatchKeyEvent(event);

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="@color/white"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z" />
</vector>

@ -16,15 +16,35 @@
android:paddingEnd="24dp"
android:paddingBottom="8dp">
<com.fongmi.android.tv.ui.custom.CustomTitleView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<LinearLayout
android:layout_gravity="start"
android:focusable="false"
android:text="@string/app_name"
android:textColor="@color/white"
android:textSize="24sp" />
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<com.fongmi.android.tv.ui.custom.CustomTitleView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:layout_marginRight="6dp"
android:focusable="false"
android:text="@string/app_name"
android:textColor="@color/white"
android:textSize="24dp" />
<ImageView
android:id="@+id/homeSiteLock"
android:layout_width="22dp"
android:layout_height="22dp"
android:layout_gravity="bottom"
android:layout_marginBottom="2dp"
android:background="@drawable/ic_home_lock"
android:focusable="false"
android:visibility="gone"
tools:visibility="visible" />
</LinearLayout>
<TextView
android:id="@+id/time"

@ -188,6 +188,35 @@
</LinearLayout>
<LinearLayout
android:id="@+id/displayMiniProgress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/selector_item"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/play_mini_progress"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/displayMiniProgressText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="開" />
</LinearLayout>
<LinearLayout
android:id="@+id/speed"
android:layout_width="match_parent"
@ -246,5 +275,34 @@
</LinearLayout>
<LinearLayout
android:id="@+id/homeSiteLock"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/selector_item"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/setting_home_site_lock"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/homeSiteLockText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="開啟" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

@ -51,4 +51,17 @@
android:textSize="16sp"
tools:text="10MB/S"/>
<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
android:max="100"
android:progress="0"
tools:progress="50"
android:secondaryProgress="100"/>
</RelativeLayout>

@ -365,6 +365,14 @@ public class Setting {
Prefers.put("display_duration", display);
}
public static boolean isDisplayMiniProgress() {
return Prefers.getBoolean("display_mini_progress", false);
}
public static void putDisplayMiniProgress(boolean display) {
Prefers.put("display_mini_progress", display);
}
public static float getPlaySpeed() {
return Prefers.getFloat("play_speed", 1.0f);
}
@ -381,4 +389,12 @@ public class Setting {
return Prefers.getInt("fullscreen_menu_key", 0);
}
public static boolean isHomeSiteLock() {
return Prefers.getBoolean("home_site_lock", false);
}
public static void putHomeSiteLock(boolean lock) {
Prefers.put("home_site_lock", lock);
}
}

@ -39,6 +39,7 @@
<string name="play_time">时间</string>
<string name="play_netspeed">网速</string>
<string name="play_duration">进度</string>
<string name="play_mini_progress">迷你进度</string>
<string name="play_danmu">弹幕</string>
<string name="play_speed">倍速</string>
<string name="play_change">换源</string>
@ -75,8 +76,8 @@
<string name="setting_custom">个性设置</string>
<string name="setting_quality">图片品质</string>
<string name="setting_size">图片尺寸</string>
<string name="setting_aggregated_search">聚合搜索</string>
<string name="setting_fullscreen_menu_key">全屏菜单键</string>
<string name="setting_home_site_lock">首页源锁定</string>
<string name="setting_doh">DoH</string>
<string name="setting_proxy">Proxy</string>
<string name="setting_cache">缓存</string>

@ -39,6 +39,7 @@
<string name="play_time">時間</string>
<string name="play_netspeed">網速</string>
<string name="play_duration">進度</string>
<string name="play_mini_progress">迷你進度</string>
<string name="play_danmu">彈幕</string>
<string name="play_speed">倍速</string>
<string name="play_change">換源</string>
@ -75,8 +76,8 @@
<string name="setting_custom">個性設定</string>
<string name="setting_quality">圖片品質</string>
<string name="setting_size">圖片尺寸</string>
<string name="setting_aggregated_search">聚合搜索</string>
<string name="setting_fullscreen_menu_key">全屏選單鍵</string>
<string name="setting_home_site_lock">首頁源鎖定</string>
<string name="setting_doh">DoH</string>
<string name="setting_proxy">Proxy</string>
<string name="setting_cache">暫存</string>

@ -39,6 +39,7 @@
<string name="play_time">Time</string>
<string name="play_netspeed">Net Speed</string>
<string name="play_duration">Duration</string>
<string name="play_mini_progress">Mini Progress</string>
<string name="play_danmu">Danmu</string>
<string name="play_speed">Speed</string>
<string name="play_change">Change</string>
@ -75,8 +76,8 @@
<string name="setting_custom">Custom setting</string>
<string name="setting_quality">Image quality</string>
<string name="setting_size">Image size</string>
<string name="setting_aggregated_search">Aggregated search</string>
<string name="setting_fullscreen_menu_key">Fullscreen menu key</string>
<string name="setting_home_site_lock">Home site lock</string>
<string name="setting_doh">DoH</string>
<string name="setting_proxy">Proxy</string>
<string name="setting_cache">Cache</string>

@ -936,6 +936,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mBinding.display.time.setVisibility(Setting.isDisplayTime() && visible ? View.VISIBLE : View.GONE);
mBinding.display.netspeed.setVisibility(Setting.isDisplaySpeed() && visible ? View.VISIBLE : View.GONE);
mBinding.display.duration.setVisibility(Setting.isDisplayDuration() && visible ? View.VISIBLE : View.GONE);
mBinding.display.progress.setVisibility(Setting.isDisplayMiniProgress() && visible ? View.VISIBLE : View.GONE);
}
private void onTimeChangeDisplaySpeed() {
@ -944,6 +945,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
long position = mPlayers.getPosition();
if (Setting.isDisplaySpeed() && visible) Traffic.setSpeed(mBinding.display.netspeed);
if (Setting.isDisplayDuration() && visible && position > 0) mBinding.display.duration.setText(mPlayers.getPositionTime(0) + "/" + mPlayers.getDurationTime());
if (Setting.isDisplayMiniProgress() && visible && position > 0) mBinding.display.progress.setProgress((int)(position * 100 / mPlayers.getDuration()));
showDisplayInfo();
}

@ -99,6 +99,7 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
binding.dptime.setActivated(Setting.isDisplayTime());
binding.dpspeed.setActivated(Setting.isDisplaySpeed());
binding.dpduration.setActivated(Setting.isDisplayDuration());
binding.dpminiprogress.setActivated(Setting.isDisplayMiniProgress());
setTrackVisible();
setScaleText();
setParse();
@ -123,6 +124,7 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
binding.dptime.setOnClickListener(v -> displayTime());
binding.dpspeed.setOnClickListener(v -> displaySpeed());
binding.dpduration.setOnClickListener(v -> displayDuration());
binding.dpminiprogress.setOnClickListener(v -> displayMiniProgress());
}
private void displayTime() {
@ -146,6 +148,13 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis
binding.dpduration.setActivated(!display);
}
private void displayMiniProgress() {
boolean display = Setting.isDisplayMiniProgress();
parent.display.progress.setVisibility(!display ? View.VISIBLE : View.GONE);
Setting.putDisplayMiniProgress(!display);
binding.dpminiprogress.setActivated(!display);
}
private void onTimer(View view) {
App.post(() -> TimerDialog.create().show(activity), 200);
dismiss();

@ -282,11 +282,21 @@
android:id="@+id/dpduration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="@drawable/shape_accent"
android:text="@string/play_duration"
android:textColor="@color/control"
android:textSize="14sp" />
<TextView
android:id="@+id/dpminiprogress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_accent"
android:text="@string/play_mini_progress"
android:textColor="@color/control"
android:textSize="14sp" />
</LinearLayout>
<TextView

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:padding="8dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
@ -50,4 +49,17 @@
android:textSize="12sp"
tools:text="10MB/S"/>
<ProgressBar
android:id="@+id/progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:layout_marginTop="0dp"
android:layout_marginBottom="0dp"
android:max="100"
android:progress="0"
tools:progress="50"
android:secondaryProgress="100"/>
</RelativeLayout>
Loading…
Cancel
Save