Add incognito mode setting

pull/362/head
FongMi 2 years ago
parent a643189fb9
commit 9d7c80f570
  1. 11
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  3. 30
      app/src/leanback/res/layout/activity_setting.xml
  4. 8
      app/src/main/java/com/fongmi/android/tv/Setting.java
  5. 1
      app/src/main/res/values-zh-rCN/strings.xml
  6. 1
      app/src/main/res/values-zh-rTW/strings.xml
  7. 1
      app/src/main/res/values/strings.xml
  8. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  9. 14
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  10. 27
      app/src/mobile/res/layout/fragment_setting.xml

@ -56,6 +56,10 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
activity.startActivity(new Intent(activity, SettingActivity.class));
}
private String getSwitch(boolean value) {
return getString(value ? R.string.setting_on : R.string.setting_off);
}
private int getDohIndex() {
return Math.max(0, VodConfig.get().getDoh().indexOf(Doh.objectFrom(Setting.getDoh())));
}
@ -81,6 +85,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.dohText.setText(getDohList()[getDohIndex()]);
mBinding.versionText.setText(BuildConfig.VERSION_NAME);
mBinding.proxyText.setText(UrlUtil.scheme(Setting.getProxy()));
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
mBinding.qualityText.setText((quality = ResUtil.getStringArray(R.array.select_quality))[Setting.getQuality()]);
setCacheText();
@ -116,6 +121,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
mBinding.wallDefault.setOnClickListener(this::setWallDefault);
mBinding.wallRefresh.setOnClickListener(this::setWallRefresh);
mBinding.incognito.setOnClickListener(this::setIncognito);
mBinding.quality.setOnClickListener(this::setQuality);
mBinding.size.setOnClickListener(this::setSize);
mBinding.doh.setOnClickListener(this::setDoh);
@ -275,6 +281,11 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
});
}
private void setIncognito(View view) {
Setting.putIncognito(!Setting.isIncognito());
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
}
private void setQuality(View view) {
int index = Setting.getQuality();
Setting.putQuality(index = index == quality.length - 1 ? 0 : ++index);

@ -1016,7 +1016,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
mHistory = History.find(getHistoryKey());
mHistory = mHistory == null ? createHistory(item) : mHistory;
if (!TextUtils.isEmpty(getMark())) mHistory.setVodRemarks(getMark());
//if (!getSite().isRecordable() && mHistory.getKey().equals(getHistoryKey())) mHistory.delete();
if (Setting.isIncognito() && mHistory.getKey().equals(getHistoryKey())) mHistory.delete();
mBinding.control.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening()));
mBinding.control.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding()));
mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed()));
@ -1073,7 +1073,7 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
long position, duration;
mHistory.setPosition(position = mPlayers.getPosition());
mHistory.setDuration(duration = mPlayers.getDuration());
//if (position >= 0 && duration > 0 && getSite().isRecordable()) App.execute(() -> mHistory.update());
if (position >= 0 && duration > 0 && !Setting.isIncognito()) App.execute(() -> mHistory.update());
if (mHistory.getEnding() > 0 && duration > 0 && mHistory.getEnding() + position >= duration) {
mClock.setCallback(null);
checkNext();

@ -221,6 +221,25 @@
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:text="@string/setting_player"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/incognito"
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:nextFocusDown="@id/quality"
android:orientation="horizontal">
@ -228,10 +247,19 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/setting_player"
android:text="@string/setting_incognito"
android:textColor="@color/white"
android:textSize="18sp" />
<TextView
android:id="@+id/incognitoText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="18sp"
tools:text="Off" />
</LinearLayout>
<LinearLayout

@ -177,6 +177,14 @@ public class Setting {
Prefers.put("site_mode", mode);
}
public static boolean isIncognito() {
return Prefers.getBoolean("incognito");
}
public static void putIncognito(boolean incognito) {
Prefers.put("incognito", incognito);
}
public static boolean isBootLive() {
return Prefers.getBoolean("boot_live");
}

@ -65,6 +65,7 @@
<string name="setting_live">直播</string>
<string name="setting_wall">壁纸</string>
<string name="setting_player">播放设置</string>
<string name="setting_incognito">无痕模式</string>
<string name="setting_quality">图片品质</string>
<string name="setting_size">图片尺寸</string>
<string name="setting_doh">DoH</string>

@ -65,6 +65,7 @@
<string name="setting_live">直播</string>
<string name="setting_wall">壁紙</string>
<string name="setting_player">播放設定</string>
<string name="setting_incognito">無痕模式</string>
<string name="setting_quality">圖片品質</string>
<string name="setting_size">圖片尺寸</string>
<string name="setting_doh">DoH</string>

@ -65,6 +65,7 @@
<string name="setting_live">Live</string>
<string name="setting_wall">Wallpaper</string>
<string name="setting_player">Player setting</string>
<string name="setting_incognito">Incognito mode</string>
<string name="setting_quality">Image quality</string>
<string name="setting_size">Image size</string>
<string name="setting_doh">DoH</string>

@ -1012,6 +1012,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
mHistory = History.find(getHistoryKey());
mHistory = mHistory == null ? createHistory(item) : mHistory;
if (!TextUtils.isEmpty(getMark())) mHistory.setVodRemarks(getMark());
if (Setting.isIncognito() && mHistory.getKey().equals(getHistoryKey())) mHistory.delete();
mBinding.control.action.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening()));
mBinding.control.action.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding()));
mBinding.control.action.speed.setText(mPlayers.setSpeed(mHistory.getSpeed()));
@ -1078,7 +1079,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo
long position, duration;
mHistory.setPosition(position = mPlayers.getPosition());
mHistory.setDuration(duration = mPlayers.getDuration());
if (position >= 0 && duration > 0) App.execute(() -> mHistory.update());
if (position >= 0 && duration > 0 && !Setting.isIncognito()) App.execute(() -> mHistory.update());
if (mHistory.getEnding() > 0 && duration > 0 && mHistory.getEnding() + position >= duration) {
mClock.setCallback(null);
checkNext();

@ -61,6 +61,10 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
return new SettingFragment();
}
private String getSwitch(boolean value) {
return getString(value ? R.string.setting_on : R.string.setting_off);
}
private int getDohIndex() {
return Math.max(0, VodConfig.get().getDoh().indexOf(Doh.objectFrom(Setting.getDoh())));
}
@ -89,6 +93,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.dohText.setText(getDohList()[getDohIndex()]);
mBinding.versionText.setText(BuildConfig.VERSION_NAME);
mBinding.proxyText.setText(UrlUtil.scheme(Setting.getProxy()));
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
mBinding.sizeText.setText((size = ResUtil.getStringArray(R.array.select_size))[Setting.getSize()]);
setCacheText();
}
@ -123,6 +128,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
mBinding.liveHistory.setOnClickListener(this::onLiveHistory);
mBinding.wallDefault.setOnClickListener(this::setWallDefault);
mBinding.wallRefresh.setOnClickListener(this::setWallRefresh);
mBinding.incognito.setOnClickListener(this::setIncognito);
mBinding.size.setOnClickListener(this::setSize);
mBinding.doh.setOnClickListener(this::setDoh);
}
@ -282,6 +288,11 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
});
}
private void setIncognito(View view) {
Setting.putIncognito(!Setting.isIncognito());
mBinding.incognitoText.setText(getSwitch(Setting.isIncognito()));
}
private void setSize(View view) {
new MaterialAlertDialogBuilder(getActivity()).setTitle(R.string.setting_size).setNegativeButton(R.string.dialog_negative, null).setSingleChoiceItems(size, Setting.getSize(), (dialog, which) -> {
mBinding.sizeText.setText(size[which]);
@ -358,7 +369,8 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK || requestCode != FileChooser.REQUEST_PICK_FILE) return;
if (resultCode != Activity.RESULT_OK || requestCode != FileChooser.REQUEST_PICK_FILE)
return;
setConfig(Config.find("file:/" + FileChooser.getPathFromUri(getContext(), data.getData()).replace(Path.rootPath(), ""), type));
}
}

@ -230,6 +230,33 @@
</LinearLayout>
<LinearLayout
android:id="@+id/incognito"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:background="@drawable/shape_item"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/setting_incognito"
android:textColor="@color/white"
android:textSize="16sp" />
<TextView
android:id="@+id/incognitoText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="Off" />
</LinearLayout>
<LinearLayout
android:id="@+id/size"
android:layout_width="match_parent"

Loading…
Cancel
Save