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 76b0964d5..4b18c29ed 100644 --- a/app/src/main/java/com/fongmi/android/tv/Setting.java +++ b/app/src/main/java/com/fongmi/android/tv/Setting.java @@ -169,6 +169,14 @@ public class Setting { Prefers.put("site_mode", mode); } + public static int getSyncMode() { + return Prefers.getInt("sync_mode"); + } + + public static void putSyncMode(int mode) { + Prefers.put("sync_mode", mode); + } + public static int getBackupMode() { return Prefers.getInt("backup_mode"); } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java index 66f4821e6..5aabf8608 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/ResUtil.java @@ -4,6 +4,7 @@ import android.app.Activity; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; +import android.content.res.TypedArray; import android.graphics.Paint; import android.graphics.Point; import android.graphics.drawable.Drawable; @@ -119,6 +120,10 @@ public class ResUtil { return App.get().getResources().getStringArray(resId); } + public static TypedArray getTypedArray(@ArrayRes int resId) { + return App.get().getResources().obtainTypedArray(resId); + } + public static Drawable getDrawable(@DrawableRes int resId) { return ContextCompat.getDrawable(App.get(), resId); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java index 90778728c..87464275b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SyncDialog.java @@ -1,5 +1,6 @@ package com.fongmi.android.tv.ui.dialog; +import android.content.res.TypedArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -13,6 +14,7 @@ import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.App; import com.fongmi.android.tv.Constant; 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.Config; import com.fongmi.android.tv.bean.Device; @@ -24,6 +26,7 @@ import com.fongmi.android.tv.impl.Callback; import com.fongmi.android.tv.ui.activity.ScanActivity; import com.fongmi.android.tv.ui.adapter.DeviceAdapter; import com.fongmi.android.tv.utils.Notify; +import com.fongmi.android.tv.utils.ResUtil; import com.fongmi.android.tv.utils.ScanTask; import com.github.catvod.net.OkHttp; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; @@ -45,6 +48,7 @@ public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListe private final FormBody.Builder body; private final OkHttpClient client; + private final TypedArray mode; private DialogDeviceBinding binding; private DeviceAdapter adapter; private String type; @@ -55,6 +59,7 @@ public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListe public SyncDialog() { client = OkHttp.client(Constant.TIMEOUT_SYNC); + mode = ResUtil.getTypedArray(R.array.cast_mode); body = new FormBody.Builder(); } @@ -93,6 +98,7 @@ public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListe EventBus.getDefault().register(this); setRecyclerView(); getDevice(); + setMode(); } @Override @@ -112,17 +118,17 @@ public class SyncDialog extends BaseDialog implements DeviceAdapter.OnClickListe if (adapter.getItemCount() == 0) App.post(this::onRefresh, 1000); } + private void setMode() { + int index = Setting.getSyncMode(); + binding.mode.setImageResource(mode.getResourceId(index, 0)); + binding.mode.setTag(String.valueOf(index)); + } + private void onMode() { - if (binding.mode.getTag().toString().equals("0")) { - binding.mode.setTag("1"); - binding.mode.setImageResource(R.drawable.ic_cast_upload); - } else if (binding.mode.getTag().toString().equals("1")) { - binding.mode.setTag("2"); - binding.mode.setImageResource(R.drawable.ic_cast_download); - } else if (binding.mode.getTag().toString().equals("2")) { - binding.mode.setTag("0"); - binding.mode.setImageResource(R.drawable.ic_cast_sync); - } + int index = Setting.getSyncMode(); + Setting.putSyncMode(index = index == mode.length() - 1 ? 0 : ++index); + binding.mode.setImageResource(mode.getResourceId(index, 0)); + binding.mode.setTag(String.valueOf(index)); } private void onScan() { diff --git a/app/src/mobile/res/drawable/ic_cast_download.xml b/app/src/mobile/res/drawable/ic_cast_download.xml deleted file mode 100644 index 685a6ce81..000000000 --- a/app/src/mobile/res/drawable/ic_cast_download.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/mobile/res/drawable/ic_cast_upload.xml b/app/src/mobile/res/drawable/ic_cast_upload.xml deleted file mode 100644 index 5f92b0925..000000000 --- a/app/src/mobile/res/drawable/ic_cast_upload.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/mobile/res/drawable/ic_sync_download.xml b/app/src/mobile/res/drawable/ic_sync_download.xml new file mode 100644 index 000000000..5252b67f1 --- /dev/null +++ b/app/src/mobile/res/drawable/ic_sync_download.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/mobile/res/drawable/ic_cast_sync.xml b/app/src/mobile/res/drawable/ic_sync_two.xml similarity index 100% rename from app/src/mobile/res/drawable/ic_cast_sync.xml rename to app/src/mobile/res/drawable/ic_sync_two.xml diff --git a/app/src/mobile/res/drawable/ic_sync_upload.xml b/app/src/mobile/res/drawable/ic_sync_upload.xml new file mode 100644 index 000000000..ee521048e --- /dev/null +++ b/app/src/mobile/res/drawable/ic_sync_upload.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/mobile/res/layout/dialog_device.xml b/app/src/mobile/res/layout/dialog_device.xml index 83a5217be..6b770c518 100644 --- a/app/src/mobile/res/layout/dialog_device.xml +++ b/app/src/mobile/res/layout/dialog_device.xml @@ -29,7 +29,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="16dp" android:background="?attr/selectableItemBackgroundBorderless" - android:src="@drawable/ic_cast_sync" + android:src="@drawable/ic_sync_two" android:tag="0" android:visibility="gone" tools:visibility="visible" /> diff --git a/app/src/mobile/res/values/arrays.xml b/app/src/mobile/res/values/arrays.xml new file mode 100644 index 000000000..db7a63a49 --- /dev/null +++ b/app/src/mobile/res/values/arrays.xml @@ -0,0 +1,10 @@ + + + + + @drawable/ic_sync_two + @drawable/ic_sync_upload + @drawable/ic_sync_download + + + \ No newline at end of file