Merge pull request #4 from zhanglyt/main

在线换背景
pull/1/head
唐三 4 years ago committed by GitHub
commit 5584ea1f2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      app/src/main/java/com/github/tvbox/osc/api/ApiConfig.java
  2. 46
      app/src/main/java/com/github/tvbox/osc/base/BaseActivity.java
  3. 30
      app/src/main/java/com/github/tvbox/osc/ui/fragment/ModelSettingFragment.java
  4. 100
      app/src/main/res/layout/fragment_model.xml
  5. 4
      app/src/main/res/values/styles.xml

@ -55,6 +55,7 @@ public class ApiConfig {
private List<String> vipParseFlags;
private List<IJKCode> ijkCodes;
private String spider = null;
public String wallpaper = "";
private SourceBean emptyHome = new SourceBean();
@ -226,6 +227,8 @@ public class ApiConfig {
JsonObject infoJson = new Gson().fromJson(jsonStr, JsonObject.class);
// spider
spider = DefaultConfig.safeJsonString(infoJson, "spider", "");
// wallpaper
wallpaper = DefaultConfig.safeJsonString(infoJson, "wallpaper", "");
// 远端站点源
SourceBean firstSite = null;
for (JsonElement opt : infoJson.get("sites").getAsJsonArray()) {
@ -494,4 +497,4 @@ public class ApiConfig {
String fix = lanLink.substring(0, lanLink.indexOf("/file/") + 6);
return content.replace("clan://", fix);
}
}
}

@ -4,6 +4,8 @@ import android.content.Context;
import android.content.Intent;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Looper;
@ -14,6 +16,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.PermissionChecker;
import com.github.tvbox.osc.R;
import com.github.tvbox.osc.callback.EmptyCallback;
import com.github.tvbox.osc.callback.LoadingCallback;
import com.github.tvbox.osc.util.AppManager;
@ -22,6 +25,7 @@ import com.kingja.loadsir.core.LoadService;
import com.kingja.loadsir.core.LoadSir;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
@ -63,6 +67,7 @@ public abstract class BaseActivity extends AppCompatActivity implements CustomAd
protected void onResume() {
super.onResume();
hideSysBar();
changeWallpaper(false);
}
public void hideSysBar() {
@ -171,4 +176,43 @@ public abstract class BaseActivity extends AppCompatActivity implements CustomAd
return !(screenRatio >= 4.0f);
}
}
protected static BitmapDrawable globalWp = null;
public void changeWallpaper(boolean force) {
if (!force && globalWp != null)
getWindow().setBackgroundDrawable(globalWp);
try {
File wp = new File(getFilesDir().getAbsolutePath() + "/wp");
if (wp.exists()) {
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeFile(wp.getAbsolutePath(), opts);
// 从Options中获取图片的分辨率
int imageHeight = opts.outHeight;
int imageWidth = opts.outWidth;
int picHeight = 720;
int picWidth = 1080;
int scaleX = imageWidth / picWidth;
int scaleY = imageHeight / picHeight;
int scale = 1;
if (scaleX > scaleY && scaleY >= 1) {
scale = scaleX;
}
if (scaleX < scaleY && scaleX >= 1) {
scale = scaleY;
}
opts.inJustDecodeBounds = false;
// 采样率
opts.inSampleSize = scale;
globalWp = new BitmapDrawable(BitmapFactory.decodeFile(wp.getAbsolutePath(), opts));
}
} catch (Throwable throwable) {
throwable.printStackTrace();
globalWp = null;
}
if (globalWp != null)
getWindow().setBackgroundDrawable(globalWp);
else
getWindow().setBackgroundDrawableResource(R.drawable.app_bg);
}
}

@ -25,11 +25,16 @@ import com.github.tvbox.osc.util.FastClickCheckUtil;
import com.github.tvbox.osc.util.HawkConfig;
import com.github.tvbox.osc.util.OkGoHelper;
import com.github.tvbox.osc.util.PlayerHelper;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.FileCallback;
import com.lzy.okgo.model.Progress;
import com.lzy.okgo.model.Response;
import com.orhanobut.hawk.Hawk;
import org.greenrobot.eventbus.EventBus;
import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
@ -134,6 +139,29 @@ public class ModelSettingFragment extends BaseLazyFragment {
dialog.show();
}
});
findViewById(R.id.llWp).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FastClickCheckUtil.check(v);
if (!ApiConfig.get().wallpaper.isEmpty())
OkGo.<File>get(ApiConfig.get().wallpaper).execute(new FileCallback(requireActivity().getFilesDir().getAbsolutePath(), "wp") {
@Override
public void onSuccess(Response<File> response) {
((BaseActivity) requireActivity()).changeWallpaper(true);
}
@Override
public void onError(Response<File> response) {
super.onError(response);
}
@Override
public void downloadProgress(Progress progress) {
super.downloadProgress(progress);
}
});
}
});
findViewById(R.id.llHomeApi).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@ -485,4 +513,4 @@ public class ModelSettingFragment extends BaseLazyFragment {
return "缩略图";
}
}
}
}

@ -532,37 +532,83 @@
</LinearLayout>
<LinearLayout
android:id="@+id/llBackup"
android:layout_width="match_parent"
android:layout_height="@dimen/vs_50"
android:layout_height="@dimen/vs_60"
android:layout_marginBottom="@dimen/vs_10"
android:background="@drawable/shape_setting_model_focus"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/vs_20"
android:paddingRight="@dimen/vs_20">
android:focusable="false"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="数据备份还原"
android:textColor="@android:color/white"
android:textSize="@dimen/ts_24" />
<LinearLayout
android:id="@+id/llBackup"
android:layout_width="@dimen/vs_0"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/vs_5"
android:layout_marginRight="@dimen/vs_5"
android:layout_weight="1"
android:background="@drawable/shape_setting_model_focus"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/vs_20"
android:paddingRight="@dimen/vs_20">
<Space
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="数据备份还原"
android:textColor="@android:color/white"
android:textSize="@dimen/ts_24" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/vs_10"
android:layout_marginLeft="@dimen/vs_10"
android:text=">"
android:textColor="@android:color/white"
android:textSize="@dimen/ts_30" />
<Space
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/vs_10"
android:layout_marginLeft="@dimen/vs_10"
android:text=">"
android:textColor="@android:color/white"
android:textSize="@dimen/ts_30" />
</LinearLayout>
<LinearLayout
android:id="@+id/llWp"
android:layout_width="@dimen/vs_0"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/vs_5"
android:layout_marginLeft="@dimen/vs_5"
android:layout_weight="1"
android:background="@drawable/shape_setting_model_focus"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="@dimen/vs_20"
android:paddingRight="@dimen/vs_20">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="换张壁纸"
android:textColor="@android:color/white"
android:textSize="@dimen/ts_24" />
<Space
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/vs_10"
android:layout_marginLeft="@dimen/vs_10"
android:text=">"
android:textColor="@android:color/white"
android:textSize="@dimen/ts_30" />
</LinearLayout>
</LinearLayout>
<LinearLayout
@ -601,4 +647,4 @@
</LinearLayout>
</ScrollView>
</FrameLayout>
</FrameLayout>

@ -16,7 +16,7 @@
<item name="windowNoTitle">true</item>
<item name="android:keepScreenOn">true</item>
<!-- <item name="android:windowBackground">@drawable/main_bg</item>-->
<item name="android:windowBackground">@drawable/app_bg</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<!-- 自定义dialog样式 -->
<style name="CustomDialogStyle" parent="@android:style/Theme.Dialog">
@ -39,4 +39,4 @@
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
</resources>

Loading…
Cancel
Save