diff --git a/app/build.gradle b/app/build.gradle
index e5813634b..15a371b02 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -11,7 +11,7 @@ android {
minSdk 21
targetSdk 28
versionCode 225
- versionName "0207"
+ versionName "0212"
javaCompileOptions {
annotationProcessorOptions {
arguments = ["room.schemaLocation": "$projectDir/schemas".toString()]
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
index 51cca8b67..f32c648b1 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
@@ -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
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java
index 026e9b772..3ed230a05 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java
@@ -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()));
+ }
+
}
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
index 3f44080d0..c02c4cc2b 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
@@ -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();
}
diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
index 05d77973c..89c84b72b 100644
--- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
+++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
@@ -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);
diff --git a/app/src/leanback/res/drawable/ic_home_lock.xml b/app/src/leanback/res/drawable/ic_home_lock.xml
new file mode 100644
index 000000000..8dd6cb37f
--- /dev/null
+++ b/app/src/leanback/res/drawable/ic_home_lock.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/leanback/res/layout/activity_home.xml b/app/src/leanback/res/layout/activity_home.xml
index 829ce5610..231a7aadc 100644
--- a/app/src/leanback/res/layout/activity_home.xml
+++ b/app/src/leanback/res/layout/activity_home.xml
@@ -16,15 +16,35 @@
android:paddingEnd="24dp"
android:paddingBottom="8dp">
-
+ android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/leanback/res/layout/view_widget_display.xml b/app/src/leanback/res/layout/view_widget_display.xml
index 21f2aafb1..9954cbfca 100644
--- a/app/src/leanback/res/layout/view_widget_display.xml
+++ b/app/src/leanback/res/layout/view_widget_display.xml
@@ -51,4 +51,17 @@
android:textSize="16sp"
tools:text="10MB/S"/>
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/fongmi/android/tv/Setting.java b/app/src/main/java/com/fongmi/android/tv/Setting.java
index e55a2330e..34fbb18c6 100644
--- a/app/src/main/java/com/fongmi/android/tv/Setting.java
+++ b/app/src/main/java/com/fongmi/android/tv/Setting.java
@@ -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);
+ }
+
}
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 7074c6aa2..e3fb216cc 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -39,6 +39,7 @@
时间
网速
进度
+ 迷你进度
弹幕
倍速
换源
@@ -75,8 +76,8 @@
个性设置
图片品质
图片尺寸
- 聚合搜索
全屏菜单键
+ 首页源锁定
DoH
Proxy
缓存
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index ace3b60b3..4c7d063af 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -39,6 +39,7 @@
時間
網速
進度
+ 迷你進度
彈幕
倍速
換源
@@ -75,8 +76,8 @@
個性設定
圖片品質
圖片尺寸
- 聚合搜索
全屏選單鍵
+ 首頁源鎖定
DoH
Proxy
暫存
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d328ac48b..097deeeb8 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -39,6 +39,7 @@
Time
Net Speed
Duration
+ Mini Progress
Danmu
Speed
Change
@@ -75,8 +76,8 @@
Custom setting
Image quality
Image size
- Aggregated search
Fullscreen menu key
+ Home site lock
DoH
Proxy
Cache
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
index d08d616d2..aa2381a98 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
@@ -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();
}
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
index 47dd29930..1cd97c713 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java
@@ -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();
diff --git a/app/src/mobile/res/layout/dialog_control.xml b/app/src/mobile/res/layout/dialog_control.xml
index 2ab9e661c..97acc5e21 100644
--- a/app/src/mobile/res/layout/dialog_control.xml
+++ b/app/src/mobile/res/layout/dialog_control.xml
@@ -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" />
+
+
@@ -50,4 +49,17 @@
android:textSize="12sp"
tools:text="10MB/S"/>
+
+
\ No newline at end of file